Consolidating inline Tailwind styles into a coherent set of reusable primitive components.
The Inline Style Problem
Tailwind CSS makes it easy to write styles inline — class strings applied directly to elements. This is efficient for individual components but creates a maintenance problem at scale: the same Tailwind class combinations appear repeatedly across different files, and changing the design requires finding and updating every instance. There's no single source of truth for what "a page title" looks like.
By mid-February, Project Nothing had accumulated enough pages that this was becoming a real problem. Article pages, SEO definition pages, FAQ, refund policy, success and cancel pages — each had slightly different typography because each had been styled independently.
The Primitives
The solution was a set of named primitive components in components/manifesto/Primitives.tsx: PageContainer for full-page layout, BackLink for navigation back arrows, Label for section labels, PageTitle for main headings, BodyText for paragraph content, ResponsiveGrid for columnar layouts, and PageFooter and FooterLink for page footers.
Each primitive encapsulates a set of Tailwind classes that represent a specific design intent. Instead of className="text-[10px] uppercase tracking-[0.18em] text-[var(--faint)]", you write <Label>. The implementation detail hides. The intent surfaces.
Infrastructure for Absence
There's a recursive quality to building a sophisticated component library for a product that delivers nothing. The primitives are well-typed, composable, tested against design tokens, and documented. They represent real engineering effort applied to the problem of making absence look precisely intentional.
This is exactly the point. Selling nothing ironically would be cheap. Selling nothing seriously — with the same engineering investment you'd apply to any premium product — demonstrates that the void warrants sophistication. The primitives exist because nothing deserves to be presented consistently.
Experiment Context
- Commit
- bd6b722
- Mutation rationale
- Consolidate inline styles into reusable primitive components project-wide
- Last reviewed
- February 21, 2026