// writing
Posts tagged #css
A mix of technical deep-dives, career reflections, and dispatches from the road.
tag: #css

developmentAug 13, 2026· 4 min
CSS text-box-trim: The End of Fudging Vertical Padding
Buttons that look bottom-heavy at padding: 12px aren't your fault, they're half-leading. text-box-trim finally lets CSS cut that invisible space, and it goes Baseline this month.
read more →

developmentAug 3, 2026· 4 min
CSS contrast-color(): Let the Browser Pick Your Text Color
The contrast-color() function went Baseline in April 2026 and kills the luminance-math helper every design system eventually writes. Here is how it works, the mid-tone problem nobody warns you about, and how to work around it.
read more →

developmentJul 27, 2026· 4 min
CSS sibling-index() and sibling-count(): Native Staggering Without nth-child Hacks
CSS sibling-index() and sibling-count() turn an element's position into a number you can drop into calc(), replacing walls of nth-child rules and inline JavaScript for staggered animations and math-driven layouts.
read more →

developmentJul 26, 2026· 4 min
Animate to height: auto in CSS with interpolate-size and calc-size()
Transitioning an element to height: auto used to mean JavaScript measurements or fragile max-height hacks. interpolate-size and calc-size() finally make it a one-line CSS opt-in.
read more →

developmentJul 20, 2026· 3 min
CSS :has() in Practice: The Parent Selector You Can Finally Ship
The :has() selector is Baseline and fast in 2026. Here's how to use it for parent styling, sibling reactions, and quantity queries without reaching for JavaScript.
read more →

developmentJul 19, 2026· 4 min
CSS @function: Reusable Logic Comes Native to the Browser
CSS finally has real, reusable functions. The new @function at-rule lets you define typed helpers that run in the browser with live values — here is how it works and where it is supported today.
read more →

obsidianJul 10, 2026· 4 min
Obsidian CSS Snippets: Customize Your Vault Without a Theme
Community themes are all-or-nothing. CSS snippets let you change one thing at a time, and Obsidian's built-in variables make it easier than you'd expect.
read more →

developmentJul 9, 2026· 4 min
CSS light-dark(): Stop Duplicating Your Dark Mode Colors
The CSS light-dark() function collapses your two dark-mode palettes into a single declaration. Here is how it works, the color-scheme gotcha that trips everyone up, and how to wire up a manual theme toggle.
read more →

developmentJul 5, 2026· 4 min
CSS Grid Lanes: Native Masonry Has Finally Landed
Masonry layout is coming to CSS as grid-lanes, and Safari shipped it first. Here's how the new display value works, why it beats the JavaScript libraries, and what it fixes for keyboard users.
read more →

developmentJul 2, 2026· 4 min
CSS field-sizing: Auto-Growing Textareas Without a Line of JavaScript
The auto-growing textarea has been a JavaScript rite of passage for years. A single CSS declaration now does the whole job, and it works on inputs and selects too.
read more →
// the newsletter