--- version: alpha name: Notion description: Notion presents itself as the all-in-one workspace through a confident, illustration-rich brand voice — anchored by a deep navy hero band ({colors.brand-navy}) decorated with brand-colored sticky-note dots and mesh wire illustrations, a signature purple pill primary CTA ({colors.primary}), and a rich palette of pastel-tinted feature cards that echo the colorful database properties of the live product. The system uses a Notion-Sans (Inter-based) typeface across every UI surface, anchors a 4-tier pricing comparison (Free / Plus / Business / Enterprise), and presents the live workspace UI mockup directly inside the hero band. Coverage spans homepage, Enterprise, Product AI, Product Agents, Startups, and Pricing surfaces. colors: primary: "#5645d4" primary-pressed: "#4534b3" primary-deep: "#3a2a99" on-primary: "#ffffff" brand-navy: "#0a1530" brand-navy-deep: "#070f24" brand-navy-mid: "#1a2a52" link-blue: "#0075de" link-blue-pressed: "#005bab" brand-orange: "#dd5b00" brand-orange-deep: "#793400" brand-pink: "#ff64c8" brand-pink-deep: "#a02e6d" brand-purple: "#7b3ff2" brand-purple-300: "#d6b6f6" brand-purple-800: "#391c57" brand-teal: "#2a9d99" brand-green: "#1aae39" brand-yellow: "#f5d75e" brand-brown: "#523410" card-tint-peach: "#ffe8d4" card-tint-rose: "#fde0ec" card-tint-mint: "#d9f3e1" card-tint-lavender: "#e6e0f5" card-tint-sky: "#dcecfa" card-tint-yellow: "#fef7d6" card-tint-yellow-bold: "#f9e79f" card-tint-cream: "#f8f5e8" card-tint-gray: "#f0eeec" canvas: "#ffffff" surface: "#f6f5f4" surface-soft: "#fafaf9" hairline: "#e5e3df" hairline-soft: "#ede9e4" hairline-strong: "#c8c4be" ink-deep: "#000000" ink: "#1a1a1a" charcoal: "#37352f" slate: "#5d5b54" steel: "#787671" stone: "#a4a097" muted: "#bbb8b1" on-dark: "#ffffff" on-dark-muted: "#a4a097" semantic-success: "#1aae39" semantic-warning: "#dd5b00" semantic-error: "#e03131" typography: hero-display: fontFamily: Notion Sans fontSize: 80px fontWeight: 600 lineHeight: 1.05 letterSpacing: -2px display-lg: fontFamily: Notion Sans fontSize: 56px fontWeight: 600 lineHeight: 1.10 letterSpacing: -1px heading-1: fontFamily: Notion Sans fontSize: 48px fontWeight: 600 lineHeight: 1.15 letterSpacing: -0.5px heading-2: fontFamily: Notion Sans fontSize: 36px fontWeight: 600 lineHeight: 1.20 letterSpacing: -0.5px heading-3: fontFamily: Notion Sans fontSize: 28px fontWeight: 600 lineHeight: 1.25 heading-4: fontFamily: Notion Sans fontSize: 22px fontWeight: 600 lineHeight: 1.30 heading-5: fontFamily: Notion Sans fontSize: 18px fontWeight: 600 lineHeight: 1.40 subtitle: fontFamily: Notion Sans fontSize: 18px fontWeight: 400 lineHeight: 1.50 body-md: fontFamily: Notion Sans fontSize: 16px fontWeight: 400 lineHeight: 1.55 body-md-medium: fontFamily: Notion Sans fontSize: 16px fontWeight: 500 lineHeight: 1.55 body-sm: fontFamily: Notion Sans fontSize: 14px fontWeight: 400 lineHeight: 1.50 body-sm-medium: fontFamily: Notion Sans fontSize: 14px fontWeight: 500 lineHeight: 1.50 caption: fontFamily: Notion Sans fontSize: 13px fontWeight: 400 lineHeight: 1.40 caption-bold: fontFamily: Notion Sans fontSize: 13px fontWeight: 600 lineHeight: 1.40 micro: fontFamily: Notion Sans fontSize: 12px fontWeight: 500 lineHeight: 1.40 micro-uppercase: fontFamily: Notion Sans fontSize: 11px fontWeight: 600 lineHeight: 1.40 letterSpacing: 1px button-md: fontFamily: Notion Sans fontSize: 14px fontWeight: 500 lineHeight: 1.30 rounded: xs: 4px sm: 6px md: 8px lg: 12px xl: 16px xxl: 20px xxxl: 24px full: 9999px spacing: xxs: 4px xs: 8px sm: 12px md: 16px lg: 20px xl: 24px xxl: 32px xxxl: 40px section-sm: 48px section: 64px section-lg: 96px hero: 120px components: button-primary: backgroundColor: "{colors.primary}" textColor: "{colors.on-primary}" typography: "{typography.button-md}" rounded: "{rounded.md}" padding: "10px 18px" button-primary-pressed: backgroundColor: "{colors.primary-pressed}" textColor: "{colors.on-primary}" button-primary-disabled: backgroundColor: "{colors.hairline}" textColor: "{colors.muted}" button-dark: backgroundColor: "{colors.ink-deep}" textColor: "{colors.on-dark}" typography: "{typography.button-md}" rounded: "{rounded.md}" padding: "10px 18px" button-secondary: backgroundColor: "transparent" textColor: "{colors.ink}" typography: "{typography.button-md}" rounded: "{rounded.md}" padding: "10px 18px" border: "1px solid {colors.hairline-strong}" button-on-dark: backgroundColor: "{colors.on-dark}" textColor: "{colors.ink}" typography: "{typography.button-md}" rounded: "{rounded.md}" padding: "10px 18px" button-secondary-on-dark: backgroundColor: "transparent" textColor: "{colors.on-dark}" typography: "{typography.button-md}" rounded: "{rounded.md}" padding: "10px 18px" border: "1px solid {colors.on-dark-muted}" button-ghost: backgroundColor: "transparent" textColor: "{colors.ink}" typography: "{typography.button-md}" rounded: "{rounded.sm}" padding: "8px 12px" button-link: backgroundColor: "transparent" textColor: "{colors.link-blue}" typography: "{typography.body-sm-medium}" padding: "0" card-base: backgroundColor: "{colors.canvas}" rounded: "{rounded.lg}" padding: "{spacing.xl}" border: "1px solid {colors.hairline}" card-feature: backgroundColor: "{colors.canvas}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" border: "1px solid {colors.hairline}" card-feature-yellow-bold: backgroundColor: "{colors.card-tint-yellow-bold}" textColor: "{colors.charcoal}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" card-feature-peach: backgroundColor: "{colors.card-tint-peach}" textColor: "{colors.charcoal}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" card-feature-rose: backgroundColor: "{colors.card-tint-rose}" textColor: "{colors.charcoal}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" card-feature-mint: backgroundColor: "{colors.card-tint-mint}" textColor: "{colors.charcoal}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" card-feature-sky: backgroundColor: "{colors.card-tint-sky}" textColor: "{colors.charcoal}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" card-feature-lavender: backgroundColor: "{colors.card-tint-lavender}" textColor: "{colors.charcoal}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" card-feature-yellow: backgroundColor: "{colors.card-tint-yellow}" textColor: "{colors.charcoal}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" card-feature-cream: backgroundColor: "{colors.card-tint-cream}" textColor: "{colors.charcoal}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" card-agent-tile: backgroundColor: "{colors.canvas}" rounded: "{rounded.lg}" padding: "{spacing.xl}" border: "1px solid {colors.hairline}" card-template: backgroundColor: "{colors.canvas}" rounded: "{rounded.lg}" padding: "{spacing.lg}" border: "1px solid {colors.hairline}" card-startup-perk: backgroundColor: "{colors.canvas}" rounded: "{rounded.lg}" padding: "{spacing.xl}" border: "1px solid {colors.hairline}" pricing-card: backgroundColor: "{colors.canvas}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" border: "1px solid {colors.hairline}" pricing-card-featured: backgroundColor: "{colors.surface}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" border: "2px solid {colors.primary}" text-input: backgroundColor: "{colors.canvas}" textColor: "{colors.ink}" typography: "{typography.body-md}" rounded: "{rounded.md}" padding: "{spacing.sm} {spacing.md}" border: "1px solid {colors.hairline-strong}" height: 44px text-input-focused: backgroundColor: "{colors.canvas}" textColor: "{colors.ink}" border: "2px solid {colors.primary}" search-pill: backgroundColor: "{colors.surface}" textColor: "{colors.steel}" typography: "{typography.body-md}" rounded: "{rounded.md}" padding: "{spacing.sm} {spacing.md}" height: 44px border: "1px solid {colors.hairline}" pill-tab: backgroundColor: "transparent" textColor: "{colors.steel}" typography: "{typography.body-sm-medium}" rounded: "{rounded.full}" padding: "{spacing.xs} {spacing.md}" border: "1px solid {colors.hairline}" pill-tab-active: backgroundColor: "{colors.ink-deep}" textColor: "{colors.on-dark}" rounded: "{rounded.full}" border: "1px solid {colors.ink-deep}" segmented-tab: backgroundColor: "transparent" textColor: "{colors.steel}" typography: "{typography.body-sm-medium}" padding: "{spacing.sm} {spacing.md}" border: "0 0 2px transparent solid" segmented-tab-active: backgroundColor: "transparent" textColor: "{colors.ink}" typography: "{typography.body-sm-medium}" border: "0 0 2px {colors.ink} solid" badge-purple: backgroundColor: "{colors.primary}" textColor: "{colors.on-primary}" typography: "{typography.caption-bold}" rounded: "{rounded.full}" padding: "4px 10px" badge-pink: backgroundColor: "{colors.brand-pink}" textColor: "{colors.on-primary}" typography: "{typography.caption-bold}" rounded: "{rounded.full}" padding: "4px 10px" badge-orange: backgroundColor: "{colors.brand-orange}" textColor: "{colors.on-primary}" typography: "{typography.caption-bold}" rounded: "{rounded.full}" padding: "4px 10px" badge-tag-purple: backgroundColor: "{colors.card-tint-lavender}" textColor: "{colors.brand-purple-800}" typography: "{typography.caption-bold}" rounded: "{rounded.sm}" padding: "2px 8px" badge-tag-orange: backgroundColor: "{colors.card-tint-peach}" textColor: "{colors.brand-orange-deep}" typography: "{typography.caption-bold}" rounded: "{rounded.sm}" padding: "2px 8px" badge-tag-green: backgroundColor: "{colors.card-tint-mint}" textColor: "{colors.brand-green}" typography: "{typography.caption-bold}" rounded: "{rounded.sm}" padding: "2px 8px" badge-popular: backgroundColor: "{colors.primary}" textColor: "{colors.on-primary}" typography: "{typography.caption-bold}" rounded: "{rounded.full}" padding: "4px 10px" promo-banner: backgroundColor: "{colors.surface}" textColor: "{colors.ink}" typography: "{typography.body-sm-medium}" padding: "{spacing.sm} {spacing.md}" hero-band-dark: backgroundColor: "{colors.brand-navy}" textColor: "{colors.on-dark}" rounded: "0" padding: "{spacing.hero}" workspace-mockup-card: backgroundColor: "{colors.canvas}" rounded: "{rounded.lg}" padding: "0" border: "1px solid {colors.hairline}" shadow: "rgba(15, 15, 15, 0.2) 0px 24px 48px -8px" cta-banner-light: backgroundColor: "{colors.surface}" textColor: "{colors.ink}" rounded: "{rounded.lg}" padding: "{spacing.section}" comparison-table: backgroundColor: "{colors.canvas}" textColor: "{colors.ink}" typography: "{typography.body-sm}" rounded: "{rounded.md}" border: "1px solid {colors.hairline}" comparison-row: backgroundColor: "{colors.canvas}" textColor: "{colors.ink}" padding: "{spacing.md} {spacing.lg}" border: "0 0 1px {colors.hairline-soft} solid" testimonial-card: backgroundColor: "{colors.canvas}" rounded: "{rounded.lg}" padding: "{spacing.xxl}" border: "1px solid {colors.hairline}" logo-wall-item: backgroundColor: "transparent" textColor: "{colors.steel}" typography: "{typography.body-md-medium}" padding: "{spacing.lg}" faq-accordion-item: backgroundColor: "{colors.canvas}" rounded: "{rounded.md}" padding: "{spacing.xl}" border: "0 0 1px {colors.hairline} solid" stat-row: backgroundColor: "{colors.surface}" textColor: "{colors.ink}" rounded: "{rounded.lg}" padding: "{spacing.section-sm}" footer-region: backgroundColor: "{colors.canvas}" textColor: "{colors.charcoal}" typography: "{typography.body-sm}" padding: "{spacing.section} {spacing.xxl}" border: "1px solid {colors.hairline}" footer-link: backgroundColor: "transparent" textColor: "{colors.steel}" typography: "{typography.body-sm}" padding: "{spacing.xxs} 0" --- ## Overview Notion presents itself as the all-in-one workspace through a confident, illustration-rich brand voice. The homepage opens with **"Meet the night shift."** rendered centered over a deep navy hero band ({colors.brand-navy}), decorated with brand-colored sticky-note dots and mesh wire illustrations scattered around the headline. The signature **purple pill primary CTA** ({colors.primary}) "Get Notion free" sits at the visual center, paired with an outlined "Request a demo" secondary. Below the buttons, a real Notion workspace UI mockup card (the "Ramp HQ" kanban board) breaks out of the hero band with a deep diffuse drop shadow. Below the hero, the page cycles through a distinctive sequence of feature sections: a dense sticky-note "Keep work moving 24/7" panel with red/blue/green/purple/teal status icons; a **bold yellow** ({colors.card-tint-yellow-bold}) "Ask your on-demand assistants" banner card flanked by orange/rose/mint pastel feature tiles showing assistant UI mockups; and a "Bring all your work together" 3-column grid with brand-colored mockups (sky-blue tutorial card, light Notion calendar, brown/rust testimonial slate). The pricing page renders 4 tiers (Free / Plus / Business / Enterprise) horizontally with one tier featured (purple-bordered) and a dense feature comparison table running below. The system uses a Notion-Sans typeface (Inter-based) across every UI surface — humanist-geometric character that pairs naturally with the colorful illustrations. Buttons are `{rounded.md}` (8px) rectangles, NOT pills — distinguishing Notion's sober rectangular geometry from competitors that use pills universally. Cards use `{rounded.lg}` (12px) consistently. **Key Characteristics:** - Deep navy hero band ({colors.brand-navy}) with scattered sticky-note dots + mesh wire decorative illustrations - **Signature purple pill** ({colors.primary}) primary CTA — Notion's recognizable "Get Notion free" button color - Real Notion workspace UI mockup card embedded in the hero with deep drop shadow - Bold yellow feature banner ({colors.card-tint-yellow-bold}) for high-emphasis content sections - Pastel feature card palette (peach, rose, mint, lavender, sky, yellow) echoing the live product database properties - Notion-Sans (Inter-based) across every UI surface - 8px-rounded buttons (NOT pills), 12px-rounded cards — sober editorial geometry - 4-tier pricing comparison with dense feature table - Centered hero layout (different from the left-aligned norm of most B2B SaaS) ## Colors > Source pages: notion.com/ (homepage), /enterprise, /product/ai, /product/agents, /startups, /pricing. Token coverage was identical across all six pages. ### Brand & Primary - **Notion Purple** ({colors.primary}): Signature primary CTA color — the unmistakable "Get Notion free" pill button. Reserved for the dominant CTA only. - **Purple Pressed** ({colors.primary-pressed}): Pressed-state variant - **Purple Deep** ({colors.primary-deep}): Deeper variant for emphasis - **Brand Navy** ({colors.brand-navy}): Hero band background — deep navy - **Brand Navy Deep** ({colors.brand-navy-deep}): Deeper navy for promo banner - **Brand Navy Mid** ({colors.brand-navy-mid}): Mid-spectrum navy - **Link Blue** ({colors.link-blue}): Inline text link blue (NOT primary CTA) - **Link Blue Pressed** ({colors.link-blue-pressed}): Pressed-state link blue ### Brand Color Spectrum (echoes live product database properties) - **Brand Pink** ({colors.brand-pink}): Pink accent - **Brand Pink Deep** ({colors.brand-pink-deep}): Deeper pink - **Brand Orange** ({colors.brand-orange}): Orange accent - **Brand Orange Deep** ({colors.brand-orange-deep}): Deeper orange-rust - **Brand Purple** ({colors.brand-purple}): Purple accent variant - **Brand Purple 300** ({colors.brand-purple-300}): Light purple - **Brand Purple 800** ({colors.brand-purple-800}): Deep purple for tag text - **Brand Teal** ({colors.brand-teal}): Teal accent - **Brand Green** ({colors.brand-green}): Bright green - **Brand Yellow** ({colors.brand-yellow}): Soft yellow - **Brand Brown** ({colors.brand-brown}): Brand brown for "earthy" tints ### Card Tints (Pastel Feature Card Backgrounds) - **Tint Peach** ({colors.card-tint-peach}): Pale peach - **Tint Rose** ({colors.card-tint-rose}): Pale rose-pink - **Tint Mint** ({colors.card-tint-mint}): Pale mint-green - **Tint Lavender** ({colors.card-tint-lavender}): Pale lavender - **Tint Sky** ({colors.card-tint-sky}): Pale sky-blue - **Tint Yellow** ({colors.card-tint-yellow}): Pale yellow - **Tint Yellow Bold** ({colors.card-tint-yellow-bold}): Bold yellow for high-emphasis feature banners ("Ask your on-demand assistants") - **Tint Cream** ({colors.card-tint-cream}): Cream tint - **Tint Gray** ({colors.card-tint-gray}): Neutral surface ### Surface - **Canvas White** ({colors.canvas}): Page background and primary card surface - **Surface** ({colors.surface}): Subtle section backgrounds, search-pill rest, featured pricing tier - **Surface Soft** ({colors.surface-soft}): Quieter section divisions - **Hairline** ({colors.hairline}): 1px borders and primary dividers - **Hairline Soft** ({colors.hairline-soft}): Quieter dividers - **Hairline Strong** ({colors.hairline-strong}): Stronger 1px border for inputs ### Text - **Ink Deep** ({colors.ink-deep}): Pure black for emphasis - **Ink** ({colors.ink}): Primary headlines and body text - **Charcoal** ({colors.charcoal}): Body emphasis (Notion's signature warm-charcoal) - **Slate** ({colors.slate}): Secondary text - **Steel** ({colors.steel}): Tertiary, footer links - **Stone** ({colors.stone}): Muted labels - **Muted** ({colors.muted}): Disabled, placeholders - **On Dark** ({colors.on-dark}): White text on dark surfaces - **On Dark Muted** ({colors.on-dark-muted}): Reduced-opacity white ### Semantic - **Success** ({colors.semantic-success}): Confirmation green - **Warning** ({colors.semantic-warning}): Mid-priority alerts (orange) - **Error** ({colors.semantic-error}): Validation errors (red) ## Typography ### Font Family **Notion Sans** (primary): Notion's custom Inter-based variable typeface. Fallbacks: Inter, -apple-system, system-ui, 'Segoe UI', Helvetica, sans-serif. Humanist-geometric character used across every UI surface. ### Hierarchy | Token | Size | Weight | Line Height | Letter Spacing | Use | |---|---|---|---|---|---| | `{typography.hero-display}` | 80px | 600 | 1.05 | -2px | Hero ("Meet the night shift") | | `{typography.display-lg}` | 56px | 600 | 1.10 | -1px | Section openers | | `{typography.heading-1}` | 48px | 600 | 1.15 | -0.5px | Page-level headlines ("Try for free") | | `{typography.heading-2}` | 36px | 600 | 1.20 | -0.5px | Subsection headlines ("Keep work moving 24/7") | | `{typography.heading-3}` | 28px | 600 | 1.25 | 0 | Card titles | | `{typography.heading-4}` | 22px | 600 | 1.30 | 0 | Feature tile titles | | `{typography.heading-5}` | 18px | 600 | 1.40 | 0 | FAQ questions | | `{typography.subtitle}` | 18px | 400 | 1.50 | 0 | Hero subtitle | | `{typography.body-md}` | 16px | 400 | 1.55 | 0 | Primary body text | | `{typography.body-md-medium}` | 16px | 500 | 1.55 | 0 | Body emphasis | | `{typography.body-sm}` | 14px | 400 | 1.50 | 0 | Secondary body | | `{typography.body-sm-medium}` | 14px | 500 | 1.50 | 0 | Active sidebar, button labels | | `{typography.caption-bold}` | 13px | 600 | 1.40 | 0 | Badge labels | | `{typography.button-md}` | 14px | 500 | 1.30 | 0 | Button labels | ### Principles - Tight hero leading (1.05) on 80px display - Negative letter-spacing on display sizes (-2px to -0.5px) - Generous body leading (1.55) for documentation readability - 600 weight for headlines + 500 for buttons; 400 body ## Layout ### Spacing System - **Base unit**: 4px (8px primary increment) - **Tokens**: `{spacing.xxs}` (4px) through `{spacing.hero}` (120px) - **Section rhythm**: Marketing pages use `{spacing.section-lg}` (96px); pricing tightens to `{spacing.section}` (64px) ### Grid & Container - 1280px max-width with 32px gutters - Pricing: 4-tier card row at desktop with dense comparison table - Homepage: centered hero with workspace mockup below buttons; alternating colorful feature card sections ### Whitespace Philosophy Marketing surfaces use generous breathing room between feature card bands. Workspace mockup card on hero gets full-width treatment with deep drop shadow. ## Elevation & Depth | Level | Treatment | Use | |---|---|---| | 0 (flat) | No shadow; `{colors.hairline}` border | Default cards, table rows | | 1 (subtle) | `rgba(15, 15, 15, 0.04) 0px 1px 2px 0px` | Hover-elevated tiles | | 2 (card) | `rgba(15, 15, 15, 0.08) 0px 4px 12px 0px` | Feature cards | | 3 (mockup) | `rgba(15, 15, 15, 0.20) 0px 24px 48px -8px` | Hero workspace mockup card | | 4 (modal) | `rgba(15, 15, 15, 0.16) 0px 16px 48px -8px` | Modals, dropdowns | ### Decorative Depth - Hero workspace mockup card uses deep diffuse drop shadow (Level 3) — significant elevation against the navy band - Pastel feature cards carry their own visual weight via tint backgrounds - Sticky-note dot illustrations and mesh wires add atmospheric decoration to navy hero ## Shapes ### Border Radius Scale | Token | Value | Use | |---|---|---| | `{rounded.xs}` | 4px | Tag chips | | `{rounded.sm}` | 6px | Type badges | | `{rounded.md}` | 8px | Buttons, inputs, search-pill | | `{rounded.lg}` | 12px | Cards, pricing tiers, agent tiles, workspace mockup | | `{rounded.xl}` | 16px | Larger feature panels | | `{rounded.xxl}` | 20px | Featured product showcases | | `{rounded.xxxl}` | 24px | Larger feature cards | | `{rounded.full}` | 9999px | Status badges, pill tabs (NOT regular buttons) | Notion's geometry is sober-editorial — `{rounded.md}` (8px) buttons distinguish it from pill-button-everywhere brands. ## Components > Per the no-hover policy, hover states are NOT documented. ### Buttons **`button-primary`** — Signature purple rectangular primary CTA, the dominant action. - Background `{colors.primary}`, text `{colors.on-primary}`, typography `{typography.button-md}`, padding `10px 18px`, rounded `{rounded.md}`. - Pressed state `button-primary-pressed` deepens to `{colors.primary-pressed}`. - Disabled state uses `{colors.hairline}` background. **`button-dark`** — Black rectangular CTA on light backgrounds. - Background `{colors.ink-deep}`, text `{colors.on-dark}`, typography `{typography.button-md}`, padding `10px 18px`, rounded `{rounded.md}`. **`button-secondary`** — Outlined rectangular for secondary actions ("Request a demo"). - Background transparent, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, typography `{typography.button-md}`, padding `10px 18px`, rounded `{rounded.md}`. **`button-on-dark`** — White button on dark hero bands. - Background `{colors.on-dark}`, text `{colors.ink}`, typography `{typography.button-md}`, padding `10px 18px`, rounded `{rounded.md}`. **`button-secondary-on-dark`** — Outlined button on dark. - Background transparent, text `{colors.on-dark}`, border `1px solid {colors.on-dark-muted}`, typography `{typography.button-md}`, padding `10px 18px`, rounded `{rounded.md}`. **`button-ghost`** — Quieter ghost button. - Background transparent, text `{colors.ink}`, typography `{typography.button-md}`, padding `8px 12px`, rounded `{rounded.sm}`. **`button-link`** — Inline blue text link (NOT primary purple). - Background transparent, text `{colors.link-blue}`, typography `{typography.body-sm-medium}`, padding `0`. ### Cards & Containers **`card-base`** — Standard content card. - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline}`. **`card-feature`** — Feature card with larger padding. - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline}`. **`card-feature-yellow-bold`** — Bold yellow feature banner for high-emphasis content ("Ask your on-demand assistants"). - Background `{colors.card-tint-yellow-bold}`, text `{colors.charcoal}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`. **`card-feature-peach`** + **`card-feature-rose`** + **`card-feature-mint`** + **`card-feature-sky`** + **`card-feature-lavender`** + **`card-feature-yellow`** + **`card-feature-cream`** — Pastel-tinted feature cards. - Each variant uses its corresponding `card-tint-*` color as background, text `{colors.charcoal}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`. **`card-agent-tile`** — Agent assistant tile. - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline}`. **`card-template`** — Template thumbnail card. - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.lg}`, border `1px solid {colors.hairline}`. **`card-startup-perk`** — Startup-program perk grid item. - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline}`. **`pricing-card`** — Standard pricing tier card. - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline}`. **`pricing-card-featured`** — Featured pricing tier (Plus or Business — purple-bordered). - Background `{colors.surface}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `2px solid {colors.primary}`. ### Inputs & Forms **`text-input`** — Standard text field. - Background `{colors.canvas}`, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, rounded `{rounded.md}`, padding `{spacing.sm} {spacing.md}`, height 44px. **`text-input-focused`** — Activated state. - Border switches to `2px solid {colors.primary}` (purple). **`search-pill`** — Search bar. - Background `{colors.surface}`, text `{colors.steel}`, typography `{typography.body-md}`, rounded `{rounded.md}`, height 44px, border `1px solid {colors.hairline}`. ### Tabs **`pill-tab`** + **`pill-tab-active`** — Pill-style tab nav for top-level switching. - Inactive: text `{colors.steel}`, border `1px solid {colors.hairline}`, padding `{spacing.xs} {spacing.md}`, rounded `{rounded.full}`. - Active: background `{colors.ink-deep}`, text `{colors.on-dark}`. **`segmented-tab`** + **`segmented-tab-active`** — Underline-style tab navigation. - Inactive: text `{colors.steel}`, no border. Active: text `{colors.ink}`, 2px bottom border in `{colors.ink}`. ### Badges & Status **`badge-purple`** — Purple status badge (matches primary CTA). - Background `{colors.primary}`, text `{colors.on-primary}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`. **`badge-pink`** — Pink accent badge. - Background `{colors.brand-pink}`, text `{colors.on-primary}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`. **`badge-orange`** — Orange accent badge. - Background `{colors.brand-orange}`, text `{colors.on-primary}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`. **`badge-tag-purple`** — Soft-purple feature tag chip. - Background `{colors.card-tint-lavender}`, text `{colors.brand-purple-800}`, typography `{typography.caption-bold}`, rounded `{rounded.sm}`, padding `2px 8px`. **`badge-tag-orange`** — Soft-orange feature tag. - Background `{colors.card-tint-peach}`, text `{colors.brand-orange-deep}`, typography `{typography.caption-bold}`, rounded `{rounded.sm}`, padding `2px 8px`. **`badge-tag-green`** — Soft-mint feature tag. - Background `{colors.card-tint-mint}`, text `{colors.brand-green}`, typography `{typography.caption-bold}`, rounded `{rounded.sm}`, padding `2px 8px`. **`badge-popular`** — "Most Popular" tier indicator. - Background `{colors.primary}`, text `{colors.on-primary}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`. **`promo-banner`** — Light surface promo strip ABOVE the top nav. - Background `{colors.surface}`, text `{colors.ink}`, typography `{typography.body-sm-medium}`, padding `{spacing.sm} {spacing.md}`. ("Developers: Get a first look at our new Developer Platform on May 13.") ### Tables **`comparison-table`** — Pricing feature comparison table. - Background `{colors.canvas}`, text `{colors.ink}`, typography `{typography.body-sm}`, rounded `{rounded.md}`, border `1px solid {colors.hairline}`. **`comparison-row`** — Individual feature row. - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.md} {spacing.lg}`, bottom border `1px solid {colors.hairline-soft}`. ### Documentation Components **`workspace-mockup-card`** — Embedded Notion workspace UI mockup on hero band ("Ramp HQ" kanban board). - Background `{colors.canvas}`, rounded `{rounded.lg}`, border `1px solid {colors.hairline}`, deep shadow `rgba(15, 15, 15, 0.20) 0px 24px 48px -8px`. Carries actual Notion product UI mock. **`testimonial-card`** — Customer testimonial card. - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline}`. **`logo-wall-item`** — Customer logo wordmark cell. - Background transparent, text `{colors.steel}`, typography `{typography.body-md-medium}`, padding `{spacing.lg}`. **`faq-accordion-item`** — FAQ panel. - Background `{colors.canvas}`, rounded `{rounded.md}`, padding `{spacing.xl}`, bottom border `1px solid {colors.hairline}`. **`stat-row`** — Stats strip with bar chart visualization ("More productivity. Fewer tools."). - Background `{colors.surface}`, text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.section-sm}`. **`cta-banner-light`** — Light surface CTA banner. - Background `{colors.surface}`, text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.section}`. ### Navigation **Top Navigation (Marketing)** — Sticky white bar. - Background `{colors.canvas}`, height ~64px, bottom border `1px solid {colors.hairline}`. - Left: Notion "N" logo + "Product / AI / Solutions / Resources / Enterprise / Pricing / Request a demo" links. - Right: "Get Notion free" purple button + "Log in" link. ### Signature Components **`hero-band-dark`** — Deep navy hero band with embedded workspace mockup and decorative dots/wires. - Background `{colors.brand-navy}`, text `{colors.on-dark}`, padding `{spacing.hero}`. - Layout: centered headline `{typography.hero-display}`, subtitle, button row (`button-primary` purple + `button-secondary-on-dark`), `workspace-mockup-card` below. - Atmospheric decoration: scattered colorful sticky-note dots and mesh wire illustrations around the hero content (NOT a literal pattern fill — handled per-page via SVG/illustration). **`footer-region`** — Multi-column light footer. - Background `{colors.canvas}`, padding `{spacing.section} {spacing.xxl}`, top border `1px solid {colors.hairline}`. - 6-column link grid (Product / Download / Resources / Notion for / Company / Legal). **`footer-link`** — Individual footer link. - Background transparent, text `{colors.steel}`, typography `{typography.body-sm}`, padding `{spacing.xxs} 0`. ## Do's and Don'ts ### Do - Use `{colors.primary}` (purple) as the dominant CTA across all surfaces — it's the brand's recognizable signal - Pair deep navy hero bands ({colors.brand-navy}) with the purple button + decorative sticky-note dots - Use pastel feature card tints (peach, rose, mint, lavender, sky, yellow) generously - Use `{colors.card-tint-yellow-bold}` for high-emphasis "Ask the assistant"-style banner cards - Apply `{rounded.md}` (8px) to buttons consistently — Notion uses rectangles, not pills - Apply `{rounded.lg}` (12px) to all card families - Maintain Notion-Sans across every UI surface - Use the workspace mockup card on hero bands to show actual product UI ### Don't - Don't use the purple for body text or large background surfaces - Don't use pill-shaped buttons; Notion's geometry is rectangular-sober - Don't mix link-blue ({colors.link-blue}) with primary-purple ({colors.primary}) — they have distinct roles - Don't apply heavy shadows on flat documentation cards - Don't replace Notion-Sans with a generic Inter ## Responsive Behavior ### Breakpoints | Name | Width | Key Changes | |---|---|---| | Mobile (small) | < 480px | Single column. Hero 36px. Pricing 1-up. | | Mobile (large) | 480 – 767px | Feature cards 2-up. Hero 48px. | | Tablet | 768 – 1023px | 2-column feature grids. Hero 56px. | | Desktop | 1024 – 1279px | 4-tier pricing card row. Hero 72px. | | Wide Desktop | ≥ 1280px | Full 80px hero presentation. | ### Touch Targets - Buttons render at 40–44px effective height - Form inputs render at 44px height - Pill tabs ~32px → 44px on mobile ### Collapsing Strategy - **Promo banner** stays full-width; truncates at < 480px - **Top nav** below 1024px collapses to hamburger - **Hero band**: workspace mockup card moves below text/buttons on mobile - **Pricing tiers**: 4-column → 2-column tablet → 1-column mobile - **Feature cards**: 3-up desktop → 2-up tablet → 1-up mobile - **Hero typography**: 80px → 56px → 48px → 36px - **Footer**: 6-column desktop → 3-column tablet → accordion mobile ### Image Behavior - Workspace mockup card maintains aspect ratio - Pastel illustrations inside feature cards scale proportionally - Customer logo wall: wordmarks at consistent 60–80px height ## Iteration Guide 1. Focus on ONE component at a time 2. Reference component names and tokens directly 3. Run `npx @google/design.md lint DESIGN.md` after edits 4. Add new variants as separate `components:` entries 5. Default to `{typography.body-md}` for body 6. Keep `{colors.primary}` (purple) as the primary CTA — distinct from `{colors.link-blue}` for inline links 7. Use `{rounded.md}` for buttons (rectangles), `{rounded.lg}` for cards, `{rounded.full}` for pill tabs/badges only ## Known Gaps - Specific dark-mode token values not surfaced beyond hero bands - Animation/transition timings not extracted; recommend 150–200ms ease - Form validation success state not explicitly captured - Pastel-tint mapping (which feature uses which tint) is observation-based — the actual brand library may have more entries