Colors
color-* · element/color/
Semantic colors
H1 Display
typography-h1 · element/typography/h1.md
Shapes
- Font family: references
typography-heading(Montserrat) - Size:
128px/ line-height0.9(115.2px) - Weight:
900 - Letter spacing:
-3.2px - Transform:
uppercase - Color:
--text-displayalias —color-brand-black(#000000) in light brands,color-neutral-0(#FFFFFF) in dark brands - Margin bottom:
16px· smoothing:antialiased
H1 Small
typography-h1-small · element/typography/h1-small.md
Shapes
- Font family: references
typography-heading(Montserrat) - Size:
48px/ line-height112%(53.76px) - Weight:
900 - Letter spacing:
0 - Transform:
uppercase - Color:
--text-displayalias —color-brand-black(#000000) in light brands,color-neutral-0(#FFFFFF) in dark brands - Margin bottom:
16px· smoothing:antialiased
H2 Section
typography-h2 · element/typography/h2.md
- Font family: references
typography-heading(Montserrat) - Size:
36px/ line-height40px(30px/36pxbelowmd) - Weight:
700 - Letter spacing:
0.25em(9pxat36px) - Transform:
uppercase - Color:
--text-displayalias —color-brand-black(#000000) in light brands,color-neutral-0(#FFFFFF) in dark brands - Hover:
color-brand-highlight(#ff5e6c) when the heading is a link — hover the preview
Heading Text
typography-heading · element/typography/heading.md
- Font family:
Montserrat, system-ui, sans-serif - Usage: headings, titles, UI labels, buttons
- Weight:
600/700
Body Text
typography-body · element/typography/body.md
- Font family:
'Montserrat', system-ui, sans-serif - Size:
1.05rem/ line-height1.75 - Weight:
400 - Color:
color-neutral-3(#0D0F10)
Buttons
component-button-primary · element/component/button-primary.md
- Shared: radius
0, uppercase,20px, padding16px, border0; stretches to fill (16pxgap) - Primary — bg
brand-highlight, textbrand-main; hover bgbrand-main-light, textneutral-0 - Outline —
4pxinset borderbrand-main, textbrand-main, bgneutral-0; hover border + textbrand-main-light - Muted — bg
neutral-0, textbrand-main; hover bgneutral-1, textbrand-main-light - Destructive — bg
semantic-error, textneutral-0; hover bgbrand-main-light, textneutral-0 - Warning — bg
semantic-warning, textbrand-main; hover bgbrand-main-light, textneutral-0 - Info — bg
semantic-info, textneutral-0; hover bgbrand-main-light, textneutral-0 - Success — bg
semantic-success, textbrand-main; hover bgbrand-main-light, textneutral-0 - Disabled (all variants) — opacity
0.5, cursornot-allowed, no hover
Card
component-card · element/component/card.md
Card container
A hard-edged surface with a 4px border and an 8px offset shadow, drawn from the --border alias.
- Border radius:
0 - Border:
4px solid—--borderalias (color-brand-main,#1a0002, in light brands) - Shadow:
8px 8px 0 0using the--borderalias - Background:
--surfacealias (color-neutral-0,#FFFFFF, in light brands)
Input
component-input · element/component/input.md
- Border radius:
0; border2px solid—--borderalias - Background
--surface, text--text-body - Padding:
8px 12px - Font: references
typography-body, size14px - Focus:
2pxoutline incolor-brand-highlight(#ff5e6c), offset-1px
Badge
component-badge · element/component/badge.md
- Display
inline-block; border radius0 - Border:
2px solid—--borderalias - Text color:
--text-mutedalias - Font:
ui-monospace, monospace, size11px - Padding:
2px 8px - Tones set border + text only, never a fill:
[data-tone="info"]color-semantic-info,successcolor-semantic-success,warningcolor-semantic-warning,errorcolor-semantic-error
Semantic Card
component-semantic-card · element/component/semantic-card.md
Info tone — the default.
Success tone.
Warning tone.
Error tone.
- Inherits
component-card: border radius0, border4px solid—--borderalias, shadow8px 8px 0 0—--borderalias, background--surfacealias - Stripe:
8pxwide, full height, flush inside the left border - Content padding:
24px - Tone via
data-tone, sets the stripe fill only: absent or[data-tone="info"]color-semantic-info,successcolor-semantic-success,warningcolor-semantic-warning,errorcolor-semantic-error
Link
component-link · element/component/link.md
- Color: inherited from
color-brand-highlight(#ff5e6c) - Weight:
600 - Decoration:
underline(always, not hover-only) - Hover color:
--brand-highlight-hover(#EA5663)
Table
component-table · element/component/table.md
| Title | Status | Visits |
|---|---|---|
| Cold outreach checklist | distribution | 1,284 |
| Positioning mini-course | published | 417 |
| Retired lead magnet | killed | 0 |
- Wrapper
overflow-x: auto; tablewidth: 100%,border-collapse: collapse - Border radius
0; outer border2px solid—--borderalias; background--surface - Header cell: references
typography-heading,12px, weight700, uppercase, letter spacing1px, text--text-muted, padding12px 16px, border bottom2px solid—--border - Body cell: references
typography-body,14px, text--text-body, padding12px 16px - Zebra and hover: row background
--bgalias [data-numeric="true"]: right aligned,ui-monospace, monospace[data-muted="true"]row: text--text-mutedalias- Empty state: one full-width cell, padding
24px 16px, centred,--text-muted
Select
component-select · element/component/select.md
- Border radius
0; border2px solid—--borderalias - Background
--surface, text--text-body - Padding:
8px 32px 8px 12px— the right pad clears the caret - Font: references
typography-body, size14px - Focus:
2pxoutline incolor-brand-highlight, offset-1px - Disabled: opacity
0.5, cursornot-allowed
Textarea
component-textarea · element/component/textarea.md
- Border radius
0; border2px solid—--borderalias - Background
--surface, text--text-body - Padding:
8px 12px - Font: references
typography-body, size14px, line height1.5 - Min height
96px; resizeverticalonly - Focus:
2pxoutline incolor-brand-highlight, offset-1px
Checkbox
component-checkbox · element/component/checkbox.md
- Box:
16pxsquare, radius0, border2px solid—--border, background--surface - Check mark drawn by the control in
--text-on-highlight - Checked: background and border
color-brand-highlight - Focus:
2pxoutline incolor-brand-highlight, offset2px - Disabled: opacity
0.5, cursornot-allowed - Label: references
typography-body,14px,--text-body,8pxgap
Default Spacing
layout-spacing-default · element/layout/spacing-default.md
- Default margin:
24px - Scale: multiples of 4/8 —
8 / 12 / 16 / 24 / 48px
Sidebar
layout-sidebar · element/layout/sidebar.md
- Sidebar:
240pxfixed width,position: fixed; inset: 0 auto 0 0 - Sidebar ground:
--sidebar-bgalias (--background) — in Distro,linear-gradient(90deg, color-brand-highlight, color-brand-main)(#30C5D2→#471069) - Sidebar text/icons:
--text-inverseat rest —component-nav-item's hover and active fills are unchanged - Brand wordmark: references
typography-heading,20px, weight900, letter-spacing2px, uppercase,--text-inverse, padding0 16px 24px - Content region:
margin-left: 240px, padding36px 28px 48px; inner wrapmax-width: 1200px; margin: 0 auto; background is the--bgalias (Distro re-points--bgto--neutral-1so content never sits on the gradient) - Footer: signed-in identity + sign out, padding
16px, border-top2px solid—--text-inverse,12pxtext,8pxgap,word-break: break-all; sign-out is an underlined text button, no background/border; nothing else - Active state: inherited from
component-nav-item's[data-active="true"]contract — the item whose route prefixes the current path - Collapse: single breakpoint at
767px— sidebar becomesposition: static, full width, padding12px 0; nav list hidden until the sidebar carries[data-open="true"]; a hamburger toggle (hidden above the breakpoint) flips it — described behaviourally, no specific icon library