first commit
This commit is contained in:
312
design-md/claude/DESIGN.md
Normal file
312
design-md/claude/DESIGN.md
Normal file
@@ -0,0 +1,312 @@
|
||||
# Design System: Claude (Anthropic)
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Claude's interface is a literary salon reimagined as a product page — warm, unhurried, and quietly intellectual. The entire experience is built on a parchment-toned canvas (`#f5f4ed`) that deliberately evokes the feeling of high-quality paper rather than a digital surface. Where most AI product pages lean into cold, futuristic aesthetics, Claude's design radiates human warmth, as if the AI itself has good taste in interior design.
|
||||
|
||||
The signature move is the custom Anthropic Serif typeface — a medium-weight serif with generous proportions that gives every headline the gravitas of a book title. Combined with organic, hand-drawn-feeling illustrations in terracotta (`#c96442`), black, and muted green, the visual language says "thoughtful companion" rather than "powerful tool." The serif headlines breathe at tight-but-comfortable line-heights (1.10–1.30), creating a cadence that feels more like reading an essay than scanning a product page.
|
||||
|
||||
What makes Claude's design truly distinctive is its warm neutral palette. Every gray has a yellow-brown undertone (`#5e5d59`, `#87867f`, `#4d4c48`) — there are no cool blue-grays anywhere. Borders are cream-tinted (`#f0eee6`, `#e8e6dc`), shadows use warm transparent blacks, and even the darkest surfaces (`#141413`, `#30302e`) carry a barely perceptible olive warmth. This chromatic consistency creates a space that feels lived-in and trustworthy.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Warm parchment canvas (`#f5f4ed`) evoking premium paper, not screens
|
||||
- Custom Anthropic type family: Serif for headlines, Sans for UI, Mono for code
|
||||
- Terracotta brand accent (`#c96442`) — warm, earthy, deliberately un-tech
|
||||
- Exclusively warm-toned neutrals — every gray has a yellow-brown undertone
|
||||
- Organic, editorial illustrations replacing typical tech iconography
|
||||
- Ring-based shadow system (`0px 0px 0px 1px`) creating border-like depth without visible borders
|
||||
- Magazine-like pacing with generous section spacing and serif-driven hierarchy
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Anthropic Near Black** (`#141413`): The primary text color and dark-theme surface — not pure black but a warm, almost olive-tinted dark that's gentler on the eyes. The warmest "black" in any major tech brand.
|
||||
- **Terracotta Brand** (`#c96442`): The core brand color — a burnt orange-brown used for primary CTA buttons, brand moments, and the signature accent. Deliberately earthy and un-tech.
|
||||
- **Coral Accent** (`#d97757`): A lighter, warmer variant of the brand color used for text accents, links on dark surfaces, and secondary emphasis.
|
||||
|
||||
### Secondary & Accent
|
||||
- **Error Crimson** (`#b53333`): A deep, warm red for error states — serious without being alarming.
|
||||
- **Focus Blue** (`#3898ec`): Standard blue for input focus rings — the only cool color in the entire system, used purely for accessibility.
|
||||
|
||||
### Surface & Background
|
||||
- **Parchment** (`#f5f4ed`): The primary page background — a warm cream with a yellow-green tint that feels like aged paper. The emotional foundation of the entire design.
|
||||
- **Ivory** (`#faf9f5`): The lightest surface — used for cards and elevated containers on the Parchment background. Barely distinguishable but creates subtle layering.
|
||||
- **Pure White** (`#ffffff`): Reserved for specific button surfaces and maximum-contrast elements.
|
||||
- **Warm Sand** (`#e8e6dc`): Button backgrounds and prominent interactive surfaces — a noticeably warm light gray.
|
||||
- **Dark Surface** (`#30302e`): Dark-theme containers, nav borders, and elevated dark elements — warm charcoal.
|
||||
- **Deep Dark** (`#141413`): Dark-theme page background and primary dark surface.
|
||||
|
||||
### Neutrals & Text
|
||||
- **Charcoal Warm** (`#4d4c48`): Button text on light warm surfaces — the go-to dark-on-light text.
|
||||
- **Olive Gray** (`#5e5d59`): Secondary body text — a distinctly warm medium-dark gray.
|
||||
- **Stone Gray** (`#87867f`): Tertiary text, footnotes, and de-emphasized metadata.
|
||||
- **Dark Warm** (`#3d3d3a`): Dark text links and emphasized secondary text.
|
||||
- **Warm Silver** (`#b0aea5`): Text on dark surfaces — a warm, parchment-tinted light gray.
|
||||
|
||||
### Semantic & Accent
|
||||
- **Border Cream** (`#f0eee6`): Standard light-theme border — barely visible warm cream, creating the gentlest possible containment.
|
||||
- **Border Warm** (`#e8e6dc`): Prominent borders, section dividers, and emphasized containment on light surfaces.
|
||||
- **Border Dark** (`#30302e`): Standard border on dark surfaces — maintains the warm tone.
|
||||
- **Ring Warm** (`#d1cfc5`): Shadow ring color for button hover/focus states.
|
||||
- **Ring Subtle** (`#dedc01`): Secondary ring variant for lighter interactive surfaces.
|
||||
- **Ring Deep** (`#c2c0b6`): Deeper ring for active/pressed states.
|
||||
|
||||
### Gradient System
|
||||
- Claude's design is **gradient-free** in the traditional sense. Depth and visual richness come from the interplay of warm surface tones, organic illustrations, and light/dark section alternation. The warm palette itself creates a "gradient" effect as the eye moves through cream → sand → stone → charcoal → black sections.
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
- **Headline**: `Anthropic Serif`, with fallback: `Georgia`
|
||||
- **Body / UI**: `Anthropic Sans`, with fallback: `Arial`
|
||||
- **Code**: `Anthropic Mono`, with fallback: `Arial`
|
||||
|
||||
*Note: These are custom typefaces. For external implementations, Georgia serves as the serif substitute and system-ui/Inter as the sans substitute.*
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|------|--------|-------------|----------------|-------|
|
||||
| Display / Hero | Anthropic Serif | 64px (4rem) | 500 | 1.10 (tight) | normal | Maximum impact, book-title presence |
|
||||
| Section Heading | Anthropic Serif | 52px (3.25rem) | 500 | 1.20 (tight) | normal | Feature section anchors |
|
||||
| Sub-heading Large | Anthropic Serif | 36–36.8px (~2.3rem) | 500 | 1.30 | normal | Secondary section markers |
|
||||
| Sub-heading | Anthropic Serif | 32px (2rem) | 500 | 1.10 (tight) | normal | Card titles, feature names |
|
||||
| Sub-heading Small | Anthropic Serif | 25–25.6px (~1.6rem) | 500 | 1.20 | normal | Smaller section titles |
|
||||
| Feature Title | Anthropic Serif | 20.8px (1.3rem) | 500 | 1.20 | normal | Small feature headings |
|
||||
| Body Serif | Anthropic Serif | 17px (1.06rem) | 400 | 1.60 (relaxed) | normal | Serif body text (editorial passages) |
|
||||
| Body Large | Anthropic Sans | 20px (1.25rem) | 400 | 1.60 (relaxed) | normal | Intro paragraphs |
|
||||
| Body / Nav | Anthropic Sans | 17px (1.06rem) | 400–500 | 1.00–1.60 | normal | Navigation links, UI text |
|
||||
| Body Standard | Anthropic Sans | 16px (1rem) | 400–500 | 1.25–1.60 | normal | Standard body, button text |
|
||||
| Body Small | Anthropic Sans | 15px (0.94rem) | 400–500 | 1.00–1.60 | normal | Compact body text |
|
||||
| Caption | Anthropic Sans | 14px (0.88rem) | 400 | 1.43 | normal | Metadata, descriptions |
|
||||
| Label | Anthropic Sans | 12px (0.75rem) | 400–500 | 1.25–1.60 | 0.12px | Badges, small labels |
|
||||
| Overline | Anthropic Sans | 10px (0.63rem) | 400 | 1.60 | 0.5px | Uppercase overline labels |
|
||||
| Micro | Anthropic Sans | 9.6px (0.6rem) | 400 | 1.60 | 0.096px | Smallest text |
|
||||
| Code | Anthropic Mono | 15px (0.94rem) | 400 | 1.60 | -0.32px | Inline code, terminal |
|
||||
|
||||
### Principles
|
||||
- **Serif for authority, sans for utility**: Anthropic Serif carries all headline content with medium weight (500), giving every heading the gravitas of a published title. Anthropic Sans handles all functional UI text — buttons, labels, navigation — with quiet efficiency.
|
||||
- **Single weight for serifs**: All Anthropic Serif headings use weight 500 — no bold, no light. This creates a consistent "voice" across all headline sizes, as if the same author wrote every heading.
|
||||
- **Relaxed body line-height**: Most body text uses 1.60 line-height — significantly more generous than typical tech sites (1.4–1.5). This creates a reading experience closer to a book than a dashboard.
|
||||
- **Tight-but-not-compressed headings**: Line-heights of 1.10–1.30 for headings are tight but never claustrophobic. The serif letterforms need breathing room that sans-serif fonts don't.
|
||||
- **Micro letter-spacing on labels**: Small sans text (12px and below) uses deliberate letter-spacing (0.12px–0.5px) to maintain readability at tiny sizes.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
|
||||
**Warm Sand (Secondary)**
|
||||
- Background: Warm Sand (`#e8e6dc`)
|
||||
- Text: Charcoal Warm (`#4d4c48`)
|
||||
- Padding: 0px 12px 0px 8px (asymmetric — icon-first layout)
|
||||
- Radius: comfortably rounded (8px)
|
||||
- Shadow: ring-based (`#e8e6dc 0px 0px 0px 0px, #d1cfc5 0px 0px 0px 1px`)
|
||||
- The workhorse button — warm, unassuming, clearly interactive
|
||||
|
||||
**White Surface**
|
||||
- Background: Pure White (`#ffffff`)
|
||||
- Text: Anthropic Near Black (`#141413`)
|
||||
- Padding: 8px 16px 8px 12px
|
||||
- Radius: generously rounded (12px)
|
||||
- Hover: shifts to secondary background color
|
||||
- Clean, elevated button for light surfaces
|
||||
|
||||
**Dark Charcoal**
|
||||
- Background: Dark Surface (`#30302e`)
|
||||
- Text: Ivory (`#faf9f5`)
|
||||
- Padding: 0px 12px 0px 8px
|
||||
- Radius: comfortably rounded (8px)
|
||||
- Shadow: ring-based (`#30302e 0px 0px 0px 0px, ring 0px 0px 0px 1px`)
|
||||
- The inverted variant for dark-on-light emphasis
|
||||
|
||||
**Brand Terracotta**
|
||||
- Background: Terracotta Brand (`#c96442`)
|
||||
- Text: Ivory (`#faf9f5`)
|
||||
- Radius: 8–12px
|
||||
- Shadow: ring-based (`#c96442 0px 0px 0px 0px, #c96442 0px 0px 0px 1px`)
|
||||
- The primary CTA — the only button with chromatic color
|
||||
|
||||
**Dark Primary**
|
||||
- Background: Anthropic Near Black (`#141413`)
|
||||
- Text: Warm Silver (`#b0aea5`)
|
||||
- Padding: 9.6px 16.8px
|
||||
- Radius: generously rounded (12px)
|
||||
- Border: thin solid Dark Surface (`1px solid #30302e`)
|
||||
- Used on dark theme surfaces
|
||||
|
||||
### Cards & Containers
|
||||
- Background: Ivory (`#faf9f5`) or Pure White (`#ffffff`) on light surfaces; Dark Surface (`#30302e`) on dark
|
||||
- Border: thin solid Border Cream (`1px solid #f0eee6`) on light; `1px solid #30302e` on dark
|
||||
- Radius: comfortably rounded (8px) for standard cards; generously rounded (16px) for featured; very rounded (32px) for hero containers and embedded media
|
||||
- Shadow: whisper-soft (`rgba(0,0,0,0.05) 0px 4px 24px`) for elevated content
|
||||
- Ring shadow: `0px 0px 0px 1px` patterns for interactive card states
|
||||
- Section borders: `1px 0px 0px` (top-only) for list item separators
|
||||
|
||||
### Inputs & Forms
|
||||
- Text: Anthropic Near Black (`#141413`)
|
||||
- Padding: 1.6px 12px (very compact vertical)
|
||||
- Border: standard warm borders
|
||||
- Focus: ring with Focus Blue (`#3898ec`) border-color — the only cool color moment
|
||||
- Radius: generously rounded (12px)
|
||||
|
||||
### Navigation
|
||||
- Sticky top nav with warm background
|
||||
- Logo: Claude wordmark in Anthropic Near Black
|
||||
- Links: mix of Near Black (`#141413`), Olive Gray (`#5e5d59`), and Dark Warm (`#3d3d3a`)
|
||||
- Nav border: `1px solid #30302e` (dark) or `1px solid #f0eee6` (light)
|
||||
- CTA: Terracotta Brand button or White Surface button
|
||||
- Hover: text shifts to foreground-primary, no decoration
|
||||
|
||||
### Image Treatment
|
||||
- Product screenshots showing the Claude chat interface
|
||||
- Generous border-radius on media (16–32px)
|
||||
- Embedded video players with rounded corners
|
||||
- Dark UI screenshots provide contrast against warm light canvas
|
||||
- Organic, hand-drawn illustrations for conceptual sections
|
||||
|
||||
### Distinctive Components
|
||||
|
||||
**Model Comparison Cards**
|
||||
- Opus 4.5, Sonnet 4.5, Haiku 4.5 presented in a clean card grid
|
||||
- Each model gets a bordered card with name, description, and capability badges
|
||||
- Border Warm (`#e8e6dc`) separation between items
|
||||
|
||||
**Organic Illustrations**
|
||||
- Hand-drawn-feeling vector illustrations in terracotta, black, and muted green
|
||||
- Abstract, conceptual rather than literal product diagrams
|
||||
- The primary visual personality — no other AI company uses this style
|
||||
|
||||
**Dark/Light Section Alternation**
|
||||
- The page alternates between Parchment light and Near Black dark sections
|
||||
- Creates a reading rhythm like chapters in a book
|
||||
- Each section feels like a distinct environment
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
- Base unit: 8px
|
||||
- Scale: 3px, 4px, 6px, 8px, 10px, 12px, 16px, 20px, 24px, 30px
|
||||
- Button padding: asymmetric (0px 12px 0px 8px) or balanced (8px 16px)
|
||||
- Card internal padding: approximately 24–32px
|
||||
- Section vertical spacing: generous (estimated 80–120px between major sections)
|
||||
|
||||
### Grid & Container
|
||||
- Max container width: approximately 1200px, centered
|
||||
- Hero: centered with editorial layout
|
||||
- Feature sections: single-column or 2–3 column card grids
|
||||
- Model comparison: clean 3-column grid
|
||||
- Full-width dark sections breaking the container for emphasis
|
||||
|
||||
### Whitespace Philosophy
|
||||
- **Editorial pacing**: Each section breathes like a magazine spread — generous top/bottom margins create natural reading pauses.
|
||||
- **Serif-driven rhythm**: The serif headings establish a literary cadence that demands more whitespace than sans-serif designs.
|
||||
- **Content island approach**: Sections alternate between light and dark environments, creating distinct "rooms" for each message.
|
||||
|
||||
### Border Radius Scale
|
||||
- Sharp (4px): Minimal inline elements
|
||||
- Subtly rounded (6–7.5px): Small buttons, secondary interactive elements
|
||||
- Comfortably rounded (8–8.5px): Standard buttons, cards, containers
|
||||
- Generously rounded (12px): Primary buttons, input fields, nav elements
|
||||
- Very rounded (16px): Featured containers, video players, tab lists
|
||||
- Highly rounded (24px): Tag-like elements, highlighted containers
|
||||
- Maximum rounded (32px): Hero containers, embedded media, large cards
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|-------|-----------|-----|
|
||||
| Flat (Level 0) | No shadow, no border | Parchment background, inline text |
|
||||
| Contained (Level 1) | `1px solid #f0eee6` (light) or `1px solid #30302e` (dark) | Standard cards, sections |
|
||||
| Ring (Level 2) | `0px 0px 0px 1px` ring shadows using warm grays | Interactive cards, buttons, hover states |
|
||||
| Whisper (Level 3) | `rgba(0,0,0,0.05) 0px 4px 24px` | Elevated feature cards, product screenshots |
|
||||
| Inset (Level 4) | `inset 0px 0px 0px 1px` at 15% opacity | Active/pressed button states |
|
||||
|
||||
**Shadow Philosophy**: Claude communicates depth through **warm-toned ring shadows** rather than traditional drop shadows. The signature `0px 0px 0px 1px` pattern creates a border-like halo that's softer than an actual border — it's a shadow pretending to be a border, or a border that's technically a shadow. When drop shadows do appear, they're extremely soft (0.05 opacity, 24px blur) — barely visible lifts that suggest floating rather than casting.
|
||||
|
||||
### Decorative Depth
|
||||
- **Light/Dark alternation**: The most dramatic depth effect comes from alternating between Parchment (`#f5f4ed`) and Near Black (`#141413`) sections — entire sections shift elevation by changing the ambient light level.
|
||||
- **Warm ring halos**: Button and card interactions use ring shadows that match the warm palette — never cool-toned or generic gray.
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
|
||||
### Do
|
||||
- Use Parchment (`#f5f4ed`) as the primary light background — the warm cream tone IS the Claude personality
|
||||
- Use Anthropic Serif at weight 500 for all headlines — the single-weight consistency is intentional
|
||||
- Use Terracotta Brand (`#c96442`) only for primary CTAs and the highest-signal brand moments
|
||||
- Keep all neutrals warm-toned — every gray should have a yellow-brown undertone
|
||||
- Use ring shadows (`0px 0px 0px 1px`) for interactive element states instead of drop shadows
|
||||
- Maintain the editorial serif/sans hierarchy — serif for content headlines, sans for UI
|
||||
- Use generous body line-height (1.60) for a literary reading experience
|
||||
- Alternate between light and dark sections to create chapter-like page rhythm
|
||||
- Apply generous border-radius (12–32px) for a soft, approachable feel
|
||||
|
||||
### Don't
|
||||
- Don't use cool blue-grays anywhere — the palette is exclusively warm-toned
|
||||
- Don't use bold (700+) weight on Anthropic Serif — weight 500 is the ceiling for serifs
|
||||
- Don't introduce saturated colors beyond Terracotta — the palette is deliberately muted
|
||||
- Don't use sharp corners (< 6px radius) on buttons or cards — softness is core to the identity
|
||||
- Don't apply heavy drop shadows — depth comes from ring shadows and background color shifts
|
||||
- Don't use pure white (`#ffffff`) as a page background — Parchment (`#f5f4ed`) or Ivory (`#faf9f5`) are always warmer
|
||||
- Don't use geometric/tech-style illustrations — Claude's illustrations are organic and hand-drawn-feeling
|
||||
- Don't reduce body line-height below 1.40 — the generous spacing supports the editorial personality
|
||||
- Don't use monospace fonts for non-code content — Anthropic Mono is strictly for code
|
||||
- Don't mix in sans-serif for headlines — the serif/sans split is the typographic identity
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
| Name | Width | Key Changes |
|
||||
|------|-------|-------------|
|
||||
| Small Mobile | <479px | Minimum layout, stacked everything, compact typography |
|
||||
| Mobile | 479–640px | Single column, hamburger nav, reduced heading sizes |
|
||||
| Large Mobile | 640–767px | Slightly wider content area |
|
||||
| Tablet | 768–991px | 2-column grids begin, condensed nav |
|
||||
| Desktop | 992px+ | Full multi-column layout, expanded nav, maximum hero typography (64px) |
|
||||
|
||||
### Touch Targets
|
||||
- Buttons use generous padding (8–16px vertical minimum)
|
||||
- Navigation links adequately spaced for thumb navigation
|
||||
- Card surfaces serve as large touch targets
|
||||
- Minimum recommended: 44x44px
|
||||
|
||||
### Collapsing Strategy
|
||||
- **Navigation**: Full horizontal nav collapses to hamburger on mobile
|
||||
- **Feature sections**: Multi-column → stacked single column
|
||||
- **Hero text**: 64px → 36px → ~25px progressive scaling
|
||||
- **Model cards**: 3-column → stacked vertical
|
||||
- **Section padding**: Reduces proportionally but maintains editorial rhythm
|
||||
- **Illustrations**: Scale proportionally, maintain aspect ratios
|
||||
|
||||
### Image Behavior
|
||||
- Product screenshots scale proportionally within rounded containers
|
||||
- Illustrations maintain quality at all sizes
|
||||
- Video embeds maintain 16:9 aspect ratio with rounded corners
|
||||
- No art direction changes between breakpoints
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- Brand CTA: "Terracotta Brand (#c96442)"
|
||||
- Page Background: "Parchment (#f5f4ed)"
|
||||
- Card Surface: "Ivory (#faf9f5)"
|
||||
- Primary Text: "Anthropic Near Black (#141413)"
|
||||
- Secondary Text: "Olive Gray (#5e5d59)"
|
||||
- Tertiary Text: "Stone Gray (#87867f)"
|
||||
- Borders (light): "Border Cream (#f0eee6)"
|
||||
- Dark Surface: "Dark Surface (#30302e)"
|
||||
|
||||
### Example Component Prompts
|
||||
- "Create a hero section on Parchment (#f5f4ed) with a headline at 64px Anthropic Serif weight 500, line-height 1.10. Use Anthropic Near Black (#141413) text. Add a subtitle in Olive Gray (#5e5d59) at 20px Anthropic Sans with 1.60 line-height. Place a Terracotta Brand (#c96442) CTA button with Ivory text, 12px radius."
|
||||
- "Design a feature card on Ivory (#faf9f5) with a 1px solid Border Cream (#f0eee6) border and comfortably rounded corners (8px). Title in Anthropic Serif at 25px weight 500, description in Olive Gray (#5e5d59) at 16px Anthropic Sans. Add a whisper shadow (rgba(0,0,0,0.05) 0px 4px 24px)."
|
||||
- "Build a dark section on Anthropic Near Black (#141413) with Ivory (#faf9f5) headline text in Anthropic Serif at 52px weight 500. Use Warm Silver (#b0aea5) for body text. Borders in Dark Surface (#30302e)."
|
||||
- "Create a button in Warm Sand (#e8e6dc) with Charcoal Warm (#4d4c48) text, 8px radius, and a ring shadow (0px 0px 0px 1px #d1cfc5). Padding: 0px 12px 0px 8px."
|
||||
- "Design a model comparison grid with three cards on Ivory surfaces. Each card gets a Border Warm (#e8e6dc) top border, model name in Anthropic Serif at 25px, and description in Olive Gray at 15px Anthropic Sans."
|
||||
|
||||
### Iteration Guide
|
||||
1. Focus on ONE component at a time
|
||||
2. Reference specific color names — "use Olive Gray (#5e5d59)" not "make it gray"
|
||||
3. Always specify warm-toned variants — no cool grays
|
||||
4. Describe serif vs sans usage explicitly — "Anthropic Serif for the heading, Anthropic Sans for the label"
|
||||
5. For shadows, use "ring shadow (0px 0px 0px 1px)" or "whisper shadow" — never generic "drop shadow"
|
||||
6. Specify the warm background — "on Parchment (#f5f4ed)" or "on Near Black (#141413)"
|
||||
7. Keep illustrations organic and conceptual — describe "hand-drawn-feeling" style
|
||||
25
design-md/claude/README.md
Normal file
25
design-md/claude/README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Claude — Design System
|
||||
|
||||
> Design.md extracted from the public [claude](https://claude.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 Claude 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
|
||||

|
||||
803
design-md/claude/preview-dark.html
Normal file
803
design-md/claude/preview-dark.html
Normal file
@@ -0,0 +1,803 @@
|
||||
<!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: Claude / Anthropic (Dark)</title>
|
||||
<style>
|
||||
:root {
|
||||
/* Primary */
|
||||
--color-near-black: #141413;
|
||||
--color-terracotta: #c96442;
|
||||
--color-coral: #d97757;
|
||||
/* Secondary & Accent */
|
||||
--color-error: #b53333;
|
||||
--color-focus-blue: #3898ec;
|
||||
/* Surface & Background */
|
||||
--color-parchment: #f5f4ed;
|
||||
--color-ivory: #faf9f5;
|
||||
--color-white: #ffffff;
|
||||
--color-warm-sand: #e8e6dc;
|
||||
--color-dark-surface: #30302e;
|
||||
--color-deep-dark: #141413;
|
||||
/* Neutrals & Text */
|
||||
--color-charcoal-warm: #4d4c48;
|
||||
--color-olive-gray: #5e5d59;
|
||||
--color-stone-gray: #87867f;
|
||||
--color-dark-warm: #3d3d3a;
|
||||
--color-warm-silver: #b0aea5;
|
||||
/* Borders & Rings */
|
||||
--color-border-cream: #f0eee6;
|
||||
--color-border-warm: #e8e6dc;
|
||||
--color-border-dark: #30302e;
|
||||
--color-ring-warm: #d1cfc5;
|
||||
--color-ring-deep: #c2c0b6;
|
||||
/* Fonts */
|
||||
--font-serif: Georgia, 'Times New Roman', Times, serif;
|
||||
--font-sans: Arial, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
|
||||
--font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
/* Dark mode tokens */
|
||||
--bg-page: #141413;
|
||||
--bg-card: #30302e;
|
||||
--bg-nav: rgba(20,20,19,0.92);
|
||||
--text-primary: #faf9f5;
|
||||
--text-secondary: #87867f;
|
||||
--text-tertiary: #b0aea5;
|
||||
--border-color: #30302e;
|
||||
--border-subtle: #30302e;
|
||||
--section-label-color: #d97757;
|
||||
}
|
||||
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
|
||||
body {
|
||||
background: var(--bg-page);
|
||||
color: var(--text-primary);
|
||||
font-family: var(--font-sans);
|
||||
font-size: 16px;
|
||||
line-height: 1.60;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
/* NAV */
|
||||
.nav {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 16px 40px;
|
||||
background: var(--bg-nav);
|
||||
backdrop-filter: blur(12px);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
.nav-brand {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
color: var(--text-primary);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
.nav-brand .logo-mark {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
background: var(--color-terracotta);
|
||||
border-radius: 8px;
|
||||
color: var(--color-ivory);
|
||||
font-family: var(--font-serif);
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.nav-links { display: flex; gap: 32px; align-items: center; }
|
||||
.nav-links a {
|
||||
color: var(--text-secondary);
|
||||
text-decoration: none;
|
||||
font-size: 15px;
|
||||
font-weight: 400;
|
||||
font-family: var(--font-sans);
|
||||
transition: color 0.2s;
|
||||
}
|
||||
.nav-links a:hover { color: var(--text-primary); }
|
||||
.nav-cta {
|
||||
background: var(--color-terracotta);
|
||||
color: var(--color-ivory);
|
||||
padding: 8px 20px;
|
||||
border: none;
|
||||
border-radius: 12px;
|
||||
font-size: 15px;
|
||||
font-family: var(--font-sans);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
box-shadow: #c96442 0px 0px 0px 0px, #c96442 0px 0px 0px 1px;
|
||||
}
|
||||
|
||||
/* HERO */
|
||||
.hero {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
padding: 120px 40px 100px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.hero::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 700px;
|
||||
height: 700px;
|
||||
transform: translate(-50%, -50%);
|
||||
background: radial-gradient(circle, rgba(201,100,66,0.08) 0%, rgba(217,119,87,0.04) 40%, transparent 70%);
|
||||
pointer-events: none;
|
||||
}
|
||||
.hero h1 {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 64px;
|
||||
font-weight: 500;
|
||||
line-height: 1.10;
|
||||
letter-spacing: normal;
|
||||
margin-bottom: 24px;
|
||||
position: relative;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.hero h1 span { color: var(--color-coral); }
|
||||
.hero p {
|
||||
color: var(--text-secondary);
|
||||
font-family: var(--font-sans);
|
||||
font-size: 20px;
|
||||
line-height: 1.60;
|
||||
margin-bottom: 40px;
|
||||
position: relative;
|
||||
}
|
||||
.hero-buttons { display: flex; gap: 16px; justify-content: center; position: relative; }
|
||||
.btn-brand {
|
||||
background: var(--color-terracotta);
|
||||
color: var(--color-ivory);
|
||||
padding: 12px 24px;
|
||||
border: none;
|
||||
border-radius: 12px;
|
||||
font-size: 16px;
|
||||
font-family: var(--font-sans);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
box-shadow: #c96442 0px 0px 0px 0px, #c96442 0px 0px 0px 1px;
|
||||
}
|
||||
.btn-dark-primary {
|
||||
background: var(--color-deep-dark);
|
||||
color: var(--color-warm-silver);
|
||||
padding: 12px 24px;
|
||||
border: 1px solid var(--color-dark-surface);
|
||||
border-radius: 12px;
|
||||
font-size: 16px;
|
||||
font-family: var(--font-sans);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* SECTIONS */
|
||||
.section {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 80px 40px;
|
||||
}
|
||||
.section-title {
|
||||
font-family: var(--font-sans);
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 2.5px;
|
||||
color: var(--section-label-color);
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.section-heading {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 36px;
|
||||
font-weight: 500;
|
||||
line-height: 1.20;
|
||||
letter-spacing: normal;
|
||||
margin-bottom: 48px;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.section-divider {
|
||||
border: none;
|
||||
border-top: 1px solid var(--border-subtle);
|
||||
margin: 0 40px;
|
||||
max-width: 1200px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/* COLOR PALETTE */
|
||||
.color-group { margin-bottom: 40px; }
|
||||
.color-group-title {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
line-height: 1.2;
|
||||
margin-bottom: 20px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
.color-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
|
||||
gap: 16px;
|
||||
}
|
||||
.color-swatch {
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.color-swatch-block {
|
||||
height: 80px;
|
||||
position: relative;
|
||||
}
|
||||
.color-swatch-info {
|
||||
padding: 12px;
|
||||
background: var(--bg-card);
|
||||
}
|
||||
.color-swatch-name { font-family: var(--font-sans); font-size: 13px; font-weight: 600; margin-bottom: 2px; color: var(--text-primary); }
|
||||
.color-swatch-hex { font-family: var(--font-mono); font-size: 12px; color: var(--text-tertiary); margin-bottom: 4px; }
|
||||
.color-swatch-role { font-size: 12px; color: var(--text-secondary); line-height: 1.4; }
|
||||
|
||||
/* TYPOGRAPHY */
|
||||
.type-sample { margin-bottom: 32px; padding-bottom: 32px; border-bottom: 1px solid var(--border-subtle); }
|
||||
.type-sample:last-child { border-bottom: none; }
|
||||
.type-sample-text { margin-bottom: 8px; }
|
||||
.type-sample-label {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 12px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
/* BUTTONS */
|
||||
.button-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 24px;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.button-demo { text-align: center; }
|
||||
.button-demo-label {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 11px;
|
||||
color: var(--text-secondary);
|
||||
margin-top: 10px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.55px;
|
||||
}
|
||||
|
||||
/* CARDS */
|
||||
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }
|
||||
.card {
|
||||
background: var(--bg-card);
|
||||
border-radius: 12px;
|
||||
padding: 28px;
|
||||
}
|
||||
.card-standard { border: 1px solid var(--border-color); }
|
||||
.card-whisper {
|
||||
border: 1px solid var(--border-color);
|
||||
box-shadow: rgba(0,0,0,0.20) 0px 4px 24px;
|
||||
}
|
||||
.card-ring {
|
||||
border: none;
|
||||
box-shadow: 0px 0px 0px 1px #4d4c48;
|
||||
}
|
||||
.card h3 {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 25px;
|
||||
font-weight: 500;
|
||||
line-height: 1.20;
|
||||
margin-bottom: 12px;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.card p { color: var(--text-secondary); font-size: 15px; line-height: 1.60; }
|
||||
.card-label {
|
||||
font-family: var(--font-sans);
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.55px;
|
||||
color: var(--color-coral);
|
||||
margin-bottom: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* SPACING */
|
||||
.spacing-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
|
||||
.spacing-item { text-align: center; }
|
||||
.spacing-box {
|
||||
background: rgba(217,119,87,0.12);
|
||||
border: 1px solid rgba(217,119,87,0.30);
|
||||
border-radius: 4px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.spacing-label {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 11px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
/* RADIUS */
|
||||
.radius-row { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
|
||||
.radius-item { text-align: center; }
|
||||
.radius-box {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
background: var(--bg-card);
|
||||
border: 1px solid var(--color-charcoal-warm);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.radius-label {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 11px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
.radius-context {
|
||||
font-size: 11px;
|
||||
color: var(--text-secondary);
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
/* ELEVATION */
|
||||
.elevation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
|
||||
.elevation-card {
|
||||
background: var(--bg-card);
|
||||
border-radius: 12px;
|
||||
padding: 24px;
|
||||
min-height: 140px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.elevation-flat { border: none; background: var(--bg-page); }
|
||||
.elevation-contained { border: 1px solid var(--color-dark-surface); }
|
||||
.elevation-ring { border: none; box-shadow: 0px 0px 0px 1px #4d4c48; }
|
||||
.elevation-whisper { border: 1px solid var(--color-dark-surface); box-shadow: rgba(0,0,0,0.20) 0px 4px 24px; }
|
||||
.elevation-inset { border: none; box-shadow: inset 0px 0px 0px 1px rgba(255,255,255,0.10); }
|
||||
.elevation-name {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 8px;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.elevation-desc { font-size: 13px; color: var(--text-secondary); line-height: 1.5; }
|
||||
.elevation-level {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 11px;
|
||||
color: var(--color-coral);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.55px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
/* RESPONSIVE */
|
||||
@media (max-width: 768px) {
|
||||
.nav { padding: 12px 20px; }
|
||||
.nav-links a:not(.nav-cta-wrapper) { display: none; }
|
||||
.hero { padding: 80px 20px 60px; }
|
||||
.hero h1 { font-size: 36px; }
|
||||
.section { padding: 60px 20px; }
|
||||
.section-heading { font-size: 28px; }
|
||||
.color-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
|
||||
.card-grid { grid-template-columns: 1fr; }
|
||||
.hero-buttons { flex-direction: column; align-items: center; }
|
||||
.button-row { flex-direction: column; align-items: flex-start; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- NAV -->
|
||||
<nav class="nav">
|
||||
<div class="nav-brand"><span class="logo-mark">C</span> Claude</div>
|
||||
<div class="nav-links">
|
||||
<a href="#colors">Colors</a>
|
||||
<a href="#typography">Typography</a>
|
||||
<a href="#buttons">Buttons</a>
|
||||
<a href="#cards">Cards</a>
|
||||
<a href="#spacing">Spacing</a>
|
||||
<a href="#elevation">Elevation</a>
|
||||
<button class="nav-cta">Try Claude</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- HERO -->
|
||||
<section class="hero">
|
||||
<h1>Design System Preview:<br><span>Claude</span></h1>
|
||||
<p>Auto-generated design token catalog from DESIGN.md</p>
|
||||
<div class="hero-buttons">
|
||||
<button class="btn-brand">Explore Tokens</button>
|
||||
<button class="btn-dark-primary">View Source</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- COLORS -->
|
||||
<section class="section" id="colors">
|
||||
<div class="section-title">01 / Color Palette</div>
|
||||
<h2 class="section-heading">Color Palette & Roles</h2>
|
||||
|
||||
<div class="color-group">
|
||||
<h3 class="color-group-title">Primary</h3>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #141413; border-bottom: 1px solid #30302e;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Anthropic Near Black</div>
|
||||
<div class="color-swatch-hex">#141413</div>
|
||||
<div class="color-swatch-role">Primary text, dark-theme surface</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #c96442;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Terracotta Brand</div>
|
||||
<div class="color-swatch-hex">#c96442</div>
|
||||
<div class="color-swatch-role">Core brand color, primary CTA buttons</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #d97757;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Coral Accent</div>
|
||||
<div class="color-swatch-hex">#d97757</div>
|
||||
<div class="color-swatch-role">Text accents, links on dark surfaces</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="color-group">
|
||||
<h3 class="color-group-title">Secondary & Accent</h3>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #b53333;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Error Crimson</div>
|
||||
<div class="color-swatch-hex">#b53333</div>
|
||||
<div class="color-swatch-role">Error states, warm red</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #3898ec;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Focus Blue</div>
|
||||
<div class="color-swatch-hex">#3898ec</div>
|
||||
<div class="color-swatch-role">Input focus rings (only cool color)</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="color-group">
|
||||
<h3 class="color-group-title">Surface & Background</h3>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #f5f4ed; border-bottom: 1px solid #e8e6dc;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Parchment</div>
|
||||
<div class="color-swatch-hex">#f5f4ed</div>
|
||||
<div class="color-swatch-role">Primary page background (light mode)</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #faf9f5; border-bottom: 1px solid #f0eee6;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Ivory</div>
|
||||
<div class="color-swatch-hex">#faf9f5</div>
|
||||
<div class="color-swatch-role">Card surfaces, elevated containers</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #ffffff; border-bottom: 1px solid #f0eee6;"></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">Button surfaces, max contrast</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #e8e6dc;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Warm Sand</div>
|
||||
<div class="color-swatch-hex">#e8e6dc</div>
|
||||
<div class="color-swatch-role">Button backgrounds, interactive surfaces</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #30302e;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Dark Surface</div>
|
||||
<div class="color-swatch-hex">#30302e</div>
|
||||
<div class="color-swatch-role">Dark-theme containers, card backgrounds</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="color-group">
|
||||
<h3 class="color-group-title">Neutrals & Text</h3>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #4d4c48;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Charcoal Warm</div>
|
||||
<div class="color-swatch-hex">#4d4c48</div>
|
||||
<div class="color-swatch-role">Button text on light surfaces</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #5e5d59;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Olive Gray</div>
|
||||
<div class="color-swatch-hex">#5e5d59</div>
|
||||
<div class="color-swatch-role">Secondary body text (light mode)</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #87867f;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Stone Gray</div>
|
||||
<div class="color-swatch-hex">#87867f</div>
|
||||
<div class="color-swatch-role">Secondary text (dark), tertiary (light)</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #3d3d3a;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Dark Warm</div>
|
||||
<div class="color-swatch-hex">#3d3d3a</div>
|
||||
<div class="color-swatch-role">Dark text links, emphasized secondary</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #b0aea5;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Warm Silver</div>
|
||||
<div class="color-swatch-hex">#b0aea5</div>
|
||||
<div class="color-swatch-role">Tertiary text on dark surfaces</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="color-group">
|
||||
<h3 class="color-group-title">Semantic & Borders</h3>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #f0eee6; border-bottom: 1px solid #e8e6dc;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Border Cream</div>
|
||||
<div class="color-swatch-hex">#f0eee6</div>
|
||||
<div class="color-swatch-role">Standard light-theme border</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #e8e6dc;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Border Warm</div>
|
||||
<div class="color-swatch-hex">#e8e6dc</div>
|
||||
<div class="color-swatch-role">Prominent borders, section dividers</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #d1cfc5;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Ring Warm</div>
|
||||
<div class="color-swatch-hex">#d1cfc5</div>
|
||||
<div class="color-swatch-role">Button hover/focus ring shadow</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #c2c0b6;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Ring Deep</div>
|
||||
<div class="color-swatch-hex">#c2c0b6</div>
|
||||
<div class="color-swatch-role">Active/pressed ring states</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- TYPOGRAPHY -->
|
||||
<section class="section" id="typography">
|
||||
<div class="section-title">02 / Typography Scale</div>
|
||||
<h2 class="section-heading">Typography Rules</h2>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 64px; font-weight: 500; line-height: 1.10;">Display Hero</div>
|
||||
<div class="type-sample-label">Display / Hero — 64px / 500 / 1.10 / normal — Anthropic Serif (Georgia fallback)</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 52px; font-weight: 500; line-height: 1.20;">Section Heading</div>
|
||||
<div class="type-sample-label">Section Heading — 52px / 500 / 1.20 / normal — Anthropic Serif</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 36px; font-weight: 500; line-height: 1.30;">Sub-heading Large</div>
|
||||
<div class="type-sample-label">Sub-heading Large — 36px / 500 / 1.30 / normal — Anthropic Serif</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 32px; font-weight: 500; line-height: 1.10;">Sub-heading</div>
|
||||
<div class="type-sample-label">Sub-heading — 32px / 500 / 1.10 / normal — Anthropic Serif</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 25px; font-weight: 500; line-height: 1.20;">Sub-heading Small</div>
|
||||
<div class="type-sample-label">Sub-heading Small — 25px / 500 / 1.20 / normal — Anthropic Serif</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 17px; font-weight: 400; line-height: 1.60; color: var(--text-secondary);">Body serif text for editorial passages. The generous 1.60 line-height creates a literary reading experience closer to a book than a dashboard, with warm tones throughout.</div>
|
||||
<div class="type-sample-label">Body Serif — 17px / 400 / 1.60 / normal — Anthropic Serif</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Arial, system-ui, sans-serif; font-size: 20px; font-weight: 400; line-height: 1.60;">Body Large Sans</div>
|
||||
<div class="type-sample-label">Body Large — 20px / 400 / 1.60 / normal — Anthropic Sans (Arial fallback)</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Arial, system-ui, sans-serif; font-size: 16px; font-weight: 400; line-height: 1.60;">Standard body text for UI copy, navigation, and button labels. Anthropic Sans handles all functional text with quiet efficiency.</div>
|
||||
<div class="type-sample-label">Body Standard — 16px / 400 / 1.60 / normal — Anthropic Sans</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Arial, system-ui, sans-serif; font-size: 14px; font-weight: 400; line-height: 1.43; color: var(--text-secondary);">Caption and metadata text for descriptions</div>
|
||||
<div class="type-sample-label">Caption — 14px / 400 / 1.43 / normal — Anthropic Sans</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Arial, system-ui, sans-serif; font-size: 12px; font-weight: 500; line-height: 1.60; letter-spacing: 0.12px; color: var(--text-tertiary);">LABEL TEXT</div>
|
||||
<div class="type-sample-label">Label — 12px / 500 / 1.60 / 0.12px — Anthropic Sans</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 15px; font-weight: 400; line-height: 1.60; letter-spacing: -0.32px;">const response = await claude.messages.create()</div>
|
||||
<div class="type-sample-label">Code — 15px / 400 / 1.60 / -0.32px — Anthropic Mono (SFMono fallback)</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- BUTTONS -->
|
||||
<section class="section" id="buttons">
|
||||
<div class="section-title">03 / Button Variants</div>
|
||||
<h2 class="section-heading">Buttons</h2>
|
||||
|
||||
<div class="button-row">
|
||||
<div class="button-demo">
|
||||
<button style="background: #e8e6dc; color: #4d4c48; padding: 10px 12px 10px 8px; border: none; border-radius: 8px; font-size: 16px; font-family: Arial, system-ui, sans-serif; font-weight: 500; cursor: pointer; box-shadow: #e8e6dc 0px 0px 0px 0px, #d1cfc5 0px 0px 0px 1px;">Warm Sand</button>
|
||||
<div class="button-demo-label">Warm Sand (Secondary)</div>
|
||||
</div>
|
||||
<div class="button-demo">
|
||||
<button style="background: #ffffff; color: #141413; padding: 8px 16px 8px 12px; border: 1px solid #f0eee6; border-radius: 12px; font-size: 16px; font-family: Arial, system-ui, sans-serif; font-weight: 500; cursor: pointer;">White Surface</button>
|
||||
<div class="button-demo-label">White Surface</div>
|
||||
</div>
|
||||
<div class="button-demo">
|
||||
<button style="background: #30302e; color: #faf9f5; padding: 10px 12px 10px 8px; border: none; border-radius: 8px; font-size: 16px; font-family: Arial, system-ui, sans-serif; font-weight: 500; cursor: pointer; box-shadow: #30302e 0px 0px 0px 0px, #30302e 0px 0px 0px 1px;">Dark Charcoal</button>
|
||||
<div class="button-demo-label">Dark Charcoal</div>
|
||||
</div>
|
||||
<div class="button-demo">
|
||||
<button style="background: #c96442; color: #faf9f5; padding: 10px 20px; border: none; border-radius: 12px; font-size: 16px; font-family: Arial, system-ui, sans-serif; font-weight: 500; cursor: pointer; box-shadow: #c96442 0px 0px 0px 0px, #c96442 0px 0px 0px 1px;">Brand CTA</button>
|
||||
<div class="button-demo-label">Terracotta Brand</div>
|
||||
</div>
|
||||
<div class="button-demo">
|
||||
<button style="background: #141413; color: #b0aea5; padding: 9.6px 16.8px; border: 1px solid #30302e; border-radius: 12px; font-size: 16px; font-family: Arial, system-ui, sans-serif; font-weight: 500; cursor: pointer;">Dark Primary</button>
|
||||
<div class="button-demo-label">Dark Primary</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- CARDS -->
|
||||
<section class="section" id="cards">
|
||||
<div class="section-title">04 / Card Examples</div>
|
||||
<h2 class="section-heading">Cards & Containers</h2>
|
||||
|
||||
<div class="card-grid">
|
||||
<div class="card card-standard">
|
||||
<div class="card-label">Standard Card</div>
|
||||
<h3>Dark Surface Contained</h3>
|
||||
<p>Standard content card with 1px solid Dark Surface border and 12px radius. The default container on the dark Near Black canvas.</p>
|
||||
</div>
|
||||
<div class="card card-whisper">
|
||||
<div class="card-label">Whisper Shadow</div>
|
||||
<h3>Soft Elevated Card</h3>
|
||||
<p>Elevated card with deeper shadow on dark surfaces. The 0.20 opacity and 24px blur create subtle depth against the dark canvas.</p>
|
||||
</div>
|
||||
<div class="card card-ring">
|
||||
<div class="card-label">Ring Shadow</div>
|
||||
<h3>Warm Ring Halo</h3>
|
||||
<p>Interactive card using the signature ring shadow. On dark surfaces the ring uses Charcoal Warm for a subtle warm boundary.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- SPACING -->
|
||||
<section class="section" id="spacing">
|
||||
<div class="section-title">05 / Spacing Scale</div>
|
||||
<h2 class="section-heading">Spacing System</h2>
|
||||
<p style="color: var(--text-secondary); margin-bottom: 32px; font-family: var(--font-sans);">Base unit: 8px. Scale: 3px, 4px, 6px, 8px, 10px, 12px, 16px, 20px, 24px, 30px.</p>
|
||||
|
||||
<div class="spacing-row">
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 12px; height: 12px;"></div><div class="spacing-label">3px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 16px; height: 16px;"></div><div class="spacing-label">4px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 24px; height: 24px;"></div><div class="spacing-label">6px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 32px; height: 32px;"></div><div class="spacing-label">8px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 40px; height: 40px;"></div><div class="spacing-label">10px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 48px; height: 48px;"></div><div class="spacing-label">12px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 64px; height: 64px;"></div><div class="spacing-label">16px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 80px; height: 80px;"></div><div class="spacing-label">20px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 96px; height: 96px;"></div><div class="spacing-label">24px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 120px; height: 120px;"></div><div class="spacing-label">30px</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- BORDER RADIUS -->
|
||||
<section class="section">
|
||||
<div class="section-title">06 / Border Radius Scale</div>
|
||||
<h2 class="section-heading">Border Radius</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">Sharp</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius: 6px;"></div><div class="radius-label">6px</div><div class="radius-context">Subtly rounded</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">Comfortably rounded</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">Generously rounded</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">Very rounded</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius: 24px;"></div><div class="radius-label">24px</div><div class="radius-context">Highly rounded</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius: 32px;"></div><div class="radius-label">32px</div><div class="radius-context">Maximum rounded</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- ELEVATION -->
|
||||
<section class="section" id="elevation">
|
||||
<div class="section-title">07 / Elevation & Depth</div>
|
||||
<h2 class="section-heading">Depth & Elevation</h2>
|
||||
|
||||
<div class="elevation-grid">
|
||||
<div class="elevation-card elevation-flat">
|
||||
<div><div class="elevation-name">Flat</div><div class="elevation-desc">No shadow, no border. Near Black background and inline text.</div></div>
|
||||
<div class="elevation-level">Level 0</div>
|
||||
</div>
|
||||
<div class="elevation-card elevation-contained">
|
||||
<div><div class="elevation-name">Contained</div><div class="elevation-desc">1px solid Dark Surface. Standard cards and sections.</div></div>
|
||||
<div class="elevation-level">Level 1</div>
|
||||
</div>
|
||||
<div class="elevation-card elevation-ring">
|
||||
<div><div class="elevation-name">Ring</div><div class="elevation-desc">0px 0px 0px 1px ring shadow using Charcoal Warm. Interactive cards, buttons, hover states.</div></div>
|
||||
<div class="elevation-level">Level 2</div>
|
||||
</div>
|
||||
<div class="elevation-card elevation-whisper">
|
||||
<div><div class="elevation-name">Whisper</div><div class="elevation-desc">rgba(0,0,0,0.20) 0px 4px 24px. Deeper shadow on dark canvas for elevated cards.</div></div>
|
||||
<div class="elevation-level">Level 3</div>
|
||||
</div>
|
||||
<div class="elevation-card elevation-inset">
|
||||
<div><div class="elevation-name">Inset</div><div class="elevation-desc">inset 0px 0px 0px 1px at 10% white opacity. Active/pressed button states on dark.</div></div>
|
||||
<div class="elevation-level">Level 4</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div style="height: 80px;"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
826
design-md/claude/preview.html
Normal file
826
design-md/claude/preview.html
Normal file
@@ -0,0 +1,826 @@
|
||||
<!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: Claude / Anthropic (Light)</title>
|
||||
<style>
|
||||
:root {
|
||||
/* Primary */
|
||||
--color-near-black: #141413;
|
||||
--color-terracotta: #c96442;
|
||||
--color-coral: #d97757;
|
||||
/* Secondary & Accent */
|
||||
--color-error: #b53333;
|
||||
--color-focus-blue: #3898ec;
|
||||
/* Surface & Background */
|
||||
--color-parchment: #f5f4ed;
|
||||
--color-ivory: #faf9f5;
|
||||
--color-white: #ffffff;
|
||||
--color-warm-sand: #e8e6dc;
|
||||
--color-dark-surface: #30302e;
|
||||
--color-deep-dark: #141413;
|
||||
/* Neutrals & Text */
|
||||
--color-charcoal-warm: #4d4c48;
|
||||
--color-olive-gray: #5e5d59;
|
||||
--color-stone-gray: #87867f;
|
||||
--color-dark-warm: #3d3d3a;
|
||||
--color-warm-silver: #b0aea5;
|
||||
/* Borders & Rings */
|
||||
--color-border-cream: #f0eee6;
|
||||
--color-border-warm: #e8e6dc;
|
||||
--color-border-dark: #30302e;
|
||||
--color-ring-warm: #d1cfc5;
|
||||
--color-ring-deep: #c2c0b6;
|
||||
/* Fonts */
|
||||
--font-serif: Georgia, 'Times New Roman', Times, serif;
|
||||
--font-sans: Arial, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
|
||||
--font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
/* Light mode tokens */
|
||||
--bg-page: #f5f4ed;
|
||||
--bg-card: #faf9f5;
|
||||
--bg-nav: rgba(245,244,237,0.92);
|
||||
--text-primary: #141413;
|
||||
--text-secondary: #5e5d59;
|
||||
--text-tertiary: #87867f;
|
||||
--border-color: #f0eee6;
|
||||
--border-subtle: #f0eee6;
|
||||
--section-label-color: #c96442;
|
||||
}
|
||||
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
|
||||
body {
|
||||
background: var(--bg-page);
|
||||
color: var(--text-primary);
|
||||
font-family: var(--font-sans);
|
||||
font-size: 16px;
|
||||
line-height: 1.60;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
/* NAV */
|
||||
.nav {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 16px 40px;
|
||||
background: var(--bg-nav);
|
||||
backdrop-filter: blur(12px);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
.nav-brand {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
color: var(--text-primary);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
.nav-brand .logo-mark {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
background: var(--color-terracotta);
|
||||
border-radius: 8px;
|
||||
color: var(--color-ivory);
|
||||
font-family: var(--font-serif);
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.nav-links { display: flex; gap: 32px; align-items: center; }
|
||||
.nav-links a {
|
||||
color: var(--text-secondary);
|
||||
text-decoration: none;
|
||||
font-size: 15px;
|
||||
font-weight: 400;
|
||||
font-family: var(--font-sans);
|
||||
transition: color 0.2s;
|
||||
}
|
||||
.nav-links a:hover { color: var(--text-primary); }
|
||||
.nav-cta {
|
||||
background: var(--color-terracotta);
|
||||
color: var(--color-ivory);
|
||||
padding: 8px 20px;
|
||||
border: none;
|
||||
border-radius: 12px;
|
||||
font-size: 15px;
|
||||
font-family: var(--font-sans);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
box-shadow: #c96442 0px 0px 0px 0px, #c96442 0px 0px 0px 1px;
|
||||
}
|
||||
|
||||
/* HERO */
|
||||
.hero {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
padding: 120px 40px 100px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.hero::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 700px;
|
||||
height: 700px;
|
||||
transform: translate(-50%, -50%);
|
||||
background: radial-gradient(circle, rgba(201,100,66,0.06) 0%, rgba(217,119,87,0.03) 40%, transparent 70%);
|
||||
pointer-events: none;
|
||||
}
|
||||
.hero h1 {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 64px;
|
||||
font-weight: 500;
|
||||
line-height: 1.10;
|
||||
letter-spacing: normal;
|
||||
margin-bottom: 24px;
|
||||
position: relative;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.hero h1 span { color: var(--color-terracotta); }
|
||||
.hero p {
|
||||
color: var(--text-secondary);
|
||||
font-family: var(--font-sans);
|
||||
font-size: 20px;
|
||||
line-height: 1.60;
|
||||
margin-bottom: 40px;
|
||||
position: relative;
|
||||
}
|
||||
.hero-buttons { display: flex; gap: 16px; justify-content: center; position: relative; }
|
||||
.btn-brand {
|
||||
background: var(--color-terracotta);
|
||||
color: var(--color-ivory);
|
||||
padding: 12px 24px;
|
||||
border: none;
|
||||
border-radius: 12px;
|
||||
font-size: 16px;
|
||||
font-family: var(--font-sans);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
box-shadow: #c96442 0px 0px 0px 0px, #c96442 0px 0px 0px 1px;
|
||||
}
|
||||
.btn-warm-sand {
|
||||
background: var(--color-warm-sand);
|
||||
color: var(--color-charcoal-warm);
|
||||
padding: 12px 24px;
|
||||
border: none;
|
||||
border-radius: 8px;
|
||||
font-size: 16px;
|
||||
font-family: var(--font-sans);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
box-shadow: #e8e6dc 0px 0px 0px 0px, #d1cfc5 0px 0px 0px 1px;
|
||||
}
|
||||
|
||||
/* SECTIONS */
|
||||
.section {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 80px 40px;
|
||||
}
|
||||
.section-title {
|
||||
font-family: var(--font-sans);
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 2.5px;
|
||||
color: var(--section-label-color);
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.section-heading {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 36px;
|
||||
font-weight: 500;
|
||||
line-height: 1.20;
|
||||
letter-spacing: normal;
|
||||
margin-bottom: 48px;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.section-divider {
|
||||
border: none;
|
||||
border-top: 1px solid var(--border-subtle);
|
||||
margin: 0 40px;
|
||||
max-width: 1200px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/* COLOR PALETTE */
|
||||
.color-group { margin-bottom: 40px; }
|
||||
.color-group-title {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
line-height: 1.2;
|
||||
margin-bottom: 20px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
.color-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
|
||||
gap: 16px;
|
||||
}
|
||||
.color-swatch {
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.color-swatch-block {
|
||||
height: 80px;
|
||||
position: relative;
|
||||
}
|
||||
.color-swatch-info {
|
||||
padding: 12px;
|
||||
background: var(--bg-card);
|
||||
}
|
||||
.color-swatch-name { font-family: var(--font-sans); font-size: 13px; font-weight: 600; margin-bottom: 2px; }
|
||||
.color-swatch-hex { font-family: var(--font-mono); font-size: 12px; color: var(--text-tertiary); margin-bottom: 4px; }
|
||||
.color-swatch-role { font-size: 12px; color: var(--text-tertiary); line-height: 1.4; }
|
||||
|
||||
/* TYPOGRAPHY */
|
||||
.type-sample { margin-bottom: 32px; padding-bottom: 32px; border-bottom: 1px solid var(--border-subtle); }
|
||||
.type-sample:last-child { border-bottom: none; }
|
||||
.type-sample-text { margin-bottom: 8px; }
|
||||
.type-sample-label {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 12px;
|
||||
color: var(--text-tertiary);
|
||||
}
|
||||
|
||||
/* BUTTONS */
|
||||
.button-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 24px;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.button-demo { text-align: center; }
|
||||
.button-demo-label {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 11px;
|
||||
color: var(--text-tertiary);
|
||||
margin-top: 10px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.55px;
|
||||
}
|
||||
.btn-white {
|
||||
background: var(--color-white);
|
||||
color: var(--color-near-black);
|
||||
padding: 8px 16px;
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 12px;
|
||||
font-size: 16px;
|
||||
font-family: var(--font-sans);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
}
|
||||
.btn-dark {
|
||||
background: var(--color-dark-surface);
|
||||
color: var(--color-ivory);
|
||||
padding: 9.6px 16.8px;
|
||||
border: none;
|
||||
border-radius: 8px;
|
||||
font-size: 16px;
|
||||
font-family: var(--font-sans);
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
box-shadow: #30302e 0px 0px 0px 0px, #30302e 0px 0px 0px 1px;
|
||||
}
|
||||
|
||||
/* CARDS */
|
||||
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }
|
||||
.card {
|
||||
background: var(--bg-card);
|
||||
border-radius: 12px;
|
||||
padding: 28px;
|
||||
}
|
||||
.card-standard { border: 1px solid var(--border-color); }
|
||||
.card-whisper {
|
||||
border: 1px solid var(--border-color);
|
||||
box-shadow: rgba(0,0,0,0.05) 0px 4px 24px;
|
||||
}
|
||||
.card-ring {
|
||||
border: none;
|
||||
box-shadow: 0px 0px 0px 1px var(--color-ring-warm);
|
||||
}
|
||||
.card h3 {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 25px;
|
||||
font-weight: 500;
|
||||
line-height: 1.20;
|
||||
margin-bottom: 12px;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.card p { color: var(--text-secondary); font-size: 15px; line-height: 1.60; }
|
||||
.card-label {
|
||||
font-family: var(--font-sans);
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.55px;
|
||||
color: var(--color-terracotta);
|
||||
margin-bottom: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* SPACING */
|
||||
.spacing-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
|
||||
.spacing-item { text-align: center; }
|
||||
.spacing-box {
|
||||
background: rgba(201,100,66,0.10);
|
||||
border: 1px solid rgba(201,100,66,0.25);
|
||||
border-radius: 4px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.spacing-label {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 11px;
|
||||
color: var(--text-tertiary);
|
||||
}
|
||||
|
||||
/* RADIUS */
|
||||
.radius-row { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
|
||||
.radius-item { text-align: center; }
|
||||
.radius-box {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
background: var(--bg-card);
|
||||
border: 1px solid var(--color-border-warm);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.radius-label {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 11px;
|
||||
color: var(--text-tertiary);
|
||||
}
|
||||
.radius-context {
|
||||
font-size: 11px;
|
||||
color: var(--text-tertiary);
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
/* ELEVATION */
|
||||
.elevation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
|
||||
.elevation-card {
|
||||
background: var(--bg-card);
|
||||
border-radius: 12px;
|
||||
padding: 24px;
|
||||
min-height: 140px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.elevation-flat { border: none; background: var(--bg-page); }
|
||||
.elevation-contained { border: 1px solid var(--color-border-cream); }
|
||||
.elevation-ring { border: none; box-shadow: 0px 0px 0px 1px var(--color-ring-warm); }
|
||||
.elevation-whisper { border: 1px solid var(--color-border-cream); box-shadow: rgba(0,0,0,0.05) 0px 4px 24px; }
|
||||
.elevation-inset { border: none; box-shadow: inset 0px 0px 0px 1px rgba(0,0,0,0.15); }
|
||||
.elevation-name {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.elevation-desc { font-size: 13px; color: var(--text-secondary); line-height: 1.5; }
|
||||
.elevation-level {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 11px;
|
||||
color: var(--color-terracotta);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.55px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
/* RESPONSIVE */
|
||||
@media (max-width: 768px) {
|
||||
.nav { padding: 12px 20px; }
|
||||
.nav-links a:not(.nav-cta-wrapper) { display: none; }
|
||||
.hero { padding: 80px 20px 60px; }
|
||||
.hero h1 { font-size: 36px; }
|
||||
.section { padding: 60px 20px; }
|
||||
.section-heading { font-size: 28px; }
|
||||
.color-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
|
||||
.card-grid { grid-template-columns: 1fr; }
|
||||
.hero-buttons { flex-direction: column; align-items: center; }
|
||||
.button-row { flex-direction: column; align-items: flex-start; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- NAV -->
|
||||
<nav class="nav">
|
||||
<div class="nav-brand"><span class="logo-mark">C</span> Claude</div>
|
||||
<div class="nav-links">
|
||||
<a href="#colors">Colors</a>
|
||||
<a href="#typography">Typography</a>
|
||||
<a href="#buttons">Buttons</a>
|
||||
<a href="#cards">Cards</a>
|
||||
<a href="#spacing">Spacing</a>
|
||||
<a href="#elevation">Elevation</a>
|
||||
<button class="nav-cta">Try Claude</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- HERO -->
|
||||
<section class="hero">
|
||||
<h1>Design System Preview:<br><span>Claude</span></h1>
|
||||
<p>Auto-generated design token catalog from DESIGN.md</p>
|
||||
<div class="hero-buttons">
|
||||
<button class="btn-brand">Explore Tokens</button>
|
||||
<button class="btn-warm-sand">View Source</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- COLORS -->
|
||||
<section class="section" id="colors">
|
||||
<div class="section-title">01 / Color Palette</div>
|
||||
<h2 class="section-heading">Color Palette & Roles</h2>
|
||||
|
||||
<div class="color-group">
|
||||
<h3 class="color-group-title">Primary</h3>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #141413; border-bottom: 1px solid #30302e;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Anthropic Near Black</div>
|
||||
<div class="color-swatch-hex">#141413</div>
|
||||
<div class="color-swatch-role">Primary text, dark-theme surface</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #c96442;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Terracotta Brand</div>
|
||||
<div class="color-swatch-hex">#c96442</div>
|
||||
<div class="color-swatch-role">Core brand color, primary CTA buttons</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #d97757;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Coral Accent</div>
|
||||
<div class="color-swatch-hex">#d97757</div>
|
||||
<div class="color-swatch-role">Text accents, links on dark surfaces</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="color-group">
|
||||
<h3 class="color-group-title">Secondary & Accent</h3>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #b53333;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Error Crimson</div>
|
||||
<div class="color-swatch-hex">#b53333</div>
|
||||
<div class="color-swatch-role">Error states, warm red</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #3898ec;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Focus Blue</div>
|
||||
<div class="color-swatch-hex">#3898ec</div>
|
||||
<div class="color-swatch-role">Input focus rings (only cool color)</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="color-group">
|
||||
<h3 class="color-group-title">Surface & Background</h3>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #f5f4ed; border-bottom: 1px solid #e8e6dc;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Parchment</div>
|
||||
<div class="color-swatch-hex">#f5f4ed</div>
|
||||
<div class="color-swatch-role">Primary page background</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #faf9f5; border-bottom: 1px solid #f0eee6;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Ivory</div>
|
||||
<div class="color-swatch-hex">#faf9f5</div>
|
||||
<div class="color-swatch-role">Card surfaces, elevated containers</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #ffffff; border-bottom: 1px solid #f0eee6;"></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">Button surfaces, max contrast</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #e8e6dc;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Warm Sand</div>
|
||||
<div class="color-swatch-hex">#e8e6dc</div>
|
||||
<div class="color-swatch-role">Button backgrounds, interactive surfaces</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #30302e; border-bottom: 1px solid #4d4c48;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Dark Surface</div>
|
||||
<div class="color-swatch-hex">#30302e</div>
|
||||
<div class="color-swatch-role">Dark-theme containers, nav borders</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="color-group">
|
||||
<h3 class="color-group-title">Neutrals & Text</h3>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #4d4c48;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Charcoal Warm</div>
|
||||
<div class="color-swatch-hex">#4d4c48</div>
|
||||
<div class="color-swatch-role">Button text on light surfaces</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #5e5d59;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Olive Gray</div>
|
||||
<div class="color-swatch-hex">#5e5d59</div>
|
||||
<div class="color-swatch-role">Secondary body text</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #87867f;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Stone Gray</div>
|
||||
<div class="color-swatch-hex">#87867f</div>
|
||||
<div class="color-swatch-role">Tertiary text, footnotes, metadata</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #3d3d3a;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Dark Warm</div>
|
||||
<div class="color-swatch-hex">#3d3d3a</div>
|
||||
<div class="color-swatch-role">Dark text links, emphasized secondary</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #b0aea5;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Warm Silver</div>
|
||||
<div class="color-swatch-hex">#b0aea5</div>
|
||||
<div class="color-swatch-role">Text on dark surfaces</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="color-group">
|
||||
<h3 class="color-group-title">Semantic & Borders</h3>
|
||||
<div class="color-grid">
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #f0eee6; border-bottom: 1px solid #e8e6dc;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Border Cream</div>
|
||||
<div class="color-swatch-hex">#f0eee6</div>
|
||||
<div class="color-swatch-role">Standard light-theme border</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #e8e6dc;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Border Warm</div>
|
||||
<div class="color-swatch-hex">#e8e6dc</div>
|
||||
<div class="color-swatch-role">Prominent borders, section dividers</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #d1cfc5;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Ring Warm</div>
|
||||
<div class="color-swatch-hex">#d1cfc5</div>
|
||||
<div class="color-swatch-role">Button hover/focus ring shadow</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="color-swatch">
|
||||
<div class="color-swatch-block" style="background: #c2c0b6;"></div>
|
||||
<div class="color-swatch-info">
|
||||
<div class="color-swatch-name">Ring Deep</div>
|
||||
<div class="color-swatch-hex">#c2c0b6</div>
|
||||
<div class="color-swatch-role">Active/pressed ring states</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- TYPOGRAPHY -->
|
||||
<section class="section" id="typography">
|
||||
<div class="section-title">02 / Typography Scale</div>
|
||||
<h2 class="section-heading">Typography Rules</h2>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 64px; font-weight: 500; line-height: 1.10;">Display Hero</div>
|
||||
<div class="type-sample-label">Display / Hero — 64px / 500 / 1.10 / normal — Anthropic Serif (Georgia fallback)</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 52px; font-weight: 500; line-height: 1.20;">Section Heading</div>
|
||||
<div class="type-sample-label">Section Heading — 52px / 500 / 1.20 / normal — Anthropic Serif</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 36px; font-weight: 500; line-height: 1.30;">Sub-heading Large</div>
|
||||
<div class="type-sample-label">Sub-heading Large — 36px / 500 / 1.30 / normal — Anthropic Serif</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 32px; font-weight: 500; line-height: 1.10;">Sub-heading</div>
|
||||
<div class="type-sample-label">Sub-heading — 32px / 500 / 1.10 / normal — Anthropic Serif</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 25px; font-weight: 500; line-height: 1.20;">Sub-heading Small</div>
|
||||
<div class="type-sample-label">Sub-heading Small — 25px / 500 / 1.20 / normal — Anthropic Serif</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Georgia, serif; font-size: 17px; font-weight: 400; line-height: 1.60; color: var(--text-secondary);">Body serif text for editorial passages. The generous 1.60 line-height creates a literary reading experience closer to a book than a dashboard, with warm tones throughout.</div>
|
||||
<div class="type-sample-label">Body Serif — 17px / 400 / 1.60 / normal — Anthropic Serif</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Arial, system-ui, sans-serif; font-size: 20px; font-weight: 400; line-height: 1.60;">Body Large Sans</div>
|
||||
<div class="type-sample-label">Body Large — 20px / 400 / 1.60 / normal — Anthropic Sans (Arial fallback)</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Arial, system-ui, sans-serif; font-size: 16px; font-weight: 400; line-height: 1.60;">Standard body text for UI copy, navigation, and button labels. Anthropic Sans handles all functional text with quiet efficiency.</div>
|
||||
<div class="type-sample-label">Body Standard — 16px / 400 / 1.60 / normal — Anthropic Sans</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Arial, system-ui, sans-serif; font-size: 14px; font-weight: 400; line-height: 1.43; color: var(--text-secondary);">Caption and metadata text for descriptions</div>
|
||||
<div class="type-sample-label">Caption — 14px / 400 / 1.43 / normal — Anthropic Sans</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: Arial, system-ui, sans-serif; font-size: 12px; font-weight: 500; line-height: 1.60; letter-spacing: 0.12px; color: var(--text-tertiary);">LABEL TEXT</div>
|
||||
<div class="type-sample-label">Label — 12px / 500 / 1.60 / 0.12px — Anthropic Sans</div>
|
||||
</div>
|
||||
|
||||
<div class="type-sample">
|
||||
<div class="type-sample-text" style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 15px; font-weight: 400; line-height: 1.60; letter-spacing: -0.32px;">const response = await claude.messages.create()</div>
|
||||
<div class="type-sample-label">Code — 15px / 400 / 1.60 / -0.32px — Anthropic Mono (SFMono fallback)</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- BUTTONS -->
|
||||
<section class="section" id="buttons">
|
||||
<div class="section-title">03 / Button Variants</div>
|
||||
<h2 class="section-heading">Buttons</h2>
|
||||
|
||||
<div class="button-row">
|
||||
<div class="button-demo">
|
||||
<button style="background: #e8e6dc; color: #4d4c48; padding: 10px 12px 10px 8px; border: none; border-radius: 8px; font-size: 16px; font-family: Arial, system-ui, sans-serif; font-weight: 500; cursor: pointer; box-shadow: #e8e6dc 0px 0px 0px 0px, #d1cfc5 0px 0px 0px 1px;">Warm Sand</button>
|
||||
<div class="button-demo-label">Warm Sand (Secondary)</div>
|
||||
</div>
|
||||
<div class="button-demo">
|
||||
<button style="background: #ffffff; color: #141413; padding: 8px 16px 8px 12px; border: 1px solid #f0eee6; border-radius: 12px; font-size: 16px; font-family: Arial, system-ui, sans-serif; font-weight: 500; cursor: pointer;">White Surface</button>
|
||||
<div class="button-demo-label">White Surface</div>
|
||||
</div>
|
||||
<div class="button-demo">
|
||||
<button style="background: #30302e; color: #faf9f5; padding: 10px 12px 10px 8px; border: none; border-radius: 8px; font-size: 16px; font-family: Arial, system-ui, sans-serif; font-weight: 500; cursor: pointer; box-shadow: #30302e 0px 0px 0px 0px, #30302e 0px 0px 0px 1px;">Dark Charcoal</button>
|
||||
<div class="button-demo-label">Dark Charcoal</div>
|
||||
</div>
|
||||
<div class="button-demo">
|
||||
<button style="background: #c96442; color: #faf9f5; padding: 10px 20px; border: none; border-radius: 12px; font-size: 16px; font-family: Arial, system-ui, sans-serif; font-weight: 500; cursor: pointer; box-shadow: #c96442 0px 0px 0px 0px, #c96442 0px 0px 0px 1px;">Brand CTA</button>
|
||||
<div class="button-demo-label">Terracotta Brand</div>
|
||||
</div>
|
||||
<div class="button-demo">
|
||||
<button style="background: #141413; color: #b0aea5; padding: 9.6px 16.8px; border: 1px solid #30302e; border-radius: 12px; font-size: 16px; font-family: Arial, system-ui, sans-serif; font-weight: 500; cursor: pointer;">Dark Primary</button>
|
||||
<div class="button-demo-label">Dark Primary</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- CARDS -->
|
||||
<section class="section" id="cards">
|
||||
<div class="section-title">04 / Card Examples</div>
|
||||
<h2 class="section-heading">Cards & Containers</h2>
|
||||
|
||||
<div class="card-grid">
|
||||
<div class="card card-standard">
|
||||
<div class="card-label">Standard Card</div>
|
||||
<h3>Border Cream Contained</h3>
|
||||
<p>Standard content card with 1px solid Border Cream and 8px radius. The default container for features and content sections on Ivory surface.</p>
|
||||
</div>
|
||||
<div class="card card-whisper">
|
||||
<div class="card-label">Whisper Shadow</div>
|
||||
<h3>Soft Elevated Card</h3>
|
||||
<p>Elevated card with whisper-soft shadow at 0.05 opacity and 24px blur. Suggests floating rather than casting. For featured product screenshots.</p>
|
||||
</div>
|
||||
<div class="card card-ring">
|
||||
<div class="card-label">Ring Shadow</div>
|
||||
<h3>Warm Ring Halo</h3>
|
||||
<p>Interactive card using Claude's signature ring shadow system. The 0px 0px 0px 1px pattern creates a border-like halo that is softer than a true border.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- SPACING -->
|
||||
<section class="section" id="spacing">
|
||||
<div class="section-title">05 / Spacing Scale</div>
|
||||
<h2 class="section-heading">Spacing System</h2>
|
||||
<p style="color: var(--text-secondary); margin-bottom: 32px; font-family: var(--font-sans);">Base unit: 8px. Scale: 3px, 4px, 6px, 8px, 10px, 12px, 16px, 20px, 24px, 30px.</p>
|
||||
|
||||
<div class="spacing-row">
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 12px; height: 12px;"></div><div class="spacing-label">3px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 16px; height: 16px;"></div><div class="spacing-label">4px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 24px; height: 24px;"></div><div class="spacing-label">6px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 32px; height: 32px;"></div><div class="spacing-label">8px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 40px; height: 40px;"></div><div class="spacing-label">10px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 48px; height: 48px;"></div><div class="spacing-label">12px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 64px; height: 64px;"></div><div class="spacing-label">16px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 80px; height: 80px;"></div><div class="spacing-label">20px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 96px; height: 96px;"></div><div class="spacing-label">24px</div></div>
|
||||
<div class="spacing-item"><div class="spacing-box" style="width: 120px; height: 120px;"></div><div class="spacing-label">30px</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- BORDER RADIUS -->
|
||||
<section class="section">
|
||||
<div class="section-title">06 / Border Radius Scale</div>
|
||||
<h2 class="section-heading">Border Radius</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">Sharp</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius: 6px;"></div><div class="radius-label">6px</div><div class="radius-context">Subtly rounded</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">Comfortably rounded</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">Generously rounded</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">Very rounded</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius: 24px;"></div><div class="radius-label">24px</div><div class="radius-context">Highly rounded</div></div>
|
||||
<div class="radius-item"><div class="radius-box" style="border-radius: 32px;"></div><div class="radius-label">32px</div><div class="radius-context">Maximum rounded</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
<!-- ELEVATION -->
|
||||
<section class="section" id="elevation">
|
||||
<div class="section-title">07 / Elevation & Depth</div>
|
||||
<h2 class="section-heading">Depth & Elevation</h2>
|
||||
|
||||
<div class="elevation-grid">
|
||||
<div class="elevation-card elevation-flat">
|
||||
<div><div class="elevation-name">Flat</div><div class="elevation-desc">No shadow, no border. Parchment background and inline text.</div></div>
|
||||
<div class="elevation-level">Level 0</div>
|
||||
</div>
|
||||
<div class="elevation-card elevation-contained">
|
||||
<div><div class="elevation-name">Contained</div><div class="elevation-desc">1px solid Border Cream. Standard cards and sections.</div></div>
|
||||
<div class="elevation-level">Level 1</div>
|
||||
</div>
|
||||
<div class="elevation-card elevation-ring">
|
||||
<div><div class="elevation-name">Ring</div><div class="elevation-desc">0px 0px 0px 1px ring shadow using warm grays. Interactive cards, buttons, hover states.</div></div>
|
||||
<div class="elevation-level">Level 2</div>
|
||||
</div>
|
||||
<div class="elevation-card elevation-whisper">
|
||||
<div><div class="elevation-name">Whisper</div><div class="elevation-desc">rgba(0,0,0,0.05) 0px 4px 24px. Elevated feature cards, product screenshots.</div></div>
|
||||
<div class="elevation-level">Level 3</div>
|
||||
</div>
|
||||
<div class="elevation-card elevation-inset">
|
||||
<div><div class="elevation-name">Inset</div><div class="elevation-desc">inset 0px 0px 0px 1px at 15% opacity. Active/pressed button states.</div></div>
|
||||
<div class="elevation-level">Level 4</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div style="height: 80px;"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user