first commit
This commit is contained in:
309
design-md/notion/DESIGN.md
Normal file
309
design-md/notion/DESIGN.md
Normal file
@@ -0,0 +1,309 @@
|
||||
# Design System: Notion
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Notion's website embodies the philosophy of the tool itself: a blank canvas that gets out of your way. The design system is built on warm neutrals rather than cold grays, creating a distinctly approachable minimalism that feels like quality paper rather than sterile glass. The page canvas is pure white (`#ffffff`) but the text isn't pure black -- it's a warm near-black (`rgba(0,0,0,0.95)`) that softens the reading experience imperceptibly. The warm gray scale (`#f6f5f4`, `#31302e`, `#615d59`, `#a39e98`) carries subtle yellow-brown undertones, giving the interface a tactile, almost analog warmth.
|
||||
|
||||
The custom NotionInter font (a modified Inter) is the backbone of the system. At display sizes (64px), it uses aggressive negative letter-spacing (-2.125px), creating headlines that feel compressed and precise. The weight range is broader than typical systems: 400 for body, 500 for UI elements, 600 for semi-bold labels, and 700 for display headings. OpenType features `"lnum"` (lining numerals) and `"locl"` (localized forms) are enabled on larger text, adding typographic sophistication that rewards close reading.
|
||||
|
||||
What makes Notion's visual language distinctive is its border philosophy. Rather than heavy borders or shadows, Notion uses ultra-thin `1px solid rgba(0,0,0,0.1)` borders -- borders that exist as whispers, barely perceptible division lines that create structure without weight. The shadow system is equally restrained: multi-layer stacks with cumulative opacity never exceeding 0.05, creating depth that's felt rather than seen.
|
||||
|
||||
**Key Characteristics:**
|
||||
- NotionInter (modified Inter) with negative letter-spacing at display sizes (-2.125px at 64px)
|
||||
- Warm neutral palette: grays carry yellow-brown undertones (`#f6f5f4` warm white, `#31302e` warm dark)
|
||||
- Near-black text via `rgba(0,0,0,0.95)` -- not pure black, creating micro-warmth
|
||||
- Ultra-thin borders: `1px solid rgba(0,0,0,0.1)` throughout -- whisper-weight division
|
||||
- Multi-layer shadow stacks with sub-0.05 opacity for barely-there depth
|
||||
- Notion Blue (`#0075de`) as the singular accent color for CTAs and interactive elements
|
||||
- Pill badges (9999px radius) with tinted blue backgrounds for status indicators
|
||||
- 8px base spacing unit with an organic, non-rigid scale
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Notion Black** (`rgba(0,0,0,0.95)` / `#000000f2`): Primary text, headings, body copy. The 95% opacity softens pure black without sacrificing readability.
|
||||
- **Pure White** (`#ffffff`): Page background, card surfaces, button text on blue.
|
||||
- **Notion Blue** (`#0075de`): Primary CTA, link color, interactive accent -- the only saturated color in the core UI chrome.
|
||||
|
||||
### Brand Secondary
|
||||
- **Deep Navy** (`#213183`): Secondary brand color, used sparingly for emphasis and dark feature sections.
|
||||
- **Active Blue** (`#005bab`): Button active/pressed state -- darker variant of Notion Blue.
|
||||
|
||||
### Warm Neutral Scale
|
||||
- **Warm White** (`#f6f5f4`): Background surface tint, section alternation, subtle card fill. The yellow undertone is key.
|
||||
- **Warm Dark** (`#31302e`): Dark surface background, dark section text. Warmer than standard grays.
|
||||
- **Warm Gray 500** (`#615d59`): Secondary text, descriptions, muted labels.
|
||||
- **Warm Gray 300** (`#a39e98`): Placeholder text, disabled states, caption text.
|
||||
|
||||
### Semantic Accent Colors
|
||||
- **Teal** (`#2a9d99`): Success states, positive indicators.
|
||||
- **Green** (`#1aae39`): Confirmation, completion badges.
|
||||
- **Orange** (`#dd5b00`): Warning states, attention indicators.
|
||||
- **Pink** (`#ff64c8`): Decorative accent, feature highlights.
|
||||
- **Purple** (`#391c57`): Premium features, deep accents.
|
||||
- **Brown** (`#523410`): Earthy accent, warm feature sections.
|
||||
|
||||
### Interactive
|
||||
- **Link Blue** (`#0075de`): Primary link color with underline-on-hover.
|
||||
- **Link Light Blue** (`#62aef0`): Lighter link variant for dark backgrounds.
|
||||
- **Focus Blue** (`#097fe8`): Focus ring on interactive elements.
|
||||
- **Badge Blue Bg** (`#f2f9ff`): Pill badge background, tinted blue surface.
|
||||
- **Badge Blue Text** (`#097fe8`): Pill badge text, darker blue for readability.
|
||||
|
||||
### Shadows & Depth
|
||||
- **Card Shadow** (`rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.84688px, rgba(0,0,0,0.02) 0px 0.8px 2.925px, rgba(0,0,0,0.01) 0px 0.175px 1.04062px`): Multi-layer card elevation.
|
||||
- **Deep Shadow** (`rgba(0,0,0,0.01) 0px 1px 3px, rgba(0,0,0,0.02) 0px 3px 7px, rgba(0,0,0,0.02) 0px 7px 15px, rgba(0,0,0,0.04) 0px 14px 28px, rgba(0,0,0,0.05) 0px 23px 52px`): Five-layer deep elevation for modals and featured content.
|
||||
- **Whisper Border** (`1px solid rgba(0,0,0,0.1)`): Standard division border -- cards, dividers, sections.
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
- **Primary**: `NotionInter`, with fallbacks: `Inter, -apple-system, system-ui, Segoe UI, Helvetica, Apple Color Emoji, Arial, Segoe UI Emoji, Segoe UI Symbol`
|
||||
- **OpenType Features**: `"lnum"` (lining numerals) and `"locl"` (localized forms) enabled on display and heading text.
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|------|--------|-------------|----------------|-------|
|
||||
| Display Hero | NotionInter | 64px (4.00rem) | 700 | 1.00 (tight) | -2.125px | Maximum compression, billboard headlines |
|
||||
| Display Secondary | NotionInter | 54px (3.38rem) | 700 | 1.04 (tight) | -1.875px | Secondary hero, feature headlines |
|
||||
| Section Heading | NotionInter | 48px (3.00rem) | 700 | 1.00 (tight) | -1.5px | Feature section titles, with `"lnum"` |
|
||||
| Sub-heading Large | NotionInter | 40px (2.50rem) | 700 | 1.50 | normal | Card headings, feature sub-sections |
|
||||
| Sub-heading | NotionInter | 26px (1.63rem) | 700 | 1.23 (tight) | -0.625px | Section sub-titles, content headers |
|
||||
| Card Title | NotionInter | 22px (1.38rem) | 700 | 1.27 (tight) | -0.25px | Feature cards, list titles |
|
||||
| Body Large | NotionInter | 20px (1.25rem) | 600 | 1.40 | -0.125px | Introductions, feature descriptions |
|
||||
| Body | NotionInter | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text |
|
||||
| Body Medium | NotionInter | 16px (1.00rem) | 500 | 1.50 | normal | Navigation, emphasized UI text |
|
||||
| Body Semibold | NotionInter | 16px (1.00rem) | 600 | 1.50 | normal | Strong labels, active states |
|
||||
| Body Bold | NotionInter | 16px (1.00rem) | 700 | 1.50 | normal | Headlines at body size |
|
||||
| Nav / Button | NotionInter | 15px (0.94rem) | 600 | 1.33 | normal | Navigation links, button text |
|
||||
| Caption | NotionInter | 14px (0.88rem) | 500 | 1.43 | normal | Metadata, secondary labels |
|
||||
| Caption Light | NotionInter | 14px (0.88rem) | 400 | 1.43 | normal | Body captions, descriptions |
|
||||
| Badge | NotionInter | 12px (0.75rem) | 600 | 1.33 | 0.125px | Pill badges, tags, status labels |
|
||||
| Micro Label | NotionInter | 12px (0.75rem) | 400 | 1.33 | 0.125px | Small metadata, timestamps |
|
||||
|
||||
### Principles
|
||||
- **Compression at scale**: NotionInter at display sizes uses -2.125px letter-spacing at 64px, progressively relaxing to -0.625px at 26px and normal at 16px. The compression creates density at headlines while maintaining readability at body sizes.
|
||||
- **Four-weight system**: 400 (body/reading), 500 (UI/interactive), 600 (emphasis/navigation), 700 (headings/display). The broader weight range compared to most systems allows nuanced hierarchy.
|
||||
- **Warm scaling**: Line height tightens as size increases -- 1.50 at body (16px), 1.23-1.27 at sub-headings, 1.00-1.04 at display. This creates denser, more impactful headlines.
|
||||
- **Badge micro-tracking**: The 12px badge text uses positive letter-spacing (0.125px) -- the only positive tracking in the system, creating wider, more legible small text.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
|
||||
**Primary Blue**
|
||||
- Background: `#0075de` (Notion Blue)
|
||||
- Text: `#ffffff`
|
||||
- Padding: 8px 16px
|
||||
- Radius: 4px (subtle)
|
||||
- Border: `1px solid transparent`
|
||||
- Hover: background darkens to `#005bab`
|
||||
- Active: scale(0.9) transform
|
||||
- Focus: `2px solid` focus outline, `var(--shadow-level-200)` shadow
|
||||
- Use: Primary CTA ("Get Notion free", "Try it")
|
||||
|
||||
**Secondary / Tertiary**
|
||||
- Background: `rgba(0,0,0,0.05)` (translucent warm gray)
|
||||
- Text: `#000000` (near-black)
|
||||
- Padding: 8px 16px
|
||||
- Radius: 4px
|
||||
- Hover: text color shifts, scale(1.05)
|
||||
- Active: scale(0.9) transform
|
||||
- Use: Secondary actions, form submissions
|
||||
|
||||
**Ghost / Link Button**
|
||||
- Background: transparent
|
||||
- Text: `rgba(0,0,0,0.95)`
|
||||
- Decoration: underline on hover
|
||||
- Use: Tertiary actions, inline links
|
||||
|
||||
**Pill Badge Button**
|
||||
- Background: `#f2f9ff` (tinted blue)
|
||||
- Text: `#097fe8`
|
||||
- Padding: 4px 8px
|
||||
- Radius: 9999px (full pill)
|
||||
- Font: 12px weight 600
|
||||
- Use: Status badges, feature labels, "New" tags
|
||||
|
||||
### Cards & Containers
|
||||
- Background: `#ffffff`
|
||||
- Border: `1px solid rgba(0,0,0,0.1)` (whisper border)
|
||||
- Radius: 12px (standard cards), 16px (featured/hero cards)
|
||||
- Shadow: `rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.84688px, rgba(0,0,0,0.02) 0px 0.8px 2.925px, rgba(0,0,0,0.01) 0px 0.175px 1.04062px`
|
||||
- Hover: subtle shadow intensification
|
||||
- Image cards: 12px top radius, image fills top half
|
||||
|
||||
### Inputs & Forms
|
||||
- Background: `#ffffff`
|
||||
- Text: `rgba(0,0,0,0.9)`
|
||||
- Border: `1px solid #dddddd`
|
||||
- Padding: 6px
|
||||
- Radius: 4px
|
||||
- Focus: blue outline ring
|
||||
- Placeholder: warm gray `#a39e98`
|
||||
|
||||
### Navigation
|
||||
- Clean horizontal nav on white, not sticky
|
||||
- Brand logo left-aligned (33x34px icon + wordmark)
|
||||
- Links: NotionInter 15px weight 500-600, near-black text
|
||||
- Hover: color shift to `var(--color-link-primary-text-hover)`
|
||||
- CTA: blue pill button ("Get Notion free") right-aligned
|
||||
- Mobile: hamburger menu collapse
|
||||
- Product dropdowns with multi-level categorized menus
|
||||
|
||||
### Image Treatment
|
||||
- Product screenshots with `1px solid rgba(0,0,0,0.1)` border
|
||||
- Top-rounded images: `12px 12px 0px 0px` radius
|
||||
- Dashboard/workspace preview screenshots dominate feature sections
|
||||
- Warm gradient backgrounds behind hero illustrations (decorative character illustrations)
|
||||
|
||||
### Distinctive Components
|
||||
|
||||
**Feature Cards with Illustrations**
|
||||
- Large illustrative headers (The Great Wave, product UI screenshots)
|
||||
- 12px radius card with whisper border
|
||||
- Title at 22px weight 700, description at 16px weight 400
|
||||
- Warm white (`#f6f5f4`) background variant for alternating sections
|
||||
|
||||
**Trust Bar / Logo Grid**
|
||||
- Company logos (trusted teams section) in their brand colors
|
||||
- Horizontal scroll or grid layout with team counts
|
||||
- Metric display: large number + description pattern
|
||||
|
||||
**Metric Cards**
|
||||
- Large number display (e.g., "$4,200 ROI")
|
||||
- NotionInter 40px+ weight 700 for the metric
|
||||
- Description below in warm gray body text
|
||||
- Whisper-bordered card container
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
- Base unit: 8px
|
||||
- Scale: 2px, 3px, 4px, 5px, 6px, 7px, 8px, 11px, 12px, 14px, 16px, 24px, 32px
|
||||
- Non-rigid organic scale with fractional values (5.6px, 6.4px) for micro-adjustments
|
||||
|
||||
### Grid & Container
|
||||
- Max content width: approximately 1200px
|
||||
- Hero: centered single-column with generous top padding (80-120px)
|
||||
- Feature sections: 2-3 column grids for cards
|
||||
- Full-width warm white (`#f6f5f4`) section backgrounds for alternation
|
||||
- Code/dashboard screenshots as contained with whisper border
|
||||
|
||||
### Whitespace Philosophy
|
||||
- **Generous vertical rhythm**: 64-120px between major sections. Notion lets content breathe with vast vertical padding.
|
||||
- **Warm alternation**: White sections alternate with warm white (`#f6f5f4`) sections, creating gentle visual rhythm without harsh color breaks.
|
||||
- **Content-first density**: Body text blocks are compact (line-height 1.50) but surrounded by ample margin, creating islands of readable content in a sea of white space.
|
||||
|
||||
### Border Radius Scale
|
||||
- Micro (4px): Buttons, inputs, functional interactive elements
|
||||
- Subtle (5px): Links, list items, menu items
|
||||
- Standard (8px): Small cards, containers, inline elements
|
||||
- Comfortable (12px): Standard cards, feature containers, image tops
|
||||
- Large (16px): Hero cards, featured content, promotional blocks
|
||||
- Full Pill (9999px): Badges, pills, status indicators
|
||||
- Circle (100%): Tab indicators, avatars
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|-------|-----------|-----|
|
||||
| Flat (Level 0) | No shadow, no border | Page background, text blocks |
|
||||
| Whisper (Level 1) | `1px solid rgba(0,0,0,0.1)` | Standard borders, card outlines, dividers |
|
||||
| Soft Card (Level 2) | 4-layer shadow stack (max opacity 0.04) | Content cards, feature blocks |
|
||||
| Deep Card (Level 3) | 5-layer shadow stack (max opacity 0.05, 52px blur) | Modals, featured panels, hero elements |
|
||||
| Focus (Accessibility) | `2px solid var(--focus-color)` outline | Keyboard focus on all interactive elements |
|
||||
|
||||
**Shadow Philosophy**: Notion's shadow system uses multiple layers with extremely low individual opacity (0.01 to 0.05) that accumulate into soft, natural-looking elevation. The 4-layer card shadow spans from 1.04px to 18px blur, creating a gradient of depth rather than a single hard shadow. The 5-layer deep shadow extends to 52px blur at 0.05 opacity, producing ambient occlusion that feels like natural light rather than computer-generated depth. This layered approach makes elements feel embedded in the page rather than floating above it.
|
||||
|
||||
### Decorative Depth
|
||||
- Hero section: decorative character illustrations (playful, hand-drawn style)
|
||||
- Section alternation: white to warm white (`#f6f5f4`) background shifts
|
||||
- No hard section borders -- separation comes from background color changes and spacing
|
||||
|
||||
## 7. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
| Name | Width | Key Changes |
|
||||
|------|-------|-------------|
|
||||
| Mobile Small | <400px | Tight single column, minimal padding |
|
||||
| Mobile | 400-600px | Standard mobile, stacked layout |
|
||||
| Tablet Small | 600-768px | 2-column grids begin |
|
||||
| Tablet | 768-1080px | Full card grids, expanded padding |
|
||||
| Desktop Small | 1080-1200px | Standard desktop layout |
|
||||
| Desktop | 1200-1440px | Full layout, maximum content width |
|
||||
| Large Desktop | >1440px | Centered, generous margins |
|
||||
|
||||
### Touch Targets
|
||||
- Buttons use comfortable padding (8px-16px vertical)
|
||||
- Navigation links at 15px with adequate spacing
|
||||
- Pill badges have 8px horizontal padding for tap targets
|
||||
- Mobile menu toggle uses standard hamburger button
|
||||
|
||||
### Collapsing Strategy
|
||||
- Hero: 64px display -> scales to 40px -> 26px on mobile, maintains proportional letter-spacing
|
||||
- Navigation: horizontal links + blue CTA -> hamburger menu
|
||||
- Feature cards: 3-column -> 2-column -> single column stacked
|
||||
- Product screenshots: maintain aspect ratio with responsive images
|
||||
- Trust bar logos: grid -> horizontal scroll on mobile
|
||||
- Footer: multi-column -> stacked single column
|
||||
- Section spacing: 80px+ -> 48px on mobile
|
||||
|
||||
### Image Behavior
|
||||
- Workspace screenshots maintain whisper border at all sizes
|
||||
- Hero illustrations scale proportionally
|
||||
- Product screenshots use responsive images with consistent border radius
|
||||
- Full-width warm white sections maintain edge-to-edge treatment
|
||||
|
||||
## 8. Accessibility & States
|
||||
|
||||
### Focus System
|
||||
- All interactive elements receive visible focus indicators
|
||||
- Focus outline: `2px solid` with focus color + shadow level 200
|
||||
- Tab navigation supported throughout all interactive components
|
||||
- High contrast text: near-black on white exceeds WCAG AAA (>14:1 ratio)
|
||||
|
||||
### Interactive States
|
||||
- **Default**: Standard appearance with whisper borders
|
||||
- **Hover**: Color shift on text, scale(1.05) on buttons, underline on links
|
||||
- **Active/Pressed**: scale(0.9) transform, darker background variant
|
||||
- **Focus**: Blue outline ring with shadow reinforcement
|
||||
- **Disabled**: Warm gray (`#a39e98`) text, reduced opacity
|
||||
|
||||
### Color Contrast
|
||||
- Primary text (rgba(0,0,0,0.95)) on white: ~18:1 ratio
|
||||
- Secondary text (#615d59) on white: ~5.5:1 ratio (WCAG AA)
|
||||
- Blue CTA (#0075de) on white: ~4.6:1 ratio (WCAG AA for large text)
|
||||
- Badge text (#097fe8) on badge bg (#f2f9ff): ~4.5:1 ratio (WCAG AA for large text)
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- Primary CTA: Notion Blue (`#0075de`)
|
||||
- Background: Pure White (`#ffffff`)
|
||||
- Alt Background: Warm White (`#f6f5f4`)
|
||||
- Heading text: Near-Black (`rgba(0,0,0,0.95)`)
|
||||
- Body text: Near-Black (`rgba(0,0,0,0.95)`)
|
||||
- Secondary text: Warm Gray 500 (`#615d59`)
|
||||
- Muted text: Warm Gray 300 (`#a39e98`)
|
||||
- Border: `1px solid rgba(0,0,0,0.1)`
|
||||
- Link: Notion Blue (`#0075de`)
|
||||
- Focus ring: Focus Blue (`#097fe8`)
|
||||
|
||||
### Example Component Prompts
|
||||
- "Create a hero section on white background. Headline at 64px NotionInter weight 700, line-height 1.00, letter-spacing -2.125px, color rgba(0,0,0,0.95). Subtitle at 20px weight 600, line-height 1.40, color #615d59. Blue CTA button (#0075de, 4px radius, 8px 16px padding, white text) and ghost button (transparent bg, near-black text, underline on hover)."
|
||||
- "Design a card: white background, 1px solid rgba(0,0,0,0.1) border, 12px radius. Use shadow stack: rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.85px, rgba(0,0,0,0.02) 0px 0.8px 2.93px, rgba(0,0,0,0.01) 0px 0.175px 1.04px. Title at 22px NotionInter weight 700, letter-spacing -0.25px. Body at 16px weight 400, color #615d59."
|
||||
- "Build a pill badge: #f2f9ff background, #097fe8 text, 9999px radius, 4px 8px padding, 12px NotionInter weight 600, letter-spacing 0.125px."
|
||||
- "Create navigation: white header. NotionInter 15px weight 600 for links, near-black text. Blue pill CTA 'Get Notion free' right-aligned (#0075de bg, white text, 4px radius)."
|
||||
- "Design an alternating section layout: white sections alternate with warm white (#f6f5f4) sections. Each section has 64-80px vertical padding, max-width 1200px centered. Section heading at 48px weight 700, line-height 1.00, letter-spacing -1.5px."
|
||||
|
||||
### Iteration Guide
|
||||
1. Always use warm neutrals -- Notion's grays have yellow-brown undertones (#f6f5f4, #31302e, #615d59, #a39e98), never blue-gray
|
||||
2. Letter-spacing scales with font size: -2.125px at 64px, -1.875px at 54px, -0.625px at 26px, normal at 16px
|
||||
3. Four weights: 400 (read), 500 (interact), 600 (emphasize), 700 (announce)
|
||||
4. Borders are whispers: 1px solid rgba(0,0,0,0.1) -- never heavier
|
||||
5. Shadows use 4-5 layers with individual opacity never exceeding 0.05
|
||||
6. The warm white (#f6f5f4) section background is essential for visual rhythm
|
||||
7. Pill badges (9999px) for status/tags, 4px radius for buttons and inputs
|
||||
8. Notion Blue (#0075de) is the only saturated color in core UI -- use it sparingly for CTAs and links
|
||||
25
design-md/notion/README.md
Normal file
25
design-md/notion/README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Notion — Design System
|
||||
|
||||
> Design.md extracted from the public [notion](https://notion.dev/) website. This is not the official design system. Colors, fonts, and spacing may not be 100% accurate. But it's a good starting point for building something similar.
|
||||
|
||||
## Files
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `DESIGN.md` | Complete design system documentation (9 sections) |
|
||||
| `preview.html` | Interactive design token catalog (light) |
|
||||
| `preview-dark.html` | Interactive design token catalog (dark) |
|
||||
|
||||
## Usage
|
||||
|
||||
Open `DESIGN.md` to use as a reference for AI agents (Claude, Cursor, Stitch) to generate UI that matches the Notion design language.
|
||||
|
||||
## Preview
|
||||
|
||||
A sample landing page built with DESIGN.md. It shows the actual colors, typography, buttons, cards, spacing, and elevation, all in one page.
|
||||
|
||||
### Dark Mode
|
||||

|
||||
|
||||
### Light Mode
|
||||

|
||||
374
design-md/notion/preview-dark.html
Normal file
374
design-md/notion/preview-dark.html
Normal file
@@ -0,0 +1,374 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Design System Preview: Notion (Dark)</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
:root {
|
||||
--black: rgba(255,255,255,0.92);
|
||||
--black-solid: #e8e8e8;
|
||||
--white: #191919;
|
||||
--warm-white: #1e1e1e;
|
||||
--warm-dark: #d4d3d1;
|
||||
--gray-500: #a8a5a0;
|
||||
--gray-300: #6b6763;
|
||||
--notion-blue: #4da3f0;
|
||||
--active-blue: #3a8fdc;
|
||||
--focus-blue: #5aacf5;
|
||||
--link-light-blue: #62aef0;
|
||||
--badge-bg: #1a2a3a;
|
||||
--badge-text: #5aacf5;
|
||||
--teal: #3dbdb9;
|
||||
--green: #2fca52;
|
||||
--orange: #f07020;
|
||||
--pink: #ff80d5;
|
||||
--purple: #a07acc;
|
||||
--brown: #c49060;
|
||||
--deep-navy: #6878c8;
|
||||
--border-whisper: 1px solid rgba(255,255,255,0.1);
|
||||
--shadow-card: rgba(0,0,0,0.2) 0px 4px 18px 0px, rgba(0,0,0,0.15) 0px 2.025px 7.85px 0px, rgba(0,0,0,0.1) 0px 0.8px 2.93px 0px, rgba(0,0,0,0.08) 0px 0.175px 1.04px 0px;
|
||||
--shadow-deep: rgba(0,0,0,0.15) 0px 1px 3px 0px, rgba(0,0,0,0.2) 0px 3px 7px 0px, rgba(0,0,0,0.2) 0px 7px 15px 0px, rgba(0,0,0,0.25) 0px 14px 28px 0px, rgba(0,0,0,0.3) 0px 23px 52px 0px;
|
||||
--font-sans: 'Inter', -apple-system, system-ui, 'Segoe UI', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body {
|
||||
background: var(--white);
|
||||
color: var(--black);
|
||||
font-family: var(--font-sans);
|
||||
font-size: 16px; font-weight: 400; line-height: 1.50;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
/* NAV */
|
||||
.nav {
|
||||
display: flex; align-items: center; justify-content: space-between;
|
||||
padding: 12px 32px;
|
||||
background: var(--white);
|
||||
border-bottom: var(--border-whisper);
|
||||
}
|
||||
.nav-brand { font-size: 15px; font-weight: 600; color: var(--black); text-decoration: none; }
|
||||
.nav-links { display: flex; gap: 24px; list-style: none; }
|
||||
.nav-links a { font-size: 15px; font-weight: 500; color: var(--gray-500); text-decoration: none; transition: color 0.15s; }
|
||||
.nav-links a:hover { color: var(--black); text-decoration: underline; }
|
||||
.nav-cta {
|
||||
display: inline-block; background: var(--notion-blue); color: #191919;
|
||||
padding: 6px 14px; border-radius: 4px; font-size: 15px; font-weight: 600;
|
||||
text-decoration: none; transition: background 0.15s;
|
||||
}
|
||||
.nav-cta:hover { background: var(--active-blue); }
|
||||
|
||||
/* DARK MODE BADGE */
|
||||
.dark-badge {
|
||||
position: fixed; top: 16px; right: 16px; z-index: 200;
|
||||
background: var(--black-solid); color: var(--white);
|
||||
font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 6px;
|
||||
}
|
||||
|
||||
/* HERO */
|
||||
.hero { padding: 96px 32px 80px; text-align: center; }
|
||||
.hero h1 {
|
||||
font-size: 64px; font-weight: 700; line-height: 1.00;
|
||||
letter-spacing: -2.125px; color: var(--black); margin-bottom: 16px;
|
||||
}
|
||||
.hero p { font-size: 20px; font-weight: 400; line-height: 1.50; color: var(--gray-500); max-width: 600px; margin: 0 auto 32px; }
|
||||
.hero-buttons { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
|
||||
.btn-blue {
|
||||
display: inline-block; background: var(--notion-blue); color: #191919;
|
||||
padding: 10px 24px; border-radius: 4px; border: none;
|
||||
font-family: var(--font-sans); font-size: 15px; font-weight: 600;
|
||||
text-decoration: none; cursor: pointer; transition: background 0.15s;
|
||||
}
|
||||
.btn-blue:hover { background: var(--active-blue); }
|
||||
.btn-ghost {
|
||||
display: inline-block; background: rgba(255,255,255,0.08); color: var(--black);
|
||||
padding: 10px 24px; border-radius: 4px; border: none;
|
||||
font-family: var(--font-sans); font-size: 15px; font-weight: 600;
|
||||
text-decoration: none; cursor: pointer; transition: background 0.15s;
|
||||
}
|
||||
.btn-ghost:hover { background: rgba(255,255,255,0.14); }
|
||||
|
||||
/* SECTIONS */
|
||||
.section { padding: 64px 32px; max-width: 1200px; margin: 0 auto; }
|
||||
.section--warm { background: var(--warm-white); }
|
||||
.section--warm .section-inner { max-width: 1200px; margin: 0 auto; padding: 64px 32px; }
|
||||
.section-label { font-size: 12px; font-weight: 600; color: var(--gray-300); text-transform: uppercase; margin-bottom: 8px; letter-spacing: 0.5px; }
|
||||
.section-title { font-size: 32px; font-weight: 700; line-height: 1.20; letter-spacing: -1px; margin-bottom: 32px; }
|
||||
.section-divider { border: none; border-top: var(--border-whisper); margin: 0; }
|
||||
|
||||
/* COLORS */
|
||||
.color-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)); gap: 12px; margin-bottom: 24px; }
|
||||
.color-swatch { border-radius: 8px; overflow: hidden; border: var(--border-whisper); }
|
||||
.color-swatch-block { height: 72px; width: 100%; }
|
||||
.color-swatch-info { padding: 10px 12px; }
|
||||
.color-swatch-name { font-size: 13px; font-weight: 600; margin-bottom: 2px; }
|
||||
.color-swatch-hex { font-size: 12px; color: var(--gray-500); font-family: monospace; }
|
||||
.color-swatch-role { font-size: 11px; color: var(--gray-300); margin-top: 3px; }
|
||||
.color-group-label { font-size: 14px; font-weight: 600; color: var(--gray-500); margin: 24px 0 10px; }
|
||||
|
||||
/* TYPOGRAPHY */
|
||||
.type-sample { margin-bottom: 28px; padding-bottom: 24px; border-bottom: var(--border-whisper); }
|
||||
.type-sample:last-child { border-bottom: none; }
|
||||
.type-meta { font-size: 12px; font-weight: 500; color: var(--gray-300); margin-top: 8px; font-family: monospace; }
|
||||
|
||||
/* BUTTONS */
|
||||
.button-row { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
|
||||
.button-item { text-align: center; }
|
||||
.button-label { font-size: 12px; font-weight: 500; color: var(--gray-300); margin-top: 8px; }
|
||||
.btn-pill { display: inline-block; background: var(--badge-bg); color: var(--badge-text); padding: 4px 8px; border-radius: 9999px; font-size: 12px; font-weight: 600; text-decoration: none; letter-spacing: 0.125px; }
|
||||
|
||||
/* CARDS */
|
||||
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 20px; }
|
||||
.card { background: var(--white); border-radius: 12px; padding: 24px; border: var(--border-whisper); box-shadow: var(--shadow-card); transition: box-shadow 0.2s; }
|
||||
.card:hover { box-shadow: var(--shadow-deep); }
|
||||
.card h3 { font-size: 22px; font-weight: 700; letter-spacing: -0.25px; margin-bottom: 8px; }
|
||||
.card p { font-size: 14px; color: var(--gray-500); line-height: 1.50; }
|
||||
.card-badge { display: inline-block; font-size: 12px; font-weight: 600; padding: 4px 8px; border-radius: 9999px; margin-bottom: 12px; letter-spacing: 0.125px; }
|
||||
|
||||
/* FORMS */
|
||||
.form-group { margin-bottom: 20px; max-width: 400px; }
|
||||
.form-label { display: block; font-size: 14px; font-weight: 500; color: var(--black); margin-bottom: 6px; }
|
||||
.form-input {
|
||||
width: 100%; background: var(--warm-white); color: var(--black);
|
||||
border: 1px solid rgba(255,255,255,0.15); padding: 8px 12px; border-radius: 4px;
|
||||
font-family: var(--font-sans); font-size: 14px; outline: none;
|
||||
transition: border-color 0.15s;
|
||||
}
|
||||
.form-input:focus { border-color: var(--notion-blue); box-shadow: 0 0 0 2px rgba(77,163,240,0.25); }
|
||||
.form-input--focus { border-color: var(--notion-blue); box-shadow: 0 0 0 2px rgba(77,163,240,0.25); }
|
||||
.form-input--error { border-color: var(--orange); box-shadow: 0 0 0 2px rgba(240,112,32,0.25); }
|
||||
.form-textarea {
|
||||
width: 100%; min-height: 80px; background: var(--warm-white); color: var(--black);
|
||||
border: 1px solid rgba(255,255,255,0.15); padding: 8px 12px; border-radius: 4px;
|
||||
font-family: var(--font-sans); font-size: 14px; resize: vertical; outline: none;
|
||||
}
|
||||
.form-state-label { font-size: 11px; color: var(--gray-300); margin-top: 4px; }
|
||||
|
||||
/* SPACING */
|
||||
.spacing-row { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; }
|
||||
.spacing-item { text-align: center; }
|
||||
.spacing-block { background: var(--warm-dark); border-radius: 3px; margin-bottom: 6px; height: 28px; }
|
||||
.spacing-value { font-size: 11px; font-weight: 500; color: var(--gray-300); font-family: monospace; }
|
||||
|
||||
/* RADIUS */
|
||||
.radius-row { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
|
||||
.radius-item { text-align: center; }
|
||||
.radius-box { width: 64px; height: 64px; background: var(--warm-dark); margin-bottom: 6px; }
|
||||
.radius-label { font-size: 11px; font-weight: 500; color: var(--gray-300); font-family: monospace; }
|
||||
.radius-context { font-size: 10px; color: var(--gray-300); }
|
||||
|
||||
/* ELEVATION */
|
||||
.elevation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; }
|
||||
.elevation-card { background: var(--white); border-radius: 12px; padding: 20px; text-align: center; }
|
||||
.elevation-label { font-size: 14px; font-weight: 600; margin-bottom: 4px; }
|
||||
.elevation-desc { font-size: 11px; color: var(--gray-300); font-family: monospace; }
|
||||
|
||||
/* FOOTER */
|
||||
.footer { padding: 32px; text-align: center; border-top: var(--border-whisper); font-size: 13px; color: var(--gray-500); }
|
||||
.footer a { color: var(--notion-blue); text-decoration: underline; }
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.hero h1 { font-size: 40px; letter-spacing: -1.5px; }
|
||||
.nav-links { display: none; }
|
||||
.section { padding: 48px 20px; }
|
||||
.section--warm .section-inner { padding: 48px 20px; }
|
||||
.card-grid { grid-template-columns: 1fr; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="nav">
|
||||
<a class="nav-brand" href="#">awesome-design-md</a>
|
||||
<ul class="nav-links">
|
||||
<li><a href="#colors">Colors</a></li>
|
||||
<li><a href="#typography">Typography</a></li>
|
||||
<li><a href="#buttons">Buttons</a></li>
|
||||
<li><a href="#cards">Cards</a></li>
|
||||
<li><a href="#forms">Forms</a></li>
|
||||
<li><a href="#spacing">Spacing</a></li>
|
||||
</ul>
|
||||
<a class="nav-cta" href="#">Get Notion free</a>
|
||||
</nav>
|
||||
<div class="dark-badge">Dark Mode</div>
|
||||
|
||||
<section class="hero">
|
||||
<h1>Design System<br>Inspired by Notion</h1>
|
||||
<p>A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.</p>
|
||||
<div class="hero-buttons">
|
||||
<a class="btn-blue" href="#">Get Notion free</a>
|
||||
<a class="btn-ghost" href="#">View Documentation</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section class="section" id="colors">
|
||||
<div class="section-label">01 / Colors</div>
|
||||
<h2 class="section-title">Color Palette</h2>
|
||||
|
||||
<div class="color-group-label">Primary</div>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:rgba(0,0,0,0.95)"></div><div class="color-swatch-info"><div class="color-swatch-name">Notion Black</div><div class="color-swatch-hex">rgba(0,0,0,0.95)</div><div class="color-swatch-role">Primary text, headings</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#ffffff"></div><div class="color-swatch-info"><div class="color-swatch-name">Pure White</div><div class="color-swatch-hex">#ffffff</div><div class="color-swatch-role">Page background</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#0075de"></div><div class="color-swatch-info"><div class="color-swatch-name">Notion Blue</div><div class="color-swatch-hex">#0075de</div><div class="color-swatch-role">Primary CTA, links</div></div></div>
|
||||
</div>
|
||||
|
||||
<div class="color-group-label">Warm Neutrals</div>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#f6f5f4"></div><div class="color-swatch-info"><div class="color-swatch-name">Warm White</div><div class="color-swatch-hex">#f6f5f4</div><div class="color-swatch-role">Surface tint, sections</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#31302e"></div><div class="color-swatch-info"><div class="color-swatch-name">Warm Dark</div><div class="color-swatch-hex">#31302e</div><div class="color-swatch-role">Dark surfaces</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#615d59"></div><div class="color-swatch-info"><div class="color-swatch-name">Warm Gray 500</div><div class="color-swatch-hex">#615d59</div><div class="color-swatch-role">Secondary text</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#a39e98"></div><div class="color-swatch-info"><div class="color-swatch-name">Warm Gray 300</div><div class="color-swatch-hex">#a39e98</div><div class="color-swatch-role">Placeholder, muted</div></div></div>
|
||||
</div>
|
||||
|
||||
<div class="color-group-label">Semantic Accents</div>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#2a9d99"></div><div class="color-swatch-info"><div class="color-swatch-name">Teal</div><div class="color-swatch-hex">#2a9d99</div><div class="color-swatch-role">Success states</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#1aae39"></div><div class="color-swatch-info"><div class="color-swatch-name">Green</div><div class="color-swatch-hex">#1aae39</div><div class="color-swatch-role">Confirmation</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#dd5b00"></div><div class="color-swatch-info"><div class="color-swatch-name">Orange</div><div class="color-swatch-hex">#dd5b00</div><div class="color-swatch-role">Warning</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#ff64c8"></div><div class="color-swatch-info"><div class="color-swatch-name">Pink</div><div class="color-swatch-hex">#ff64c8</div><div class="color-swatch-role">Decorative accent</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#391c57"></div><div class="color-swatch-info"><div class="color-swatch-name">Purple</div><div class="color-swatch-hex">#391c57</div><div class="color-swatch-role">Premium features</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#523410"></div><div class="color-swatch-info"><div class="color-swatch-name">Brown</div><div class="color-swatch-hex">#523410</div><div class="color-swatch-role">Earthy accent</div></div></div>
|
||||
</div>
|
||||
|
||||
<div class="color-group-label">Interactive</div>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#005bab"></div><div class="color-swatch-info"><div class="color-swatch-name">Active Blue</div><div class="color-swatch-hex">#005bab</div><div class="color-swatch-role">Button active state</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#097fe8"></div><div class="color-swatch-info"><div class="color-swatch-name">Focus Blue</div><div class="color-swatch-hex">#097fe8</div><div class="color-swatch-role">Focus ring</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#213183"></div><div class="color-swatch-info"><div class="color-swatch-name">Deep Navy</div><div class="color-swatch-hex">#213183</div><div class="color-swatch-role">Brand secondary</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#f2f9ff"></div><div class="color-swatch-info"><div class="color-swatch-name">Badge Bg</div><div class="color-swatch-hex">#f2f9ff</div><div class="color-swatch-role">Pill badge surface</div></div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="section--warm">
|
||||
<div class="section-inner" id="typography">
|
||||
<div class="section-label">02 / Typography</div>
|
||||
<h2 class="section-title">Typography Scale</h2>
|
||||
|
||||
<div class="type-sample"><div style="font-size:64px; font-weight:700; line-height:1.00; letter-spacing:-2.125px;">Display Hero</div><div class="type-meta">Display Hero -- 64px / 700 / 1.00 / -2.125px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:54px; font-weight:700; line-height:1.04; letter-spacing:-1.875px;">Display Secondary</div><div class="type-meta">Display Secondary -- 54px / 700 / 1.04 / -1.875px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:48px; font-weight:700; line-height:1.00; letter-spacing:-1.5px;">Section Heading</div><div class="type-meta">Section Heading -- 48px / 700 / 1.00 / -1.5px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:40px; font-weight:700; line-height:1.50;">Sub-heading Large</div><div class="type-meta">Sub-heading Large -- 40px / 700 / 1.50 / normal / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:26px; font-weight:700; line-height:1.23; letter-spacing:-0.625px;">Sub-heading</div><div class="type-meta">Sub-heading -- 26px / 700 / 1.23 / -0.625px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:22px; font-weight:700; line-height:1.27; letter-spacing:-0.25px;">Card Title</div><div class="type-meta">Card Title -- 22px / 700 / 1.27 / -0.25px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:20px; font-weight:600; line-height:1.40; letter-spacing:-0.125px;">Body Large -- Your workspace for docs, projects, and knowledge. All in one place.</div><div class="type-meta">Body Large -- 20px / 600 / 1.40 / -0.125px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:16px; font-weight:500; line-height:1.50;">Body Medium -- Navigation and emphasized text</div><div class="type-meta">Body Medium -- 16px / 500 / 1.50 / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:16px; font-weight:400; line-height:1.50;">Body -- Standard reading text for articles and descriptions</div><div class="type-meta">Body -- 16px / 400 / 1.50 / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:15px; font-weight:600; line-height:1.33;">Nav / Button Label</div><div class="type-meta">Nav / Button -- 15px / 600 / 1.33 / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:14px; font-weight:500; line-height:1.43;">Caption -- Metadata and secondary labels</div><div class="type-meta">Caption -- 14px / 500 / 1.43 / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:12px; font-weight:600; line-height:1.33; letter-spacing:0.125px;">Badge / Micro Label</div><div class="type-meta">Badge -- 12px / 600 / 1.33 / 0.125px / Inter</div></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section class="section" id="buttons">
|
||||
<div class="section-label">03 / Buttons</div>
|
||||
<h2 class="section-title">Button Variants</h2>
|
||||
<div class="button-row">
|
||||
<div class="button-item"><a class="btn-blue" href="#">Get Notion free</a><div class="button-label">Primary Blue</div></div>
|
||||
<div class="button-item"><a class="btn-ghost" href="#">Request a demo</a><div class="button-label">Secondary</div></div>
|
||||
<div class="button-item"><a class="btn-pill" href="#">New</a><div class="button-label">Pill Badge</div></div>
|
||||
<div class="button-item"><span style="display:inline-block; background:rgba(61,189,185,0.15); color:var(--teal); padding:4px 8px; border-radius:9999px; font-size:12px; font-weight:600; letter-spacing:0.125px;">Available</span><div class="button-label">Teal Badge</div></div>
|
||||
<div class="button-item"><span style="display:inline-block; background:rgba(240,112,32,0.15); color:var(--orange); padding:4px 8px; border-radius:9999px; font-size:12px; font-weight:600; letter-spacing:0.125px;">Warning</span><div class="button-label">Orange Badge</div></div>
|
||||
<div class="button-item"><span style="display:inline-block; background:rgba(47,202,82,0.15); color:var(--green); padding:4px 8px; border-radius:9999px; font-size:12px; font-weight:600; letter-spacing:0.125px;">Confirmed</span><div class="button-label">Green Badge</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="section--warm">
|
||||
<div class="section-inner" id="cards">
|
||||
<div class="section-label">04 / Cards</div>
|
||||
<h2 class="section-title">Card Examples</h2>
|
||||
<div class="card-grid">
|
||||
<div class="card">
|
||||
<div class="card-badge" style="background:var(--badge-bg); color:var(--badge-text);">Workspace</div>
|
||||
<h3>Custom Agents</h3>
|
||||
<p>Build and deploy AI agents tailored to your team's workflow. Automate tasks, answer questions, and streamline processes.</p>
|
||||
</div>
|
||||
<div class="card" style="box-shadow: var(--shadow-deep);">
|
||||
<div class="card-badge" style="background:rgba(61,189,185,0.15); color:var(--teal);">Productivity</div>
|
||||
<h3>Connected Wikis</h3>
|
||||
<p>Centralize team knowledge in interconnected wikis. Keep documentation organized and always up to date with real-time collaboration.</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-badge" style="background:rgba(255,128,213,0.15); color:var(--pink);">Projects</div>
|
||||
<h3>Team Projects</h3>
|
||||
<p>Manage projects with flexible views: boards, timelines, lists, and calendars. Everything your team needs, all in one workspace.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section class="section" id="forms">
|
||||
<div class="section-label">05 / Forms</div>
|
||||
<h2 class="section-title">Form Elements</h2>
|
||||
<div class="form-group"><label class="form-label">Workspace Name</label><input class="form-input" type="text" placeholder="My Team Workspace"><div class="form-state-label">Default</div></div>
|
||||
<div class="form-group"><label class="form-label">Email Address</label><input class="form-input form-input--focus" type="text" value="team@company.com"><div class="form-state-label">Focus (blue ring)</div></div>
|
||||
<div class="form-group"><label class="form-label">Domain</label><input class="form-input form-input--error" type="text" value="invalid domain"><div class="form-state-label">Error (orange ring)</div></div>
|
||||
<div class="form-group"><label class="form-label">Description</label><textarea class="form-textarea" placeholder="Describe your workspace..."></textarea></div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<div class="section--warm">
|
||||
<div class="section-inner" id="spacing">
|
||||
<div class="section-label">06 / Spacing</div>
|
||||
<h2 class="section-title">Spacing Scale</h2>
|
||||
<div class="spacing-row">
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:2px"></div><div class="spacing-value">2</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:4px"></div><div class="spacing-value">4</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:6px"></div><div class="spacing-value">6</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:8px"></div><div class="spacing-value">8</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:12px"></div><div class="spacing-value">12</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:14px"></div><div class="spacing-value">14</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:16px"></div><div class="spacing-value">16</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:24px"></div><div class="spacing-value">24</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:32px"></div><div class="spacing-value">32</div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section class="section" id="radius">
|
||||
<div class="section-label">07 / Radius</div>
|
||||
<h2 class="section-title">Border Radius Scale</h2>
|
||||
<div class="radius-row">
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:4px"></div><div class="radius-label">4px</div><div class="radius-context">Buttons, inputs</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:5px"></div><div class="radius-label">5px</div><div class="radius-context">Links, menus</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:8px"></div><div class="radius-label">8px</div><div class="radius-context">Small cards</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:12px"></div><div class="radius-label">12px</div><div class="radius-context">Cards</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:16px"></div><div class="radius-label">16px</div><div class="radius-context">Hero cards</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:9999px"></div><div class="radius-label">9999px</div><div class="radius-context">Badges</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:50%"></div><div class="radius-label">50%</div><div class="radius-context">Avatars</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<div class="section--warm">
|
||||
<div class="section-inner" id="elevation">
|
||||
<div class="section-label">08 / Elevation</div>
|
||||
<h2 class="section-title">Elevation & Depth</h2>
|
||||
<div class="elevation-grid">
|
||||
<div class="elevation-card" style="border: var(--border-whisper); box-shadow:none;"><div class="elevation-label">Level 0: Flat</div><div class="elevation-desc">No shadow</div></div>
|
||||
<div class="elevation-card" style="border: var(--border-whisper);"><div class="elevation-label">Level 1: Whisper</div><div class="elevation-desc">1px solid rgba(255,255,255,0.1)</div></div>
|
||||
<div class="elevation-card" style="border: var(--border-whisper); box-shadow: var(--shadow-card);"><div class="elevation-label">Level 2: Card</div><div class="elevation-desc">4-layer stack</div></div>
|
||||
<div class="elevation-card" style="border: var(--border-whisper); box-shadow: var(--shadow-deep);"><div class="elevation-label">Level 3: Deep</div><div class="elevation-desc">5-layer stack, 52px blur</div></div>
|
||||
<div class="elevation-card" style="box-shadow: 0 0 0 2px var(--focus-blue);"><div class="elevation-label">Focus</div><div class="elevation-desc">2px solid focus ring</div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
Generated from <a href="https://notion.com/">notion.com</a> DESIGN.md -- awesome-design-md
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
366
design-md/notion/preview.html
Normal file
366
design-md/notion/preview.html
Normal file
@@ -0,0 +1,366 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Design System Preview: Notion (Light)</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
:root {
|
||||
--black: rgba(0,0,0,0.95);
|
||||
--black-solid: #000000;
|
||||
--white: #ffffff;
|
||||
--warm-white: #f6f5f4;
|
||||
--warm-dark: #31302e;
|
||||
--gray-500: #615d59;
|
||||
--gray-300: #a39e98;
|
||||
--notion-blue: #0075de;
|
||||
--active-blue: #005bab;
|
||||
--focus-blue: #097fe8;
|
||||
--link-light-blue: #62aef0;
|
||||
--badge-bg: #f2f9ff;
|
||||
--badge-text: #097fe8;
|
||||
--teal: #2a9d99;
|
||||
--green: #1aae39;
|
||||
--orange: #dd5b00;
|
||||
--pink: #ff64c8;
|
||||
--purple: #391c57;
|
||||
--brown: #523410;
|
||||
--deep-navy: #213183;
|
||||
--border-whisper: 1px solid rgba(0,0,0,0.1);
|
||||
--shadow-card: rgba(0,0,0,0.04) 0px 4px 18px 0px, rgba(0,0,0,0.027) 0px 2.025px 7.85px 0px, rgba(0,0,0,0.02) 0px 0.8px 2.93px 0px, rgba(0,0,0,0.01) 0px 0.175px 1.04px 0px;
|
||||
--shadow-deep: rgba(0,0,0,0.01) 0px 1px 3px 0px, rgba(0,0,0,0.02) 0px 3px 7px 0px, rgba(0,0,0,0.02) 0px 7px 15px 0px, rgba(0,0,0,0.04) 0px 14px 28px 0px, rgba(0,0,0,0.05) 0px 23px 52px 0px;
|
||||
--font-sans: 'Inter', -apple-system, system-ui, 'Segoe UI', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body {
|
||||
background: var(--white);
|
||||
color: var(--black);
|
||||
font-family: var(--font-sans);
|
||||
font-size: 16px; font-weight: 400; line-height: 1.50;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
/* NAV */
|
||||
.nav {
|
||||
display: flex; align-items: center; justify-content: space-between;
|
||||
padding: 12px 32px;
|
||||
background: var(--white);
|
||||
border-bottom: var(--border-whisper);
|
||||
}
|
||||
.nav-brand { font-size: 15px; font-weight: 600; color: var(--black); text-decoration: none; }
|
||||
.nav-links { display: flex; gap: 24px; list-style: none; }
|
||||
.nav-links a { font-size: 15px; font-weight: 500; color: var(--gray-500); text-decoration: none; transition: color 0.15s; }
|
||||
.nav-links a:hover { color: var(--black); text-decoration: underline; }
|
||||
.nav-cta {
|
||||
display: inline-block; background: var(--notion-blue); color: var(--white);
|
||||
padding: 6px 14px; border-radius: 4px; font-size: 15px; font-weight: 600;
|
||||
text-decoration: none; transition: background 0.15s;
|
||||
}
|
||||
.nav-cta:hover { background: var(--active-blue); }
|
||||
|
||||
/* HERO */
|
||||
.hero { padding: 96px 32px 80px; text-align: center; }
|
||||
.hero h1 {
|
||||
font-size: 64px; font-weight: 700; line-height: 1.00;
|
||||
letter-spacing: -2.125px; color: var(--black); margin-bottom: 16px;
|
||||
}
|
||||
.hero p { font-size: 20px; font-weight: 400; line-height: 1.50; color: var(--gray-500); max-width: 600px; margin: 0 auto 32px; }
|
||||
.hero-buttons { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
|
||||
.btn-blue {
|
||||
display: inline-block; background: var(--notion-blue); color: var(--white);
|
||||
padding: 10px 24px; border-radius: 4px; border: none;
|
||||
font-family: var(--font-sans); font-size: 15px; font-weight: 600;
|
||||
text-decoration: none; cursor: pointer; transition: background 0.15s;
|
||||
}
|
||||
.btn-blue:hover { background: var(--active-blue); }
|
||||
.btn-ghost {
|
||||
display: inline-block; background: rgba(0,0,0,0.05); color: var(--black);
|
||||
padding: 10px 24px; border-radius: 4px; border: none;
|
||||
font-family: var(--font-sans); font-size: 15px; font-weight: 600;
|
||||
text-decoration: none; cursor: pointer; transition: background 0.15s;
|
||||
}
|
||||
.btn-ghost:hover { background: rgba(0,0,0,0.1); }
|
||||
|
||||
/* SECTIONS */
|
||||
.section { padding: 64px 32px; max-width: 1200px; margin: 0 auto; }
|
||||
.section--warm { background: var(--warm-white); }
|
||||
.section--warm .section-inner { max-width: 1200px; margin: 0 auto; padding: 64px 32px; }
|
||||
.section-label { font-size: 12px; font-weight: 600; color: var(--gray-300); text-transform: uppercase; margin-bottom: 8px; letter-spacing: 0.5px; }
|
||||
.section-title { font-size: 32px; font-weight: 700; line-height: 1.20; letter-spacing: -1px; margin-bottom: 32px; }
|
||||
.section-divider { border: none; border-top: var(--border-whisper); margin: 0; }
|
||||
|
||||
/* COLORS */
|
||||
.color-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)); gap: 12px; margin-bottom: 24px; }
|
||||
.color-swatch { border-radius: 8px; overflow: hidden; border: var(--border-whisper); }
|
||||
.color-swatch-block { height: 72px; width: 100%; }
|
||||
.color-swatch-info { padding: 10px 12px; }
|
||||
.color-swatch-name { font-size: 13px; font-weight: 600; margin-bottom: 2px; }
|
||||
.color-swatch-hex { font-size: 12px; color: var(--gray-500); font-family: monospace; }
|
||||
.color-swatch-role { font-size: 11px; color: var(--gray-300); margin-top: 3px; }
|
||||
.color-group-label { font-size: 14px; font-weight: 600; color: var(--gray-500); margin: 24px 0 10px; }
|
||||
|
||||
/* TYPOGRAPHY */
|
||||
.type-sample { margin-bottom: 28px; padding-bottom: 24px; border-bottom: var(--border-whisper); }
|
||||
.type-sample:last-child { border-bottom: none; }
|
||||
.type-meta { font-size: 12px; font-weight: 500; color: var(--gray-300); margin-top: 8px; font-family: monospace; }
|
||||
|
||||
/* BUTTONS */
|
||||
.button-row { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
|
||||
.button-item { text-align: center; }
|
||||
.button-label { font-size: 12px; font-weight: 500; color: var(--gray-300); margin-top: 8px; }
|
||||
.btn-pill { display: inline-block; background: var(--badge-bg); color: var(--badge-text); padding: 4px 8px; border-radius: 9999px; font-size: 12px; font-weight: 600; text-decoration: none; letter-spacing: 0.125px; }
|
||||
|
||||
/* CARDS */
|
||||
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 20px; }
|
||||
.card { background: var(--white); border-radius: 12px; padding: 24px; border: var(--border-whisper); box-shadow: var(--shadow-card); transition: box-shadow 0.2s; }
|
||||
.card:hover { box-shadow: var(--shadow-deep); }
|
||||
.card h3 { font-size: 22px; font-weight: 700; letter-spacing: -0.25px; margin-bottom: 8px; }
|
||||
.card p { font-size: 14px; color: var(--gray-500); line-height: 1.50; }
|
||||
.card-badge { display: inline-block; font-size: 12px; font-weight: 600; padding: 4px 8px; border-radius: 9999px; margin-bottom: 12px; letter-spacing: 0.125px; }
|
||||
|
||||
/* FORMS */
|
||||
.form-group { margin-bottom: 20px; max-width: 400px; }
|
||||
.form-label { display: block; font-size: 14px; font-weight: 500; color: var(--black); margin-bottom: 6px; }
|
||||
.form-input {
|
||||
width: 100%; background: var(--white); color: var(--black);
|
||||
border: 1px solid #dddddd; padding: 8px 12px; border-radius: 4px;
|
||||
font-family: var(--font-sans); font-size: 14px; outline: none;
|
||||
transition: border-color 0.15s;
|
||||
}
|
||||
.form-input:focus { border-color: var(--notion-blue); box-shadow: 0 0 0 2px rgba(0,117,222,0.2); }
|
||||
.form-input--focus { border-color: var(--notion-blue); box-shadow: 0 0 0 2px rgba(0,117,222,0.2); }
|
||||
.form-input--error { border-color: var(--orange); box-shadow: 0 0 0 2px rgba(221,91,0,0.2); }
|
||||
.form-textarea {
|
||||
width: 100%; min-height: 80px; background: var(--white); color: var(--black);
|
||||
border: 1px solid #dddddd; padding: 8px 12px; border-radius: 4px;
|
||||
font-family: var(--font-sans); font-size: 14px; resize: vertical; outline: none;
|
||||
}
|
||||
.form-state-label { font-size: 11px; color: var(--gray-300); margin-top: 4px; }
|
||||
|
||||
/* SPACING */
|
||||
.spacing-row { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; }
|
||||
.spacing-item { text-align: center; }
|
||||
.spacing-block { background: var(--warm-dark); border-radius: 3px; margin-bottom: 6px; height: 28px; }
|
||||
.spacing-value { font-size: 11px; font-weight: 500; color: var(--gray-300); font-family: monospace; }
|
||||
|
||||
/* RADIUS */
|
||||
.radius-row { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
|
||||
.radius-item { text-align: center; }
|
||||
.radius-box { width: 64px; height: 64px; background: var(--warm-dark); margin-bottom: 6px; }
|
||||
.radius-label { font-size: 11px; font-weight: 500; color: var(--gray-300); font-family: monospace; }
|
||||
.radius-context { font-size: 10px; color: var(--gray-300); }
|
||||
|
||||
/* ELEVATION */
|
||||
.elevation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; }
|
||||
.elevation-card { background: var(--white); border-radius: 12px; padding: 20px; text-align: center; }
|
||||
.elevation-label { font-size: 14px; font-weight: 600; margin-bottom: 4px; }
|
||||
.elevation-desc { font-size: 11px; color: var(--gray-300); font-family: monospace; }
|
||||
|
||||
/* FOOTER */
|
||||
.footer { padding: 32px; text-align: center; border-top: var(--border-whisper); font-size: 13px; color: var(--gray-500); }
|
||||
.footer a { color: var(--notion-blue); text-decoration: underline; }
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.hero h1 { font-size: 40px; letter-spacing: -1.5px; }
|
||||
.nav-links { display: none; }
|
||||
.section { padding: 48px 20px; }
|
||||
.section--warm .section-inner { padding: 48px 20px; }
|
||||
.card-grid { grid-template-columns: 1fr; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="nav">
|
||||
<a class="nav-brand" href="#">awesome-design-md</a>
|
||||
<ul class="nav-links">
|
||||
<li><a href="#colors">Colors</a></li>
|
||||
<li><a href="#typography">Typography</a></li>
|
||||
<li><a href="#buttons">Buttons</a></li>
|
||||
<li><a href="#cards">Cards</a></li>
|
||||
<li><a href="#forms">Forms</a></li>
|
||||
<li><a href="#spacing">Spacing</a></li>
|
||||
</ul>
|
||||
<a class="nav-cta" href="#">Get Notion free</a>
|
||||
</nav>
|
||||
|
||||
<section class="hero">
|
||||
<h1>Design System<br>Inspired by Notion</h1>
|
||||
<p>A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.</p>
|
||||
<div class="hero-buttons">
|
||||
<a class="btn-blue" href="#">Get Notion free</a>
|
||||
<a class="btn-ghost" href="#">View Documentation</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section class="section" id="colors">
|
||||
<div class="section-label">01 / Colors</div>
|
||||
<h2 class="section-title">Color Palette</h2>
|
||||
|
||||
<div class="color-group-label">Primary</div>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:rgba(0,0,0,0.95)"></div><div class="color-swatch-info"><div class="color-swatch-name">Notion Black</div><div class="color-swatch-hex">rgba(0,0,0,0.95)</div><div class="color-swatch-role">Primary text, headings</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#ffffff; border-bottom:1px solid rgba(0,0,0,0.1)"></div><div class="color-swatch-info"><div class="color-swatch-name">Pure White</div><div class="color-swatch-hex">#ffffff</div><div class="color-swatch-role">Page background</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#0075de"></div><div class="color-swatch-info"><div class="color-swatch-name">Notion Blue</div><div class="color-swatch-hex">#0075de</div><div class="color-swatch-role">Primary CTA, links</div></div></div>
|
||||
</div>
|
||||
|
||||
<div class="color-group-label">Warm Neutrals</div>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#f6f5f4; border-bottom:1px solid rgba(0,0,0,0.1)"></div><div class="color-swatch-info"><div class="color-swatch-name">Warm White</div><div class="color-swatch-hex">#f6f5f4</div><div class="color-swatch-role">Surface tint, sections</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#31302e"></div><div class="color-swatch-info"><div class="color-swatch-name">Warm Dark</div><div class="color-swatch-hex">#31302e</div><div class="color-swatch-role">Dark surfaces</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#615d59"></div><div class="color-swatch-info"><div class="color-swatch-name">Warm Gray 500</div><div class="color-swatch-hex">#615d59</div><div class="color-swatch-role">Secondary text</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#a39e98"></div><div class="color-swatch-info"><div class="color-swatch-name">Warm Gray 300</div><div class="color-swatch-hex">#a39e98</div><div class="color-swatch-role">Placeholder, muted</div></div></div>
|
||||
</div>
|
||||
|
||||
<div class="color-group-label">Semantic Accents</div>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#2a9d99"></div><div class="color-swatch-info"><div class="color-swatch-name">Teal</div><div class="color-swatch-hex">#2a9d99</div><div class="color-swatch-role">Success states</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#1aae39"></div><div class="color-swatch-info"><div class="color-swatch-name">Green</div><div class="color-swatch-hex">#1aae39</div><div class="color-swatch-role">Confirmation</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#dd5b00"></div><div class="color-swatch-info"><div class="color-swatch-name">Orange</div><div class="color-swatch-hex">#dd5b00</div><div class="color-swatch-role">Warning</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#ff64c8"></div><div class="color-swatch-info"><div class="color-swatch-name">Pink</div><div class="color-swatch-hex">#ff64c8</div><div class="color-swatch-role">Decorative accent</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#391c57"></div><div class="color-swatch-info"><div class="color-swatch-name">Purple</div><div class="color-swatch-hex">#391c57</div><div class="color-swatch-role">Premium features</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#523410"></div><div class="color-swatch-info"><div class="color-swatch-name">Brown</div><div class="color-swatch-hex">#523410</div><div class="color-swatch-role">Earthy accent</div></div></div>
|
||||
</div>
|
||||
|
||||
<div class="color-group-label">Interactive</div>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#005bab"></div><div class="color-swatch-info"><div class="color-swatch-name">Active Blue</div><div class="color-swatch-hex">#005bab</div><div class="color-swatch-role">Button active state</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#097fe8"></div><div class="color-swatch-info"><div class="color-swatch-name">Focus Blue</div><div class="color-swatch-hex">#097fe8</div><div class="color-swatch-role">Focus ring</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#213183"></div><div class="color-swatch-info"><div class="color-swatch-name">Deep Navy</div><div class="color-swatch-hex">#213183</div><div class="color-swatch-role">Brand secondary</div></div></div>
|
||||
<div class="color-swatch"><div class="color-swatch-block" style="background:#f2f9ff; border-bottom:1px solid rgba(0,0,0,0.1)"></div><div class="color-swatch-info"><div class="color-swatch-name">Badge Bg</div><div class="color-swatch-hex">#f2f9ff</div><div class="color-swatch-role">Pill badge surface</div></div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="section--warm">
|
||||
<div class="section-inner" id="typography">
|
||||
<div class="section-label">02 / Typography</div>
|
||||
<h2 class="section-title">Typography Scale</h2>
|
||||
|
||||
<div class="type-sample"><div style="font-size:64px; font-weight:700; line-height:1.00; letter-spacing:-2.125px;">Display Hero</div><div class="type-meta">Display Hero -- 64px / 700 / 1.00 / -2.125px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:54px; font-weight:700; line-height:1.04; letter-spacing:-1.875px;">Display Secondary</div><div class="type-meta">Display Secondary -- 54px / 700 / 1.04 / -1.875px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:48px; font-weight:700; line-height:1.00; letter-spacing:-1.5px;">Section Heading</div><div class="type-meta">Section Heading -- 48px / 700 / 1.00 / -1.5px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:40px; font-weight:700; line-height:1.50;">Sub-heading Large</div><div class="type-meta">Sub-heading Large -- 40px / 700 / 1.50 / normal / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:26px; font-weight:700; line-height:1.23; letter-spacing:-0.625px;">Sub-heading</div><div class="type-meta">Sub-heading -- 26px / 700 / 1.23 / -0.625px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:22px; font-weight:700; line-height:1.27; letter-spacing:-0.25px;">Card Title</div><div class="type-meta">Card Title -- 22px / 700 / 1.27 / -0.25px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:20px; font-weight:600; line-height:1.40; letter-spacing:-0.125px;">Body Large -- Your workspace for docs, projects, and knowledge. All in one place.</div><div class="type-meta">Body Large -- 20px / 600 / 1.40 / -0.125px / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:16px; font-weight:500; line-height:1.50;">Body Medium -- Navigation and emphasized text</div><div class="type-meta">Body Medium -- 16px / 500 / 1.50 / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:16px; font-weight:400; line-height:1.50;">Body -- Standard reading text for articles and descriptions</div><div class="type-meta">Body -- 16px / 400 / 1.50 / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:15px; font-weight:600; line-height:1.33;">Nav / Button Label</div><div class="type-meta">Nav / Button -- 15px / 600 / 1.33 / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:14px; font-weight:500; line-height:1.43;">Caption -- Metadata and secondary labels</div><div class="type-meta">Caption -- 14px / 500 / 1.43 / Inter</div></div>
|
||||
<div class="type-sample"><div style="font-size:12px; font-weight:600; line-height:1.33; letter-spacing:0.125px;">Badge / Micro Label</div><div class="type-meta">Badge -- 12px / 600 / 1.33 / 0.125px / Inter</div></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section class="section" id="buttons">
|
||||
<div class="section-label">03 / Buttons</div>
|
||||
<h2 class="section-title">Button Variants</h2>
|
||||
<div class="button-row">
|
||||
<div class="button-item"><a class="btn-blue" href="#">Get Notion free</a><div class="button-label">Primary Blue</div></div>
|
||||
<div class="button-item"><a class="btn-ghost" href="#">Request a demo</a><div class="button-label">Secondary</div></div>
|
||||
<div class="button-item"><a class="btn-pill" href="#">New</a><div class="button-label">Pill Badge</div></div>
|
||||
<div class="button-item"><span style="display:inline-block; background:rgba(42,157,153,0.1); color:var(--teal); padding:4px 8px; border-radius:9999px; font-size:12px; font-weight:600; letter-spacing:0.125px;">Available</span><div class="button-label">Teal Badge</div></div>
|
||||
<div class="button-item"><span style="display:inline-block; background:rgba(221,91,0,0.1); color:var(--orange); padding:4px 8px; border-radius:9999px; font-size:12px; font-weight:600; letter-spacing:0.125px;">Warning</span><div class="button-label">Orange Badge</div></div>
|
||||
<div class="button-item"><span style="display:inline-block; background:rgba(26,174,57,0.1); color:var(--green); padding:4px 8px; border-radius:9999px; font-size:12px; font-weight:600; letter-spacing:0.125px;">Confirmed</span><div class="button-label">Green Badge</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="section--warm">
|
||||
<div class="section-inner" id="cards">
|
||||
<div class="section-label">04 / Cards</div>
|
||||
<h2 class="section-title">Card Examples</h2>
|
||||
<div class="card-grid">
|
||||
<div class="card">
|
||||
<div class="card-badge" style="background:var(--badge-bg); color:var(--badge-text);">Workspace</div>
|
||||
<h3>Custom Agents</h3>
|
||||
<p>Build and deploy AI agents tailored to your team's workflow. Automate tasks, answer questions, and streamline processes.</p>
|
||||
</div>
|
||||
<div class="card" style="box-shadow: var(--shadow-deep);">
|
||||
<div class="card-badge" style="background:rgba(42,157,153,0.1); color:var(--teal);">Productivity</div>
|
||||
<h3>Connected Wikis</h3>
|
||||
<p>Centralize team knowledge in interconnected wikis. Keep documentation organized and always up to date with real-time collaboration.</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-badge" style="background:rgba(255,100,200,0.1); color:var(--pink);">Projects</div>
|
||||
<h3>Team Projects</h3>
|
||||
<p>Manage projects with flexible views: boards, timelines, lists, and calendars. Everything your team needs, all in one workspace.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section class="section" id="forms">
|
||||
<div class="section-label">05 / Forms</div>
|
||||
<h2 class="section-title">Form Elements</h2>
|
||||
<div class="form-group"><label class="form-label">Workspace Name</label><input class="form-input" type="text" placeholder="My Team Workspace"><div class="form-state-label">Default</div></div>
|
||||
<div class="form-group"><label class="form-label">Email Address</label><input class="form-input form-input--focus" type="text" value="team@company.com"><div class="form-state-label">Focus (blue ring)</div></div>
|
||||
<div class="form-group"><label class="form-label">Domain</label><input class="form-input form-input--error" type="text" value="invalid domain"><div class="form-state-label">Error (orange ring)</div></div>
|
||||
<div class="form-group"><label class="form-label">Description</label><textarea class="form-textarea" placeholder="Describe your workspace..."></textarea></div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<div class="section--warm">
|
||||
<div class="section-inner" id="spacing">
|
||||
<div class="section-label">06 / Spacing</div>
|
||||
<h2 class="section-title">Spacing Scale</h2>
|
||||
<div class="spacing-row">
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:2px"></div><div class="spacing-value">2</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:4px"></div><div class="spacing-value">4</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:6px"></div><div class="spacing-value">6</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:8px"></div><div class="spacing-value">8</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:12px"></div><div class="spacing-value">12</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:14px"></div><div class="spacing-value">14</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:16px"></div><div class="spacing-value">16</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:24px"></div><div class="spacing-value">24</div></div>
|
||||
<div class="spacing-item"><div class="spacing-block" style="width:32px"></div><div class="spacing-value">32</div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<section class="section" id="radius">
|
||||
<div class="section-label">07 / Radius</div>
|
||||
<h2 class="section-title">Border Radius Scale</h2>
|
||||
<div class="radius-row">
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:4px"></div><div class="radius-label">4px</div><div class="radius-context">Buttons, inputs</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:5px"></div><div class="radius-label">5px</div><div class="radius-context">Links, menus</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:8px"></div><div class="radius-label">8px</div><div class="radius-context">Small cards</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:12px"></div><div class="radius-label">12px</div><div class="radius-context">Cards</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:16px"></div><div class="radius-label">16px</div><div class="radius-context">Hero cards</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:9999px"></div><div class="radius-label">9999px</div><div class="radius-context">Badges</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius:50%"></div><div class="radius-label">50%</div><div class="radius-context">Avatars</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<div class="section--warm">
|
||||
<div class="section-inner" id="elevation">
|
||||
<div class="section-label">08 / Elevation</div>
|
||||
<h2 class="section-title">Elevation & Depth</h2>
|
||||
<div class="elevation-grid">
|
||||
<div class="elevation-card" style="border: var(--border-whisper); box-shadow:none;"><div class="elevation-label">Level 0: Flat</div><div class="elevation-desc">No shadow</div></div>
|
||||
<div class="elevation-card" style="border: var(--border-whisper);"><div class="elevation-label">Level 1: Whisper</div><div class="elevation-desc">1px solid rgba(0,0,0,0.1)</div></div>
|
||||
<div class="elevation-card" style="border: var(--border-whisper); box-shadow: var(--shadow-card);"><div class="elevation-label">Level 2: Card</div><div class="elevation-desc">4-layer stack, max 0.04</div></div>
|
||||
<div class="elevation-card" style="border: var(--border-whisper); box-shadow: var(--shadow-deep);"><div class="elevation-label">Level 3: Deep</div><div class="elevation-desc">5-layer stack, 52px blur</div></div>
|
||||
<div class="elevation-card" style="box-shadow: 0 0 0 2px var(--focus-blue);"><div class="elevation-label">Focus</div><div class="elevation-desc">2px solid focus ring</div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
Generated from <a href="https://notion.com/">notion.com</a> DESIGN.md -- awesome-design-md
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user