A hand-written design system, evaluated against a framework, and kept for a reason that is not technical.
the honest accounting:
2,100 lines, of which
412 layout primitives — grid, stack, cluster
880 components
290 tokens, generated
518 utilities, which is where a framework wins
people who can change it confidently: 1
people who could change a framework's classes
confidently on day one: everybody
and it stayed, because the 518 lines are the part a
framework replaces and the other 1,582 are not.
The utility layer is genuinely better in a framework and it is a quarter of the file, which is the arithmetic that decides this. Replacing a quarter of a stylesheet with a dependency, a build step and a class vocabulary is a trade worth making on a new project and a poor one on an existing system where the other three quarters would have to interoperate with it.