CSS(4)
Layout, utility-first workflows, and the rendering behaviour that decides whether a style actually applies.
- What a tailwind.config.js Still Does in Tailwind v4: 19 Config Keys, MeasuredTailwind v4 stopped reading tailwind.config.js automatically, and the @config directive brings it back. We probed all 19 keys of a real v3 config against Tailwind 4.3.3, one key per build, and diffed the output CSS. Most keys work. Four are dropped in silence. And the documented list of what does not work is wrong about safelist.15 min read
- Migrating Tailwind v3 to v4 on Astro: What the Upgrade Tool Automated, the Two Errors It Left, and the CSS That Grew 28%We ran npx @tailwindcss/upgrade on a production Astro site, moving Tailwind 3.4.19 to 4.3.3. The tool rewrote the PostCSS config, translated and deleted tailwind.config.mjs, and renamed classes across 31 files, all correctly. It also left two build-breaking errors specific to Astro, and the main stylesheet came out 28% larger gzipped.13 min read
- Building a Design Overlay Browser Extension: Blend Modes, Click-Through, and Per-Origin StateHow a pixel-comparison overlay actually works in the browser: why a wrapper div breaks mix-blend-mode, click-through without pointer-events juggling, keeping scroll on its fast path, and hardening per-origin persisted state.14 min read
- Tailwind CSS v4 in Practice: CSS-First Config, What It Costs, and a Real Bundle SizeTailwind v4 moved configuration out of JavaScript and into CSS. What that changes for theming and dark mode, what the upgrade breaks, the browsers it drops, and the measured CSS size of a real site.12 min read