Why I stopped using a CSS framework

Three years of overriding someone else's opinions, and what replaced them.

11 min read · July 2026 · CSS & layout

Every framework is a set of answers to questions someone else was asking. That is fine until your questions differ, and then every line you write is an argument with the defaults.

Why this happened

It started with a card. The framework had one, and it was nearly right — which is worse than being wrong, because nearly right gets overridden instead of replaced.

A component you have overridden four times is a component you now own, with none of the benefits of owning it.

What it cost

Forty kilobytes of CSS to ship six components, and a build step to remove the rest of it.

What replaced it

Two tiers of custom properties and about thirty components. The whole thing is smaller than the framework's grid system was.

Was it worth it

The honest answer is that it was worth it the second time. The first attempt was a framework with my name on it.

Next post Tokens are a contract, not a theme Two tiers, and why one override reaches everything.

3comments

Markdown works. Be kind.
  1. MR
    Maya Rodriguez 2 days ago

    The implicit grid explanation finally made this click for me. I had been declaring rows for years without knowing why it sometimes worked anyway.

    1. SS
      Swarnil Singhai 2 days ago

      That is exactly the trap — it works right up until the content count changes. Glad it helped.

  2. DK
    Dan K. 5 days ago

    Would love a follow-up on subgrid. It is the one part I still avoid.