The Quiet Power of Plain HTML Forms
Native form elements have decades of accessibility, autofill, and platform integration baked in. A custom div-and-JavaScript dropdown rarely improves on <select> when measure…
Read article →Notes on JavaScript, PHP, WordPress, design, performance, and the practical side of shipping better digital products.
Topics covered
The blog is designed to support both technical readers and clients who want clearer language around scope, quality, and implementation decisions.
Native form elements have decades of accessibility, autofill, and platform integration baked in. A custom div-and-JavaScript dropdown rarely improves on <select> when measure…
Read article →About 5% of users have prefers-reduced-motion set — vestibular disorders, headaches, or just a preference for calmer interfaces. Respect it.The CSS pattern: @media (prefers-reduced…
Read article →Three rules: debounce keystrokes, cancel in-flight requests, render results progressively. Together they make a slow backend feel responsive.The minimum debounce that still feels i…
Read article →If the control navigates to a URL, use an anchor. If the control performs an action, use a button. Get this right and middle-click, copy-link,…
Read article →The three Core Web Vitals are LCP (Largest Contentful Paint, ≤2.5s), INP (Interaction to Next Paint, ≤200ms), and CLS (Cumulative Layout Shift, ≤0.1). INP replaced…
Read article →