Surfaces
When to reach for plain canvas, Card, Panel, or the halftone accent panel — a decision tree, density rules, and the halftone restraint rule.
The decision tree
Cronwerk has exactly four surface levels. Work down this list and stop at the first match:
- Plain canvas (
--canvas) — the default. Body copy, headings, and flowing content need no surface at all. If you are not grouping anything, do not wrap anything. - Card — one unit of content: an offer, a catalog
entry, a pricing tier, a settings row group. Off-white
--cardfill on a 1px--hairline,--radius-card(12). Cards sit in grids and lists. - Panel (
neutral/soft) — one zone of the page: a feature block, a settings section, a form region.--radius-panel(16), roomier padding.neutralis a hairline surface;softseparates by the--accent-softtint alone. Cards nest on panels — never the other way around. - Panel
accent— the halftone panel — the signature orange surface with halftone dots and the sun glow. It is a statement, not a container: hero, final CTA, or the one editorial moment a page earns.
The levels, rendered
Cron diagnostics
One unit of content on the off-white card surface.
Card — one unit of content source
<Card>
<h3>Cron diagnostics</h3>
<p>One unit of content on the off-white card surface.</p>
</Card> Settings
Panel neutral — one zone, cards nest on it source
<Panel variant="neutral">
<h3>Settings</h3>
<Card>Nested card on the neutral panel.</Card>
</Panel> Feature block
Quiet warm emphasis without a border.
Panel soft — separation by warm tint alone source
<Panel variant="soft">
<h3>Feature block</h3>
<p>Quiet warm emphasis without a border.</p>
</Panel> Work that runs itself.
Panel accent — the halftone statement surface source
<Panel>
<h2>Work that runs itself.</h2>
</Panel> Density rules
- Depth is hairlines, never shadows. A surface earns separation from its
border or fill —
--shadowisnoneacross the language. - Two levels deep, maximum. Canvas → Panel → Card is the deepest legal stack. A card on a card, or a panel inside a card, is a smell: flatten it.
- Don’t wrap singles. One card alone in a section usually means the card isn’t needed — put the content on the canvas.
- Grids of cards use
--space-2–--space-4gaps (the bento rhythm); panels breathe with--space-8padding and section rhythm between zones. - Dark theme comes free for canvas, Card, and neutral/soft Panel via tokens. The accent panel stays orange in both themes — that is a feature, not a bug.
The halftone restraint rule
Do
Give the hero the halftone panel, keep every section between it and the final CTA on canvas, cards, and neutral panels.
Don't
Don’t use the halftone panel as a section background, a card variant, or a
callout — for warm emphasis inside the page, reach for Panel variant="soft".
Do
Inside the halftone panel, use display-size white text and the on-orange
kit: Button solid-white / translucent, AnnounceChip, WerkChip,
CronLines, Ticker.
Don't
Don’t place body-size muted text or accent-colored controls on the orange
— white on --accent is ~3.1:1, display sizes only.