v0.14.0
0.14.0
Adds the presentation measures to the role layer, so the website, the console,
and the documentation host draw at one density instead of three.
Added
tokens/presentation.json. Five measures the three hosts share:
--oe-body-size,--oe-body-leading,--oe-rule-weight,
--oe-control-height, and--oe-control-radius. They are declared in the
token layer and published byroles.css.- Four theme keys in
roles.css.--text-body,--leading-body,
--radius-control, and--spacing-controlexpose four of the measures as
Tailwind utilities. - The
ruleutilities.rule,rule-t,rule-b, andrule-ydraw a
hairline from--oe-rule-weightand theborder-1role. Tailwind writes a
literal width into its own border utilities, so a rule drawn withborder-t
cannot follow a measure.
Changed
--oe-control-height-mdis now--oe-control-height. The default
control height is a shared measure and no longer carries a size suffix.
--oe-control-height-smand--oe-control-height-lgare unchanged.--oe-control-radiusmoves fromtokens/components.jsonto
tokens/presentation.json. The name, the value, and the emitted
declaration are unchanged.
Why
The three hosts already agreed on color. console/src/app/docs-theme.css
answers every Fumadocs property from an --oe-* role, so one ramp decides
every surface a reader meets. They did not agree on presentation. The website
declared 16 px text at 1.6 leading as literals. The console declared neither
and inherited 1.5 from the framework reset. The documentation body ran 1.75.
The website drew a 2 px control corner and the console drew 3 px. A reader
crossing from a documentation page to a console page in one task met two
densities and read two products.
Five names fix that. A host reads a measure rather than answering the same
question a fourth time, and one edit reaches all three.