Remixes of notion.so
Latest remixes
No public remixes yet. Be the first to make one.
Remix itLatest remixes
No public remixes yet. Be the first to make one.
Remix itSwitch between the rendered Visual preview and the Raw DESIGN.md.
version: alpha
name: Notion
description: |
Notion's design system embodies a clean, minimal aesthetic paired with
purposeful color accents and bold typography. The visual personality is
professional yet approachable, emphasizing clarity and hierarchy through
generous whitespace, well-defined surfaces, and precise typographic choices.
The system favors flat, light surfaces anchored by a confident blue accent
(#0075DE) that draws focus to primary actions. Typography plays a central
role, with large display sizes featuring tight negative letter-spacing for
impact, while body copy remains open and readable. The overall effect is one
of calm efficiency—suitable for a workspace tool where users manage complex
information and collaboration.
source:
url: "https://notion.so"
pagesAnalyzed: 6
extractedAt: 2026-11-05
tokensMeasured: true
colors:
primary: "#0075DE"
accent: "#24292F"
canvas: "#FFFFFF"
surface: "#F6F5F4"
on-primary: "#FFFFFF"
ink: "#000000"
body: "#615D59"
muted: "#A39E98"
accent-1: "#097FE8"
accent-2: "#005BAB"
accent-3: "#2684FF"
accent-4: "#5059C9"
accent-5: "#7B83EB"
accent-6: "#0364B8"
neutral-1: "#E6F3FE"
neutral-2: "#F2F9FF"
neutral-3: "#111111"
typography:
display-xxl:
fontFamily: NotionInter
fontSize: 96px
fontWeight: 600
lineHeight: 1.04
letterSpacing: -4.6px
display-xl:
fontFamily: NotionInter
fontSize: 72px
fontWeight: 500
lineHeight: 1.21
letterSpacing: -2px
display-lg:
fontFamily: NotionInter
fontSize: 64px
fontWeight: 700
lineHeight: 1
letterSpacing: -2.13px
display-md:
fontFamily: NotionInter
fontSize: 54px
fontWeight: 600
lineHeight: 1.04
letterSpacing: -1.88px
display-md-strong:
fontFamily: NotionInter
fontSize: 54px
fontWeight: 700
lineHeight: 1.04
letterSpacing: -1.88px
display-sm:
fontFamily: NotionInter
fontSize: 42px
fontWeight: 700
lineHeight: 1.14
letterSpacing: -1.5px
heading-xl:
fontFamily: NotionInter
fontSize: 32px
fontWeight: 700
lineHeight: 1.25
letterSpacing: -0.75px
heading-lg:
fontFamily: NotionInter
fontSize: 26px
fontWeight: 700
lineHeight: 1.23
letterSpacing: -0.62px
heading-md:
fontFamily: NotionInter
fontSize: 22px
fontWeight: 700
lineHeight: 1.27
letterSpacing: -0.25px
heading-sm:
fontFamily: NotionInter
fontSize: 18px
fontWeight: 700
lineHeight: 1.56
letterSpacing: -0.12px
heading-xs:
fontFamily: NotionInter
fontSize: 16px
fontWeight: 700
lineHeight: 1.5
letterSpacing: 0px
quote-xl:
fontFamily: "Lyon Text"
fontSize: 32px
fontWeight: 400
lineHeight: 1.25
letterSpacing: 0px
quote-lg:
fontFamily: "Lyon Text"
fontSize: 20px
fontWeight: 400
lineHeight: 1.4
letterSpacing: 0px
quote-md:
fontFamily: "Lyon Text"
fontSize: 18px
fontWeight: 400
lineHeight: 1.56
letterSpacing: 0px
body-xl:
fontFamily: NotionInter
fontSize: 20px
fontWeight: 400
lineHeight: 1.4
letterSpacing: -0.12px
body-lg:
fontFamily: NotionInter
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
body-lg-strong:
fontFamily: NotionInter
fontSize: 16px
fontWeight: 500
lineHeight: 1.5
letterSpacing: 0px
body-lg-2:
fontFamily: NotionInter
fontSize: 16px
fontWeight: 600
lineHeight: 1.5
letterSpacing: 0px
body-md:
fontFamily: NotionInter
fontSize: 14px
fontWeight: 400
lineHeight: 1.43
letterSpacing: 0px
body-md-strong:
fontFamily: NotionInter
fontSize: 14px
fontWeight: 500
lineHeight: 1.43
letterSpacing: 0px
caption-xs:
fontFamily: NotionInter
fontSize: 12px
fontWeight: 400
lineHeight: 1.33
letterSpacing: 0.13px
caption-xs-strong:
fontFamily: NotionInter
fontSize: 12px
fontWeight: 500
lineHeight: 1.33
letterSpacing: 0.13px
caption-xs-2:
fontFamily: NotionInter
fontSize: 12px
fontWeight: 600
lineHeight: 1.33
letterSpacing: 0.13px
code:
fontFamily: NotionInter
fontSize: 14px
fontWeight: 500
lineHeight: 1.71
letterSpacing: 0px
rounded:
none: 0px
xs: 4px
sm: 5px
md: 6px
lg: 8px
xl: 10px
xxl: 12px
r-16: 16px
full: 9999px
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 20px
xl: 24px
xxl: 28px
xxxl: 32px
section: 36px
band: 40px
borderWidths:
thin: 1px
shadows:
sm: "rgba(0, 0, 0, 0.01) 0px 0.175px 1.041px 0px, rgba(0, 0, 0, 0.02) 0px 0.8px 2.925px 0px, rgba(0, 0, 0, 0.027) 0px 2.025px 7.847px 0px, rgba(0, 0, 0, 0.04) 0px 4px 18px 0px"
md: "rgba(0, 0, 0, 0.2) 0px 2px 7px 0px"
lg: "rgba(0, 0, 0, 0.04) 0px 4px 18px 0px, rgba(0, 0, 0, 0.027) 0px 2.025px 7.84688px 0px, rgba(0, 0, 0, 0.02) 0px 0.8px 2.925px 0px, rgba(0, 0, 0, 0.01) 0px 0.175px 1.04062px 0px, rgba(255, 255, 255, 0.6) 0px 0px 1px 0px"
elevationStrategy: layered-micro
themes:
derived: dark # the other theme is the site's measured palette
light:
bg: "#FFFFFF"
surface: "#F6F5F4"
surfaceRaised: "#ECEBEA"
text: "#000000"
textMuted: "#615D59"
border: "#E0E0E0"
accent: "#0075DE"
accentFg: "#000000"
focusRing: "#0075DE"
elevation: shadow
dark:
bg: "#090F16"
surface: "#181D24"
surfaceRaised: "#242930"
text: "#F5F9FE"
textMuted: "#9BA0A6"
border: "#30353B"
accent: "#0080F2"
accentFg: "#0B0B0C"
focusRing: "#0075DE"
elevation: "border+surface"
gradients:
- context: section
kind: linear
value: "linear-gradient(rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, 0.55) 100%)"
components:
button-primary:
typography: "{typography.body-lg-strong}"
textColor: "{colors.on-primary}"
height: 38px
padding: "6px 15px 6px 15px"
rounded: "{rounded.lg}"
backgroundColor: "{colors.primary}"
button-filled:
typography: "{typography.body-lg-strong}"
textColor: "{colors.accent-2}"
height: 38px
padding: "6px 15px 6px 15px"
rounded: "{rounded.lg}"
backgroundColor: "{colors.neutral-1}"
button-secondary:
typography: "{typography.body-lg}"
textColor: "{colors.on-primary}"
height: 32px
rounded: "50%"
backgroundColor: "rgba(0, 0, 0, 0.05)"
button-outline:
typography: "{typography.body-md-strong}"
textColor: "rgba(0, 0, 0, 0.95)"
border: "1px solid rgba(0, 0, 0, 0.1)"
height: 38px
padding: "8px 16px 8px 16px"
rounded: 9999.01px
backgroundColor: "{colors.canvas}"
button-text:
typography: "{typography.body-lg}"
textColor: "rgba(0, 0, 0, 0.898)"
height: 30px
padding: "5px 10px 5px 10px"
rounded: "{rounded.xs}"
button-text-sm:
typography: "{typography.body-md}"
textColor: "rgba(0, 0, 0, 0.54)"
height: 20px
card:
typography: "{typography.body-lg}"
textColor: "rgba(0, 0, 0, 0.898)"
rounded: "{rounded.xxl}"
backgroundColor: "{colors.canvas}"
card-sm:
typography: "{typography.body-lg}"
textColor: "rgba(0, 0, 0, 0.898)"
navigation:
typography: "{typography.body-lg}"
textColor: "rgba(0, 0, 0, 0.898)"
height: 64px
backgroundColor: "{colors.canvas}"
footer:
typography: "{typography.body-lg}"
textColor: "rgba(0, 0, 0, 0.898)"
padding: "80px 0px 24px 0px"
backgroundColor: "{colors.canvas}"
footer-sm:
typography: "{typography.body-lg}"
textColor: "rgba(0, 0, 0, 0.54)"
padding: "16px 0px 0px 0px"
link:
typography: "{typography.body-lg}"
textColor: "rgba(0, 0, 0, 0.95)"
rounded: "{rounded.xxl}"
link-sm:
typography: "{typography.body-lg}"
textColor: "rgba(0, 0, 0, 0.95)"
badge-filled:
typography: "{typography.caption-xs-2}"
textColor: "{colors.accent-1}"
height: 16.7344px
padding: "4px 8px 4px 8px"
rounded: 9999.01px
backgroundColor: "{colors.neutral-2}"
badge-filled-2:
typography: "{typography.caption-xs-2}"
textColor: "rgb(49, 48, 46)"
height: 16.7344px
padding: "4px 8px 4px 8px"
rounded: 9999.01px
backgroundColor: "{colors.surface}"
badge-text:
typography: "{typography.caption-xs-2}"
textColor: "rgba(0, 0, 0, 0.54)"
height: 24px
padding: "4px 8px 4px 8px"
rounded: 14px
backgroundColor: "{colors.canvas}"
badge-text-sm:
typography: "{typography.caption-xs-2}"
textColor: "{colors.accent-1}"
height: 16.7344px
padding: "4px 8px 4px 8px"
rounded: 9999.01px
backgroundColor: "{colors.canvas}"
states:
other-hover:
target: other
state: hover
opacity: 0.75
other-focus-visible:
target: other
state: focus-visible
outline: "solid 2px"
outlineWidth: 2px
link-hover:
target: link
state: hover
textDecoration: underline
link-focus:
target: link
state: focus
textDecoration: underline
link-active:
target: link
state: active
textDecoration: underline
other-disabled:
target: other
state: disabled
opacity: 0.5
other-active:
target: other
state: active
opacity: 1
link-disabled:
target: link
state: disabled
opacity: 0.5
breakpoints:
- width: 375
containerWidth: 343
gridColumns: 3
navLinksVisible: 25
menuToggleVisible: true
headingPx: 42
bodyPx: 16
sectionPaddingX: 16
- width: 768
containerWidth: 653
gridColumns: 3
navLinksVisible: 25
menuToggleVisible: true
headingPx: 61
bodyPx: 16
sectionPaddingX: 58
- width: 1024
containerWidth: 870
gridColumns: 3
navLinksVisible: 26
menuToggleVisible: true
headingPx: 90
bodyPx: 16
sectionPaddingX: 77
- width: 1280
containerWidth: 1094
gridColumns: 3
navLinksVisible: 28
menuToggleVisible: true
headingPx: 96
bodyPx: 16
sectionPaddingX: 93
- width: 1440
containerWidth: 1229
gridColumns: 3
navLinksVisible: 28
menuToggleVisible: true
headingPx: 96
bodyPx: 16
sectionPaddingX: 106
coverage:
statesFound: 100
gradientsFound: 1
rolesUnassigned: 9
archetypesUnnamed: 0
archetypesDetected: 0
responsiveMeasured: true
stylesheetsBlocked: true
semanticRampDeclared: false
Notion's design system embodies a clean, minimal aesthetic paired with purposeful color accents and bold typography. The visual personality is professional yet approachable, emphasizing clarity and hierarchy through generous whitespace, well-defined surfaces, and precise typographic choices. The system favors flat, light surfaces anchored by a confident blue accent ({colors.primary} — #0075DE) that draws focus to primary actions. Typography plays a central role, with large display sizes featuring tight negative letter-spacing for impact, while body copy remains open and readable. The overall effect is one of calm efficiency—suitable for a workspace tool where users manage complex information and collaboration.
Key Characteristics
#0075DE) as the dominant interactive accent{colors.primary} — #0075DE): Primary CTA buttons, brand accent, active states, and interactive elements throughout the interface. This is the dominant accent color establishing brand identity.{colors.canvas} — #FFFFFF): Default page background and text color displayed on brand-colored surfaces.{colors.accent} — #24292F): Hero band backgrounds and secondary accent applications.{colors.accent-1} — #097FE8): Supporting decorative accent with no assigned functional role.{colors.accent-2} — #005BAB): Supporting decorative accent with no assigned functional role.{colors.accent-3} — #2684FF): Supporting decorative accent with no assigned functional role.{colors.accent-4} — #5059C9): Supporting decorative accent with no assigned functional role.{colors.accent-5} — #7B83EB): Supporting decorative accent with no assigned functional role.{colors.accent-6} — #0364B8): Supporting decorative accent with no assigned functional role.{colors.ink} — #000000): Primary headings and strong text requiring maximum contrast.{colors.body} — #615D59): Standard body copy text color providing comfortable readability.{colors.muted} — #A39E98): Captions, secondary text, and de-emphasized content.{colors.surface} — #F6F5F4): Card and panel backgrounds, providing subtle lift from canvas.{colors.neutral-1} — #E6F3FE): Light neutral supporting surface, often used for soft accent backgrounds.{colors.neutral-2} — #F2F9FF): Very light neutral surface for subtle background distinction.{colors.neutral-3} — #111111): Dark neutral for strong contrast when needed.Primary Font: NotionInter (sans-serif)
Fallback stack: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif
Secondary Font: Lyon Text (serif)
Fallback stack: Georgia, "Times New Roman", serif
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display XL | NotionInter | 72px | 500 | 1.21 | -2px | Hero headline; measured on display element |
| Display XXL | NotionInter | 96px | 600 | 1.04 | -4.6px | Maximum display size; prominent hero text |
| Display LG | NotionInter | 64px | 700 | 1 | -2.13px | Large hero section text |
| Display MD | NotionInter | 54px | 600–700 | 1.04 | -1.88px | Medium-sized display heading |
| Display SM | NotionInter | 42px | 700 | 1.14 | -1.5px | Smaller display text; responsive headline |
| Heading XL | NotionInter | 32px | 700 | 1.25 | -0.75px | Large section heading |
| Heading LG | NotionInter | 26px | 700 | 1.23 | -0.62px | Medium section heading |
| Heading MD | NotionInter | 22px | 700 | 1.27 | -0.25px | Standard section heading |
| Heading SM | NotionInter | 18px | 700 | 1.56 | -0.12px | Smaller heading variant |
| Heading XS | NotionInter | 16px | 700 | 1.5 | 0px | Small heading; used in sidebar and dense layouts |
| Body LG | NotionInter | 16px | 400–600 | 1.5 | 0px | Large body text; links and larger content |
| Body MD | NotionInter | 14px | 400–500 | 1.43 | 0px | Standard body text and list items |
| Body XL | NotionInter | 20px | 400 | 1.4 | -0.12px | Extra-large body copy; prominent text blocks |
| Caption XS | NotionInter | 12px | 400–600 | 1.33 | 0.13px | Small captions and labels; secondary information |
| Code | NotionInter | 14px | 500 | 1.71 | 0px | Monospaced code display |
| Quote LG | Lyon Text | 20px | 400 | 1.4 | 0px | Large quote; serif typeface for editorial feel |
| Quote MD | Lyon Text | 18px | 400 | 1.56 | 0px | Medium quote; serif typeface |
| Quote XL | Lyon Text | 32px | 400 | 1.25 | 0px | Extra-large quote; serif typeface |
Primary
{colors.primary} (#0075DE){colors.canvas} (#FFFFFF)6px 15px{rounded.lg} (8px)Secondary / Filled Light
{colors.neutral-1} (#E6F3FE)#005BAB6px 15px{rounded.lg} (8px)Ghost / Outline
{colors.canvas} (#FFFFFF)rgba(0, 0, 0, 0.95)8px 16px{rounded.full} (9999px)rgba(0, 0, 0, 0.1)Text / Minimal
rgba(0, 0, 0, 0.898)5px 10px{rounded.xs} (4px)Text Small
rgba(0, 0, 0, 0.54)0px{rounded.none} (0px)Icon Button (Secondary)
rgba(0, 0, 0, 0.05){colors.canvas} (#FFFFFF)0px{rounded.full} (50%)Card – Default
{colors.canvas} (#FFFFFF)rgba(0, 0, 0, 0.898){rounded.xxl} (12px)0px (child elements manage internal spacing)Card – Flat / No Border Radius
rgba(0, 0, 0, 0)rgba(0, 0, 0, 0.898){rounded.none} (0px)0pxPrimary Navigation
{colors.canvas} (#FFFFFF)rgba(0, 0, 0, 0.898)0px{rounded.none} (0px)rgba(0, 0, 0, 0) (hairline, effectively invisible)rgba(0, 0, 0, 0) 0px 1px 0px 0pxFooter – Default
{colors.canvas} (#FFFFFF)rgba(0, 0, 0, 0.898)80px 0px 24px 0pxrgba(0, 0, 0, 0.1) (top border){rounded.none} (0px)Footer – Small / Secondary
rgba(0, 0, 0, 0.54)16px 0px{rounded.none} (0px)Link – Default
rgba(0, 0, 0, 0.95)0px{rounded.xxl} (12px) when applied to card-like link containers; 0px for inline text linksBadge – Filled Primary
{colors.neutral-2} (#F2F9FF){colors.accent-1} (#097FE8)4px 8px{rounded.full} (9999px)Badge – Filled Secondary
{colors.surface} (#F6F5F4)#3130304px 8px{rounded.full} (9999px)Badge – Text
{colors.canvas} (#FFFFFF)rgba(0, 0, 0, 0.54)4px 8pxBadge – Text Primary Accent
{colors.canvas} (#FFFFFF){colors.accent-1} (#097FE8)4px 8px{rounded.full} (9999px)The spacing system uses an 8px base unit with a defined scale for consistent rhythm and alignment:
{spacing.xxs} = 4px — Micro spacing for tight internal padding (e.g., icon-to-text separation){spacing.xs} = 8px — Minimal spacing between small adjacent elements{spacing.sm} = 12px — Small spacing for compact component interiors{spacing.md} = 16px — Standard spacing for default padding and margins{spacing.lg} = 20px — Generous spacing between elements{spacing.xl} = 24px — Large spacing for distinct sections{spacing.xxl} = 28px — Extra-large spacing between major sections{spacing.xxxl} = 32px — Large block spacing{spacing.section} = 36px — Section-level vertical rhythm{spacing.band} = 40px — Full-width band spacingUsage Context
{spacing.xs} to {spacing.md}{spacing.md} to {spacing.xl}{spacing.section} to {spacing.band}{spacing.band} for generous breathing roomWhitespace is deployed generously to create visual breathing room and emphasize hierarchy. Large display typography is surrounded by ample space to create focus. Card-based layouts rely on color-blocking and whitespace rather than shadows for depth definition. Sections are separated by {spacing.section} to {spacing.band} to ensure content clarity and prevent visual crowding.
{rounded.none} = 0px — Sharp edges for flat, modern aesthetic; used on large cards, navigation, and structure{rounded.xs} = 4px — Minimal rounding for tight, compact components{rounded.sm} = 5px — Subtle rounding for small elements{rounded.md} = 6px — Medium rounding for balanced appearance{rounded.lg} = 8px — Standard rounding for buttons and smaller containers{rounded.xl} = 10px — Generous rounding for interactive elements{rounded.xxl} = 12px — Rounded appearance for cards and larger containers{rounded.r-16} = 16px — Extra-rounded for emphasis{rounded.full} = 9999px — Pill-shaped buttons, badges, and circular elementsComponent Context
{rounded.lg} (8px) primary, {rounded.full} (9999px) for outline/pill variants{rounded.xxl} (12px){rounded.full} (9999px){rounded.none} (0px){rounded.xs} (4px)The elevation system employs minimal layered micro-shadows that provide subtle depth without visual weight. Depth comes primarily through color-blocking and surface shifts rather than pronounced shadows.
| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow | Base surfaces (canvas, body backgrounds) |
| sm | rgba(0, 0, 0, 0.01) 0px 0.175px 1.041px 0px, rgba(0, 0, 0, 0.02) 0px 0.8px 2.925px 0px, rgba(0, 0, 0, 0.027) 0px 2.025px 7.847px 0px, rgba(0, 0, 0, 0.04) 0px 4px 18px 0px | Dropdowns, floating elements |
| md | rgba(0, 0, 0, 0) 0px 1px 0px 0px | Navigation bars, subtle divider lines |
| lg | rgba(0, 0, 0, 0.2) 0px 2px 7px 0px | Modals, elevated overlays |
| xl | rgba(0, 0, 0, 0.04) 0px 4px 18px 0px, rgba(0, 0, 0, 0.027) 0px 2.025px 7.84688px 0px, rgba(0, 0, 0, 0.02) 0px 0.8px 2.925px 0px, rgba(0, 0, 0, 0.01) 0px 0.175px 1.04062px 0px, rgba(255, 255, 255, 0.6) 0px 0px 1px 0px | Custom elevated elements, premium surfaces |
Shadow Philosophy
The system favors color-blocking as the primary depth strategy. Shadows are used sparingly and employ multiple transparent layers stacked for a barely-there lift effect (layered-micro approach). This creates a refined, modern appearance where elevation is suggested rather than declared. The innermost layers are near-transparent, building subtly to a maximum opacity at the largest scale.
0.05) — Extremely subtle background tint or hover state0.10) — Light transparency for disabled or muted elements0.20) — Moderate transparency for secondary overlays0.42) — Pronounced transparency for distinct visual separation0.50) — Half opacity for medium-contrast overlays0.80) — High opacity with slight transparency for emphasisTypical Usage
The stacking order follows a hierarchical scale:
#0075DE) for all primary calls-to-action to maintain brand recognition and guide user focus.{colors.surface} — light gray) and neutrals to create layering without relying on drop shadows.{rounded.lg} (8px) for solid buttons, {rounded.full} (9999px) for outline/pill variants.{colors.ink} for headings, {colors.body} for body copy, {colors.muted} for captions.{spacing.md} (16px) as the default padding for standard components; adjust up or down based on component size and context.{rounded.full} — 9999px) for badges and pill-shaped buttons to reinforce the accessible, modern aesthetic.{rounded.xxl} (12px); this is the system's card standard.{colors.accent} — #24292F) as a text color; it is reserved for hero band and background applications.{colors.accent-1} through {colors.accent-6}) as functional status indicators; they have no assigned semantic role and should be used sparingly for decorative accents only.| Breakpoint | Viewport Width | Content Column | Grid Columns | Heading Size | Body Size | Section Padding-X | Notable Changes |
|---|---|---|---|---|---|---|---|
| Mobile | 375px | 343px | 3 | 42px | 16px | 16px | Default mobile layout; full-width sections with tight padding |
| Tablet | 768px | 653px | 3 | 61px | 16px | 58px | Expanded content width; moderate horizontal padding |
| Desktop | 1024px | 870px | 3 | 90px | 16px | 77px | Large heading sizes introduced; generous horizontal padding |
| Large Desktop | 1280px | 1094px | 3 | 96px | 16px | 93px | Maximum heading sizes; wide content columns |
| Full HD | 1440px | 1229px | 3 | 96px | 16px | 106px | Maximum layout; full-width section padding scales to 106px |
Breakpoint Strategy
The system does not reduce column count below 3 columns across any measured breakpoint. Responsive behavior is achieved through:
{spacing.md} baseline; increased viewport width allows for more generous margins between interactive elements.Minimum touch targets are 38px × 38px for primary buttons and interactive elements. Icon buttons measure 32px × 32px minimum. Links and text buttons should provide at least 44px × 44px of interactive surface area when possible to accommodate finger-based interaction on mobile devices.
Navigation
Navigation remains visible across all breakpoints with 25–28 visible links measured. A menu toggle appears on mobile (375px) but navigation does not collapse to hamburger-only mode within the measured range.
Content Layout
{spacing.section} to {spacing.band} separation.Horizontal Scrolling
The system avoids horizontal scrolling by proportionally scaling all widths. No measured breakpoint triggers overflow; instead, padding and content column width adjust to maintain full viewport coverage.
#0075DE) — use for primary buttons, active states, and brand accent elements#E6F3FE) — use for secondary button fills and soft accent backgrounds#FFFFFF)#F6F5F4)#000000)#615D59)#A39E98)#E6F3FE)#F2F9FF)Typography Precision: Display sizes (42px+) always receive the exact negative letter-spacing specified in Section 3. Do not round -1.5px, -2px, -4.6px, etc. to zero. This is a defining trait of the brand.
Button Consistency: Primary buttons use {rounded.lg} (8px); outline/pill variants use {rounded.full} (9999px). Do not invent intermediate radius values.
Depth Strategy: Prioritize color-blocking (surface color shifts) over shadows. Use the defined shadow set (sm/md/lg/xl) only when elevation is semantically necessary (dropdowns, modals). Avoid inventing new shadow values.
Spacing Baseline: {spacing.md} (16px) is the default for most padding and margins. Scale up for larger components, down for compact inline elements. Never skip to larger values without a clear visual reason.
Color Role Discipline: The primary blue (#0075DE) is only for primary actions and brand accent. Do not repurpose it as an error or success indicator; the system has no semantic status ramp.
Responsive Scaling: All widths, padding, and typography scale across the breakpoint table. Do not introduce media queries at arbitrary screen sizes; use the defined breakpoints only.
Neutral Text Ramp: Use {colors.ink} (#000000) for headings, {colors.body} (#615D59) for body copy, and {colors.muted} (#A39E98) for secondary text. Do not invent intermediate shades.
Serif Exclusivity: Lyon Text is reserved for quotations ({typography.quote-*} roles). Do not use serif for buttons, labels, or body copy.
Z-index Discipline: Use only the defined layering values (1–4, 10, 100, 500, 1000). Do not invent intermediate z-index numbers; this ensures predictable stacking behavior.
Interaction States: Hover, focus, and active states are defined in Section 6 under "Interaction States." Where not explicitly specified, default to a 5–10% opacity shift or subtle color adjustment rather than inventing new state behavior.
{colors.accent-1} through {colors.accent-6} are present in the palette but have no measurable functional role. Treat them as decorative only and do not repurpose them as status indicators or semantic elements without explicit design direction.