Editorial
A serif display face, a long line and plenty of space: reading comes first.
Where it comes from
Print journalism and long-form publishing solved a problem that a lot of software now has: how to hold a person's attention on a lot of text for more than a few seconds. The answers were a clear typographic hierarchy, a measure short enough to follow, generous margins, hairline rules between sections and a display face with character set against a quiet text face.
On screen the same moves make a product feel curated instead of busy. The cost is that a page built for reading can hide its actions: when everything is quiet, the one button that matters can disappear, so the style asks for deliberate emphasis where it counts.
Written by us, in our own words, as background. It is not a claim about users.
Traits
- Type
A serif for display and headings, a clean text face for the body, a slightly larger scale, a line height near 1.7 and a measure capped at about 65 characters.
--ca-font-display--ca-font-scale--ca-line-height-body--ca-measure--ca-label-case--ca-label-tracking- Colour
Restrained and warm-neutral. Ink on paper with one accent; large areas stay close to the page colour so the text carries the page.
--ca-brand-fill--ca-surface-base--ca-text-primary--ca-text-secondary- Shape
Nearly square corners (a fifth of the default radius) and hairline dividers. Surfaces are flat panels, not floating cards.
--ca-radius-scale--ca-border-width- Depth
None. No shadows and no blur; the flat material separates with a hairline. Rhythm comes from spacing and rules.
--ca-shadow-md--ca-mat-edge- Motion
Calm and a little slower than default (about 130%): a fade or a short slide that never competes with the text.
--ca-motion-scale--ca-ease-standard
Before and after, on real components
The same components twice: with the package default and with this style. Use the toggle to flip between them or put them side by side.
Weekly report
Revenue grew in three of four regions. The fourth is waiting on a late import.
As on your ID.
Heads up
Payment failed
Do and don't
Do
- Cap the line length of running text; wider is not more comfortable.
- Pair one expressive display face with a plain text face, and keep to two families.
- Use space and a hairline, not a box, to group related content.
- Make the primary action visibly an action: a filled button, not a text link.
Don't
- Do not use a display serif for small interface text such as table cells, badges or captions.
- Do not hide navigation to keep the page quiet; people should see where the routes are.
- Do not set long text in all caps; reserve uppercase for short labels.
- Do not let a hero image push the first paragraph off the first screen without a reason.
These are our own guidance for using the recipe well. The accessibility items below carry their sources.
Accessibility pitfalls
Each item names what goes wrong, what the library already does about it and what is left to you.
Airy spacing and a wide display scale can break at large text sizes
Standard or guidelineW3C WAI 2023
A page that looks balanced at 100% can overlap or clip when a reader enlarges the text.
Scope: WCAG 2.2 criterion 1.4.4: text can be resized up to 200 percent without assistive technology and without loss of content or function. It says nothing about which typeface or size to start from.
What to do. Use relative units for sizes and test at 200% text size. Containers should grow with the text instead of clipping it.
A quiet page can hide the one action that matters
Our judgement
When every element is understated, nothing signals what to do next. We have seen this on our own pages, but we have no study to point to, so test it with your users.
What to do. Give the primary action the brand fill and a clear label; keep secondary actions as outlined or text buttons.
Components that fit
Content-led products: publications, documentation, case studies, portfolios, reports and pricing or product pages that tell a story before they sell.
Avoid it when: Dense operational tools, small-screen data entry, or anywhere a user scans for a value rather than reads.
Where it fits is our judgement from using the recipe, not a measured result.
Heading: The display size reads the serif display family.Card: A flat card with a hairline is a column, not a tile.Highlight: A hand-set emphasis inside running text.Accordion: Progressive disclosure for long pages.
Heading
A headline that reads the display face
Card
Field notes
A card is a surface with a title and room to breathe.
Highlight
Emphasis belongs on the words that matter, once or twice a page.
Accordion
Overlays such as Dialog and Tooltip render in the page body, outside this style's subtree, so they are not shown here. Apply the style to the whole site to see them wear it.
The ThemeOptions recipe
One call in src/lib/theme.ts. Everything below is what the recipe sets; override any of it on top.
With your own brand colour on top:
Every knob this recipe sets
Try it on this site
Try it on every page of this site, only in this browser. Nothing is published or changed for anyone else.
Prompt for your AI
Paste this into a coding agent. It carries the recipe, the limits and the accessibility rules.
References
W3C WAI (2023). Understanding SC 1.4.4: Resize Text. W3C WAI, WCAG 2.2 Understanding (Level AA).Standard or guideline
Supports: Text can be resized without assistive technology up to 200 percent without loss of content or functionality.
Does not support: Behavior of page zoom versus text-only zoom in a given browser; check the criterion text for what counts.
Checked 2026-10-25.