Why this shape
The framework is a components-oriented, theme-oriented library, not a classless stylesheet and not a utility-first framework. The typography system reflects that. Global typography should stay mild because:
- a card, a dialog, a sidebar, or a dashboard must not be accidentally reshaped by selectors that target
h1orpoutside.prose - form controls, navigation, and dense app UI need predictable inheritance rather than decorative defaults
- the only place where headings, paragraphs, lists, and blockquotes can be styled as a hierarchy is the
.prosescope
The framework avoids exposing a large public type scale. There is no fs-1 to fs-7, no Bootstrap-like heading utilities, no text-display / text-h1 / text-h2 ladder on day one. Theme work, real components, and repeated use cases are what justify new type tokens — not a speculative API. The framework avoids RFS-style fluid typography as a foundation. Fluid sizes are useful for display text on marketing pages, but they make body text and app UI harder to reason about. A small optional module covers the display use case without dragging the rest of the system along.