All field notes

Engineering6 min read

Zero browser runtime is a design constraint, not a slogan

Static CSS changes the architecture of a framework. It also changes what tooling must make visible before code reaches the browser.

01

Move uncertainty into the build

A runtime-free CSS engine does not inspect component state in the browser. It discovers literal candidates in source, resolves them through registries and theme contracts, and emits static CSS before deployment.

That boundary removes styling work from the client, but it also demands better build diagnostics. Unsupported candidates, dynamic construction, missing source roots, and ambiguous values must be observable while the developer can still fix them.

02

Literal classes are an interface

A complete class such as md:co-grid-cols-3 is readable by a person, a scanner, an editor, CI, and an AI agent. A dynamically concatenated class hides the finite values that the compiler needs to see.

  • Map conditions to complete class strings.
  • Safelist only a known finite set.
  • Keep the configured prefix explicit.
  • Use compiler diagnostics as support evidence.
03

Performance remains a product decision

Zero runtime does not automatically make an application fast. Images, fonts, data loading, hydration, third-party scripts, and component architecture still matter.

The useful claim is narrower and testable: the CSS engine adds no styling runtime to the browser. That leaves teams with one less client-side system to initialize, debug, and pay for on every visit.