The Farvist blog

Notes on building a CSS framework for the AI era — theming, discoverability, and the engineering behind the glass.

CSSCascade

Why @layer makes your CSS lose to Tailwind

Un-layered CSS beats any layered rule, whatever the specificity. That one line of the cascade spec is why a polite, fully-layered framework gets stripped bare on a Tailwind v3 page — and what to do about it.

August 2, 2026 · 11 min read · Read →

EngineeringPerformance

What actually costs bytes in a CSS framework

We set out to cut the AI components to save weight, measured every layer, and found we'd guessed wrong: the generated utilities dominate the budget and the whole component kit was noise. The numbers, and what they changed.

August 2, 2026 · 8 min read · Read →

AIDesign

The AI chat UI components nobody documents

Everyone styles a message bubble. Nobody writes down the rest — tool-call cards, reasoning disclosures, streaming carets, diffs and citations — or the traps in each, like rendered markdown fighting your bubble's whitespace.

August 2, 2026 · 11 min read · Read →

CSSTutorial

Glassmorphism in CSS: a practical guide

Frosted glass is four CSS properties in a trench coat. The complete recipe — backdrop-filter, fills, borders, fallbacks — plus the mistakes that make glass look cheap. All copy-paste.

July 29, 2026 · 12 min read · Read →

AccessibilityCSS

Glassmorphism, done accessibly

Frosted-glass UI looks stunning and fails accessibility more often than any other trend. The four places it breaks — contrast, fallbacks, focus and motion — and the concrete fix for each.

July 16, 2026 · 14 min read · Read →

UXAccessibility

The anatomy of a command palette (⌘K)

Every dev tool has a ⌘K menu now. What actually makes one good — the five parts, the keyboard model, the combobox/listbox ARIA pattern most hand-built palettes get wrong, and the centering bug we shipped a fix for in 1.7.1.

July 16, 2026 · 12 min read · Read →

AIDesign

Building a CSS framework for the AI era

AI assistants write UI code every day — but they hallucinate class names and can't run your build step. Three design choices that make Farvist findable, writable, and re-brandable by a model.

July 3, 2026 · 11 min read · Read →

EngineeringTheming

Runtime theming with zero build step

Mirror every token to a custom property, derive every shade with color-mix(), and one variable re-brands the whole framework — gradients, glows, glass and all. No Sass rebuild.

July 3, 2026 · 7 min read · Read →

More to come. In the meantime:

Read the docs ★ Star on GitHub