commit 1145c998a124f04a40ea92b09a76452b514b054b Author: necatiozmen Date: Tue Mar 31 19:37:25 2026 +0300 first commit diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/.DS_Store differ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..7d0dc15 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,103 @@ +# Contributing to Awesome Design MD + +Thanks for contributing. + +This repository is a curated collection of DESIGN.md files extracted from popular websites. Each file captures a site's complete visual language in a format any AI agent can read. + +## How to Contribute + +### Request a New Site + +The easiest way to contribute. [Open an issue](https://github.com/VoltAgent/awesome-design-md/issues) with: + +- The site URL +- Why it's interesting (unique design language, popular brand, etc.) + +We'll extract the DESIGN.md and add it to the collection. + +### Improve an Existing DESIGN.md + +If you notice issues with an existing file: + +1. Open the site's `DESIGN.md` +2. Compare against the live site +3. Fix incorrect hex values, missing tokens, or weak descriptions +4. Update the `preview.html` and `preview-dark.html` if your changes affect displayed tokens +5. Open a PR with before/after rationale + +### Submit a New DESIGN.md + +If you've extracted a DESIGN.md yourself: + +1. Create a directory named after the site (e.g., `x/`) +2. Include at minimum: + - `DESIGN.md`: The design system document + - `preview.html`: Visual catalog (light) + - `preview-dark.html`: Visual catalog (dark) +3. Update `README.md`: Add the site to the correct category table +4. Open a PR with the site name and a short description + +## DESIGN.md Quality Bar + +Every DESIGN.md must include all 9 sections: + +1. Visual Theme & Atmosphere +2. Color Palette & Roles +3. Typography Rules +4. Component Stylings +5. Layout Principles +6. Depth & Elevation +7. Do's and Don'ts +8. Responsive Behavior +9. Agent Prompt Guide + +### Writing Standards + +- **Every color**: Semantic Name (`#hex`) + functional role +- **Atmosphere**: Evocative and specific, never "clean and modern" +- **Typography**: Full hierarchy table with size, weight, line-height, letter-spacing +- **Components**: Include hover/focus states and transition timing +- **Why, not just what**: Explain the reasoning behind design decisions + +### Common Issues to Watch For + +- Hex values that don't match the live site (token extraction isn't perfect) +- Missing hover/focus states on buttons and links +- Generic atmosphere descriptions that could apply to any site +- Incomplete typography tables (missing code font, small labels, etc.) + +## Preview HTML Standards + +- Self-contained single HTML file (inline CSS, no external dependencies except Google Fonts) +- Must display: color swatches, typography scale, button variants, card examples, form elements, spacing scale, border radius, elevation levels +- No logo icons or emoji icons in the nav. Plain text site name only +- No Do's and Don'ts section in the HTML preview +- Responsive: must look reasonable on mobile + +## Validation Checklist (Before PR) + +- [ ] All 9 sections present in DESIGN.md +- [ ] Every color has semantic name + hex + role +- [ ] Typography table is complete with real values +- [ ] Preview HTML files are self-contained and render correctly +- [ ] Site added to correct category in README.md +- [ ] Links in README resolve correctly + +## Pull Request Checklist + +- [ ] Added/updated DESIGN.md file +- [ ] Added/updated preview HTML files +- [ ] Updated main README.md +- [ ] Included clear PR description +- [ ] Verified against live site + +## Style Notes + +- Keep documentation in English. +- Prefer precise, descriptive wording over marketing language. +- Keep category descriptions short and factual. +- Alphabetical ordering within categories. + +## License + +By contributing, you agree your contributions are provided under the repository license terms. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5cea5d7 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 VoltAgent + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..67b63ed --- /dev/null +++ b/README.md @@ -0,0 +1,109 @@ +
+ +# Awesome Design MD + +**Curated collection of DESIGN.md files inspired by popular websites.** + +Copy a DESIGN.md into your project, tell your AI agent "build me a page that looks like this" and get pixel-perfect UI that actually matches. + + +
+ +[![Awesome](https://awesome.re/badge.svg)](https://awesome.re) +![Site Count](https://img.shields.io/badge/sites-3-10b981?style=classic) +[![Last Update](https://img.shields.io/github/last-commit/VoltAgent/awesome-design-md?label=Last%20update&style=classic)](https://github.com/VoltAgent/awesome-design-md) +[![Discord](https://img.shields.io/discord/1361559153780195478.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://s.voltagent.dev/discord) + + +
+ +
+ +## What is DESIGN.md? + +[DESIGN.md](https://stitch.withgoogle.com/docs/design-md/overview/) is a concept introduced by Google Stitch. A plain-text design system document that AI agents read to generate consistent UI. + +It's just a markdown file. You can read it, edit it, commit it to git. No Figma exports, no JSON schemas, no special tooling. Drop it into your project root and any AI coding agent instantly understands how your UI should look. Markdown is the format LLMs read best, so there's nothing to parse or configure. + +| File | Who reads it | What it defines | +|------|-------------|-----------------| +| `AGENTS.md` | Coding agents | How to build the project | +| `DESIGN.md` | Design agents | How the project should look and feel | + +**This repo provides ready-to-use DESIGN.md files** extracted from real websites. + + + +## What's Inside Each DESIGN.md + +Every file follows the [Stitch DESIGN.md format](https://stitch.withgoogle.com/docs/design-md/format/) with extended sections: + +| # | Section | What it captures | +|---|---------|-----------------| +| 1 | Visual Theme & Atmosphere | Mood, density, design philosophy | +| 2 | Color Palette & Roles | Semantic name + hex + functional role | +| 3 | Typography Rules | Font families, full hierarchy table | +| 4 | Component Stylings | Buttons, cards, inputs, navigation with states | +| 5 | Layout Principles | Spacing scale, grid, whitespace philosophy | +| 6 | Depth & Elevation | Shadow system, surface hierarchy | +| 7 | Do's and Don'ts | Design guardrails and anti-patterns | +| 8 | Responsive Behavior | Breakpoints, touch targets, collapsing strategy | +| 9 | Agent Prompt Guide | Quick color reference, ready-to-use prompts | + +Each site includes: + +| File | Purpose | +|------|---------| +| `DESIGN.md` | The design system (what agents read) | +| `preview.html` | Visual catalog showing color swatches, type scale, buttons, cards | +| `preview-dark.html` | Same catalog with dark surfaces | + +### How to Use + + +1. Copy a site's `DESIGN.md` into your project root +2. Tell your AI agent to use it. + +## Collection + +### Developer Tools & Platforms + +Sites building tools for developers. Dark themes, code-first aesthetics, terminal vibes. + +| Site | Description | Preview | +|------|-------------|---------| +| [**Cloudflare**](cloudflare/DESIGN.md) | Bold orange identity, high-contrast sections, billboard-scale typography | [Light](cloudflare/preview.html) · [Dark](cloudflare/preview-dark.html) | +| [**VoltAgent**](voltagent/DESIGN.md) | Void-black canvas, emerald "voltage" accent, terminal-native aesthetic | [Light](voltagent/preview.html) · [Dark](voltagent/preview-dark.html) | + +### Product & SaaS + +Consumer-facing product sites with polished, conversion-focused design. + +| Site | Description | Preview | +|------|-------------|---------| +| [**Expo**](expo/DESIGN.md) | Dark developer platform, tight letter-spacing, code-centric hero | [Light](expo/preview.html) · [Dark](expo/preview-dark.html) | + +--- + +> **Want a specific site added?** [Open an issue](https://github.com/VoltAgent/awesome-design-md/issues) with the URL. + + + +## Contributing + +We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. + +- [**Request a site**](https://github.com/VoltAgent/awesome-design-md/issues): Open an issue with the URL +- **Improve existing files**: Fix wrong colors, missing tokens, weak descriptions +- **Report issues**: Let us know if something looks off + + + + + + +## License + +MIT License - see [LICENSE](LICENSE) + +This repository is a curated collection of design system documents extracted from public websites. All DESIGN.md files are provided "as is" without warranty. The extracted design tokens represent publicly visible CSS values. We do not claim ownership of any site's visual identity. These documents exist to help AI agents generate consistent UI. diff --git a/design-md/apple/DESIGN.md b/design-md/apple/DESIGN.md new file mode 100644 index 0000000..e596b15 --- /dev/null +++ b/design-md/apple/DESIGN.md @@ -0,0 +1,313 @@ +# Design System: Apple + +## 1. Visual Theme & Atmosphere + +Apple's website is a masterclass in controlled drama — vast expanses of pure black and near-white serve as cinematic backdrops for products that are photographed as if they were sculptures in a gallery. The design philosophy is reductive to its core: every pixel exists in service of the product, and the interface itself retreats until it becomes invisible. This is not minimalism as aesthetic preference; it is minimalism as reverence for the object. + +The typography anchors everything. San Francisco (SF Pro Display for large sizes, SF Pro Text for body) is Apple's proprietary typeface, engineered with optical sizing that automatically adjusts letterforms depending on point size. At display sizes (56px), weight 600 with a tight line-height of 1.07 and subtle negative letter-spacing (-0.28px) creates headlines that feel machined rather than typeset — precise, confident, and unapologetically direct. At body sizes (17px), the tracking loosens slightly (-0.374px) and line-height opens to 1.47, creating a reading rhythm that is comfortable without ever feeling slack. + +The color story is starkly binary. Product sections alternate between pure black (`#000000`) backgrounds with white text and light gray (`#f5f5f7`) backgrounds with near-black text (`#1d1d1f`). This creates a cinematic pacing — dark sections feel immersive and premium, light sections feel open and informational. The only chromatic accent is Apple Blue (`#0071e3`), reserved exclusively for interactive elements: links, buttons, and focus states. This singular accent color in a sea of neutrals gives every clickable element unmistakable visibility. + +**Key Characteristics:** +- SF Pro Display/Text with optical sizing — letterforms adapt automatically to size context +- Binary light/dark section rhythm: black (`#000000`) alternating with light gray (`#f5f5f7`) +- Single accent color: Apple Blue (`#0071e3`) reserved exclusively for interactive elements +- Product-as-hero photography on solid color fields — no gradients, no textures, no distractions +- Extremely tight headline line-heights (1.07-1.14) creating compressed, billboard-like impact +- Full-width section layout with centered content — the viewport IS the canvas +- Pill-shaped CTAs (980px radius) creating soft, approachable action buttons +- Generous whitespace between sections allowing each product moment to breathe + +## 2. Color Palette & Roles + +### Primary +- **Pure Black** (`#000000`): Hero section backgrounds, immersive product showcases. The darkest canvas for the brightest products. +- **Light Gray** (`#f5f5f7`): Alternate section backgrounds, informational areas. Not white — the slight blue-gray tint prevents sterility. +- **Near Black** (`#1d1d1f`): Primary text on light backgrounds, dark button fills. Slightly warmer than pure black for comfortable reading. + +### Interactive +- **Apple Blue** (`#0071e3`): `--sk-focus-color`, primary CTA backgrounds, focus rings. The ONLY chromatic color in the interface. +- **Link Blue** (`#0066cc`): `--sk-body-link-color`, inline text links. Slightly darker than Apple Blue for text-level readability. +- **Bright Blue** (`#2997ff`): Links on dark backgrounds. Higher luminance for contrast on black sections. + +### Text +- **White** (`#ffffff`): Text on dark backgrounds, button text on blue/dark CTAs. +- **Near Black** (`#1d1d1f`): Primary body text on light backgrounds. +- **Black 80%** (`rgba(0, 0, 0, 0.8)`): Secondary text, nav items on light backgrounds. Slightly softened. +- **Black 48%** (`rgba(0, 0, 0, 0.48)`): Tertiary text, disabled states, carousel controls. + +### Surface & Dark Variants +- **Dark Surface 1** (`#272729`): Card backgrounds in dark sections. +- **Dark Surface 2** (`#262628`): Subtle surface variation in dark contexts. +- **Dark Surface 3** (`#28282a`): Elevated cards on dark backgrounds. +- **Dark Surface 4** (`#2a2a2d`): Highest dark surface elevation. +- **Dark Surface 5** (`#242426`): Deepest dark surface tone. + +### Button States +- **Button Active** (`#ededf2`): Active/pressed state for light buttons. +- **Button Default Light** (`#fafafc`): Search/filter button backgrounds. +- **Overlay** (`rgba(210, 210, 215, 0.64)`): Media control scrims, overlays. +- **White 32%** (`rgba(255, 255, 255, 0.32)`): Hover state on dark modal close buttons. + +### Shadows +- **Card Shadow** (`rgba(0, 0, 0, 0.22) 3px 5px 30px 0px`): Soft, diffused elevation for product cards. Offset and wide blur create a natural, photographic shadow. + +## 3. Typography Rules + +### Font Family +- **Display**: `SF Pro Display`, with fallbacks: `SF Pro Icons, Helvetica Neue, Helvetica, Arial, sans-serif` +- **Body**: `SF Pro Text`, with fallbacks: `SF Pro Icons, Helvetica Neue, Helvetica, Arial, sans-serif` +- SF Pro Display is used at 20px and above; SF Pro Text is optimized for 19px and below. + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Hero | SF Pro Display | 56px (3.50rem) | 600 | 1.07 (tight) | -0.28px | Product launch headlines, maximum impact | +| Section Heading | SF Pro Display | 40px (2.50rem) | 600 | 1.10 (tight) | normal | Feature section titles | +| Tile Heading | SF Pro Display | 28px (1.75rem) | 400 | 1.14 (tight) | 0.196px | Product tile headlines | +| Card Title | SF Pro Display | 21px (1.31rem) | 700 | 1.19 (tight) | 0.231px | Bold card headings | +| Sub-heading | SF Pro Display | 21px (1.31rem) | 400 | 1.19 (tight) | 0.231px | Regular card headings | +| Nav Heading | SF Pro Text | 34px (2.13rem) | 600 | 1.47 | -0.374px | Large navigation headings | +| Sub-nav | SF Pro Text | 24px (1.50rem) | 300 | 1.50 | normal | Light sub-navigation text | +| Body | SF Pro Text | 17px (1.06rem) | 400 | 1.47 | -0.374px | Standard reading text | +| Body Emphasis | SF Pro Text | 17px (1.06rem) | 600 | 1.24 (tight) | -0.374px | Emphasized body text, labels | +| Button Large | SF Pro Text | 18px (1.13rem) | 300 | 1.00 (tight) | normal | Large button text, light weight | +| Button | SF Pro Text | 17px (1.06rem) | 400 | 2.41 (relaxed) | normal | Standard button text | +| Link | SF Pro Text | 14px (0.88rem) | 400 | 1.43 | -0.224px | Body links, "Learn more" | +| Caption | SF Pro Text | 14px (0.88rem) | 400 | 1.29 (tight) | -0.224px | Secondary text, descriptions | +| Caption Bold | SF Pro Text | 14px (0.88rem) | 600 | 1.29 (tight) | -0.224px | Emphasized captions | +| Micro | SF Pro Text | 12px (0.75rem) | 400 | 1.33 | -0.12px | Fine print, footnotes | +| Micro Bold | SF Pro Text | 12px (0.75rem) | 600 | 1.33 | -0.12px | Bold fine print | +| Nano | SF Pro Text | 10px (0.63rem) | 400 | 1.47 | -0.08px | Legal text, smallest size | + +### Principles +- **Optical sizing as philosophy**: SF Pro automatically switches between Display and Text optical sizes. Display versions have wider letter spacing and thinner strokes optimized for large sizes; Text versions are tighter and sturdier for small sizes. This means the font literally changes its DNA based on context. +- **Weight restraint**: The scale spans 300 (light) to 700 (bold) but most text lives at 400 (regular) and 600 (semibold). Weight 300 appears only on large decorative text. Weight 700 is rare, used only for bold card titles. +- **Negative tracking at all sizes**: Unlike most systems that only track headlines, Apple applies subtle negative letter-spacing even at body sizes (-0.374px at 17px, -0.224px at 14px, -0.12px at 12px). This creates universally tight, efficient text. +- **Extreme line-height range**: Headlines compress to 1.07 while body text opens to 1.47, and some button contexts stretch to 2.41. This dramatic range creates clear visual hierarchy through rhythm alone. + +## 4. Component Stylings + +### Buttons + +**Primary Blue (CTA)** +- Background: `#0071e3` (Apple Blue) +- Text: `#ffffff` +- Padding: 8px 15px +- Radius: 8px +- Border: 1px solid transparent +- Font: SF Pro Text, 17px, weight 400 +- Hover: background brightens slightly +- Active: `#ededf2` background shift +- Focus: `2px solid var(--sk-focus-color, #0071E3)` outline +- Use: Primary call-to-action ("Buy", "Shop iPhone") + +**Primary Dark** +- Background: `#1d1d1f` +- Text: `#ffffff` +- Padding: 8px 15px +- Radius: 8px +- Font: SF Pro Text, 17px, weight 400 +- Use: Secondary CTA, dark variant + +**Pill Link (Learn More / Shop)** +- Background: transparent +- Text: `#0066cc` (light bg) or `#2997ff` (dark bg) +- Radius: 980px (full pill) +- Border: 1px solid `#0066cc` +- Font: SF Pro Text, 14px-17px +- Hover: underline decoration +- Use: "Learn more" and "Shop" links — the signature Apple inline CTA + +**Filter / Search Button** +- Background: `#fafafc` +- Text: `rgba(0, 0, 0, 0.8)` +- Padding: 0px 14px +- Radius: 11px +- Border: 3px solid `rgba(0, 0, 0, 0.04)` +- Focus: `2px solid var(--sk-focus-color, #0071E3)` outline +- Use: Search bars, filter controls + +**Media Control** +- Background: `rgba(210, 210, 215, 0.64)` +- Text: `rgba(0, 0, 0, 0.48)` +- Radius: 50% (circular) +- Active: scale(0.9), background shifts +- Focus: `2px solid var(--sk-focus-color, #0071e3)` outline, white bg, black text +- Use: Play/pause, carousel arrows + +### Cards & Containers +- Background: `#f5f5f7` (light) or `#272729`-`#2a2a2d` (dark) +- Border: none (borders are rare in Apple's system) +- Radius: 5px-8px +- Shadow: `rgba(0, 0, 0, 0.22) 3px 5px 30px 0px` for elevated product cards +- Content: centered, generous padding +- Hover: no standard hover state — cards are static, links within them are interactive + +### Navigation +- Background: `rgba(0, 0, 0, 0.8)` (translucent dark) with `backdrop-filter: saturate(180%) blur(20px)` +- Height: 48px (compact) +- Text: `#ffffff` at 12px, weight 400 +- Active: underline on hover +- Logo: Apple logomark (SVG) centered or left-aligned, 17x48px viewport +- Mobile: collapses to hamburger with full-screen overlay menu +- The nav floats above content, maintaining its dark translucent glass regardless of section background + +### Image Treatment +- Products on solid-color fields (black or white) — no backgrounds, no context, just the object +- Full-bleed section images that span the entire viewport width +- Product photography at extremely high resolution with subtle shadows +- Lifestyle images confined to rounded-corner containers (12px+ radius) + +### Distinctive Components + +**Product Hero Module** +- Full-viewport-width section with solid background (black or `#f5f5f7`) +- Product name as the primary headline (SF Pro Display, 56px, weight 600) +- One-line descriptor below in lighter weight +- Two pill CTAs side by side: "Learn more" (outline) and "Buy" / "Shop" (filled) + +**Product Grid Tile** +- Square or near-square card on contrasting background +- Product image dominating 60-70% of the tile +- Product name + one-line description below +- "Learn more" and "Shop" link pair at bottom + +**Feature Comparison Strip** +- Horizontal scroll of product variants +- Each variant as a vertical card with image, name, and key specs +- Minimal chrome — the products speak for themselves + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 2px, 4px, 5px, 6px, 7px, 8px, 9px, 10px, 11px, 14px, 15px, 17px, 20px, 24px +- Notable characteristic: the scale is dense at small sizes (2-11px) with granular 1px increments, then jumps in larger steps. This allows precise micro-adjustments for typography and icon alignment. + +### Grid & Container +- Max content width: approximately 980px (the recurring "980px radius" in pill buttons echoes this width) +- Hero: full-viewport-width sections with centered content block +- Product grids: 2-3 column layouts within centered container +- Single-column for hero moments — one product, one message, full attention +- No visible grid lines or gutters — spacing creates implied structure + +### Whitespace Philosophy +- **Cinematic breathing room**: Each product section occupies a full viewport height (or close to it). The whitespace between products is not empty — it is the pause between scenes in a film. +- **Vertical rhythm through color blocks**: Rather than using spacing alone to separate sections, Apple uses alternating background colors (black, `#f5f5f7`, white). Each color change signals a new "scene." +- **Compression within, expansion between**: Text blocks are tightly set (negative letter-spacing, tight line-heights) while the space surrounding them is vast. This creates a tension between density and openness. + +### Border Radius Scale +- Micro (5px): Small containers, link tags +- Standard (8px): Buttons, product cards, image containers +- Comfortable (11px): Search inputs, filter buttons +- Large (12px): Feature panels, lifestyle image containers +- Full Pill (980px): CTA links ("Learn more", "Shop"), navigation pills +- Circle (50%): Media controls (play/pause, arrows) + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, solid background | Standard content sections, text blocks | +| Navigation Glass | `backdrop-filter: saturate(180%) blur(20px)` on `rgba(0,0,0,0.8)` | Sticky navigation bar — the glass effect | +| Subtle Lift (Level 1) | `rgba(0, 0, 0, 0.22) 3px 5px 30px 0px` | Product cards, floating elements | +| Media Control | `rgba(210, 210, 215, 0.64)` background with scale transforms | Play/pause buttons, carousel controls | +| Focus (Accessibility) | `2px solid #0071e3` outline | Keyboard focus on all interactive elements | + +**Shadow Philosophy**: Apple uses shadow extremely sparingly. The primary shadow (`3px 5px 30px` with 0.22 opacity) is soft, wide, and offset — mimicking a diffused studio light casting a natural shadow beneath a physical object. This reinforces the "product as physical sculpture" metaphor. Most elements have NO shadow at all; elevation comes from background color contrast (dark card on darker background, or light card on slightly different gray). + +### Decorative Depth +- Navigation glass: the translucent, blurred navigation bar is the most recognizable depth element, creating a sense of floating UI above scrolling content +- Section color transitions: depth is implied by the alternation between black and light gray sections rather than by shadows +- Product photography shadows: the products themselves cast shadows in their photography, so the UI doesn't need to add synthetic ones + +## 7. Do's and Don'ts + +### Do +- Use SF Pro Display at 20px+ and SF Pro Text below 20px — respect the optical sizing boundary +- Apply negative letter-spacing at all text sizes (not just headlines) — Apple tracks tight universally +- Use Apple Blue (`#0071e3`) ONLY for interactive elements — it must be the singular accent +- Alternate between black and light gray (`#f5f5f7`) section backgrounds for cinematic rhythm +- Use 980px pill radius for CTA links — the signature Apple link shape +- Keep product imagery on solid-color fields with no competing visual elements +- Use the translucent dark glass (`rgba(0,0,0,0.8)` + blur) for sticky navigation +- Compress headline line-heights to 1.07-1.14 — Apple headlines are famously tight + +### Don't +- Don't introduce additional accent colors — the entire chromatic budget is spent on blue +- Don't use heavy shadows or multiple shadow layers — Apple's shadow system is one soft diffused shadow or nothing +- Don't use borders on cards or containers — Apple almost never uses visible borders (except on specific buttons) +- Don't apply wide letter-spacing to SF Pro — it is designed to run tight at every size +- Don't use weight 800 or 900 — the maximum is 700 (bold), and even that is rare +- Don't add textures, patterns, or gradients to backgrounds — solid colors only +- Don't make the navigation opaque — the glass blur effect is essential to the Apple UI identity +- Don't center-align body text — Apple body copy is left-aligned; only headlines center +- Don't use rounded corners larger than 12px on rectangular elements (980px is for pills only) + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Small Mobile | <360px | Minimum supported, single column | +| Mobile | 360-480px | Standard mobile layout | +| Mobile Large | 480-640px | Wider single column, larger images | +| Tablet Small | 640-834px | 2-column product grids begin | +| Tablet | 834-1024px | Full tablet layout, expanded nav | +| Desktop Small | 1024-1070px | Standard desktop layout begins | +| Desktop | 1070-1440px | Full layout, max content width | +| Large Desktop | >1440px | Centered with generous margins | + +### Touch Targets +- Primary CTAs: 8px 15px padding creating ~44px touch height +- Navigation links: 48px height with adequate spacing +- Media controls: 50% radius circular buttons, minimum 44x44px +- "Learn more" pills: generous padding for comfortable tapping + +### Collapsing Strategy +- Hero headlines: 56px Display → 40px → 28px on mobile, maintaining tight line-height proportionally +- Product grids: 3-column → 2-column → single column stacked +- Navigation: full horizontal nav → compact mobile menu (hamburger) +- Product hero modules: full-bleed maintained at all sizes, text scales down +- Section backgrounds: maintain full-width color blocks at all breakpoints — the cinematic rhythm never breaks +- Image sizing: products scale proportionally, never crop — the product silhouette is sacred + +### Image Behavior +- Product photography maintains aspect ratio at all breakpoints +- Hero product images scale down but stay centered +- Full-bleed section backgrounds persist at every size +- Lifestyle images may crop on mobile but maintain their rounded corners +- Lazy loading for below-fold product images + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA: Apple Blue (`#0071e3`) +- Page background (light): `#f5f5f7` +- Page background (dark): `#000000` +- Heading text (light): `#1d1d1f` +- Heading text (dark): `#ffffff` +- Body text: `rgba(0, 0, 0, 0.8)` on light, `#ffffff` on dark +- Link (light bg): `#0066cc` +- Link (dark bg): `#2997ff` +- Focus ring: `#0071e3` +- Card shadow: `rgba(0, 0, 0, 0.22) 3px 5px 30px 0px` + +### Example Component Prompts +- "Create a hero section on black background. Headline at 56px SF Pro Display weight 600, line-height 1.07, letter-spacing -0.28px, color white. One-line subtitle at 21px SF Pro Display weight 400, line-height 1.19, color white. Two pill CTAs: 'Learn more' (transparent bg, white text, 1px solid white border, 980px radius) and 'Buy' (Apple Blue #0071e3 bg, white text, 8px radius, 8px 15px padding)." +- "Design a product card: #f5f5f7 background, 8px border-radius, no border, no shadow. Product image top 60% of card on solid background. Title at 28px SF Pro Display weight 400, letter-spacing 0.196px, line-height 1.14. Description at 14px SF Pro Text weight 400, color rgba(0,0,0,0.8). 'Learn more' and 'Shop' links in #0066cc at 14px." +- "Build the Apple navigation: sticky, 48px height, background rgba(0,0,0,0.8) with backdrop-filter: saturate(180%) blur(20px). Links at 12px SF Pro Text weight 400, white text. Apple logo left, links centered, search and bag icons right." +- "Create an alternating section layout: first section black bg with white text and centered product image, second section #f5f5f7 bg with #1d1d1f text. Each section near full-viewport height with 56px headline and two pill CTAs below." +- "Design a 'Learn more' link: text #0066cc on light bg or #2997ff on dark bg, 14px SF Pro Text, underline on hover. After the text, include a right-arrow chevron character (>). Wrap in a container with 980px border-radius for pill shape when used as a standalone CTA." + +### Iteration Guide +1. Every interactive element gets Apple Blue (`#0071e3`) — no other accent colors +2. Section backgrounds alternate: black for immersive moments, `#f5f5f7` for informational moments +3. Typography optical sizing: SF Pro Display at 20px+, SF Pro Text below — never mix +4. Negative letter-spacing at all sizes: -0.28px at 56px, -0.374px at 17px, -0.224px at 14px, -0.12px at 12px +5. The navigation glass effect (translucent dark + blur) is non-negotiable — it defines the Apple web experience +6. Products always appear on solid color fields — never on gradients, textures, or lifestyle backgrounds in hero modules +7. Shadow is rare and always soft: `3px 5px 30px 0.22 opacity` or nothing at all +8. Pill CTAs use 980px radius — this creates the signature Apple rounded-rectangle-that-looks-like-a-capsule shape diff --git a/design-md/apple/README.md b/design-md/apple/README.md new file mode 100644 index 0000000..36e8668 --- /dev/null +++ b/design-md/apple/README.md @@ -0,0 +1,25 @@ +# Apple — Design System + +> Design.md extracted from the public [apple](https://apple.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 Apple 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 +![Apple Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/apple/preview-dark-screenshot.png) + +### Light Mode +![Apple Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/apple/preview-screenshot.png) diff --git a/design-md/apple/preview-dark.html b/design-md/apple/preview-dark.html new file mode 100644 index 0000000..d495048 --- /dev/null +++ b/design-md/apple/preview-dark.html @@ -0,0 +1,422 @@ + + + + + +Design System Preview: Apple (Dark) + + + + + + + + +
Dark Mode
+ +
+

Design System
Inspired by Apple

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Pure Black
#000000
Hero backgrounds
+
Light Gray
#f5f5f7
Alternate sections
+
Near Black
#1d1d1f
Primary text, dark buttons
+
White
#ffffff
Text on dark, button text
+
+ +
Interactive
+
+
Apple Blue
#0071e3
Primary CTA, focus ring
+
Link Blue
#0066cc
Inline text links
+
Bright Blue
#2997ff
Links on dark bg
+
+ +
Text & Surface
+
+
Black 80%
rgba(0,0,0,0.8)
Secondary text
+
Black 48%
rgba(0,0,0,0.48)
Tertiary text
+
Filter BG
#fafafc
Search/filter buttons
+
Button Active
#ededf2
Pressed state
+
+ +
Dark Surfaces
+
+
Surface 1
#272729
Dark section cards
+
Surface 2
#28282a
Dark elevated cards
+
Surface 3
#2a2a2d
Highest dark elevation
+
Surface 4
#242426
Deepest dark tone
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 56px / 600 / 1.07 / -0.28px / SF Pro Display
+
Section Heading
Section Heading -- 40px / 600 / 1.10 / normal / SF Pro Display
+
Tile Heading
Tile Heading -- 28px / 400 / 1.14 / 0.196px / SF Pro Display
+
Card Title Bold
Card Title Bold -- 21px / 700 / 1.19 / 0.231px / SF Pro Display
+
Card Title Regular
Card Title Regular -- 21px / 400 / 1.19 / 0.231px / SF Pro Display
+
Body -- The all-new design brings incredible capability. Powerful features let you do more than ever.
Body -- 17px / 400 / 1.47 / -0.374px / SF Pro Text
+
Body Emphasis -- Featured highlights
Body Emphasis -- 17px / 600 / 1.24 / -0.374px / SF Pro Text
+
Link / Caption -- Learn more about the latest features
Link / Caption -- 14px / 400 / 1.43 / -0.224px / SF Pro Text
+
Micro -- Legal text, footnotes, and fine print
Micro -- 12px / 400 / 1.33 / -0.12px / SF Pro Text
+
Nano -- smallest size, regulatory labels
Nano -- 10px / 400 / 1.47 / -0.08px / SF Pro Text
+
+ +
+ +
+ +

Button Variants

+
+
Buy
Primary Blue
+
Learn more
Outline Pill
+
Shop iPhone
Light Fill
+
Search
Filter
+
Media
+
Learn more >
Link Pill
+
+
+ +
+ +
+
+ +

Cards on Dark Background

+
+
+

iPhone

+

Designed to be extraordinary. Featuring the most advanced chip, an incredible camera system, and all-day battery life.

+ Learn more > +
+
+

MacBook Neo

+

Supercharged for pros. The most powerful MacBook ever with the M-series chip delivers unprecedented performance.

+ Learn more > +
+
+

iPad Air

+

Powerful and colorful. With the latest chip, stunning Liquid Retina display, and Apple Pencil support.

+ Learn more > +
+
+
+
+ +
+
+ +

Cards on Gray Background

+
+
+

AirPods Max

+

High-fidelity audio with active noise cancellation, spatial audio, and computational audio for immersive listening.

+ Learn more > +
+
+

Apple Watch

+

The ultimate device for a healthy life. Advanced health sensors, fitness metrics, and seamless connectivity.

+ Learn more > +
+
+

Apple TV+

+

Original shows and movies from the world's greatest storytellers. Stream on all your favorite devices.

+ Learn more > +
+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (blue ring)
+
Error (red ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
10
+
14
+
17
+
20
+
24
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
5px
Micro
+
8px
Buttons, Cards
+
11px
Search
+
12px
Features
+
980px
Pills
+
50%
Media
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow, solid bg
+
Nav Glass
Translucent + blur
+
Card Shadow
3px 5px 30px 0.5
+
Focus
2px solid Bright Blue
+
Dark Surface
#2a2a2d
+
+
+ + + + + diff --git a/design-md/apple/preview.html b/design-md/apple/preview.html new file mode 100644 index 0000000..a2396fc --- /dev/null +++ b/design-md/apple/preview.html @@ -0,0 +1,416 @@ + + + + + +Design System Preview: Apple (Light) + + + + + + + + + +
+

Design System
Inspired by Apple

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Pure Black
#000000
Hero backgrounds
+
Light Gray
#f5f5f7
Alternate sections
+
Near Black
#1d1d1f
Primary text, dark buttons
+
White
#ffffff
Text on dark, button text
+
+ +
Interactive
+
+
Apple Blue
#0071e3
Primary CTA, focus ring
+
Link Blue
#0066cc
Inline text links
+
Bright Blue
#2997ff
Links on dark bg
+
+ +
Text & Surface
+
+
Black 80%
rgba(0,0,0,0.8)
Secondary text
+
Black 48%
rgba(0,0,0,0.48)
Tertiary text
+
Filter BG
#fafafc
Search/filter buttons
+
Button Active
#ededf2
Pressed state
+
+ +
Dark Surfaces
+
+
Surface 1
#272729
Dark section cards
+
Surface 2
#28282a
Dark elevated cards
+
Surface 3
#2a2a2d
Highest dark elevation
+
Surface 4
#242426
Deepest dark tone
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 56px / 600 / 1.07 / -0.28px / SF Pro Display
+
Section Heading
Section Heading -- 40px / 600 / 1.10 / normal / SF Pro Display
+
Tile Heading
Tile Heading -- 28px / 400 / 1.14 / 0.196px / SF Pro Display
+
Card Title Bold
Card Title Bold -- 21px / 700 / 1.19 / 0.231px / SF Pro Display
+
Card Title Regular
Card Title Regular -- 21px / 400 / 1.19 / 0.231px / SF Pro Display
+
Body -- The all-new design brings incredible capability. Powerful features let you do more than ever.
Body -- 17px / 400 / 1.47 / -0.374px / SF Pro Text
+
Body Emphasis -- Featured highlights
Body Emphasis -- 17px / 600 / 1.24 / -0.374px / SF Pro Text
+
Link / Caption -- Learn more about the latest features
Link / Caption -- 14px / 400 / 1.43 / -0.224px / SF Pro Text
+
Micro -- Legal text, footnotes, and fine print
Micro -- 12px / 400 / 1.33 / -0.12px / SF Pro Text
+
Nano -- smallest size, regulatory labels
Nano -- 10px / 400 / 1.47 / -0.08px / SF Pro Text
+
+ +
+ +
+ +

Button Variants

+
+
Buy
Primary Blue
+
Learn more
Outline Pill
+
Shop iPhone
Dark Fill
+
Search
Filter
+
Media
+
Learn more >
Link Pill
+
+
+ +
+ +
+
+ +

Cards on Dark Background

+
+
+

iPhone

+

Designed to be extraordinary. Featuring the most advanced chip, an incredible camera system, and all-day battery life.

+ Learn more > +
+
+

MacBook Neo

+

Supercharged for pros. The most powerful MacBook ever with the M-series chip delivers unprecedented performance.

+ Learn more > +
+
+

iPad Air

+

Powerful and colorful. With the latest chip, stunning Liquid Retina display, and Apple Pencil support.

+ Learn more > +
+
+
+
+ +
+
+ +

Cards on Light Background

+
+
+

AirPods Max

+

High-fidelity audio with active noise cancellation, spatial audio, and computational audio for immersive listening.

+ Learn more > +
+
+

Apple Watch

+

The ultimate device for a healthy life. Advanced health sensors, fitness metrics, and seamless connectivity.

+ Learn more > +
+
+

Apple TV+

+

Original shows and movies from the world's greatest storytellers. Stream on all your favorite devices.

+ Learn more > +
+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (blue ring)
+
Error (red ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
10
+
14
+
17
+
20
+
24
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
5px
Micro
+
8px
Buttons, Cards
+
11px
Search
+
12px
Features
+
980px
Pills
+
50%
Media
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow, solid bg
+
Nav Glass
Translucent + blur
+
Card Shadow
3px 5px 30px 0.22
+
Focus
2px solid Apple Blue
+
Dark Surface
#272729
+
+
+ + + + + diff --git a/design-md/claude/DESIGN.md b/design-md/claude/DESIGN.md new file mode 100644 index 0000000..a12d89d --- /dev/null +++ b/design-md/claude/DESIGN.md @@ -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 diff --git a/design-md/claude/README.md b/design-md/claude/README.md new file mode 100644 index 0000000..f852ade --- /dev/null +++ b/design-md/claude/README.md @@ -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 +![Claude Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/claude/preview-dark-screenshot.png) + +### Light Mode +![Claude Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/claude/preview-screenshot.png) diff --git a/design-md/claude/preview-dark.html b/design-md/claude/preview-dark.html new file mode 100644 index 0000000..13d7c7e --- /dev/null +++ b/design-md/claude/preview-dark.html @@ -0,0 +1,803 @@ + + + + + +Design System Preview: Claude / Anthropic (Dark) + + + + + + + + +
+

Design System Preview:
Claude

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Anthropic Near Black
+
#141413
+
Primary text, dark-theme surface
+
+
+
+
+
+
Terracotta Brand
+
#c96442
+
Core brand color, primary CTA buttons
+
+
+
+
+
+
Coral Accent
+
#d97757
+
Text accents, links on dark surfaces
+
+
+
+
+ +
+

Secondary & Accent

+
+
+
+
+
Error Crimson
+
#b53333
+
Error states, warm red
+
+
+
+
+
+
Focus Blue
+
#3898ec
+
Input focus rings (only cool color)
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Parchment
+
#f5f4ed
+
Primary page background (light mode)
+
+
+
+
+
+
Ivory
+
#faf9f5
+
Card surfaces, elevated containers
+
+
+
+
+
+
Pure White
+
#ffffff
+
Button surfaces, max contrast
+
+
+
+
+
+
Warm Sand
+
#e8e6dc
+
Button backgrounds, interactive surfaces
+
+
+
+
+
+
Dark Surface
+
#30302e
+
Dark-theme containers, card backgrounds
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Charcoal Warm
+
#4d4c48
+
Button text on light surfaces
+
+
+
+
+
+
Olive Gray
+
#5e5d59
+
Secondary body text (light mode)
+
+
+
+
+
+
Stone Gray
+
#87867f
+
Secondary text (dark), tertiary (light)
+
+
+
+
+
+
Dark Warm
+
#3d3d3a
+
Dark text links, emphasized secondary
+
+
+
+
+
+
Warm Silver
+
#b0aea5
+
Tertiary text on dark surfaces
+
+
+
+
+ +
+

Semantic & Borders

+
+
+
+
+
Border Cream
+
#f0eee6
+
Standard light-theme border
+
+
+
+
+
+
Border Warm
+
#e8e6dc
+
Prominent borders, section dividers
+
+
+
+
+
+
Ring Warm
+
#d1cfc5
+
Button hover/focus ring shadow
+
+
+
+
+
+
Ring Deep
+
#c2c0b6
+
Active/pressed ring states
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — 64px / 500 / 1.10 / normal — Anthropic Serif (Georgia fallback)
+
+ +
+
Section Heading
+
Section Heading — 52px / 500 / 1.20 / normal — Anthropic Serif
+
+ +
+
Sub-heading Large
+
Sub-heading Large — 36px / 500 / 1.30 / normal — Anthropic Serif
+
+ +
+
Sub-heading
+
Sub-heading — 32px / 500 / 1.10 / normal — Anthropic Serif
+
+ +
+
Sub-heading Small
+
Sub-heading Small — 25px / 500 / 1.20 / normal — Anthropic Serif
+
+ +
+
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.
+
Body Serif — 17px / 400 / 1.60 / normal — Anthropic Serif
+
+ +
+
Body Large Sans
+
Body Large — 20px / 400 / 1.60 / normal — Anthropic Sans (Arial fallback)
+
+ +
+
Standard body text for UI copy, navigation, and button labels. Anthropic Sans handles all functional text with quiet efficiency.
+
Body Standard — 16px / 400 / 1.60 / normal — Anthropic Sans
+
+ +
+
Caption and metadata text for descriptions
+
Caption — 14px / 400 / 1.43 / normal — Anthropic Sans
+
+ +
+
LABEL TEXT
+
Label — 12px / 500 / 1.60 / 0.12px — Anthropic Sans
+
+ +
+
const response = await claude.messages.create()
+
Code — 15px / 400 / 1.60 / -0.32px — Anthropic Mono (SFMono fallback)
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Warm Sand (Secondary)
+
+
+ +
White Surface
+
+
+ +
Dark Charcoal
+
+
+ +
Terracotta Brand
+
+
+ +
Dark Primary
+
+
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Dark Surface Contained

+

Standard content card with 1px solid Dark Surface border and 12px radius. The default container on the dark Near Black canvas.

+
+
+
Whisper Shadow
+

Soft Elevated Card

+

Elevated card with deeper shadow on dark surfaces. The 0.20 opacity and 24px blur create subtle depth against the dark canvas.

+
+
+
Ring Shadow
+

Warm Ring Halo

+

Interactive card using the signature ring shadow. On dark surfaces the ring uses Charcoal Warm for a subtle warm boundary.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale: 3px, 4px, 6px, 8px, 10px, 12px, 16px, 20px, 24px, 30px.

+ +
+
3px
+
4px
+
6px
+
8px
+
10px
+
12px
+
16px
+
20px
+
24px
+
30px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+ +
+
4px
Sharp
+
6px
Subtly rounded
+
8px
Comfortably rounded
+
12px
Generously rounded
+
16px
Very rounded
+
24px
Highly rounded
+
32px
Maximum rounded
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow, no border. Near Black background and inline text.
+
Level 0
+
+
+
Contained
1px solid Dark Surface. Standard cards and sections.
+
Level 1
+
+
+
Ring
0px 0px 0px 1px ring shadow using Charcoal Warm. Interactive cards, buttons, hover states.
+
Level 2
+
+
+
Whisper
rgba(0,0,0,0.20) 0px 4px 24px. Deeper shadow on dark canvas for elevated cards.
+
Level 3
+
+
+
Inset
inset 0px 0px 0px 1px at 10% white opacity. Active/pressed button states on dark.
+
Level 4
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/design-md/claude/preview.html b/design-md/claude/preview.html new file mode 100644 index 0000000..f8323cf --- /dev/null +++ b/design-md/claude/preview.html @@ -0,0 +1,826 @@ + + + + + +Design System Preview: Claude / Anthropic (Light) + + + + + + + + +
+

Design System Preview:
Claude

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Anthropic Near Black
+
#141413
+
Primary text, dark-theme surface
+
+
+
+
+
+
Terracotta Brand
+
#c96442
+
Core brand color, primary CTA buttons
+
+
+
+
+
+
Coral Accent
+
#d97757
+
Text accents, links on dark surfaces
+
+
+
+
+ +
+

Secondary & Accent

+
+
+
+
+
Error Crimson
+
#b53333
+
Error states, warm red
+
+
+
+
+
+
Focus Blue
+
#3898ec
+
Input focus rings (only cool color)
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Parchment
+
#f5f4ed
+
Primary page background
+
+
+
+
+
+
Ivory
+
#faf9f5
+
Card surfaces, elevated containers
+
+
+
+
+
+
Pure White
+
#ffffff
+
Button surfaces, max contrast
+
+
+
+
+
+
Warm Sand
+
#e8e6dc
+
Button backgrounds, interactive surfaces
+
+
+
+
+
+
Dark Surface
+
#30302e
+
Dark-theme containers, nav borders
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Charcoal Warm
+
#4d4c48
+
Button text on light surfaces
+
+
+
+
+
+
Olive Gray
+
#5e5d59
+
Secondary body text
+
+
+
+
+
+
Stone Gray
+
#87867f
+
Tertiary text, footnotes, metadata
+
+
+
+
+
+
Dark Warm
+
#3d3d3a
+
Dark text links, emphasized secondary
+
+
+
+
+
+
Warm Silver
+
#b0aea5
+
Text on dark surfaces
+
+
+
+
+ +
+

Semantic & Borders

+
+
+
+
+
Border Cream
+
#f0eee6
+
Standard light-theme border
+
+
+
+
+
+
Border Warm
+
#e8e6dc
+
Prominent borders, section dividers
+
+
+
+
+
+
Ring Warm
+
#d1cfc5
+
Button hover/focus ring shadow
+
+
+
+
+
+
Ring Deep
+
#c2c0b6
+
Active/pressed ring states
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — 64px / 500 / 1.10 / normal — Anthropic Serif (Georgia fallback)
+
+ +
+
Section Heading
+
Section Heading — 52px / 500 / 1.20 / normal — Anthropic Serif
+
+ +
+
Sub-heading Large
+
Sub-heading Large — 36px / 500 / 1.30 / normal — Anthropic Serif
+
+ +
+
Sub-heading
+
Sub-heading — 32px / 500 / 1.10 / normal — Anthropic Serif
+
+ +
+
Sub-heading Small
+
Sub-heading Small — 25px / 500 / 1.20 / normal — Anthropic Serif
+
+ +
+
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.
+
Body Serif — 17px / 400 / 1.60 / normal — Anthropic Serif
+
+ +
+
Body Large Sans
+
Body Large — 20px / 400 / 1.60 / normal — Anthropic Sans (Arial fallback)
+
+ +
+
Standard body text for UI copy, navigation, and button labels. Anthropic Sans handles all functional text with quiet efficiency.
+
Body Standard — 16px / 400 / 1.60 / normal — Anthropic Sans
+
+ +
+
Caption and metadata text for descriptions
+
Caption — 14px / 400 / 1.43 / normal — Anthropic Sans
+
+ +
+
LABEL TEXT
+
Label — 12px / 500 / 1.60 / 0.12px — Anthropic Sans
+
+ +
+
const response = await claude.messages.create()
+
Code — 15px / 400 / 1.60 / -0.32px — Anthropic Mono (SFMono fallback)
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Warm Sand (Secondary)
+
+
+ +
White Surface
+
+
+ +
Dark Charcoal
+
+
+ +
Terracotta Brand
+
+
+ +
Dark Primary
+
+
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Border Cream Contained

+

Standard content card with 1px solid Border Cream and 8px radius. The default container for features and content sections on Ivory surface.

+
+
+
Whisper Shadow
+

Soft Elevated Card

+

Elevated card with whisper-soft shadow at 0.05 opacity and 24px blur. Suggests floating rather than casting. For featured product screenshots.

+
+
+
Ring Shadow
+

Warm Ring Halo

+

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.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale: 3px, 4px, 6px, 8px, 10px, 12px, 16px, 20px, 24px, 30px.

+ +
+
3px
+
4px
+
6px
+
8px
+
10px
+
12px
+
16px
+
20px
+
24px
+
30px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+ +
+
4px
Sharp
+
6px
Subtly rounded
+
8px
Comfortably rounded
+
12px
Generously rounded
+
16px
Very rounded
+
24px
Highly rounded
+
32px
Maximum rounded
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow, no border. Parchment background and inline text.
+
Level 0
+
+
+
Contained
1px solid Border Cream. Standard cards and sections.
+
Level 1
+
+
+
Ring
0px 0px 0px 1px ring shadow using warm grays. Interactive cards, buttons, hover states.
+
Level 2
+
+
+
Whisper
rgba(0,0,0,0.05) 0px 4px 24px. Elevated feature cards, product screenshots.
+
Level 3
+
+
+
Inset
inset 0px 0px 0px 1px at 15% opacity. Active/pressed button states.
+
Level 4
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/design-md/clickhouse/DESIGN.md b/design-md/clickhouse/DESIGN.md new file mode 100644 index 0000000..b044df4 --- /dev/null +++ b/design-md/clickhouse/DESIGN.md @@ -0,0 +1,281 @@ +# Design System: ClickHouse + +## 1. Visual Theme & Atmosphere + +ClickHouse's interface is a high-performance cockpit rendered in acid yellow-green on obsidian black — a design that screams "speed" before you read a single word. The entire experience lives in darkness: pure black backgrounds (`#000000`) with dark charcoal cards (`#414141` borders) creating a terminal-grade aesthetic where the only chromatic interruption is the signature neon yellow-green (`#faff69`) that slashes across CTAs, borders, and highlighted moments like a highlighter pen on a dark console. + +The typography is aggressively heavy — Inter at weight 900 (Black) for the hero headline at 96px creates text blocks that feel like they have physical mass. This "database for AI" site communicates raw power through visual weight: thick type, high-contrast neon accents, and performance stats displayed as oversized numbers. There's nothing subtle about ClickHouse's design, and that's entirely the point — it mirrors the product's promise of extreme speed and performance. + +What makes ClickHouse distinctive is the electrifying tension between the near-black canvas and the neon yellow-green accent. This color combination (`#faff69` on `#000000`) creates one of the highest-contrast pairings in any tech brand, making every CTA button, every highlighted card, and every accent border impossible to miss. Supporting this is a forest green (`#166534`) for secondary CTAs that adds depth to the action hierarchy without competing with the neon. + +**Key Characteristics:** +- Pure black canvas (#000000) with neon yellow-green (#faff69) accent — maximum contrast +- Extra-heavy display typography: Inter at weight 900 (Black) up to 96px +- Dark charcoal card system with #414141 borders at 80% opacity +- Forest green (#166534) secondary CTA buttons +- Performance stats as oversized display numbers +- Uppercase labels with wide letter-spacing (1.4px) for navigation structure +- Active/pressed state shifts text to pale yellow (#f4f692) +- All links hover to neon yellow-green — unified interactive signal +- Inset shadows on select elements creating "pressed into the surface" depth + +## 2. Color Palette & Roles + +### Primary +- **Neon Volt** (`#faff69`): The signature brand color — a vivid acid yellow-green that's the sole chromatic accent on the black canvas. Used for primary CTAs, accent borders, link hovers, and highlighted moments. +- **Forest Green** (`#166534`): Secondary CTA color — a deep, saturated green for "Get Started" and primary action buttons that need distinction from the neon. +- **Dark Forest** (`#14572f`): A darker green variant for borders and secondary accents. + +### Secondary & Accent +- **Pale Yellow** (`#f4f692`): Active/pressed state text color — a softer, more muted version of Neon Volt for state feedback. +- **Border Olive** (`#4f5100`): A dark olive-yellow for ghost button borders — the neon's muted sibling. +- **Olive Dark** (`#161600`): The darkest neon-tinted color for subtle brand text. + +### Surface & Background +- **Pure Black** (`#000000`): The primary page background — absolute black for maximum contrast. +- **Near Black** (`#141414`): Button backgrounds and slightly elevated dark surfaces. +- **Charcoal** (`#414141`): The primary border color at 80% opacity — the workhorse for card and container containment. +- **Deep Charcoal** (`#343434`): Darker border variant for subtle division lines. +- **Hover Gray** (`#3a3a3a`): Button hover state background — slightly lighter than Near Black. + +### Neutrals & Text +- **Pure White** (`#ffffff`): Primary text on dark surfaces. +- **Silver** (`#a0a0a0`): Secondary body text and muted content. +- **Mid Gray** (`#585858` at 28%): Subtle gray overlay for depth effects. +- **Border Gray** (`#e5e7eb`): Light border variant (used in rare light contexts). + +### Gradient System +- **None in the traditional sense.** ClickHouse uses flat color blocks and high-contrast borders. The "gradient" is the contrast itself — neon yellow-green against pure black creates a visual intensity that gradients would dilute. + +## 3. Typography Rules + +### Font Family +- **Primary**: `Inter` (Next.js optimized variant `__Inter_d1b8ee`) +- **Secondary Display**: `Basier` (`__basier_a58b65`), with fallbacks: `Arial, Helvetica` +- **Code**: `Inconsolata` (`__Inconsolata_a25f62`) + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Mega | Inter | 96px (6rem) | 900 | 1.00 (tight) | normal | Maximum impact, extra-heavy | +| Display / Hero | Inter | 72px (4.5rem) | 700 | 1.00 (tight) | normal | Section hero titles | +| Feature Heading | Basier | 36px (2.25rem) | 600 | 1.30 (tight) | normal | Feature section anchors | +| Sub-heading | Inter / Basier | 24px (1.5rem) | 600–700 | 1.17–1.38 | normal | Card headings | +| Feature Title | Inter / Basier | 20px (1.25rem) | 600–700 | 1.40 | normal | Small feature titles | +| Body Large | Inter | 18px (1.13rem) | 400–700 | 1.56 | normal | Intro paragraphs, button text | +| Body / Button | Inter | 16px (1rem) | 400–700 | 1.50 | normal | Standard body, nav, buttons | +| Caption | Inter | 14px (0.88rem) | 400–700 | 1.43 | normal | Metadata, descriptions, links | +| Uppercase Label | Inter | 14px (0.88rem) | 600 | 1.43 | 1.4px | Section overlines, wide-tracked | +| Code | Inconsolata | 16px (1rem) | 600 | 1.50 | normal | Code blocks, commands | +| Small | Inter | 12px (0.75rem) | 500 | 1.33 | normal | Smallest text | +| Micro | Inter | 11.2px (0.7rem) | 500 | 1.79 (relaxed) | normal | Tags, tiny labels | + +### Principles +- **Weight 900 is the weapon**: The display headline uses Inter Black (900) — a weight most sites never touch. Combined with 96px size, this creates text with a physical, almost architectural presence. +- **Full weight spectrum**: The system uses 400, 500, 600, 700, and 900 — covering the full gamut. Weight IS hierarchy. +- **Uppercase with maximum tracking**: Section overlines use 1.4px letter-spacing — wider than most systems — creating bold structural labels that stand out against the dense dark background. +- **Dual sans-serif**: Inter handles display and body; Basier handles feature section headings at 600 weight. This creates a subtle personality shift between "data/performance" (Inter) and "product/feature" (Basier) contexts. + +## 4. Component Stylings + +### Buttons + +**Neon Primary** +- Background: Neon Volt (`#faff69`) +- Text: Near Black (`#151515`) +- Padding: 0px 16px +- Radius: sharp (4px) +- Border: `1px solid #faff69` +- Hover: background shifts to dark (`rgb(29, 29, 29)`), text stays +- Active: text shifts to Pale Yellow (`#f4f692`) +- The eye-catching CTA — neon on black + +**Dark Solid** +- Background: Near Black (`#141414`) +- Text: Pure White (`#ffffff`) +- Padding: 12px 16px +- Radius: 4px or 8px +- Border: `1px solid #141414` +- Hover: bg shifts to Hover Gray (`#3a3a3a`), text to 80% opacity +- Active: text to Pale Yellow +- The standard action button + +**Forest Green** +- Background: Forest Green (`#166534`) +- Text: Pure White (`#ffffff`) +- Padding: 12px 16px +- Border: `1px solid #141414` +- Hover: same dark shift +- Active: Pale Yellow text +- The "Get Started" / primary conversion button + +**Ghost / Outlined** +- Background: transparent +- Text: Pure White (`#ffffff`) +- Padding: 0px 32px +- Radius: 4px +- Border: `1px solid #4f5100` (olive-tinted) +- Hover: dark bg shift +- Active: Pale Yellow text +- Secondary actions with neon-tinted border + +**Pill Toggle** +- Background: transparent +- Radius: pill (9999px) +- Used for toggle/switch elements + +### Cards & Containers +- Background: transparent or Near Black +- Border: `1px solid rgba(65, 65, 65, 0.8)` — the signature charcoal containment +- Radius: 4px (small elements) or 8px (cards, containers) +- Shadow Level 1: subtle (`rgba(0,0,0,0.1) 0px 1px 3px, rgba(0,0,0,0.1) 0px 1px 2px -1px`) +- Shadow Level 2: medium (`rgba(0,0,0,0.1) 0px 10px 15px -3px, rgba(0,0,0,0.1) 0px 4px 6px -4px`) +- Shadow Level 3: inset (`rgba(0,0,0,0.06) 0px 4px 4px, rgba(0,0,0,0.14) 0px 4px 25px inset`) — the "pressed" effect +- Neon-highlighted cards: selected/active cards get neon yellow-green border or accent + +### Navigation +- Dark nav on black background +- Logo: ClickHouse wordmark + icon in yellow/neon +- Links: white text, hover to Neon Volt (#faff69) +- CTA: Neon Volt button or Forest Green button +- Uppercase labels for categories + +### Distinctive Components + +**Performance Stats** +- Oversized numbers (72px+, weight 700–900) +- Brief descriptions beneath +- High-contrast neon accents on key metrics +- The primary visual proof of performance claims + +**Neon-Highlighted Card** +- Standard dark card with neon yellow-green border highlight +- Creates "selected" or "featured" treatment +- The accent border makes the card pop against the dark canvas + +**Code Blocks** +- Dark surface with Inconsolata at weight 600 +- Neon and white syntax highlighting +- Terminal-like aesthetic + +**Trust Bar** +- Company logos on dark background +- Monochrome/white logo treatment +- Horizontal layout + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 2px, 6px, 7px, 8px, 10px, 12px, 16px, 20px, 24px, 25px, 32px, 40px, 44px, 48px, 64px +- Button padding: 12px 16px (standard), 0px 16px (compact), 0px 32px (wide ghost) +- Section vertical spacing: generous (48–64px) + +### Grid & Container +- Max container width: up to 2200px (extra-wide) with responsive scaling +- Hero: full-width dark with massive typography +- Feature sections: multi-column card grids with dark borders +- Stats: horizontal metric bar +- Full-dark page — no light sections + +### Whitespace Philosophy +- **Dark void as canvas**: The pure black background provides infinite depth — elements float in darkness. +- **Dense information**: Feature cards and stats are packed with data, reflecting the database product's performance focus. +- **Neon highlights as wayfinding**: Yellow-green accents guide the eye through the dark interface like runway lights. + +### Border Radius Scale +- Sharp (4px): Buttons, badges, small elements, code blocks +- Comfortable (8px): Cards, containers, dividers +- Pill (9999px): Toggle buttons, status indicators + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | Black background, text blocks | +| Bordered (Level 1) | `1px solid rgba(65,65,65,0.8)` | Standard cards, containers | +| Subtle (Level 2) | `0px 1px 3px rgba(0,0,0,0.1)` | Subtle card lift | +| Elevated (Level 3) | `0px 10px 15px -3px rgba(0,0,0,0.1)` | Feature cards, hover states | +| Pressed/Inset (Level 4) | `0px 4px 25px rgba(0,0,0,0.14) inset` | Active/pressed elements — "sunk into the surface" | +| Neon Highlight (Level 5) | Neon Volt border (`#faff69`) | Featured/selected cards, maximum emphasis | + +**Shadow Philosophy**: ClickHouse uses shadows on a black canvas, where they're barely visible — they exist more for subtle dimensionality than obvious elevation. The most distinctive depth mechanism is the **inset shadow** (Level 4), which creates a "pressed into the surface" effect unique to ClickHouse. The neon border highlight (Level 5) is the primary attention-getting depth mechanism. + +## 7. Do's and Don'ts + +### Do +- Use Neon Volt (#faff69) as the sole chromatic accent — it must pop against pure black +- Use Inter at weight 900 for hero display text — the extreme weight IS the personality +- Keep everything on pure black (#000000) — never use dark gray as the page background +- Use charcoal borders (rgba(65,65,65,0.8)) for all card containment +- Apply Forest Green (#166534) for primary CTA buttons — distinct from neon for action hierarchy +- Show performance stats as oversized display numbers — it's the core visual argument +- Use uppercase with wide letter-spacing (1.4px) for section labels +- Apply Pale Yellow (#f4f692) for active/pressed text states +- Link hovers should ALWAYS shift to Neon Volt — unified interactive feedback + +### Don't +- Don't introduce additional colors — the palette is strictly black, neon, green, and gray +- Don't use the neon as a background fill — it's an accent and border color only (except on CTA buttons) +- Don't reduce display weight below 700 — heavy weight is core to the personality +- Don't use light/white backgrounds anywhere — the entire experience is dark +- Don't round corners beyond 8px — the sharp geometry reflects database precision +- Don't use soft/diffused shadows on black — they're invisible. Use border-based depth instead +- Don't skip the inset shadow on active states — the "pressed" effect is distinctive +- Don't use warm neutrals — all grays are perfectly neutral + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <640px | Single column, stacked cards | +| Small Tablet | 640–768px | Minor adjustments | +| Tablet | 768–1024px | 2-column grids | +| Desktop | 1024–1280px | Standard layout | +| Large Desktop | 1280–1536px | Expanded content | +| Ultra-wide | 1536–2200px | Maximum container width | + +### Touch Targets +- Buttons with 12px 16px padding minimum +- Card surfaces as touch targets +- Adequate nav link spacing + +### Collapsing Strategy +- **Hero text**: 96px → 72px → 48px → 36px +- **Feature grids**: Multi-column → 2 → 1 column +- **Stats**: Horizontal → stacked +- **Navigation**: Full → hamburger + +### Image Behavior +- Product screenshots maintain aspect ratio +- Code blocks use horizontal scroll on narrow screens +- All images on dark backgrounds + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Brand Accent: "Neon Volt (#faff69)" +- Page Background: "Pure Black (#000000)" +- CTA Green: "Forest Green (#166534)" +- Card Border: "Charcoal (rgba(65,65,65,0.8))" +- Primary Text: "Pure White (#ffffff)" +- Secondary Text: "Silver (#a0a0a0)" +- Active State: "Pale Yellow (#f4f692)" +- Button Surface: "Near Black (#141414)" + +### Example Component Prompts +- "Create a hero section on Pure Black (#000000) with a massive headline at 96px Inter weight 900, line-height 1.0. Pure White text. Add a Neon Volt (#faff69) CTA button (dark text, 4px radius, 0px 16px padding) and a ghost button (transparent, 1px solid #4f5100 border)." +- "Design a feature card on black with 1px solid rgba(65,65,65,0.8) border and 8px radius. Title at 24px Inter weight 700, body at 16px in Silver (#a0a0a0). Add a neon-highlighted variant with 1px solid #faff69 border." +- "Build a performance stats bar: large numbers at 72px Inter weight 700 in Pure White. Brief descriptions at 14px in Silver. On black background." +- "Create a Forest Green (#166534) CTA button: white text, 12px 16px padding, 4px radius, 1px solid #141414 border. Hover: bg shifts to #3a3a3a, text to 80% opacity." +- "Design an uppercase section label: 14px Inter weight 600, letter-spacing 1.4px, uppercase. Silver (#a0a0a0) text on black background." + +### Iteration Guide +1. Keep everything on pure black — no dark gray alternatives +2. Neon Volt (#faff69) is for accents and CTAs only — never large backgrounds +3. Weight 900 for hero, 700 for headings, 600 for labels, 400-500 for body +4. Active states use Pale Yellow (#f4f692) — not just opacity changes +5. All links hover to Neon Volt — consistent interactive feedback +6. Charcoal borders (rgba(65,65,65,0.8)) are the primary depth mechanism diff --git a/design-md/clickhouse/README.md b/design-md/clickhouse/README.md new file mode 100644 index 0000000..f1b34be --- /dev/null +++ b/design-md/clickhouse/README.md @@ -0,0 +1,25 @@ +# Clickhouse — Design System + +> Design.md extracted from the public [clickhouse](https://clickhouse.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 Clickhouse 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 +![Clickhouse Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/clickhouse/preview-dark-screenshot.png) + +### Light Mode +![Clickhouse Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/clickhouse/preview-screenshot.png) diff --git a/design-md/clickhouse/preview-dark.html b/design-md/clickhouse/preview-dark.html new file mode 100644 index 0000000..a208341 --- /dev/null +++ b/design-md/clickhouse/preview-dark.html @@ -0,0 +1,834 @@ + + + + + +Design System Preview: ClickHouse (Dark) + + + + + + + + + + + +
+

Design System Preview:
ClickHouse

+

Auto-generated design token catalog from DESIGN.md — Dark mode (native)

+
+ + +
+ + +
+
+
1000x
+
Faster than traditional databases
+
+
+
100+
+
Data formats supported
+
+
+
0.1s
+
Average query response
+
+
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary — Neon Volt Family

+
+
+
+
+
Neon Volt
+
#faff69
+
Signature brand accent, CTAs, accent borders, link hovers
+
+
+
+
+
+
Pale Yellow
+
#f4f692
+
Active/pressed state text color
+
+
+
+
+
+
Border Olive
+
#4f5100
+
Ghost button borders, muted neon sibling
+
+
+
+
+
+
Olive Dark
+
#161600
+
Darkest neon-tinted color for subtle brand text
+
+
+
+
+ +
+

CTA Greens

+
+
+
+
+
Forest Green
+
#166534
+
Secondary CTA buttons, Get Started actions
+
+
+
+
+
+
Dark Forest
+
#14572f
+
Darker green for borders and secondary accents
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Pure Black
+
#000000
+
Primary page background, maximum contrast canvas
+
+
+
+
+
+
Near Black
+
#141414
+
Button backgrounds, slightly elevated surfaces
+
+
+
+
+
+
Hover Gray
+
#3a3a3a
+
Button hover state background
+
+
+
+
+ +
+

Neutrals & Borders

+
+
+
+
+
Pure White
+
#ffffff
+
Primary text on dark surfaces
+
+
+
+
+
+
Silver
+
#a0a0a0
+
Secondary body text, muted content
+
+
+
+
+
+
Charcoal
+
#414141
+
Primary border color at 80% opacity
+
+
+
+
+
+
Deep Charcoal
+
#343434
+
Darker border variant for subtle division
+
+
+
+
+
+
Mid Gray
+
#585858
+
Subtle gray overlay for depth effects (at 28%)
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Mega
+
Display Mega — 96px / 900 (Black) / 1.00 / normal — Inter — EXTREMELY heavy
+
+ +
+
Display Hero
+
Display / Hero — 72px / 700 / 1.00 / normal — Inter
+
+ +
+
Feature Heading
+
Feature Heading — 36px / 600 / 1.30 / normal — Inter (Basier in production)
+
+ +
+
Sub-heading Bold
+
Sub-heading — 24px / 600-700 / 1.17-1.38 / normal — Inter
+
+ +
+
Feature Title
+
Feature Title — 20px / 600-700 / 1.40 / normal — Inter
+
+ +
+
Body large for intro paragraphs and button text. Inter provides geometric precision across the full weight spectrum from 400 to 900.
+
Body Large — 18px / 400-700 / 1.56 / normal — Inter
+
+ +
+
Standard body text for paragraphs, navigation links, and button labels. Weight 400 for reading, 600-700 for UI elements.
+
Body / Button — 16px / 400-700 / 1.50 / normal — Inter
+
+ +
+
Caption and metadata text for descriptions and links
+
Caption — 14px / 400-700 / 1.43 / normal — Inter
+
+ +
+
UPPERCASE SECTION LABEL
+
Uppercase Label — 14px / 600 / 1.43 / 1.4px / uppercase — Inter
+
+ +
+
SELECT count() FROM system.query_log
+
Code — 16px / 600 / 1.50 / normal — Inconsolata
+
+ +
+
Small supporting text
+
Small — 12px / 500 / 1.33 / normal — Inter
+
+ +
+
MICRO TAG LABEL
+
Micro — 11.2px / 500 / 1.79 / normal — Inter
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Neon Volt CTA
+
+
+ +
Dark Solid
+
+
+ +
Forest Green
+
+
+ +
Ghost / Outlined
+
+
+ +
Pill Toggle
+
+
+ +
+ -- ClickHouse query example
+ SELECT count() FROM system.query_log
+ WHERE type = 'QueryFinish' +
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Charcoal Border

+

Standard content card with 1px solid charcoal border at 80% opacity and 8px radius. The default container for features, stats, and content on the dark canvas.

+
+
+
Neon Highlighted
+

Neon Volt Border

+

Featured or selected card with 2px solid Neon Volt border. Creates maximum emphasis against pure black with the signature acid yellow-green accent.

+
+
+
Inset / Pressed
+

Inset Shadow

+

Card with inset shadow creating a "pressed into the surface" effect. Unique to ClickHouse's depth system for active or contained elements.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale from 2px to 64px with additional intermediate values.

+ +
+
2px
+
6px
+
8px
+
10px
+
12px
+
16px
+
20px
+
24px
+
32px
+
40px
+
48px
+
64px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+ +
+
4px
Sharp — buttons, badges, code
+
8px
Comfortable — cards, containers
+
9999px
Pill — toggles, indicators
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow. Pure black background, text blocks, inline content.
+
Level 0
+
+
+
Bordered
1px solid rgba(65,65,65,0.8). Standard cards and containers.
+
Level 1
+
+
+
Subtle
Subtle shadow (1px 3px). Barely visible on black canvas.
+
Level 2
+
+
+
Elevated
Medium shadow (10px 15px). Feature cards and hover states.
+
Level 3
+
+
+
Pressed / Inset
Inset shadow (4px 25px inset). "Sunk into the surface" — distinctive ClickHouse depth.
+
Level 4
+
+
+
Neon Highlight
Neon Volt border (#faff69). Featured/selected cards, maximum emphasis.
+
Level 5
+
+
+
+ +
+ + + diff --git a/design-md/clickhouse/preview.html b/design-md/clickhouse/preview.html new file mode 100644 index 0000000..fb278e9 --- /dev/null +++ b/design-md/clickhouse/preview.html @@ -0,0 +1,786 @@ + + + + + +Design System Preview: ClickHouse (Light) + + + + + + + + + + + +
+

Design System Preview:
ClickHouse

+

Auto-generated design token catalog from DESIGN.md — Light mode (inverted)

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary — Neon Volt Family

+
+
+
+
+
Neon Volt
+
#faff69
+
Signature brand accent, CTAs, accent borders, link hovers
+
+
+
+
+
+
Pale Yellow
+
#f4f692
+
Active/pressed state text color
+
+
+
+
+
+
Border Olive
+
#4f5100
+
Ghost button borders, muted neon sibling
+
+
+
+
+
+
Olive Dark
+
#161600
+
Darkest neon-tinted color for subtle brand text
+
+
+
+
+ +
+

CTA Greens

+
+
+
+
+
Forest Green
+
#166534
+
Secondary CTA buttons, Get Started actions
+
+
+
+
+
+
Dark Forest
+
#14572f
+
Darker green for borders and secondary accents
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Pure Black
+
#000000
+
Primary page background, maximum contrast canvas
+
+
+
+
+
+
Near Black
+
#141414
+
Button backgrounds, slightly elevated surfaces
+
+
+
+
+
+
Hover Gray
+
#3a3a3a
+
Button hover state background
+
+
+
+
+ +
+

Neutrals & Borders

+
+
+
+
+
Pure White
+
#ffffff
+
Primary text on dark surfaces
+
+
+
+
+
+
Silver
+
#a0a0a0
+
Secondary body text, muted content
+
+
+
+
+
+
Charcoal
+
#414141
+
Primary border color at 80% opacity
+
+
+
+
+
+
Deep Charcoal
+
#343434
+
Darker border variant for subtle division
+
+
+
+
+
+
Border Gray
+
#e5e7eb
+
Light border variant for light contexts
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Mega
+
Display Mega — 96px / 900 (Black) / 1.00 / normal — Inter
+
+ +
+
Display Hero
+
Display / Hero — 72px / 700 / 1.00 / normal — Inter
+
+ +
+
Feature Heading
+
Feature Heading — 36px / 600 / 1.30 / normal — Inter (Basier in production)
+
+ +
+
Sub-heading Bold
+
Sub-heading — 24px / 600-700 / 1.17-1.38 / normal — Inter
+
+ +
+
Feature Title
+
Feature Title — 20px / 600-700 / 1.40 / normal — Inter
+
+ +
+
Body large for intro paragraphs and button text. Inter provides geometric precision across the entire weight spectrum from 400 to 900.
+
Body Large — 18px / 400-700 / 1.56 / normal — Inter
+
+ +
+
Standard body text for paragraphs, navigation links, and button labels. Weight 400 for reading, 600-700 for UI elements.
+
Body / Button — 16px / 400-700 / 1.50 / normal — Inter
+
+ +
+
Caption and metadata text for descriptions and links
+
Caption — 14px / 400-700 / 1.43 / normal — Inter
+
+ +
+
UPPERCASE SECTION LABEL
+
Uppercase Label — 14px / 600 / 1.43 / 1.4px / uppercase — Inter
+
+ +
+
SELECT count() FROM system.query_log
+
Code — 16px / 600 / 1.50 / normal — Inconsolata
+
+ +
+
Small supporting text
+
Small — 12px / 500 / 1.33 / normal — Inter
+
+ +
+
MICRO TAG LABEL
+
Micro — 11.2px / 500 / 1.79 / normal — Inter
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Neon Volt CTA
+
+
+ +
Dark Solid
+
+
+ +
Forest Green
+
+
+ +
Ghost / Outlined
+
+
+ +
Pill Toggle
+
+
+ +
+ -- ClickHouse query example
+ SELECT count() FROM system.query_log
+ WHERE type = 'QueryFinish' +
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Charcoal Border

+

Standard content card with 1px solid charcoal border at 80% opacity and 8px radius. The default container for features, stats, and content sections.

+
+
+
Neon Highlighted
+

Neon Volt Border

+

Featured or selected card with 2px solid Neon Volt border. Creates maximum emphasis against the dark canvas with the signature yellow-green accent.

+
+
+
Inset / Pressed
+

Inset Shadow

+

Card with inset shadow creating a "pressed into the surface" effect. Unique to ClickHouse's depth system for active or contained elements.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale from 2px to 64px with additional intermediate values.

+ +
+
2px
+
6px
+
8px
+
10px
+
12px
+
16px
+
20px
+
24px
+
32px
+
40px
+
48px
+
64px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+ +
+
4px
Sharp — buttons, badges, code
+
8px
Comfortable — cards, containers
+
9999px
Pill — toggles, indicators
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow. Black background, text blocks, inline content.
+
Level 0
+
+
+
Bordered
1px solid charcoal at 80% opacity. Standard cards and containers.
+
Level 1
+
+
+
Subtle
Subtle shadow (1px 3px). Soft card lift on the dark canvas.
+
Level 2
+
+
+
Elevated
Medium shadow (10px 15px). Feature cards and hover states.
+
Level 3
+
+
+
Pressed / Inset
Inset shadow (4px 25px inset). "Sunk into the surface" effect, unique to ClickHouse.
+
Level 4
+
+
+
Neon Highlight
Neon Volt border (#faff69). Featured/selected cards, maximum emphasis.
+
Level 5
+
+
+
+ +
+ + + diff --git a/design-md/cohere/DESIGN.md b/design-md/cohere/DESIGN.md new file mode 100644 index 0000000..7c0c604 --- /dev/null +++ b/design-md/cohere/DESIGN.md @@ -0,0 +1,266 @@ +# Design System: Cohere + +## 1. Visual Theme & Atmosphere + +Cohere's interface is a polished enterprise command deck — confident, clean, and designed to make AI feel like serious infrastructure rather than a consumer toy. The experience lives on a bright white canvas where content is organized into generously rounded cards (22px radius) that create an organic, cloud-like containment language. This is a site that speaks to CTOs and enterprise architects: professional without being cold, sophisticated without being intimidating. + +The design language bridges two worlds with a dual-typeface system: CohereText, a custom display serif with tight tracking, gives headlines the gravitas of a technology manifesto, while Unica77 Cohere Web handles all body and UI text with geometric Swiss precision. This serif/sans pairing creates a "confident authority meets engineering clarity" personality that perfectly reflects an enterprise AI platform. + +Color is used with extreme restraint — the interface is almost entirely black-and-white with cool gray borders (`#d9d9dd`, `#e5e7eb`). Purple-violet appears only in photographic hero bands, gradient sections, and the interactive blue (`#1863dc`) that signals hover and focus states. This chromatic restraint means that when color DOES appear — in product screenshots, enterprise photography, and the deep purple section — it carries maximum visual weight. + +**Key Characteristics:** +- Bright white canvas with cool gray containment borders +- 22px signature border-radius — the distinctive "Cohere card" roundness +- Dual custom typeface: CohereText (display serif) + Unica77 (body sans) +- Enterprise-grade chromatic restraint: black, white, cool grays, minimal purple-blue accent +- Deep purple/violet hero sections providing dramatic contrast +- Ghost/transparent buttons that shift to blue on hover +- Enterprise photography showing diverse real-world applications +- CohereMono for code and technical labels with uppercase transforms + +## 2. Color Palette & Roles + +### Primary +- **Cohere Black** (`#000000`): Primary headline text and maximum-emphasis elements. +- **Near Black** (`#212121`): Standard body link color — slightly softer than pure black. +- **Deep Dark** (`#17171c`): A blue-tinted near-black for navigation and dark-section text. + +### Secondary & Accent +- **Interaction Blue** (`#1863dc`): The primary interactive accent — appears on button hover, focus states, and active links. The sole chromatic action color. +- **Ring Blue** (`#4c6ee6` at 50%): Tailwind ring color for keyboard focus indicators. +- **Focus Purple** (`#9b60aa`): Input focus border color — a muted violet. + +### Surface & Background +- **Pure White** (`#ffffff`): The primary page background and card surface. +- **Snow** (`#fafafa`): Subtle elevated surfaces and light-section backgrounds. +- **Lightest Gray** (`#f2f2f2`): Card borders and the softest containment lines. + +### Neutrals & Text +- **Muted Slate** (`#93939f`): De-emphasized footer links and tertiary text — a cool-toned gray with a slight blue-violet tint. +- **Border Cool** (`#d9d9dd`): Standard section and list-item borders — a cool, slightly purple-tinted gray. +- **Border Light** (`#e5e7eb`): Lighter border variant — Tailwind's standard gray-200. + +### Gradient System +- **Purple-Violet Hero Band**: Deep purple gradient sections that create dramatic contrast against the white canvas. These appear as full-width bands housing product screenshots and key messaging. +- **Dark Footer Gradient**: The page transitions through deep purple/charcoal to the black footer, creating a "dusk" effect. + +## 3. Typography Rules + +### Font Family +- **Display**: `CohereText`, with fallbacks: `Space Grotesk, Inter, ui-sans-serif, system-ui` +- **Body / UI**: `Unica77 Cohere Web`, with fallbacks: `Inter, Arial, ui-sans-serif, system-ui` +- **Code**: `CohereMono`, with fallbacks: `Arial, ui-sans-serif, system-ui` +- **Icons**: `CohereIconDefault` (custom icon font) + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display / Hero | CohereText | 72px (4.5rem) | 400 | 1.00 (tight) | -1.44px | Maximum impact, serif authority | +| Display Secondary | CohereText | 60px (3.75rem) | 400 | 1.00 (tight) | -1.2px | Large section headings | +| Section Heading | Unica77 | 48px (3rem) | 400 | 1.20 (tight) | -0.48px | Feature section titles | +| Sub-heading | Unica77 | 32px (2rem) | 400 | 1.20 (tight) | -0.32px | Card headings, feature names | +| Feature Title | Unica77 | 24px (1.5rem) | 400 | 1.30 | normal | Smaller section titles | +| Body Large | Unica77 | 18px (1.13rem) | 400 | 1.40 | normal | Intro paragraphs | +| Body / Button | Unica77 | 16px (1rem) | 400 | 1.50 | normal | Standard body, button text | +| Button Medium | Unica77 | 14px (0.88rem) | 500 | 1.71 (relaxed) | normal | Smaller buttons, emphasized labels | +| Caption | Unica77 | 14px (0.88rem) | 400 | 1.40 | normal | Metadata, descriptions | +| Uppercase Label | Unica77 / CohereMono | 14px (0.88rem) | 400 | 1.40 | 0.28px | Uppercase section labels | +| Small | Unica77 | 12px (0.75rem) | 400 | 1.40 | normal | Smallest text, footer links | +| Code Micro | CohereMono | 8px (0.5rem) | 400 | 1.40 | 0.16px | Tiny uppercase code labels | + +### Principles +- **Serif for declaration, sans for utility**: CohereText carries the brand voice at display scale — its serif terminals give headlines the authority of published research. Unica77 handles everything functional with Swiss-geometric neutrality. +- **Negative tracking at scale**: CohereText uses -1.2px to -1.44px letter-spacing at 60–72px, creating dense, impactful text blocks. +- **Single body weight**: Nearly all Unica77 usage is weight 400. Weight 500 appears only for small button emphasis. The system relies on size and spacing, not weight contrast. +- **Uppercase code labels**: CohereMono uses uppercase with positive letter-spacing (0.16–0.28px) for technical tags and section markers. + +## 4. Component Stylings + +### Buttons + +**Ghost / Transparent** +- Background: transparent (`rgba(255, 255, 255, 0)`) +- Text: Cohere Black (`#000000`) +- No border visible +- Hover: text shifts to Interaction Blue (`#1863dc`), opacity 0.8 +- Focus: solid 2px outline in Interaction Blue +- The primary button style — invisible until interacted with + +**Dark Solid** +- Background: dark/black +- Text: Pure White +- For CTA on light surfaces +- Pill-shaped or standard radius + +**Outlined** +- Border-based containment +- Used in secondary actions + +### Cards & Containers +- Background: Pure White (`#ffffff`) +- Border: thin solid Lightest Gray (`1px solid #f2f2f2`) for subtle cards; Cool Border (`#d9d9dd`) for emphasized +- Radius: **22px** — the signature Cohere radius for primary cards, images, and dialog containers. Also 4px, 8px, 16px, 20px for smaller elements +- Shadow: minimal — Cohere relies on background color and borders rather than shadows +- Special: `0px 0px 22px 22px` radius (bottom-only rounding) for section containers +- Dialog: 8px radius for modal/dialog boxes + +### Inputs & Forms +- Text: white on dark input, black on light +- Focus border: Focus Purple (`#9b60aa`) with `1px solid` +- Focus shadow: red ring (`rgb(179, 0, 0) 0px 0px 0px 2px`) — likely for error state indication +- Focus outline: Interaction Blue solid 2px + +### Navigation +- Clean horizontal nav on white or dark background +- Logo: Cohere wordmark (custom SVG) +- Links: Dark text at 16px Unica77 +- CTA: Dark solid button +- Mobile: hamburger collapse + +### Image Treatment +- Enterprise photography with diverse subjects and environments +- Purple-tinted hero photography for dramatic sections +- Product UI screenshots on dark surfaces +- Images with 22px radius matching card system +- Full-bleed purple gradient sections + +### Distinctive Components + +**22px Card System** +- The 22px border-radius is Cohere's visual signature +- All primary cards, images, and containers use this radius +- Creates a cloud-like, organic softness that's distinctive from the typical 8–12px + +**Enterprise Trust Bar** +- Company logos displayed in a horizontal strip +- Demonstrates enterprise adoption +- Clean, monochrome logo treatment + +**Purple Hero Bands** +- Full-width deep purple sections housing product showcases +- Create dramatic visual breaks in the white page flow +- Product screenshots float within the purple environment + +**Uppercase Code Tags** +- CohereMono in uppercase with letter-spacing +- Used as section markers and categorization labels +- Creates a technical, structured information hierarchy + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 2px, 6px, 8px, 10px, 12px, 16px, 20px, 22px, 24px, 28px, 32px, 36px, 40px, 56px, 60px +- Button padding varies by variant +- Card internal padding: approximately 24–32px +- Section vertical spacing: generous (56–60px between sections) + +### Grid & Container +- Max container width: up to 2560px (very wide) with responsive scaling +- Hero: centered with dramatic typography +- Feature sections: multi-column card grids +- Enterprise sections: full-width purple bands +- 26 breakpoints detected — extremely granular responsive system + +### Whitespace Philosophy +- **Enterprise clarity**: Each section presents one clear proposition with breathing room between. +- **Photography as hero**: Large photographic sections provide visual interest without requiring decorative design elements. +- **Card grouping**: Related content is grouped into 22px-rounded cards, creating natural information clusters. + +### Border Radius Scale +- Sharp (4px): Navigation elements, small tags, pagination +- Comfortable (8px): Dialog boxes, secondary containers, small cards +- Generous (16px): Featured containers, medium cards +- Large (20px): Large feature cards +- Signature (22px): Primary cards, hero images, main containers — THE Cohere radius +- Pill (9999px): Buttons, tags, status indicators + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, no border | Page background, text blocks | +| Bordered (Level 1) | `1px solid #f2f2f2` or `#d9d9dd` | Standard cards, list separators | +| Purple Band (Level 2) | Full-width dark purple background | Hero sections, feature showcases | + +**Shadow Philosophy**: Cohere is nearly shadow-free. Depth is communicated through **background color contrast** (white cards on purple bands, white surface on snow), **border containment** (cool gray borders), and the dramatic **light-to-dark section alternation**. When elements need elevation, they achieve it through being white-on-dark rather than through shadow casting. + +## 7. Do's and Don'ts + +### Do +- Use 22px border-radius on all primary cards and containers — it's the visual signature +- Use CohereText for display headings (72px, 60px) with negative letter-spacing +- Use Unica77 for all body and UI text at weight 400 +- Keep the palette black-and-white with cool gray borders +- Use Interaction Blue (#1863dc) only for hover/focus interactive states +- Use deep purple sections for dramatic visual breaks and product showcases +- Apply uppercase + letter-spacing on CohereMono for section labels +- Maintain enterprise-appropriate photography with diverse subjects + +### Don't +- Don't use border-radius other than 22px on primary cards — the signature radius matters +- Don't introduce warm colors — the palette is strictly cool-toned +- Don't use heavy shadows — depth comes from color contrast and borders +- Don't use bold (700+) weight on body text — 400–500 is the range +- Don't skip the serif/sans hierarchy — CohereText for headlines, Unica77 for body +- Don't use purple as a surface color for cards — purple is reserved for full-width sections +- Don't reduce section spacing below 40px — enterprise layouts need breathing room +- Don't use decoration on buttons by default — ghost/transparent is the base state + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Small Mobile | <425px | Compact layout, minimal spacing | +| Mobile | 425–640px | Single column, stacked cards | +| Large Mobile | 640–768px | Minor spacing adjustments | +| Tablet | 768–1024px | 2-column grids begin | +| Desktop | 1024–1440px | Full multi-column layout | +| Large Desktop | 1440–2560px | Maximum container width | + +*26 breakpoints detected — one of the most granularly responsive sites in the dataset.* + +### Touch Targets +- Buttons adequately sized for touch interaction +- Navigation links with comfortable spacing +- Card surfaces as touch targets + +### Collapsing Strategy +- **Navigation**: Full nav collapses to hamburger +- **Feature grids**: Multi-column → 2-column → single column +- **Hero text**: 72px → 48px → 32px progressive scaling +- **Purple sections**: Maintain full-width, content stacks +- **Card grids**: 3 → 2 → 1 column + +### Image Behavior +- Photography scales proportionally within 22px-radius containers +- Product screenshots maintain aspect ratio +- Purple sections scale background proportionally + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary Text: "Cohere Black (#000000)" +- Page Background: "Pure White (#ffffff)" +- Secondary Text: "Near Black (#212121)" +- Hover Accent: "Interaction Blue (#1863dc)" +- Muted Text: "Muted Slate (#93939f)" +- Card Borders: "Lightest Gray (#f2f2f2)" +- Section Borders: "Border Cool (#d9d9dd)" + +### Example Component Prompts +- "Create a hero section on Pure White (#ffffff) with CohereText at 72px weight 400, line-height 1.0, letter-spacing -1.44px. Cohere Black text. Subtitle in Unica77 at 18px weight 400, line-height 1.4." +- "Design a feature card with 22px border-radius, 1px solid Lightest Gray (#f2f2f2) border on white. Title in Unica77 at 32px, letter-spacing -0.32px. Body in Unica77 at 16px, Muted Slate (#93939f)." +- "Build a ghost button: transparent background, Cohere Black text in Unica77 at 16px. On hover, text shifts to Interaction Blue (#1863dc) with 0.8 opacity. Focus: 2px solid Interaction Blue outline." +- "Create a deep purple full-width section with white text. CohereText at 60px for the heading. Product screenshot floats within using 22px border-radius." +- "Design a section label using CohereMono at 14px, uppercase, letter-spacing 0.28px. Muted Slate (#93939f) text." + +### Iteration Guide +1. Focus on ONE component at a time +2. Always use 22px radius for primary cards — "the Cohere card roundness" +3. Specify the typeface — CohereText for headlines, Unica77 for body, CohereMono for labels +4. Interactive elements use Interaction Blue (#1863dc) on hover only +5. Keep surfaces white with cool gray borders — no warm tones +6. Purple is for full-width sections, never card backgrounds diff --git a/design-md/cohere/README.md b/design-md/cohere/README.md new file mode 100644 index 0000000..fe67791 --- /dev/null +++ b/design-md/cohere/README.md @@ -0,0 +1,25 @@ +# Cohere — Design System + +> Design.md extracted from the public [cohere](https://cohere.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 Cohere 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 +![Cohere Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/cohere/preview-dark-screenshot.png) + +### Light Mode +![Cohere Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/cohere/preview-screenshot.png) diff --git a/design-md/cohere/preview-dark.html b/design-md/cohere/preview-dark.html new file mode 100644 index 0000000..f38b326 --- /dev/null +++ b/design-md/cohere/preview-dark.html @@ -0,0 +1,810 @@ + + + + + +Design System Preview: Cohere (Dark) + + + + + + + + + + + +
+

Design System Preview:
Cohere

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Cohere Black
+
#000000
+
Primary headline text, maximum emphasis
+
+
+
+
+
+
Near Black
+
#212121
+
Standard body link color
+
+
+
+
+
+
Deep Dark
+
#17171c
+
Navigation and dark-section text
+
+
+
+
+ +
+

Secondary & Accent

+
+
+
+
+
Interaction Blue
+
#1863dc
+
Hover, focus states, active links
+
+
+
+
+
+
Ring Blue
+
#4c6ee6 @ 50%
+
Keyboard focus indicators
+
+
+
+
+
+
Focus Purple
+
#9b60aa
+
Input focus border color
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Pure White
+
#ffffff
+
Primary page background, card surface
+
+
+
+
+
+
Snow
+
#fafafa
+
Subtle elevated surfaces, light sections
+
+
+
+
+
+
Lightest Gray
+
#f2f2f2
+
Card borders, softest containment
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Muted Slate
+
#93939f
+
Footer links, tertiary text
+
+
+
+
+
+
Border Cool
+
#d9d9dd
+
Section borders, list separators
+
+
+
+
+
+
Border Light
+
#e5e7eb
+
Lighter border variant (gray-200)
+
+
+
+
+
+ +
+ + +
+

Enterprise AI Platform

+

Deep purple hero sections create dramatic visual breaks in the dark page flow

+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — CohereText — 72px / 400 / 1.00 / -1.44px
+
+ +
+
Display Secondary
+
Display Secondary — CohereText — 60px / 400 / 1.00 / -1.2px
+
+ +
+
Section Heading
+
Section Heading — Unica77 — 48px / 400 / 1.20 / -0.48px
+
+ +
+
Sub-heading
+
Sub-heading — Unica77 — 32px / 400 / 1.20 / -0.32px
+
+ +
+
Feature Title
+
Feature Title — Unica77 — 24px / 400 / 1.30 / normal
+
+ +
+
Body Large text for intro paragraphs. Unica77 provides geometric Swiss precision for all functional UI text at the body-large tier.
+
Body Large — Unica77 — 18px / 400 / 1.40 / normal
+
+ +
+
Standard body text for paragraphs, navigation links, and button labels. Unica77 at its most common size, weight 400.
+
Body / Button — Unica77 — 16px / 400 / 1.50 / normal
+
+ +
+
Button Medium Label
+
Button Medium — Unica77 — 14px / 500 / 1.71 / normal
+
+ +
+
Caption and metadata text for descriptions
+
Caption — Unica77 — 14px / 400 / 1.40 / normal
+
+ +
+
UPPERCASE SECTION LABEL
+
Uppercase Label — CohereMono — 14px / 400 / 1.40 / 0.28px / uppercase
+
+ +
+
Smallest text for footer links and fine print
+
Small — Unica77 — 12px / 400 / 1.40 / normal
+
+ +
+
CODE MICRO LABEL
+
Code Micro — CohereMono — 8px / 400 / 1.40 / 0.16px / uppercase
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Ghost / Transparent
+
+
+ +
Light Solid (22px)
+
+
+ +
Light Pill (9999px)
+
+
+ +
Outlined (22px)
+
+
+ +

+ Ghost buttons are the primary style — invisible until interacted with. On hover, text shifts to Interaction Blue (#1863dc) with 0.8 opacity. Focus: 2px solid Interaction Blue outline. +

+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
STANDARD CARD
+

Signature 22px Radius

+

The distinctive Cohere card with 22px border-radius and #333 border on dark surfaces. Creates cloud-like, organic softness on the dark canvas.

+
+
+
DIALOG CARD
+

Dialog 8px Radius

+

Modal and dialog containers use a tighter 8px radius with #333 border. Functional, secondary containment for transient UI.

+
+
+
GENEROUS CARD
+

Featured 16px Radius

+

Medium-sized containers for featured content. Uses 16px radius as a middle step in the radius scale with subtle border.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale from 2px to 60px.

+ +
+
2px
+
6px
+
8px
+
10px
+
12px
+
16px
+
20px
+
22px
+
24px
+
28px
+
32px
+
40px
+
56px
+
60px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+ +
+
4px
Sharp — nav, tags
+
8px
Comfortable — dialogs
+
16px
Generous — featured
+
20px
Large — feature cards
+
22px
Signature — THE radius
+
9999px
Pill — buttons, tags
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow, no border. Page background and text blocks.
+
Level 0
+
+
+
Bordered (Subtle)
1px solid #2a2a2f. Subtle dark containment lines.
+
Level 1 — Subtle
+
+
+
Bordered (Standard)
1px solid #333. Standard dark-mode card borders.
+
Level 1 — Standard
+
+
+
Purple Band
Full-width dark purple background. Hero sections, showcases.
+
Level 2 — Dramatic
+
+
+ +

+ Cohere is nearly shadow-free. Depth is communicated through background color contrast (elevated cards on dark canvas), border containment, and dramatic light-to-dark section alternation. +

+
+ +
+ + + diff --git a/design-md/cohere/preview.html b/design-md/cohere/preview.html new file mode 100644 index 0000000..e8849b7 --- /dev/null +++ b/design-md/cohere/preview.html @@ -0,0 +1,814 @@ + + + + + +Design System Preview: Cohere (Light) + + + + + + + + + + + +
+

Design System Preview:
Cohere

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Cohere Black
+
#000000
+
Primary headline text, maximum emphasis
+
+
+
+
+
+
Near Black
+
#212121
+
Standard body link color
+
+
+
+
+
+
Deep Dark
+
#17171c
+
Navigation and dark-section text
+
+
+
+
+ +
+

Secondary & Accent

+
+
+
+
+
Interaction Blue
+
#1863dc
+
Hover, focus states, active links
+
+
+
+
+
+
Ring Blue
+
#4c6ee6 @ 50%
+
Keyboard focus indicators
+
+
+
+
+
+
Focus Purple
+
#9b60aa
+
Input focus border color
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Pure White
+
#ffffff
+
Primary page background, card surface
+
+
+
+
+
+
Snow
+
#fafafa
+
Subtle elevated surfaces, light sections
+
+
+
+
+
+
Lightest Gray
+
#f2f2f2
+
Card borders, softest containment
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Muted Slate
+
#93939f
+
Footer links, tertiary text
+
+
+
+
+
+
Border Cool
+
#d9d9dd
+
Section borders, list separators
+
+
+
+
+
+
Border Light
+
#e5e7eb
+
Lighter border variant (gray-200)
+
+
+
+
+
+ +
+ + +
+

Enterprise AI Platform

+

Deep purple hero sections create dramatic visual breaks in the white page flow

+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — CohereText — 72px / 400 / 1.00 / -1.44px
+
+ +
+
Display Secondary
+
Display Secondary — CohereText — 60px / 400 / 1.00 / -1.2px
+
+ +
+
Section Heading
+
Section Heading — Unica77 — 48px / 400 / 1.20 / -0.48px
+
+ +
+
Sub-heading
+
Sub-heading — Unica77 — 32px / 400 / 1.20 / -0.32px
+
+ +
+
Feature Title
+
Feature Title — Unica77 — 24px / 400 / 1.30 / normal
+
+ +
+
Body Large text for intro paragraphs. Unica77 provides geometric Swiss precision for all functional UI text at the body-large tier.
+
Body Large — Unica77 — 18px / 400 / 1.40 / normal
+
+ +
+
Standard body text for paragraphs, navigation links, and button labels. Unica77 at its most common size, weight 400.
+
Body / Button — Unica77 — 16px / 400 / 1.50 / normal
+
+ +
+
Button Medium Label
+
Button Medium — Unica77 — 14px / 500 / 1.71 / normal
+
+ +
+
Caption and metadata text for descriptions
+
Caption — Unica77 — 14px / 400 / 1.40 / normal
+
+ +
+
UPPERCASE SECTION LABEL
+
Uppercase Label — CohereMono — 14px / 400 / 1.40 / 0.28px / uppercase
+
+ +
+
Smallest text for footer links and fine print
+
Small — Unica77 — 12px / 400 / 1.40 / normal
+
+ +
+
CODE MICRO LABEL
+
Code Micro — CohereMono — 8px / 400 / 1.40 / 0.16px / uppercase
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Ghost / Transparent
+
+
+ +
Dark Solid (22px)
+
+
+ +
Dark Pill (9999px)
+
+
+ +
Outlined (22px)
+
+
+ +

+ Ghost buttons are the primary style — invisible until interacted with. On hover, text shifts to Interaction Blue (#1863dc) with 0.8 opacity. Focus: 2px solid Interaction Blue outline. +

+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
STANDARD CARD
+

Signature 22px Radius

+

The distinctive Cohere card with 22px border-radius and 1px solid #f2f2f2 border. Creates cloud-like, organic softness on the white canvas.

+
+
+
DIALOG CARD
+

Dialog 8px Radius

+

Modal and dialog containers use a tighter 8px radius with #d9d9dd border. Functional, secondary containment for transient UI.

+
+
+
GENEROUS CARD
+

Featured 16px Radius

+

Medium-sized containers for featured content. Uses 16px radius as a middle step in the radius scale with subtle #f2f2f2 border.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale from 2px to 60px.

+ +
+
2px
+
6px
+
8px
+
10px
+
12px
+
16px
+
20px
+
22px
+
24px
+
28px
+
32px
+
40px
+
56px
+
60px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+ +
+
4px
Sharp — nav, tags
+
8px
Comfortable — dialogs
+
16px
Generous — featured
+
20px
Large — feature cards
+
22px
Signature — THE radius
+
9999px
Pill — buttons, tags
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow, no border. Page background and text blocks.
+
Level 0
+
+
+
Bordered (Light)
1px solid #f2f2f2. Standard cards, subtle containment.
+
Level 1 — Lightest Gray
+
+
+
Bordered (Cool)
1px solid #d9d9dd. Emphasized cards, list separators.
+
Level 1 — Border Cool
+
+
+
Purple Band
Full-width dark purple background. Hero sections, showcases.
+
Level 2 — Dramatic
+
+
+ +

+ Cohere is nearly shadow-free. Depth is communicated through background color contrast (white cards on purple bands), border containment (cool gray borders), and dramatic light-to-dark section alternation. +

+
+ +
+ + + diff --git a/design-md/composio/DESIGN.md b/design-md/composio/DESIGN.md new file mode 100644 index 0000000..64d8098 --- /dev/null +++ b/design-md/composio/DESIGN.md @@ -0,0 +1,307 @@ +# Design System: Composio + +## 1. Visual Theme & Atmosphere + +Composio's interface is a nocturnal command center — a dense, developer-focused darkness punctuated by electric cyan and deep cobalt signals. The entire experience is built on an almost-pure-black canvas (`#0f0f0f`) where content floats within barely-visible containment borders, creating the feeling of a high-tech control panel rather than a traditional marketing page. It's a site that whispers authority to developers who live in dark terminals. + +The visual language leans heavily into the aesthetic of code editors and terminal windows. JetBrains Mono appears alongside the geometric precision of abcDiatype, reinforcing the message that this is a tool built *by* developers *for* developers. Decorative elements are restrained but impactful — subtle cyan-blue gradient glows emanate from cards and sections like bioluminescent organisms in deep water, while hard-offset shadows (`4px 4px`) on select elements add a raw, brutalist edge that prevents the design from feeling sterile. + +What makes Composio distinctive is its tension between extreme minimalism and strategic bursts of luminous color. The site never shouts — headings use tight line-heights (0.87) that compress text into dense, authoritative blocks. Color is rationed like a rare resource: white text for primary content, semi-transparent white (`rgba(255,255,255,0.5-0.6)`) for secondary, and brand blue (`#0007cd`) or electric cyan (`#00ffff`) reserved exclusively for interactive moments and accent glows. + +**Key Characteristics:** +- Pitch-black canvas with near-invisible white-border containment (4-12% opacity) +- Dual-font identity: geometric sans-serif (abcDiatype) for content, monospace (JetBrains Mono) for technical credibility +- Ultra-tight heading line-heights (0.87-1.0) creating compressed, impactful text blocks +- Bioluminescent accent strategy — cyan and blue glows that feel like they're emitting light from within +- Hard-offset brutalist shadows (`4px 4px`) on select interactive elements +- Monochrome hierarchy with color used only at the highest-signal moments +- Developer-terminal aesthetic that bridges marketing and documentation + +## 2. Color Palette & Roles + +### Primary +- **Composio Cobalt** (`#0007cd`): The core brand color — a deep, saturated blue used sparingly for high-priority interactive elements and brand moments. It anchors the identity with quiet intensity. + +### Secondary & Accent +- **Electric Cyan** (`#00ffff`): The attention-grabbing accent — used at low opacity (`rgba(0,255,255,0.12)`) for glowing button backgrounds and card highlights. At full saturation, it serves as the energetic counterpoint to the dark canvas. +- **Signal Blue** (`#0089ff` / `rgb(0,137,255)`): Used for select button borders and interactive focus states, bridging the gap between Cobalt and Cyan. +- **Ocean Blue** (`#0096ff` / `rgb(0,150,255)`): Accent border color on CTA buttons, slightly warmer than Signal Blue. + +### Surface & Background +- **Void Black** (`#0f0f0f`): The primary page background — not pure black, but a hair warmer, reducing eye strain on dark displays. +- **Pure Black** (`#000000`): Used for card interiors and deep-nested containers, creating a subtle depth distinction from the page background. +- **Charcoal** (`#2c2c2c` / `rgb(44,44,44)`): Used for secondary button borders and divider lines on dark surfaces. + +### Neutrals & Text +- **Pure White** (`#ffffff`): Primary heading and high-emphasis text color on dark surfaces. +- **Muted Smoke** (`#444444`): De-emphasized body text, metadata, and tertiary content. +- **Ghost White** (`rgba(255,255,255,0.6)`): Secondary body text and link labels — visible but deliberately receded. +- **Whisper White** (`rgba(255,255,255,0.5)`): Tertiary button text and placeholder content. +- **Phantom White** (`rgba(255,255,255,0.2)`): Subtle button backgrounds and deeply receded UI chrome. + +### Semantic & Accent +- **Border Mist 12** (`rgba(255,255,255,0.12)`): Highest-opacity border treatment — used for prominent card edges and content separators. +- **Border Mist 10** (`rgba(255,255,255,0.10)`): Standard container borders on dark surfaces. +- **Border Mist 08** (`rgba(255,255,255,0.08)`): Subtle section dividers and secondary card edges. +- **Border Mist 06** (`rgba(255,255,255,0.06)`): Near-invisible containment borders for background groupings. +- **Border Mist 04** (`rgba(255,255,255,0.04)`): The faintest border — used for atmospheric separation only. +- **Light Border** (`#e0e0e0` / `rgb(224,224,224)`): Reserved for light-surface contexts (rare on this site). + +### Gradient System +- **Cyan Glow**: Radial gradients using `#00ffff` at very low opacity, creating bioluminescent halos behind cards and feature sections. +- **Blue-to-Black Fade**: Linear gradients from Composio Cobalt (`#0007cd`) fading into Void Black (`#0f0f0f`), used in hero backgrounds and section transitions. +- **White Fog**: Bottom-of-page gradient transitioning from dark to a diffused white/gray, creating an atmospheric "horizon line" effect near the footer. + +## 3. Typography Rules + +### Font Family +- **Primary**: `abcDiatype`, with fallbacks: `abcDiatype Fallback, ui-sans-serif, system-ui, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji` +- **Monospace**: `JetBrains Mono`, with fallbacks: `JetBrains Mono Fallback, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New` +- **System Monospace** (fallback): `Menlo`, `monospace` for smallest inline code + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display / Hero | abcDiatype | 64px (4rem) | 400 | 0.87 (ultra-tight) | normal | Massive, compressed headings | +| Section Heading | abcDiatype | 48px (3rem) | 400 | 1.00 (tight) | normal | Major feature section titles | +| Sub-heading Large | abcDiatype | 40px (2.5rem) | 400 | 1.00 (tight) | normal | Secondary section markers | +| Sub-heading | abcDiatype | 28px (1.75rem) | 400 | 1.20 (tight) | normal | Card titles, feature names | +| Card Title | abcDiatype | 24px (1.5rem) | 500 | 1.20 (tight) | normal | Medium-emphasis card headings | +| Feature Label | abcDiatype | 20px (1.25rem) | 500 | 1.20 (tight) | normal | Smaller card titles, labels | +| Body Large | abcDiatype | 18px (1.125rem) | 400 | 1.20 (tight) | normal | Intro paragraphs | +| Body / Button | abcDiatype | 16px (1rem) | 400 | 1.50 | normal | Standard body text, nav links, buttons | +| Body Small | abcDiatype | 15px (0.94rem) | 400 | 1.63 (relaxed) | normal | Longer-form body text | +| Caption | abcDiatype | 14px (0.875rem) | 400 | 1.63 (relaxed) | normal | Descriptions, metadata | +| Label | abcDiatype | 13px (0.81rem) | 500 | 1.50 | normal | UI labels, badges | +| Tag / Overline | abcDiatype | 12px (0.75rem) | 500 | 1.00 (tight) | 0.3px | Uppercase overline labels | +| Micro | abcDiatype | 12px (0.75rem) | 400 | 1.00 (tight) | 0.3px | Smallest sans-serif text | +| Code Body | JetBrains Mono | 16px (1rem) | 400 | 1.50 | -0.32px | Inline code, terminal output | +| Code Small | JetBrains Mono | 14px (0.875rem) | 400 | 1.50 | -0.28px | Code snippets, technical labels | +| Code Caption | JetBrains Mono | 12px (0.75rem) | 400 | 1.50 | -0.28px | Small code references | +| Code Overline | JetBrains Mono | 14px (0.875rem) | 400 | 1.43 | 0.7px | Uppercase technical labels | +| Code Micro | JetBrains Mono | 11px (0.69rem) | 400 | 1.33 | 0.55px | Tiny uppercase code tags | +| Code Nano | JetBrains Mono | 9-10px | 400 | 1.33 | 0.45-0.5px | Smallest monospace text | + +### Principles +- **Compression creates authority**: Heading line-heights are drastically tight (0.87-1.0), making large text feel dense and commanding rather than airy and decorative. +- **Dual personality**: abcDiatype carries the marketing voice — geometric, precise, friendly. JetBrains Mono carries the technical voice — credible, functional, familiar to developers. +- **Weight restraint**: Almost everything is weight 400 (regular). Weight 500 (medium) is reserved for small labels, badges, and select card titles. Weight 700 (bold) appears only in microscopic system-monospace contexts. +- **Negative letter-spacing on code**: JetBrains Mono uses negative letter-spacing (-0.28px to -0.98px) for dense, compact code blocks that feel like a real IDE. +- **Uppercase is earned**: The `uppercase` + `letter-spacing` treatment is reserved exclusively for tiny overline labels and technical tags — never for headings. + +## 4. Component Stylings + +### Buttons + +**Primary CTA (White Fill)** +- Background: Pure White (`#ffffff`) +- Text: Near Black (`oklch(0.145 0 0)`) +- Padding: comfortable (8px 24px) +- Border: none +- Radius: subtly rounded (likely 4px based on token scale) +- Hover: likely subtle opacity reduction or slight gray shift + +**Cyan Accent CTA** +- Background: Electric Cyan at 12% opacity (`rgba(0,255,255,0.12)`) +- Text: Near Black (`oklch(0.145 0 0)`) +- Padding: comfortable (8px 24px) +- Border: thin solid Ocean Blue (`1px solid rgb(0,150,255)`) +- Radius: subtly rounded (4px) +- Creates a "glowing from within" effect on dark backgrounds + +**Ghost / Outline (Signal Blue)** +- Background: transparent +- Text: Near Black (`oklch(0.145 0 0)`) +- Padding: balanced (10px) +- Border: thin solid Signal Blue (`1px solid rgb(0,137,255)`) +- Hover: likely fill or border color shift + +**Ghost / Outline (Charcoal)** +- Background: transparent +- Text: Near Black (`oklch(0.145 0 0)`) +- Padding: balanced (10px) +- Border: thin solid Charcoal (`1px solid rgb(44,44,44)`) +- For secondary/tertiary actions on dark surfaces + +**Phantom Button** +- Background: Phantom White (`rgba(255,255,255,0.2)`) +- Text: Whisper White (`rgba(255,255,255,0.5)`) +- No visible border +- Used for deeply de-emphasized actions + +### Cards & Containers +- Background: Pure Black (`#000000`) or transparent +- Border: white at very low opacity, ranging from Border Mist 04 (`rgba(255,255,255,0.04)`) to Border Mist 12 (`rgba(255,255,255,0.12)`) depending on prominence +- Radius: barely rounded corners (2px for inline elements, 4px for content cards) +- Shadow: select cards use the hard-offset brutalist shadow (`rgba(0,0,0,0.15) 4px 4px 0px 0px`) — a distinctive design choice that adds raw depth +- Elevation shadow: deeper containers use soft diffuse shadow (`rgba(0,0,0,0.5) 0px 8px 32px`) +- Hover behavior: likely subtle border opacity increase or faint glow effect + +### Inputs & Forms +- No explicit input token data extracted — inputs likely follow the dark-surface pattern with: + - Background: transparent or Pure Black + - Border: Border Mist 10 (`rgba(255,255,255,0.10)`) + - Focus: border shifts to Signal Blue (`#0089ff`) or Electric Cyan + - Text: Pure White with Ghost White placeholder + +### Navigation +- Sticky top nav bar on dark/black background +- Logo (white SVG): Composio wordmark on the left +- Nav links: Pure White (`#ffffff`) at standard body size (16px, abcDiatype) +- CTA button in the nav: White Fill Primary style +- Mobile: collapses to hamburger menu, single-column layout +- Subtle bottom border on nav (Border Mist 06-08) + +### Image Treatment +- Dark-themed product screenshots and UI mockups dominate +- Images sit within bordered containers matching the card system +- Blue/cyan gradient glows behind or beneath feature images +- No visible border-radius on images beyond container rounding (4px) +- Full-bleed within their card containers + +### Distinctive Components + +**Stats/Metrics Display** +- Large monospace numbers (JetBrains Mono) — "10k+" style +- Tight layout with subtle label text beneath + +**Code Blocks / Terminal Previews** +- Dark containers with JetBrains Mono +- Syntax-highlighted content +- Subtle bordered containers (Border Mist 10) + +**Integration/Partner Logos Grid** +- Grid layout of tool logos on dark surface +- Contained within bordered card +- Demonstrates ecosystem breadth + +**"COMPOSIO" Brand Display** +- Oversized brand typography — likely the largest text on the page +- Used as a section divider/brand statement +- Stark white on black + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 2px, 4px, 6px, 8px, 10px, 12px, 14px, 16px, 18px, 20px, 24px, 30px, 32px, 40px +- Component padding: typically 10px (buttons) to 24px (CTA buttons horizontal) +- Section padding: generous vertical spacing (estimated 80-120px between major sections) +- Card internal padding: approximately 24-32px + +### Grid & Container +- Max container width: approximately 1200px, centered +- Content sections use single-column or 2-3 column grids for feature cards +- Hero: centered single-column with maximum impact +- Feature sections: asymmetric layouts mixing text blocks with product screenshots + +### Whitespace Philosophy +- **Breathing room between sections**: Large vertical gaps create distinct "chapters" in the page scroll. +- **Dense within components**: Cards and text blocks are internally compact (tight line-heights, minimal internal padding), creating focused information nodes. +- **Contrast-driven separation**: Rather than relying solely on whitespace, Composio uses border opacity differences and subtle background shifts to delineate content zones. + +### Border Radius Scale +- Nearly squared (2px): Inline code spans, small tags, pre blocks — the sharpest treatment, conveying technical precision +- Subtly rounded (4px): Content cards, images, standard containers — the workhorse radius +- Pill-shaped (37px): Select buttons and badges — creates a softer, more approachable feel for key CTAs +- Full round (9999px+): Circular elements, avatar-like containers, decorative dots + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, no border | Page background, inline text | +| Contained (Level 1) | Border Mist 04-08, no shadow | Background groupings, subtle sections | +| Card (Level 2) | Border Mist 10-12, no shadow | Standard content cards, code blocks | +| Brutalist (Level 3) | Hard offset shadow (`4px 4px`, 15% black) | Select interactive cards, distinctive feature highlights | +| Floating (Level 4) | Soft diffuse shadow (`0px 8px 32px`, 50% black) | Modals, overlays, deeply elevated content | + +**Shadow Philosophy**: Composio uses shadows sparingly and with deliberate contrast. The hard-offset brutalist shadow is the signature — it breaks the sleek darkness with a raw, almost retro-computing feel. The soft diffuse shadow is reserved for truly floating elements. Most depth is communicated through border opacity gradations rather than shadows. + +### Decorative Depth +- **Cyan Glow Halos**: Radial gradient halos using Electric Cyan at low opacity behind feature cards and images. Creates a "screen glow" effect as if the UI elements are emitting light. +- **Blue-Black Gradient Washes**: Linear gradients from Composio Cobalt to Void Black used as section backgrounds, adding subtle color temperature shifts. +- **White Fog Horizon**: A gradient from dark to diffused white/gray at the bottom of the page, creating an atmospheric "dawn" effect before the footer. + +## 7. Do's and Don'ts + +### Do +- Use Void Black (`#0f0f0f`) as the primary page background — never pure white for main surfaces +- Keep heading line-heights ultra-tight (0.87-1.0) for compressed, authoritative text blocks +- Use white-opacity borders (4-12%) for containment — they're more important than shadows here +- Reserve Electric Cyan (`#00ffff`) for high-signal moments only — CTAs, glows, interactive accents +- Pair abcDiatype with JetBrains Mono to reinforce the developer-tool identity +- Use the hard-offset shadow (`4px 4px`) intentionally on select elements for brutalist personality +- Keep button text dark (`oklch(0.145 0 0)`) even on the darkest backgrounds — buttons carry their own surface +- Layer opacity-based borders to create subtle depth without shadows +- Use uppercase + letter-spacing only for tiny overline labels (12px or smaller) + +### Don't +- Don't use bright backgrounds or light surfaces as primary containers +- Don't apply heavy shadows everywhere — depth comes from border opacity, not box-shadow +- Don't use Composio Cobalt (`#0007cd`) as a text color — it's too dark on dark and too saturated on light +- Don't increase heading line-heights beyond 1.2 — the compressed feel is core to the identity +- Don't use bold (700) weight for body or heading text — 400-500 is the ceiling +- Don't mix warm colors — the palette is strictly cool (blue, cyan, white, black) +- Don't use border-radius larger than 4px on content cards — the precision of near-square corners is intentional +- Don't place Electric Cyan at full opacity on large surfaces — it's an accent, used at 12% max for backgrounds +- Don't use decorative serif or handwritten fonts — the entire identity is geometric sans + monospace +- Don't skip the monospace font for technical content — JetBrains Mono is not decorative, it's a credibility signal + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <768px | Single column, hamburger nav, full-width cards, reduced section padding, hero text scales down to ~28-40px | +| Tablet | 768-1024px | 2-column grid for cards, condensed nav, slightly reduced hero text | +| Desktop | 1024-1440px | Full multi-column layout, expanded nav with all links visible, large hero typography (64px) | +| Large Desktop | >1440px | Max-width container centered, generous horizontal margins | + +### Touch Targets +- Minimum touch target: 44x44px for all interactive elements +- Buttons use comfortable padding (8px 24px minimum) ensuring adequate touch area +- Nav links spaced with sufficient gap for thumb navigation + +### Collapsing Strategy +- **Navigation**: Full horizontal nav on desktop collapses to hamburger on mobile +- **Feature grids**: 3-column → 2-column → single-column stacking +- **Hero text**: 64px → 40px → 28px progressive scaling +- **Section padding**: Reduces proportionally but maintains generous vertical rhythm +- **Cards**: Stack vertically on mobile with full-width treatment +- **Code blocks**: Horizontal scroll on smaller viewports rather than wrapping + +### Image Behavior +- Product screenshots scale proportionally within their containers +- Dark-themed images maintain contrast on the dark background at all sizes +- Gradient glow effects scale with container size +- No visible art direction changes between breakpoints — same crops, proportional scaling + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA: "Pure White (#ffffff)" +- Page Background: "Void Black (#0f0f0f)" +- Brand Accent: "Composio Cobalt (#0007cd)" +- Glow Accent: "Electric Cyan (#00ffff)" +- Heading Text: "Pure White (#ffffff)" +- Body Text: "Ghost White (rgba(255,255,255,0.6))" +- Card Border: "Border Mist 10 (rgba(255,255,255,0.10))" +- Button Border: "Signal Blue (#0089ff)" + +### Example Component Prompts +- "Create a feature card with a near-black background (#000000), barely visible white border at 10% opacity, subtly rounded corners (4px), and a hard-offset shadow (4px right, 4px down, 15% black). Use Pure White for the title in abcDiatype at 24px weight 500, and Ghost White (60% opacity) for the description at 16px." +- "Design a primary CTA button with a solid white background, near-black text, comfortable padding (8px vertical, 24px horizontal), and subtly rounded corners. Place it next to a secondary button with transparent background, Signal Blue border, and matching padding." +- "Build a hero section on Void Black (#0f0f0f) with a massive heading at 64px, line-height 0.87, in abcDiatype. Center the text. Add a subtle blue-to-black gradient glow behind the content. Include a white CTA button and a cyan-accented secondary button below." +- "Create a code snippet display using JetBrains Mono at 14px with -0.28px letter-spacing on a black background. Add a Border Mist 10 border (rgba(255,255,255,0.10)) and 4px radius. Show syntax-highlighted content with white and cyan text." +- "Design a navigation bar on Void Black with the Composio wordmark in white on the left, 4-5 nav links in white abcDiatype at 16px, and a white-fill CTA button on the right. Add a Border Mist 06 bottom border." + +### Iteration Guide +When refining existing screens generated with this design system: +1. Focus on ONE component at a time +2. Reference specific color names and hex codes from this document — "use Ghost White (rgba(255,255,255,0.6))" not "make it lighter" +3. Use natural language descriptions — "make the border barely visible" = Border Mist 04-06 +4. Describe the desired "feel" alongside specific measurements — "compressed and authoritative heading at 48px with line-height 1.0" +5. For glow effects, specify "Electric Cyan at 12% opacity as a radial gradient behind the element" +6. Always specify which font — abcDiatype for marketing, JetBrains Mono for technical/code content diff --git a/design-md/composio/README.md b/design-md/composio/README.md new file mode 100644 index 0000000..76a6f05 --- /dev/null +++ b/design-md/composio/README.md @@ -0,0 +1,25 @@ +# Composio — Design System + +> Design.md extracted from the public [composio.dev](https://composio.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 Composio 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. + +### Light Mode +![Composio Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/composio/preview-screenshot.png) + +### Dark Mode +![Composio Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/composio/preview-dark-screenshot.png) diff --git a/design-md/composio/preview-dark.html b/design-md/composio/preview-dark.html new file mode 100644 index 0000000..95bc781 --- /dev/null +++ b/design-md/composio/preview-dark.html @@ -0,0 +1,958 @@ + + + + + +Design System Preview: Composio (Dark) + + + + + + + + +
Dark Mode
+ + + + + +
+

Design System Preview:
Composio

+

Auto-generated design token catalog from DESIGN.md — Dark Mode

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Composio Cobalt
+
#0007cd
+
Core brand color for high-priority interactive elements
+
+
+
+
+ +
+

Secondary & Accent

+
+
+
+
+
Electric Cyan
+
#00ffff
+
Attention-grabbing accent for glows and highlights
+
+
+
+
+
+
Signal Blue
+
#0089ff
+
Button borders and interactive focus states
+
+
+
+
+
+
Ocean Blue
+
#0096ff
+
CTA button accent borders
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Pure Black
+
#000000
+
Dark mode page background
+
+
+
+
+
+
Void Black
+
#0f0f0f
+
Standard page background
+
+
+
+
+
+
Charcoal
+
#2c2c2c
+
Secondary button borders and dividers
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Pure White
+
#ffffff
+
Primary headings and high-emphasis text
+
+
+
+
+
+
Muted Smoke
+
#444444
+
De-emphasized body text, metadata
+
+
+
+
+
+
Ghost White
+
rgba(255,255,255,0.6)
+
Secondary body text and link labels
+
+
+
+
+
+
Whisper White
+
rgba(255,255,255,0.5)
+
Tertiary button text and placeholders
+
+
+
+
+
+
Phantom White
+
rgba(255,255,255,0.2)
+
Subtle button backgrounds and receded UI
+
+
+
+
+ +
+

Border System

+
+
+
+
+
Border Mist 12
+
rgba(255,255,255,0.12)
+
Prominent card edges, content separators
+
+
+
+
+
+
Border Mist 10
+
rgba(255,255,255,0.10)
+
Standard container borders
+
+
+
+
+
+
Border Mist 06
+
rgba(255,255,255,0.06)
+
Section dividers, subtle groupings
+
+
+
+
+
+
Border Mist 04
+
rgba(255,255,255,0.04)
+
Faintest atmospheric separation
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — 64px / 400 / 0.87 / normal — abcDiatype
+
+ +
+
Section Heading
+
Section Heading — 48px / 400 / 1.00 / normal — abcDiatype
+
+ +
+
Sub-heading Large
+
Sub-heading Large — 40px / 400 / 1.00 / normal — abcDiatype
+
+ +
+
Sub-heading
+
Sub-heading — 28px / 400 / 1.20 / normal — abcDiatype
+
+ +
+
Card Title
+
Card Title — 24px / 500 / 1.20 / normal — abcDiatype
+
+ +
+
Feature Label
+
Feature Label — 20px / 500 / 1.20 / normal — abcDiatype
+
+ +
+
Body Large
+
Body Large — 18px / 400 / 1.20 / normal — abcDiatype
+
+ +
+
Body / Button Text
+
Body / Button — 16px / 400 / 1.50 / normal — abcDiatype
+
+ +
+
Body Small — used for longer-form content blocks
+
Body Small — 15px / 400 / 1.63 / normal — abcDiatype
+
+ +
+
Caption text for descriptions and metadata
+
Caption — 14px / 400 / 1.63 / normal — abcDiatype
+
+ +
+
Label Text
+
Label — 13px / 500 / 1.50 / normal — abcDiatype
+
+ +
+
TAG / OVERLINE
+
Tag / Overline — 12px / 500 / 1.00 / 0.3px / uppercase — abcDiatype
+
+ +
+
const agent = composio.create({ tools: ["github", "slack"] })
+
Code Body — 16px / 400 / 1.50 / -0.32px — JetBrains Mono
+
+ +
+
npx composio-cli init --framework langchain
+
Code Small — 14px / 400 / 1.50 / -0.28px — JetBrains Mono
+
+ +
+
import { Composio } from "composio-core"
+
Code Caption — 12px / 400 / 1.50 / -0.28px — JetBrains Mono
+
+ +
+
CODE OVERLINE
+
Code Overline — 14px / 400 / 1.43 / 0.7px / uppercase — JetBrains Mono
+
+ +
+
CODE MICRO TAG
+
Code Micro — 11px / 400 / 1.33 / 0.55px / uppercase — JetBrains Mono
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Primary / White Fill
+
+
+ +
Cyan Accent CTA
+
+
+ +
Ghost / Signal Blue
+
+
+ +
Ghost / Charcoal
+
+
+ +
Phantom
+
+
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Border Mist 08

+

Standard content card with subtle white border at 8% opacity on pure black surface. Deeper darkness for the dark mode variant.

+
+
+
Brutalist Shadow
+

Hard Offset 4px

+

Hard-offset shadow intensified to 40% opacity on pure black. The brutalist personality cuts deeper against the absolute dark.

+
+
+
Floating + Glow
+

Cyan Glow Halo

+

Soft diffuse shadow at 70% opacity with restrained cyan glow. The deeper black makes the glow more pronounced.

+
+
+
+ +
+ + +
+
05 / Form Elements
+

Inputs & Forms

+ +
+
+
+ + +
+
+ + +
+
+ + +
Invalid API key format
+
+
+
+
+ + +
+
+
+
+ +
+ + +
+
06 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale builds from 1px to 40px.

+ +
+
+
+
1px
+
+
+
+
2px
+
+
+
+
4px
+
+
+
+
6px
+
+
+
+
8px
+
+
+
+
10px
+
+
+
+
12px
+
+
+
+
14px
+
+
+
+
16px
+
+
+
+
18px
+
+
+
+
20px
+
+
+
+
24px
+
+
+
+
30px
+
+
+
+
32px
+
+
+
+
40px
+
+
+
+ +
+ + +
+
07 / Border Radius Scale
+

Border Radius

+ +
+
+
+
0px
+
Sharp / None
+
+
+
+
2px
+
Nearly squared
+
+
+
+
4px
+
Subtly rounded
+
+
+
+
37px
+
Pill-shaped
+
+
+
+
9999px
+
Full round
+
+
+
+ +
+ + +
+
08 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
+
Flat
+
No shadow, no border. Page background and inline text.
+
+
Level 0
+
+
+
+
Contained
+
Border Mist 04. Background groupings, subtle sections.
+
+
Level 1
+
+
+
+
Card
+
Border Mist 08. Standard content cards, code blocks.
+
+
Level 2
+
+
+
+
Brutalist
+
Hard offset shadow (4px 4px, 40% black). Distinctive feature highlights.
+
+
Level 3
+
+
+
+
Floating
+
Soft diffuse shadow (0px 8px 32px, 70% black). Modals, overlays.
+
+
Level 4
+
+
+
+ +
+ + + diff --git a/design-md/composio/preview.html b/design-md/composio/preview.html new file mode 100644 index 0000000..d3c1476 --- /dev/null +++ b/design-md/composio/preview.html @@ -0,0 +1,933 @@ + + + + + +Design System Preview: Composio + + + + + + + + + + + +
+

Design System Preview:
Composio

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Composio Cobalt
+
#0007cd
+
Core brand color for high-priority interactive elements
+
+
+
+
+ +
+

Secondary & Accent

+
+
+
+
+
Electric Cyan
+
#00ffff
+
Attention-grabbing accent for glows and highlights
+
+
+
+
+
+
Signal Blue
+
#0089ff
+
Button borders and interactive focus states
+
+
+
+
+
+
Ocean Blue
+
#0096ff
+
CTA button accent borders
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Void Black
+
#0f0f0f
+
Primary page background
+
+
+
+
+
+
Pure Black
+
#000000
+
Card interiors and deep-nested containers
+
+
+
+
+
+
Charcoal
+
#2c2c2c
+
Secondary button borders and dividers
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Pure White
+
#ffffff
+
Primary headings and high-emphasis text
+
+
+
+
+
+
Muted Smoke
+
#444444
+
De-emphasized body text, metadata
+
+
+
+
+
+
Ghost White
+
rgba(255,255,255,0.6)
+
Secondary body text and link labels
+
+
+
+
+
+
Whisper White
+
rgba(255,255,255,0.5)
+
Tertiary button text and placeholders
+
+
+
+
+
+
Phantom White
+
rgba(255,255,255,0.2)
+
Subtle button backgrounds and receded UI
+
+
+
+
+ +
+

Border System

+
+
+
+
+
Border Mist 12
+
rgba(255,255,255,0.12)
+
Prominent card edges, content separators
+
+
+
+
+
+
Border Mist 10
+
rgba(255,255,255,0.10)
+
Standard container borders
+
+
+
+
+
+
Border Mist 06
+
rgba(255,255,255,0.06)
+
Section dividers, subtle groupings
+
+
+
+
+
+
Border Mist 04
+
rgba(255,255,255,0.04)
+
Faintest atmospheric separation
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — 64px / 400 / 0.87 / normal — abcDiatype
+
+ +
+
Section Heading
+
Section Heading — 48px / 400 / 1.00 / normal — abcDiatype
+
+ +
+
Sub-heading Large
+
Sub-heading Large — 40px / 400 / 1.00 / normal — abcDiatype
+
+ +
+
Sub-heading
+
Sub-heading — 28px / 400 / 1.20 / normal — abcDiatype
+
+ +
+
Card Title
+
Card Title — 24px / 500 / 1.20 / normal — abcDiatype
+
+ +
+
Feature Label
+
Feature Label — 20px / 500 / 1.20 / normal — abcDiatype
+
+ +
+
Body Large
+
Body Large — 18px / 400 / 1.20 / normal — abcDiatype
+
+ +
+
Body / Button Text
+
Body / Button — 16px / 400 / 1.50 / normal — abcDiatype
+
+ +
+
Body Small — used for longer-form content blocks
+
Body Small — 15px / 400 / 1.63 / normal — abcDiatype
+
+ +
+
Caption text for descriptions and metadata
+
Caption — 14px / 400 / 1.63 / normal — abcDiatype
+
+ +
+
Label Text
+
Label — 13px / 500 / 1.50 / normal — abcDiatype
+
+ +
+
TAG / OVERLINE
+
Tag / Overline — 12px / 500 / 1.00 / 0.3px / uppercase — abcDiatype
+
+ +
+
const agent = composio.create({ tools: ["github", "slack"] })
+
Code Body — 16px / 400 / 1.50 / -0.32px — JetBrains Mono
+
+ +
+
npx composio-cli init --framework langchain
+
Code Small — 14px / 400 / 1.50 / -0.28px — JetBrains Mono
+
+ +
+
import { Composio } from "composio-core"
+
Code Caption — 12px / 400 / 1.50 / -0.28px — JetBrains Mono
+
+ +
+
CODE OVERLINE
+
Code Overline — 14px / 400 / 1.43 / 0.7px / uppercase — JetBrains Mono
+
+ +
+
CODE MICRO TAG
+
Code Micro — 11px / 400 / 1.33 / 0.55px / uppercase — JetBrains Mono
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Primary / White Fill
+
+
+ +
Cyan Accent CTA
+
+
+ +
Ghost / Signal Blue
+
+
+ +
Ghost / Charcoal
+
+
+ +
Phantom
+
+
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Border Mist 10

+

Standard content card with subtle white border at 10% opacity and 4px radius. The default container for most content blocks.

+
+
+
Brutalist Shadow
+

Hard Offset 4px

+

Distinctive hard-offset shadow (4px right, 4px down) at 15% opacity. Adds a raw, retro-computing personality to select elements.

+
+
+
Floating + Glow
+

Cyan Glow Halo

+

Soft diffuse shadow (8px 32px) with a radial cyan gradient halo. Used for highest-emphasis elevated content and feature highlights.

+
+
+
+ +
+ + +
+
05 / Form Elements
+

Inputs & Forms

+ +
+
+
+ + +
+
+ + +
+
+ + +
Invalid API key format
+
+
+
+
+ + +
+
+
+
+ +
+ + +
+
06 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale builds from 1px to 40px.

+ +
+
+
+
1px
+
+
+
+
2px
+
+
+
+
4px
+
+
+
+
6px
+
+
+
+
8px
+
+
+
+
10px
+
+
+
+
12px
+
+
+
+
14px
+
+
+
+
16px
+
+
+
+
18px
+
+
+
+
20px
+
+
+
+
24px
+
+
+
+
30px
+
+
+
+
32px
+
+
+
+
40px
+
+
+
+ +
+ + +
+
07 / Border Radius Scale
+

Border Radius

+ +
+
+
+
0px
+
Sharp / None
+
+
+
+
2px
+
Nearly squared
+
+
+
+
4px
+
Subtly rounded
+
+
+
+
37px
+
Pill-shaped
+
+
+
+
9999px
+
Full round
+
+
+
+ +
+ + +
+
08 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
+
Flat
+
No shadow, no border. Page background and inline text.
+
+
Level 0
+
+
+
+
Contained
+
Border Mist 04-08. Background groupings, subtle sections.
+
+
Level 1
+
+
+
+
Card
+
Border Mist 10-12. Standard content cards, code blocks.
+
+
Level 2
+
+
+
+
Brutalist
+
Hard offset shadow (4px 4px, 15% black). Distinctive feature highlights.
+
+
Level 3
+
+
+
+
Floating
+
Soft diffuse shadow (0px 8px 32px, 50% black). Modals, overlays.
+
+
Level 4
+
+
+
+ +
+ + + diff --git a/design-md/cursor/DESIGN.md b/design-md/cursor/DESIGN.md new file mode 100644 index 0000000..81a38a2 --- /dev/null +++ b/design-md/cursor/DESIGN.md @@ -0,0 +1,309 @@ +# Design System: Cursor + +## 1. Visual Theme & Atmosphere + +Cursor's website is a study in warm minimalism meets code-editor elegance. The entire experience is built on a warm off-white canvas (`#f2f1ed`) with dark warm-brown text (`#26251e`) -- not pure black, not neutral gray, but a deeply warm near-black with a yellowish undertone that evokes old paper, ink, and craft. This warmth permeates every surface: backgrounds lean toward cream (`#e6e5e0`, `#ebeae5`), borders dissolve into transparent warm overlays using `oklab` color space, and even the error state (`#cf2d56`) carries warmth rather than clinical red. The result feels more like a premium print publication than a tech website. + +The custom CursorGothic font is the typographic signature -- a gothic sans-serif with aggressive negative letter-spacing at display sizes (-2.16px at 72px) that creates a compressed, engineered feel. As a secondary voice, the jjannon serif font (with OpenType `"cswh"` contextual swash alternates) provides literary counterpoint for body copy and editorial passages. The monospace voice comes from berkeleyMono, a refined coding font that connects the marketing site to Cursor's core identity as a code editor. This three-font system (gothic display, serif body, mono code) gives Cursor one of the most typographically rich palettes in developer tooling. + +The border system is particularly distinctive -- Cursor uses `oklab()` color space for border colors, applying warm brown at various alpha levels (0.1, 0.2, 0.55) to create borders that feel organic rather than mechanical. The signature border color `oklab(0.263084 -0.00230259 0.0124794 / 0.1)` is not a simple rgba value but a perceptually uniform color that maintains visual consistency across different backgrounds. + +**Key Characteristics:** +- CursorGothic with aggressive negative letter-spacing (-2.16px at 72px, -0.72px at 36px) for compressed display headings +- jjannon serif for body text with OpenType `"cswh"` (contextual swash alternates) +- berkeleyMono for code and technical labels +- Warm off-white background (`#f2f1ed`) instead of pure white -- the entire system is warm-shifted +- Primary text color `#26251e` (warm near-black with yellow undertone) +- Accent orange `#f54e00` for brand highlight and links +- oklab-space borders at various alpha levels for perceptually uniform edge treatment +- Pill-shaped elements with extreme radius (33.5M px, effectively full-pill) +- 8px base spacing system with fine-grained sub-8px increments (1.5px, 2px, 2.5px, 3px, 4px, 5px, 6px) + +## 2. Color Palette & Roles + +### Primary +- **Cursor Dark** (`#26251e`): Primary text, headings, dark UI surfaces. A warm near-black with distinct yellow-brown undertone -- the defining color of the system. +- **Cursor Cream** (`#f2f1ed`): Page background, primary surface. Not white but a warm cream that sets the entire warm tone. +- **Cursor Light** (`#e6e5e0`): Secondary surface, button backgrounds, card fills. A slightly warmer, slightly darker cream. +- **Pure White** (`#ffffff`): Used sparingly for maximum contrast elements and specific surface highlights. +- **True Black** (`#000000`): Minimal use, specific code/console contexts. + +### Accent +- **Cursor Orange** (`#f54e00`): Brand accent, `--color-accent`. A vibrant red-orange used for primary CTAs, active links, and brand moments. Warm and urgent. +- **Gold** (`#c08532`): Secondary accent, warm gold for premium or highlighted contexts. + +### Semantic +- **Error** (`#cf2d56`): `--color-error`. A warm crimson-rose rather than cold red. +- **Success** (`#1f8a65`): `--color-success`. A muted teal-green, warm-shifted. + +### Timeline / Feature Colors +- **Thinking** (`#dfa88f`): Warm peach for "thinking" state in AI timeline. +- **Grep** (`#9fc9a2`): Soft sage green for search/grep operations. +- **Read** (`#9fbbe0`): Soft blue for file reading operations. +- **Edit** (`#c0a8dd`): Soft lavender for editing operations. + +### Surface Scale +- **Surface 100** (`#f7f7f4`): Lightest button/card surface, barely tinted. +- **Surface 200** (`#f2f1ed`): Primary page background. +- **Surface 300** (`#ebeae5`): Button default background, subtle emphasis. +- **Surface 400** (`#e6e5e0`): Card backgrounds, secondary surfaces. +- **Surface 500** (`#e1e0db`): Tertiary button background, deeper emphasis. + +### Border Colors +- **Border Primary** (`oklab(0.263084 -0.00230259 0.0124794 / 0.1)`): Standard border, 10% warm brown in oklab space. +- **Border Medium** (`oklab(0.263084 -0.00230259 0.0124794 / 0.2)`): Emphasized border, 20% warm brown. +- **Border Strong** (`rgba(38, 37, 30, 0.55)`): Strong borders, table rules. +- **Border Solid** (`#26251e`): Full-opacity dark border for maximum contrast. +- **Border Light** (`#f2f1ed`): Light border matching page background. + +### Shadows & Depth +- **Card Shadow** (`rgba(0,0,0,0.14) 0px 28px 70px, rgba(0,0,0,0.1) 0px 14px 32px, oklab(0.263084 -0.00230259 0.0124794 / 0.1) 0px 0px 0px 1px`): Heavy elevated card with warm oklab border ring. +- **Ambient Shadow** (`rgba(0,0,0,0.02) 0px 0px 16px, rgba(0,0,0,0.008) 0px 0px 8px`): Subtle ambient glow for floating elements. + +## 3. Typography Rules + +### Font Family +- **Display/Headlines**: `CursorGothic`, with fallbacks: `CursorGothic Fallback, system-ui, Helvetica Neue, Helvetica, Arial` +- **Body/Editorial**: `jjannon`, with fallbacks: `Iowan Old Style, Palatino Linotype, URW Palladio L, P052, ui-serif, Georgia, Cambria, Times New Roman, Times` +- **Code/Technical**: `berkeleyMono`, with fallbacks: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New` +- **UI/System**: `system-ui`, with fallbacks: `-apple-system, Segoe UI, Helvetica Neue, Arial` +- **Icons**: `CursorIcons16` (icon font at 14px and 12px) +- **OpenType Features**: `"cswh"` on jjannon body text, `"ss09"` on CursorGothic buttons/captions + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Hero | CursorGothic | 72px (4.50rem) | 400 | 1.10 (tight) | -2.16px | Maximum compression, hero statements | +| Section Heading | CursorGothic | 36px (2.25rem) | 400 | 1.20 (tight) | -0.72px | Feature sections, CTA headlines | +| Sub-heading | CursorGothic | 26px (1.63rem) | 400 | 1.25 (tight) | -0.325px | Card headings, sub-sections | +| Title Small | CursorGothic | 22px (1.38rem) | 400 | 1.30 (tight) | -0.11px | Smaller titles, list headings | +| Body Serif | jjannon | 19.2px (1.20rem) | 500 | 1.50 | normal | Editorial body with `"cswh"` | +| Body Serif SM | jjannon | 17.28px (1.08rem) | 400 | 1.35 | normal | Standard body text, descriptions | +| Body Sans | CursorGothic | 16px (1.00rem) | 400 | 1.50 | normal/0.08px | UI body text | +| Button Label | CursorGothic | 14px (0.88rem) | 400 | 1.00 (tight) | normal | Primary button text | +| Button Caption | CursorGothic | 14px (0.88rem) | 400 | 1.50 | 0.14px | Secondary button with `"ss09"` | +| Caption | CursorGothic | 11px (0.69rem) | 400-500 | 1.50 | normal | Small captions, metadata | +| System Heading | system-ui | 20px (1.25rem) | 700 | 1.55 | normal | System UI headings | +| System Caption | system-ui | 13px (0.81rem) | 500-600 | 1.33 | normal | System UI labels | +| System Micro | system-ui | 11px (0.69rem) | 500 | 1.27 (tight) | 0.048px | Uppercase micro labels | +| Mono Body | berkeleyMono | 12px (0.75rem) | 400 | 1.67 (relaxed) | normal | Code blocks | +| Mono Small | berkeleyMono | 11px (0.69rem) | 400 | 1.33 | -0.275px | Inline code, terminal | +| Lato Heading | Lato | 16px (1.00rem) | 600 | 1.33 | normal | Lato section headings | +| Lato Caption | Lato | 14px (0.88rem) | 400-600 | 1.33 | normal | Lato captions | +| Lato Micro | Lato | 12px (0.75rem) | 400-600 | 1.27 (tight) | 0.053px | Lato small labels | + +### Principles +- **Gothic compression for impact**: CursorGothic at display sizes uses -2.16px letter-spacing at 72px, progressively relaxing: -0.72px at 36px, -0.325px at 26px, -0.11px at 22px, normal at 16px and below. The tracking creates a sense of precision engineering. +- **Serif for soul**: jjannon provides literary warmth. The `"cswh"` feature adds contextual swash alternates that give body text a calligraphic quality. +- **Three typographic voices**: Gothic (display/UI), serif (editorial/body), mono (code/technical). Each serves a distinct communication purpose. +- **Weight restraint**: CursorGothic uses weight 400 almost exclusively, relying on size and tracking for hierarchy rather than weight. System-ui components use 500-700 for functional emphasis. + +## 4. Component Stylings + +### Buttons + +**Primary (Warm Surface)** +- Background: `#ebeae5` (Surface 300) +- Text: `#26251e` (Cursor Dark) +- Padding: 10px 12px 10px 14px +- Radius: 8px +- Outline: none +- Hover: text shifts to `var(--color-error)` (`#cf2d56`) +- Focus shadow: `rgba(0,0,0,0.1) 0px 4px 12px` +- Use: Primary actions, main CTAs + +**Secondary Pill** +- Background: `#e6e5e0` (Surface 400) +- Text: `oklab(0.263 / 0.6)` (60% warm brown) +- Padding: 3px 8px +- Radius: full pill (33.5M px) +- Hover: text shifts to `var(--color-error)` +- Use: Tags, filters, secondary actions + +**Tertiary Pill** +- Background: `#e1e0db` (Surface 500) +- Text: `oklab(0.263 / 0.6)` (60% warm brown) +- Radius: full pill +- Use: Active filter state, selected tags + +**Ghost (Transparent)** +- Background: `rgba(38, 37, 30, 0.06)` (6% warm brown) +- Text: `rgba(38, 37, 30, 0.55)` (55% warm brown) +- Padding: 6px 12px +- Use: Tertiary actions, dismiss buttons + +**Light Surface** +- Background: `#f7f7f4` (Surface 100) or `#f2f1ed` (Surface 200) +- Text: `#26251e` or `oklab(0.263 / 0.9)` (90%) +- Padding: 0px 8px 1px 12px +- Use: Dropdown triggers, subtle interactive elements + +### Cards & Containers +- Background: `#e6e5e0` or `#f2f1ed` +- Border: `1px solid oklab(0.263 / 0.1)` (warm brown at 10%) +- Radius: 8px (standard), 4px (compact), 10px (featured) +- Shadow: `rgba(0,0,0,0.14) 0px 28px 70px, rgba(0,0,0,0.1) 0px 14px 32px` for elevated cards +- Hover: shadow intensification + +### Inputs & Forms +- Background: transparent or surface +- Text: `#26251e` +- Padding: 8px 8px 6px (textarea) +- Border: `1px solid oklab(0.263 / 0.1)` +- Focus: border shifts to `oklab(0.263 / 0.2)` or accent orange + +### Navigation +- Clean horizontal nav on warm cream background +- Cursor logotype left-aligned (~96x24px) +- Links: 14px CursorGothic or system-ui, weight 500 +- CTA button: warm surface with Cursor Dark text +- Tab navigation: bottom border `1px solid oklab(0.263 / 0.1)` with active tab differentiation + +### Image Treatment +- Code editor screenshots with `1px solid oklab(0.263 / 0.1)` border +- Rounded corners: 8px standard +- AI chat/timeline screenshots dominate feature sections +- Warm gradient or solid cream backgrounds behind hero images + +### Distinctive Components + +**AI Timeline** +- Vertical timeline showing AI operations: thinking (peach), grep (sage), read (blue), edit (lavender) +- Each step uses its semantic color with matching text +- Connected with vertical lines +- Core visual metaphor for Cursor's AI-first coding experience + +**Code Editor Previews** +- Dark code editor screenshots with warm cream border frame +- berkeleyMono for code text +- Syntax highlighting using timeline colors + +**Pricing Cards** +- Warm surface backgrounds with bordered containers +- Feature lists using jjannon serif for readability +- CTA buttons with accent orange or primary dark styling + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Fine scale: 1.5px, 2px, 2.5px, 3px, 4px, 5px, 6px (sub-8px for micro-adjustments) +- Standard scale: 8px, 10px, 12px, 14px (derived from extraction) +- Extended scale (inferred): 16px, 24px, 32px, 48px, 64px, 96px +- Notable: fine-grained sub-8px increments for precise icon/text alignment + +### Grid & Container +- Max content width: approximately 1200px +- Hero: centered single-column with generous top padding (80-120px) +- Feature sections: 2-3 column grids for cards and features +- Full-width sections with warm cream or slightly darker backgrounds +- Sidebar layouts for documentation and settings pages + +### Whitespace Philosophy +- **Warm negative space**: The cream background means whitespace has warmth and texture, unlike cold white minimalism. Large empty areas feel cozy rather than clinical. +- **Compressed text, open layout**: Aggressive negative letter-spacing on CursorGothic headlines is balanced by generous surrounding margins. Text is dense; space around it breathes. +- **Section variation**: Alternating surface tones (cream → lighter cream → cream) create subtle section differentiation without harsh boundaries. + +### Border Radius Scale +- Micro (1.5px): Fine detail elements +- Small (2px): Inline elements, code spans +- Medium (3px): Small containers, inline badges +- Standard (4px): Cards, images, compact buttons +- Comfortable (8px): Primary buttons, cards, menus +- Featured (10px): Larger containers, featured cards +- Full Pill (33.5M px / 9999px): Pill buttons, tags, badges + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | Page background, text blocks | +| Border Ring (Level 1) | `oklab(0.263 / 0.1) 0px 0px 0px 1px` | Standard card/container border (warm oklab) | +| Border Medium (Level 1b) | `oklab(0.263 / 0.2) 0px 0px 0px 1px` | Emphasized borders, active states | +| Ambient (Level 2) | `rgba(0,0,0,0.02) 0px 0px 16px, rgba(0,0,0,0.008) 0px 0px 8px` | Floating elements, subtle glow | +| Elevated Card (Level 3) | `rgba(0,0,0,0.14) 0px 28px 70px, rgba(0,0,0,0.1) 0px 14px 32px, oklab ring` | Modals, popovers, elevated cards | +| Focus | `rgba(0,0,0,0.1) 0px 4px 12px` on button focus | Interactive focus feedback | + +**Shadow Philosophy**: Cursor's depth system is built around two ideas. First, borders use perceptually uniform oklab color space rather than rgba, ensuring warm brown borders look consistent across different background tones. Second, elevation shadows use dramatically large blur values (28px, 70px) with moderate opacity (0.14, 0.1), creating a diffused, atmospheric lift rather than hard-edged drop shadows. Cards don't feel like they float above the page -- they feel like the page has gently opened a space for them. + +### Decorative Depth +- Warm cream surface variations create subtle tonal depth without shadows +- oklab borders at 10% and 20% create a spectrum of edge definition +- No harsh divider lines -- section separation through background tone shifts and spacing + +## 7. Interaction & Motion + +### Hover States +- Buttons: text color shifts to `--color-error` (`#cf2d56`) on hover -- a distinctive warm crimson that signals interactivity +- Links: color shift to accent orange (`#f54e00`) or underline decoration with `rgba(38, 37, 30, 0.4)` +- Cards: shadow intensification on hover (ambient → elevated) + +### Focus States +- Shadow-based focus: `rgba(0,0,0,0.1) 0px 4px 12px` for depth-based focus indication +- Border focus: `oklab(0.263 / 0.2)` (20% border) for input/form focus +- Consistent warm tone in all focus states -- no cold blue focus rings + +### Transitions +- Color transitions: 150ms ease for text/background color changes +- Shadow transitions: 200ms ease for elevation changes +- Transform: subtle scale or translate for interactive feedback + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <600px | Single column, reduced padding, stacked navigation | +| Tablet Small | 600-768px | 2-column grids begin | +| Tablet | 768-900px | Expanded card grids, sidebar appears | +| Desktop Small | 900-1279px | Full layout forming | +| Desktop | >1279px | Full layout, maximum content width | + +### Touch Targets +- Buttons use comfortable padding (6px-14px vertical, 8px-14px horizontal) +- Pill buttons maintain tap-friendly sizing with 3px-10px padding +- Navigation links at 14px with adequate spacing for touch + +### Collapsing Strategy +- Hero: 72px CursorGothic → 36px → 26px on smaller screens, maintaining proportional letter-spacing +- Navigation: horizontal links → hamburger menu on mobile +- Feature cards: 3-column → 2-column → single column stacked +- Code editor screenshots: maintain aspect ratio, may shrink with border treatment preserved +- Timeline visualization: horizontal → vertical stacking +- Section spacing: 80px+ → 48px → 32px on mobile + +### Image Behavior +- Editor screenshots maintain warm border treatment at all sizes +- AI timeline adapts from horizontal to vertical layout +- Product screenshots use responsive images with consistent border radius +- Full-width hero images scale proportionally + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA background: `#ebeae5` (warm cream button) +- Page background: `#f2f1ed` (warm off-white) +- Text color: `#26251e` (warm near-black) +- Secondary text: `rgba(38, 37, 30, 0.55)` (55% warm brown) +- Accent: `#f54e00` (orange) +- Error/hover: `#cf2d56` (warm crimson) +- Success: `#1f8a65` (muted teal) +- Border: `oklab(0.263084 -0.00230259 0.0124794 / 0.1)` or `rgba(38, 37, 30, 0.1)` as fallback + +### Example Component Prompts +- "Create a hero section on `#f2f1ed` warm cream background. Headline at 72px CursorGothic weight 400, line-height 1.10, letter-spacing -2.16px, color `#26251e`. Subtitle at 17.28px jjannon weight 400, line-height 1.35, color `rgba(38,37,30,0.55)`. Primary CTA button (`#ebeae5` bg, 8px radius, 10px 14px padding) with hover text shift to `#cf2d56`." +- "Design a card: `#e6e5e0` background, border `1px solid rgba(38,37,30,0.1)`. Radius 8px. Title at 22px CursorGothic weight 400, letter-spacing -0.11px. Body at 17.28px jjannon weight 400, color `rgba(38,37,30,0.55)`. Use `#f54e00` for link accents." +- "Build a pill tag: `#e6e5e0` background, `rgba(38,37,30,0.6)` text, full-pill radius (9999px), 3px 8px padding, 14px CursorGothic weight 400." +- "Create navigation: sticky `#f2f1ed` background with backdrop-filter blur. 14px system-ui weight 500 for links, `#26251e` text. CTA button right-aligned with `#ebeae5` bg and 8px radius. Bottom border `1px solid rgba(38,37,30,0.1)`." +- "Design an AI timeline showing four steps: Thinking (`#dfa88f`), Grep (`#9fc9a2`), Read (`#9fbbe0`), Edit (`#c0a8dd`). Each step: 14px system-ui label + 16px CursorGothic description + vertical connecting line in `rgba(38,37,30,0.1)`." + +### Iteration Guide +1. Always use warm tones -- `#f2f1ed` background, `#26251e` text, never pure white/black for primary surfaces +2. Letter-spacing scales with font size for CursorGothic: -2.16px at 72px, -0.72px at 36px, -0.325px at 26px, normal at 16px +3. Use `rgba(38, 37, 30, alpha)` as a CSS-compatible fallback for oklab borders +4. Three fonts, three voices: CursorGothic (display/UI), jjannon (editorial), berkeleyMono (code) +5. Pill shapes (9999px radius) for tags and filters; 8px radius for primary buttons and cards +6. Hover states use `#cf2d56` text color -- the warm crimson shift is a signature interaction +7. Shadows use large blur values (28px, 70px) for diffused atmospheric depth +8. The sub-8px spacing scale (1.5, 2, 2.5, 3, 4, 5, 6px) is critical for icon/text micro-alignment diff --git a/design-md/cursor/README.md b/design-md/cursor/README.md new file mode 100644 index 0000000..80cbb71 --- /dev/null +++ b/design-md/cursor/README.md @@ -0,0 +1,25 @@ +# Cursor — Design System + +> Design.md extracted from the public [cursor](https://cursor.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 Cursor 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 +![Cursor Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/cursor/preview-dark-screenshot.png) + +### Light Mode +![Cursor Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/cursor/preview-screenshot.png) diff --git a/design-md/cursor/preview-dark.html b/design-md/cursor/preview-dark.html new file mode 100644 index 0000000..4af6960 --- /dev/null +++ b/design-md/cursor/preview-dark.html @@ -0,0 +1,395 @@ + + + + + +Design System Preview: Cursor (Dark) + + + + + + + +
Dark Mode
+ + + +
+

Design System
Inspired by Cursor

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value -- visualized in warm dark tones.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Cursor Dark
#26251e
Primary text, headings
+
Cursor Cream
#f2f1ed
Page background
+
Cursor Light
#e6e5e0
Secondary surface
+
Pure White
#ffffff
Card surfaces
+
+ +
Accent & Semantic
+
+
Cursor Orange
#f54e00
Brand accent
+
Gold
#c08532
Secondary accent
+
Error
#cf2d56
Error, hover state
+
Success
#1f8a65
Success state
+
+ +
AI Timeline Colors
+
+
Thinking
#dfa88f
AI thinking state
+
Grep
#9fc9a2
Search operations
+
Read
#9fbbe0
File reading
+
Edit
#c0a8dd
Code editing
+
+ +
Surface Scale
+
+
Surface 100
#f7f7f4
Lightest surface
+
Surface 200
#f2f1ed
Page background
+
Surface 300
#ebeae5
Button default
+
Surface 400
#e6e5e0
Card backgrounds
+
Surface 500
#e1e0db
Active/pressed
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 72px / 400 / 1.10 / -2.16px / CursorGothic
+
Section Heading
Section Heading -- 36px / 400 / 1.20 / -0.72px / CursorGothic
+
Sub-heading
Sub-heading -- 26px / 400 / 1.25 / -0.325px / CursorGothic
+
Title Small
Title Small -- 22px / 400 / 1.30 / -0.11px / CursorGothic
+
Body Serif -- The AI-first code editor that helps you build software faster with intelligent assistance.
Body Serif -- 19.2px / 500 / 1.50 / jjannon (with cswh)
+
Body Serif Small -- Write code naturally with AI that understands your entire codebase.
Body Serif SM -- 17.28px / 400 / 1.35 / jjannon
+
Body Sans -- Standard UI text for navigation and interface elements
Body Sans -- 16px / 400 / 1.50 / CursorGothic
+
Button Label
Button Label -- 14px / 400 / 1.00 / CursorGothic
+
Caption -- Small metadata and labels
Caption -- 11px / 500 / 1.50 / CursorGothic
+
const editor = await cursor.init({ ai: true });
Mono Body -- 12px / 400 / 1.67 / berkeleyMono
+
AI OPERATIONS
System Micro -- 11px / 500 / uppercase / system-ui
+
+ +
+ +
+ +

Button Variants

+
+
Download Cursor
Primary Dark
+
Documentation
Primary Surface
+ +
AI-First
Pill Tag
+
Thinking
Timeline Pill
+
Grep
Timeline Pill
+
Read
Timeline Pill
+
Edit
Timeline Pill
+
+
+ +
+ +
+ +

Card Examples

+
+
+
AI
+

Tab Autocomplete

+

Cursor predicts your next edit and suggests multi-line changes. Accept with a single tab press for flow-state coding.

+
+
+
Elevated
+

Chat with Codebase

+

Ask questions about your entire repository. Cursor understands project structure, dependencies, and conventions.

+
+
+
Agent
+

Agentic Editing

+

Describe what you want in natural language. Cursor's agent mode makes multi-file changes across your codebase.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default (warm border)
+
Focus (accent orange)
+
Error (warm crimson)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
3
+
4
+
5
+
6
+
8
+
10
+
12
+
16
+
24
+
32
+
48
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
1.5px
Micro
+
2px
Inline
+
3px
Small
+
4px
Cards, inputs
+
8px
Buttons, cards
+
10px
Featured
+
9999px
Pills
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Border Ring
oklab warm border
+
Level 1b: Medium
Emphasized border
+
Level 2: Ambient
Subtle glow
+
Level 3: Elevated
Modal / popover
+
Focus
Interactive focus
+
+
+ + + + + diff --git a/design-md/cursor/preview.html b/design-md/cursor/preview.html new file mode 100644 index 0000000..668e40f --- /dev/null +++ b/design-md/cursor/preview.html @@ -0,0 +1,385 @@ + + + + + +Design System Preview: Cursor (Light) + + + + + + + + + +
+

Design System
Inspired by Cursor

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value -- visualized in warm cream tones.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Cursor Dark
#26251e
Primary text, headings
+
Cursor Cream
#f2f1ed
Page background
+
Cursor Light
#e6e5e0
Secondary surface
+
Pure White
#ffffff
Card surfaces
+
+ +
Accent & Semantic
+
+
Cursor Orange
#f54e00
Brand accent
+
Gold
#c08532
Secondary accent
+
Error
#cf2d56
Error, hover state
+
Success
#1f8a65
Success state
+
+ +
AI Timeline Colors
+
+
Thinking
#dfa88f
AI thinking state
+
Grep
#9fc9a2
Search operations
+
Read
#9fbbe0
File reading
+
Edit
#c0a8dd
Code editing
+
+ +
Surface Scale
+
+
Surface 100
#f7f7f4
Lightest surface
+
Surface 200
#f2f1ed
Page background
+
Surface 300
#ebeae5
Button default
+
Surface 400
#e6e5e0
Card backgrounds
+
Surface 500
#e1e0db
Active/pressed
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 72px / 400 / 1.10 / -2.16px / CursorGothic
+
Section Heading
Section Heading -- 36px / 400 / 1.20 / -0.72px / CursorGothic
+
Sub-heading
Sub-heading -- 26px / 400 / 1.25 / -0.325px / CursorGothic
+
Title Small
Title Small -- 22px / 400 / 1.30 / -0.11px / CursorGothic
+
Body Serif -- The AI-first code editor that helps you build software faster with intelligent assistance.
Body Serif -- 19.2px / 500 / 1.50 / jjannon (with cswh)
+
Body Serif Small -- Write code naturally with AI that understands your entire codebase.
Body Serif SM -- 17.28px / 400 / 1.35 / jjannon
+
Body Sans -- Standard UI text for navigation and interface elements
Body Sans -- 16px / 400 / 1.50 / CursorGothic
+
Button Label
Button Label -- 14px / 400 / 1.00 / CursorGothic
+
Caption -- Small metadata and labels
Caption -- 11px / 500 / 1.50 / CursorGothic
+
const editor = await cursor.init({ ai: true });
Mono Body -- 12px / 400 / 1.67 / berkeleyMono
+
AI OPERATIONS
System Micro -- 11px / 500 / uppercase / system-ui
+
+ +
+ +
+ +

Button Variants

+
+
Download Cursor
Primary Dark
+
Documentation
Primary Surface
+ +
AI-First
Pill Tag
+
Thinking
Timeline Pill
+
Grep
Timeline Pill
+
Read
Timeline Pill
+
Edit
Timeline Pill
+
+
+ +
+ +
+ +

Card Examples

+
+
+
AI
+

Tab Autocomplete

+

Cursor predicts your next edit and suggests multi-line changes. Accept with a single tab press for flow-state coding.

+
+
+
Elevated
+

Chat with Codebase

+

Ask questions about your entire repository. Cursor understands project structure, dependencies, and conventions.

+
+
+
Agent
+

Agentic Editing

+

Describe what you want in natural language. Cursor's agent mode makes multi-file changes across your codebase.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default (warm border)
+
Focus (accent orange)
+
Error (warm crimson)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
3
+
4
+
5
+
6
+
8
+
10
+
12
+
16
+
24
+
32
+
48
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
1.5px
Micro
+
2px
Inline
+
3px
Small
+
4px
Cards, inputs
+
8px
Buttons, cards
+
10px
Featured
+
9999px
Pills
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Border Ring
oklab warm border
+
Level 1b: Medium
Emphasized border
+
Level 2: Ambient
Subtle glow
+
Level 3: Elevated
Modal / popover
+
Focus
Interactive focus
+
+
+ + + + + diff --git a/design-md/expo/DESIGN.md b/design-md/expo/DESIGN.md new file mode 100644 index 0000000..200cbd3 --- /dev/null +++ b/design-md/expo/DESIGN.md @@ -0,0 +1,281 @@ +# Design System: Expo + +## 1. Visual Theme & Atmosphere + +Expo's interface is a luminous, confidence-radiating developer platform built on the premise that tools for building apps should feel as polished as the apps themselves. The entire experience lives on a bright, airy canvas — a cool-tinted off-white (`#f0f0f3`) that gives the page a subtle technological coolness without the starkness of pure white. This is a site that breathes: enormous vertical spacing between sections creates a gallery-like pace where each feature gets its own "room." + +The design language is decisively monochromatic — pure black (`#000000`) headlines against the lightest possible backgrounds, with a spectrum of cool blue-grays (`#60646c`, `#b0b4ba`, `#555860`) handling all secondary communication. Color is almost entirely absent from the interface itself; when it appears, it's reserved for product screenshots, app icons, and the React universe illustration — making the actual content burst with life against the neutral canvas. + +What makes Expo distinctive is its pill-shaped geometry. Buttons, tabs, video containers, and even images use generously rounded or fully pill-shaped corners (24px–9999px), creating an organic, approachable feel that contradicts the typical sharp-edged developer tool aesthetic. Combined with tight letter-spacing on massive headlines (-1.6px to -3px at 64px), the result is a design that's simultaneously premium and friendly — like an Apple product page reimagined for developers. + +**Key Characteristics:** +- Luminous cool-white canvas (`#f0f0f3`) with gallery-like vertical spacing +- Strictly monochromatic: pure black headlines, cool blue-gray body text, no decorative color +- Pill-shaped geometry everywhere — buttons, tabs, containers, images (24px–9999px radius) +- Massive display headlines (64px) with extreme negative letter-spacing (-1.6px to -3px) +- Inter as the sole typeface, used at weights 400–900 for full expressive range +- Whisper-soft shadows that barely lift elements from the surface +- Product screenshots as the only source of color in the interface + +## 2. Color Palette & Roles + +### Primary +- **Expo Black** (`#000000`): The absolute anchor — used for primary headlines, CTA buttons, and the brand identity. Pure black on cool white creates maximum contrast without feeling aggressive. +- **Near Black** (`#1c2024`): The primary text color for body content — a barely perceptible blue-black that's softer than pure #000 for extended reading. + +### Secondary & Accent +- **Link Cobalt** (`#0d74ce`): The standard link color — a trustworthy, saturated blue that signals interactivity without competing with the monochrome hierarchy. +- **Legal Blue** (`#476cff`): A brighter, more saturated blue for legal/footer links — slightly more attention-grabbing than Link Cobalt. +- **Widget Sky** (`#47c2ff`): A light, friendly cyan-blue for widget branding elements — the brightest accent in the system. +- **Preview Purple** (`#8145b5`): A rich violet used for "preview" or beta feature indicators — creating clear visual distinction from standard content. + +### Surface & Background +- **Cloud Gray** (`#f0f0f3`): The primary page background — a cool off-white with the faintest blue-violet tint. Not warm, not sterile — precisely technological. +- **Pure White** (`#ffffff`): Card surfaces, button backgrounds, and elevated content containers. Creates a clear "lifted" distinction from Cloud Gray. +- **Widget Dark** (`#1a1a1a`): Dark surface for dark-theme widgets and overlay elements. +- **Banner Dark** (`#171717`): The darkest surface variant, used for promotional banners and high-contrast containers. + +### Neutrals & Text +- **Slate Gray** (`#60646c`): The workhorse secondary text color (305 instances). A cool blue-gray that's authoritative without being heavy. +- **Mid Slate** (`#555860`): Slightly darker than Slate, used for emphasized secondary text. +- **Silver** (`#b0b4ba`): Tertiary text, placeholders, and de-emphasized metadata. Comfortably readable but clearly receded. +- **Pewter** (`#999999`): Accordion icons and deeply de-emphasized UI elements in dark contexts. +- **Light Silver** (`#cccccc`): Arrow icons and decorative elements in dark contexts. +- **Dark Slate** (`#363a3f`): Borders on dark surfaces, switch tracks, and emphasized containment. +- **Charcoal** (`#333333`): Dark mode switch backgrounds and deep secondary surfaces. + +### Semantic & Accent +- **Warning Amber** (`#ab6400`): A warm, deep amber for warning states — deliberately not bright yellow, conveying seriousness. +- **Destructive Rose** (`#eb8e90`): A soft pink-coral for disabled destructive actions — gentler than typical red, reducing alarm fatigue. +- **Border Lavender** (`#e0e1e6`): Standard card/container borders — a cool lavender-gray that's visible without being heavy. +- **Input Border** (`#d9d9e0`): Button and form element borders — slightly warmer/darker than card borders for interactive elements. +- **Dark Focus Ring** (`#2547d0`): Deep blue for keyboard focus indicators in dark theme contexts. + +### Gradient System +- The design is notably **gradient-free** in the interface layer. Visual richness comes from product screenshots, the React universe illustration, and careful shadow layering rather than color gradients. This absence IS the design decision — gradients would undermine the clinical precision. + +## 3. Typography Rules + +### Font Family +- **Primary**: `Inter`, with fallbacks: `-apple-system, system-ui` +- **Monospace**: `JetBrains Mono`, with fallback: `ui-monospace` +- **System Fallback**: `system-ui, Segoe UI, Roboto, Helvetica, Arial, Apple Color Emoji, Segoe UI Emoji` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display / Hero | Inter | 64px (4rem) | 700–900 | 1.10 (tight) | -1.6px to -3px | Maximum impact, extreme tracking | +| Section Heading | Inter | 48px (3rem) | 600 | 1.10 (tight) | -2px | Feature section anchors | +| Sub-heading | Inter | 20px (1.25rem) | 600 | 1.20 (tight) | -0.25px | Card titles, feature names | +| Body Large | Inter | 18px (1.13rem) | 400–500 | 1.40 | normal | Intro paragraphs, section descriptions | +| Body / Button | Inter | 16px (1rem) | 400–700 | 1.25–1.40 | normal | Standard text, nav links, buttons | +| Caption / Label | Inter | 14px (0.88rem) | 400–600 | 1.00–1.40 | normal | Descriptions, metadata, badge text | +| Tag / Small | Inter | 12px (0.75rem) | 500 | 1.00–1.60 | normal | Smallest sans-serif text, badges | +| Code Body | JetBrains Mono | 16px (1rem) | 400–600 | 1.40 | normal | Inline code, terminal commands | +| Code Caption | JetBrains Mono | 14px (0.88rem) | 400–600 | 1.40 | normal | Code snippets, technical labels | +| Code Small | JetBrains Mono | 12px (0.75rem) | 400 | 1.60 | normal | Uppercase tech tags | + +### Principles +- **One typeface, full expression**: Inter is the only sans-serif, used from weight 400 (regular) through 900 (black). This gives the design a unified voice while still achieving dramatic contrast between whisper-light body text and thundering display headlines. +- **Extreme negative tracking at scale**: Headlines at 64px use -1.6px to -3px letter-spacing, creating ultra-dense text blocks that feel like logotypes. This aggressive compression is the signature typographic move. +- **Weight as hierarchy**: 700–900 for display, 600 for headings, 500 for emphasis, 400 for body. The jumps are decisive — no ambiguous in-between weights. +- **Consistent 1.40 body line-height**: Nearly all body and UI text shares 1.40 line-height, creating a rhythmic vertical consistency. + +## 4. Component Stylings + +### Buttons + +**Primary (White on border)** +- Background: Pure White (`#ffffff`) +- Text: Near Black (`#1c2024`) +- Padding: 0px 12px (compact, content-driven height) +- Border: thin solid Input Border (`1px solid #d9d9e0`) +- Radius: subtly rounded (6px) +- Shadow: subtle combined shadow on hover +- The understated default — clean, professional, unheroic + +**Primary Pill** +- Same as Primary but with pill-shaped radius (9999px) +- Used for hero CTAs and high-emphasis actions +- The extra roundness signals "start here" + +**Dark Primary** +- Background: Expo Black (`#000000`) +- Text: Pure White (`#ffffff`) +- Pill-shaped (9999px) or generously rounded (32–36px) +- No border (black IS the border) +- The maximum-emphasis CTA — reserved for primary conversion actions + +### Cards & Containers +- Background: Pure White (`#ffffff`) — clearly lifted from Cloud Gray page +- Border: thin solid Border Lavender (`1px solid #e0e1e6`) for standard cards +- Radius: comfortably rounded (8px) for standard cards; generously rounded (16–24px) for featured containers +- Shadow Level 1: Whisper (`rgba(0,0,0,0.08) 0px 3px 6px, rgba(0,0,0,0.07) 0px 2px 4px`) — barely perceptible lift +- Shadow Level 2: Standard (`rgba(0,0,0,0.1) 0px 10px 20px, rgba(0,0,0,0.05) 0px 3px 6px`) — clear floating elevation +- Hover: likely subtle shadow deepening or background shift + +### Inputs & Forms +- Background: Pure White (`#ffffff`) +- Text: Near Black (`#1c2024`) +- Border: thin solid Input Border (`1px solid #d9d9e0`) +- Padding: 0px 12px (inline with button sizing) +- Radius: subtly rounded (6px) +- Focus: blue ring shadow via CSS custom property + +### Navigation +- Sticky top nav on transparent/blurred background +- Logo: Expo wordmark in black +- Links: Near Black (`#1c2024`) or Slate Gray (`#60646c`) at 14–16px Inter weight 500 +- CTA: Black pill button ("Sign Up") on the right +- GitHub star badge as social proof +- Status indicator ("All Systems Operational") with green dot + +### Image Treatment +- Product screenshots and device mockups are the visual heroes +- Generously rounded corners (24px) on video and image containers +- Screenshots shown in realistic device frames +- Dark UI screenshots provide contrast against the light canvas +- Full-bleed within rounded containers + +### Distinctive Components + +**Universe React Logo** +- Animated/illustrated React logo as the visual centerpiece +- Connects Expo's identity to the React ecosystem +- The only illustrative element on an otherwise photographic page + +**Device Preview Grid** +- Multiple device types (phone, tablet, web) shown simultaneously +- Demonstrates cross-platform capability visually +- Each device uses realistic device chrome + +**Status Badge** +- "All Systems Operational" pill in the nav +- Green dot + text — compact trust signal +- Pill-shaped (36px radius) + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 2px, 4px, 8px, 12px, 16px, 24px, 32px, 40px, 48px, 64px, 80px, 96px, 144px +- Button padding: 0px 12px (unusually compact — height driven by line-height) +- Card internal padding: approximately 24–32px +- Section vertical spacing: enormous (estimated 96–144px between major sections) +- Component gap: 16–24px between sibling elements + +### Grid & Container +- Max container width: approximately 1200–1400px, centered +- Hero: centered single-column with massive breathing room +- Feature sections: alternating layouts (image left/right, full-width showcases) +- Card grids: 2–3 column for feature highlights +- Full-width sections with contained inner content + +### Whitespace Philosophy +- **Gallery-like pacing**: Each section feels like its own exhibit, surrounded by vast empty space. This creates a premium, unhurried browsing experience. +- **Breathing room is the design**: The generous whitespace IS the primary design element — it communicates confidence, quality, and that each feature deserves individual attention. +- **Content islands**: Sections float as isolated "islands" in the white space, connected by scrolling rather than visual continuation. + +### Border Radius Scale +- Nearly squared (4px): Small inline elements, tags +- Subtly rounded (6px): Buttons, form inputs, combo boxes — the functional interactive radius +- Comfortably rounded (8px): Standard content cards, containers +- Generously rounded (16px): Feature tabs, content panels +- Very rounded (24px): Buttons, video/image containers, tabpanels — the signature softness +- Highly rounded (32–36px): Hero CTAs, status badges, nav buttons +- Pill-shaped (9999px): Primary action buttons, tags, avatars — maximum friendliness + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | Cloud Gray page background, inline text | +| Surface (Level 1) | White bg, no shadow | Standard white cards on Cloud Gray | +| Whisper (Level 2) | `rgba(0,0,0,0.08) 0px 3px 6px` + `rgba(0,0,0,0.07) 0px 2px 4px` | Subtle card lift, hover states | +| Elevated (Level 3) | `rgba(0,0,0,0.1) 0px 10px 20px` + `rgba(0,0,0,0.05) 0px 3px 6px` | Feature showcases, product screenshots | +| Modal (Level 4) | Dark overlay (`--dialog-overlay-background-color`) + heavy shadow | Dialogs, overlays | + +**Shadow Philosophy**: Expo uses shadows as gentle whispers rather than architectural statements. The primary depth mechanism is **background color contrast** — white cards floating on Cloud Gray — rather than shadow casting. When shadows appear, they're soft, diffused, and directional (downward), creating the feeling of paper hovering millimeters above a desk. + +## 7. Do's and Don'ts + +### Do +- Use Cloud Gray (`#f0f0f3`) as the page background and Pure White (`#ffffff`) for elevated cards — the two-tone light system is essential +- Keep display headlines at extreme negative letter-spacing (-1.6px to -3px at 64px) for the signature compressed look +- Use pill-shaped (9999px) radius for primary CTA buttons — the organic shape is core to the identity +- Reserve black (`#000000`) for headlines and primary CTAs — it carries maximum authority on the light canvas +- Use Slate Gray (`#60646c`) for secondary text — it's the precise balance between readable and receded +- Maintain enormous vertical spacing between sections (96px+) — the gallery pacing defines the premium feel +- Use product screenshots as the primary visual content — the interface stays monochrome, the products bring color +- Apply Inter at the full weight range (400–900) — weight contrast IS the hierarchy + +### Don't +- Don't introduce decorative colors into the interface chrome — the monochromatic palette is intentional +- Don't use sharp corners (border-radius < 6px) on interactive elements — the pill/rounded geometry is the signature +- Don't reduce section spacing below 64px — the breathing room is the design +- Don't use heavy drop shadows — depth comes from background contrast and whisper-soft shadows +- Don't mix in additional typefaces — Inter handles everything from display to caption +- Don't use letter-spacing wider than -0.25px on body text — extreme tracking is reserved for display only +- Don't use borders heavier than 2px — containment is subtle, achieved through background color and gentle borders +- Don't add gradients to the interface — visual richness comes from content, not decoration +- Don't use saturated colors outside of semantic contexts — the palette is strictly grayscale + functional blue + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <640px | Single column, hamburger nav, stacked cards, hero text scales to ~36px | +| Tablet | 640–1024px | 2-column grids, condensed nav, medium hero text | +| Desktop | >1024px | Full multi-column layout, expanded nav, massive hero (64px) | + +*Only one explicit breakpoint detected (640px), suggesting a fluid, container-query or min()/clamp()-based responsive system rather than fixed breakpoint snapping.* + +### Touch Targets +- Buttons use generous radius (24–36px) creating large, finger-friendly surfaces +- Navigation links spaced with adequate gap +- Status badge sized for touch (36px radius) +- Minimum recommended: 44x44px + +### Collapsing Strategy +- **Navigation**: Full horizontal nav with CTA collapses to hamburger on mobile +- **Feature sections**: Multi-column → stacked single column +- **Hero text**: 64px → ~36px progressive scaling +- **Device previews**: Grid → stacked/carousel +- **Cards**: Side-by-side → vertical stacking +- **Spacing**: Reduces proportionally but maintains generous rhythm + +### Image Behavior +- Product screenshots scale proportionally +- Device mockups may simplify or show fewer devices on mobile +- Rounded corners maintained at all sizes +- Lazy loading for below-fold content + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA / Headlines: "Expo Black (#000000)" +- Page Background: "Cloud Gray (#f0f0f3)" +- Card Surface: "Pure White (#ffffff)" +- Body Text: "Near Black (#1c2024)" +- Secondary Text: "Slate Gray (#60646c)" +- Borders: "Border Lavender (#e0e1e6)" +- Links: "Link Cobalt (#0d74ce)" +- Tertiary Text: "Silver (#b0b4ba)" + +### Example Component Prompts +- "Create a hero section on Cloud Gray (#f0f0f3) with a massive headline at 64px Inter weight 700, line-height 1.10, letter-spacing -3px. Text in Expo Black (#000000). Below, add a subtitle in Slate Gray (#60646c) at 18px. Place a black pill-shaped CTA button (9999px radius) beneath." +- "Design a feature card on Pure White (#ffffff) with a 1px solid Border Lavender (#e0e1e6) border and comfortably rounded corners (8px). Title in Near Black (#1c2024) at 20px Inter weight 600, description in Slate Gray (#60646c) at 16px. Add a whisper shadow (rgba(0,0,0,0.08) 0px 3px 6px)." +- "Build a navigation bar with Expo logo on the left, text links in Near Black (#1c2024) at 14px Inter weight 500, and a black pill CTA button on the right. Background: transparent with blur backdrop. Bottom border: 1px solid Border Lavender (#e0e1e6)." +- "Create a code block using JetBrains Mono at 14px on a Pure White surface with Border Lavender border and 8px radius. Code in Near Black, keywords in Link Cobalt (#0d74ce)." +- "Design a status badge pill (9999px radius) with a green dot and 'All Systems Operational' text in Inter 12px weight 500. Background: Pure White, border: 1px solid Input Border (#d9d9e0)." + +### Iteration Guide +1. Focus on ONE component at a time +2. Reference specific color names and hex codes — "use Slate Gray (#60646c)" not "make it gray" +3. Use radius values deliberately — 6px for buttons, 8px for cards, 24px for images, 9999px for pills +4. Describe the "feel" alongside measurements — "enormous breathing room with 96px section spacing" +5. Always specify Inter and the exact weight — weight contrast IS the hierarchy +6. For shadows, specify "whisper shadow" or "standard elevation" from the elevation table +7. Keep the interface monochrome — let product content be the color diff --git a/design-md/expo/README.md b/design-md/expo/README.md new file mode 100644 index 0000000..a78460b --- /dev/null +++ b/design-md/expo/README.md @@ -0,0 +1,25 @@ +# Expo — Design System + +> Design.md extracted from the public [expo](https://expo.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 Expo 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 +![Expo Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/expo/preview-dark-screenshot.png) + +### Light Mode +![Expo Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/expo/preview-screenshot.png) diff --git a/design-md/expo/preview-dark.html b/design-md/expo/preview-dark.html new file mode 100644 index 0000000..fab9605 --- /dev/null +++ b/design-md/expo/preview-dark.html @@ -0,0 +1,536 @@ + + + + + +Design System Preview: Expo (Dark) + + + + + + + + + + + +
+

Design System Preview:
Expo

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
Expo Black
#000000
Primary headlines, CTA buttons, brand anchor
+
Near Black
#1c2024
Body text, softer than pure black for reading
+
+
+ +
+

Secondary & Accent

+
+
Link Cobalt
#0d74ce
Standard links, interactive signals
+
Legal Blue
#476cff
Footer/legal links, brighter accent
+
Widget Sky
#47c2ff
Widget branding, lightest accent
+
Preview Purple
#8145b5
Beta/preview feature indicators
+
+
+ +
+

Surface & Background

+
+
Cloud Gray
#f0f0f3
Primary page background (light mode)
+
Pure White
#ffffff
Card surfaces, elevated containers
+
Widget Dark
#1a1a1a
Dark theme card surfaces
+
Banner Dark
#171717
Dark theme page background
+
+
+ +
+

Neutrals & Text

+
+
Slate Gray
#60646c
Secondary text (305 instances)
+
Mid Slate
#555860
Emphasized secondary text
+
Silver
#b0b4ba
Tertiary text, placeholders, metadata
+
Dark Slate
#363a3f
Borders on dark surfaces, switch tracks
+
+
+ +
+

Semantic

+
+
Warning Amber
#ab6400
Warning states, deep amber for seriousness
+
Destructive Rose
#eb8e90
Disabled destructive actions, gentle alarm
+
Border Lavender
#e0e1e6
Standard card/container borders
+
Input Border
#d9d9e0
Buttons, form elements, interactive borders
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
Display Hero
Display / Hero — 64px / 700–900 / 1.10 / -3px — Inter
+
Section Heading
Section Heading — 48px / 600 / 1.10 / -2px — Inter
+
Sub-heading
Sub-heading — 20px / 600 / 1.20 / -0.25px — Inter
+
Body large text for intro paragraphs and section descriptions with comfortable reading rhythm.
Body Large — 18px / 400–500 / 1.40 / normal — Inter
+
Standard body text for paragraphs, navigation links, and button labels. Inter provides geometric precision at every weight.
Body / Button — 16px / 400–700 / 1.25–1.40 / normal — Inter
+
Caption text for descriptions and metadata labels
Caption / Label — 14px / 400–600 / 1.00–1.40 / normal — Inter
+
Tag / Small Badge
Tag / Small — 12px / 500 / 1.00–1.60 / normal — Inter
+
npx create-expo-app@latest my-app
Code Body — 16px / 400–600 / 1.40 / normal — JetBrains Mono
+
import { Camera } from "expo-camera";
Code Caption — 14px / 400–600 / 1.40 / normal — JetBrains Mono
+
REACT NATIVE
Code Small / Tag — 12px / 400 / 1.60 / uppercase — JetBrains Mono
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
Primary Pill (Light)
+
Standard (Surface)
+
Rounded (32px)
+
+ +
+ // Get started with Expo
+ $ npx create-expo-app@latest my-app +
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Dark Slate Border

+

Standard content card with 1px Dark Slate border and 8px radius. Widget Dark surface on Banner Dark background.

+
+
+
Elevated (Whisper)
+

Whisper Shadow Lift

+

Subtle card elevation with soft shadow. Barely perceptible lift for hover states and highlighted content.

+
+
+
Featured (Glow)
+

Standard Elevation

+

Clear floating elevation with generous 16px radius. For feature showcases, product screenshots, and hero content containers.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale builds from 1px to 144px.

+ +
+
1px
+
2px
+
4px
+
8px
+
12px
+
16px
+
24px
+
32px
+
40px
+
48px
+
64px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+ +
+
4px
Nearly squared
+
6px
Buttons, inputs
+
8px
Standard cards
+
16px
Feature panels
+
24px
Images, videos
+
32px
Hero CTAs
+
9999px
Pill-shaped
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow. Banner Dark page background, inline text.
+
Level 0
+
+
+
Surface
Widget Dark bg, no shadow. Standard cards on Banner Dark.
+
Level 1
+
+
+
Whisper
Soft shadow. Subtle card lift, hover states.
+
Level 2
+
+
+
Elevated
Standard floating shadow. Feature showcases, screenshots.
+
Level 3
+
+
+
Modal
Heavy shadow with dark overlay. Dialogs, overlays.
+
Level 4
+
+
+
+ +
+ + + diff --git a/design-md/expo/preview.html b/design-md/expo/preview.html new file mode 100644 index 0000000..7414b92 --- /dev/null +++ b/design-md/expo/preview.html @@ -0,0 +1,536 @@ + + + + + +Design System Preview: Expo (Light) + + + + + + + + + + + +
+

Design System Preview:
Expo

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
Expo Black
#000000
Primary headlines, CTA buttons, brand anchor
+
Near Black
#1c2024
Body text, softer than pure black for reading
+
+
+ +
+

Secondary & Accent

+
+
Link Cobalt
#0d74ce
Standard links, interactive signals
+
Legal Blue
#476cff
Footer/legal links, brighter accent
+
Widget Sky
#47c2ff
Widget branding, lightest accent
+
Preview Purple
#8145b5
Beta/preview feature indicators
+
+
+ +
+

Surface & Background

+
+
Cloud Gray
#f0f0f3
Primary page background
+
Pure White
#ffffff
Card surfaces, elevated containers
+
Widget Dark
#1a1a1a
Dark theme widgets, overlays
+
Banner Dark
#171717
Promo banners, high-contrast surfaces
+
+
+ +
+

Neutrals & Text

+
+
Slate Gray
#60646c
Secondary text (305 instances)
+
Mid Slate
#555860
Emphasized secondary text
+
Silver
#b0b4ba
Tertiary text, placeholders, metadata
+
Dark Slate
#363a3f
Borders on dark surfaces, switch tracks
+
+
+ +
+

Semantic

+
+
Warning Amber
#ab6400
Warning states, deep amber for seriousness
+
Destructive Rose
#eb8e90
Disabled destructive actions, gentle alarm
+
Border Lavender
#e0e1e6
Standard card/container borders
+
Input Border
#d9d9e0
Buttons, form elements, interactive borders
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
Display Hero
Display / Hero — 64px / 700–900 / 1.10 / -3px — Inter
+
Section Heading
Section Heading — 48px / 600 / 1.10 / -2px — Inter
+
Sub-heading
Sub-heading — 20px / 600 / 1.20 / -0.25px — Inter
+
Body large text for intro paragraphs and section descriptions with comfortable reading rhythm.
Body Large — 18px / 400–500 / 1.40 / normal — Inter
+
Standard body text for paragraphs, navigation links, and button labels. Inter provides geometric precision at every weight.
Body / Button — 16px / 400–700 / 1.25–1.40 / normal — Inter
+
Caption text for descriptions and metadata labels
Caption / Label — 14px / 400–600 / 1.00–1.40 / normal — Inter
+
Tag / Small Badge
Tag / Small — 12px / 500 / 1.00–1.60 / normal — Inter
+
npx create-expo-app@latest my-app
Code Body — 16px / 400–600 / 1.40 / normal — JetBrains Mono
+
import { Camera } from "expo-camera";
Code Caption — 14px / 400–600 / 1.40 / normal — JetBrains Mono
+
REACT NATIVE
Code Small / Tag — 12px / 400 / 1.60 / uppercase — JetBrains Mono
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
Primary Pill (Dark)
+
Standard (White)
+
Dark Rounded (32px)
+
+ +
+ // Get started with Expo
+ $ npx create-expo-app@latest my-app +
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Border Lavender Container

+

Standard content card with 1px Border Lavender border and 8px radius. White surface clearly lifted from Cloud Gray page background.

+
+
+
Elevated (Whisper)
+

Whisper Shadow Lift

+

Subtle card elevation with whisper-soft shadow. Barely perceptible lift for hover states and highlighted content.

+
+
+
Featured (Glow)
+

Standard Elevation

+

Clear floating elevation with generous 16px radius. For feature showcases, product screenshots, and hero content containers.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale builds from 1px to 144px.

+ +
+
1px
+
2px
+
4px
+
8px
+
12px
+
16px
+
24px
+
32px
+
40px
+
48px
+
64px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+ +
+
4px
Nearly squared
+
6px
Buttons, inputs
+
8px
Standard cards
+
16px
Feature panels
+
24px
Images, videos
+
32px
Hero CTAs
+
9999px
Pill-shaped
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow. Cloud Gray page background, inline text.
+
Level 0
+
+
+
Surface
White bg, no shadow. Standard white cards on Cloud Gray.
+
Level 1
+
+
+
Whisper
Whisper-soft shadow. Subtle card lift, hover states.
+
Level 2
+
+
+
Elevated
Standard floating shadow. Feature showcases, screenshots.
+
Level 3
+
+
+
Modal
Heavy shadow with dark overlay. Dialogs, overlays.
+
Level 4
+
+
+
+ +
+ + + diff --git a/design-md/figma/DESIGN.md b/design-md/figma/DESIGN.md new file mode 100644 index 0000000..377dc2e --- /dev/null +++ b/design-md/figma/DESIGN.md @@ -0,0 +1,220 @@ +# Design System: Figma + +## 1. Visual Theme & Atmosphere + +Figma's interface is the design tool that designed itself — a masterclass in typographic sophistication where a custom variable font (figmaSans) modulates between razor-thin (weight 320) and bold (weight 700) with stops at unusual intermediates (330, 340, 450, 480, 540) that most type systems never explore. This granular weight control gives every text element a precisely calibrated visual weight, creating hierarchy through micro-differences rather than the blunt instrument of "regular vs bold." + +The page presents a fascinating duality: the interface chrome is strictly black-and-white (literally only `#000000` and `#ffffff` detected as colors), while the hero section and product showcases explode with vibrant multi-color gradients — electric greens, bright yellows, deep purples, hot pinks. This separation means the design system itself is colorless, treating the product's colorful output as the hero content. Figma's marketing page is essentially a white gallery wall displaying colorful art. + +What makes Figma distinctive beyond the variable font is its circle-and-pill geometry. Buttons use 50px radius (pill) or 50% (perfect circle for icon buttons), creating an organic, tool-palette-like feel. The dashed-outline focus indicator (`dashed 2px`) is a deliberate design choice that echoes selection handles in the Figma editor itself — the website's UI language references the product's UI language. + +**Key Characteristics:** +- Custom variable font (figmaSans) with unusual weight stops: 320, 330, 340, 450, 480, 540, 700 +- Strictly black-and-white interface chrome — color exists only in product content +- figmaMono for uppercase technical labels with wide letter-spacing +- Pill (50px) and circular (50%) button geometry +- Dashed focus outlines echoing Figma's editor selection handles +- Vibrant multi-color hero gradients (green, yellow, purple, pink) +- OpenType `"kern"` feature enabled globally +- Negative letter-spacing throughout — even body text at -0.14px to -0.26px + +## 2. Color Palette & Roles + +### Primary +- **Pure Black** (`#000000`): All text, all solid buttons, all borders. The sole "color" of the interface. +- **Pure White** (`#ffffff`): All backgrounds, white buttons, text on dark surfaces. The other half of the binary. + +*Note: Figma's marketing site uses ONLY these two colors for its interface layer. All vibrant colors appear exclusively in product screenshots, hero gradients, and embedded content.* + +### Surface & Background +- **Pure White** (`#ffffff`): Primary page background and card surfaces. +- **Glass Black** (`rgba(0, 0, 0, 0.08)`): Subtle dark overlay for secondary circular buttons and glass effects. +- **Glass White** (`rgba(255, 255, 255, 0.16)`): Frosted glass overlay for buttons on dark/colored surfaces. + +### Gradient System +- **Hero Gradient**: A vibrant multi-stop gradient using electric green, bright yellow, deep purple, and hot pink. This gradient is the visual signature of the hero section — it represents the creative possibilities of the tool. +- **Product Section Gradients**: Individual product areas (Design, Dev Mode, Prototyping) may use distinct color themes in their showcases. + +## 3. Typography Rules + +### Font Family +- **Primary**: `figmaSans`, with fallbacks: `figmaSans Fallback, SF Pro Display, system-ui, helvetica` +- **Monospace / Labels**: `figmaMono`, with fallbacks: `figmaMono Fallback, SF Mono, menlo` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display / Hero | figmaSans | 86px (5.38rem) | 400 | 1.00 (tight) | -1.72px | Maximum impact, extreme tracking | +| Section Heading | figmaSans | 64px (4rem) | 400 | 1.10 (tight) | -0.96px | Feature section titles | +| Sub-heading | figmaSans | 26px (1.63rem) | 540 | 1.35 | -0.26px | Emphasized section text | +| Sub-heading Light | figmaSans | 26px (1.63rem) | 340 | 1.35 | -0.26px | Light-weight section text | +| Feature Title | figmaSans | 24px (1.5rem) | 700 | 1.45 | normal | Bold card headings | +| Body Large | figmaSans | 20px (1.25rem) | 330–450 | 1.30–1.40 | -0.1px to -0.14px | Descriptions, intros | +| Body / Button | figmaSans | 16px (1rem) | 330–400 | 1.40–1.45 | -0.14px to normal | Standard body, nav, buttons | +| Body Light | figmaSans | 18px (1.13rem) | 320 | 1.45 | -0.26px to normal | Light-weight body text | +| Mono Label | figmaMono | 18px (1.13rem) | 400 | 1.30 (tight) | 0.54px | Uppercase section labels | +| Mono Small | figmaMono | 12px (0.75rem) | 400 | 1.00 (tight) | 0.6px | Uppercase tiny tags | + +### Principles +- **Variable font precision**: figmaSans uses weights that most systems never touch — 320, 330, 340, 450, 480, 540. This creates hierarchy through subtle weight differences rather than dramatic jumps. The difference between 330 and 340 is nearly imperceptible but structurally significant. +- **Light as the base**: Most body text uses 320–340 (lighter than typical 400 "regular"), creating an ethereal, airy reading experience that matches the design-tool aesthetic. +- **Kern everywhere**: Every text element enables OpenType `"kern"` feature — kerning is not optional, it's structural. +- **Negative tracking by default**: Even body text uses -0.1px to -0.26px letter-spacing, creating universally tight text. Display text compresses further to -0.96px and -1.72px. +- **Mono for structure**: figmaMono in uppercase with positive letter-spacing (0.54px–0.6px) creates technical signpost labels. + +## 4. Component Stylings + +### Buttons + +**Black Solid (Pill)** +- Background: Pure Black (`#000000`) +- Text: Pure White (`#ffffff`) +- Radius: circle (50%) for icon buttons +- Focus: dashed 2px outline +- Maximum emphasis + +**White Pill** +- Background: Pure White (`#ffffff`) +- Text: Pure Black (`#000000`) +- Padding: 8px 18px 10px (asymmetric vertical) +- Radius: pill (50px) +- Focus: dashed 2px outline +- Standard CTA on dark/colored surfaces + +**Glass Dark** +- Background: `rgba(0, 0, 0, 0.08)` (subtle dark overlay) +- Text: Pure Black +- Radius: circle (50%) +- Focus: dashed 2px outline +- Secondary action on light surfaces + +**Glass Light** +- Background: `rgba(255, 255, 255, 0.16)` (frosted glass) +- Text: Pure White +- Radius: circle (50%) +- Focus: dashed 2px outline +- Secondary action on dark/colored surfaces + +### Cards & Containers +- Background: Pure White +- Border: none or minimal +- Radius: 6px (small containers), 8px (images, cards, dialogs) +- Shadow: subtle to medium elevation effects +- Product screenshots as card content + +### Navigation +- Clean horizontal nav on white +- Logo: Figma wordmark in black +- Product tabs: pill-shaped (50px) tab navigation +- Links: black text, underline 1px decoration +- CTA: Black pill button +- Hover: text color via CSS variable + +### Distinctive Components + +**Product Tab Bar** +- Horizontal pill-shaped tabs (50px radius) +- Each tab represents a Figma product area (Design, Dev Mode, Prototyping, etc.) +- Active tab highlighted + +**Hero Gradient Section** +- Full-width vibrant multi-color gradient background +- White text overlay with 86px display heading +- Product screenshots floating within the gradient + +**Dashed Focus Indicators** +- All interactive elements use `dashed 2px` outline on focus +- References the selection handles in the Figma editor +- A meta-design choice connecting website and product + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 2px, 4px, 4.5px, 8px, 10px, 12px, 16px, 18px, 24px, 32px, 40px, 46px, 48px, 50px + +### Grid & Container +- Max container width: up to 1920px +- Hero: full-width gradient with centered content +- Product sections: alternating showcases +- Footer: dark full-width section +- Responsive from 559px to 1920px + +### Whitespace Philosophy +- **Gallery-like pacing**: Generous spacing lets each product section breathe as its own exhibit. +- **Color sections as visual breathing**: The gradient hero and product showcases provide chromatic relief between the monochrome interface sections. + +### Border Radius Scale +- Minimal (2px): Small link elements +- Subtle (6px): Small containers, dividers +- Comfortable (8px): Cards, images, dialogs +- Pill (50px): Tab buttons, CTAs +- Circle (50%): Icon buttons, circular elements + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | Page background, most text | +| Surface (Level 1) | White card on gradient/dark section | Cards, product showcases | +| Elevated (Level 2) | Subtle shadow | Floating cards, hover states | + +**Shadow Philosophy**: Figma uses shadows sparingly. The primary depth mechanisms are **background contrast** (white content on colorful/dark sections) and the inherent dimensionality of the product screenshots themselves. + +## 7. Do's and Don'ts + +### Do +- Use figmaSans with precise variable weights (320–540) — the granular weight control IS the design +- Keep the interface strictly black-and-white — color comes from product content only +- Use pill (50px) and circular (50%) geometry for all interactive elements +- Apply dashed 2px focus outlines — the signature accessibility pattern +- Enable `"kern"` feature on all text +- Use figmaMono in uppercase with positive letter-spacing for labels +- Apply negative letter-spacing throughout (-0.1px to -1.72px) + +### Don't +- Don't add interface colors — the monochrome palette is absolute +- Don't use standard font weights (400, 500, 600, 700) — use the variable font's unique stops (320, 330, 340, 450, 480, 540) +- Don't use sharp corners on buttons — pill and circular geometry only +- Don't use solid focus outlines — dashed is the signature +- Don't increase body font weight above 450 — the light-weight aesthetic is core +- Don't use positive letter-spacing on body text — it's always negative + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Small Mobile | <560px | Compact layout, stacked | +| Tablet | 560–768px | Minor adjustments | +| Small Desktop | 768–960px | 2-column layouts | +| Desktop | 960–1280px | Standard layout | +| Large Desktop | 1280–1440px | Expanded | +| Ultra-wide | 1440–1920px | Maximum width | + +### Collapsing Strategy +- Hero text: 86px → 64px → 48px +- Product tabs: horizontal scroll on mobile +- Feature sections: stacked single column +- Footer: multi-column → stacked + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Everything: "Pure Black (#000000)" and "Pure White (#ffffff)" +- Glass Dark: "rgba(0, 0, 0, 0.08)" +- Glass Light: "rgba(255, 255, 255, 0.16)" + +### Example Component Prompts +- "Create a hero on a vibrant multi-color gradient (green, yellow, purple, pink). Headline at 86px figmaSans weight 400, line-height 1.0, letter-spacing -1.72px. White text. White pill CTA button (50px radius, 8px 18px padding)." +- "Design a product tab bar with pill-shaped buttons (50px radius). Active: Black bg, white text. Inactive: transparent, black text. figmaSans at 20px weight 480." +- "Build a section label: figmaMono 18px, uppercase, letter-spacing 0.54px, black text. Kern enabled." +- "Create body text at 20px figmaSans weight 330, line-height 1.40, letter-spacing -0.14px. Pure Black on white." + +### Iteration Guide +1. Use variable font weight stops precisely: 320, 330, 340, 450, 480, 540, 700 +2. Interface is always black + white — never add colors to chrome +3. Dashed focus outlines, not solid +4. Letter-spacing is always negative on body, always positive on mono labels +5. Pill (50px) for buttons/tabs, circle (50%) for icon buttons diff --git a/design-md/figma/README.md b/design-md/figma/README.md new file mode 100644 index 0000000..c616018 --- /dev/null +++ b/design-md/figma/README.md @@ -0,0 +1,25 @@ +# Figma — Design System + +> Design.md extracted from the public [figma](https://figma.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 Figma 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 +![Figma Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/figma/preview-dark-screenshot.png) + +### Light Mode +![Figma Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/figma/preview-screenshot.png) diff --git a/design-md/figma/preview-dark.html b/design-md/figma/preview-dark.html new file mode 100644 index 0000000..18d93df --- /dev/null +++ b/design-md/figma/preview-dark.html @@ -0,0 +1,831 @@ + + + + + +Design System Preview: Figma (Dark) + + + + + + + + + + + +
+
+ + + + +
+

Design System Preview:
Figma

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / COLOR PALETTE
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Pure Black
+
#000000
+
Page background, dark surface. The foundation of the dark theme.
+
+
+
+
+
+
Pure White
+
#ffffff
+
All text, solid buttons, primary interface color on dark.
+
+
+
+
+ +
+

Surface & Glass

+
+
+
+
+
Glass White
+
rgba(255,255,255,0.16)
+
Frosted glass overlays, secondary buttons on dark surfaces.
+
+
+
+
+
+
Glass Subtle
+
rgba(255,255,255,0.08)
+
Card surfaces, grouped content areas on dark background.
+
+
+
+
+ +
+

Gradient System

+
+
+
+
Hero Gradient -- Electric Green, Purple, Orange, Pink, Cyan
+

Color exists only in hero gradients and product showcases. The interface layer remains strictly monochrome.

+
+
+ +
+ + +
+
02 / TYPOGRAPHY SCALE
+

Typography Rules

+ +
+
Variable Weight Spectrum
+
+ The quick brown fox jumps + Weight 320 +
+
+ The quick brown fox jumps + Weight 330 +
+
+ The quick brown fox jumps + Weight 340 +
+
+ The quick brown fox jumps + Weight 400 +
+
+ The quick brown fox jumps + Weight 450 +
+
+ The quick brown fox jumps + Weight 480 +
+
+ The quick brown fox jumps + Weight 540 +
+
+ The quick brown fox jumps + Weight 700 +
+
+ +
+
Display Hero
+
Display / Hero -- 86px / wt 400 / lh 1.00 / ls -1.72px -- figmaSans
+
+ +
+
Section Heading
+
Section Heading -- 64px / wt 400 / lh 1.10 / ls -0.96px -- figmaSans
+
+ +
+
Sub-heading Medium
+
Sub-heading -- 26px / wt 540 / lh 1.35 / ls -0.26px -- figmaSans
+
+ +
+
Sub-heading Light
+
Sub-heading Light -- 26px / wt 340 / lh 1.35 / ls -0.26px -- figmaSans
+
+ +
+
Feature Title Bold
+
Feature Title -- 24px / wt 700 / lh 1.45 / ls normal -- figmaSans
+
+ +
+
Body large text for descriptions and introductions. The light weight creates an airy, ethereal reading experience that matches the design-tool aesthetic.
+
Body Large -- 20px / wt 330 / lh 1.40 / ls -0.14px -- figmaSans
+
+ +
+
Body light text at the lightest variable weight. Nearly imperceptible thinness for secondary content and delicate UI copy.
+
Body Light -- 18px / wt 320 / lh 1.45 / ls -0.26px -- figmaSans
+
+ +
+
Standard body text for paragraphs, navigation links, and button labels. The default reading weight for all UI copy.
+
Body / Button -- 16px / wt 400 / lh 1.45 / ls -0.14px -- figmaSans
+
+ +
+
MONO SECTION LABEL
+
Mono Label -- 18px / wt 400 / lh 1.30 / ls 0.54px / uppercase -- figmaMono
+
+ +
+
MONO SMALL TAG
+
Mono Small -- 12px / wt 400 / lh 1.00 / ls 0.6px / uppercase -- figmaMono
+
+
+ +
+ + +
+
03 / BUTTON VARIANTS
+

Buttons

+ +
+
+ +
White Pill CTA
+
+
+ +
Outline Pill
+
+
+ +
White Circle
+
+
+ +
Glass Light
+
+
+ +
Glass Dark
+
+
+ +
+
+
Dashed Focus Indicator
+

All interactive elements use dashed 2px outline on focus, echoing the selection handles in the Figma editor.

+
+
+ + +
+
+
+ +
+ + +
+
04 / CARD EXAMPLES
+

Cards & Containers

+ +
+
+
STANDARD CARD
+

Border Contained

+

Standard content card with subtle white-alpha border and 8px radius. The default container on the black surface.

+
+
+
ELEVATED CARD
+

Subtle Glow

+

Floating card with subtle luminous shadow. Used for product showcases and hover states that lift off the dark surface.

+
+
+
GLASS SURFACE
+

Glass Overlay

+

Glass-effect card using rgba(255,255,255,0.08) background. Secondary containers with a translucent frosted feel.

+
+
+
+ +
+ + +
+
05 / SPACING SCALE
+

Spacing System

+

Base unit: 8px. Scale from 1px to 50px.

+ +
+
1px
+
2px
+
4px
+
8px
+
10px
+
12px
+
16px
+
18px
+
24px
+
32px
+
40px
+
48px
+
50px
+
+
+ +
+ + +
+
06 / BORDER RADIUS SCALE
+

Border Radius

+ +
+
2px
Small links
+
6px
Small containers
+
8px
Cards, images
+
50px
Pill buttons
+
50%
Circle / Icon
+
+
+ +
+ + +
+
07 / ELEVATION & DEPTH
+

Depth & Elevation

+ +
+
+
Flat
No shadow. Pure black page background and most text. The default dark surface.
+
Level 0
+
+
+
Surface
Glass white card on black background. Primary depth through translucent layering.
+
Level 1
+
+
+
Elevated
Subtle luminous shadow for floating cards and hover states on dark surfaces.
+
Level 2
+
+
+
+ +
+ + + diff --git a/design-md/figma/preview.html b/design-md/figma/preview.html new file mode 100644 index 0000000..097cdbc --- /dev/null +++ b/design-md/figma/preview.html @@ -0,0 +1,841 @@ + + + + + +Design System Preview: Figma (Light) + + + + + + + + + + + +
+
+ + + + +
+

Design System Preview:
Figma

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / COLOR PALETTE
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Pure Black
+
#000000
+
All text, solid buttons, all borders. The sole interface color.
+
+
+
+
+
+
Pure White
+
#ffffff
+
All backgrounds, white buttons, text on dark surfaces.
+
+
+
+
+ +
+

Surface & Glass

+
+
+
+
+
Glass Black
+
rgba(0,0,0,0.08)
+
Secondary circular buttons, glass overlays on light surfaces.
+
+
+
+
+
+
+
+
+
Glass White
+
rgba(255,255,255,0.16)
+
Frosted glass overlay for buttons on dark or colored surfaces.
+
+
+
+
+ +
+

Gradient System

+
+
+
+
Hero Gradient -- Electric Green, Purple, Orange, Pink, Cyan
+

Color exists only in hero gradients and product showcases. The interface layer remains strictly monochrome.

+
+
+ +
+ + +
+
02 / TYPOGRAPHY SCALE
+

Typography Rules

+ +
+
Variable Weight Spectrum
+
+ The quick brown fox jumps + Weight 320 +
+
+ The quick brown fox jumps + Weight 330 +
+
+ The quick brown fox jumps + Weight 340 +
+
+ The quick brown fox jumps + Weight 400 +
+
+ The quick brown fox jumps + Weight 450 +
+
+ The quick brown fox jumps + Weight 480 +
+
+ The quick brown fox jumps + Weight 540 +
+
+ The quick brown fox jumps + Weight 700 +
+
+ +
+
Display Hero
+
Display / Hero -- 86px / wt 400 / lh 1.00 / ls -1.72px -- figmaSans
+
+ +
+
Section Heading
+
Section Heading -- 64px / wt 400 / lh 1.10 / ls -0.96px -- figmaSans
+
+ +
+
Sub-heading Medium
+
Sub-heading -- 26px / wt 540 / lh 1.35 / ls -0.26px -- figmaSans
+
+ +
+
Sub-heading Light
+
Sub-heading Light -- 26px / wt 340 / lh 1.35 / ls -0.26px -- figmaSans
+
+ +
+
Feature Title Bold
+
Feature Title -- 24px / wt 700 / lh 1.45 / ls normal -- figmaSans
+
+ +
+
Body large text for descriptions and introductions. The light weight creates an airy, ethereal reading experience that matches the design-tool aesthetic.
+
Body Large -- 20px / wt 330 / lh 1.40 / ls -0.14px -- figmaSans
+
+ +
+
Body light text at the lightest variable weight. Nearly imperceptible thinness for secondary content and delicate UI copy.
+
Body Light -- 18px / wt 320 / lh 1.45 / ls -0.26px -- figmaSans
+
+ +
+
Standard body text for paragraphs, navigation links, and button labels. The default reading weight for all UI copy.
+
Body / Button -- 16px / wt 400 / lh 1.45 / ls -0.14px -- figmaSans
+
+ +
+
MONO SECTION LABEL
+
Mono Label -- 18px / wt 400 / lh 1.30 / ls 0.54px / uppercase -- figmaMono
+
+ +
+
MONO SMALL TAG
+
Mono Small -- 12px / wt 400 / lh 1.00 / ls 0.6px / uppercase -- figmaMono
+
+
+ +
+ + +
+
03 / BUTTON VARIANTS
+

Buttons

+ +
+
+ +
Black Pill CTA
+
+
+ +
White Pill
+
+
+ +
Black Circle
+
+
+ +
Glass Dark
+
+
+
+ +
+
Glass Light
+
+
+ +
+
+
Dashed Focus Indicator
+

All interactive elements use dashed 2px outline on focus, echoing the selection handles in the Figma editor.

+
+
+ + +
+
+
+ +
+ + +
+
04 / CARD EXAMPLES
+

Cards & Containers

+ +
+
+
STANDARD CARD
+

Minimal Border

+

Standard content card with subtle border and 8px radius. The default container for features and content sections on the white gallery surface.

+
+
+
ELEVATED CARD
+

Subtle Shadow

+

Floating card with subtle shadow elevation. Used for product showcases and hover states where the card lifts off the surface.

+
+
+
GLASS SURFACE
+

Glass Overlay

+

Glass-effect card using rgba(0,0,0,0.08) background. Secondary containers and grouped content areas with a translucent feel.

+
+
+
+ +
+ + +
+
05 / SPACING SCALE
+

Spacing System

+

Base unit: 8px. Scale from 1px to 50px.

+ +
+
1px
+
2px
+
4px
+
8px
+
10px
+
12px
+
16px
+
18px
+
24px
+
32px
+
40px
+
48px
+
50px
+
+
+ +
+ + +
+
06 / BORDER RADIUS SCALE
+

Border Radius

+ +
+
2px
Small links
+
6px
Small containers
+
8px
Cards, images
+
50px
Pill buttons
+
50%
Circle / Icon
+
+
+ +
+ + +
+
07 / ELEVATION & DEPTH
+

Depth & Elevation

+ +
+
+
Flat
No shadow. Page background and most text. The default surface.
+
Level 0
+
+
+
Surface
White card on gradient or dark section. Primary depth through background contrast.
+
Level 1
+
+
+
Elevated
Subtle shadow for floating cards and hover states. Sparingly applied.
+
Level 2
+
+
+
+ +
+ + + diff --git a/design-md/hashicorp/DESIGN.md b/design-md/hashicorp/DESIGN.md new file mode 100644 index 0000000..393f27d --- /dev/null +++ b/design-md/hashicorp/DESIGN.md @@ -0,0 +1,278 @@ +# Design System: HashiCorp + +## 1. Visual Theme & Atmosphere + +HashiCorp's website is enterprise infrastructure made tangible — a design system that must communicate the complexity of cloud infrastructure management while remaining approachable. The visual language splits between two modes: a clean white light-mode for informational sections and a dramatic dark-mode (`#15181e`, `#0d0e12`) for hero areas and product showcases, creating a day/night duality that mirrors the "build in light, deploy in dark" developer workflow. + +The typography is anchored by a custom brand font (HashiCorp Sans, loaded as `__hashicorpSans_96f0ca`) that carries substantial weight — literally. Headings use 600–700 weights with tight line-heights (1.17–1.19), creating dense, authoritative text blocks that communicate enterprise confidence. The hero headline at 82px weight 600 with OpenType `"kern"` enabled is not decorative — it's infrastructure-grade typography. + +What distinguishes HashiCorp is its multi-product color system. Each product in the portfolio has its own brand color — Terraform purple (`#7b42bc`), Vault yellow (`#ffcf25`), Waypoint teal (`#14c6cb`), Vagrant blue (`#1868f2`) — and these colors appear throughout as accent tokens via a CSS custom property system (`--mds-color-*`). This creates a design system within a design system: the parent brand is black-and-white with blue accents, while each child product injects its own chromatic identity. + +The component system uses the `mds` (Markdown Design System) prefix, indicating a systematic, token-driven approach where colors, spacing, and states are all managed through CSS variables. Shadows are remarkably subtle — dual-layer micro-shadows using `rgba(97, 104, 117, 0.05)` that are nearly invisible but provide just enough depth to separate interactive surfaces from the background. + +**Key Characteristics:** +- Dual-mode: clean white sections + dramatic dark (`#15181e`) hero/product areas +- Custom HashiCorp Sans font with 600–700 weights and `"kern"` feature +- Multi-product color system via `--mds-color-*` CSS custom properties +- Product brand colors: Terraform purple, Vault yellow, Waypoint teal, Vagrant blue +- Uppercase letter-spaced captions (13px, weight 600, 1.3px letter-spacing) +- Micro-shadows: dual-layer at 0.05 opacity — depth through whisper, not shout +- Token-driven `mds` component system with semantic variable names +- Tight border radius: 2px–8px, nothing pill-shaped or circular +- System-ui fallback stack for secondary text + +## 2. Color Palette & Roles + +### Brand Primary +- **Black** (`#000000`): Primary brand color, text on light surfaces, `--mds-color-hcp-brand` +- **Dark Charcoal** (`#15181e`): Dark mode backgrounds, hero sections +- **Near Black** (`#0d0e12`): Deepest dark mode surface, form inputs on dark + +### Neutral Scale +- **Light Gray** (`#f1f2f3`): Light backgrounds, subtle surfaces +- **Mid Gray** (`#d5d7db`): Borders, button text on dark +- **Cool Gray** (`#b2b6bd`): Border accents (at 0.1–0.4 opacity) +- **Dark Gray** (`#656a76`): Helper text, secondary labels, `--mds-form-helper-text-color` +- **Charcoal** (`#3b3d45`): Secondary text on light, button borders +- **Near White** (`#efeff1`): Primary text on dark surfaces + +### Product Brand Colors +- **Terraform Purple** (`#7b42bc`): `--mds-color-terraform-button-background` +- **Vault Yellow** (`#ffcf25`): `--mds-color-vault-button-background` +- **Waypoint Teal** (`#14c6cb`): `--mds-color-waypoint-button-background-focus` +- **Waypoint Teal Hover** (`#12b6bb`): `--mds-color-waypoint-button-background-hover` +- **Vagrant Blue** (`#1868f2`): `--mds-color-vagrant-brand` +- **Purple Accent** (`#911ced`): `--mds-color-palette-purple-300` +- **Visited Purple** (`#a737ff`): `--mds-color-foreground-action-visited` + +### Semantic Colors +- **Action Blue** (`#1060ff`): Primary action links on dark +- **Link Blue** (`#2264d6`): Primary links on light +- **Bright Blue** (`#2b89ff`): Active links, hover accent +- **Amber** (`#bb5a00`): `--mds-color-palette-amber-200`, warning states +- **Amber Light** (`#fbeabf`): `--mds-color-palette-amber-100`, warning backgrounds +- **Vault Faint Yellow** (`#fff9cf`): `--mds-color-vault-radar-gradient-faint-stop` +- **Orange** (`#a9722e`): `--mds-color-unified-core-orange-6` +- **Red** (`#731e25`): `--mds-color-unified-core-red-7`, error states +- **Navy** (`#101a59`): `--mds-color-unified-core-blue-7` + +### Shadows +- **Micro Shadow** (`rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px`): Default card/button elevation +- **Focus Outline**: `3px solid var(--mds-color-focus-action-external)` — systematic focus ring + +## 3. Typography Rules + +### Font Families +- **Primary Brand**: `__hashicorpSans_96f0ca` (HashiCorp Sans), with fallback: `__hashicorpSans_Fallback_96f0ca` +- **System UI**: `system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Hero | HashiCorp Sans | 82px (5.13rem) | 600 | 1.17 (tight) | normal | `"kern"` enabled | +| Section Heading | HashiCorp Sans | 52px (3.25rem) | 600 | 1.19 (tight) | normal | `"kern"` enabled | +| Feature Heading | HashiCorp Sans | 42px (2.63rem) | 700 | 1.19 (tight) | -0.42px | Negative tracking | +| Sub-heading | HashiCorp Sans | 34px (2.13rem) | 600–700 | 1.18 (tight) | normal | Feature blocks | +| Card Title | HashiCorp Sans | 26px (1.63rem) | 700 | 1.19 (tight) | normal | Card and panel headings | +| Small Title | HashiCorp Sans | 19px (1.19rem) | 700 | 1.21 (tight) | normal | Compact headings | +| Body Emphasis | HashiCorp Sans | 17px (1.06rem) | 600–700 | 1.18–1.35 | normal | Bold body text | +| Body Large | system-ui | 20px (1.25rem) | 400–600 | 1.50 | normal | Hero descriptions | +| Body | system-ui | 16px (1.00rem) | 400–500 | 1.63–1.69 (relaxed) | normal | Standard body text | +| Nav Link | system-ui | 15px (0.94rem) | 500 | 1.60 (relaxed) | normal | Navigation items | +| Small Body | system-ui | 14px (0.88rem) | 400–500 | 1.29–1.71 | normal | Secondary content | +| Caption | system-ui | 13px (0.81rem) | 400–500 | 1.23–1.69 | normal | Metadata, footer links | +| Uppercase Label | HashiCorp Sans | 13px (0.81rem) | 600 | 1.69 (relaxed) | 1.3px | `text-transform: uppercase` | + +### Principles +- **Brand/System split**: HashiCorp Sans for headings and brand-critical text; system-ui for body, navigation, and functional text. The brand font carries the weight, system-ui carries the words. +- **Kern always on**: All HashiCorp Sans text enables OpenType `"kern"` — letterfitting is non-negotiable. +- **Tight headings**: Every heading uses 1.17–1.21 line-height, creating dense, stacked text blocks that feel infrastructural — solid, load-bearing. +- **Relaxed body**: Body text uses 1.50–1.69 line-height (notably generous), creating comfortable reading rhythm beneath the dense headings. +- **Uppercase labels as wayfinding**: 13px uppercase with 1.3px letter-spacing serves as the systematic category/section marker — always HashiCorp Sans weight 600. + +## 4. Component Stylings + +### Buttons + +**Primary Dark** +- Background: `#15181e` +- Text: `#d5d7db` +- Padding: 9px 9px 9px 15px (asymmetric, more left padding) +- Radius: 5px +- Border: `1px solid rgba(178, 182, 189, 0.4)` +- Shadow: `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px` +- Focus: `3px solid var(--mds-color-focus-action-external)` +- Hover: uses `--mds-color-surface-interactive` token + +**Secondary White** +- Background: `#ffffff` +- Text: `#3b3d45` +- Padding: 8px 12px +- Radius: 4px +- Hover: `--mds-color-surface-interactive` + low-shadow elevation +- Focus: `3px solid transparent` outline +- Clean, minimal appearance + +**Product-Colored Buttons** +- Terraform: background `#7b42bc` +- Vault: background `#ffcf25` (dark text) +- Waypoint: background `#14c6cb`, hover `#12b6bb` +- Each product button follows the same structural pattern but uses its brand color + +### Badges / Pills +- Background: `#42225b` (deep purple) +- Text: `#efeff1` +- Padding: 3px 7px +- Radius: 5px +- Border: `1px solid rgb(180, 87, 255)` +- Font: 16px + +### Inputs + +**Text Input (Dark Mode)** +- Background: `#0d0e12` +- Text: `#efeff1` +- Border: `1px solid rgb(97, 104, 117)` +- Padding: 11px +- Radius: 5px +- Focus: `3px solid var(--mds-color-focus-action-external)` outline + +**Checkbox** +- Background: `#0d0e12` +- Border: `1px solid rgb(97, 104, 117)` +- Radius: 3px + +### Links +- **Action Blue on Light**: `#2264d6`, hover → blue-600 variable, underline on hover +- **Action Blue on Dark**: `#1060ff` or `#2b89ff`, underline on hover +- **White on Dark**: `#ffffff`, transparent underline → visible underline on hover +- **Neutral on Light**: `#3b3d45`, transparent underline → visible underline on hover +- **Light on Dark**: `#efeff1`, similar hover pattern +- All links use `var(--wpl-blue-600)` as hover color + +### Cards & Containers +- Light mode: white background, micro-shadow elevation +- Dark mode: `#15181e` or darker surfaces +- Radius: 8px for cards and containers +- Product showcase cards with gradient borders or accent lighting + +### Navigation +- Clean horizontal nav with mega-menu dropdowns +- HashiCorp logo left-aligned +- system-ui 15px weight 500 for links +- Product categories organized by lifecycle management group +- "Get started" and "Contact us" CTAs in header +- Dark mode variant for hero sections + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 2px, 3px, 4px, 6px, 7px, 8px, 9px, 11px, 12px, 16px, 20px, 24px, 32px, 40px, 48px + +### Grid & Container +- Max content width: ~1150px (xl breakpoint) +- Full-width dark hero sections with contained content +- Card grids: 2–3 column layouts +- Generous horizontal padding at desktop scale + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile Small | <375px | Tight single column | +| Mobile | 375–480px | Standard mobile | +| Small Tablet | 480–600px | Minor adjustments | +| Tablet | 600–768px | 2-column grids begin | +| Small Desktop | 768–992px | Full nav visible | +| Desktop | 992–1120px | Standard layout | +| Large Desktop | 1120–1440px | Max-width content | +| Ultra-wide | >1440px | Centered, generous margins | + +### Whitespace Philosophy +- **Enterprise breathing room**: Generous vertical spacing between sections (48px–80px+) communicates stability and seriousness. +- **Dense headings, spacious body**: Tight line-height headings sit above relaxed body text, creating visual "weight at the top" of each section. +- **Dark as canvas**: Dark hero sections use extra vertical padding to let 3D illustrations and gradients breathe. + +### Border Radius Scale +- Minimal (2px): Links, small inline elements +- Subtle (3px): Checkboxes, small inputs +- Standard (4px): Secondary buttons +- Comfortable (5px): Primary buttons, badges, inputs +- Card (8px): Cards, containers, images + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | Default surfaces, text blocks | +| Whisper (Level 1) | `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px` | Cards, buttons, interactive surfaces | +| Focus (Level 2) | `3px solid var(--mds-color-focus-action-external)` outline | Focus rings — color-matched to context | + +**Shadow Philosophy**: HashiCorp uses arguably the subtlest shadow system in modern web design. The dual-layer shadows at 5% opacity are nearly invisible — they exist not to create visual depth but to signal interactivity. If you can see the shadow, it's too strong. This restraint communicates the enterprise value of stability — nothing floats, nothing is uncertain. + +## 7. Do's and Don'ts + +### Do +- Use HashiCorp Sans for headings and brand text, system-ui for body and UI text +- Enable `"kern"` on all HashiCorp Sans text +- Use product brand colors ONLY for their respective products (Terraform = purple, Vault = yellow, etc.) +- Apply uppercase labels at 13px weight 600 with 1.3px letter-spacing for section markers +- Keep shadows at the "whisper" level (0.05 opacity dual-layer) +- Use the `--mds-color-*` token system for consistent color application +- Maintain the tight-heading / relaxed-body rhythm (1.17–1.21 vs 1.50–1.69 line-heights) +- Use `3px solid` focus outlines for accessibility + +### Don't +- Don't use product brand colors outside their product context (no Terraform purple on Vault content) +- Don't increase shadow opacity above 0.1 — the whisper level is intentional +- Don't use pill-shaped buttons (>8px radius) — the sharp, minimal radius is structural +- Don't skip the `"kern"` feature on headings — the font requires it +- Don't use HashiCorp Sans for small body text — it's designed for 17px+ heading use +- Don't mix product colors in the same component — each product has one color +- Don't use pure black (`#000000`) for dark backgrounds — use `#15181e` or `#0d0e12` +- Don't forget the asymmetric button padding — 9px 9px 9px 15px is intentional + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <768px | Single column, hamburger nav, stacked CTAs | +| Tablet | 768–992px | 2-column grids, nav begins expanding | +| Desktop | 992–1150px | Full layout, mega-menu nav | +| Large | >1150px | Max-width centered, generous margins | + +### Collapsing Strategy +- Hero: 82px → 52px → 42px heading sizes +- Navigation: mega-menu → hamburger +- Product cards: 3-column → 2-column → stacked +- Dark sections maintain full-width but compress padding +- Buttons: inline → full-width stacked on mobile + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Light bg: `#ffffff`, `#f1f2f3` +- Dark bg: `#15181e`, `#0d0e12` +- Text light: `#000000`, `#3b3d45` +- Text dark: `#efeff1`, `#d5d7db` +- Links: `#2264d6` (light), `#1060ff` (dark), `#2b89ff` (active) +- Helper text: `#656a76` +- Borders: `rgba(178, 182, 189, 0.4)`, `rgb(97, 104, 117)` +- Focus: `3px solid` product-appropriate color + +### Example Component Prompts +- "Create a hero on dark background (#15181e). Headline at 82px HashiCorp Sans weight 600, line-height 1.17, kern enabled, white text. Sub-text at 20px system-ui weight 400, line-height 1.50, #d5d7db text. Two buttons: primary dark (#15181e, 5px radius, 9px 15px padding) and secondary white (#ffffff, 4px radius, 8px 12px padding)." +- "Design a product card: white background, 8px radius, dual-layer shadow at rgba(97,104,117,0.05). Title at 26px HashiCorp Sans weight 700, body at 16px system-ui weight 400 line-height 1.63." +- "Build an uppercase section label: 13px HashiCorp Sans weight 600, line-height 1.69, letter-spacing 1.3px, text-transform uppercase, #656a76 color." +- "Create a product-specific CTA button: Terraform → #7b42bc background, Vault → #ffcf25 with dark text, Waypoint → #14c6cb. All: 5px radius, 500 weight text, 16px system-ui." +- "Design a dark form: #0d0e12 input background, #efeff1 text, 1px solid rgb(97,104,117) border, 5px radius, 11px padding. Focus: 3px solid accent-color outline." + +### Iteration Guide +1. Always start with the mode decision: light (white) for informational, dark (#15181e) for hero/product +2. HashiCorp Sans for headings only (17px+), system-ui for everything else +3. Shadows are at whisper level (0.05 opacity) — if visible, reduce +4. Product colors are sacred — each product owns exactly one color +5. Focus rings are always 3px solid, color-matched to product context +6. Uppercase labels are the systematic wayfinding pattern — 13px, 600, 1.3px tracking diff --git a/design-md/hashicorp/README.md b/design-md/hashicorp/README.md new file mode 100644 index 0000000..4337dec --- /dev/null +++ b/design-md/hashicorp/README.md @@ -0,0 +1,25 @@ +# Hashicorp — Design System + +> Design.md extracted from the public [hashicorp](https://hashicorp.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 Hashicorp 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 +![Hashicorp Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/hashicorp/preview-dark-screenshot.png) + +### Light Mode +![Hashicorp Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/hashicorp/preview-screenshot.png) diff --git a/design-md/hashicorp/preview-dark.html b/design-md/hashicorp/preview-dark.html new file mode 100644 index 0000000..788636a --- /dev/null +++ b/design-md/hashicorp/preview-dark.html @@ -0,0 +1,1206 @@ + + + + + +Design System Preview: HashiCorp (Dark) + + + + + + + + +
Dark Mode
+ + + + + +
+
Design System Preview
+

Design System Inspired by HashiCorp

+

Enterprise infrastructure typography, product color systems, and whisper-level shadows — all distilled into a single-page design reference.

+ +
+ + +
+ +

Color Palette

+

A multi-product color system using CSS custom properties. The parent brand is black-and-white with blue accents; each child product injects its own chromatic identity.

+ +
+

Brand Primary

+
+
+
+
Black
#000000
Primary brand, text on light
+
+
+
+
Dark Charcoal
#15181e
Dark mode backgrounds, hero
+
+
+
+
Near Black
#0d0e12
Deepest dark surface, inputs
+
+
+
+ +
+

Neutral Scale

+
+
+
+
Light Gray
#f1f2f3
Light backgrounds
+
+
+
+
Mid Gray
#d5d7db
Borders, dark button text
+
+
+
+
Cool Gray
#b2b6bd
Border accents (0.1-0.4 opacity)
+
+
+
+
Dark Gray
#656a76
Helper text, labels
+
+
+
+
Charcoal
#3b3d45
Secondary text on light
+
+
+
+
Near White
#efeff1
Primary text on dark
+
+
+
+ +
+

Product Brand Colors

+
+
+
+
Terraform Purple
#7b42bc
Terraform brand
+
+
+
+
Vault Yellow
#ffcf25
Vault brand
+
+
+
+
Waypoint Teal
#14c6cb
Waypoint brand
+
+
+
+
Vagrant Blue
#1868f2
Vagrant brand
+
+
+
+
Purple Accent
#911ced
Accent purple
+
+
+
+
Visited Purple
#a737ff
Visited links
+
+
+
+ +
+

Semantic Colors

+
+
+
+
Action Blue
#1060ff
Primary action on dark
+
+
+
+
Link Blue
#2264d6
Primary links on light
+
+
+
+
Bright Blue
#2b89ff
Active links, hover
+
+
+
+
Amber
#bb5a00
Warning states
+
+
+
+
Amber Light
#fbeabf
Warning backgrounds
+
+
+
+
Red
#731e25
Error states
+
+
+
+
Orange
#a9722e
Unified core orange
+
+
+
+
Navy
#101a59
Unified core blue
+
+
+
+
+ + +
+
+ +

Typography Scale

+

Brand headings use DM Sans (standing in for HashiCorp Sans) with tight line-heights and kern enabled. Body text uses the system-ui stack for maximum readability.

+ +
+
+
Display Hero
+
82px / 600 / 1.17
+
+
Infrastructure
+
+ +
+
+
Section Heading
+
52px / 600 / 1.19
+
+
Cloud at Scale
+
+ +
+
+
Feature Heading
+
42px / 700 / 1.19 / -0.42px
+
+
Automate Everything
+
+ +
+
+
Sub-heading
+
34px / 600 / 1.18
+
+
Provision and Manage
+
+ +
+
+
Card Title
+
26px / 700 / 1.19
+
+
Multi-Cloud Platform
+
+ +
+
+
Small Title
+
19px / 700 / 1.21
+
+
Zero Trust Security
+
+ +
+
+
Body Emphasis
+
17px / 600 / 1.35
+
+
HashiCorp provides infrastructure automation to provision, secure, connect, and run any infrastructure for any application.
+
+ +
+
+
Body Large
+
20px / 400 / 1.50
+
+
Automate your multi-cloud infrastructure provisioning workflows with declarative configuration files.
+
+ +
+
+
Body
+
16px / 400 / 1.63
+
+
Infrastructure as code lets you manage your infrastructure across multiple providers with one consistent workflow. Define infrastructure as code to increase operator productivity and transparency.
+
+ +
+
+
Nav Link
+
15px / 500 / 1.60
+
+
Products   Solutions   Partners   Resources   Pricing
+
+ +
+
+
Small Body
+
14px / 400 / 1.71
+
+
Learn how to deploy applications across cloud providers with a standardized workflow.
+
+ +
+
+
Caption
+
13px / 400 / 1.69
+
+
Updated 2 days ago · 5 min read · Infrastructure Automation
+
+ +
+
+
Uppercase Label
+
13px / 600 / 1.69 / 1.3px
+
+
Infrastructure Lifecycle
+
+
+
+ + +
+ +

Button Variants

+

Asymmetric padding (9px 9px 9px 15px) on primary buttons is intentional. Product-colored buttons follow the same structural pattern but inject their brand color.

+ +
Core Buttons
+
+
+ + +
+
+ +
Product-Colored Buttons
+
+
+ + + + +
+
+ +
Badges / Pills
+
+
+ New Feature + Beta + HCP +
+
+
+ + +
+
+ +

Card Examples

+

Dark surface cards with 8px radius and subtle border separation. Product accent bars indicate chromatic ownership.

+ +
+
+
+
+
Terraform
+
Infrastructure as Code
+
Define and provision data center infrastructure using a declarative configuration language. Manage multi-cloud deployments with a single workflow.
+ Learn more → +
+
+
+
+
+
Vault
+
Secrets Management
+
Centrally store, access, and deploy secrets across applications, systems, and infrastructure. Dynamic secrets, encryption, and identity-based access.
+ Learn more → +
+
+
+
+
+
Waypoint
+
Application Delivery
+
Build, deploy, and release applications across any platform with a consistent workflow. Simplify the developer experience for Kubernetes and beyond.
+ Learn more → +
+
+
+
+
+ + +
+ +

Form Elements

+

Dark mode inputs use #0d0e12 background with 5px radius. Focus rings are 3px solid with product-appropriate color.

+ +
+
+

Default Inputs

+
+ + +
We'll never share your email with anyone.
+
+
+ + +
+
+ + +
Please enter a valid email address.
+
+
+ +
+

Textarea

+
+ + +
+
+ + +
+
+
+
+ + +
+
+ +

Spacing Scale

+

Base unit of 8px. The scale provides granular control for component spacing while maintaining rhythm across the layout.

+ +
+
+
+ 2px +
+
+
+ 3px +
+
+
+ 4px +
+
+
+ 6px +
+
+
+ 8px +
+
+
+ 12px +
+
+
+ 16px +
+
+
+ 20px +
+
+
+ 24px +
+
+
+ 32px +
+
+
+ 40px +
+
+
+ 48px +
+
+
+
+ + +
+ +

Border Radius Scale

+

Nothing pill-shaped or circular. Tight, minimal radii from 2px to 8px communicate structural precision. The system is deliberately restrained.

+ +
+
+
+ 2px + Minimal +
+
+
+ 3px + Subtle +
+
+
+ 4px + Standard +
+
+
+ 5px + Comfortable +
+
+
+ 8px + Card +
+
+
+ + +
+
+ +

Elevation & Depth

+

Arguably the subtlest shadow system in modern web design. On dark surfaces, shadows shift to higher-opacity blacks to maintain the whisper effect against dark backgrounds.

+ +
+
+
Level 0 — Flat
+
Default surfaces, text blocks. No shadow applied.
+
box-shadow: none
+
+
+
Level 1 — Whisper
+
Cards, buttons, interactive surfaces. Barely visible micro-shadow.
+
rgba(0,0,0,0.15) 0px 1px 1px, rgba(0,0,0,0.15) 0px 2px 2px
+
+
+
Level 2 — Focus
+
Focus rings for keyboard navigation. 3px solid, color-matched to context.
+
outline: 3px solid var(--focus-color)
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/design-md/hashicorp/preview.html b/design-md/hashicorp/preview.html new file mode 100644 index 0000000..ae2023f --- /dev/null +++ b/design-md/hashicorp/preview.html @@ -0,0 +1,1195 @@ + + + + + +Design System Preview: HashiCorp (Light) + + + + + + + + + + + +
+
Design System Preview
+

Design System Inspired by HashiCorp

+

Enterprise infrastructure typography, product color systems, and whisper-level shadows — all distilled into a single-page design reference.

+ +
+ + +
+ +

Color Palette

+

A multi-product color system using CSS custom properties. The parent brand is black-and-white with blue accents; each child product injects its own chromatic identity.

+ +
+

Brand Primary

+
+
+
+
Black
#000000
Primary brand, text on light
+
+
+
+
Dark Charcoal
#15181e
Dark mode backgrounds, hero
+
+
+
+
Near Black
#0d0e12
Deepest dark surface, inputs
+
+
+
+ +
+

Neutral Scale

+
+
+
+
Light Gray
#f1f2f3
Light backgrounds
+
+
+
+
Mid Gray
#d5d7db
Borders, dark button text
+
+
+
+
Cool Gray
#b2b6bd
Border accents (0.1-0.4 opacity)
+
+
+
+
Dark Gray
#656a76
Helper text, labels
+
+
+
+
Charcoal
#3b3d45
Secondary text on light
+
+
+
+
Near White
#efeff1
Primary text on dark
+
+
+
+ +
+

Product Brand Colors

+
+
+
+
Terraform Purple
#7b42bc
Terraform brand
+
+
+
+
Vault Yellow
#ffcf25
Vault brand
+
+
+
+
Waypoint Teal
#14c6cb
Waypoint brand
+
+
+
+
Vagrant Blue
#1868f2
Vagrant brand
+
+
+
+
Purple Accent
#911ced
Accent purple
+
+
+
+
Visited Purple
#a737ff
Visited links
+
+
+
+ +
+

Semantic Colors

+
+
+
+
Action Blue
#1060ff
Primary action on dark
+
+
+
+
Link Blue
#2264d6
Primary links on light
+
+
+
+
Bright Blue
#2b89ff
Active links, hover
+
+
+
+
Amber
#bb5a00
Warning states
+
+
+
+
Amber Light
#fbeabf
Warning backgrounds
+
+
+
+
Red
#731e25
Error states
+
+
+
+
Orange
#a9722e
Unified core orange
+
+
+
+
Navy
#101a59
Unified core blue
+
+
+
+
+ + +
+
+ +

Typography Scale

+

Brand headings use DM Sans (standing in for HashiCorp Sans) with tight line-heights and kern enabled. Body text uses the system-ui stack for maximum readability.

+ +
+
+
Display Hero
+
82px / 600 / 1.17
+
+
Infrastructure
+
+ +
+
+
Section Heading
+
52px / 600 / 1.19
+
+
Cloud at Scale
+
+ +
+
+
Feature Heading
+
42px / 700 / 1.19 / -0.42px
+
+
Automate Everything
+
+ +
+
+
Sub-heading
+
34px / 600 / 1.18
+
+
Provision and Manage
+
+ +
+
+
Card Title
+
26px / 700 / 1.19
+
+
Multi-Cloud Platform
+
+ +
+
+
Small Title
+
19px / 700 / 1.21
+
+
Zero Trust Security
+
+ +
+
+
Body Emphasis
+
17px / 600 / 1.35
+
+
HashiCorp provides infrastructure automation to provision, secure, connect, and run any infrastructure for any application.
+
+ +
+
+
Body Large
+
20px / 400 / 1.50
+
+
Automate your multi-cloud infrastructure provisioning workflows with declarative configuration files.
+
+ +
+
+
Body
+
16px / 400 / 1.63
+
+
Infrastructure as code lets you manage your infrastructure across multiple providers with one consistent workflow. Define infrastructure as code to increase operator productivity and transparency.
+
+ +
+
+
Nav Link
+
15px / 500 / 1.60
+
+
Products   Solutions   Partners   Resources   Pricing
+
+ +
+
+
Small Body
+
14px / 400 / 1.71
+
+
Learn how to deploy applications across cloud providers with a standardized workflow.
+
+ +
+
+
Caption
+
13px / 400 / 1.69
+
+
Updated 2 days ago · 5 min read · Infrastructure Automation
+
+ +
+
+
Uppercase Label
+
13px / 600 / 1.69 / 1.3px
+
+
Infrastructure Lifecycle
+
+
+
+ + +
+ +

Button Variants

+

Asymmetric padding (9px 9px 9px 15px) on primary buttons is intentional. Product-colored buttons follow the same structural pattern but inject their brand color.

+ +
Core Buttons
+
+
+ + +
+
+ +
Product-Colored Buttons
+
+
+ + + + +
+
+ +
Badges / Pills
+
+
+ New Feature + Beta + HCP +
+
+
+ + +
+
+ +

Card Examples

+

White background cards with 8px radius and dual-layer micro-shadow at 0.05 opacity. Product accent bars indicate chromatic ownership.

+ +
+
+
+
+
Terraform
+
Infrastructure as Code
+
Define and provision data center infrastructure using a declarative configuration language. Manage multi-cloud deployments with a single workflow.
+ Learn more → +
+
+
+
+
+
Vault
+
Secrets Management
+
Centrally store, access, and deploy secrets across applications, systems, and infrastructure. Dynamic secrets, encryption, and identity-based access.
+ Learn more → +
+
+
+
+
+
Waypoint
+
Application Delivery
+
Build, deploy, and release applications across any platform with a consistent workflow. Simplify the developer experience for Kubernetes and beyond.
+ Learn more → +
+
+
+
+
+ + +
+ +

Form Elements

+

Dark mode inputs use #0d0e12 background with 5px radius. Focus rings are 3px solid with product-appropriate color. Light mode uses white backgrounds with subtle borders.

+ +
+
+

Light Mode Inputs

+
+ + +
We'll never share your email with anyone.
+
+
+ + +
+
+ + +
Please enter a valid email address.
+
+
+ + +
+
+ +
+

Dark Mode Inputs

+
+
+ + +
We'll never share your email with anyone.
+
+
+ + +
+
+ + +
This field is required.
+
+
+ + +
+
+
+
+
+ + +
+
+ +

Spacing Scale

+

Base unit of 8px. The scale provides granular control for component spacing while maintaining rhythm across the layout.

+ +
+
+
+ 2px +
+
+
+ 3px +
+
+
+ 4px +
+
+
+ 6px +
+
+
+ 8px +
+
+
+ 12px +
+
+
+ 16px +
+
+
+ 20px +
+
+
+ 24px +
+
+
+ 32px +
+
+
+ 40px +
+
+
+ 48px +
+
+
+
+ + +
+ +

Border Radius Scale

+

Nothing pill-shaped or circular. Tight, minimal radii from 2px to 8px communicate structural precision. The system is deliberately restrained.

+ +
+
+
+ 2px + Minimal +
+
+
+ 3px + Subtle +
+
+
+ 4px + Standard +
+
+
+ 5px + Comfortable +
+
+
+ 8px + Card +
+
+
+ + +
+
+ +

Elevation & Depth

+

Arguably the subtlest shadow system in modern web design. Dual-layer shadows at 5% opacity signal interactivity without visual noise. If you can see the shadow, it is too strong.

+ +
+
+
Level 0 — Flat
+
Default surfaces, text blocks. No shadow applied.
+
box-shadow: none
+
+
+
Level 1 — Whisper
+
Cards, buttons, interactive surfaces. Barely visible micro-shadow.
+
rgba(97,104,117,0.05) 0px 1px 1px, rgba(97,104,117,0.05) 0px 2px 2px
+
+
+
Level 2 — Focus
+
Focus rings for keyboard navigation. 3px solid, color-matched to context.
+
outline: 3px solid var(--focus-color)
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/design-md/ibm/DESIGN.md b/design-md/ibm/DESIGN.md new file mode 100644 index 0000000..6669a34 --- /dev/null +++ b/design-md/ibm/DESIGN.md @@ -0,0 +1,332 @@ +# Design System: IBM + +## 1. Visual Theme & Atmosphere + +IBM's website is the digital embodiment of enterprise authority built on the Carbon Design System — a design language so methodically structured it reads like an engineering specification rendered as a webpage. The page operates on a stark duality: a bright white (`#ffffff`) canvas with near-black (`#161616`) text, punctuated by a single, unwavering accent — IBM Blue 60 (`#0f62fe`). This isn't playful tech-startup minimalism; it's corporate precision distilled into pixels. Every element exists within Carbon's rigid 2x grid, every color maps to a semantic token, every spacing value snaps to the 8px base unit. + +The IBM Plex type family is the system's backbone. IBM Plex Sans at light weight (300) for display headlines creates an unexpectedly airy, almost delicate quality at large sizes — a deliberate counterpoint to IBM's corporate gravity. At body sizes, regular weight (400) with 0.16px letter-spacing on 14px captions introduces the meticulous micro-tracking that makes Carbon text feel engineered rather than designed. IBM Plex Mono serves code, data, and technical labels, completing the family trinity alongside the rarely-surfaced IBM Plex Serif. + +What defines IBM's visual identity beyond monochrome-plus-blue is the reliance on Carbon's component token system. Every interactive state maps to a CSS custom property prefixed with `--cds-` (Carbon Design System). Buttons don't have hardcoded colors; they reference `--cds-button-primary`, `--cds-button-primary-hover`, `--cds-button-primary-active`. This tokenized architecture means the entire visual layer is a thin skin over a deeply systematic foundation — the design equivalent of a well-typed API. + +**Key Characteristics:** +- IBM Plex Sans at weight 300 (Light) for display — corporate gravitas through typographic restraint +- IBM Plex Mono for code and technical content with consistent 0.16px letter-spacing at small sizes +- Single accent color: IBM Blue 60 (`#0f62fe`) — every interactive element, every CTA, every link +- Carbon token system (`--cds-*`) driving all semantic colors, enabling theme-switching at the variable level +- 8px spacing grid with strict adherence — no arbitrary values, everything aligns +- Flat, borderless cards on `#f4f4f4` Gray 10 surface — depth through background-color layering, not shadows +- Bottom-border inputs (not boxed) — the signature Carbon form pattern +- 0px border-radius on primary buttons — unapologetically rectangular, no softening + +## 2. Color Palette & Roles + +### Primary +- **IBM Blue 60** (`#0f62fe`): The singular interactive color. Primary buttons, links, focus states, active indicators. This is the only chromatic hue in the core UI palette. +- **White** (`#ffffff`): Page background, card surfaces, button text on blue, `--cds-background`. +- **Gray 100** (`#161616`): Primary text, headings, dark surface backgrounds, nav bar, footer. `--cds-text-primary`. + +### Neutral Scale (Gray Family) +- **Gray 100** (`#161616`): Primary text, headings, dark UI chrome, footer background. +- **Gray 90** (`#262626`): Secondary dark surfaces, hover states on dark backgrounds. +- **Gray 80** (`#393939`): Tertiary dark, active states. +- **Gray 70** (`#525252`): Secondary text, helper text, descriptions. `--cds-text-secondary`. +- **Gray 60** (`#6f6f6f`): Placeholder text, disabled text. +- **Gray 50** (`#8d8d8d`): Disabled icons, muted labels. +- **Gray 30** (`#c6c6c6`): Borders, divider lines, input bottom-borders. `--cds-border-subtle`. +- **Gray 20** (`#e0e0e0`): Subtle borders, card outlines. +- **Gray 10** (`#f4f4f4`): Secondary surface background, card fills, alternating rows. `--cds-layer-01`. +- **Gray 10 Hover** (`#e8e8e8`): Hover state for Gray 10 surfaces. + +### Interactive +- **Blue 60** (`#0f62fe`): Primary interactive — buttons, links, focus. `--cds-link-primary`, `--cds-button-primary`. +- **Blue 70** (`#0043ce`): Link hover state. `--cds-link-primary-hover`. +- **Blue 80** (`#002d9c`): Active/pressed state for blue elements. +- **Blue 10** (`#edf5ff`): Blue tint surface, selected row background. +- **Focus Blue** (`#0f62fe`): `--cds-focus` — 2px inset border on focused elements. +- **Focus Inset** (`#ffffff`): `--cds-focus-inset` — white inner ring for focus on dark backgrounds. + +### Support & Status +- **Red 60** (`#da1e28`): Error, danger. `--cds-support-error`. +- **Green 50** (`#24a148`): Success. `--cds-support-success`. +- **Yellow 30** (`#f1c21b`): Warning. `--cds-support-warning`. +- **Blue 60** (`#0f62fe`): Informational. `--cds-support-info`. + +### Dark Theme (Gray 100 Theme) +- **Background**: Gray 100 (`#161616`). `--cds-background`. +- **Layer 01**: Gray 90 (`#262626`). Card and container surfaces. +- **Layer 02**: Gray 80 (`#393939`). Elevated surfaces. +- **Text Primary**: Gray 10 (`#f4f4f4`). `--cds-text-primary`. +- **Text Secondary**: Gray 30 (`#c6c6c6`). `--cds-text-secondary`. +- **Border Subtle**: Gray 80 (`#393939`). `--cds-border-subtle`. +- **Interactive**: Blue 40 (`#78a9ff`). Links and interactive elements shift lighter for contrast. + +## 3. Typography Rules + +### Font Family +- **Primary**: `IBM Plex Sans`, with fallbacks: `Helvetica Neue, Arial, sans-serif` +- **Monospace**: `IBM Plex Mono`, with fallbacks: `Menlo, Courier, monospace` +- **Serif** (limited use): `IBM Plex Serif`, for editorial/expressive contexts +- **Icon Font**: `ibm_icons` — proprietary icon glyphs at 20px + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display 01 | IBM Plex Sans | 60px (3.75rem) | 300 (Light) | 1.17 (70px) | 0 | Maximum impact, light weight for elegance | +| Display 02 | IBM Plex Sans | 48px (3.00rem) | 300 (Light) | 1.17 (56px) | 0 | Secondary hero, responsive fallback | +| Heading 01 | IBM Plex Sans | 42px (2.63rem) | 300 (Light) | 1.19 (50px) | 0 | Expressive heading | +| Heading 02 | IBM Plex Sans | 32px (2.00rem) | 400 (Regular) | 1.25 (40px) | 0 | Section headings | +| Heading 03 | IBM Plex Sans | 24px (1.50rem) | 400 (Regular) | 1.33 (32px) | 0 | Sub-section titles | +| Heading 04 | IBM Plex Sans | 20px (1.25rem) | 600 (Semibold) | 1.40 (28px) | 0 | Card titles, feature headers | +| Heading 05 | IBM Plex Sans | 20px (1.25rem) | 400 (Regular) | 1.40 (28px) | 0 | Lighter card headings | +| Body Long 01 | IBM Plex Sans | 16px (1.00rem) | 400 (Regular) | 1.50 (24px) | 0 | Standard reading text | +| Body Long 02 | IBM Plex Sans | 16px (1.00rem) | 600 (Semibold) | 1.50 (24px) | 0 | Emphasized body, labels | +| Body Short 01 | IBM Plex Sans | 14px (0.88rem) | 400 (Regular) | 1.29 (18px) | 0.16px | Compact body, captions | +| Body Short 02 | IBM Plex Sans | 14px (0.88rem) | 600 (Semibold) | 1.29 (18px) | 0.16px | Bold captions, nav items | +| Caption 01 | IBM Plex Sans | 12px (0.75rem) | 400 (Regular) | 1.33 (16px) | 0.32px | Metadata, timestamps | +| Code 01 | IBM Plex Mono | 14px (0.88rem) | 400 (Regular) | 1.43 (20px) | 0.16px | Inline code, terminal | +| Code 02 | IBM Plex Mono | 16px (1.00rem) | 400 (Regular) | 1.50 (24px) | 0 | Code blocks | +| Mono Display | IBM Plex Mono | 42px (2.63rem) | 400 (Regular) | 1.19 (50px) | 0 | Hero mono decorative | + +### Principles +- **Light weight at display sizes**: Carbon's expressive type set uses weight 300 (Light) at 42px+. This creates a distinctive tension — the content speaks with corporate authority while the letterforms whisper with typographic lightness. +- **Micro-tracking at small sizes**: 0.16px letter-spacing at 14px and 0.32px at 12px. These seemingly negligible values are Carbon's secret weapon for readability at compact sizes — they open up the tight IBM Plex letterforms just enough. +- **Three functional weights**: 300 (display/expressive), 400 (body/reading), 600 (emphasis/UI labels). Weight 700 is intentionally absent from the production type scale. +- **Productive vs. Expressive**: Productive sets use tighter line-heights (1.29) for dense UI. Expressive sets breathe more (1.40-1.50) for marketing and editorial content. + +## 4. Component Stylings + +### Buttons + +**Primary Button (Blue)** +- Background: `#0f62fe` (Blue 60) → `--cds-button-primary` +- Text: `#ffffff` (White) +- Padding: 14px 63px 14px 15px (asymmetric — room for trailing icon) +- Border: 1px solid transparent +- Border-radius: 0px (sharp rectangle — the Carbon signature) +- Height: 48px (default), 40px (compact), 64px (expressive) +- Hover: `#0353e9` (Blue 60 Hover) → `--cds-button-primary-hover` +- Active: `#002d9c` (Blue 80) → `--cds-button-primary-active` +- Focus: `2px solid #0f62fe` inset + `1px solid #ffffff` inner + +**Secondary Button (Gray)** +- Background: `#393939` (Gray 80) +- Text: `#ffffff` +- Hover: `#4c4c4c` (Gray 70) +- Active: `#6f6f6f` (Gray 60) +- Same padding/radius as primary + +**Tertiary Button (Ghost Blue)** +- Background: transparent +- Text: `#0f62fe` (Blue 60) +- Border: 1px solid `#0f62fe` +- Hover: `#0353e9` text + Blue 10 background tint +- Border-radius: 0px + +**Ghost Button** +- Background: transparent +- Text: `#0f62fe` (Blue 60) +- Padding: 14px 16px +- Border: none +- Hover: `#e8e8e8` background tint + +**Danger Button** +- Background: `#da1e28` (Red 60) +- Text: `#ffffff` +- Hover: `#b81921` (Red 70) + +### Cards & Containers +- Background: `#ffffff` on white theme, `#f4f4f4` (Gray 10) for elevated cards +- Border: none (flat design — no border or shadow on most cards) +- Border-radius: 0px (matching the rectangular button aesthetic) +- Hover: background shifts to `#e8e8e8` (Gray 10 Hover) for clickable cards +- Content padding: 16px +- Separation: background-color layering (white → gray 10 → white) rather than shadows + +### Inputs & Forms +- Background: `#f4f4f4` (Gray 10) — `--cds-field` +- Text: `#161616` (Gray 100) +- Padding: 0px 16px (horizontal only) +- Height: 40px (default), 48px (large) +- Border: none on sides/top — `2px solid transparent` bottom +- Bottom-border active: `2px solid #161616` (Gray 100) +- Focus: `2px solid #0f62fe` (Blue 60) bottom-border — `--cds-focus` +- Error: `2px solid #da1e28` (Red 60) bottom-border +- Label: 12px IBM Plex Sans, 0.32px letter-spacing, Gray 70 +- Helper text: 12px, Gray 60 +- Placeholder: Gray 60 (`#6f6f6f`) +- Border-radius: 0px (top) — inputs are sharp-cornered + +### Navigation +- Background: `#161616` (Gray 100) — full-width dark masthead +- Height: 48px +- Logo: IBM 8-bar logo, white on dark, left-aligned +- Links: 14px IBM Plex Sans, weight 400, `#c6c6c6` (Gray 30) default +- Link hover: `#ffffff` text +- Active link: `#ffffff` with bottom-border indicator +- Platform switcher: left-aligned horizontal tabs +- Search: icon-triggered slide-out search field +- Mobile: hamburger with left-sliding panel + +### Links +- Default: `#0f62fe` (Blue 60) with no underline +- Hover: `#0043ce` (Blue 70) with underline +- Visited: remains Blue 60 (no visited state change) +- Inline links: underlined by default in body copy + +### Distinctive Components + +**Content Block (Hero/Feature)** +- Full-width alternating white/gray-10 background bands +- Headline left-aligned with 60px or 48px display type +- CTA as blue primary button with arrow icon +- Image/illustration right-aligned or below on mobile + +**Tile (Clickable Card)** +- Background: `#f4f4f4` or `#ffffff` +- Full-width bottom-border or background-shift hover +- Arrow icon bottom-right on hover +- No shadow — flatness is the identity + +**Tag / Label** +- Background: contextual color at 10% opacity (e.g., Blue 10, Red 10) +- Text: corresponding 60-grade color +- Padding: 4px 8px +- Border-radius: 24px (pill — exception to the 0px rule) +- Font: 12px weight 400 + +**Notification Banner** +- Full-width bar, typically Blue 60 or Gray 100 background +- White text, 14px +- Close/dismiss icon right-aligned + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px (Carbon 2x grid) +- Component spacing scale: 2px, 4px, 8px, 12px, 16px, 24px, 32px, 40px, 48px +- Layout spacing scale: 16px, 24px, 32px, 48px, 64px, 80px, 96px, 160px +- Mini unit: 8px (smallest usable spacing) +- Padding within components: typically 16px +- Gap between cards/tiles: 1px (hairline) or 16px (standard) + +### Grid & Container +- 16-column grid (Carbon's 2x grid system) +- Max content width: 1584px (max breakpoint) +- Column gutters: 32px (16px on mobile) +- Margin: 16px (mobile), 32px (tablet+) +- Content typically spans 8-12 columns for readable line lengths +- Full-bleed sections alternate with contained content + +### Whitespace Philosophy +- **Functional density**: Carbon favors productive density over expansive whitespace. Sections are tightly packed compared to consumer design systems — this reflects IBM's enterprise DNA. +- **Background-color zoning**: Instead of massive padding between sections, IBM uses alternating background colors (white → gray 10 → white) to create visual separation with minimal vertical space. +- **Consistent 48px rhythm**: Major section transitions use 48px vertical spacing. Hero sections may use 80px–96px. + +### Border Radius Scale +- **0px**: Primary buttons, inputs, tiles, cards — the dominant treatment. Carbon is fundamentally rectangular. +- **2px**: Occasionally on small interactive elements (tags) +- **24px**: Tags/labels (pill shape — the sole rounded exception) +- **50%**: Avatar circles, icon containers + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, `#ffffff` background | Default page surface | +| Layer 01 | No shadow, `#f4f4f4` background | Cards, tiles, alternating sections | +| Layer 02 | No shadow, `#e0e0e0` background | Elevated panels within Layer 01 | +| Raised | `0 2px 6px rgba(0,0,0,0.3)` | Dropdowns, tooltips, overflow menus | +| Overlay | `0 2px 6px rgba(0,0,0,0.3)` + dark scrim | Modal dialogs, side panels | +| Focus | `2px solid #0f62fe` inset + `1px solid #ffffff` | Keyboard focus ring | +| Bottom-border | `2px solid #161616` on bottom edge | Active input, active tab indicator | + +**Shadow Philosophy**: Carbon is deliberately shadow-averse. IBM achieves depth primarily through background-color layering — stacking surfaces of progressively darker grays rather than adding box-shadows. This creates a flat, print-inspired aesthetic where hierarchy is communicated through color value, not simulated light. Shadows are reserved exclusively for floating elements (dropdowns, tooltips, modals) where the element genuinely overlaps content. This restraint gives the rare shadow meaningful impact — when something floats in Carbon, it matters. + +## 7. Do's and Don'ts + +### Do +- Use IBM Plex Sans at weight 300 for display sizes (42px+) — the lightness is intentional +- Apply 0.16px letter-spacing on 14px body text and 0.32px on 12px captions +- Use 0px border-radius on buttons, inputs, cards, and tiles — rectangles are the system +- Reference `--cds-*` token names when implementing (e.g., `--cds-button-primary`, `--cds-text-primary`) +- Use background-color layering (white → gray 10 → gray 20) for depth instead of shadows +- Use bottom-border (not box) for input field indicators +- Maintain the 48px default button height and asymmetric padding for icon accommodation +- Apply Blue 60 (`#0f62fe`) as the sole accent — one blue to rule them all + +### Don't +- Don't round button corners — 0px radius is the Carbon identity +- Don't use shadows on cards or tiles — flatness is the point +- Don't introduce additional accent colors — IBM's system is monochromatic + blue +- Don't use weight 700 (Bold) — the scale stops at 600 (Semibold) +- Don't add letter-spacing to display-size text — tracking is only for 14px and below +- Don't box inputs with full borders — Carbon inputs use bottom-border only +- Don't use gradient backgrounds — IBM's surfaces are flat, solid colors +- Don't deviate from the 8px spacing grid — every value should be divisible by 8 (with 2px and 4px for micro-adjustments) + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Small (sm) | 320px | Single column, hamburger nav, 16px margins | +| Medium (md) | 672px | 2-column grids begin, expanded content | +| Large (lg) | 1056px | Full navigation visible, 3-4 column grids | +| X-Large (xlg) | 1312px | Maximum content density, wide layouts | +| Max | 1584px | Maximum content width, centered with margins | + +### Touch Targets +- Button height: 48px default, minimum 40px (compact) +- Navigation links: 48px row height for touch +- Input height: 40px default, 48px large +- Icon buttons: 48px square touch target +- Mobile menu items: full-width 48px rows + +### Collapsing Strategy +- Hero: 60px display → 42px → 32px heading as viewport narrows +- Navigation: full horizontal masthead → hamburger with slide-out panel +- Grid: 4-column → 2-column → single column +- Tiles/cards: horizontal grid → vertical stack +- Images: maintain aspect ratio, max-width 100% +- Footer: multi-column link groups → stacked single column +- Section padding: 48px → 32px → 16px + +### Image Behavior +- Responsive images with `max-width: 100%` +- Product illustrations scale proportionally +- Hero images may shift from side-by-side to stacked below +- Data visualizations maintain aspect ratio with horizontal scroll on mobile + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA: IBM Blue 60 (`#0f62fe`) +- Background: White (`#ffffff`) +- Heading text: Gray 100 (`#161616`) +- Body text: Gray 100 (`#161616`) +- Secondary text: Gray 70 (`#525252`) +- Surface/Card: Gray 10 (`#f4f4f4`) +- Border: Gray 30 (`#c6c6c6`) +- Link: Blue 60 (`#0f62fe`) +- Link hover: Blue 70 (`#0043ce`) +- Focus ring: Blue 60 (`#0f62fe`) +- Error: Red 60 (`#da1e28`) +- Success: Green 50 (`#24a148`) + +### Example Component Prompts +- "Create a hero section on white background. Headline at 60px IBM Plex Sans weight 300, line-height 1.17, color #161616. Subtitle at 16px weight 400, line-height 1.50, color #525252, max-width 640px. Blue CTA button (#0f62fe background, #ffffff text, 0px border-radius, 48px height, 14px 63px 14px 15px padding)." +- "Design a card tile: #f4f4f4 background, 0px border-radius, 16px padding. Title at 20px IBM Plex Sans weight 600, line-height 1.40, color #161616. Body at 14px weight 400, letter-spacing 0.16px, line-height 1.29, color #525252. Hover: background shifts to #e8e8e8." +- "Build a form field: #f4f4f4 background, 0px border-radius, 40px height, 16px horizontal padding. Label above at 12px weight 400, letter-spacing 0.32px, color #525252. Bottom-border: 2px solid transparent default, 2px solid #0f62fe on focus. Placeholder: #6f6f6f." +- "Create a dark navigation bar: #161616 background, 48px height. IBM logo white left-aligned. Links at 14px IBM Plex Sans weight 400, color #c6c6c6. Hover: #ffffff text. Active: #ffffff with 2px bottom border." +- "Build a tag component: Blue 10 (#edf5ff) background, Blue 60 (#0f62fe) text, 4px 8px padding, 24px border-radius, 12px IBM Plex Sans weight 400." + +### Iteration Guide +1. Always use 0px border-radius on buttons, inputs, and cards — this is non-negotiable in Carbon +2. Letter-spacing only at small sizes: 0.16px at 14px, 0.32px at 12px — never on display text +3. Three weights: 300 (display), 400 (body), 600 (emphasis) — no bold +4. Blue 60 is the only accent color — do not introduce secondary accent hues +5. Depth comes from background-color layering (white → #f4f4f4 → #e0e0e0), not shadows +6. Inputs have bottom-border only, never fully boxed +7. Use `--cds-` prefix for token naming to stay Carbon-compatible +8. 48px is the universal interactive element height diff --git a/design-md/ibm/README.md b/design-md/ibm/README.md new file mode 100644 index 0000000..0bd0564 --- /dev/null +++ b/design-md/ibm/README.md @@ -0,0 +1,25 @@ +# Ibm — Design System + +> Design.md extracted from the public [ibm](https://ibm.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 Ibm 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 +![Ibm Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/ibm/preview-dark-screenshot.png) + +### Light Mode +![Ibm Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/ibm/preview-screenshot.png) diff --git a/design-md/ibm/preview-dark.html b/design-md/ibm/preview-dark.html new file mode 100644 index 0000000..8578f6e --- /dev/null +++ b/design-md/ibm/preview-dark.html @@ -0,0 +1,445 @@ + + + + + +Design System Preview: IBM (Dark) + + + + + + + +
Dark Mode
+ + + +
+
+

Design System Inspired by IBM

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value from the Carbon Design System — visualized.

+ +
+
+ +
+ +
+ +

Color Palette

+ +
Primary (Dark Theme)
+
+
Blue 40
#78a9ff
Interactive (dark)
+
Blue 60
#0f62fe
Primary button
+
Gray 100
#161616
Background
+
+ +
Blue Scale
+
+
Blue 90
#001d6c
Tint surface (dark)
+
Blue 60
#0f62fe
Primary action
+
Blue 40
#78a9ff
Links (dark)
+
Blue 50
#4589ff
Hover (dark)
+
+ +
Neutral Scale (Dark Theme)
+
+
Gray 100
#161616
Background
+
Gray 90
#262626
Layer 01
+
Gray 80
#393939
Layer 02 / Border
+
Gray 70
#525252
Subtle border
+
Gray 60
#6f6f6f
Placeholder
+
Gray 50
#8d8d8d
Disabled
+
Gray 30
#c6c6c6
Secondary text
+
Gray 10
#f4f4f4
Primary text
+
+ +
Support & Status (Dark)
+
+
Red 40
#ff8389
Error (dark)
+
Green 40
#42be65
Success (dark)
+
Yellow 30
#f1c21b
Warning
+
Blue 50
#4589ff
Info (dark)
+
+
+ +
+ +
+
+ +

Typography Scale

+ +
Display 01
Display 01 — 60px / 300 / 1.17 / IBM Plex Sans
+
Display 02
Display 02 — 48px / 300 / 1.17 / IBM Plex Sans
+
Heading 01
Heading 01 — 42px / 300 / 1.19 / IBM Plex Sans
+
Heading 02
Heading 02 — 32px / 400 / 1.25 / IBM Plex Sans
+
Heading 03
Heading 03 — 24px / 400 / 1.33 / IBM Plex Sans
+
Heading 04 — Semibold
Heading 04 — 20px / 600 / 1.40 / IBM Plex Sans
+
Body Long 01 — Build smarter business workflows with AI and hybrid cloud solutions that scale.
Body Long 01 — 16px / 400 / 1.50 / IBM Plex Sans
+
Body Short 01 — Compact text for UI elements and captions with micro-tracking.
Body Short 01 — 14px / 400 / 1.29 / 0.16px / IBM Plex Sans
+
Caption 01 — Metadata, timestamps, helper text
Caption 01 — 12px / 400 / 1.33 / 0.32px / IBM Plex Sans
+
const config = { theme: 'g100', prefix: 'cds' };
Code 01 — 14px / 400 / 1.43 / 0.16px / IBM Plex Mono
+
Mono Display
Mono Display — 42px / 400 / 1.19 / IBM Plex Mono
+
+
+ +
+ +
+ +

Button Variants

+
+
Primary button
Primary (Blue 60)
+ +
Tertiary button
Tertiary (Blue 40)
+
+
+ +
Delete resource
Danger (Red 60)
+
AI Ready
Tag / Label
+
+
+ +
+ +
+
+ +

Card & Tile Examples

+
+
+
Hybrid Cloud
+

IBM Cloud Pak

+

Modernize and build cloud-native applications anywhere with an open, faster, and more secure foundation.

+
+
+
AI Platform
+

watsonx

+

Scale and accelerate the impact of AI across your business with a next-generation enterprise studio.

+
+
+
Automation
+

Business Automation

+

Automate business and IT operations with AI-powered decision-making and intelligent workflows.

+
+
+
+
+ +
+ +
+ +

Form Elements

+
+ + +
Default state (bottom-border)
+
+
+ + +
Focus state (Blue 40 bottom-border)
+
+
+ + +
Error: Region not found
+
+
+ + +
+
+ +
+ +
+
+ +

Spacing Scale

+
+
2
+
4
+
8
+
12
+
16
+
24
+
32
+
40
+
48
+
+

Layout spacing: 16, 24, 32, 48, 64, 80, 96, 160px. Base unit: 8px (Carbon 2x grid).

+
+
+ +
+ +
+ +

Border Radius Scale

+
+
0px
Buttons, inputs, cards
+
2px
Small elements
+
24px
Tags / Labels
+
50%
Avatars, icons
+
+
+ +
+ +
+
+ +

Elevation & Depth

+
+
Level 0: Flat
Gray 100 background
+
Layer 01
Gray 90 (#262626)
+
Layer 02
Gray 80 (#393939)
+
Raised
Dropdowns, tooltips
+
Focus
2px Blue 40 ring
+
Bottom-border
Active input / tab
+
+
+
+ + + + + diff --git a/design-md/ibm/preview.html b/design-md/ibm/preview.html new file mode 100644 index 0000000..2c1f31e --- /dev/null +++ b/design-md/ibm/preview.html @@ -0,0 +1,430 @@ + + + + + +Design System Preview: IBM (Light) + + + + + + + + + +
+
+

Design System Inspired by IBM

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value from the Carbon Design System — visualized.

+ +
+
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Blue 60
#0f62fe
Primary interactive
+
White
#ffffff
Page background
+
Gray 100
#161616
Primary text, nav
+
+ +
Blue Scale
+
+
Blue 10
#edf5ff
Tint surface
+
Blue 60
#0f62fe
Primary action
+
Blue 70
#0043ce
Link hover
+
Blue 80
#002d9c
Active/pressed
+
+ +
Neutral Scale
+
+
Gray 10
#f4f4f4
Layer 01 surface
+
Gray 20
#e0e0e0
Subtle borders
+
Gray 30
#c6c6c6
Borders, dividers
+
Gray 50
#8d8d8d
Disabled icons
+
Gray 60
#6f6f6f
Placeholder text
+
Gray 70
#525252
Secondary text
+
Gray 80
#393939
Secondary button
+
Gray 90
#262626
Dark surfaces
+
Gray 100
#161616
Primary text
+
+ +
Support & Status
+
+
Red 60
#da1e28
Error / Danger
+
Green 50
#24a148
Success
+
Yellow 30
#f1c21b
Warning
+
Blue 60
#0f62fe
Informational
+
+
+ +
+ +
+
+ +

Typography Scale

+ +
Display 01
Display 01 — 60px / 300 / 1.17 / IBM Plex Sans
+
Display 02
Display 02 — 48px / 300 / 1.17 / IBM Plex Sans
+
Heading 01
Heading 01 — 42px / 300 / 1.19 / IBM Plex Sans
+
Heading 02
Heading 02 — 32px / 400 / 1.25 / IBM Plex Sans
+
Heading 03
Heading 03 — 24px / 400 / 1.33 / IBM Plex Sans
+
Heading 04 — Semibold
Heading 04 — 20px / 600 / 1.40 / IBM Plex Sans
+
Body Long 01 — Build smarter business workflows with AI and hybrid cloud solutions that scale.
Body Long 01 — 16px / 400 / 1.50 / IBM Plex Sans
+
Body Short 01 — Compact text for UI elements and captions with micro-tracking.
Body Short 01 — 14px / 400 / 1.29 / 0.16px / IBM Plex Sans
+
Caption 01 — Metadata, timestamps, helper text
Caption 01 — 12px / 400 / 1.33 / 0.32px / IBM Plex Sans
+
const config = { theme: 'g100', prefix: 'cds' };
Code 01 — 14px / 400 / 1.43 / 0.16px / IBM Plex Mono
+
Mono Display
Mono Display — 42px / 400 / 1.19 / IBM Plex Mono
+
+
+ +
+ +
+ +

Button Variants

+
+
Primary button
Primary (Blue 60)
+
Secondary button
Secondary (Gray 80)
+
Tertiary button
Tertiary (Ghost Blue)
+
+
+ +
Delete resource
Danger (Red 60)
+
AI Ready
Tag / Label
+
+
+ +
+ +
+
+ +

Card & Tile Examples

+
+
+
Hybrid Cloud
+

IBM Cloud Pak

+

Modernize and build cloud-native applications anywhere with an open, faster, and more secure foundation.

+
+
+
AI Platform
+

watsonx

+

Scale and accelerate the impact of AI across your business with a next-generation enterprise studio.

+
+
+
Automation
+

Business Automation

+

Automate business and IT operations with AI-powered decision-making and intelligent workflows.

+
+
+
+
+ +
+ +
+ +

Form Elements

+
+ + +
Default state (bottom-border)
+
+
+ + +
Focus state (Blue 60 bottom-border)
+
+
+ + +
Error: Region not found
+
+
+ + +
+
+ +
+ +
+
+ +

Spacing Scale

+
+
2
+
4
+
8
+
12
+
16
+
24
+
32
+
40
+
48
+
+

Layout spacing: 16, 24, 32, 48, 64, 80, 96, 160px. Base unit: 8px (Carbon 2x grid).

+
+
+ +
+ +
+ +

Border Radius Scale

+
+
0px
Buttons, inputs, cards
+
2px
Small elements
+
24px
Tags / Labels
+
50%
Avatars, icons
+
+
+ +
+ +
+
+ +

Elevation & Depth

+
+
Level 0: Flat
White surface, no shadow
+
Layer 01
Gray 10 (#f4f4f4)
+
Layer 02
Gray 20 (#e0e0e0)
+
Raised
Dropdowns, tooltips
+
Focus
2px inset Blue 60
+
Bottom-border
Active input / tab
+
+
+
+ + + + + diff --git a/design-md/linear.app/DESIGN.md b/design-md/linear.app/DESIGN.md new file mode 100644 index 0000000..01509d6 --- /dev/null +++ b/design-md/linear.app/DESIGN.md @@ -0,0 +1,367 @@ +# Design System: Linear + +## 1. Visual Theme & Atmosphere + +Linear's website is a masterclass in dark-mode-first product design — a near-black canvas (`#08090a`) where content emerges from darkness like starlight. The overall impression is one of extreme precision engineering: every element exists in a carefully calibrated hierarchy of luminance, from barely-visible borders (`rgba(255,255,255,0.05)`) to soft, luminous text (`#f7f8f8`). This is not a dark theme applied to a light design — it is darkness as the native medium, where information density is managed through subtle gradations of white opacity rather than color variation. + +The typography system is built entirely on Inter Variable with OpenType features `"cv01"` and `"ss03"` enabled globally, giving the typeface a cleaner, more geometric character. Inter is used at a remarkable range of weights — from 300 (light body) through 510 (medium, Linear's signature weight) to 590 (semibold emphasis). The 510 weight is particularly distinctive: it sits between regular and medium, creating a subtle emphasis that doesn't shout. At display sizes (72px, 64px, 48px), Inter uses aggressive negative letter-spacing (-1.584px to -1.056px), creating compressed, authoritative headlines that feel engineered rather than designed. Berkeley Mono serves as the monospace companion for code and technical labels, with fallbacks to ui-monospace, SF Mono, and Menlo. + +The color system is almost entirely achromatic — dark backgrounds with white/gray text — punctuated by a single brand accent: Linear's signature indigo-violet (`#5e6ad2` for backgrounds, `#7170ff` for interactive accents). This accent color is used sparingly and intentionally, appearing only on CTAs, active states, and brand elements. The border system uses ultra-thin, semi-transparent white borders (`rgba(255,255,255,0.05)` to `rgba(255,255,255,0.08)`) that create structure without visual noise, like wireframes drawn in moonlight. + +**Key Characteristics:** +- Dark-mode-native: `#08090a` marketing background, `#0f1011` panel background, `#191a1b` elevated surfaces +- Inter Variable with `"cv01", "ss03"` globally — geometric alternates for a cleaner aesthetic +- Signature weight 510 (between regular and medium) for most UI text +- Aggressive negative letter-spacing at display sizes (-1.584px at 72px, -1.056px at 48px) +- Brand indigo-violet: `#5e6ad2` (bg) / `#7170ff` (accent) / `#828fff` (hover) — the only chromatic color in the system +- Semi-transparent white borders throughout: `rgba(255,255,255,0.05)` to `rgba(255,255,255,0.08)` +- Button backgrounds at near-zero opacity: `rgba(255,255,255,0.02)` to `rgba(255,255,255,0.05)` +- Multi-layered shadows with inset variants for depth on dark surfaces +- Radix UI primitives as the component foundation (6 detected primitives) +- Success green (`#27a644`, `#10b981`) used only for status indicators + +## 2. Color Palette & Roles + +### Background Surfaces +- **Marketing Black** (`#010102` / `#08090a`): The deepest background — the canvas for hero sections and marketing pages. Near-pure black with an imperceptible blue-cool undertone. +- **Panel Dark** (`#0f1011`): Sidebar and panel backgrounds. One step up from the marketing black. +- **Level 3 Surface** (`#191a1b`): Elevated surface areas, card backgrounds, dropdowns. +- **Secondary Surface** (`#28282c`): The lightest dark surface — used for hover states and slightly elevated components. + +### Text & Content +- **Primary Text** (`#f7f8f8`): Near-white with a barely-warm cast. The default text color — not pure white, preventing eye strain on dark backgrounds. +- **Secondary Text** (`#d0d6e0`): Cool silver-gray for body text, descriptions, and secondary content. +- **Tertiary Text** (`#8a8f98`): Muted gray for placeholders, metadata, and de-emphasized content. +- **Quaternary Text** (`#62666d`): The most subdued text — timestamps, disabled states, subtle labels. + +### Brand & Accent +- **Brand Indigo** (`#5e6ad2`): Primary brand color — used for CTA button backgrounds, brand marks, and key interactive surfaces. +- **Accent Violet** (`#7170ff`): Brighter variant for interactive elements — links, active states, selected items. +- **Accent Hover** (`#828fff`): Lighter, more saturated variant for hover states on accent elements. +- **Security Lavender** (`#7a7fad`): Muted indigo used specifically for security-related UI elements. + +### Status Colors +- **Green** (`#27a644`): Primary success/active status. Used for "in progress" indicators. +- **Emerald** (`#10b981`): Secondary success — pill badges, completion states. + +### Border & Divider +- **Border Primary** (`#23252a`): Solid dark border for prominent separations. +- **Border Secondary** (`#34343a`): Slightly lighter solid border. +- **Border Tertiary** (`#3e3e44`): Lightest solid border variant. +- **Border Subtle** (`rgba(255,255,255,0.05)`): Ultra-subtle semi-transparent border — the default. +- **Border Standard** (`rgba(255,255,255,0.08)`): Standard semi-transparent border for cards, inputs, code blocks. +- **Line Tint** (`#141516`): Nearly invisible line for the subtlest divisions. +- **Line Tertiary** (`#18191a`): Slightly more visible divider line. + +### Light Mode Neutrals (for light theme contexts) +- **Light Background** (`#f7f8f8`): Page background in light mode. +- **Light Surface** (`#f3f4f5` / `#f5f6f7`): Subtle surface tinting. +- **Light Border** (`#d0d6e0`): Visible border in light contexts. +- **Light Border Alt** (`#e6e6e6`): Alternative lighter border. +- **Pure White** (`#ffffff`): Card surfaces, highlights. + +### Overlay +- **Overlay Primary** (`rgba(0,0,0,0.85)`): Modal/dialog backdrop — extremely dark for focus isolation. + +## 3. Typography Rules + +### Font Family +- **Primary**: `Inter Variable`, with fallbacks: `SF Pro Display, -apple-system, system-ui, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Open Sans, Helvetica Neue` +- **Monospace**: `Berkeley Mono`, with fallbacks: `ui-monospace, SF Mono, Menlo` +- **OpenType Features**: `"cv01", "ss03"` enabled globally — cv01 provides an alternate lowercase 'a' (single-story), ss03 adjusts specific letterforms for a cleaner geometric appearance. + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display XL | Inter Variable | 72px (4.50rem) | 510 | 1.00 (tight) | -1.584px | Hero headlines, maximum impact | +| Display Large | Inter Variable | 64px (4.00rem) | 510 | 1.00 (tight) | -1.408px | Secondary hero text | +| Display | Inter Variable | 48px (3.00rem) | 510 | 1.00 (tight) | -1.056px | Section headlines | +| Heading 1 | Inter Variable | 32px (2.00rem) | 400 | 1.13 (tight) | -0.704px | Major section titles | +| Heading 2 | Inter Variable | 24px (1.50rem) | 400 | 1.33 | -0.288px | Sub-section headings | +| Heading 3 | Inter Variable | 20px (1.25rem) | 590 | 1.33 | -0.24px | Feature titles, card headers | +| Body Large | Inter Variable | 18px (1.13rem) | 400 | 1.60 (relaxed) | -0.165px | Introduction text, feature descriptions | +| Body Emphasis | Inter Variable | 17px (1.06rem) | 590 | 1.60 (relaxed) | normal | Emphasized body, sub-headings in content | +| Body | Inter Variable | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text | +| Body Medium | Inter Variable | 16px (1.00rem) | 510 | 1.50 | normal | Navigation, labels | +| Body Semibold | Inter Variable | 16px (1.00rem) | 590 | 1.50 | normal | Strong emphasis | +| Small | Inter Variable | 15px (0.94rem) | 400 | 1.60 (relaxed) | -0.165px | Secondary body text | +| Small Medium | Inter Variable | 15px (0.94rem) | 510 | 1.60 (relaxed) | -0.165px | Emphasized small text | +| Small Semibold | Inter Variable | 15px (0.94rem) | 590 | 1.60 (relaxed) | -0.165px | Strong small text | +| Small Light | Inter Variable | 15px (0.94rem) | 300 | 1.47 | -0.165px | De-emphasized body | +| Caption Large | Inter Variable | 14px (0.88rem) | 510–590 | 1.50 | -0.182px | Sub-labels, category headers | +| Caption | Inter Variable | 13px (0.81rem) | 400–510 | 1.50 | -0.13px | Metadata, timestamps | +| Label | Inter Variable | 12px (0.75rem) | 400–590 | 1.40 | normal | Button text, small labels | +| Micro | Inter Variable | 11px (0.69rem) | 510 | 1.40 | normal | Tiny labels | +| Tiny | Inter Variable | 10px (0.63rem) | 400–510 | 1.50 | -0.15px | Overline text, sometimes uppercase | +| Link Large | Inter Variable | 16px (1.00rem) | 400 | 1.50 | normal | Standard links | +| Link Medium | Inter Variable | 15px (0.94rem) | 510 | 2.67 | normal | Spaced navigation links | +| Link Small | Inter Variable | 14px (0.88rem) | 510 | 1.50 | normal | Compact links | +| Link Caption | Inter Variable | 13px (0.81rem) | 400–510 | 1.50 | -0.13px | Footer, metadata links | +| Mono Body | Berkeley Mono | 14px (0.88rem) | 400 | 1.50 | normal | Code blocks | +| Mono Caption | Berkeley Mono | 13px (0.81rem) | 400 | 1.50 | normal | Code labels | +| Mono Label | Berkeley Mono | 12px (0.75rem) | 400 | 1.40 | normal | Code metadata, sometimes uppercase | + +### Principles +- **510 is the signature weight**: Linear uses Inter Variable's 510 weight (between regular 400 and medium 500) as its default emphasis weight. This creates a subtly bolded feel without the heaviness of traditional medium or semibold. +- **Compression at scale**: Display sizes use progressively tighter letter-spacing — -1.584px at 72px, -1.408px at 64px, -1.056px at 48px, -0.704px at 32px. Below 24px, spacing relaxes toward normal. +- **OpenType as identity**: `"cv01", "ss03"` aren't decorative — they transform Inter into Linear's distinctive typeface, giving it a more geometric, purposeful character. +- **Three-tier weight system**: 400 (reading), 510 (emphasis/UI), 590 (strong emphasis). The 300 weight appears only in deliberately de-emphasized contexts. + +## 4. Component Stylings + +### Buttons + +**Ghost Button (Default)** +- Background: `rgba(255,255,255,0.02)` +- Text: `#e2e4e7` (near-white) +- Padding: comfortable +- Radius: 6px +- Border: `1px solid rgb(36, 40, 44)` +- Outline: none +- Focus shadow: `rgba(0,0,0,0.1) 0px 4px 12px` +- Use: Standard actions, secondary CTAs + +**Subtle Button** +- Background: `rgba(255,255,255,0.04)` +- Text: `#d0d6e0` (silver-gray) +- Padding: 0px 6px +- Radius: 6px +- Use: Toolbar actions, contextual buttons + +**Primary Brand Button (Inferred)** +- Background: `#5e6ad2` (brand indigo) +- Text: `#ffffff` +- Padding: 8px 16px +- Radius: 6px +- Hover: `#828fff` shift +- Use: Primary CTAs ("Start building", "Sign up") + +**Icon Button (Circle)** +- Background: `rgba(255,255,255,0.03)` or `rgba(255,255,255,0.05)` +- Text: `#f7f8f8` or `#ffffff` +- Radius: 50% +- Border: `1px solid rgba(255,255,255,0.08)` +- Use: Close, menu toggle, icon-only actions + +**Pill Button** +- Background: transparent +- Text: `#d0d6e0` +- Padding: 0px 10px 0px 5px +- Radius: 9999px +- Border: `1px solid rgb(35, 37, 42)` +- Use: Filter chips, tags, status indicators + +**Small Toolbar Button** +- Background: `rgba(255,255,255,0.05)` +- Text: `#62666d` (muted) +- Radius: 2px +- Border: `1px solid rgba(255,255,255,0.05)` +- Shadow: `rgba(0,0,0,0.03) 0px 1.2px 0px 0px` +- Font: 12px weight 510 +- Use: Toolbar actions, quick-access controls + +### Cards & Containers +- Background: `rgba(255,255,255,0.02)` to `rgba(255,255,255,0.05)` (never solid — always translucent) +- Border: `1px solid rgba(255,255,255,0.08)` (standard) or `1px solid rgba(255,255,255,0.05)` (subtle) +- Radius: 8px (standard), 12px (featured), 22px (large panels) +- Shadow: `rgba(0,0,0,0.2) 0px 0px 0px 1px` or layered multi-shadow stacks +- Hover: subtle background opacity increase + +### Inputs & Forms + +**Text Area** +- Background: `rgba(255,255,255,0.02)` +- Text: `#d0d6e0` +- Border: `1px solid rgba(255,255,255,0.08)` +- Padding: 12px 14px +- Radius: 6px + +**Search Input** +- Background: transparent +- Text: `#f7f8f8` +- Padding: 1px 32px (icon-aware) + +**Button-style Input** +- Text: `#8a8f98` +- Padding: 1px 6px +- Radius: 5px +- Focus shadow: multi-layer stack + +### Badges & Pills + +**Success Pill** +- Background: `#10b981` +- Text: `#f7f8f8` +- Radius: 50% (circular) +- Font: 10px weight 510 +- Use: Status dots, completion indicators + +**Neutral Pill** +- Background: transparent +- Text: `#d0d6e0` +- Padding: 0px 10px 0px 5px +- Radius: 9999px +- Border: `1px solid rgb(35, 37, 42)` +- Font: 12px weight 510 +- Use: Tags, filter chips, category labels + +**Subtle Badge** +- Background: `rgba(255,255,255,0.05)` +- Text: `#f7f8f8` +- Padding: 0px 8px 0px 2px +- Radius: 2px +- Border: `1px solid rgba(255,255,255,0.05)` +- Font: 10px weight 510 +- Use: Inline labels, version tags + +### Navigation +- Dark sticky header on near-black background +- Linear logomark left-aligned (SVG icon) +- Links: Inter Variable 13–14px weight 510, `#d0d6e0` text +- Active/hover: text lightens to `#f7f8f8` +- CTA: Brand indigo button or ghost button +- Mobile: hamburger collapse +- Search: command palette trigger (`/` or `Cmd+K`) + +### Image Treatment +- Product screenshots on dark backgrounds with subtle border (`rgba(255,255,255,0.08)`) +- Top-rounded images: `12px 12px 0px 0px` radius +- Dashboard/issue previews dominate feature sections +- Subtle shadow beneath screenshots: `rgba(0,0,0,0.4) 0px 2px 4px` + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 4px, 7px, 8px, 11px, 12px, 16px, 19px, 20px, 22px, 24px, 28px, 32px, 35px +- The 7px and 11px values suggest micro-adjustments for optical alignment +- Primary rhythm: 8px, 16px, 24px, 32px (standard 8px grid) + +### Grid & Container +- Max content width: approximately 1200px +- Hero: centered single-column with generous vertical padding +- Feature sections: 2–3 column grids for feature cards +- Full-width dark sections with internal max-width constraints +- Changelog: single-column timeline layout + +### Whitespace Philosophy +- **Darkness as space**: On Linear's dark canvas, empty space isn't white — it's absence. The near-black background IS the whitespace, and content emerges from it. +- **Compressed headlines, expanded surroundings**: Display text at 72px with -1.584px tracking is dense and compressed, but sits within vast dark padding. The contrast between typographic density and spatial generosity creates tension. +- **Section isolation**: Each feature section is separated by generous vertical padding (80px+) with no visible dividers — the dark background provides natural separation. + +### Border Radius Scale +- Micro (2px): Inline badges, toolbar buttons, subtle tags +- Standard (4px): Small containers, list items +- Comfortable (6px): Buttons, inputs, functional elements +- Card (8px): Cards, dropdowns, popovers +- Panel (12px): Panels, featured cards, section containers +- Large (22px): Large panel elements +- Full Pill (9999px): Chips, filter pills, status tags +- Circle (50%): Icon buttons, avatars, status dots + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, `#010102` bg | Page background, deepest canvas | +| Subtle (Level 1) | `rgba(0,0,0,0.03) 0px 1.2px 0px` | Toolbar buttons, micro-elevation | +| Surface (Level 2) | `rgba(255,255,255,0.05)` bg + `1px solid rgba(255,255,255,0.08)` border | Cards, input fields, containers | +| Inset (Level 2b) | `rgba(0,0,0,0.2) 0px 0px 12px 0px inset` | Recessed panels, inner shadows | +| Ring (Level 3) | `rgba(0,0,0,0.2) 0px 0px 0px 1px` | Border-as-shadow technique | +| Elevated (Level 4) | `rgba(0,0,0,0.4) 0px 2px 4px` | Floating elements, dropdowns | +| Dialog (Level 5) | Multi-layer stack: `rgba(0,0,0,0) 0px 8px 2px, rgba(0,0,0,0.01) 0px 5px 2px, rgba(0,0,0,0.04) 0px 3px 2px, rgba(0,0,0,0.07) 0px 1px 1px, rgba(0,0,0,0.08) 0px 0px 1px` | Popovers, command palette, modals | +| Focus | `rgba(0,0,0,0.1) 0px 4px 12px` + additional layers | Keyboard focus on interactive elements | + +**Shadow Philosophy**: On dark surfaces, traditional shadows (dark on dark) are nearly invisible. Linear solves this by using semi-transparent white borders as the primary depth indicator. Elevation isn't communicated through shadow darkness but through background luminance steps — each level slightly increases the white opacity of the surface background (`0.02` → `0.04` → `0.05`), creating a subtle stacking effect. The inset shadow technique (`rgba(0,0,0,0.2) 0px 0px 12px 0px inset`) creates a unique "sunken" effect for recessed panels, adding dimensional depth that traditional dark themes lack. + +## 7. Do's and Don'ts + +### Do +- Use Inter Variable with `"cv01", "ss03"` on ALL text — these features are fundamental to Linear's typeface identity +- Use weight 510 as your default emphasis weight — it's Linear's signature between-weight +- Apply aggressive negative letter-spacing at display sizes (-1.584px at 72px, -1.056px at 48px) +- Build on near-black backgrounds: `#08090a` for marketing, `#0f1011` for panels, `#191a1b` for elevated surfaces +- Use semi-transparent white borders (`rgba(255,255,255,0.05)` to `rgba(255,255,255,0.08)`) instead of solid dark borders +- Keep button backgrounds nearly transparent: `rgba(255,255,255,0.02)` to `rgba(255,255,255,0.05)` +- Reserve brand indigo (`#5e6ad2` / `#7170ff`) for primary CTAs and interactive accents only +- Use `#f7f8f8` for primary text — not pure `#ffffff`, which would be too harsh +- Apply the luminance stacking model: deeper = darker bg, elevated = slightly lighter bg + +### Don't +- Don't use pure white (`#ffffff`) as primary text — `#f7f8f8` prevents eye strain +- Don't use solid colored backgrounds for buttons — transparency is the system (rgba white at 0.02–0.05) +- Don't apply the brand indigo decoratively — it's reserved for interactive/CTA elements only +- Don't use positive letter-spacing on display text — Inter at large sizes always runs negative +- Don't use visible/opaque borders on dark backgrounds — borders should be whisper-thin semi-transparent white +- Don't skip the OpenType features (`"cv01", "ss03"`) — without them, it's generic Inter, not Linear's Inter +- Don't use weight 700 (bold) — Linear's maximum weight is 590, with 510 as the workhorse +- Don't introduce warm colors into the UI chrome — the palette is cool gray with blue-violet accent only +- Don't use drop shadows for elevation on dark surfaces — use background luminance stepping instead + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile Small | <600px | Single column, compact padding | +| Mobile | 600–640px | Standard mobile layout | +| Tablet | 640–768px | Two-column grids begin | +| Desktop Small | 768–1024px | Full card grids, expanded padding | +| Desktop | 1024–1280px | Standard desktop, full navigation | +| Large Desktop | >1280px | Full layout, generous margins | + +### Touch Targets +- Buttons use comfortable padding with 6px radius minimum +- Navigation links at 13–14px with adequate spacing +- Pill tags have 10px horizontal padding for touch accessibility +- Icon buttons at 50% radius ensure circular, easy-to-tap targets +- Search trigger is prominently placed with generous hit area + +### Collapsing Strategy +- Hero: 72px → 48px → 32px display text, tracking adjusts proportionally +- Navigation: horizontal links + CTAs → hamburger menu at 768px +- Feature cards: 3-column → 2-column → single column stacked +- Product screenshots: maintain aspect ratio, may reduce padding +- Changelog: timeline maintains single-column through all sizes +- Footer: multi-column → stacked single column +- Section spacing: 80px+ → 48px on mobile + +### Image Behavior +- Dashboard screenshots maintain border treatment at all sizes +- Hero visuals simplify on mobile (fewer floating UI elements) +- Product screenshots use responsive sizing with consistent radius +- Dark background ensures screenshots blend naturally at any viewport + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA: Brand Indigo (`#5e6ad2`) +- Page Background: Marketing Black (`#08090a`) +- Panel Background: Panel Dark (`#0f1011`) +- Surface: Level 3 (`#191a1b`) +- Heading text: Primary White (`#f7f8f8`) +- Body text: Silver Gray (`#d0d6e0`) +- Muted text: Tertiary Gray (`#8a8f98`) +- Subtle text: Quaternary Gray (`#62666d`) +- Accent: Violet (`#7170ff`) +- Accent Hover: Light Violet (`#828fff`) +- Border (default): `rgba(255,255,255,0.08)` +- Border (subtle): `rgba(255,255,255,0.05)` +- Focus ring: Multi-layer shadow stack + +### Example Component Prompts +- "Create a hero section on `#08090a` background. Headline at 48px Inter Variable weight 510, line-height 1.00, letter-spacing -1.056px, color `#f7f8f8`, font-feature-settings `'cv01', 'ss03'`. Subtitle at 18px weight 400, line-height 1.60, color `#8a8f98`. Brand CTA button (`#5e6ad2`, 6px radius, 8px 16px padding) and ghost button (`rgba(255,255,255,0.02)` bg, `1px solid rgba(255,255,255,0.08)` border, 6px radius)." +- "Design a card on dark background: `rgba(255,255,255,0.02)` background, `1px solid rgba(255,255,255,0.08)` border, 8px radius. Title at 20px Inter Variable weight 590, letter-spacing -0.24px, color `#f7f8f8`. Body at 15px weight 400, color `#8a8f98`, letter-spacing -0.165px." +- "Build a pill badge: transparent background, `#d0d6e0` text, 9999px radius, 0px 10px padding, `1px solid #23252a` border, 12px Inter Variable weight 510." +- "Create navigation: dark sticky header on `#0f1011`. Inter Variable 13px weight 510 for links, `#d0d6e0` text. Brand indigo CTA `#5e6ad2` right-aligned with 6px radius. Bottom border: `1px solid rgba(255,255,255,0.05)`." +- "Design a command palette: `#191a1b` background, `1px solid rgba(255,255,255,0.08)` border, 12px radius, multi-layer shadow stack. Input at 16px Inter Variable weight 400, `#f7f8f8` text. Results list with 13px weight 510 labels in `#d0d6e0` and 12px metadata in `#62666d`." + +### Iteration Guide +1. Always set font-feature-settings `"cv01", "ss03"` on all Inter text — this is non-negotiable for Linear's look +2. Letter-spacing scales with font size: -1.584px at 72px, -1.056px at 48px, -0.704px at 32px, normal below 16px +3. Three weights: 400 (read), 510 (emphasize/navigate), 590 (announce) +4. Surface elevation via background opacity: `rgba(255,255,255, 0.02 → 0.04 → 0.05)` — never solid backgrounds on dark +5. Brand indigo (`#5e6ad2` / `#7170ff`) is the only chromatic color — everything else is grayscale +6. Borders are always semi-transparent white, never solid dark colors on dark backgrounds +7. Berkeley Mono for any code or technical content, Inter Variable for everything else diff --git a/design-md/linear.app/README.md b/design-md/linear.app/README.md new file mode 100644 index 0000000..0cbedaa --- /dev/null +++ b/design-md/linear.app/README.md @@ -0,0 +1,25 @@ +# Linear.app — Design System + +> Design.md extracted from the public [linear.app](https://linear.app.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 Linear.app 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 +![Linear.app Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/linear.app/preview-dark-screenshot.png) + +### Light Mode +![Linear.app Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/linear.app/preview-screenshot.png) diff --git a/design-md/linear.app/preview-dark.html b/design-md/linear.app/preview-dark.html new file mode 100644 index 0000000..f55e75a --- /dev/null +++ b/design-md/linear.app/preview-dark.html @@ -0,0 +1,385 @@ + + + + + +Design System Preview: Linear (Dark) + + + + + + + +
Dark Mode
+ + + +
+

Design System
Inspired by Linear

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Background Surfaces
+
+
Marketing Black
#08090a
Hero backgrounds
+
Panel Dark
#0f1011
Sidebar, panels
+
Level 3
#191a1b
Elevated surfaces
+
Secondary
#28282c
Hover states
+
+ +
Text & Content
+
+
Primary Text
#f7f8f8
Headings, primary
+
Secondary Text
#d0d6e0
Body text
+
Tertiary Text
#8a8f98
Placeholders
+
Quaternary Text
#62666d
Disabled, timestamps
+
+ +
Brand & Accent
+
+
Brand Indigo
#5e6ad2
CTA backgrounds
+
Accent Violet
#7170ff
Links, active states
+
Accent Hover
#828fff
Hover states
+
Security Lavender
#7a7fad
Security UI
+
+ +
Status
+
+
Green
#27a644
Success, active
+
Emerald
#10b981
Badges, completion
+
+ +
Border & Dividers
+
+
Border Primary
#23252a
Strong borders
+
Border Secondary
#34343a
Medium borders
+
Border Tertiary
#3e3e44
Lighter borders
+
Line Tint
#141516
Subtle dividers
+
+ +
Semi-transparent Borders
+
+
Subtle Border
rgba(255,255,255,0.05)
Default borders
+
Standard Border
rgba(255,255,255,0.08)
Cards, inputs
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Headline
Display — 48px / 510 / 1.00 / -1.056px / Inter Variable
+
Heading One
Heading 1 — 32px / 400 / 1.13 / -0.704px / Inter Variable
+
Heading Two
Heading 2 — 24px / 400 / 1.33 / -0.288px / Inter Variable
+
Heading Three
Heading 3 — 20px / 590 / 1.33 / -0.24px / Inter Variable
+
Body Large — Linear helps streamline software projects, sprints, tasks, and bug tracking.
Body Large — 18px / 400 / 1.60 / -0.165px / Inter Variable
+
Body Medium — Navigation and emphasized text
Body Medium — 16px / 510 / 1.50 / Inter Variable
+
Small — Secondary body content and descriptions
Small — 15px / 400 / 1.60 / -0.165px / Inter Variable
+
Caption — Sub-labels and category headers
Caption — 14px / 510 / 1.50 / -0.182px / Inter Variable
+
Meta — Timestamps and metadata
Meta — 13px / 510 / 1.50 / -0.13px / Inter Variable
+
Label — Small button text and tags
Label — 12px / 510 / 1.40 / Inter Variable
+
const issue = await linear.createIssue({title});
Mono Body — 14px / 400 / 1.50 / Berkeley Mono
+
ISSUE STATUS
Mono Label — 12px / 400 / uppercase / Berkeley Mono
+
+ +
+ +
+ +

Button Variants

+
+
Start Building
Primary Brand
+ +
In Progress
Status Pill
+
Done
Success Pill
+
v2.4
Subtle Badge
+
Filter
Pill Chip
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Issues
+

Issue Tracking

+

Plan and track work across teams. Linear's issue tracker is designed for speed, with keyboard shortcuts for every action.

+
+
+
Cycles
+

Sprint Cycles

+

Time-boxed work periods that keep teams focused. Automatic rollover and progress tracking built in.

+
+
+
Roadmaps
+

Product Roadmaps

+

Visualize direction and progress. Connect issues to projects and track milestones across your entire product.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (accent ring)
+
Error (red ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
4
+
8
+
12
+
16
+
20
+
24
+
32
+
35
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
2px
Badges
+
4px
Small
+
6px
Buttons
+
8px
Cards
+
12px
Panels
+
22px
Large
+
9999px
Pills
+
50%
Circles
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Subtle
Micro-elevation
+
Level 2: Surface
Border-defined depth
+
Level 3: Elevated
Floating elements
+
Focus
Accent ring
+
Inset
Sunken panel
+
+
+ + + + + diff --git a/design-md/linear.app/preview.html b/design-md/linear.app/preview.html new file mode 100644 index 0000000..eb71846 --- /dev/null +++ b/design-md/linear.app/preview.html @@ -0,0 +1,375 @@ + + + + + +Design System Preview: Linear (Light) + + + + + + + + + +
+

Design System
Inspired by Linear

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Background Surfaces
+
+
Marketing Black
#08090a
Hero backgrounds
+
Panel Dark
#0f1011
Sidebar, panels
+
Level 3
#191a1b
Elevated surfaces
+
Secondary
#28282c
Hover states
+
+ +
Text & Content
+
+
Primary Text
#f7f8f8
Headings, primary
+
Secondary Text
#d0d6e0
Body text
+
Tertiary Text
#8a8f98
Placeholders
+
Quaternary Text
#62666d
Disabled, timestamps
+
+ +
Brand & Accent
+
+
Brand Indigo
#5e6ad2
CTA backgrounds
+
Accent Violet
#7170ff
Links, active states
+
Accent Hover
#828fff
Hover states
+
Security Lavender
#7a7fad
Security UI
+
+ +
Status
+
+
Green
#27a644
Success, active
+
Emerald
#10b981
Badges, completion
+
+ +
Border & Dividers
+
+
Border Primary
#23252a
Strong borders
+
Border Secondary
#34343a
Medium borders
+
Border Tertiary
#3e3e44
Lighter borders
+
Light Border
#e6e6e6
Light mode borders
+
+ +
Light Mode Neutrals
+
+
Light Bg
#f7f8f8
Light page background
+
Light Surface
#f3f4f5
Surface tint
+
Pure White
#ffffff
Card surfaces
+
Light Border
#d0d6e0
Light mode dividers
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Headline
Display — 48px / 510 / 1.00 / -1.056px / Inter Variable
+
Heading One
Heading 1 — 32px / 400 / 1.13 / -0.704px / Inter Variable
+
Heading Two
Heading 2 — 24px / 400 / 1.33 / -0.288px / Inter Variable
+
Heading Three
Heading 3 — 20px / 590 / 1.33 / -0.24px / Inter Variable
+
Body Large — Linear helps streamline software projects, sprints, tasks, and bug tracking.
Body Large — 18px / 400 / 1.60 / -0.165px / Inter Variable
+
Body Medium — Navigation and emphasized text
Body Medium — 16px / 510 / 1.50 / Inter Variable
+
Small — Secondary body content and descriptions
Small — 15px / 400 / 1.60 / -0.165px / Inter Variable
+
Caption — Sub-labels and category headers
Caption — 14px / 510 / 1.50 / -0.182px / Inter Variable
+
Meta — Timestamps and metadata
Meta — 13px / 510 / 1.50 / -0.13px / Inter Variable
+
Label — Small button text and tags
Label — 12px / 510 / 1.40 / Inter Variable
+
const issue = await linear.createIssue({title});
Mono Body — 14px / 400 / 1.50 / Berkeley Mono
+
ISSUE STATUS
Mono Label — 12px / 400 / uppercase / Berkeley Mono
+
+ +
+ +
+ +

Button Variants

+
+
Start Building
Primary Brand
+ +
In Progress
Status Pill
+
Done
Success Pill
+
v2.4
Subtle Badge
+
Filter
Pill Chip
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Issues
+

Issue Tracking

+

Plan and track work across teams. Linear's issue tracker is designed for speed, with keyboard shortcuts for every action.

+
+
+
Cycles
+

Sprint Cycles

+

Time-boxed work periods that keep teams focused. Automatic rollover and progress tracking built in.

+
+
+
Roadmaps
+

Product Roadmaps

+

Visualize direction and progress. Connect issues to projects and track milestones across your entire product.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (accent ring)
+
Error (red ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
4
+
8
+
12
+
16
+
20
+
24
+
32
+
35
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
2px
Badges
+
4px
Small
+
6px
Buttons
+
8px
Cards
+
12px
Panels
+
22px
Large
+
9999px
Pills
+
50%
Circles
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Subtle
Micro-elevation
+
Level 2: Card
Ring + subtle lift
+
Level 3: Elevated
Ring + deeper shadow
+
Focus
Accent ring
+
Inset
Sunken panel
+
+
+ + + + + diff --git a/design-md/lovable/DESIGN.md b/design-md/lovable/DESIGN.md new file mode 100644 index 0000000..6b0df43 --- /dev/null +++ b/design-md/lovable/DESIGN.md @@ -0,0 +1,298 @@ +# Design System: Lovable + +## 1. Visual Theme & Atmosphere + +Lovable's website radiates warmth through restraint. The entire page sits on a creamy, parchment-toned background (`#f7f4ed`) that immediately separates it from the cold-white conventions of most developer tool sites. This isn't minimalism for minimalism's sake — it's a deliberate choice to feel approachable, almost analog, like a well-crafted notebook. The near-black text (`#1c1c1c`) against this warm cream creates a contrast ratio that's easy on the eyes while maintaining sharp readability. + +The custom Camera Plain Variable typeface is the system's secret weapon. Unlike geometric sans-serifs that signal "tech company," Camera Plain has a humanist warmth — slightly rounded terminals, organic curves, and a comfortable reading rhythm. At display sizes (48px–60px), weight 600 with aggressive negative letter-spacing (-0.9px to -1.5px) compresses headlines into confident, editorial statements. The font uses `ui-sans-serif, system-ui` as fallbacks, acknowledging that the custom typeface carries the brand personality. + +What makes Lovable's visual system distinctive is its opacity-driven depth model. Rather than using a traditional gray scale, the system modulates `#1c1c1c` at varying opacities (0.03, 0.04, 0.4, 0.82–0.83) to create a unified tonal range. Every shade of gray on the page is technically the same hue — just more or less transparent. This creates a visual coherence that's nearly impossible to achieve with arbitrary hex values. The border system follows suit: `1px solid #eceae4` for light divisions and `1px solid rgba(28, 28, 28, 0.4)` for stronger interactive boundaries. + +**Key Characteristics:** +- Warm parchment background (`#f7f4ed`) — not white, not beige, a deliberate cream that feels hand-selected +- Camera Plain Variable typeface with humanist warmth and editorial letter-spacing at display sizes +- Opacity-driven color system: all grays derived from `#1c1c1c` at varying transparency levels +- Inset shadow technique on buttons: `rgba(255,255,255,0.2) 0px 0.5px 0px 0px inset, rgba(0,0,0,0.2) 0px 0px 0px 0.5px inset` +- Warm neutral border palette: `#eceae4` for subtle, `rgba(28,28,28,0.4)` for interactive elements +- Full-pill radius (`9999px`) used extensively for action buttons and icon containers +- Focus state uses `rgba(0,0,0,0.1) 0px 4px 12px` shadow for soft, warm emphasis +- shadcn/ui + Radix UI component primitives with Tailwind CSS utility styling + +## 2. Color Palette & Roles + +### Primary +- **Cream** (`#f7f4ed`): Page background, card surfaces, button surfaces. The foundation — warm, paper-like, human. +- **Charcoal** (`#1c1c1c`): Primary text, headings, dark button backgrounds. Not pure black — organic warmth. +- **Off-White** (`#fcfbf8`): Button text on dark backgrounds, subtle highlight. Barely distinguishable from pure white. + +### Neutral Scale (Opacity-Based) +- **Charcoal 100%** (`#1c1c1c`): Primary text, headings, dark surfaces. +- **Charcoal 83%** (`rgba(28,28,28,0.83)`): Strong secondary text. +- **Charcoal 82%** (`rgba(28,28,28,0.82)`): Body copy. +- **Muted Gray** (`#5f5f5d`): Secondary text, descriptions, captions. +- **Charcoal 40%** (`rgba(28,28,28,0.4)`): Interactive borders, button outlines. +- **Charcoal 4%** (`rgba(28,28,28,0.04)`): Subtle hover backgrounds, micro-tints. +- **Charcoal 3%** (`rgba(28,28,28,0.03)`): Barely-visible overlays, background depth. + +### Surface & Border +- **Light Cream** (`#eceae4`): Card borders, dividers, image outlines. The warm divider line. +- **Cream Surface** (`#f7f4ed`): Card backgrounds, section fills — same as page background for seamless integration. + +### Interactive +- **Ring Blue** (`#3b82f6` at 50% opacity): `--tw-ring-color`, Tailwind focus ring. +- **Focus Shadow** (`rgba(0,0,0,0.1) 0px 4px 12px`): Focus and active state shadow — soft, warm, diffused. + +### Inset Shadows +- **Button Inset** (`rgba(255,255,255,0.2) 0px 0.5px 0px 0px inset, rgba(0,0,0,0.2) 0px 0px 0px 0.5px inset, rgba(0,0,0,0.05) 0px 1px 2px 0px`): The signature multi-layer inset shadow on dark buttons. + +## 3. Typography Rules + +### Font Family +- **Primary**: `Camera Plain Variable`, with fallbacks: `ui-sans-serif, system-ui` +- **Weight range**: 400 (body/reading), 480 (special display), 600 (headings/emphasis) +- **Feature**: Variable font with continuous weight axis — allows fine-tuned intermediary weights like 480. + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Hero | Camera Plain Variable | 60px (3.75rem) | 600 | 1.00–1.10 (tight) | -1.5px | Maximum impact, editorial | +| Display Alt | Camera Plain Variable | 60px (3.75rem) | 480 | 1.00 (tight) | normal | Lighter hero variant | +| Section Heading | Camera Plain Variable | 48px (3.00rem) | 600 | 1.00 (tight) | -1.2px | Feature section titles | +| Sub-heading | Camera Plain Variable | 36px (2.25rem) | 600 | 1.10 (tight) | -0.9px | Sub-sections | +| Card Title | Camera Plain Variable | 20px (1.25rem) | 400 | 1.25 (tight) | normal | Card headings | +| Body Large | Camera Plain Variable | 18px (1.13rem) | 400 | 1.38 | normal | Introductions | +| Body | Camera Plain Variable | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text | +| Button | Camera Plain Variable | 16px (1.00rem) | 400 | 1.50 | normal | Button labels | +| Button Small | Camera Plain Variable | 14px (0.88rem) | 400 | 1.50 | normal | Compact buttons | +| Link | Camera Plain Variable | 16px (1.00rem) | 400 | 1.50 | normal | Underline decoration | +| Link Small | Camera Plain Variable | 14px (0.88rem) | 400 | 1.50 | normal | Footer links | +| Caption | Camera Plain Variable | 14px (0.88rem) | 400 | 1.50 | normal | Metadata, small text | + +### Principles +- **Warm humanist voice**: Camera Plain Variable gives Lovable its approachable personality. The slightly rounded terminals and organic curves contrast with the sharp geometric sans-serifs used by most developer tools. +- **Variable weight as design tool**: The font supports continuous weight values (e.g., 480), enabling nuanced hierarchy beyond standard weight stops. Weight 480 at 60px creates a display style that feels lighter than semibold but stronger than regular. +- **Compression at scale**: Headlines use negative letter-spacing (-0.9px to -1.5px) for editorial impact. Body text stays at normal tracking for comfortable reading. +- **Two weights, clear roles**: 400 (body/UI/links/buttons) and 600 (headings/emphasis). The narrow weight range creates hierarchy through size and spacing, not weight variation. + +## 4. Component Stylings + +### Buttons + +**Primary Dark (Inset Shadow)** +- Background: `#1c1c1c` +- Text: `#fcfbf8` +- Padding: 8px 16px +- Radius: 6px +- Shadow: `rgba(0,0,0,0) 0px 0px 0px 0px, rgba(0,0,0,0) 0px 0px 0px 0px, rgba(255,255,255,0.2) 0px 0.5px 0px 0px inset, rgba(0,0,0,0.2) 0px 0px 0px 0.5px inset, rgba(0,0,0,0.05) 0px 1px 2px 0px` +- Active: opacity 0.8 +- Focus: `rgba(0,0,0,0.1) 0px 4px 12px` shadow +- Use: Primary CTA ("Start Building", "Get Started") + +**Ghost / Outline** +- Background: transparent +- Text: `#1c1c1c` +- Padding: 8px 16px +- Radius: 6px +- Border: `1px solid rgba(28,28,28,0.4)` +- Active: opacity 0.8 +- Focus: `rgba(0,0,0,0.1) 0px 4px 12px` shadow +- Use: Secondary actions ("Log In", "Documentation") + +**Cream Surface** +- Background: `#f7f4ed` +- Text: `#1c1c1c` +- Padding: 8px 16px +- Radius: 6px +- No border +- Active: opacity 0.8 +- Use: Tertiary actions, toolbar buttons + +**Pill / Icon Button** +- Background: `#f7f4ed` +- Text: `#1c1c1c` +- Radius: 9999px (full pill) +- Shadow: same inset pattern as primary dark +- Opacity: 0.5 (default), 0.8 (active) +- Use: Additional actions, plan mode toggle, voice recording + +### Cards & Containers +- Background: `#f7f4ed` (matches page) +- Border: `1px solid #eceae4` +- Radius: 12px (standard), 16px (featured), 8px (compact) +- No box-shadow by default — borders define boundaries +- Image cards: `1px solid #eceae4` with 12px radius + +### Inputs & Forms +- Background: `#f7f4ed` +- Text: `#1c1c1c` +- Border: `1px solid #eceae4` +- Radius: 6px +- Focus: ring blue (`rgba(59,130,246,0.5)`) outline +- Placeholder: `#5f5f5d` + +### Navigation +- Clean horizontal nav on cream background, fixed +- Logo/wordmark left-aligned (128.75 x 22px) +- Links: Camera Plain 14–16px weight 400, `#1c1c1c` text +- CTA: dark button with inset shadow, 6px radius +- Mobile: hamburger menu with 6px radius button +- Subtle border or no border on scroll + +### Links +- Color: `#1c1c1c` +- Decoration: underline (default) +- Hover: primary accent (via CSS variable `hsl(var(--primary))`) +- No color change on hover — decoration carries the interactive signal + +### Image Treatment +- Showcase/portfolio images with `1px solid #eceae4` border +- Consistent 12px border radius on all image containers +- Soft gradient backgrounds behind hero content (warm multi-color wash) +- Gallery-style presentation for template/project showcases + +### Distinctive Components + +**AI Chat Input** +- Large prompt input area with soft borders +- Suggestion pills with `#eceae4` borders +- Voice recording / plan mode toggle buttons as pill shapes (9999px) +- Warm, inviting input area — not clinical + +**Template Gallery** +- Card grid showing project templates +- Each card: image + title, `1px solid #eceae4` border, 12px radius +- Hover: subtle shadow or border darkening +- Category labels as text links + +**Stats Bar** +- Large metrics: "0M+" pattern in 48px+ weight 600 +- Descriptive text below in muted gray +- Horizontal layout with generous spacing + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 8px, 10px, 12px, 16px, 24px, 32px, 40px, 56px, 80px, 96px, 128px, 176px, 192px, 208px +- The scale expands generously at the top end — sections use 80px–208px vertical spacing for editorial breathing room + +### Grid & Container +- Max content width: approximately 1200px (centered) +- Hero: centered single-column with massive vertical padding (96px+) +- Feature sections: 2–3 column grids +- Full-width footer with multi-column link layout +- Showcase sections with centered card grids + +### Whitespace Philosophy +- **Editorial generosity**: Lovable's spacing is lavish at section boundaries (80px–208px). The warm cream background makes these expanses feel cozy rather than empty. +- **Content-driven rhythm**: Tight internal spacing within cards (12–24px) contrasts with wide section gaps, creating a reading rhythm that alternates between focused content and visual rest. +- **Section separation**: Footer uses `1px solid #eceae4` border and 16px radius container. Sections defined by generous spacing rather than border lines. + +### Border Radius Scale +- Micro (4px): Small buttons, interactive elements +- Standard (6px): Buttons, inputs, navigation menu +- Comfortable (8px): Compact cards, divs +- Card (12px): Standard cards, image containers, templates +- Container (16px): Large containers, footer sections +- Full Pill (9999px): Action pills, icon buttons, toggles + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, cream background | Page surface, most content | +| Bordered (Level 1) | `1px solid #eceae4` | Cards, images, dividers | +| Inset (Level 2) | `rgba(255,255,255,0.2) 0px 0.5px 0px inset, rgba(0,0,0,0.2) 0px 0px 0px 0.5px inset, rgba(0,0,0,0.05) 0px 1px 2px` | Dark buttons, primary actions | +| Focus (Level 3) | `rgba(0,0,0,0.1) 0px 4px 12px` | Active/focus states | +| Ring (Accessibility) | `rgba(59,130,246,0.5)` 2px ring | Keyboard focus on inputs | + +**Shadow Philosophy**: Lovable's depth system is intentionally shallow. Instead of floating cards with dramatic drop-shadows, the system relies on warm borders (`#eceae4`) against the cream surface to create gentle containment. The only notable shadow pattern is the inset shadow on dark buttons — a subtle multi-layer technique where a white highlight line sits at the top edge while a dark ring and soft drop handle the bottom. This creates a tactile, pressed-into-surface feeling rather than a hovering-above-surface feeling. The warm focus shadow (`rgba(0,0,0,0.1) 0px 4px 12px`) is deliberately diffused and large, creating a soft glow rather than a sharp outline. + +### Decorative Depth +- Hero: soft, warm multi-color gradient wash (pinks, oranges, blues) behind hero — atmospheric, barely visible +- Footer: gradient background with warm tones transitioning to the bottom +- No harsh section dividers — spacing and background warmth handle transitions + +## 7. Do's and Don'ts + +### Do +- Use the warm cream background (`#f7f4ed`) as the page foundation — it's the brand's signature warmth +- Use Camera Plain Variable at display sizes with negative letter-spacing (-0.9px to -1.5px) +- Derive all grays from `#1c1c1c` at varying opacity levels for tonal unity +- Use the inset shadow technique on dark buttons for tactile depth +- Use `#eceae4` borders instead of shadows for card containment +- Keep the weight system narrow: 400 for body/UI, 600 for headings +- Use full-pill radius (9999px) only for action pills and icon buttons +- Apply opacity 0.8 on active states for responsive tactile feedback + +### Don't +- Don't use pure white (`#ffffff`) as a page background — the cream is intentional +- Don't use heavy box-shadows for cards — borders are the containment mechanism +- Don't introduce saturated accent colors — the palette is intentionally warm-neutral +- Don't use weight 700 (bold) — 600 is the maximum weight in the system +- Don't apply 9999px radius on rectangular buttons — pills are for icon/action toggles +- Don't use sharp focus outlines — the system uses soft shadow-based focus indicators +- Don't mix border styles — `#eceae4` for passive, `rgba(28,28,28,0.4)` for interactive +- Don't increase letter-spacing on headings — Camera Plain is designed to run tight at scale + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile Small | <600px | Tight single column, reduced padding | +| Mobile | 600–640px | Standard mobile layout | +| Tablet Small | 640–700px | 2-column grids begin | +| Tablet | 700–768px | Card grids expand | +| Desktop Small | 768–1024px | Multi-column layouts | +| Desktop | 1024–1280px | Full feature layout | +| Large Desktop | 1280–1536px | Maximum content width, generous margins | + +### Touch Targets +- Buttons: 8px 16px padding (comfortable touch) +- Navigation: adequate spacing between items +- Pill buttons: 9999px radius creates large tap-friendly targets +- Menu toggle: 6px radius button with adequate sizing + +### Collapsing Strategy +- Hero: 60px → 48px → 36px headline scaling with proportional letter-spacing +- Navigation: horizontal links → hamburger menu at 768px +- Feature cards: 3-column → 2-column → single column stacked +- Template gallery: grid → stacked vertical cards +- Stats bar: horizontal → stacked vertical +- Footer: multi-column → stacked single column +- Section spacing: 128px+ → 64px on mobile + +### Image Behavior +- Template screenshots maintain `1px solid #eceae4` border at all sizes +- 12px border radius preserved across breakpoints +- Gallery images responsive with consistent aspect ratios +- Hero gradient softens/simplifies on mobile + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA: Charcoal (`#1c1c1c`) +- Background: Cream (`#f7f4ed`) +- Heading text: Charcoal (`#1c1c1c`) +- Body text: Muted Gray (`#5f5f5d`) +- Border: `#eceae4` (passive), `rgba(28,28,28,0.4)` (interactive) +- Focus: `rgba(0,0,0,0.1) 0px 4px 12px` +- Button text on dark: `#fcfbf8` + +### Example Component Prompts +- "Create a hero section on cream background (#f7f4ed). Headline at 60px Camera Plain Variable weight 600, line-height 1.10, letter-spacing -1.5px, color #1c1c1c. Subtitle at 18px weight 400, line-height 1.38, color #5f5f5d. Dark CTA button (#1c1c1c bg, #fcfbf8 text, 6px radius, 8px 16px padding, inset shadow) and ghost button (transparent bg, 1px solid rgba(28,28,28,0.4) border, 6px radius)." +- "Design a card on cream (#f7f4ed) background. Border: 1px solid #eceae4. Radius 12px. No box-shadow. Title at 20px Camera Plain Variable weight 400, line-height 1.25, color #1c1c1c. Body at 14px weight 400, color #5f5f5d." +- "Build a template gallery: grid of cards with 12px radius, 1px solid #eceae4 border, cream backgrounds. Each card: image with 12px top radius, title below. Hover: subtle border darkening." +- "Create navigation: sticky on cream (#f7f4ed). Camera Plain 16px weight 400 for links, #1c1c1c text. Dark CTA button right-aligned with inset shadow. Mobile: hamburger menu with 6px radius." +- "Design a stats section: large numbers at 48px Camera Plain weight 600, letter-spacing -1.2px, #1c1c1c. Labels below at 16px weight 400, #5f5f5d. Horizontal layout with 32px gap." + +### Iteration Guide +1. Always use cream (`#f7f4ed`) as the base — never pure white +2. Derive grays from `#1c1c1c` at opacity levels rather than using distinct hex values +3. Use `#eceae4` borders for containment, not shadows +4. Letter-spacing scales with size: -1.5px at 60px, -1.2px at 48px, -0.9px at 36px, normal at 16px +5. Two weights: 400 (everything except headings) and 600 (headings) +6. The inset shadow on dark buttons is the signature detail — don't skip it +7. Camera Plain Variable at weight 480 is for special display moments only diff --git a/design-md/lovable/README.md b/design-md/lovable/README.md new file mode 100644 index 0000000..3d59394 --- /dev/null +++ b/design-md/lovable/README.md @@ -0,0 +1,25 @@ +# Lovable — Design System + +> Design.md extracted from the public [lovable](https://lovable.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 Lovable 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 +![Lovable Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/lovable/preview-dark-screenshot.png) + +### Light Mode +![Lovable Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/lovable/preview-screenshot.png) diff --git a/design-md/lovable/preview-dark.html b/design-md/lovable/preview-dark.html new file mode 100644 index 0000000..794ef3b --- /dev/null +++ b/design-md/lovable/preview-dark.html @@ -0,0 +1,351 @@ + + + + + +Design System Preview: Lovable (Dark) + + + + + + + + +
Dark Mode
+ +
+

Design System
Inspired by Lovable

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Cream
#f7f4ed
Page background
+
Charcoal
#1c1c1c
Primary text, headings
+
Off-White
#fcfbf8
Button text on dark
+
+ +
Neutral Scale (Opacity-Based)
+
+
Charcoal 83%
rgba(28,28,28,0.83)
Strong secondary
+
Muted Gray
#5f5f5d
Body text, captions
+
Charcoal 40%
rgba(28,28,28,0.4)
Interactive borders
+
Charcoal 4%
rgba(28,28,28,0.04)
Hover tint
+
Charcoal 3%
rgba(28,28,28,0.03)
Subtle overlay
+
+ +
Surface & Border
+
+
Light Cream
#eceae4
Borders, dividers
+
+ +
Interactive
+
+
Ring Blue
rgba(59,130,246,0.5)
Focus ring
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero — 60px / 600 / 1.10 / -1.5px / Camera Plain Variable
+
Section Heading
Section Heading — 48px / 600 / 1.00 / -1.2px / Camera Plain Variable
+
Sub-heading
Sub-heading — 36px / 600 / 1.10 / -0.9px / Camera Plain Variable
+
Card Title
Card Title — 20px / 400 / 1.25 / Camera Plain Variable
+
Body Large — Build something lovable. Create web applications with AI-powered development tools.
Body Large — 18px / 400 / 1.38 / Camera Plain Variable
+
Body — Standard reading text for descriptions, paragraphs, and UI content.
Body — 16px / 400 / 1.50 / Camera Plain Variable
+
Button / Link — Interactive text
Button / Link — 14px / 400 / 1.50 / Camera Plain Variable
+
Caption — Metadata and small labels
Caption — 14px / 400 / 1.50 / Camera Plain Variable
+
+ +
+ +
+ +

Button Variants

+
+
Start Building
Primary Dark
+
Documentation
Ghost / Outline
+
Settings
Cream Surface
+
Pill Icon
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Template
+

Portfolio Website

+

A minimal portfolio template with project showcase, about section, and contact form. Built with modern design principles.

+
+
+
Featured
+

AI Chat Application

+

Full-stack AI chat interface with streaming responses, conversation history, and customizable prompts. Hover-state border shown.

+
+
+
Starter
+

SaaS Dashboard

+

Analytics dashboard with charts, data tables, and user management. Integrates with common APIs and databases.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default (border)
+
Focus (blue ring)
+
Error (red ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
8
+
10
+
12
+
16
+
24
+
32
+
40
+
56
+
80
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
4px
Small
+
6px
Buttons
+
8px
Compact
+
12px
Cards
+
16px
Containers
+
9999px
Pills
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow, cream bg
+
Level 1: Bordered
1px solid #eceae4
+
Level 2: Inset
Button inset shadow
+
Level 3: Focus
Focus shadow glow
+
Ring
Accessibility ring
+
+
+ + + + + diff --git a/design-md/lovable/preview.html b/design-md/lovable/preview.html new file mode 100644 index 0000000..a99a307 --- /dev/null +++ b/design-md/lovable/preview.html @@ -0,0 +1,350 @@ + + + + + +Design System Preview: Lovable (Light) + + + + + + + + + +
+

Design System
Inspired by Lovable

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Cream
#f7f4ed
Page background
+
Charcoal
#1c1c1c
Primary text, headings
+
Off-White
#fcfbf8
Button text on dark
+
+ +
Neutral Scale (Opacity-Based)
+
+
Charcoal 83%
rgba(28,28,28,0.83)
Strong secondary
+
Muted Gray
#5f5f5d
Body text, captions
+
Charcoal 40%
rgba(28,28,28,0.4)
Interactive borders
+
Charcoal 4%
rgba(28,28,28,0.04)
Hover tint
+
Charcoal 3%
rgba(28,28,28,0.03)
Subtle overlay
+
+ +
Surface & Border
+
+
Light Cream
#eceae4
Borders, dividers
+
+ +
Interactive
+
+
Ring Blue
rgba(59,130,246,0.5)
Focus ring
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero — 60px / 600 / 1.10 / -1.5px / Camera Plain Variable
+
Section Heading
Section Heading — 48px / 600 / 1.00 / -1.2px / Camera Plain Variable
+
Sub-heading
Sub-heading — 36px / 600 / 1.10 / -0.9px / Camera Plain Variable
+
Card Title
Card Title — 20px / 400 / 1.25 / Camera Plain Variable
+
Body Large — Build something lovable. Create web applications with AI-powered development tools.
Body Large — 18px / 400 / 1.38 / Camera Plain Variable
+
Body — Standard reading text for descriptions, paragraphs, and UI content.
Body — 16px / 400 / 1.50 / Camera Plain Variable
+
Button / Link — Interactive text
Button / Link — 14px / 400 / 1.50 / Camera Plain Variable
+
Caption — Metadata and small labels
Caption — 14px / 400 / 1.50 / Camera Plain Variable
+
+ +
+ +
+ +

Button Variants

+
+
Start Building
Primary Dark
+
Documentation
Ghost / Outline
+
Settings
Cream Surface
+
Pill Icon
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Template
+

Portfolio Website

+

A minimal portfolio template with project showcase, about section, and contact form. Built with modern design principles.

+
+
+
Featured
+

AI Chat Application

+

Full-stack AI chat interface with streaming responses, conversation history, and customizable prompts. Hover-state border shown.

+
+
+
Starter
+

SaaS Dashboard

+

Analytics dashboard with charts, data tables, and user management. Integrates with common APIs and databases.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default (border)
+
Focus (blue ring)
+
Error (red ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
8
+
10
+
12
+
16
+
24
+
32
+
40
+
56
+
80
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
4px
Small
+
6px
Buttons
+
8px
Compact
+
12px
Cards
+
16px
Containers
+
9999px
Pills
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow, cream bg
+
Level 1: Bordered
1px solid #eceae4
+
Level 2: Inset
Button inset shadow
+
Level 3: Focus
Focus shadow glow
+
Ring
Accessibility ring
+
+
+ + + + + diff --git a/design-md/minimax/DESIGN.md b/design-md/minimax/DESIGN.md new file mode 100644 index 0000000..6a67b53 --- /dev/null +++ b/design-md/minimax/DESIGN.md @@ -0,0 +1,257 @@ +# Design System: MiniMax + +## 1. Visual Theme & Atmosphere + +MiniMax's website is a clean, product-showcase platform for a Chinese AI technology company that bridges consumer-friendly appeal with technical credibility. The design language is predominantly white-space-driven with a light, airy feel — pure white backgrounds (`#ffffff`) dominate, letting colorful product cards and AI model illustrations serve as the visual anchors. The overall aesthetic sits at the intersection of Apple's product marketing clarity and a playful, rounded design language that makes AI technology feel approachable. + +The typography system is notably multi-font: DM Sans serves as the primary UI workhorse, Outfit handles display headings with geometric elegance, Poppins appears for mid-tier headings, and Roboto handles data-heavy contexts. This variety reflects a brand in rapid growth — each font serves a distinct communicative purpose rather than competing for attention. The hero heading at 80px weight 500 in both DM Sans and Outfit with a tight 1.10 line-height creates a bold but not aggressive opening statement. + +What makes MiniMax distinctive is its pill-button geometry (9999px radius) for navigation and primary actions, combined with softer 8px–24px radiused cards for product showcases. The product cards themselves are richly colorful — vibrant gradients in pink, purple, orange, and blue — creating a "gallery of AI capabilities" feel. Against the white canvas, these colorful cards pop like app icons on a phone home screen, making each AI model/product feel like a self-contained creative tool. + +**Key Characteristics:** +- White-dominant layout with colorful product card accents +- Multi-font system: DM Sans (UI), Outfit (display), Poppins (mid-tier), Roboto (data) +- Pill buttons (9999px radius) for primary navigation and CTAs +- Generous rounded cards (20px–24px radius) for product showcases +- Brand blue spectrum: from `#1456f0` (brand-6) through `#3b82f6` (primary-500) to `#60a5fa` (light) +- Brand pink (`#ea5ec1`) as secondary accent +- Near-black text (`#222222`, `#18181b`) on white backgrounds +- Purple-tinted shadows (`rgba(44, 30, 116, 0.16)`) creating subtle brand-colored depth +- Dark footer section (`#181e25`) with product/company links + +## 2. Color Palette & Roles + +### Brand Primary +- **Brand Blue** (`#1456f0`): `--brand-6`, primary brand identity color +- **Sky Blue** (`#3daeff`): `--col-brand00`, lighter brand variant for accents +- **Brand Pink** (`#ea5ec1`): `--col-brand02`, secondary brand accent + +### Blue Scale (Primary) +- **Primary 200** (`#bfdbfe`): `--color-primary-200`, light blue backgrounds +- **Primary Light** (`#60a5fa`): `--color-primary-light`, active states, highlights +- **Primary 500** (`#3b82f6`): `--color-primary-500`, standard blue actions +- **Primary 600** (`#2563eb`): `--color-primary-600`, hover states +- **Primary 700** (`#1d4ed8`): `--color-primary-700`, pressed/active states +- **Brand Deep** (`#17437d`): `--brand-3`, deep blue for emphasis + +### Text Colors +- **Near Black** (`#222222`): `--col-text00`, primary text +- **Dark** (`#18181b`): Button text, headings +- **Charcoal** (`#181e25`): Dark surface text, footer background +- **Dark Gray** (`#45515e`): `--col-text04`, secondary text +- **Mid Gray** (`#8e8e93`): Tertiary text, muted labels +- **Light Gray** (`#5f5f5f`): `--brand-2`, helper text + +### Surface & Background +- **Pure White** (`#ffffff`): `--col-bg13`, primary background +- **Light Gray** (`#f0f0f0`): Secondary button backgrounds +- **Glass White** (`hsla(0, 0%, 100%, 0.4)`): `--fill-bg-white`, frosted glass overlay +- **Border Light** (`#f2f3f5`): Subtle section dividers +- **Border Gray** (`#e5e7eb`): Component borders + +### Semantic +- **Success Background** (`#e8ffea`): `--success-bg`, positive state backgrounds + +### Shadows +- **Standard** (`rgba(0, 0, 0, 0.08) 0px 4px 6px`): Default card shadow +- **Soft Glow** (`rgba(0, 0, 0, 0.08) 0px 0px 22.576px`): Ambient soft shadow +- **Brand Purple** (`rgba(44, 30, 116, 0.16) 0px 0px 15px`): Brand-tinted glow +- **Brand Purple Offset** (`rgba(44, 30, 116, 0.11) 6.5px 2px 17.5px`): Directional brand glow +- **Card Elevation** (`rgba(36, 36, 36, 0.08) 0px 12px 16px -4px`): Lifted card shadow + +## 3. Typography Rules + +### Font Families +- **Primary UI**: `DM Sans`, with fallbacks: `Helvetica Neue, Helvetica, Arial` +- **Display**: `Outfit`, with fallbacks: `Helvetica Neue, Helvetica, Arial` +- **Mid-tier**: `Poppins` +- **Data/Technical**: `Roboto`, with fallbacks: `Helvetica Neue, Helvetica, Arial` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Notes | +|------|------|------|--------|-------------|-------| +| Display Hero | DM Sans / Outfit | 80px (5.00rem) | 500 | 1.10 (tight) | Hero headlines | +| Section Heading | Outfit | 31px (1.94rem) | 600 | 1.50 | Feature section titles | +| Section Heading Alt | Roboto / DM Sans | 32px (2.00rem) | 600 | 0.88 (tight) | Compact headers | +| Card Title | Outfit | 28px (1.75rem) | 500–600 | 1.71 (relaxed) | Product card headings | +| Sub-heading | Poppins | 24px (1.50rem) | 500 | 1.50 | Mid-tier headings | +| Feature Label | Poppins | 18px (1.13rem) | 500 | 1.50 | Feature names | +| Body Large | DM Sans | 20px (1.25rem) | 500 | 1.50 | Emphasized body | +| Body | DM Sans | 16px (1.00rem) | 400–500 | 1.50 | Standard body text | +| Body Bold | DM Sans | 16px (1.00rem) | 700 | 1.50 | Strong emphasis | +| Nav/Link | DM Sans | 14px (0.88rem) | 400–500 | 1.50 | Navigation, links | +| Button Small | DM Sans | 13px (0.81rem) | 600 | 1.50 | Compact buttons | +| Caption | DM Sans / Poppins | 13px (0.81rem) | 400 | 1.70 (relaxed) | Metadata | +| Small Label | DM Sans | 12px (0.75rem) | 500–600 | 1.25–1.50 | Tags, badges | +| Micro | DM Sans / Outfit | 10px (0.63rem) | 400–500 | 1.50–1.80 | Tiny annotations | + +### Principles +- **Multi-font purpose**: DM Sans = UI workhorse (body, nav, buttons); Outfit = geometric display (headings, product names); Poppins = friendly mid-tier (sub-headings, features); Roboto = technical/data contexts. +- **Universal 1.50 line-height**: The overwhelming majority of text uses 1.50 line-height, creating a consistent reading rhythm regardless of font or size. Exceptions: display (1.10 tight) and some captions (1.70 relaxed). +- **Weight 500 as default emphasis**: Most headings use 500 (medium) rather than bold, creating a modern, approachable tone. 600 for section titles, 700 reserved for strong emphasis. +- **Compact hierarchy**: The size scale jumps from 80px display straight to 28–32px section, then 16–20px body — a deliberate compression that keeps the visual hierarchy feeling efficient. + +## 4. Component Stylings + +### Buttons + +**Pill Primary Dark** +- Background: `#181e25` +- Text: `#ffffff` +- Padding: 11px 20px +- Radius: 8px +- Use: Primary CTA ("Get Started", "Learn More") + +**Pill Nav** +- Background: `rgba(0, 0, 0, 0.05)` (subtle tint) +- Text: `#18181b` +- Radius: 9999px (full pill) +- Use: Navigation tabs, filter toggles + +**Pill White** +- Background: `#ffffff` +- Text: `rgba(24, 30, 37, 0.8)` +- Radius: 9999px +- Opacity: 0.5 (default state) +- Use: Secondary nav, inactive tabs + +**Secondary Light** +- Background: `#f0f0f0` +- Text: `#333333` +- Padding: 11px 20px +- Radius: 8px +- Use: Secondary actions + +### Product Cards +- Background: Vibrant gradients (pink/purple/orange/blue) +- Radius: 20px–24px (generous rounding) +- Shadow: `rgba(44, 30, 116, 0.16) 0px 0px 15px` (brand purple glow) +- Content: Product name, model version, descriptive text +- Each card has its own color palette matching the product identity + +### AI Product Cards (Matrix) +- Background: white with subtle shadow +- Radius: 13px–16px +- Shadow: `rgba(0, 0, 0, 0.08) 0px 4px 6px` +- Icon/illustration centered above product name +- Product name in DM Sans 14–16px weight 500 + +### Links +- **Primary**: `#18181b` or `#181e25`, underline on dark text +- **Secondary**: `#8e8e93`, muted for less emphasis +- **On Dark**: `rgba(255, 255, 255, 0.8)` for footer and dark sections + +### Navigation +- Clean horizontal nav on white background +- MiniMax logo left-aligned (red accent in logo) +- DM Sans 14px weight 500 for nav items +- Pill-shaped active indicators (9999px radius) +- "Login" text link, minimal right-side actions +- Sticky header behavior + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 2px, 4px, 6px, 8px, 10px, 11px, 14px, 16px, 24px, 32px, 40px, 50px, 64px, 80px + +### Grid & Container +- Max content width centered on page +- Product card grids: horizontal scroll or 3–4 column layout +- Full-width white sections with contained content +- Dark footer at full-width + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <768px | Single column, stacked cards | +| Tablet | 768–1024px | 2-column grids | +| Desktop | >1024px | Full layout, horizontal card scrolls | + +### Whitespace Philosophy +- **Gallery spacing**: Products are presented like gallery items with generous white space between cards, letting each AI model breathe as its own showcase. +- **Section rhythm**: Large vertical gaps (64px–80px) between major sections create distinct "chapters" of content. +- **Card breathing**: Product cards use internal padding of 16px–24px with ample whitespace around text. + +### Border Radius Scale +- Minimal (4px): Small tags, micro badges +- Standard (8px): Buttons, small cards +- Comfortable (11px–13px): Medium cards, panels +- Generous (16px–20px): Large product cards +- Large (22px–24px): Hero product cards, major containers +- Pill (30px–32px): Badge pills, rounded panels +- Full (9999px): Buttons, nav tabs + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | White background, text blocks | +| Subtle (Level 1) | `rgba(0, 0, 0, 0.08) 0px 4px 6px` | Standard cards, containers | +| Ambient (Level 2) | `rgba(0, 0, 0, 0.08) 0px 0px 22.576px` | Soft glow around elements | +| Brand Glow (Level 3) | `rgba(44, 30, 116, 0.16) 0px 0px 15px` | Featured product cards | +| Elevated (Level 4) | `rgba(36, 36, 36, 0.08) 0px 12px 16px -4px` | Lifted cards, hover states | + +**Shadow Philosophy**: MiniMax uses a distinctive purple-tinted shadow (`rgba(44, 30, 116, ...)`) for featured elements, creating a subtle brand-color glow that connects the shadow system to the blue brand identity. Standard shadows use neutral black but at low opacity (0.08), keeping everything feeling light and airy. The directional shadow variant (6.5px offset) adds dimensional interest to hero product cards. + +## 7. Do's and Don'ts + +### Do +- Use white as the dominant background — let product cards provide the color +- Apply pill radius (9999px) for navigation tabs and toggle buttons +- Use generous border radius (20px–24px) for product showcase cards +- Employ the purple-tinted shadow for featured/hero product cards +- Keep body text at DM Sans weight 400–500 — heavier weights for buttons only +- Use Outfit for display headings, DM Sans for everything functional +- Maintain the universal 1.50 line-height across body text +- Let colorful product illustrations/gradients serve as the primary visual interest + +### Don't +- Don't add colored backgrounds to main content sections — white is structural +- Don't use sharp corners (0–4px radius) on product cards — the rounded aesthetic is core +- Don't apply the brand pink (`#ea5ec1`) to text or buttons — it's for logo and decorative accents only +- Don't mix more than one display font per section (Outfit OR Poppins, not both) +- Don't use weight 700 for headings — 500–600 is the range, 700 is reserved for strong emphasis in body text +- Don't darken shadows beyond 0.16 opacity — the light, airy feel requires restraint +- Don't use Roboto for headings — it's the data/technical context font only + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <768px | Single column, stacked product cards, hamburger nav | +| Tablet | 768–1024px | 2-column product grids, condensed spacing | +| Desktop | >1024px | Full horizontal card layouts, expanded spacing | + +### Collapsing Strategy +- Hero: 80px → responsive scaling to ~40px on mobile +- Product card grid: horizontal scroll → 2-column → single column stacked +- Navigation: horizontal → hamburger menu +- Footer: multi-column → stacked sections +- Spacing: 64–80px gaps → 32–40px on mobile + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Background: `#ffffff` (primary), `#181e25` (dark/footer) +- Text: `#222222` (primary), `#45515e` (secondary), `#8e8e93` (muted) +- Brand Blue: `#1456f0` (brand), `#3b82f6` (primary-500), `#2563eb` (hover) +- Brand Pink: `#ea5ec1` (accent only) +- Borders: `#e5e7eb`, `#f2f3f5` + +### Example Component Prompts +- "Create a hero section on white background. Headline at 80px Outfit weight 500, line-height 1.10, near-black (#222222) text. Sub-text at 16px DM Sans weight 400, line-height 1.50, #45515e. Dark CTA button (#181e25, 8px radius, 11px 20px padding, white text)." +- "Design a product card grid: white cards with 20px border-radius, shadow rgba(44,30,116,0.16) 0px 0px 15px. Product name at 28px Outfit weight 600. Internal gradient background for the product illustration area." +- "Build navigation bar: white background, DM Sans 14px weight 500 for links, #18181b text. Pill-shaped active tab (9999px radius, rgba(0,0,0,0.05) background). MiniMax logo left-aligned." +- "Create an AI product matrix: 4-column grid of cards with 13px radius, subtle shadow rgba(0,0,0,0.08) 0px 4px 6px. Centered icon above product name in DM Sans 16px weight 500." +- "Design footer on dark (#181e25) background. Product links in DM Sans 14px, rgba(255,255,255,0.8). Multi-column layout." + +### Iteration Guide +1. Start with white — color comes from product cards and illustrations only +2. Pill buttons (9999px) for nav/tabs, standard radius (8px) for CTA buttons +3. Purple-tinted shadows for featured cards, neutral shadows for everything else +4. DM Sans handles 70% of text — Outfit is display-only, Poppins is mid-tier only +5. Keep weights moderate (500–600 for headings) — the brand tone is confident but approachable +6. Large radius cards (20–24px) for products, smaller radius (8–13px) for UI elements diff --git a/design-md/minimax/README.md b/design-md/minimax/README.md new file mode 100644 index 0000000..c101109 --- /dev/null +++ b/design-md/minimax/README.md @@ -0,0 +1,25 @@ +# Minimax — Design System + +> Design.md extracted from the public [minimax](https://minimax.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 Minimax 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 +![Minimax Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/minimax/preview-dark-screenshot.png) + +### Light Mode +![Minimax Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/minimax/preview-screenshot.png) diff --git a/design-md/minimax/preview-dark.html b/design-md/minimax/preview-dark.html new file mode 100644 index 0000000..f397a2f --- /dev/null +++ b/design-md/minimax/preview-dark.html @@ -0,0 +1,1267 @@ + + + + + +Design System Preview: MiniMax (Dark) + + + + + + + + +
Dark Mode
+ + + + + +
+

Design System
Inspired by MiniMax

+

A clean, approachable design language that bridges consumer-friendly appeal with technical credibility through white-space-driven layouts and colorful product accents.

+
+ + +
+
+ + +
+

1. Color Palette

+

MiniMax uses a white-dominant foundation with a blue brand spectrum and colorful product card accents. Purple-tinted shadows create subtle brand-colored depth.

+ +

Brand Primary

+
+
+
+
+
Brand Blue
+
#1456f0
+
Primary brand identity
+
+
+
+
+
+
Sky Blue
+
#3daeff
+
Lighter brand accent
+
+
+
+
+
+
Brand Pink
+
#ea5ec1
+
Secondary brand accent
+
+
+
+ +

Blue Scale (Primary)

+
+
+
+
+
Primary 200
+
#bfdbfe
+
Light blue backgrounds
+
+
+
+
+
+
Primary Light
+
#60a5fa
+
Active states, highlights
+
+
+
+
+
+
Primary 500
+
#3b82f6
+
Standard blue actions
+
+
+
+
+
+
Primary 600
+
#2563eb
+
Hover states
+
+
+
+
+
+
Primary 700
+
#1d4ed8
+
Pressed/active states
+
+
+
+
+
+
Brand Deep
+
#17437d
+
Deep blue emphasis
+
+
+
+ +

Text Colors

+
+
+
+
+
Near Black
+
#222222
+
Primary text
+
+
+
+
+
+
Dark
+
#18181b
+
Button text, headings
+
+
+
+
+
+
Charcoal
+
#181e25
+
Dark surfaces, footer
+
+
+
+
+
+
Dark Gray
+
#45515e
+
Secondary text
+
+
+
+
+
+
Mid Gray
+
#8e8e93
+
Tertiary text, muted
+
+
+
+
+
+
Light Gray
+
#5f5f5f
+
Helper text
+
+
+
+ +

Surface & Background

+
+
+
+
+
Pure White
+
#ffffff
+
Primary background
+
+
+
+
+
+
Light Gray
+
#f0f0f0
+
Secondary backgrounds
+
+
+
+
+
+
Border Light
+
#f2f3f5
+
Subtle section dividers
+
+
+
+
+
+
Border Gray
+
#e5e7eb
+
Component borders
+
+
+
+ +

Semantic

+
+
+
+
+
Success Background
+
#e8ffea
+
Positive state backgrounds
+
+
+
+
+ + +
+

2. Typography Scale

+

Multi-font system: DM Sans for UI, Outfit for display headings, Poppins for mid-tier, and Roboto for data/technical contexts. Weight 500 as default emphasis.

+ +
+
+
Display Hero
+
DM Sans / Outfit -- 80px -- 500 -- 1.10
+
+
Hero Headline
+
+ +
+
+
Section Heading
+
Outfit -- 31px -- 600 -- 1.50
+
+
Section Heading
+
+ +
+
+
Section Heading Alt
+
Roboto / DM Sans -- 32px -- 600 -- 0.88
+
+
Compact Header
+
+ +
+
+
Card Title
+
Outfit -- 28px -- 600 -- 1.71
+
+
Card Title
+
+ +
+
+
Sub-heading
+
Poppins -- 24px -- 500 -- 1.50
+
+
Sub-heading Text
+
+ +
+
+
Feature Label
+
Poppins -- 18px -- 500 -- 1.50
+
+
Feature Label Text
+
+ +
+
+
Body Large
+
DM Sans -- 20px -- 500 -- 1.50
+
+
Emphasized body text for important passages
+
+ +
+
+
Body
+
DM Sans -- 16px -- 400 -- 1.50
+
+
Standard body text for general content and descriptions across the interface.
+
+ +
+
+
Body Bold
+
DM Sans -- 16px -- 700 -- 1.50
+
+
Strong emphasis for important content
+
+ +
+
+
Nav / Link
+
DM Sans -- 14px -- 500 -- 1.50
+
+
Navigation links and secondary text
+
+ +
+
+
Button Small
+
DM Sans -- 13px -- 600 -- 1.50
+
+
Compact Button Label
+
+ +
+
+
Caption
+
DM Sans / Poppins -- 13px -- 400 -- 1.70
+
+
Metadata and caption text
+
+ +
+
+
Small Label
+
DM Sans -- 12px -- 600 -- 1.50
+
+
TAGS AND BADGES
+
+ +
+
+
Micro
+
DM Sans / Outfit -- 10px -- 500 -- 1.80
+
+
Tiny annotations and micro text
+
+
+ + +
+

3. Button Variants

+

Pill buttons (9999px radius) for navigation and toggles, standard radius (8px) for CTA buttons. Weight 500 for default emphasis.

+ +
+
+ Pill Primary Dark + +
+
+ Pill Nav + +
+
+ Pill White + +
+
+ Secondary Light + +
+
+ Button Small + +
+
+ Pill Blue + +
+
+
+ + +
+

4. Card Examples

+

Product cards use vibrant gradients as visual anchors against white canvas. Generous 20-24px border radius with purple-tinted brand shadows for featured elements.

+ +
+ +
+
+
+
+
+

Video Generation

+

Transform text descriptions into high-quality video content with state-of-the-art generative models.

+
+
+
+
+
+
+
+

Music Studio

+

Create original music compositions with AI-driven arrangement and production tools.

+
+
+
+
+ + +
+

5. Form Elements

+

Clean form elements with 8px border radius, subtle borders, and blue focus rings. DM Sans at 16px for inputs, 14px for labels.

+ +
+
+ + +
+
+ + + We'll never share your email. +
+
+ + +
+
+ + + This field is required. +
+
+ + +
+
+
+ + +
+

6. Spacing Scale

+

Base unit 8px. Scale provides a consistent rhythm for layout and component spacing across the design system.

+ +
+
+
+ 2px +
+
+
+ 4px +
+
+
+ 6px +
+
+
+ 8px +
+
+
+ 10px +
+
+
+ 11px +
+
+
+ 14px +
+
+
+ 16px +
+
+
+ 24px +
+
+
+ 32px +
+
+
+ 40px +
+
+
+ 50px +
+
+
+ 64px +
+
+
+ 80px +
+
+
+ + +
+

7. Border Radius Scale

+

From minimal 4px tags to full 9999px pill shapes. Generous rounding (20-24px) defines the product card aesthetic.

+ +
+
+
+ Minimal + 4px +
+
+
+ Standard + 8px +
+
+
+ Comfortable + 13px +
+
+
+ Generous + 20px +
+
+
+ Large + 24px +
+
+
+ Pill + 32px +
+
+
+ Full + 9999px +
+
+
+ + +
+

8. Elevation / Depth

+

MiniMax uses distinctive purple-tinted shadows for featured elements, connecting the shadow system to the blue brand identity. Neutral shadows at low opacity keep everything feeling light and airy.

+ +
+
+ Level 0 + Flat + No shadow. White backgrounds, text blocks. +
+
+ Level 1 + Subtle + Standard cards, containers. +
+
+ Level 2 + Ambient + Soft glow around elements. +
+
+ Level 3 + Brand Glow + Featured product cards with purple tint. +
+
+ Level 4 + Elevated + Lifted cards, hover states. +
+
+
+ + + + + + \ No newline at end of file diff --git a/design-md/minimax/preview.html b/design-md/minimax/preview.html new file mode 100644 index 0000000..7a3993b --- /dev/null +++ b/design-md/minimax/preview.html @@ -0,0 +1,1253 @@ + + + + + +Design System Preview: MiniMax (Light) + + + + + + + + + + + +
+

Design System
Inspired by MiniMax

+

A clean, approachable design language that bridges consumer-friendly appeal with technical credibility through white-space-driven layouts and colorful product accents.

+
+ + +
+
+ + +
+

1. Color Palette

+

MiniMax uses a white-dominant foundation with a blue brand spectrum and colorful product card accents. Purple-tinted shadows create subtle brand-colored depth.

+ +

Brand Primary

+
+
+
+
+
Brand Blue
+
#1456f0
+
Primary brand identity
+
+
+
+
+
+
Sky Blue
+
#3daeff
+
Lighter brand accent
+
+
+
+
+
+
Brand Pink
+
#ea5ec1
+
Secondary brand accent
+
+
+
+ +

Blue Scale (Primary)

+
+
+
+
+
Primary 200
+
#bfdbfe
+
Light blue backgrounds
+
+
+
+
+
+
Primary Light
+
#60a5fa
+
Active states, highlights
+
+
+
+
+
+
Primary 500
+
#3b82f6
+
Standard blue actions
+
+
+
+
+
+
Primary 600
+
#2563eb
+
Hover states
+
+
+
+
+
+
Primary 700
+
#1d4ed8
+
Pressed/active states
+
+
+
+
+
+
Brand Deep
+
#17437d
+
Deep blue emphasis
+
+
+
+ +

Text Colors

+
+
+
+
+
Near Black
+
#222222
+
Primary text
+
+
+
+
+
+
Dark
+
#18181b
+
Button text, headings
+
+
+
+
+
+
Charcoal
+
#181e25
+
Dark surfaces, footer
+
+
+
+
+
+
Dark Gray
+
#45515e
+
Secondary text
+
+
+
+
+
+
Mid Gray
+
#8e8e93
+
Tertiary text, muted
+
+
+
+
+
+
Light Gray
+
#5f5f5f
+
Helper text
+
+
+
+ +

Surface & Background

+
+
+
+
+
Pure White
+
#ffffff
+
Primary background
+
+
+
+
+
+
Light Gray
+
#f0f0f0
+
Secondary backgrounds
+
+
+
+
+
+
Border Light
+
#f2f3f5
+
Subtle section dividers
+
+
+
+
+
+
Border Gray
+
#e5e7eb
+
Component borders
+
+
+
+ +

Semantic

+
+
+
+
+
Success Background
+
#e8ffea
+
Positive state backgrounds
+
+
+
+
+ + +
+

2. Typography Scale

+

Multi-font system: DM Sans for UI, Outfit for display headings, Poppins for mid-tier, and Roboto for data/technical contexts. Weight 500 as default emphasis.

+ +
+
+
Display Hero
+
DM Sans / Outfit -- 80px -- 500 -- 1.10
+
+
Hero Headline
+
+ +
+
+
Section Heading
+
Outfit -- 31px -- 600 -- 1.50
+
+
Section Heading
+
+ +
+
+
Section Heading Alt
+
Roboto / DM Sans -- 32px -- 600 -- 0.88
+
+
Compact Header
+
+ +
+
+
Card Title
+
Outfit -- 28px -- 600 -- 1.71
+
+
Card Title
+
+ +
+
+
Sub-heading
+
Poppins -- 24px -- 500 -- 1.50
+
+
Sub-heading Text
+
+ +
+
+
Feature Label
+
Poppins -- 18px -- 500 -- 1.50
+
+
Feature Label Text
+
+ +
+
+
Body Large
+
DM Sans -- 20px -- 500 -- 1.50
+
+
Emphasized body text for important passages
+
+ +
+
+
Body
+
DM Sans -- 16px -- 400 -- 1.50
+
+
Standard body text for general content and descriptions across the interface.
+
+ +
+
+
Body Bold
+
DM Sans -- 16px -- 700 -- 1.50
+
+
Strong emphasis for important content
+
+ +
+
+
Nav / Link
+
DM Sans -- 14px -- 500 -- 1.50
+
+
Navigation links and secondary text
+
+ +
+
+
Button Small
+
DM Sans -- 13px -- 600 -- 1.50
+
+
Compact Button Label
+
+ +
+
+
Caption
+
DM Sans / Poppins -- 13px -- 400 -- 1.70
+
+
Metadata and caption text
+
+ +
+
+
Small Label
+
DM Sans -- 12px -- 600 -- 1.50
+
+
TAGS AND BADGES
+
+ +
+
+
Micro
+
DM Sans / Outfit -- 10px -- 500 -- 1.80
+
+
Tiny annotations and micro text
+
+
+ + +
+

3. Button Variants

+

Pill buttons (9999px radius) for navigation and toggles, standard radius (8px) for CTA buttons. Weight 500 for default emphasis.

+ +
+
+ Pill Primary Dark + +
+
+ Pill Nav + +
+
+ Pill White + +
+
+ Secondary Light + +
+
+ Button Small + +
+
+ Pill Blue + +
+
+
+ + +
+

4. Card Examples

+

Product cards use vibrant gradients as visual anchors against white canvas. Generous 20-24px border radius with purple-tinted brand shadows for featured elements.

+ +
+ +
+
+
+
+
+

Video Generation

+

Transform text descriptions into high-quality video content with state-of-the-art generative models.

+
+
+
+
+
+
+
+

Music Studio

+

Create original music compositions with AI-driven arrangement and production tools.

+
+
+
+
+ + +
+

5. Form Elements

+

Clean form elements with 8px border radius, subtle borders, and blue focus rings. DM Sans at 16px for inputs, 14px for labels.

+ +
+
+ + +
+
+ + + We'll never share your email. +
+
+ + +
+
+ + + This field is required. +
+
+ + +
+
+
+ + +
+

6. Spacing Scale

+

Base unit 8px. Scale provides a consistent rhythm for layout and component spacing across the design system.

+ +
+
+
+ 2px +
+
+
+ 4px +
+
+
+ 6px +
+
+
+ 8px +
+
+
+ 10px +
+
+
+ 11px +
+
+
+ 14px +
+
+
+ 16px +
+
+
+ 24px +
+
+
+ 32px +
+
+
+ 40px +
+
+
+ 50px +
+
+
+ 64px +
+
+
+ 80px +
+
+
+ + +
+

7. Border Radius Scale

+

From minimal 4px tags to full 9999px pill shapes. Generous rounding (20-24px) defines the product card aesthetic.

+ +
+
+
+ Minimal + 4px +
+
+
+ Standard + 8px +
+
+
+ Comfortable + 13px +
+
+
+ Generous + 20px +
+
+
+ Large + 24px +
+
+
+ Pill + 32px +
+
+
+ Full + 9999px +
+
+
+ + +
+

8. Elevation / Depth

+

MiniMax uses distinctive purple-tinted shadows for featured elements, connecting the shadow system to the blue brand identity. Neutral shadows at low opacity keep everything light and airy.

+ +
+
+ Level 0 + Flat + No shadow. White backgrounds, text blocks. +
+
+ Level 1 + Subtle + Standard cards, containers. +
+
+ Level 2 + Ambient + Soft glow around elements. +
+
+ Level 3 + Brand Glow + Featured product cards with purple tint. +
+
+ Level 4 + Elevated + Lifted cards, hover states. +
+
+
+ + + + + + \ No newline at end of file diff --git a/design-md/mintlify/DESIGN.md b/design-md/mintlify/DESIGN.md new file mode 100644 index 0000000..c85cfde --- /dev/null +++ b/design-md/mintlify/DESIGN.md @@ -0,0 +1,326 @@ +# Design System: Mintlify + +## 1. Visual Theme & Atmosphere + +Mintlify's website is a study in documentation-as-product design — a white, airy, information-rich surface that treats clarity as its highest aesthetic value. The page opens with a luminous white (`#ffffff`) background, near-black (`#0d0d0d`) text, and a signature green brand accent (`#18E299`) that signals freshness and intelligence without dominating the palette. The overall mood is calm, confident, and engineered for legibility — a design system that whispers "we care about your developer experience" in every pixel. + +The Inter font family carries the entire typographic load. At display sizes (40–64px), it uses tight negative letter-spacing (-0.8px to -1.28px) and semibold weight (600), creating headlines that feel focused and compressed like well-written documentation headers. Body text at 16–18px with 150% line-height provides generous reading comfort. Geist Mono appears exclusively for code and technical labels — uppercase, tracked-out, small — the voice of the terminal inside the marketing page. + +What distinguishes Mintlify from other documentation platforms is its atmospheric gradient hero. A soft, cloud-like green-to-white gradient wash behind the hero content creates a sense of ethereal intelligence — documentation that floats above the noise. Below the hero, the page settles into a disciplined alternation of white sections separated by subtle 5% opacity borders. Cards use generous padding (24px+) with large radii (16px–24px) and whisper-thin borders, creating containers that feel open rather than boxed. + +**Key Characteristics:** +- Inter with tight negative tracking at display sizes (-0.8px to -1.28px) — compressed yet readable +- Geist Mono for code labels: uppercase, 12px, tracked-out, the terminal voice +- Brand green (`#18E299`) used sparingly — CTAs, hover states, focus rings, and accent touches +- Atmospheric gradient hero with cloud-like green-white wash +- Ultra-round corners: 16px for containers, 24px for featured cards, full-round (9999px) for buttons and pills +- Subtle 5% opacity borders (`rgba(0,0,0,0.05)`) creating barely-there separation +- 8px base spacing system with generous section padding (48px–96px) +- Clean white canvas — no gray backgrounds, no color sections, depth through borders and whitespace alone + +## 2. Color Palette & Roles + +### Primary +- **Near Black** (`#0d0d0d`): Primary text, headings, dark surfaces. Not pure black — the micro-softness improves reading comfort. +- **Pure White** (`#ffffff`): Page background, card surfaces, input backgrounds. +- **Brand Green** (`#18E299`): The signature accent — CTAs, links on hover, focus rings, brand identity. + +### Secondary Accents +- **Brand Green Light** (`#d4fae8`): Tinted green surface for badges, hover states, subtle backgrounds. +- **Brand Green Deep** (`#0fa76e`): Darker green for text on light-green badges, hover states on brand elements. +- **Warm Amber** (`#c37d0d`): Warning states, caution badges — `--twoslash-warn-bg`. +- **Soft Blue** (`#3772cf`): Tag backgrounds, informational annotations — `--twoslash-tag-bg`. +- **Error Red** (`#d45656`): Error states, destructive actions — `--twoslash-error-bg`. + +### Neutral Scale +- **Gray 900** (`#0d0d0d`): Primary heading text, nav links. +- **Gray 700** (`#333333`): Secondary text, descriptions, body copy. +- **Gray 500** (`#666666`): Tertiary text, muted labels. +- **Gray 400** (`#888888`): Placeholder text, disabled states, code annotations. +- **Gray 200** (`#e5e5e5`): Borders, dividers, card outlines. +- **Gray 100** (`#f5f5f5`): Subtle surface backgrounds, hover states. +- **Gray 50** (`#fafafa`): Near-white surface tint. + +### Interactive +- **Link Default** (`#0d0d0d`): Links match text color, relying on underline/context. +- **Link Hover** (`#18E299`): Brand green on hover — `var(--color-brand)`. +- **Focus Ring** (`#18E299`): Brand green focus outline for inputs and interactive elements. + +### Surface & Overlay +- **Card Background** (`#ffffff`): White cards on white background, separated by borders. +- **Border Subtle** (`rgba(0,0,0,0.05)`): 5% black opacity borders — the primary separation mechanism. +- **Border Medium** (`rgba(0,0,0,0.08)`): Slightly stronger borders for interactive elements. +- **Input Border Focus** (`var(--color-brand)`): Green ring on focused inputs. + +### Shadows & Depth +- **Card Shadow** (`rgba(0,0,0,0.03) 0px 2px 4px`): Barely-there ambient shadow for subtle lift. +- **Button Shadow** (`rgba(0,0,0,0.06) 0px 1px 2px`): Micro-shadow for button depth. +- **No heavy shadows**: Mintlify relies on borders, not shadows, for depth. + +## 3. Typography Rules + +### Font Family +- **Primary**: `Inter`, with fallback: `Inter Fallback, system-ui, -apple-system, sans-serif` +- **Monospace**: `Geist Mono`, with fallback: `Geist Mono Fallback, ui-monospace, SFMono-Regular, monospace` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Hero | Inter | 64px (4.00rem) | 600 | 1.15 (tight) | -1.28px | Maximum impact, hero headlines | +| Section Heading | Inter | 40px (2.50rem) | 600 | 1.10 (tight) | -0.8px | Feature section titles | +| Sub-heading | Inter | 24px (1.50rem) | 500 | 1.30 (tight) | -0.24px | Card headings, sub-sections | +| Card Title | Inter | 20px (1.25rem) | 600 | 1.30 (tight) | -0.2px | Feature card titles | +| Card Title Light | Inter | 20px (1.25rem) | 500 | 1.30 (tight) | -0.2px | Secondary card headings | +| Body Large | Inter | 18px (1.13rem) | 400 | 1.50 | normal | Hero descriptions, introductions | +| Body | Inter | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text | +| Body Medium | Inter | 16px (1.00rem) | 500 | 1.50 | normal | Navigation, emphasized text | +| Button | Inter | 15px (0.94rem) | 500 | 1.50 | normal | Button labels | +| Link | Inter | 14px (0.88rem) | 500 | 1.50 | normal | Navigation links, small CTAs | +| Caption | Inter | 14px (0.88rem) | 400–500 | 1.50–1.71 | normal | Metadata, descriptions | +| Label Uppercase | Inter | 13px (0.81rem) | 500 | 1.50 | 0.65px | `text-transform: uppercase`, section labels | +| Small | Inter | 13px (0.81rem) | 400–500 | 1.50 | -0.26px | Small body text | +| Mono Code | Geist Mono | 12px (0.75rem) | 500 | 1.50 | 0.6px | `text-transform: uppercase`, technical labels | +| Mono Badge | Geist Mono | 12px (0.75rem) | 600 | 1.50 | 0.6px | `text-transform: uppercase`, status badges | +| Mono Micro | Geist Mono | 10px (0.63rem) | 500 | 1.50 | normal | `text-transform: uppercase`, tiny labels | + +### Principles +- **Tight tracking at display sizes**: Inter at 40–64px uses -0.8px to -1.28px letter-spacing. This compression creates headlines that feel deliberate and space-efficient — documentation headings, not billboard copy. +- **Relaxed reading at body sizes**: 16–18px body text uses normal tracking with 150% line-height, creating generous reading lanes. Documentation demands comfort. +- **Two-font system**: Inter for all human-readable content, Geist Mono exclusively for technical/code contexts. The boundary is strict — no mixing. +- **Uppercase as hierarchy signal**: Section labels and technical tags use uppercase + positive tracking (0.6px–0.65px) as a clear visual delimiter between content types. +- **Three weights**: 400 (body/reading), 500 (UI/navigation/emphasis), 600 (headings/titles). No bold (700) in the system. + +## 4. Component Stylings + +### Buttons + +**Primary Brand (Full-round)** +- Background: `#0d0d0d` (near-black) +- Text: `#ffffff` +- Padding: 8px 24px +- Radius: 9999px (full pill) +- Font: Inter 15px weight 500 +- Shadow: `rgba(0,0,0,0.06) 0px 1px 2px` +- Hover: opacity 0.9 +- Use: Primary CTA ("Get Started", "Start Building") + +**Secondary / Ghost (Full-round)** +- Background: `#ffffff` +- Text: `#0d0d0d` +- Padding: 4.5px 12px +- Radius: 9999px (full pill) +- Border: `1px solid rgba(0,0,0,0.08)` +- Font: Inter 15px weight 500 +- Hover: opacity 0.9 +- Use: Secondary actions ("Request Demo", "View Docs") + +**Transparent / Nav Button** +- Background: transparent +- Text: `#0d0d0d` +- Padding: 5px 6px +- Radius: 8px +- Border: none or `1px solid rgba(0,0,0,0.05)` +- Use: Navigation items, icon buttons + +**Brand Accent Button** +- Background: `#18E299` +- Text: `#0d0d0d` +- Padding: 8px 24px +- Radius: 9999px +- Use: Special promotional CTAs + +### Cards & Containers + +**Standard Card** +- Background: `#ffffff` +- Border: `1px solid rgba(0,0,0,0.05)` +- Radius: 16px +- Padding: 24px +- Shadow: `rgba(0,0,0,0.03) 0px 2px 4px` +- Hover: subtle border darkening to `rgba(0,0,0,0.08)` + +**Featured Card** +- Background: `#ffffff` +- Border: `1px solid rgba(0,0,0,0.05)` +- Radius: 24px +- Padding: 32px +- Inner content areas may have their own 16px radius containers + +**Logo/Trust Card** +- Background: `#fafafa` or `#ffffff` +- Border: `1px solid rgba(0,0,0,0.05)` +- Radius: 16px +- Centered logo/icon with consistent sizing + +### Inputs & Forms + +**Email Input** +- Background: transparent or `#ffffff` +- Text: `#0d0d0d` +- Padding: 0px 12px (height controlled by line-height) +- Border: `1px solid rgba(0,0,0,0.08)` +- Radius: 9999px (full pill, matching buttons) +- Focus: `1px solid var(--color-brand)` + `outline: 1px solid var(--color-brand)` +- Placeholder: `#888888` + +### Navigation +- Clean horizontal nav on white, sticky with backdrop blur +- Brand logotype left-aligned +- Links: Inter 14–15px weight 500, `#0d0d0d` text +- Hover: color shifts to brand green `var(--color-brand)` +- CTA: dark pill button right-aligned ("Get Started") +- Mobile: hamburger menu collapse at 768px + +### Image Treatment +- Product screenshots with subtle 1px borders +- Rounded containers: 16px–24px radius +- Atmospheric gradient backgrounds behind hero images +- Cloud/sky imagery with soft green tinting + +### Distinctive Components + +**Atmospheric Hero** +- Full-width gradient wash: soft green-to-white cloud-like gradient +- Centered headline with tight tracking +- Subtitle in muted gray +- Dual CTA buttons (dark primary + ghost secondary) +- The gradient creates a sense of elevation and intelligence + +**Trust Bar / Logo Grid** +- "Loved by your favorite companies" section +- Company logos in muted grayscale +- Grid or horizontal layout with consistent sizing +- Subtle border separation between logos + +**Feature Cards with Icons** +- Icon or illustration at top +- Title at 20px weight 600 +- Description at 14–16px in gray +- Consistent padding and border treatment +- Grid layout: 2–3 columns on desktop + +**CTA Footer Section** +- Dark or gradient background +- Large headline: "Make documentation your winning advantage" +- Email input with pill styling +- Brand green accent on CTAs + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 2px, 4px, 5px, 6px, 7px, 8px, 10px, 12px, 16px, 24px, 32px, 48px, 64px +- Section padding: 48px–96px vertical +- Card padding: 24px–32px +- Component gaps: 8px–16px + +### Grid & Container +- Max content width: approximately 1200px +- Hero: centered single-column with generous top padding (96px+) +- Feature sections: 2–3 column CSS Grid for cards +- Full-width sections with contained content +- Consistent horizontal padding: 24px (mobile) to 32px (desktop) + +### Whitespace Philosophy +- **Documentation-grade breathing room**: Every element has generous surrounding whitespace. Mintlify sells documentation, so the marketing page itself demonstrates reading comfort. +- **Sections as chapters**: Each feature section is a self-contained unit with 48px–96px vertical padding, creating clear "chapter breaks." +- **Content density is low**: Unlike developer tools that pack the page, Mintlify uses 1–2 key messages per section with supporting imagery. + +### Border Radius Scale +- Small (4px): Inline code, small tags, tooltips +- Medium (8px): Nav buttons, transparent buttons, small containers +- Standard (16px): Cards, content containers, image wrappers +- Large (24px): Featured cards, hero containers, section panels +- Full Pill (9999px): Buttons, inputs, badges, pills — the signature shape + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, no border | Page background, text blocks | +| Subtle Border (Level 1) | `1px solid rgba(0,0,0,0.05)` | Standard card borders, dividers | +| Medium Border (Level 1b) | `1px solid rgba(0,0,0,0.08)` | Interactive elements, input borders | +| Ambient Shadow (Level 2) | `rgba(0,0,0,0.03) 0px 2px 4px` | Cards with subtle lift | +| Button Shadow (Level 2b) | `rgba(0,0,0,0.06) 0px 1px 2px` | Button micro-depth | +| Focus Ring (Accessibility) | `1px solid #18E299` outline | Focused inputs, active interactive elements | + +**Shadow Philosophy**: Mintlify barely uses shadows. The depth system is almost entirely border-driven — ultra-subtle 5% opacity borders create separation without visual weight. When shadows appear, they're atmospheric whispers (`0.03 opacity, 2px blur, 4px spread`) that add the barest sense of lift. This restraint keeps the page feeling flat and paper-like — appropriate for a documentation company whose product is about clarity and readability. + +### Decorative Depth +- Hero gradient: atmospheric green-white cloud gradient behind hero content +- No background color alternation — white on white throughout +- Depth comes from border opacity variation (5% → 8%) and whitespace + +## 7. Dark Mode + +### Color Inversions +- **Background**: `#0d0d0d` (near-black) +- **Text Primary**: `#ededed` (near-white) +- **Text Secondary**: `#a0a0a0` (muted gray) +- **Brand Green**: `#18E299` (unchanged — the green works on both backgrounds) +- **Border**: `rgba(255,255,255,0.08)` (white at 8% opacity) +- **Card Background**: `#141414` (slightly lighter than page) +- **Shadow**: `rgba(0,0,0,0.4) 0px 2px 4px` (stronger shadow for contrast) + +### Key Adjustments +- Buttons invert: white background dark text becomes dark background light text +- Badge backgrounds shift to deeper tones with lighter text +- Focus ring remains brand green +- Hero gradient shifts to dark-tinted green atmospheric wash + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <768px | Single column, stacked layout, hamburger nav | +| Tablet | 768–1024px | Two-column grids begin, expanded padding | +| Desktop | >1024px | Full layout, 3-column grids, maximum content width | + +### Touch Targets +- Buttons with full-pill shape have comfortable 8px+ vertical padding +- Navigation links spaced with adequate 16px+ gaps +- Mobile menu provides full-width tap targets + +### Collapsing Strategy +- Hero: 64px → 40px headline, maintains tight tracking proportionally +- Navigation: horizontal links + CTA → hamburger menu at 768px +- Feature cards: 3-column → 2-column → single column stacked +- Section spacing: 96px → 48px on mobile +- Footer: multi-column → stacked single column +- Trust bar: grid → horizontal scroll or stacked + +### Image Behavior +- Product screenshots maintain aspect ratio with responsive containers +- Hero gradient simplifies on mobile +- Full-width sections maintain edge-to-edge treatment + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA: Near Black (`#0d0d0d`) +- Background: Pure White (`#ffffff`) +- Heading text: Near Black (`#0d0d0d`) +- Body text: Gray 700 (`#333333`) +- Border: `rgba(0,0,0,0.05)` (5% opacity) +- Brand accent: Green (`#18E299`) +- Link hover: Brand Green (`#18E299`) +- Focus ring: Brand Green (`#18E299`) + +### Example Component Prompts +- "Create a hero section on white background with atmospheric green-white gradient wash. Headline at 64px Inter weight 600, line-height 1.15, letter-spacing -1.28px, color #0d0d0d. Subtitle at 18px Inter weight 400, line-height 1.50, color #666666. Dark pill CTA (#0d0d0d, 9999px radius, 8px 24px padding) and ghost pill button (white, 1px solid rgba(0,0,0,0.08), 9999px radius)." +- "Design a card: white background, 1px solid rgba(0,0,0,0.05) border, 16px radius, 24px padding, shadow rgba(0,0,0,0.03) 0px 2px 4px. Title at 20px Inter weight 600, letter-spacing -0.2px. Body at 14px weight 400, #666666." +- "Build a pill badge: #d4fae8 background, #0fa76e text, 9999px radius, 4px 12px padding, 13px Inter weight 500, uppercase." +- "Create navigation: white sticky header with backdrop-filter blur(12px). Inter 15px weight 500 for links, #0d0d0d text. Dark pill CTA 'Get Started' right-aligned, 9999px radius. Bottom border: 1px solid rgba(0,0,0,0.05)." +- "Design a trust section showing company logos in muted gray. Grid layout with 16px radius containers, 1px border at 5% opacity. Label above: 'Loved by your favorite companies' at 13px Inter weight 500, uppercase, tracking 0.65px." + +### Iteration Guide +1. Always use full-pill radius (9999px) for buttons and inputs — this is Mintlify's signature shape +2. Keep borders at 5% opacity (`rgba(0,0,0,0.05)`) — stronger borders break the airy feeling +3. Letter-spacing scales with font size: -1.28px at 64px, -0.8px at 40px, -0.24px at 24px, normal at 16px +4. Three weights only: 400 (read), 500 (interact), 600 (announce) +5. Brand green (`#18E299`) is used sparingly — CTAs and hover states only, never for decorative fills +6. Geist Mono uppercase for technical labels, Inter for everything else +7. Section padding is generous: 64px–96px on desktop, 48px on mobile +8. No gray background sections — white throughout, separation through borders and whitespace diff --git a/design-md/mintlify/README.md b/design-md/mintlify/README.md new file mode 100644 index 0000000..0c3a7c7 --- /dev/null +++ b/design-md/mintlify/README.md @@ -0,0 +1,25 @@ +# Mintlify — Design System + +> Design.md extracted from the public [mintlify](https://mintlify.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 Mintlify 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 +![Mintlify Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/mintlify/preview-dark-screenshot.png) + +### Light Mode +![Mintlify Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/mintlify/preview-screenshot.png) diff --git a/design-md/mintlify/preview-dark.html b/design-md/mintlify/preview-dark.html new file mode 100644 index 0000000..5daa1d5 --- /dev/null +++ b/design-md/mintlify/preview-dark.html @@ -0,0 +1,411 @@ + + + + + +Design System Preview: Mintlify (Dark) + + + + + + + +
Dark Mode
+ + + +
+

Design System
Inspired by Mintlify

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Near Black
#0d0d0d
Dark background
+
Near White
#ededed
Primary text (dark)
+
Brand Green
#18E299
Brand accent, CTAs
+
+ +
Brand Extended
+
+
Green Dark
#0d3d2a
Badge bg (dark)
+
Green Light
#5eedb8
Badge text (dark)
+
Annotate Green
#1ba673
Code annotations
+
+ +
Semantic
+
+
Info Blue
#5b94e0
Tags, annotations
+
Warn Amber
#e6a733
Warnings, caution
+
Error Red
#e06b6b
Errors, destructive
+
+ +
Neutral Scale (Dark)
+
+
Gray 700
#a0a0a0
Secondary text
+
Gray 500
#888888
Tertiary text
+
Gray 400
#666666
Placeholders
+
Gray 200
#2a2a2a
Borders
+
Gray 100
#1a1a1a
Surface
+
Gray 50
#141414
Card background
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero — 56px / 600 / 1.10 / -1.28px / Inter
+
Section Heading
Section Heading — 40px / 600 / 1.10 / -0.8px / Inter
+
Sub-heading
Sub-heading — 24px / 500 / 1.30 / -0.24px / Inter
+
Card Title
Card Title — 20px / 600 / 1.30 / -0.2px / Inter
+
Body Large — The intelligent knowledge platform that powers your documentation, APIs, and guides.
Body Large — 18px / 400 / 1.50 / normal / Inter
+
Body — Standard reading text for documentation and content.
Body — 16px / 400 / 1.50 / normal / Inter
+
Body Medium — Navigation and emphasized text
Body Medium — 16px / 500 / 1.50 / Inter
+
Button Label
Button — 15px / 500 / 1.50 / Inter
+
Link / Caption
Link / Caption — 14px / 500 / 1.50 / Inter
+
Section Label
Label Uppercase — 13px / 500 / uppercase / 0.65px / Inter
+
MONO TECHNICAL LABEL
Mono Code — 12px / 500 / uppercase / 0.6px / Geist Mono
+
MICRO LABEL
Mono Micro — 10px / 500 / uppercase / Geist Mono
+
+ +
+ +
+ +

Button Variants

+
+ +
Documentation
Ghost / Outline
+
Start Building
Brand Accent
+
Documentation
Pill Badge
+
Info
Info Badge
+
Warning
Warning Badge
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Docs
+

Intelligent Search

+

AI-powered search that understands your documentation and delivers precise answers to developer questions.

+
+
+
API
+

API Reference

+

Auto-generated API documentation with interactive examples, authentication flows, and code snippets.

+
+
+
Analytics
+

Documentation Analytics

+

Track what developers search for, which pages perform best, and where they get stuck.

+
+
+ +
+
Featured Card (24px radius)
+ +
+
+ +
+ +
+ +

Form Elements

+
Default (pill shape)
+
Focus (green ring)
+
Error (red ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
10
+
12
+
16
+
24
+
32
+
48
+
64
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
4px
Code, tags
+
8px
Nav buttons
+
16px
Cards
+
24px
Featured
+
9999px
Buttons, pills
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Subtle
6% border + ambient
+
Level 2: Medium
10% border + ambient
+
Level 3: Raised
Stronger shadow
+
Focus Ring
Brand green ring
+
+
+ + + + + diff --git a/design-md/mintlify/preview.html b/design-md/mintlify/preview.html new file mode 100644 index 0000000..3eba850 --- /dev/null +++ b/design-md/mintlify/preview.html @@ -0,0 +1,400 @@ + + + + + +Design System Preview: Mintlify (Light) + + + + + + + + + +
+

Design System
Inspired by Mintlify

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Near Black
#0d0d0d
Primary text, headings
+
Pure White
#ffffff
Page background
+
Brand Green
#18E299
Brand accent, CTAs
+
+ +
Brand Extended
+
+
Green Light
#d4fae8
Badge backgrounds
+
Green Deep
#0fa76e
Badge text
+
Annotate Green
#1ba673
Code annotations
+
+ +
Semantic
+
+
Info Blue
#3772cf
Tags, annotations
+
Warn Amber
#c37d0d
Warnings, caution
+
Error Red
#d45656
Errors, destructive
+
+ +
Neutral Scale
+
+
Gray 700
#333333
Secondary text
+
Gray 500
#666666
Tertiary text
+
Gray 400
#888888
Placeholders
+
Gray 200
#e5e5e5
Borders
+
Gray 100
#f5f5f5
Subtle surface
+
Gray 50
#fafafa
Near-white tint
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero — 56px / 600 / 1.10 / -1.28px / Inter
+
Section Heading
Section Heading — 40px / 600 / 1.10 / -0.8px / Inter
+
Sub-heading
Sub-heading — 24px / 500 / 1.30 / -0.24px / Inter
+
Card Title
Card Title — 20px / 600 / 1.30 / -0.2px / Inter
+
Body Large — The intelligent knowledge platform that powers your documentation, APIs, and guides.
Body Large — 18px / 400 / 1.50 / normal / Inter
+
Body — Standard reading text for documentation and content.
Body — 16px / 400 / 1.50 / normal / Inter
+
Body Medium — Navigation and emphasized text
Body Medium — 16px / 500 / 1.50 / Inter
+
Button Label
Button — 15px / 500 / 1.50 / Inter
+
Link / Caption
Link / Caption — 14px / 500 / 1.50 / Inter
+
Section Label
Label Uppercase — 13px / 500 / uppercase / 0.65px / Inter
+
MONO TECHNICAL LABEL
Mono Code — 12px / 500 / uppercase / 0.6px / Geist Mono
+
MICRO LABEL
Mono Micro — 10px / 500 / uppercase / Geist Mono
+
+ +
+ +
+ +

Button Variants

+
+
Get Started
Primary Dark
+
Documentation
Ghost / Outline
+
Start Building
Brand Accent
+
Documentation
Pill Badge
+
Info
Info Badge
+
Warning
Warning Badge
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Docs
+

Intelligent Search

+

AI-powered search that understands your documentation and delivers precise answers to developer questions.

+
+
+
API
+

API Reference

+

Auto-generated API documentation with interactive examples, authentication flows, and code snippets.

+
+
+
Analytics
+

Documentation Analytics

+

Track what developers search for, which pages perform best, and where they get stuck.

+
+
+ +
+
Featured Card (24px radius)
+ +
+
+ +
+ +
+ +

Form Elements

+
Default (pill shape)
+
Focus (green ring)
+
Error (red ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
10
+
12
+
16
+
24
+
32
+
48
+
64
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
4px
Code, tags
+
8px
Nav buttons
+
16px
Cards
+
24px
Featured
+
9999px
Buttons, pills
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Subtle
5% border + ambient
+
Level 2: Medium
8% border + ambient
+
Level 3: Raised
Stronger shadow
+
Focus Ring
Brand green ring
+
+
+ + + + + diff --git a/design-md/mistral.ai/DESIGN.md b/design-md/mistral.ai/DESIGN.md new file mode 100644 index 0000000..fa60eff --- /dev/null +++ b/design-md/mistral.ai/DESIGN.md @@ -0,0 +1,261 @@ +# Design System: Mistral AI + +## 1. Visual Theme & Atmosphere + +Mistral AI's interface is a sun-drenched landscape rendered in code — a warm, bold, unapologetically European design that trades the typical blue-screen AI aesthetic for golden amber, burnt orange, and the feeling of late-afternoon light in southern France. Every surface glows with warmth: backgrounds fade from pale cream to deep amber, shadows carry golden undertones (`rgba(127, 99, 21, ...)`), and the brand's signature orange (`#fa520f`) burns through the page like a signal fire. + +The design language is maximalist in its warmth but minimalist in its structure. Huge display headlines (82px) crash into the viewport with aggressive negative tracking (-2.05px), creating text blocks that feel like billboards or protest posters — declarations rather than descriptions. The typography uses Arial (likely a custom font with Arial as fallback) at extreme sizes, creating a raw, unadorned voice that says "we build frontier AI" with no decoration needed. + +What makes Mistral distinctive is the complete commitment to a warm color temperature. The signature "block" identity — a gradient system flowing from bright yellow (`#ffd900`) through amber (`#ffa110`) to burnt orange (`#fa520f`) — creates a visual identity that's immediately recognizable. Even the shadows are warm, using amber-tinted blacks instead of cool grays. Combined with dramatic landscape photography in golden tones, the design feels less like a tech company and more like a European luxury brand that happens to build language models. + +**Key Characteristics:** +- Golden-amber color universe: every tone from pale cream (#fffaeb) to burnt orange (#fa520f) +- Massive display typography (82px) with aggressive negative letter-spacing (-2.05px) +- Warm golden shadow system using amber-tinted rgba values +- The Mistral "M" block identity — a gradient from yellow to orange +- Dramatic landscape photography in warm golden tones +- Uppercase typography used strategically for section labels and CTAs +- Near-zero border-radius — sharp, architectural geometry +- French-European confidence: bold, warm, declarative + +## 2. Color Palette & Roles + +### Primary +- **Mistral Orange** (`#fa520f`): The core brand color — a vivid, saturated orange-red that anchors the entire identity. Used for primary emphasis, the brand block, and the highest-signal moments. +- **Mistral Flame** (`#fb6424`): A slightly warmer, lighter variant of the brand orange used for secondary brand moments and hover states. +- **Block Orange** (`#ff8105`): A pure orange used in the gradient block system — warmer and less red than Mistral Orange. + +### Secondary & Accent +- **Sunshine 900** (`#ff8a00`): Deep golden amber — the darkest sunshine tone, used for strong accent moments. +- **Sunshine 700** (`#ffa110`): Warm amber-gold — the core sunshine accent for backgrounds and interactive elements. +- **Sunshine 500** (`#ffb83e`): Medium golden — balanced warmth for mid-level emphasis. +- **Sunshine 300** (`#ffd06a`): Light golden — for subtle warm tints and secondary backgrounds. +- **Block Gold** (`#ffe295`): Pale gold — soft background accents and gentle warmth. +- **Bright Yellow** (`#ffd900`): The brightest tone in the gradient — used at the "top" of the block identity. + +### Surface & Background +- **Warm Ivory** (`#fffaeb`): The lightest page background — barely tinted with warmth, the foundation canvas. +- **Cream** (`#fff0c2`): The primary warm surface and secondary button background — noticeably golden. +- **Pure White** (`#ffffff`): Used for maximum contrast elements and popover surfaces. +- **Mistral Black** (`#1f1f1f`): The primary dark surface for buttons, text, and dark sections. +- **Accent Orange** (defined as `hsl(17, 96%, 52%)`): The functional accent color for interactive states. + +### Neutrals & Text +- **Mistral Black** (`#1f1f1f`): Primary text color and dark button backgrounds — a near-black that's warmer than pure #000. +- **Black Tint** (defined as `hsl(0, 0%, 24%)`): A medium dark gray for secondary text on light backgrounds. +- **Pure White** (`#ffffff`): Text on dark surfaces and CTA labels. + +### Semantic & Accent +- **Input Border** (defined as `hsl(240, 5.9%, 90%)`): A cool-tinted light gray for form borders — one of the few cool tones in the system. +- **White Overlay** (`oklab(1, 0, 0 / 0.088–0.1)`): Semi-transparent white for frosted glass effects and button overlays. + +### Gradient System +- **Mistral Block Gradient**: The signature identity — a multi-step gradient flowing through Yellow (`#ffd900`) → Gold (`#ffe295`) → Amber (`#ffa110`) → Orange (`#ff8105`) → Flame (`#fb6424`) → Mistral Orange (`#fa520f`). This gradient appears in the logo blocks, section backgrounds, and decorative elements. +- **Golden Landscape Wash**: Photography and backgrounds use warm amber overlays creating a consistent golden temperature across the page. +- **Warm Shadow Cascade**: Multi-layered golden shadows that build depth with amber-tinted transparency rather than gray. + +## 3. Typography Rules + +### Font Family +- **Primary**: Likely a custom font (Font Source detected) with `Arial` as fallback, and extended stack: `ui-sans-serif, system-ui, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display / Hero | Arial (custom) | 82px (5.13rem) | 400 | 1.00 (tight) | -2.05px | Maximum impact, billboard scale | +| Section Heading | Arial (custom) | 56px (3.5rem) | 400 | 0.95 (ultra-tight) | normal | Feature section anchors | +| Sub-heading Large | Arial (custom) | 48px (3rem) | 400 | 0.95 (ultra-tight) | normal | Secondary section titles | +| Sub-heading | Arial (custom) | 32px (2rem) | 400 | 1.15 (tight) | normal | Card headings, feature names | +| Card Title | Arial (custom) | 30px (1.88rem) | 400 | 1.20 (tight) | normal | Mid-level headings | +| Feature Title | Arial (custom) | 24px (1.5rem) | 400 | 1.33 | normal | Small headings | +| Body / Button | Arial (custom) | 16px (1rem) | 400 | 1.50 | normal | Standard body, button text | +| Button Uppercase | Arial (custom) | 16px (1rem) | 400 | 1.50 | normal | Uppercase CTA labels | +| Caption / Link | Arial (custom) | 14px (0.88rem) | 400 | 1.43 | normal | Metadata, secondary links | + +### Principles +- **Single weight, maximum impact**: The entire system uses weight 400 (regular) — even at 82px. This creates a surprisingly elegant effect where the size alone carries authority without needing bold weight. +- **Ultra-tight at scale**: Line-heights of 0.95–1.00 at display sizes create text blocks where ascenders nearly touch descenders from the line above — creating dense, poster-like composition. +- **Aggressive tracking on display**: -2.05px letter-spacing at 82px compresses the hero text into a monolithic block. +- **Uppercase as emphasis**: Strategic `text-transform: uppercase` on button labels and section markers creates a formal, European signage quality. +- **No weight variation**: Unlike most systems that use 300–700 weight range, Mistral uses 400 everywhere. Hierarchy comes from size and color, never weight. + +## 4. Component Stylings + +### Buttons + +**Cream Surface** +- Background: Cream (`#fff0c2`) +- Text: Mistral Black (`#1f1f1f`) +- No visible border +- The warm, inviting secondary CTA + +**Dark Solid** +- Background: Mistral Black (`#1f1f1f`) +- Text: Pure White (`#ffffff`) +- Padding: 12px (all sides) +- No visible border +- The primary action button — dark on warm + +**Ghost / Transparent** +- Background: transparent with slight dark overlay (`oklab(0, 0, 0 / 0.1)`) +- Text: Mistral Black (`#1f1f1f`) +- Opacity: 0.4 +- For secondary/de-emphasized actions + +**Text / Underline** +- Background: transparent +- Text: Mistral Black (`#1f1f1f`) +- Padding: 8px 0px 0px (top-only) +- Minimal styling — text link as button +- For tertiary navigation actions + +### Cards & Containers +- Background: Warm Ivory (`#fffaeb`), Cream (`#fff0c2`), or Pure White +- Border: minimal to none — containers defined by background color +- Radius: near-zero — sharp, architectural corners +- Shadow: warm golden multi-layer (`rgba(127, 99, 21, 0.12) -8px 16px 39px, rgba(127, 99, 21, 0.1) -33px 64px 72px, rgba(127, 99, 21, 0.06) -73px 144px 97px, ...`) — a dramatic, cascading warm shadow +- Distinctive: the golden shadow creates a "golden hour" lighting effect + +### Inputs & Forms +- Border: `hsl(240, 5.9%, 90%)` — the sole cool-toned element +- Focus: accent color ring +- Minimal styling consistent with sparse aesthetic + +### Navigation +- Transparent nav overlaying the warm hero +- Logo: Mistral "M" wordmark +- Links: Dark text (white on dark sections) +- CTA: Dark solid button or cream surface button +- Minimal, wide-spaced layout + +### Image Treatment +- Dramatic landscape photography in warm golden tones +- The winding road through golden hills — a recurring visual motif +- The Mistral "M" rendered at large scale on golden backgrounds +- Warm color grading on all photography +- Full-bleed sections with photography + +### Distinctive Components + +**Mistral Block Identity** +- A row of colored blocks forming the gradient: yellow → amber → orange → burnt orange +- Each block gets progressively more orange/red +- The visual DNA of the brand — recognizable at any size + +**Golden Shadow Cards** +- Cards elevated with warm amber multi-layered shadows +- 5 layers of shadow from 16px to 400px offset +- Creates a "floating in golden light" effect unique to Mistral + +**Dark Footer Gradient** +- Footer transitions from warm amber to dark through a dramatic gradient +- Creates a "sunset" effect as the page ends + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 2px, 4px, 8px, 10px, 12px, 16px, 20px, 24px, 32px, 40px, 48px, 64px, 80px, 98px, 100px +- Button padding: 12px or 8px 0px (compact) +- Section vertical spacing: very generous (80px–100px) + +### Grid & Container +- Max container width: approximately 1280px, centered +- Hero: full-width with massive typography overlaying warm backgrounds +- Feature sections: wide-format layouts with dramatic imagery +- Card grids: 2–3 column layouts + +### Whitespace Philosophy +- **Bold declarations**: Huge headlines surrounded by generous whitespace create billboard-like impact — each statement gets its own breathing space. +- **Warm void**: Empty space itself feels warm because the backgrounds are tinted ivory/cream rather than pure white. +- **Photography as space-filler**: Large landscape images serve double duty as content and decorative whitespace. + +### Border Radius Scale +- Near-zero: The dominant radius — sharp, architectural corners on most elements +- This extreme sharpness contrasts with the warmth of the colors, creating a tension between soft color and hard geometry. + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | Page backgrounds, text blocks | +| Golden Float (Level 1) | Multi-layer warm shadow (5 layers, 12%→0% opacity, amber-tinted) | Feature cards, product showcases, elevated content | + +**Shadow Philosophy**: Mistral uses a single but extraordinarily complex shadow — **five cascading layers** of amber-tinted shadow (`rgba(127, 99, 21, ...)`) that build from a close 16px offset to a distant 400px offset. The result is a rich, warm, "golden hour" lighting effect that makes elevated elements look like they're bathed in afternoon sunlight. This is the most distinctive shadow system in any major AI brand. + +## 7. Do's and Don'ts + +### Do +- Use the warm color spectrum exclusively: ivory, cream, amber, gold, orange +- Keep display typography at 82px+ with -2.05px letter-spacing for hero sections +- Use the Mistral block gradient (yellow → amber → orange) for brand moments +- Apply warm golden shadows (amber-tinted rgba) for elevated elements +- Use Mistral Black (#1f1f1f) for text — never pure #000000 +- Keep font weight at 400 throughout — let size and color carry hierarchy +- Use sharp, architectural corners — near-zero border-radius +- Apply uppercase on button labels and section markers for European formality +- Use warm landscape photography with golden color grading + +### Don't +- Don't introduce cool colors (blue, green, purple) — the palette is exclusively warm +- Don't use bold (700+) weight — 400 is the only weight +- Don't round corners — the sharp geometry is intentional +- Don't use cool-toned shadows — shadows must carry amber warmth +- Don't use pure white as a page background — always warm-tinted (#fffaeb minimum) +- Don't reduce hero text below 48px on desktop — the billboard scale is core +- Don't use more than 2 font weights — size variation replaces weight variation +- Don't add gradients outside the warm spectrum — no blue-to-purple, no cool transitions +- Don't use generic gray for text — even neutrals should be warm-tinted + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <640px | Single column, stacked everything, hero text reduces to ~32px | +| Tablet | 640–768px | Minor layout adjustments | +| Small Desktop | 768–1024px | 2-column layouts begin | +| Desktop | 1024–1280px | Full layout with maximum typography scale | + +### Touch Targets +- Buttons use generous padding (12px minimum) +- Navigation elements adequately spaced +- Cards serve as large touch targets + +### Collapsing Strategy +- **Navigation**: Collapses to hamburger on mobile +- **Hero text**: 82px → 56px → 48px → 32px progressive scaling +- **Feature sections**: Multi-column → stacked +- **Photography**: Scales proportionally, may crop on mobile +- **Block identity**: Scales down proportionally + +### Image Behavior +- Landscape photography scales proportionally +- Warm color grading maintained at all sizes +- Block gradient elements resize fluidly +- No art direction changes — same warm composition at all sizes + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Brand Orange: "Mistral Orange (#fa520f)" +- Page Background: "Warm Ivory (#fffaeb)" +- Warm Surface: "Cream (#fff0c2)" +- Primary Text: "Mistral Black (#1f1f1f)" +- Sunshine Amber: "Sunshine 700 (#ffa110)" +- Bright Gold: "Bright Yellow (#ffd900)" +- Text on Dark: "Pure White (#ffffff)" + +### Example Component Prompts +- "Create a hero section on Warm Ivory (#fffaeb) with a massive headline at 82px Arial weight 400, line-height 1.0, letter-spacing -2.05px. Mistral Black (#1f1f1f) text. Add a dark solid CTA button (#1f1f1f bg, white text, 12px padding, sharp corners) and a cream secondary button (#fff0c2 bg)." +- "Design a feature card on Cream (#fff0c2) with sharp corners (no border-radius). Apply the golden shadow system: rgba(127, 99, 21, 0.12) -8px 16px 39px as the primary layer. Title at 32px weight 400, body at 16px." +- "Build the Mistral block identity: a row of colored blocks from Bright Yellow (#ffd900) through Sunshine 700 (#ffa110) to Mistral Orange (#fa520f). Sharp corners, no gaps." +- "Create a dark footer section on Mistral Black (#1f1f1f) with Pure White (#ffffff) text. Footer links at 14px. Add a warm gradient from Sunshine 700 (#ffa110) at the top fading to Mistral Black." + +### Iteration Guide +1. Keep the warm temperature — "shift toward amber" not "shift toward gray" +2. Use size for hierarchy — 82px → 56px → 48px → 32px → 24px → 16px +3. Never add border-radius — sharp corners only +4. Shadows are always warm: "golden shadow with amber tones" +5. Font weight is always 400 — describe emphasis through size and color diff --git a/design-md/mistral.ai/README.md b/design-md/mistral.ai/README.md new file mode 100644 index 0000000..2760d72 --- /dev/null +++ b/design-md/mistral.ai/README.md @@ -0,0 +1,25 @@ +# Mistral.ai — Design System + +> Design.md extracted from the public [mistral.ai](https://mistral.ai.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 Mistral.ai 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 +![Mistral.ai Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/mistral.ai/preview-dark-screenshot.png) + +### Light Mode +![Mistral.ai Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/mistral.ai/preview-screenshot.png) diff --git a/design-md/mistral.ai/preview-dark.html b/design-md/mistral.ai/preview-dark.html new file mode 100644 index 0000000..49d78d3 --- /dev/null +++ b/design-md/mistral.ai/preview-dark.html @@ -0,0 +1,813 @@ + + + + + +Design System Preview: Mistral AI (Dark) + + + + + + + + +
+
+ + + + + + +
+

Design System Preview:
Mistral AI

+

Warm golden tokens from the sunshine gradient design system

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Mistral Orange
+
#fa520f
+
Core brand color, primary emphasis, signal fire
+
+
+
+
+
+
Mistral Flame
+
#fb6424
+
Hover states, secondary brand moments
+
+
+
+
+
+
Block Orange
+
#ff8105
+
Gradient block system, warm pure orange
+
+
+
+
+ +
+

Sunshine Spectrum

+
+
+
+
+
Bright Yellow
+
#ffd900
+
Top of block identity gradient
+
+
+
+
+
+
Block Gold
+
#ffe295
+
Pale gold, soft background accents
+
+
+
+
+
+
Sunshine 300
+
#ffd06a
+
Subtle warm tints, secondary backgrounds
+
+
+
+
+
+
Sunshine 500
+
#ffb83e
+
Medium golden, mid-level emphasis
+
+
+
+
+
+
Sunshine 700
+
#ffa110
+
Core sunshine accent, interactive elements
+
+
+
+
+
+
Sunshine 900
+
#ff8a00
+
Deep golden amber, strong accent
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Mistral Black
+
#1f1f1f
+
Dark mode page background
+
+
+
+
+
+
Card Surface
+
#2a2a2a
+
Dark mode card background
+
+
+
+
+
+
Warm Ivory
+
#fffaeb
+
Light mode page background
+
+
+
+
+
+
Cream
+
#fff0c2
+
Primary warm surface, button backgrounds
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Pure White
+
#ffffff
+
Primary text on dark surfaces
+
+
+
+
+
+
White 70%
+
rgba(255,255,255,0.7)
+
Secondary text on dark surfaces
+
+
+
+
+
+
Mistral Black
+
#1f1f1f
+
Primary text on light surfaces
+
+
+
+
+ + +
+
Mistral Block Gradient: Yellow → Gold → Amber → Orange → Flame → Mistral Orange
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — 82px / 400 / 1.00 / -2.05px — Arial
+
+ +
+
Section Heading
+
Section Heading — 56px / 400 / 0.95 / normal — Arial
+
+ +
+
Sub-heading Large
+
Sub-heading Large — 48px / 400 / 0.95 / normal — Arial
+
+ +
+
Sub-heading
+
Sub-heading — 32px / 400 / 1.15 / normal — Arial
+
+ +
+
Card Title
+
Card Title — 30px / 400 / 1.20 / normal — Arial
+
+ +
+
Feature Title
+
Feature Title — 24px / 400 / 1.33 / normal — Arial
+
+ +
+
Body text for standard paragraphs, navigation links, and button labels. Arial delivers raw, unadorned clarity across all UI copy.
+
Body / Button — 16px / 400 / 1.50 / normal — Arial
+
+ +
+
UPPERCASE BUTTON LABEL
+
Button Uppercase — 16px / 400 / 1.50 / uppercase — Arial
+
+ +
+
Caption and metadata text for secondary links
+
Caption / Link — 14px / 400 / 1.43 / normal — Arial
+
+ +
+
SECTION LABEL TAG
+
Section Label — 14px / 400 / 2.52px / uppercase — Arial
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Cream Surface
+
+
+ +
White Solid
+
+
+ +
Ghost / Transparent
+
+
+ +
Text / Underline
+
+
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
DARK SURFACE
+

Standard Dark Card

+

Standard content card on dark surface with sharp architectural corners. Containers defined by background color shifts rather than borders.

+
+
+
GOLDEN FLOAT
+

Golden Shadow Card

+

Elevated card with the signature five-layer warm amber shadow system. The golden glow radiates warmly against the dark background.

+
+
+
BORDERED SURFACE
+

Bordered Dark Card

+

Elevated dark card with subtle golden border. Used for distinguishing content areas within dark sections.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale builds from 2px to 100px.

+ +
+
2px
+
4px
+
8px
+
10px
+
12px
+
16px
+
20px
+
24px
+
32px
+
40px
+
48px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+

Sharp, architectural geometry. Near-zero radius is the signature.

+ +
+
0px
Sharp (default)
+
0px
Accent sharp
+
0px
Elevated sharp
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
+
Flat
+
No shadow, no border. Dark page backgrounds and inline text blocks sitting directly on the Mistral Black canvas.
+
+
LEVEL 0
+
+
+
+
Golden Float
+
Five-layer cascading warm shadow with amber-tinted transparency. The golden glow radiates warmly even against the dark background.
+
+
LEVEL 1
+
+
+
+ +
+ + + diff --git a/design-md/mistral.ai/preview.html b/design-md/mistral.ai/preview.html new file mode 100644 index 0000000..a6d6f8e --- /dev/null +++ b/design-md/mistral.ai/preview.html @@ -0,0 +1,812 @@ + + + + + +Design System Preview: Mistral AI (Light) + + + + + + + + +
+
+ + + + + + +
+

Design System Preview:
Mistral AI

+

Warm golden tokens from the sunshine gradient design system

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Mistral Orange
+
#fa520f
+
Core brand color, primary emphasis, signal fire
+
+
+
+
+
+
Mistral Flame
+
#fb6424
+
Hover states, secondary brand moments
+
+
+
+
+
+
Block Orange
+
#ff8105
+
Gradient block system, warm pure orange
+
+
+
+
+ +
+

Sunshine Spectrum

+
+
+
+
+
Bright Yellow
+
#ffd900
+
Top of block identity gradient
+
+
+
+
+
+
Block Gold
+
#ffe295
+
Pale gold, soft background accents
+
+
+
+
+
+
Sunshine 300
+
#ffd06a
+
Subtle warm tints, secondary backgrounds
+
+
+
+
+
+
Sunshine 500
+
#ffb83e
+
Medium golden, mid-level emphasis
+
+
+
+
+
+
Sunshine 700
+
#ffa110
+
Core sunshine accent, interactive elements
+
+
+
+
+
+
Sunshine 900
+
#ff8a00
+
Deep golden amber, strong accent
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Warm Ivory
+
#fffaeb
+
Page background, lightest canvas
+
+
+
+
+
+
Cream
+
#fff0c2
+
Primary warm surface, button backgrounds
+
+
+
+
+
+
Pure White
+
#ffffff
+
Maximum contrast, popover surfaces
+
+
+
+
+
+
Mistral Black
+
#1f1f1f
+
Dark buttons, text, dark sections
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Mistral Black
+
#1f1f1f
+
Primary text on light surfaces
+
+
+
+
+
+
Black Tint
+
hsl(0, 0%, 24%)
+
Secondary text on light backgrounds
+
+
+
+
+
+
Pure White
+
#ffffff
+
Text on dark surfaces, CTA labels
+
+
+
+
+ + +
+
Mistral Block Gradient: Yellow → Gold → Amber → Orange → Flame → Mistral Orange
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — 82px / 400 / 1.00 / -2.05px — Arial
+
+ +
+
Section Heading
+
Section Heading — 56px / 400 / 0.95 / normal — Arial
+
+ +
+
Sub-heading Large
+
Sub-heading Large — 48px / 400 / 0.95 / normal — Arial
+
+ +
+
Sub-heading
+
Sub-heading — 32px / 400 / 1.15 / normal — Arial
+
+ +
+
Card Title
+
Card Title — 30px / 400 / 1.20 / normal — Arial
+
+ +
+
Feature Title
+
Feature Title — 24px / 400 / 1.33 / normal — Arial
+
+ +
+
Body text for standard paragraphs, navigation links, and button labels. Arial delivers raw, unadorned clarity across all UI copy.
+
Body / Button — 16px / 400 / 1.50 / normal — Arial
+
+ +
+
UPPERCASE BUTTON LABEL
+
Button Uppercase — 16px / 400 / 1.50 / uppercase — Arial
+
+ +
+
Caption and metadata text for secondary links
+
Caption / Link — 14px / 400 / 1.43 / normal — Arial
+
+ +
+
SECTION LABEL TAG
+
Section Label — 14px / 400 / 2.52px / uppercase — Arial
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Dark Solid
+
+
+ +
Cream Surface
+
+
+ +
Ghost / Transparent
+
+
+ +
Text / Underline
+
+
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
CREAM SURFACE
+

Warm Cream Card

+

Standard content card on cream background with sharp architectural corners. Containers defined by background color, not borders. The warm void breathes naturally.

+
+
+
GOLDEN FLOAT
+

Golden Shadow Card

+

Elevated card with the signature five-layer warm amber shadow system. The golden hour lighting effect makes content feel bathed in afternoon sunlight.

+
+
+
WHITE SURFACE
+

Pure White Card

+

Maximum contrast card on pure white with subtle golden border. Used for popover surfaces and moments requiring the highest visual clarity.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale builds from 2px to 100px.

+ +
+
2px
+
4px
+
8px
+
10px
+
12px
+
16px
+
20px
+
24px
+
32px
+
40px
+
48px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+

Sharp, architectural geometry. Near-zero radius is the signature.

+ +
+
0px
Sharp (default)
+
0px
Accent sharp
+
0px
Elevated sharp
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

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

Design System
Inspired by Notion

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Notion Black
rgba(0,0,0,0.95)
Primary text, headings
+
Pure White
#ffffff
Page background
+
Notion Blue
#0075de
Primary CTA, links
+
+ +
Warm Neutrals
+
+
Warm White
#f6f5f4
Surface tint, sections
+
Warm Dark
#31302e
Dark surfaces
+
Warm Gray 500
#615d59
Secondary text
+
Warm Gray 300
#a39e98
Placeholder, muted
+
+ +
Semantic Accents
+
+
Teal
#2a9d99
Success states
+
Green
#1aae39
Confirmation
+
Orange
#dd5b00
Warning
+
Pink
#ff64c8
Decorative accent
+
Purple
#391c57
Premium features
+
Brown
#523410
Earthy accent
+
+ +
Interactive
+
+
Active Blue
#005bab
Button active state
+
Focus Blue
#097fe8
Focus ring
+
Deep Navy
#213183
Brand secondary
+
Badge Bg
#f2f9ff
Pill badge surface
+
+
+ +
+
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 64px / 700 / 1.00 / -2.125px / Inter
+
Display Secondary
Display Secondary -- 54px / 700 / 1.04 / -1.875px / Inter
+
Section Heading
Section Heading -- 48px / 700 / 1.00 / -1.5px / Inter
+
Sub-heading Large
Sub-heading Large -- 40px / 700 / 1.50 / normal / Inter
+
Sub-heading
Sub-heading -- 26px / 700 / 1.23 / -0.625px / Inter
+
Card Title
Card Title -- 22px / 700 / 1.27 / -0.25px / Inter
+
Body Large -- Your workspace for docs, projects, and knowledge. All in one place.
Body Large -- 20px / 600 / 1.40 / -0.125px / Inter
+
Body Medium -- Navigation and emphasized text
Body Medium -- 16px / 500 / 1.50 / Inter
+
Body -- Standard reading text for articles and descriptions
Body -- 16px / 400 / 1.50 / Inter
+
Nav / Button Label
Nav / Button -- 15px / 600 / 1.33 / Inter
+
Caption -- Metadata and secondary labels
Caption -- 14px / 500 / 1.43 / Inter
+
Badge / Micro Label
Badge -- 12px / 600 / 1.33 / 0.125px / Inter
+
+
+ +
+ +
+ +

Button Variants

+
+
Get Notion free
Primary Blue
+ +
New
Pill Badge
+
Available
Teal Badge
+
Warning
Orange Badge
+
Confirmed
Green Badge
+
+
+ +
+
+ +

Card Examples

+
+
+
Workspace
+

Custom Agents

+

Build and deploy AI agents tailored to your team's workflow. Automate tasks, answer questions, and streamline processes.

+
+
+
Productivity
+

Connected Wikis

+

Centralize team knowledge in interconnected wikis. Keep documentation organized and always up to date with real-time collaboration.

+
+
+
Projects
+

Team Projects

+

Manage projects with flexible views: boards, timelines, lists, and calendars. Everything your team needs, all in one workspace.

+
+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (blue ring)
+
Error (orange ring)
+
+
+ +
+ +
+
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
12
+
14
+
16
+
24
+
32
+
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
4px
Buttons, inputs
+
5px
Links, menus
+
8px
Small cards
+
12px
Cards
+
16px
Hero cards
+
9999px
Badges
+
50%
Avatars
+
+
+ +
+ +
+
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Whisper
1px solid rgba(255,255,255,0.1)
+
Level 2: Card
4-layer stack
+
Level 3: Deep
5-layer stack, 52px blur
+
Focus
2px solid focus ring
+
+
+
+ + + + + diff --git a/design-md/notion/preview.html b/design-md/notion/preview.html new file mode 100644 index 0000000..23b784a --- /dev/null +++ b/design-md/notion/preview.html @@ -0,0 +1,366 @@ + + + + + +Design System Preview: Notion (Light) + + + + + + + + + +
+

Design System
Inspired by Notion

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Notion Black
rgba(0,0,0,0.95)
Primary text, headings
+
Pure White
#ffffff
Page background
+
Notion Blue
#0075de
Primary CTA, links
+
+ +
Warm Neutrals
+
+
Warm White
#f6f5f4
Surface tint, sections
+
Warm Dark
#31302e
Dark surfaces
+
Warm Gray 500
#615d59
Secondary text
+
Warm Gray 300
#a39e98
Placeholder, muted
+
+ +
Semantic Accents
+
+
Teal
#2a9d99
Success states
+
Green
#1aae39
Confirmation
+
Orange
#dd5b00
Warning
+
Pink
#ff64c8
Decorative accent
+
Purple
#391c57
Premium features
+
Brown
#523410
Earthy accent
+
+ +
Interactive
+
+
Active Blue
#005bab
Button active state
+
Focus Blue
#097fe8
Focus ring
+
Deep Navy
#213183
Brand secondary
+
Badge Bg
#f2f9ff
Pill badge surface
+
+
+ +
+
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 64px / 700 / 1.00 / -2.125px / Inter
+
Display Secondary
Display Secondary -- 54px / 700 / 1.04 / -1.875px / Inter
+
Section Heading
Section Heading -- 48px / 700 / 1.00 / -1.5px / Inter
+
Sub-heading Large
Sub-heading Large -- 40px / 700 / 1.50 / normal / Inter
+
Sub-heading
Sub-heading -- 26px / 700 / 1.23 / -0.625px / Inter
+
Card Title
Card Title -- 22px / 700 / 1.27 / -0.25px / Inter
+
Body Large -- Your workspace for docs, projects, and knowledge. All in one place.
Body Large -- 20px / 600 / 1.40 / -0.125px / Inter
+
Body Medium -- Navigation and emphasized text
Body Medium -- 16px / 500 / 1.50 / Inter
+
Body -- Standard reading text for articles and descriptions
Body -- 16px / 400 / 1.50 / Inter
+
Nav / Button Label
Nav / Button -- 15px / 600 / 1.33 / Inter
+
Caption -- Metadata and secondary labels
Caption -- 14px / 500 / 1.43 / Inter
+
Badge / Micro Label
Badge -- 12px / 600 / 1.33 / 0.125px / Inter
+
+
+ +
+ +
+ +

Button Variants

+
+
Get Notion free
Primary Blue
+ +
New
Pill Badge
+
Available
Teal Badge
+
Warning
Orange Badge
+
Confirmed
Green Badge
+
+
+ +
+
+ +

Card Examples

+
+
+
Workspace
+

Custom Agents

+

Build and deploy AI agents tailored to your team's workflow. Automate tasks, answer questions, and streamline processes.

+
+
+
Productivity
+

Connected Wikis

+

Centralize team knowledge in interconnected wikis. Keep documentation organized and always up to date with real-time collaboration.

+
+
+
Projects
+

Team Projects

+

Manage projects with flexible views: boards, timelines, lists, and calendars. Everything your team needs, all in one workspace.

+
+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (blue ring)
+
Error (orange ring)
+
+
+ +
+ +
+
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
12
+
14
+
16
+
24
+
32
+
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
4px
Buttons, inputs
+
5px
Links, menus
+
8px
Small cards
+
12px
Cards
+
16px
Hero cards
+
9999px
Badges
+
50%
Avatars
+
+
+ +
+ +
+
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Whisper
1px solid rgba(0,0,0,0.1)
+
Level 2: Card
4-layer stack, max 0.04
+
Level 3: Deep
5-layer stack, 52px blur
+
Focus
2px solid focus ring
+
+
+
+ + + + + diff --git a/design-md/nvidia/DESIGN.md b/design-md/nvidia/DESIGN.md new file mode 100644 index 0000000..8b60922 --- /dev/null +++ b/design-md/nvidia/DESIGN.md @@ -0,0 +1,293 @@ +# Design System: NVIDIA + +## 1. Visual Theme & Atmosphere + +NVIDIA's website is a high-contrast, technology-forward experience that communicates raw computational power through design restraint. The page is built on a stark black (`#000000`) and white (`#ffffff`) foundation, punctuated by NVIDIA's signature green (`#76b900`) -- a color so specific it functions as a brand fingerprint. This is not the lush green of nature; it's the electric, lime-shifted green of GPU-rendered light, a color that sits between chartreuse and kelly green and immediately signals "NVIDIA" to anyone in technology. + +The custom NVIDIA-EMEA font family (with Arial and Helvetica fallbacks) creates a clean, industrial typographic voice. Headings at 36px bold with tight 1.25 line-height create dense, authoritative blocks of text. The font lacks the geometric playfulness of Silicon Valley sans-serifs -- it's European, pragmatic, and engineering-focused. Body text runs at 15-16px, comfortable for reading but not generous, maintaining the sense that screen real estate is optimized like GPU memory. + +What distinguishes NVIDIA's design from other dark-background tech sites is the disciplined use of the green accent. The `#76b900` appears in borders (`2px solid #76b900`), link underlines (`underline 2px rgb(118, 185, 0)`), and CTAs -- but never as backgrounds or large surface areas on the main content. The green is a signal, not a surface. Combined with a deep shadow system (`rgba(0, 0, 0, 0.3) 0px 0px 5px`) and minimal border radius (1-2px), the overall effect is of precision engineering hardware rendered in pixels. + +**Key Characteristics:** +- NVIDIA Green (`#76b900`) as pure accent -- borders, underlines, and interactive highlights only +- Black (`#000000`) dominant background with white (`#ffffff`) text on dark sections +- NVIDIA-EMEA custom font with Arial/Helvetica fallback -- industrial, European, clean +- Tight line-heights (1.25 for headings) creating dense, authoritative text blocks +- Minimal border radius (1-2px) -- sharp, engineered corners throughout +- Green-bordered buttons (`2px solid #76b900`) as primary interactive pattern +- Font Awesome 6 Pro/Sharp icon system at weight 900 for sharp iconography +- Multi-framework architecture (PrimeReact, Fluent UI, Element Plus) enabling rich interactive components + +## 2. Color Palette & Roles + +### Primary Brand +- **NVIDIA Green** (`#76b900`): The signature -- borders, link underlines, CTA outlines, active indicators. Never used as large surface fills. +- **True Black** (`#000000`): Primary page background, text on light surfaces, dominant tone. +- **Pure White** (`#ffffff`): Text on dark backgrounds, light section backgrounds, card surfaces. + +### Extended Brand Palette +- **NVIDIA Green Light** (`#bff230`): Bright lime accent for highlights and hover states. +- **Orange 400** (`#df6500`): Warm accent for alerts, featured badges, or energy-related contexts. +- **Yellow 300** (`#ef9100`): Secondary warm accent, product category highlights. +- **Yellow 050** (`#feeeb2`): Light warm surface for callout backgrounds. + +### Status & Semantic +- **Red 500** (`#e52020`): Error states, destructive actions, critical alerts. +- **Red 800** (`#650b0b`): Deep red for severe warning backgrounds. +- **Green 500** (`#3f8500`): Success states, positive indicators (darker than brand green). +- **Blue 700** (`#0046a4`): Informational accents, link hover alternative. + +### Decorative +- **Purple 800** (`#4d1368`): Deep purple for gradient ends, premium/AI contexts. +- **Purple 100** (`#f9d4ff`): Light purple surface tint. +- **Fuchsia 700** (`#8c1c55`): Rich accent for special promotions or featured content. + +### Neutral Scale +- **Gray 300** (`#a7a7a7`): Muted text, disabled labels. +- **Gray 400** (`#898989`): Secondary text, metadata. +- **Gray 500** (`#757575`): Tertiary text, placeholders, footers. +- **Gray Border** (`#5e5e5e`): Subtle borders, divider lines. +- **Near Black** (`#1a1a1a`): Dark surfaces, card backgrounds on black pages. + +### Interactive States +- **Link Default (dark bg)** (`#ffffff`): White links on dark backgrounds. +- **Link Default (light bg)** (`#000000`): Black links with green underline on light backgrounds. +- **Link Hover** (`#3860be`): Blue shift on hover across all link variants. +- **Button Hover** (`#1eaedb`): Teal highlight for button hover states. +- **Button Active** (`#007fff`): Bright blue for active/pressed button states. +- **Focus Ring** (`#000000 solid 2px`): Black outline for keyboard focus. + +### Shadows & Depth +- **Card Shadow** (`rgba(0, 0, 0, 0.3) 0px 0px 5px 0px`): Subtle ambient shadow for elevated cards. + +## 3. Typography Rules + +### Font Family +- **Primary**: `NVIDIA-EMEA`, with fallbacks: `Arial, Helvetica, sans-serif` +- **Icon Font**: `Font Awesome 6 Pro` (weight 900 for solid icons, 700 for regular) +- **Icon Sharp**: `Font Awesome 6 Sharp` (weight 300 for light icons, 400 for regular) + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Hero | NVIDIA-EMEA | 36px (2.25rem) | 700 | 1.25 (tight) | normal | Maximum impact headlines | +| Section Heading | NVIDIA-EMEA | 24px (1.50rem) | 700 | 1.25 (tight) | normal | Section titles, card headings | +| Sub-heading | NVIDIA-EMEA | 22px (1.38rem) | 400 | 1.75 (relaxed) | normal | Feature descriptions, subtitles | +| Card Title | NVIDIA-EMEA | 20px (1.25rem) | 700 | 1.25 (tight) | normal | Card and module headings | +| Body Large | NVIDIA-EMEA | 18px (1.13rem) | 700 | 1.67 (relaxed) | normal | Emphasized body, lead paragraphs | +| Body | NVIDIA-EMEA | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text | +| Body Bold | NVIDIA-EMEA | 16px (1.00rem) | 700 | 1.50 | normal | Strong labels, nav items | +| Body Small | NVIDIA-EMEA | 15px (0.94rem) | 400 | 1.67 (relaxed) | normal | Secondary content, descriptions | +| Body Small Bold | NVIDIA-EMEA | 15px (0.94rem) | 700 | 1.50 | normal | Emphasized secondary content | +| Button Large | NVIDIA-EMEA | 18px (1.13rem) | 700 | 1.25 (tight) | normal | Primary CTA buttons | +| Button | NVIDIA-EMEA | 16px (1.00rem) | 700 | 1.25 (tight) | normal | Standard buttons | +| Button Compact | NVIDIA-EMEA | 14.4px (0.90rem) | 700 | 1.00 (tight) | 0.144px | Small/compact buttons | +| Link | NVIDIA-EMEA | 14px (0.88rem) | 700 | 1.43 | normal | Navigation links | +| Link Uppercase | NVIDIA-EMEA | 14px (0.88rem) | 700 | 1.43 | normal | `text-transform: uppercase`, nav labels | +| Caption | NVIDIA-EMEA | 14px (0.88rem) | 600 | 1.50 | normal | Metadata, timestamps | +| Caption Small | NVIDIA-EMEA | 12px (0.75rem) | 400 | 1.25 (tight) | normal | Fine print, legal | +| Micro Label | NVIDIA-EMEA | 10px (0.63rem) | 700 | 1.50 | normal | `text-transform: uppercase`, tiny badges | +| Micro | NVIDIA-EMEA | 11px (0.69rem) | 700 | 1.00 (tight) | normal | Smallest UI text | + +### Principles +- **Bold as the default voice**: NVIDIA leans heavily on weight 700 for headings, buttons, links, and labels. The 400 weight is reserved for body text and descriptions -- everything else is bold, projecting confidence and authority. +- **Tight headings, relaxed body**: Heading line-height is consistently 1.25 (tight), while body text relaxes to 1.50-1.67. This contrast creates visual density at the top of content blocks and comfortable readability in paragraphs. +- **Uppercase for navigation**: Link labels use `text-transform: uppercase` with weight 700, creating a navigation voice that reads like hardware specification labels. +- **No decorative tracking**: Letter-spacing is normal throughout, except for compact buttons (0.144px). The font itself carries the industrial character without manipulation. + +## 4. Component Stylings + +### Buttons + +**Primary (Green Border)** +- Background: `transparent` +- Text: `#000000` +- Padding: 11px 13px +- Border: `2px solid #76b900` +- Radius: 2px +- Font: 16px weight 700 +- Hover: background `#1eaedb`, text `#ffffff` +- Active: background `#007fff`, text `#ffffff`, border `1px solid #003eff`, scale(1) +- Focus: background `#1eaedb`, text `#ffffff`, outline `#000000 solid 2px`, opacity 0.9 +- Use: Primary CTA ("Learn More", "Explore Solutions") + +**Secondary (Green Border Thin)** +- Background: transparent +- Border: `1px solid #76b900` +- Radius: 2px +- Use: Secondary actions, alternative CTAs + +**Compact / Inline** +- Font: 14.4px weight 700 +- Letter-spacing: 0.144px +- Line-height: 1.00 +- Use: Inline CTAs, compact navigation + +### Cards & Containers +- Background: `#ffffff` (light) or `#1a1a1a` (dark sections) +- Border: none (clean edges) or `1px solid #5e5e5e` +- Radius: 2px +- Shadow: `rgba(0, 0, 0, 0.3) 0px 0px 5px 0px` for elevated cards +- Hover: shadow intensification +- Padding: 16-24px internal + +### Links +- **On Dark Background**: `#ffffff`, no underline, hover shifts to `#3860be` +- **On Light Background**: `#000000` or `#1a1a1a`, underline `2px solid #76b900`, hover shifts to `#3860be`, underline removed +- **Green Links**: `#76b900`, hover shifts to `#3860be` +- **Muted Links**: `#666666`, hover shifts to `#3860be` + +### Navigation +- Dark black background (`#000000`) +- Logo left-aligned, prominent NVIDIA wordmark +- Links: NVIDIA-EMEA 14px weight 700 uppercase, `#ffffff` +- Hover: color shift, no underline change +- Mega-menu dropdowns for product categories +- Sticky on scroll with backdrop + +### Image Treatment +- Product/GPU renders as hero images, often full-width +- Screenshot images with subtle shadow for depth +- Green gradient overlays on dark hero sections +- Circular avatar containers with 50% radius + +### Distinctive Components + +**Product Cards** +- Clean white or dark card with minimal radius (2px) +- Green accent border or underline on title +- Bold heading + lighter description pattern +- CTA with green border at bottom + +**Tech Spec Tables** +- Industrial grid layouts +- Alternating row backgrounds (subtle gray shift) +- Bold labels, regular values +- Green highlights for key metrics + +**Cookie/Consent Banner** +- Fixed bottom positioning +- Rounded buttons (2px radius) +- Gray border treatments + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 2px, 3px, 4px, 5px, 6px, 7px, 8px, 9px, 10px, 11px, 12px, 13px, 15px +- Primary padding values: 8px, 11px, 13px, 16px, 24px, 32px +- Section spacing: 48-80px vertical padding + +### Grid & Container +- Max content width: approximately 1200px (contained) +- Full-width hero sections with contained text +- Feature sections: 2-3 column grids for product cards +- Single-column for article/blog content +- Sidebar layouts for documentation + +### Whitespace Philosophy +- **Purposeful density**: NVIDIA uses tighter spacing than typical SaaS sites, reflecting the density of technical content. White space exists to separate concepts, not to create luxury emptiness. +- **Section rhythm**: Dark sections alternate with white sections, using background color (not just spacing) to separate content blocks. +- **Card density**: Product cards sit close together with 16-20px gaps, creating a catalog feel rather than a gallery feel. + +### Border Radius Scale +- Micro (1px): Inline spans, tiny elements +- Standard (2px): Buttons, cards, containers, inputs -- the default for nearly everything +- Circle (50%): Avatar images, circular tab indicators + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | Page backgrounds, inline text | +| Subtle (Level 1) | `rgba(0,0,0,0.3) 0px 0px 5px 0px` | Standard cards, modals | +| Border (Level 1b) | `1px solid #5e5e5e` | Content dividers, section borders | +| Green accent (Level 2) | `2px solid #76b900` | Active elements, CTAs, selected items | +| Focus (Accessibility) | `2px solid #000000` outline | Keyboard focus ring | + +**Shadow Philosophy**: NVIDIA's depth system is minimal and utilitarian. There is essentially one shadow value -- a 5px ambient blur at 30% opacity -- used sparingly for cards and modals. The primary depth signal is not shadow but _color contrast_: black backgrounds next to white sections, green borders on black surfaces. This creates hardware-like visual layering where depth comes from material difference, not simulated light. + +### Decorative Depth +- Green gradient washes behind hero content +- Dark-to-darker gradients (black to near-black) for section transitions +- No glassmorphism or blur effects -- clarity over atmosphere + +## 7. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile Small | <375px | Compact single column, reduced padding | +| Mobile | 375-425px | Standard mobile layout | +| Mobile Large | 425-600px | Wider mobile, some 2-col hints | +| Tablet Small | 600-768px | 2-column grids begin | +| Tablet | 768-1024px | Full card grids, expanded nav | +| Desktop | 1024-1350px | Standard desktop layout | +| Large Desktop | >1350px | Maximum content width, generous margins | + +### Touch Targets +- Buttons use 11px 13px padding for comfortable tap targets +- Navigation links at 14px uppercase with adequate spacing +- Green-bordered buttons provide high-contrast touch targets on dark backgrounds +- Mobile: hamburger menu collapse with full-screen overlay + +### Collapsing Strategy +- Hero: 36px heading scales down proportionally +- Navigation: full horizontal nav collapses to hamburger menu at ~1024px +- Product cards: 3-column to 2-column to single column stacked +- Footer: multi-column grid collapses to single stacked column +- Section spacing: 64-80px reduces to 32-48px on mobile +- Images: maintain aspect ratio, scale to container width + +### Image Behavior +- GPU/product renders maintain high resolution at all sizes +- Hero images scale proportionally with viewport +- Card images use consistent aspect ratios +- Full-bleed dark sections maintain edge-to-edge treatment + +## 8. Responsive Behavior (Extended) + +### Typography Scaling +- Display 36px scales to ~24px on mobile +- Section headings 24px scale to ~20px on mobile +- Body text maintains 15-16px across all breakpoints +- Button text maintains 16px for consistent tap targets + +### Dark/Light Section Strategy +- Dark sections (black bg, white text) alternate with light sections (white bg, black text) +- The green accent remains consistent across both surface types +- On dark: links are white, underlines are green +- On light: links are black, underlines are green +- This alternation creates natural scroll rhythm and content grouping + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary accent: NVIDIA Green (`#76b900`) +- Background dark: True Black (`#000000`) +- Background light: Pure White (`#ffffff`) +- Heading text (dark bg): White (`#ffffff`) +- Heading text (light bg): Black (`#000000`) +- Body text (light bg): Black (`#000000`) or Near Black (`#1a1a1a`) +- Body text (dark bg): White (`#ffffff`) or Gray 300 (`#a7a7a7`) +- Link hover: Blue (`#3860be`) +- Border accent: `2px solid #76b900` +- Button hover: Teal (`#1eaedb`) + +### Example Component Prompts +- "Create a hero section on black background. Headline at 36px NVIDIA-EMEA weight 700, line-height 1.25, color #ffffff. Subtitle at 18px weight 400, line-height 1.67, color #a7a7a7. CTA button with transparent background, 2px solid #76b900 border, 2px radius, 11px 13px padding, text #ffffff. Hover: background #1eaedb, text white." +- "Design a product card: white background, 2px border-radius, box-shadow rgba(0,0,0,0.3) 0px 0px 5px. Title at 20px NVIDIA-EMEA weight 700, line-height 1.25, color #000000. Body at 15px weight 400, line-height 1.67, color #757575. Green underline accent on title: border-bottom 2px solid #76b900." +- "Build a navigation bar: #000000 background, sticky top. NVIDIA logo left-aligned. Links at 14px NVIDIA-EMEA weight 700 uppercase, color #ffffff. Hover: color #3860be. Green-bordered CTA button right-aligned." +- "Create a dark feature section: #000000 background. Section label at 14px weight 700 uppercase, color #76b900. Heading at 24px weight 700, color #ffffff. Description at 16px weight 400, color #a7a7a7. Three product cards in a row with 20px gap." +- "Design a footer: #000000 background. Multi-column layout with link groups. Links at 14px weight 400, color #a7a7a7. Hover: color #76b900. Bottom bar with legal text at 12px, color #757575." + +### Iteration Guide +1. Always use `#76b900` as accent, never as a background fill -- it's a signal color for borders, underlines, and highlights +2. Buttons are transparent with green borders by default -- filled backgrounds appear only on hover/active states +3. Weight 700 is the dominant voice for all interactive and heading elements; 400 is only for body paragraphs +4. Border radius is 2px for everything -- this sharp, minimal rounding is core to the industrial aesthetic +5. Dark sections use white text; light sections use black text -- green accent works identically on both +6. Link hover is always `#3860be` (blue) regardless of the link's default color +7. Line-height 1.25 for headings, 1.50-1.67 for body text -- maintain this contrast for visual hierarchy +8. Navigation uses uppercase 14px bold -- this hardware-label typography is part of the brand voice diff --git a/design-md/nvidia/README.md b/design-md/nvidia/README.md new file mode 100644 index 0000000..8139206 --- /dev/null +++ b/design-md/nvidia/README.md @@ -0,0 +1,25 @@ +# Nvidia — Design System + +> Design.md extracted from the public [nvidia](https://nvidia.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 Nvidia 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 +![Nvidia Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/nvidia/preview-dark-screenshot.png) + +### Light Mode +![Nvidia Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/nvidia/preview-screenshot.png) diff --git a/design-md/nvidia/preview-dark.html b/design-md/nvidia/preview-dark.html new file mode 100644 index 0000000..44a8d0e --- /dev/null +++ b/design-md/nvidia/preview-dark.html @@ -0,0 +1,376 @@ + + + + + +Design System Preview: NVIDIA (Dark) + + + + + + + + +
Dark Mode
+ +
+

Design System
Inspired by NVIDIA

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value -- visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary Brand
+
+
NVIDIA Green
#76b900
Accent, borders, CTAs
+
True Black
#000000
Primary background
+
Pure White
#ffffff
Light backgrounds, text
+
Green Light
#bff230
Bright accents
+
+ +
Extended Palette
+
+
Orange 400
#df6500
Warm accent
+
Yellow 300
#ef9100
Secondary warm
+
Purple 800
#4d1368
AI / Premium
+
Fuchsia 700
#8c1c55
Promotions
+
Blue 700
#0046a4
Informational
+
+ +
Status
+
+
Red 500
#e52020
Error, destructive
+
Green 500
#3f8500
Success
+
Yellow 050
#feeeb2
Warning surface
+
Purple 100
#f9d4ff
Info surface
+
+ +
Neutral Scale
+
+
Near Black
#1a1a1a
Dark surfaces
+
Gray Border
#5e5e5e
Borders, dividers
+
Gray 500
#757575
Tertiary text
+
Gray 400
#898989
Secondary text
+
Gray 300
#a7a7a7
Muted text
+
+ +
Interactive
+
+
Link Hover
#3860be
Hover state
+
Button Hover
#1eaedb
CTA hover
+
Button Active
#007fff
CTA active/pressed
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 36px / 700 / 1.25 / NVIDIA-EMEA
+
Section Heading
Section Heading -- 24px / 700 / 1.25 / NVIDIA-EMEA
+
Sub-heading -- Feature descriptions and subtitles
Sub-heading -- 22px / 400 / 1.75 / NVIDIA-EMEA
+
Card Title
Card Title -- 20px / 700 / 1.25 / NVIDIA-EMEA
+
Body Large -- Emphasized lead paragraph text for introductions
Body Large -- 18px / 700 / 1.67 / NVIDIA-EMEA
+
Body -- Standard reading text for descriptions and content paragraphs across the site.
Body -- 16px / 400 / 1.50 / NVIDIA-EMEA
+
Body Bold -- Strong labels and nav items
Body Bold -- 16px / 700 / 1.50 / NVIDIA-EMEA
+
Body Small -- Secondary content and descriptions for product cards.
Body Small -- 15px / 400 / 1.67 / NVIDIA-EMEA
+
Link Uppercase Label
Link Uppercase -- 14px / 700 / 1.43 / uppercase / NVIDIA-EMEA
+
Caption -- Metadata and timestamps
Caption -- 14px / 600 / 1.50 / NVIDIA-EMEA
+
Caption Small -- Fine print and legal text
Caption Small -- 12px / 400 / 1.25 / NVIDIA-EMEA
+
GPU ACCELERATED
Micro Label -- 10px / 700 / uppercase / NVIDIA-EMEA
+
+ +
+ +
+ +

Button Variants

+
+ +
Documentation
Secondary
+
Hover State
Hover
+
Active State
Active
+
+
+
Learn More >
Compact Link
+
NEW
Micro Badge
+
AI
Category Badge
+
+
+ +
+ +
+ +

Card Examples

+
+
+
GPU
+

GeForce RTX Series

+

The ultimate in PC gaming performance. Ray tracing, DLSS, and AI-powered graphics for immersive experiences.

+
+
+
AI
+

NVIDIA AI Enterprise

+

End-to-end AI software platform that accelerates data science pipelines and streamlines development.

+
+
+
DATA CENTER
+

DGX Systems

+

Purpose-built AI infrastructure integrating hardware and software for the most demanding workloads.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (green border)
+
Error (red border)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
10
+
12
+
16
+
24
+
32
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
1px
Inline spans
+
2px
Buttons, cards
+
50%
Avatars, icons
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Card
rgba(0,0,0,0.6) 0 0 8px
+
Level 1b: Border
1px solid #333
+
Level 2: Accent
2px solid #76b900
+
Level 3: Elevated
Hover intensified
+
Focus
2px solid outline
+
+
+ + + + + diff --git a/design-md/nvidia/preview.html b/design-md/nvidia/preview.html new file mode 100644 index 0000000..21416fc --- /dev/null +++ b/design-md/nvidia/preview.html @@ -0,0 +1,368 @@ + + + + + +Design System Preview: NVIDIA (Light) + + + + + + + + + +
+

Design System
Inspired by NVIDIA

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value -- visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary Brand
+
+
NVIDIA Green
#76b900
Accent, borders, CTAs
+
True Black
#000000
Primary background
+
Pure White
#ffffff
Light backgrounds, text
+
Green Light
#bff230
Bright accents
+
+ +
Extended Palette
+
+
Orange 400
#df6500
Warm accent
+
Yellow 300
#ef9100
Secondary warm
+
Purple 800
#4d1368
AI / Premium
+
Fuchsia 700
#8c1c55
Promotions
+
Blue 700
#0046a4
Informational
+
+ +
Status
+
+
Red 500
#e52020
Error, destructive
+
Green 500
#3f8500
Success
+
Yellow 050
#feeeb2
Warning surface
+
Purple 100
#f9d4ff
Info surface
+
+ +
Neutral Scale
+
+
Near Black
#1a1a1a
Dark surfaces
+
Gray Border
#5e5e5e
Borders, dividers
+
Gray 500
#757575
Tertiary text
+
Gray 400
#898989
Secondary text
+
Gray 300
#a7a7a7
Muted text
+
+ +
Interactive
+
+
Link Hover
#3860be
Hover state
+
Button Hover
#1eaedb
CTA hover
+
Button Active
#007fff
CTA active/pressed
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 36px / 700 / 1.25 / NVIDIA-EMEA
+
Section Heading
Section Heading -- 24px / 700 / 1.25 / NVIDIA-EMEA
+
Sub-heading -- Feature descriptions and subtitles
Sub-heading -- 22px / 400 / 1.75 / NVIDIA-EMEA
+
Card Title
Card Title -- 20px / 700 / 1.25 / NVIDIA-EMEA
+
Body Large -- Emphasized lead paragraph text for introductions
Body Large -- 18px / 700 / 1.67 / NVIDIA-EMEA
+
Body -- Standard reading text for descriptions and content paragraphs across the site.
Body -- 16px / 400 / 1.50 / NVIDIA-EMEA
+
Body Bold -- Strong labels and nav items
Body Bold -- 16px / 700 / 1.50 / NVIDIA-EMEA
+
Body Small -- Secondary content and descriptions for product cards.
Body Small -- 15px / 400 / 1.67 / NVIDIA-EMEA
+
Link Uppercase Label
Link Uppercase -- 14px / 700 / 1.43 / uppercase / NVIDIA-EMEA
+
Caption -- Metadata and timestamps
Caption -- 14px / 600 / 1.50 / NVIDIA-EMEA
+
Caption Small -- Fine print and legal text
Caption Small -- 12px / 400 / 1.25 / NVIDIA-EMEA
+
GPU ACCELERATED
Micro Label -- 10px / 700 / uppercase / NVIDIA-EMEA
+
+ +
+ +
+ +

Button Variants

+
+
Explore Solutions
Primary (Light BG)
+
Explore GPUs
Primary (Dark BG)
+
Documentation
Secondary
+
Hover State
Hover
+
Active State
Active
+
+
+
Learn More >
Compact Link
+
NEW
Micro Badge
+
AI
Category Badge
+
+
+ +
+ +
+ +

Card Examples

+
+
+
GPU
+

GeForce RTX Series

+

The ultimate in PC gaming performance. Ray tracing, DLSS, and AI-powered graphics for immersive experiences.

+
+
+
AI
+

NVIDIA AI Enterprise

+

End-to-end AI software platform that accelerates data science pipelines and streamlines development.

+
+
+
DATA CENTER
+

DGX Systems

+

Purpose-built AI infrastructure integrating hardware and software for the most demanding workloads.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (green border)
+
Error (red border)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
10
+
12
+
16
+
24
+
32
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
1px
Inline spans
+
2px
Buttons, cards
+
50%
Avatars, icons
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Card
rgba(0,0,0,0.3) 0 0 5px
+
Level 1b: Border
1px solid #5e5e5e
+
Level 2: Accent
2px solid #76b900
+
Level 3: Elevated
Hover intensified
+
Focus
2px solid #000 outline
+
+
+ + + + + diff --git a/design-md/ollama/DESIGN.md b/design-md/ollama/DESIGN.md new file mode 100644 index 0000000..e36fd8e --- /dev/null +++ b/design-md/ollama/DESIGN.md @@ -0,0 +1,267 @@ +# Design System: Ollama + +## 1. Visual Theme & Atmosphere + +Ollama's interface is radical minimalism taken to its logical conclusion — a pure-white void where content floats without decoration, shadow, or color. The design philosophy mirrors the product itself: strip away everything unnecessary until only the essential tool remains. This is the digital equivalent of a Dieter Rams object — every pixel earns its place, and the absence of design IS the design. + +The entire page exists in pure grayscale. There is zero chromatic color in the interface — no brand blue, no accent green, no semantic red. The only colors that exist are shades between pure black (`#000000`) and pure white (`#ffffff`), creating a monochrome environment that lets the user's mental model of "open models" remain uncolored by brand opinion. The Ollama llama mascot, rendered in simple black line art, is the only illustration — and even it's monochrome. + +What makes Ollama distinctive is the combination of SF Pro Rounded (Apple's rounded system font) with an exclusively pill-shaped geometry (9999px radius on everything interactive). The rounded letterforms + rounded buttons + rounded containers create a cohesive "softness language" that makes a developer CLI tool feel approachable and friendly rather than intimidating. This is minimalism with warmth — not cold Swiss-style grid minimalism, but the kind where the edges are literally softened. + +**Key Characteristics:** +- Pure white canvas with zero chromatic color — completely grayscale +- SF Pro Rounded headlines creating a distinctively Apple-like softness +- Binary border-radius system: 12px (containers) or 9999px (everything interactive) +- Zero shadows — depth comes exclusively from background color shifts and borders +- Pill-shaped geometry on all interactive elements (buttons, tabs, inputs, tags) +- The Ollama llama as the sole illustration — black line art, no color +- Extreme content restraint — the homepage is short, focused, and uncluttered + +## 2. Color Palette & Roles + +### Primary +- **Pure Black** (`#000000`): Primary headlines, primary links, and the darkest text. The only "color" that demands attention. +- **Near Black** (`#262626`): Button text on light surfaces, secondary headline weight. +- **Darkest Surface** (`#090909`): The darkest possible surface — barely distinguishable from pure black, used for footer or dark containers. + +### Surface & Background +- **Pure White** (`#ffffff`): The primary page background — not off-white, not cream, pure white. Button surfaces for secondary actions. +- **Snow** (`#fafafa`): The subtlest possible surface distinction from white — used for section backgrounds and barely-elevated containers. +- **Light Gray** (`#e5e5e5`): Button backgrounds, borders, and the primary containment color. The workhorse neutral. + +### Neutrals & Text +- **Stone** (`#737373`): Secondary body text, footer links, and de-emphasized content. The primary "muted" tone. +- **Mid Gray** (`#525252`): Emphasized secondary text, slightly darker than Stone. +- **Silver** (`#a3a3a3`): Tertiary text, placeholders, and deeply de-emphasized metadata. +- **Button Text Dark** (`#404040`): Specific to white-surface button text. + +### Semantic & Accent +- **Ring Blue** (`#3b82f6` at 50%): The ONLY non-gray color in the entire system — Tailwind's default focus ring, used exclusively for keyboard accessibility. Never visible in normal interaction flow. +- **Border Light** (`#d4d4d4`): A slightly darker gray for white-surface button borders. + +### Gradient System +- **None.** Ollama uses absolutely no gradients. Visual separation comes from flat color blocks and single-pixel borders. This is a deliberate, almost philosophical design choice. + +## 3. Typography Rules + +### Font Family +- **Display**: `SF Pro Rounded`, with fallbacks: `system-ui, -apple-system, system-ui` +- **Body / UI**: `ui-sans-serif`, with fallbacks: `system-ui, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji` +- **Monospace**: `ui-monospace`, with fallbacks: `SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New` + +*Note: SF Pro Rounded is Apple's system font — it renders with rounded terminals on macOS/iOS and falls back to the system sans-serif on other platforms.* + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display / Hero | SF Pro Rounded | 48px (3rem) | 500 | 1.00 (tight) | normal | Maximum impact, rounded letterforms | +| Section Heading | SF Pro Rounded | 36px (2.25rem) | 500 | 1.11 (tight) | normal | Feature section titles | +| Sub-heading | SF Pro Rounded / ui-sans-serif | 30px (1.88rem) | 400–500 | 1.20 (tight) | normal | Card headings, feature names | +| Card Title | ui-sans-serif | 24px (1.5rem) | 400 | 1.33 | normal | Medium emphasis headings | +| Body Large | ui-sans-serif | 18px (1.13rem) | 400–500 | 1.56 | normal | Hero descriptions, button text | +| Body / Link | ui-sans-serif | 16px (1rem) | 400–500 | 1.50 | normal | Standard body text, navigation | +| Caption | ui-sans-serif | 14px (0.88rem) | 400 | 1.43 | normal | Metadata, descriptions | +| Small | ui-sans-serif | 12px (0.75rem) | 400 | 1.33 | normal | Smallest sans-serif text | +| Code Body | ui-monospace | 16px (1rem) | 400 | 1.50 | normal | Inline code, commands | +| Code Caption | ui-monospace | 14px (0.88rem) | 400 | 1.43 | normal | Code snippets, secondary | +| Code Small | ui-monospace | 12px (0.75rem) | 400–700 | 1.63 | normal | Tags, labels | + +### Principles +- **Rounded display, standard body**: SF Pro Rounded carries display headlines with its distinctive rounded terminals, while the standard system sans handles all body text. The rounded font IS the brand expression. +- **Weight restraint**: Only two weights matter — 400 (regular) for body and 500 (medium) for headings. No bold, no light, no black weight. This extreme restraint reinforces the minimal philosophy. +- **Tight display, comfortable body**: Headlines compress to 1.0 line-height, while body text relaxes to 1.43–1.56. The contrast creates clear hierarchy without needing weight contrast. +- **Monospace for developer identity**: Code blocks and terminal commands appear throughout as primary content, using the system monospace stack. + +## 4. Component Stylings + +### Buttons + +**Gray Pill (Primary)** +- Background: Light Gray (`#e5e5e5`) +- Text: Near Black (`#262626`) +- Padding: 10px 24px +- Border: thin solid Light Gray (`1px solid #e5e5e5`) +- Radius: pill-shaped (9999px) +- The primary action button — understated, grayscale, always pill-shaped + +**White Pill (Secondary)** +- Background: Pure White (`#ffffff`) +- Text: Button Text Dark (`#404040`) +- Padding: 10px 24px +- Border: thin solid Border Light (`1px solid #d4d4d4`) +- Radius: pill-shaped (9999px) +- Secondary action — visually lighter than Gray Pill + +**Black Pill (CTA)** +- Background: Pure Black (`#000000`) +- Text: Pure White (`#ffffff`) +- Radius: pill-shaped (9999px) +- Inferred from "Create account" and "Explore" buttons +- Maximum emphasis — black on white + +### Cards & Containers +- Background: Pure White or Snow (`#fafafa`) +- Border: thin solid Light Gray (`1px solid #e5e5e5`) when needed +- Radius: comfortably rounded (12px) — the ONLY non-pill radius in the system +- Shadow: **none** — zero shadows on any element +- Hover: likely subtle background shift or border darkening + +### Inputs & Forms +- Background: Pure White +- Border: `1px solid #e5e5e5` +- Radius: pill-shaped (9999px) — search inputs and form fields are pill-shaped +- Focus: Ring Blue (`#3b82f6` at 50%) ring +- Placeholder: Silver (`#a3a3a3`) + +### Navigation +- Clean horizontal nav with minimal elements +- Logo: Ollama llama icon + wordmark in black +- Links: "Models", "Docs", "Pricing" in black at 16px, weight 400 +- Search bar: pill-shaped with placeholder text +- Right side: "Sign in" link + "Download" black pill CTA +- No borders, no background — transparent nav on white page + +### Image Treatment +- The Ollama llama mascot is the only illustration — black line art on white +- Code screenshots/terminal outputs shown in bordered containers (12px radius) +- Integration logos displayed as simple icons in a grid +- No photographs, no gradients, no decorative imagery + +### Distinctive Components + +**Tab Pills** +- Pill-shaped tab selectors (e.g., "Coding" | "OpenClaw") +- Active: Light Gray bg; Inactive: transparent +- All pill-shaped (9999px) + +**Model Tags** +- Small pill-shaped tags (e.g., "ollama", "launch", "claude") +- Light Gray background, dark text +- The primary way to browse models + +**Terminal Command Block** +- Monospace code showing `ollama run` commands +- Minimal styling — just a bordered 12px-radius container +- Copy button integrated + +**Integration Grid** +- Grid of integration logos (Codex, Claude Code, OpenCode, LangChain, etc.) +- Each in a bordered pill or card with icon + name +- Tabbed by category (Coding, Documents & RAG, Automation, Chat) + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 4px, 6px, 8px, 9px, 10px, 12px, 14px, 16px, 20px, 24px, 32px, 40px, 48px, 88px, 112px +- Button padding: 10px 24px (consistent across all buttons) +- Card internal padding: approximately 24–32px +- Section vertical spacing: very generous (88px–112px) + +### Grid & Container +- Max container width: approximately 1024–1280px, centered +- Hero: centered single-column with llama illustration +- Feature sections: 2-column layout (text left, code right) +- Integration grid: responsive multi-column +- Footer: clean single-row + +### Whitespace Philosophy +- **Emptiness as luxury**: The page is remarkably short and sparse — no feature section overstays its welcome. Each concept gets minimal but sufficient space. +- **Content density is low by design**: Where other AI companies pack feature after feature, Ollama presents three ideas (run models, use with apps, integrations) and stops. +- **The white space IS the brand**: Pure white space with zero decoration communicates "this tool gets out of your way." + +### Border Radius Scale +- Comfortably rounded (12px): The sole container radius — code blocks, cards, panels +- Pill-shaped (9999px): Everything interactive — buttons, tabs, inputs, tags, badges + +*This binary system is extreme and distinctive. There is no 4px, no 8px, no gradient of roundness. Elements are either containers (12px) or interactive (pill).* + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, no border | Page background, most content | +| Bordered (Level 1) | `1px solid #e5e5e5` | Cards, code blocks, buttons | + +**Shadow Philosophy**: Ollama uses **zero shadows**. This is not an oversight — it's a deliberate design decision. Every other major AI product site uses at least subtle shadows. Ollama's flat, shadowless approach creates a paper-like experience where elements are distinguished purely by background color and single-pixel borders. Depth is communicated through **content hierarchy and typography weight**, not visual layering. + +## 7. Do's and Don'ts + +### Do +- Use pure white (`#ffffff`) as the page background — never off-white or cream +- Use pill-shaped (9999px) radius on all interactive elements — buttons, tabs, inputs, tags +- Use 12px radius on all non-interactive containers — code blocks, cards, panels +- Keep the palette strictly grayscale — no chromatic colors except the blue focus ring +- Use SF Pro Rounded at weight 500 for display headings — the rounded terminals are the brand expression +- Maintain zero shadows — depth comes from borders and background shifts only +- Keep content density low — each section should present one clear idea +- Use monospace for terminal commands and code — it's primary content, not decoration +- Keep all buttons at 10px 24px padding with pill shape — consistency is absolute + +### Don't +- Don't introduce any chromatic color — no brand blue, no accent green, no warm tones +- Don't use border-radius between 12px and 9999px — the system is binary +- Don't add shadows to any element — the flat aesthetic is intentional +- Don't use font weights above 500 — no bold, no black weight +- Don't add decorative illustrations beyond the llama mascot +- Don't use gradients anywhere — flat blocks and borders only +- Don't overcomplicate the layout — two columns maximum, no complex grids +- Don't use borders heavier than 1px — containment is always the lightest possible touch +- Don't add hover animations or transitions — interactions should feel instant and direct + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <640px | Single column, stacked everything, hamburger nav | +| Small Tablet | 640–768px | Minor adjustments to spacing | +| Tablet | 768–850px | 2-column layouts begin | +| Desktop | 850–1024px | Standard layout, expanded features | +| Large Desktop | 1024–1280px | Maximum content width | + +### Touch Targets +- All buttons are pill-shaped with generous padding (10px 24px) +- Navigation links at comfortable 16px size +- Minimum touch area easily exceeds 44x44px + +### Collapsing Strategy +- **Navigation**: Collapses to hamburger menu on mobile +- **Feature sections**: 2-column → stacked single column +- **Hero text**: 48px → 36px → 30px progressive scaling +- **Integration grid**: Multi-column → 2-column → single column +- **Code blocks**: Horizontal scroll maintained + +### Image Behavior +- Llama mascot scales proportionally +- Code blocks maintain monospace formatting +- Integration icons reflow to fewer columns +- No art direction changes + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary Text: "Pure Black (#000000)" +- Page Background: "Pure White (#ffffff)" +- Secondary Text: "Stone (#737373)" +- Button Background: "Light Gray (#e5e5e5)" +- Borders: "Light Gray (#e5e5e5)" +- Muted Text: "Silver (#a3a3a3)" +- Dark Text: "Near Black (#262626)" +- Subtle Surface: "Snow (#fafafa)" + +### Example Component Prompts +- "Create a hero section on pure white (#ffffff) with an illustration centered above a headline at 48px SF Pro Rounded weight 500, line-height 1.0. Use Pure Black (#000000) text. Below, add a black pill-shaped CTA button (9999px radius, 10px 24px padding) and a gray pill button." +- "Design a code block with a 12px border-radius, 1px solid Light Gray (#e5e5e5) border on white background. Use ui-monospace at 16px for the terminal command. No shadow." +- "Build a tab bar with pill-shaped tabs (9999px radius). Active tab: Light Gray (#e5e5e5) background, Near Black (#262626) text. Inactive: transparent background, Stone (#737373) text." +- "Create an integration card grid. Each card is a bordered pill (9999px radius) or a 12px-radius card with 1px solid #e5e5e5 border. Icon + name inside. Grid of 4 columns on desktop." +- "Design a navigation bar: transparent background, no border. Ollama logo on the left, 3 text links (Pure Black, 16px, weight 400), pill search input in the center, 'Sign in' text link and black pill 'Download' button on the right." + +### Iteration Guide +1. Focus on ONE component at a time +2. Keep all values grayscale — "Stone (#737373)" not "use a light color" +3. Always specify pill (9999px) or container (12px) radius — nothing in between +4. Shadows are always zero — never add them +5. Weight is always 400 or 500 — never bold +6. If something feels too decorated, remove it — less is always more for Ollama diff --git a/design-md/ollama/README.md b/design-md/ollama/README.md new file mode 100644 index 0000000..c4c832c --- /dev/null +++ b/design-md/ollama/README.md @@ -0,0 +1,25 @@ +# Ollama — Design System + +> Design.md extracted from the public [ollama](https://ollama.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 Ollama 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 +![Ollama Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/ollama/preview-dark-screenshot.png) + +### Light Mode +![Ollama Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/ollama/preview-screenshot.png) diff --git a/design-md/ollama/preview-dark.html b/design-md/ollama/preview-dark.html new file mode 100644 index 0000000..d476484 --- /dev/null +++ b/design-md/ollama/preview-dark.html @@ -0,0 +1,678 @@ + + + + + +Design System Preview: Ollama (Dark) + + + + + + + + +
+

Design System Preview:
Ollama

+

Radical minimalism in pure grayscale. Zero color, zero shadows, zero excess.

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Grayscale Palette

+ +
+

Primary

+
+
+
+
+
Pure Black
+
#000000
+
Primary headlines, links, max emphasis
+
+
+
+
+
+
Near Black
+
#262626
+
Card surfaces in dark mode
+
+
+
+
+
+
Darkest Surface
+
#090909
+
Page background in dark mode
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Pure White
+
#ffffff
+
Primary text in dark mode
+
+
+
+
+
+
Snow
+
#fafafa
+
Light surface, used in light mode
+
+
+
+
+
+
Light Gray
+
#e5e5e5
+
Button backgrounds in light mode
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Stone
+
#737373
+
Muted text, dark mode tertiary
+
+
+
+
+
+
Mid Gray
+
#525252
+
Borders in dark mode
+
+
+
+
+
+
Silver
+
#a3a3a3
+
Secondary text in dark mode
+
+
+
+
+
+
Button Text Dark
+
#404040
+
White-surface button text
+
+
+
+
+
+
Border Light
+
#d4d4d4
+
White-surface button borders
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — 48px / 500 / 1.00 — SF Pro Rounded (system-ui)
+
+ +
+
Section Heading
+
Section Heading — 36px / 500 / 1.11 — SF Pro Rounded (system-ui)
+
+ +
+
Sub-heading
+
Sub-heading — 30px / 500 / 1.20 — SF Pro Rounded (system-ui)
+
+ +
+
Card Title
+
Card Title — 24px / 400 / 1.33 — ui-sans-serif
+
+ +
+
Body large text for hero descriptions and button labels. The system sans-serif handles all UI copy with clean precision.
+
Body Large — 18px / 400 / 1.56 — ui-sans-serif
+
+ +
+
Standard body text for paragraphs, navigation links, and general content. Weight 400 only.
+
Body / Link — 16px / 400 / 1.50 — ui-sans-serif
+
+ +
+
Caption and metadata text for descriptions
+
Caption — 14px / 400 / 1.43 — ui-sans-serif
+
+ +
+
ollama run llama3.2
+
Code Body — 16px / 400 / 1.50 — ui-monospace
+
+ +
+
ollama pull mistral
+
Code Caption — 14px / 400 / 1.43 — ui-monospace
+
+ +
+
v0.9.1 latest
+
Code Small — 12px / 400 / 1.63 — ui-monospace
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Gray Pill (Primary)
+
+
+ +
Outline Pill (Secondary)
+
+
+ +
White Pill (CTA)
+
+
+ +
+ $ ollama run llama3.2 +
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Bordered Container

+

Standard content card with 1px solid Mid Gray border and 12px radius. The only container style in Ollama. Zero shadows.

+
+
+
Dark Surface
+

Elevated Background

+

Card distinguished by Near Black (#262626) background on Darkest Surface (#090909). Subtle separation through luminance shift only.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale from 4px to 112px.

+ +
+
4px
+
8px
+
12px
+
16px
+
20px
+
24px
+
32px
+
40px
+
48px
+
+
+ +
+ + +
+
06 / Border Radius
+

Binary Radius System

+

Only two values exist. No 4px, no 8px, no gradient of roundness. Containers or interactive -- nothing in between.

+ +
+
+
+
12px
+
Containers
+
+
+
+
9999px
+
Interactive / Pills
+
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+

Zero shadows. Depth comes from background color shifts and single-pixel borders only.

+ +
+
+
+
Flat
+
No shadow, no border. Page background and inline content. The default state for most elements.
+
+
Level 0
+
+
+
+
Bordered
+
1px solid Mid Gray (#525252). Cards, code blocks, buttons. The only elevation that exists.
+
+
Level 1
+
+
+
+ +
+ + + diff --git a/design-md/ollama/preview.html b/design-md/ollama/preview.html new file mode 100644 index 0000000..cdd3e3e --- /dev/null +++ b/design-md/ollama/preview.html @@ -0,0 +1,678 @@ + + + + + +Design System Preview: Ollama (Light) + + + + + + + + +
+

Design System Preview:
Ollama

+

Radical minimalism in pure grayscale. Zero color, zero shadows, zero excess.

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Grayscale Palette

+ +
+

Primary

+
+
+
+
+
Pure Black
+
#000000
+
Primary headlines, links, max emphasis
+
+
+
+
+
+
Near Black
+
#262626
+
Button text on light surfaces
+
+
+
+
+
+
Darkest Surface
+
#090909
+
Dark containers, footer background
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Pure White
+
#ffffff
+
Page background, button surfaces
+
+
+
+
+
+
Snow
+
#fafafa
+
Subtle surface distinction, section bg
+
+
+
+
+
+
Light Gray
+
#e5e5e5
+
Button backgrounds, borders, containment
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Stone
+
#737373
+
Secondary text, footer links, muted tone
+
+
+
+
+
+
Mid Gray
+
#525252
+
Emphasized secondary text
+
+
+
+
+
+
Silver
+
#a3a3a3
+
Tertiary text, placeholders, metadata
+
+
+
+
+
+
Button Text Dark
+
#404040
+
White-surface button text
+
+
+
+
+
+
Border Light
+
#d4d4d4
+
White-surface button borders
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — 48px / 500 / 1.00 — SF Pro Rounded (system-ui)
+
+ +
+
Section Heading
+
Section Heading — 36px / 500 / 1.11 — SF Pro Rounded (system-ui)
+
+ +
+
Sub-heading
+
Sub-heading — 30px / 500 / 1.20 — SF Pro Rounded (system-ui)
+
+ +
+
Card Title
+
Card Title — 24px / 400 / 1.33 — ui-sans-serif
+
+ +
+
Body large text for hero descriptions and button labels. The system sans-serif handles all UI copy with clean precision.
+
Body Large — 18px / 400 / 1.56 — ui-sans-serif
+
+ +
+
Standard body text for paragraphs, navigation links, and general content. Weight 400 only.
+
Body / Link — 16px / 400 / 1.50 — ui-sans-serif
+
+ +
+
Caption and metadata text for descriptions
+
Caption — 14px / 400 / 1.43 — ui-sans-serif
+
+ +
+
ollama run llama3.2
+
Code Body — 16px / 400 / 1.50 — ui-monospace
+
+ +
+
ollama pull mistral
+
Code Caption — 14px / 400 / 1.43 — ui-monospace
+
+ +
+
v0.9.1 latest
+
Code Small — 12px / 400 / 1.63 — ui-monospace
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Gray Pill (Primary)
+
+
+ +
White Pill (Secondary)
+
+
+ +
Black Pill (CTA)
+
+
+ +
+ $ ollama run llama3.2 +
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Bordered Container

+

Standard content card with 1px solid Light Gray border and 12px radius. The only container style in Ollama. Zero shadows.

+
+
+
Snow Surface
+

Subtle Background

+

Card distinguished by Snow (#fafafa) background instead of borders. The lightest possible surface distinction from pure white.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale from 4px to 112px.

+ +
+
4px
+
8px
+
12px
+
16px
+
20px
+
24px
+
32px
+
40px
+
48px
+
+
+ +
+ + +
+
06 / Border Radius
+

Binary Radius System

+

Only two values exist. No 4px, no 8px, no gradient of roundness. Containers or interactive -- nothing in between.

+ +
+
+
+
12px
+
Containers
+
+
+
+
9999px
+
Interactive / Pills
+
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+

Zero shadows. Depth comes from background color shifts and single-pixel borders only.

+ +
+
+
+
Flat
+
No shadow, no border. Page background and inline content. The default state for most elements.
+
+
Level 0
+
+
+
+
Bordered
+
1px solid Light Gray (#e5e5e5). Cards, code blocks, buttons. The only elevation that exists.
+
+
Level 1
+
+
+
+ +
+ + + diff --git a/design-md/opencode.ai/DESIGN.md b/design-md/opencode.ai/DESIGN.md new file mode 100644 index 0000000..d92ab24 --- /dev/null +++ b/design-md/opencode.ai/DESIGN.md @@ -0,0 +1,281 @@ +# Design System: OpenCode + +## 1. Visual Theme & Atmosphere + +OpenCode's website embodies a terminal-native, monospace-first aesthetic that reflects its identity as an open source AI coding agent. The entire visual system is built on a stark dark-on-light contrast using a near-black background (`#201d1d`) with warm off-white text (`#fdfcfc`). This isn't a generic dark theme -- it's a warm, slightly reddish-brown dark that feels like a sophisticated terminal emulator rather than a cold IDE. The warm undertone in both the darks and lights (notice the subtle red channel in `#201d1d` -- rgb(32, 29, 29)) creates a cohesive, lived-in quality. + +Berkeley Mono is the sole typeface, establishing an unapologetic monospace identity. Every element -- headings, body text, buttons, navigation -- shares this single font family, creating a unified "everything is code" philosophy. The heading at 38px bold with 1.50 line-height is generous and readable, while body text at 16px with weight 500 provides a slightly heavier-than-normal reading weight that enhances legibility on screen. The monospace grid naturally enforces alignment and rhythm across the layout. + +The color system is deliberately minimal. The primary palette consists of just three functional tones: the warm near-black (`#201d1d`), a medium warm gray (`#9a9898`), and a bright off-white (`#fdfcfc`). Semantic colors borrow from the Apple HIG palette -- blue accent (`#007aff`), red danger (`#ff3b30`), green success (`#30d158`), orange warning (`#ff9f0a`) -- giving the interface familiar, trustworthy signal colors without adding brand complexity. Borders use a subtle warm transparency (`rgba(15, 0, 0, 0.12)`) that ties into the warm undertone of the entire system. + +**Key Characteristics:** +- Berkeley Mono as the sole typeface -- monospace everywhere, no sans-serif or serif voices +- Warm near-black primary (`#201d1d`) with reddish-brown undertone, not pure black +- Off-white text (`#fdfcfc`) with warm tint, not pure white +- Minimal 4px border radius throughout -- sharp, utilitarian corners +- 8px base spacing system scaling up to 96px +- Apple HIG-inspired semantic colors (blue, red, green, orange) +- Transparent warm borders using `rgba(15, 0, 0, 0.12)` +- Email input with generous 20px padding and 6px radius -- the most generous component radius +- Single button variant: dark background, light text, tight vertical padding (4px 20px) +- Underlined links as default link style, reinforcing the text-centric identity + +## 2. Color Palette & Roles + +### Primary +- **OpenCode Dark** (`#201d1d`): Primary background, button fills, link text. A warm near-black with subtle reddish-brown warmth -- rgb(32, 29, 29). +- **OpenCode Light** (`#fdfcfc`): Primary text on dark surfaces, button text. A barely-warm off-white that avoids clinical pure white. +- **Mid Gray** (`#9a9898`): Secondary text, muted links. A neutral warm gray that bridges dark and light. + +### Secondary +- **Dark Surface** (`#302c2c`): Slightly lighter than primary dark, used for elevated surfaces and subtle differentiation. +- **Border Gray** (`#646262`): Stronger borders, outline rings on interactive elements. +- **Light Surface** (`#f1eeee`): Light mode surface, subtle background variation. + +### Accent +- **Accent Blue** (`#007aff`): Primary accent, links, interactive highlights. Apple system blue. +- **Accent Blue Hover** (`#0056b3`): Darker blue for hover states. +- **Accent Blue Active** (`#004085`): Deepest blue for pressed/active states. + +### Semantic +- **Danger Red** (`#ff3b30`): Error states, destructive actions. Apple system red. +- **Danger Hover** (`#d70015`): Darker red for hover on danger elements. +- **Danger Active** (`#a50011`): Deepest red for pressed danger states. +- **Success Green** (`#30d158`): Success states, positive feedback. Apple system green. +- **Warning Orange** (`#ff9f0a`): Warning states, caution signals. Apple system orange. +- **Warning Hover** (`#cc7f08`): Darker orange for hover on warning elements. +- **Warning Active** (`#995f06`): Deepest orange for pressed warning states. + +### Text Scale +- **Text Muted** (`#6e6e73`): Muted labels, disabled text, placeholder content. +- **Text Secondary** (`#424245`): Secondary text on light backgrounds, captions. + +### Border +- **Border Warm** (`rgba(15, 0, 0, 0.12)`): Primary border color, warm transparent black with red tint. +- **Border Tab** (`#9a9898`): Tab underline border, 2px solid bottom. +- **Border Outline** (`#646262`): 1px solid outline border for containers. + +## 3. Typography Rules + +### Font Family +- **Universal**: `Berkeley Mono`, with fallbacks: `IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace` + +### Hierarchy + +| Role | Size | Weight | Line Height | Notes | +|------|------|--------|-------------|-------| +| Heading 1 | 38px (2.38rem) | 700 | 1.50 | Hero headlines, page titles | +| Heading 2 | 16px (1.00rem) | 700 | 1.50 | Section titles, bold emphasis | +| Body | 16px (1.00rem) | 400 | 1.50 | Standard body text, paragraphs | +| Body Medium | 16px (1.00rem) | 500 | 1.50 | Links, button text, nav items | +| Body Tight | 16px (1.00rem) | 500 | 1.00 (tight) | Compact labels, tab items | +| Caption | 14px (0.88rem) | 400 | 2.00 (relaxed) | Footnotes, metadata, small labels | + +### Principles +- **One font, one voice**: Berkeley Mono is used exclusively. There is no typographic variation between display, body, and code -- everything speaks in the same monospace register. Hierarchy is achieved through size and weight alone. +- **Weight as hierarchy**: 700 for headings, 500 for interactive/medium emphasis, 400 for body text. Three weight levels create the entire hierarchy. +- **Generous line-height**: 1.50 as the standard line-height gives text room to breathe within the monospace grid. The relaxed 2.00 line-height on captions creates clear visual separation. +- **Tight for interaction**: Interactive elements (tabs, compact labels) use 1.00 line-height for dense, clickable targets. + +## 4. Component Stylings + +### Buttons + +**Primary (Dark Fill)** +- Background: `#201d1d` (OpenCode Dark) +- Text: `#fdfcfc` (OpenCode Light) +- Padding: 4px 20px +- Radius: 4px +- Font: 16px Berkeley Mono, weight 500, line-height 2.00 (relaxed) +- Outline: `rgb(253, 252, 252) none 0px` +- Use: Primary CTAs, main actions + +### Inputs + +**Email Input** +- Background: `#f8f7f7` (light neutral) +- Text: `#201d1d` +- Border: `1px solid rgba(15, 0, 0, 0.12)` +- Padding: 20px +- Radius: 6px +- Font: Berkeley Mono, standard size +- Use: Form fields, email capture + +### Links + +**Default Link** +- Color: `#201d1d` +- Decoration: underline 1px +- Font-weight: 500 +- Use: Primary text links in body content + +**Light Link** +- Color: `#fdfcfc` +- Decoration: none +- Use: Links on dark backgrounds, navigation + +**Muted Link** +- Color: `#9a9898` +- Decoration: none +- Use: Footer links, secondary navigation + +### Tabs + +**Tab Navigation** +- Border-bottom: `2px solid #9a9898` (active tab indicator) +- Font: 16px, weight 500, line-height 1.00 +- Use: Section switching, content filtering + +### Navigation +- Clean horizontal layout with Berkeley Mono throughout +- Brand logotype left-aligned in monospace +- Links at 16px weight 500 with underline decoration +- Dark background matching page background +- No backdrop blur or transparency -- solid surfaces only + +### Image Treatment +- Terminal/code screenshots as hero imagery +- Dark terminal aesthetic with monospace type +- Minimal borders, content speaks for itself + +### Distinctive Components + +**Terminal Hero** +- Full-width dark terminal window as hero element +- ASCII art / stylized logo within terminal frame +- Monospace command examples with syntax highlighting +- Reinforces the CLI-first identity of the product + +**Feature List** +- Bulleted feature items with Berkeley Mono text +- Weight 500 for feature names, 400 for descriptions +- Tight vertical spacing between items +- No cards or borders -- pure text layout + +**Email Capture** +- Light background input (`#f8f7f7`) contrasting dark page +- Generous 20px padding for comfortable typing +- 6px radius -- the roundest element in the system +- Newsletter/waitlist pattern + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Fine scale: 1px, 2px, 4px (sub-8px for borders and micro-adjustments) +- Standard scale: 8px, 12px, 16px, 20px, 24px +- Extended scale: 32px, 40px, 48px, 64px, 80px, 96px +- The system follows a clean 4/8px grid with consistent doubling + +### Grid & Container +- Max content width: approximately 800-900px (narrow, reading-optimized) +- Single-column layout as the primary pattern +- Centered content with generous horizontal margins +- Hero section: full-width dark terminal element +- Feature sections: single-column text blocks +- Footer: multi-column link grid + +### Whitespace Philosophy +- **Monospace rhythm**: The fixed-width nature of Berkeley Mono creates a natural vertical grid. Line-heights of 1.50 and 2.00 maintain consistent rhythm. +- **Narrow and focused**: Content is constrained to a narrow column, creating generous side margins that focus attention on the text. +- **Sections through spacing**: No decorative dividers. Sections are separated by generous vertical spacing (48-96px) rather than borders or background changes. + +### Border Radius Scale +- Micro (4px): Default for all elements -- buttons, containers, badges +- Input (6px): Form inputs get slightly more roundness +- The entire system uses just two radius values, reinforcing the utilitarian aesthetic + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, no border | Default state for most elements | +| Border Subtle (Level 1) | `1px solid rgba(15, 0, 0, 0.12)` | Section dividers, input borders, horizontal rules | +| Border Tab (Level 2) | `2px solid #9a9898` bottom only | Active tab indicator | +| Border Outline (Level 3) | `1px solid #646262` | Container outlines, elevated elements | + +**Shadow Philosophy**: OpenCode's depth system is intentionally flat. There are no box-shadows in the extracted tokens -- zero shadow values were detected. Depth is communicated exclusively through border treatments and background color shifts. This flatness is consistent with the terminal aesthetic: terminals don't have shadows, and neither does OpenCode. The three border levels (transparent warm, tab indicator, solid outline) create sufficient visual hierarchy without any elevation illusion. + +### Decorative Depth +- Background color shifts between `#201d1d` and `#302c2c` create subtle surface differentiation +- Transparent borders at 12% opacity provide barely-visible structure +- The warm reddish tint in border colors (`rgba(15, 0, 0, 0.12)`) ties borders to the overall warm dark palette +- No gradients, no blurs, no ambient effects -- pure flat terminal aesthetic + +## 7. Interaction & Motion + +### Hover States +- Links: color shift from default to accent blue (`#007aff`) or underline style change +- Buttons: subtle background lightening or border emphasis +- Accent blue provides a three-stage hover sequence: `#007aff` → `#0056b3` → `#004085` (default → hover → active) +- Danger red: `#ff3b30` → `#d70015` → `#a50011` +- Warning orange: `#ff9f0a` → `#cc7f08` → `#995f06` + +### Focus States +- Border-based focus: increased border opacity or solid border color +- No shadow-based focus rings -- consistent with the flat, no-shadow aesthetic +- Keyboard focus likely uses outline or border color shift to accent blue + +### Transitions +- Minimal transitions expected -- terminal-inspired interfaces favor instant state changes +- Color transitions: 100-150ms for subtle state feedback +- No scale, rotate, or complex transform animations + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <640px | Single column, reduced padding, heading scales down | +| Tablet | 640-1024px | Content width expands, slight padding increase | +| Desktop | >1024px | Full content width (~800-900px centered), maximum whitespace | + +### Touch Targets +- Buttons with 4px 20px padding provide adequate horizontal touch area +- Input fields with 20px padding ensure comfortable mobile typing +- Tab items at 16px with tight line-height may need mobile adaptation + +### Collapsing Strategy +- Hero heading: 38px → 28px → 24px on smaller screens +- Navigation: horizontal links → hamburger/drawer on mobile +- Feature lists: maintain single-column, reduce horizontal padding +- Terminal hero: maintain full-width, reduce internal padding +- Footer columns: multi-column → stacked single column +- Section spacing: 96px → 64px → 48px on mobile + +### Image Behavior +- Terminal screenshots maintain aspect ratio and border treatment +- Full-width elements scale proportionally +- Monospace type maintains readability at all sizes due to fixed-width nature + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Page background: `#201d1d` (warm near-black) +- Primary text: `#fdfcfc` (warm off-white) +- Secondary text: `#9a9898` (warm gray) +- Muted text: `#6e6e73` +- Accent: `#007aff` (blue) +- Danger: `#ff3b30` (red) +- Success: `#30d158` (green) +- Warning: `#ff9f0a` (orange) +- Button bg: `#201d1d`, button text: `#fdfcfc` +- Border: `rgba(15, 0, 0, 0.12)` (warm transparent) +- Input bg: `#f8f7f7`, input border: `rgba(15, 0, 0, 0.12)` + +### Example Component Prompts +- "Create a hero section on `#201d1d` warm dark background. Headline at 38px Berkeley Mono weight 700, line-height 1.50, color `#fdfcfc`. Subtitle at 16px weight 400, color `#9a9898`. Primary CTA button (`#201d1d` bg with `1px solid #646262` border, 4px radius, 4px 20px padding, `#fdfcfc` text at weight 500)." +- "Design a feature list: single-column on `#201d1d` background. Feature name at 16px Berkeley Mono weight 700, color `#fdfcfc`. Description at 16px weight 400, color `#9a9898`. No cards, no borders -- pure text with 16px vertical gap between items." +- "Build an email capture form: `#f8f7f7` background input, `1px solid rgba(15, 0, 0, 0.12)` border, 6px radius, 20px padding. Adjacent dark button (`#201d1d` bg, `#fdfcfc` text, 4px radius, 4px 20px padding). Berkeley Mono throughout." +- "Create navigation: sticky `#201d1d` background. 16px Berkeley Mono weight 500 for links, `#fdfcfc` text. Brand name left-aligned in monospace. Links with underline decoration. No blur, no transparency -- solid dark surface." +- "Design a footer: `#201d1d` background, multi-column link grid. Links at 16px Berkeley Mono weight 400, color `#9a9898`. Section headers at weight 700. Border-top `1px solid rgba(15, 0, 0, 0.12)` separator." + +### Iteration Guide +1. Berkeley Mono is the only font -- never introduce a second typeface. Size and weight create all hierarchy. +2. Keep surfaces flat: no shadows, no gradients, no blur effects. Use borders and background shifts only. +3. The warm undertone matters: use `#201d1d` not `#000000`, use `#fdfcfc` not `#ffffff`. The reddish warmth is subtle but essential. +4. Border radius is 4px everywhere except inputs (6px). Never use rounded pills or large radii. +5. Semantic colors follow Apple HIG: `#007aff` blue, `#ff3b30` red, `#30d158` green, `#ff9f0a` orange. Each has hover and active darkened variants. +6. Three-stage interaction: default → hover (darkened) → active (deeply darkened) for all semantic colors. +7. Borders use `rgba(15, 0, 0, 0.12)` -- a warm transparent dark, not neutral gray. This ties borders to the warm palette. +8. Spacing follows an 8px grid: 8, 16, 24, 32, 40, 48, 64, 80, 96px. Use 4px for fine adjustments only. diff --git a/design-md/opencode.ai/README.md b/design-md/opencode.ai/README.md new file mode 100644 index 0000000..0a14fe8 --- /dev/null +++ b/design-md/opencode.ai/README.md @@ -0,0 +1,25 @@ +# Opencode.ai — Design System + +> Design.md extracted from the public [opencode.ai](https://opencode.ai.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 Opencode.ai 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 +![Opencode.ai Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/opencode.ai/preview-dark-screenshot.png) + +### Light Mode +![Opencode.ai Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/opencode.ai/preview-screenshot.png) diff --git a/design-md/opencode.ai/preview-dark.html b/design-md/opencode.ai/preview-dark.html new file mode 100644 index 0000000..c123364 --- /dev/null +++ b/design-md/opencode.ai/preview-dark.html @@ -0,0 +1,368 @@ + + + + + +Design System Preview: OpenCode (Dark) + + + + + + + +
Dark Mode
+ + + +
+

Design System
Inspired by OpenCode

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value -- visualized in monospace precision.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
OpenCode Dark
#201d1d
Background, buttons
+
OpenCode Light
#fdfcfc
Primary text
+
Mid Gray
#9a9898
Secondary text
+
Dark Surface
#302c2c
Elevated surface
+
+ +
Surface & Border
+
+
Light Surface
#f1eeee
Light background
+
Input BG
#f8f7f7
Form inputs
+
Border Gray
#646262
Outline borders
+
Text Muted
#6e6e73
Muted labels
+
+ +
Accent
+
+
Accent Blue
#007aff
Primary accent
+
Accent Hover
#0056b3
Hover state
+
Accent Active
#004085
Active state
+
+ +
Semantic
+
+
Danger
#ff3b30
Error, destructive
+
Success
#30d158
Success state
+
Warning
#ff9f0a
Caution, alerts
+
Text Secondary
#424245
Captions on light
+
+
+ +
+ +
+ +

Typography Scale

+ +
Heading 1 -- Hero
Heading 1 -- 38px / 700 / 1.50 / Berkeley Mono
+
Heading 2 -- Section Title
Heading 2 -- 16px / 700 / 1.50 / Berkeley Mono
+
Body Medium -- Navigation links, interactive text, and button labels live here.
Body Medium -- 16px / 500 / 1.50 / Berkeley Mono
+
Body Regular -- Standard paragraph text for descriptions, documentation, and general content across the interface.
Body Regular -- 16px / 400 / 1.50 / Berkeley Mono
+
Body Tight -- Compact Labels
Body Tight -- 16px / 500 / 1.00 / Berkeley Mono
+
Caption -- Footnotes, metadata, and small supplementary text with relaxed line-height for readability.
Caption -- 14px / 400 / 2.00 / Berkeley Mono
+
$ opencode --help
Code -- 14px / 400 / 1.50 / Berkeley Mono (monospace)
+
+ +
+ +
+ +

Button Variants

+
+
Install OpenCode
Primary Dark
+
View on GitHub
Secondary Outline
+
Learn More
Accent Blue
+
Delete
Danger
+
Success
Success
+
Warning
Warning
+
+
+ +
+ +
+ +

Card Examples

+
+
+
AI Agent
+

Terminal-Native Coding

+

An open source AI coding agent that runs in your terminal. No IDE required -- just you, your code, and the command line.

+
+
+
Open Source
+

Multi-Provider Support

+

Works with Anthropic, OpenAI, and other LLM providers. Choose the model that fits your workflow and budget.

+
+
+
CLI
+

Context-Aware Editing

+

Understands your entire codebase context. Make changes across multiple files with natural language instructions.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default (warm border, 20px padding)
+
Focus (accent blue border)
+
Error (danger red border)
+
+ +
+ +
+ +

Spacing Scale

+
+
1
+
2
+
4
+
8
+
12
+
16
+
20
+
24
+
32
+
40
+
48
+
64
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
4px
Default (buttons, cards)
+
6px
Inputs
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No border, no shadow
+
Level 1: Subtle
1px rgba(253,252,252,0.12)
+
Level 2: Tab
2px solid #9a9898
+
Level 3: Outline
1px solid #646262
+
+
+ + + + + diff --git a/design-md/opencode.ai/preview.html b/design-md/opencode.ai/preview.html new file mode 100644 index 0000000..ceeaf01 --- /dev/null +++ b/design-md/opencode.ai/preview.html @@ -0,0 +1,359 @@ + + + + + +Design System Preview: OpenCode (Light) + + + + + + + + + +
+

Design System
Inspired by OpenCode

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value -- visualized in monospace precision.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
OpenCode Dark
#201d1d
Background, buttons
+
OpenCode Light
#fdfcfc
Primary text
+
Mid Gray
#9a9898
Secondary text
+
Dark Surface
#302c2c
Elevated surface
+
+ +
Surface & Border
+
+
Light Surface
#f1eeee
Light background
+
Input BG
#f8f7f7
Form inputs
+
Border Gray
#646262
Outline borders
+
Text Muted
#6e6e73
Muted labels
+
+ +
Accent
+
+
Accent Blue
#007aff
Primary accent
+
Accent Hover
#0056b3
Hover state
+
Accent Active
#004085
Active state
+
+ +
Semantic
+
+
Danger
#ff3b30
Error, destructive
+
Success
#30d158
Success state
+
Warning
#ff9f0a
Caution, alerts
+
Text Secondary
#424245
Captions on light
+
+
+ +
+ +
+ +

Typography Scale

+ +
Heading 1 -- Hero
Heading 1 -- 38px / 700 / 1.50 / Berkeley Mono
+
Heading 2 -- Section Title
Heading 2 -- 16px / 700 / 1.50 / Berkeley Mono
+
Body Medium -- Navigation links, interactive text, and button labels live here.
Body Medium -- 16px / 500 / 1.50 / Berkeley Mono
+
Body Regular -- Standard paragraph text for descriptions, documentation, and general content across the interface.
Body Regular -- 16px / 400 / 1.50 / Berkeley Mono
+
Body Tight -- Compact Labels
Body Tight -- 16px / 500 / 1.00 / Berkeley Mono
+
Caption -- Footnotes, metadata, and small supplementary text with relaxed line-height for readability.
Caption -- 14px / 400 / 2.00 / Berkeley Mono
+
$ opencode --help
Code -- 14px / 400 / 1.50 / Berkeley Mono (monospace)
+
+ +
+ +
+ +

Button Variants

+
+
Install OpenCode
Primary Dark
+
View on GitHub
Secondary Outline
+
Learn More
Accent Blue
+
Delete
Danger
+
Success
Success
+
Warning
Warning
+
+
+ +
+ +
+ +

Card Examples

+
+
+
AI Agent
+

Terminal-Native Coding

+

An open source AI coding agent that runs in your terminal. No IDE required -- just you, your code, and the command line.

+
+
+
Open Source
+

Multi-Provider Support

+

Works with Anthropic, OpenAI, and other LLM providers. Choose the model that fits your workflow and budget.

+
+
+
CLI
+

Context-Aware Editing

+

Understands your entire codebase context. Make changes across multiple files with natural language instructions.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default (warm border, 20px padding)
+
Focus (accent blue border)
+
Error (danger red border)
+
+ +
+ +
+ +

Spacing Scale

+
+
1
+
2
+
4
+
8
+
12
+
16
+
20
+
24
+
32
+
40
+
48
+
64
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
4px
Default (buttons, cards)
+
6px
Inputs
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No border, no shadow
+
Level 1: Subtle
1px rgba(15,0,0,0.12)
+
Level 2: Tab
2px solid #9a9898
+
Level 3: Outline
1px solid #646262
+
+
+ + + + + diff --git a/design-md/replicate/DESIGN.md b/design-md/replicate/DESIGN.md new file mode 100644 index 0000000..801a6c8 --- /dev/null +++ b/design-md/replicate/DESIGN.md @@ -0,0 +1,261 @@ +# Design System: Replicate + +## 1. Visual Theme & Atmosphere + +Replicate's interface is a developer playground crackling with creative energy — a bold, high-contrast design that feels more like a music festival poster than a typical API platform. The hero section explodes with a vibrant orange-red-magenta gradient that immediately signals "this is where AI models come alive," while the body of the page grounds itself in a clean white canvas where code snippets and model galleries take center stage. + +The design personality is defined by two extreme choices: **massive display typography** (up to 128px) using the custom rb-freigeist-neue face, and **exclusively pill-shaped geometry** (9999px radius on everything). The display font is thick, bold, and confident — its heavy weight at enormous sizes creates text that feels like it's shouting with joy rather than whispering authority. Combined with basier-square for body text (a clean geometric sans) and JetBrains Mono for code, the system serves developers who want power and playfulness in equal measure. + +What makes Replicate distinctive is its community-powered energy. The model gallery with AI-generated images, the dotted-underline links, the green status badges, and the "Imagine what you can build" closing manifesto all create a space that feels alive and participatory — not a corporate product page but a launchpad for creative developers. + +**Key Characteristics:** +- Explosive orange-red-magenta gradient hero (#ea2804 brand anchor) +- Massive display typography (128px) in heavy rb-freigeist-neue +- Exclusively pill-shaped geometry: 9999px radius on EVERYTHING +- High-contrast black (#202020) and white palette with red brand accent +- Developer-community energy: model galleries, code examples, dotted-underline links +- Green status badges (#2b9a66) for live/operational indicators +- Bold/heavy font weights (600-700) creating maximum typographic impact +- Playful closing manifesto: "Imagine what you can build." + +## 2. Color Palette & Roles + +### Primary +- **Replicate Dark** (`#202020`): The primary text color and dark surface — a near-black that's the anchor of all text and borders. Slightly warmer than pure #000. +- **Replicate Red** (`#ea2804`): The core brand color — a vivid, saturated orange-red used in the hero gradient, accent borders, and high-signal moments. +- **Secondary Red** (`#dd4425`): A slightly warmer variant for button borders and link hover states. + +### Secondary & Accent +- **Status Green** (`#2b9a66`): Badge/pill background for "running" or operational status indicators. +- **GitHub Dark** (`#24292e`): A blue-tinted dark used for code block backgrounds and developer contexts. + +### Surface & Background +- **Pure White** (`#ffffff`): The primary page body background. +- **Near White** (`#fcfcfc`): Button text on dark surfaces and the lightest content. +- **Hero Gradient**: A dramatic orange → red → magenta → pink gradient for the hero section. Transitions from warm (#ea2804 family) through hot pink. + +### Neutrals & Text +- **Medium Gray** (`#646464`): Secondary body text and de-emphasized content. +- **Warm Gray** (`#4e4e4e`): Emphasized secondary text. +- **Mid Silver** (`#8d8d8d`): Tertiary text, footnotes. +- **Light Silver** (`#bbbbbb`): Dotted-underline link decoration color, muted metadata. +- **Pure Black** (`#000000`): Maximum-emphasis borders and occasional text. + +### Gradient System +- **Hero Blaze**: A dramatic multi-stop gradient flowing through orange (`#ea2804`) → red → magenta → hot pink. This gradient occupies the full hero section and is the most visually dominant element on the page. +- **Dark Sections**: Deep dark (#202020) sections with white/near-white text provide contrast against the white body. + +## 3. Typography Rules + +### Font Family +- **Display**: `rb-freigeist-neue`, with fallbacks: `ui-sans-serif, system-ui` +- **Body / UI**: `basier-square`, with fallbacks: `ui-sans-serif, system-ui` +- **Code**: `jetbrains-mono`, with fallbacks: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Mega | rb-freigeist-neue | 128px (8rem) | 700 | 1.00 (tight) | normal | The maximum: closing manifesto | +| Display / Hero | rb-freigeist-neue | 72px (4.5rem) | 700 | 1.00 (tight) | -1.8px | Hero section headline | +| Section Heading | rb-freigeist-neue | 48px (3rem) | 400–700 | 1.00 (tight) | normal | Feature section titles | +| Sub-heading | rb-freigeist-neue | 30px (1.88rem) | 600 | 1.20 (tight) | normal | Card headings | +| Sub-heading Sans | basier-square | 38.4px (2.4rem) | 400 | 0.83 (ultra-tight) | normal | Large body headings | +| Feature Title | basier-square / rb-freigeist-neue | 18px (1.13rem) | 600 | 1.56 | normal | Small section titles, labels | +| Body Large | basier-square | 20px (1.25rem) | 400 | 1.40 | normal | Intro paragraphs | +| Body / Button | basier-square | 16–18px (1–1.13rem) | 400–600 | 1.50–1.56 | normal | Standard text, buttons | +| Caption | basier-square | 14px (0.88rem) | 400–600 | 1.43 | -0.35px to normal | Metadata, descriptions | +| Small / Tag | basier-square | 12px (0.75rem) | 400 | 1.33 | normal | Tags (lowercase transform) | +| Code | jetbrains-mono | 14px (0.88rem) | 400 | 1.43 | normal | Code snippets, API examples | +| Code Small | jetbrains-mono | 11px (0.69rem) | 400 | 1.50 | normal | Tiny code references | + +### Principles +- **Heavy display, light body**: rb-freigeist-neue at 700 weight creates thundering headlines, while basier-square at 400 handles body text with quiet efficiency. The contrast is extreme and intentional. +- **128px is a real size**: The closing manifesto "Imagine what you can build." uses 128px — bigger than most mobile screens. This is the design equivalent of shouting from a rooftop. +- **Negative tracking on hero**: -1.8px letter-spacing at 72px creates dense, impactful hero text. +- **Lowercase tags**: 12px basier-square uses `text-transform: lowercase` — an unusual choice that creates a casual, developer-friendly vibe. +- **Weight 600 as emphasis**: When basier-square needs emphasis, it uses 600 (semibold) — never bold (700), which is reserved for rb-freigeist-neue display text. + +## 4. Component Stylings + +### Buttons + +**Dark Solid** +- Background: Replicate Dark (`#202020`) +- Text: Near White (`#fcfcfc`) +- Padding: 0px 4px (extremely compact) +- Outline: Replicate Dark 4px solid +- Radius: pill-shaped (implied by system) +- Maximum emphasis — dark pill on light surface + +**White Outlined** +- Background: Pure White (`#ffffff`) +- Text: Replicate Dark (`#202020`) +- Border: `1px solid #202020` +- Radius: pill-shaped +- Clean outlined pill for secondary actions + +**Transparent Glass** +- Background: `rgba(255, 255, 255, 0.1)` (frosted glass) +- Text: Replicate Dark (`#202020`) +- Padding: 6px 56px 6px 28px (asymmetric — icon/search layout) +- Border: transparent +- Outline: Light Silver (`#bbbbbb`) 1px solid +- Used for search/input-like buttons + +### Cards & Containers +- Background: Pure White or subtle gray +- Border: `1px solid #202020` for prominent containment +- Radius: pill-shaped (9999px) for badges, labels, images +- Shadow: minimal standard shadows +- Model gallery: grid of AI-generated image thumbnails +- Accent border: `1px solid #ea2804` for highlighted/featured items + +### Inputs & Forms +- Background: `rgba(255, 255, 255, 0.1)` (frosted glass) +- Text: Replicate Dark (`#202020`) +- Border: transparent with outline +- Padding: 6px 56px 6px 28px (search-bar style) + +### Navigation +- Clean horizontal nav on white +- Logo: Replicate wordmark in dark +- Links: dark text with dotted underline on hover +- CTA: Dark pill button +- GitHub link and sign-in + +### Image Treatment +- AI-generated model output images in a gallery grid +- Pill-shaped image containers (9999px) +- Full-width gradient hero section +- Product screenshots with dark backgrounds + +### Distinctive Components + +**Model Gallery Grid** +- Horizontal scrolling or grid of AI-generated images +- Each image in a pill-shaped container +- Model names and run counts displayed +- The visual heart of the community platform + +**Dotted Underline Links** +- Links use `text-decoration: underline dotted #bbbbbb` +- A distinctive, developer-notebook aesthetic +- Lighter and more casual than solid underlines + +**Status Badges** +- Status Green (`#2b9a66`) background with white text +- Pill-shaped (9999px) +- 14px font size +- Indicates model availability/operational status + +**Manifesto Section** +- "Imagine what you can build." at 128px +- Dark background with white text +- Images embedded between words +- The emotional climax of the page + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 2px, 4px, 6px, 8px, 10px, 12px, 16px, 24px, 32px, 48px, 64px, 96px, 160px, 192px +- Button padding: varies widely (0px 4px to 6px 56px) +- Section vertical spacing: very generous (96–192px) + +### Grid & Container +- Fluid width with responsive constraints +- Hero: full-width gradient with centered content +- Model gallery: multi-column responsive grid +- Feature sections: mixed layouts +- Code examples: contained dark blocks + +### Whitespace Philosophy +- **Bold and generous**: Massive spacing between sections (up to 192px) creates distinct zones. +- **Dense within galleries**: Model images are tightly packed in the grid for browsable density. +- **The gradient IS the whitespace**: The hero gradient section occupies significant vertical space as a colored void. + +### Border Radius Scale +- **Pill (9999px)**: The ONLY radius in the system. Everything interactive, every image, every badge, every label, every container uses 9999px. This is the most extreme pill-radius commitment in any major tech brand. + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | White body, text blocks | +| Bordered (Level 1) | `1px solid #202020` | Cards, buttons, containers | +| Accent Border (Level 2) | `1px solid #ea2804` | Featured/highlighted items | +| Gradient Hero (Level 3) | Full-width blaze gradient | Hero section, maximum visual impact | +| Dark Section (Level 4) | Dark bg (#202020) with light text | Manifesto, footer, feature sections | + +**Shadow Philosophy**: Replicate relies on **borders and background color** for depth rather than shadows. The `1px solid #202020` border is the primary containment mechanism. The dramatic gradient hero and dark/light section alternation provide all the depth the design needs. + +## 7. Do's and Don'ts + +### Do +- Use pill-shaped (9999px) radius on EVERYTHING — buttons, images, badges, containers +- Use rb-freigeist-neue at weight 700 for display text — go big (72px+) or go home +- Use the orange-red brand gradient for hero sections +- Use Replicate Dark (#202020) as the primary dark — not pure black +- Apply dotted underline decoration on text links (#bbbbbb) +- Use Status Green (#2b9a66) for operational/success badges +- Keep body text in basier-square at 400–600 weight +- Use JetBrains Mono for all code content +- Create a "manifesto" section with 128px type for emotional impact + +### Don't +- Don't use any border-radius other than 9999px — the pill system is absolute +- Don't use the brand red (#ea2804) as a surface/background color — it's for gradients and accent borders +- Don't reduce display text below 48px on desktop — the heavy display font needs size to breathe +- Don't use light/thin font weights on rb-freigeist-neue — 600–700 is the range +- Don't use solid underlines on links — dotted is the signature +- Don't add drop shadows — depth comes from borders and background color +- Don't use warm neutrals — the gray scale is purely neutral (#202020 → #bbbbbb) +- Don't skip the code examples — they're primary content, not decoration +- Don't make the hero gradient subtle — it should be BOLD and vibrant + +## 8. Responsive Behavior + +### Breakpoints +*No explicit breakpoints detected — likely using fluid/container-query responsive system.* + +### Touch Targets +- Pill buttons with generous padding +- Gallery images as large touch targets +- Navigation adequately spaced + +### Collapsing Strategy +- **Hero text**: 128px → 72px → 48px progressive scaling +- **Model gallery**: Grid reduces columns +- **Navigation**: Collapses to hamburger +- **Manifesto**: Scales down but maintains impact + +### Image Behavior +- AI-generated images scale within pill containers +- Gallery reflows to fewer columns on narrow screens +- Hero gradient maintained at all sizes + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary Text: "Replicate Dark (#202020)" +- Page Background: "Pure White (#ffffff)" +- Brand Accent: "Replicate Red (#ea2804)" +- Secondary Text: "Medium Gray (#646464)" +- Muted/Decoration: "Light Silver (#bbbbbb)" +- Status: "Status Green (#2b9a66)" +- Dark Surface: "Replicate Dark (#202020)" + +### Example Component Prompts +- "Create a hero section with a vibrant orange-red-magenta gradient background. Headline at 72px rb-freigeist-neue weight 700, white text, -1.8px letter-spacing. Include a dark pill CTA button and a white outlined pill button." +- "Design a model card with pill-shaped (9999px) image container, model name at 16px basier-square weight 600, run count at 14px in Medium Gray. Border: 1px solid #202020." +- "Build a status badge: pill-shaped (9999px), Status Green (#2b9a66) background, white text at 14px basier-square." +- "Create a manifesto section on Replicate Dark (#202020) with 'Imagine what you can build.' at 128px rb-freigeist-neue weight 700, white text. Embed small AI-generated images between the words." +- "Design a code block: dark background (#24292e), JetBrains Mono at 14px, white text. Pill-shaped container." + +### Iteration Guide +1. Everything is pill-shaped — never specify any other border-radius +2. Display text is HEAVY — weight 700, sizes 48px+ +3. Links use dotted underline (#bbbbbb) — never solid +4. The gradient hero is the visual anchor — make it bold +5. Use basier-square for body, rb-freigeist-neue for display, JetBrains Mono for code diff --git a/design-md/replicate/README.md b/design-md/replicate/README.md new file mode 100644 index 0000000..5598062 --- /dev/null +++ b/design-md/replicate/README.md @@ -0,0 +1,25 @@ +# Replicate — Design System + +> Design.md extracted from the public [replicate](https://replicate.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 Replicate 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 +![Replicate Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/replicate/preview-dark-screenshot.png) + +### Light Mode +![Replicate Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/replicate/preview-screenshot.png) diff --git a/design-md/replicate/preview-dark.html b/design-md/replicate/preview-dark.html new file mode 100644 index 0000000..46a1b04 --- /dev/null +++ b/design-md/replicate/preview-dark.html @@ -0,0 +1,828 @@ + + + + + +Design System Preview: Replicate (Dark) + + + + + + + + + + + +
+

Design System Preview:
Replicate

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Replicate Dark
+
#202020
+
Primary text, dark surfaces, borders
+
+
+
+
+
+
Replicate Red
+
#ea2804
+
Core brand, hero gradient, accent borders
+
+
+
+
+
+
Secondary Red
+
#dd4425
+
Button borders, link hover states
+
+
+
+
+ +
+

Secondary & Accent

+
+
+
+
+
Status Green
+
#2b9a66
+
Running/operational status badges
+
+
+
+
+
+
GitHub Dark
+
#24292e
+
Code block backgrounds
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Pure White
+
#ffffff
+
Light mode page background
+
+
+
+
+
+
Near White
+
#fcfcfc
+
Button text on dark surfaces
+
+
+
+
+
+
Hero Blaze Gradient
+
multi-stop
+
Hero section, maximum visual impact
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Medium Gray
+
#646464
+
Secondary body text
+
+
+
+
+
+
Warm Gray
+
#4e4e4e
+
Emphasized secondary text
+
+
+
+
+
+
Mid Silver
+
#8d8d8d
+
Tertiary text, footnotes
+
+
+
+
+
+
Light Silver
+
#bbbbbb
+
Dotted-underline link decoration
+
+
+
+
+
+
Pure Black
+
#000000
+
Maximum-emphasis borders
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — 72px / 700 / 1.00 / -1.8px — rb-freigeist-neue (system-ui fallback)
+
+ +
+
Section Heading
+
Section Heading — 48px / 400-700 / 1.00 / normal — rb-freigeist-neue (system-ui fallback)
+
+ +
+
Sub-heading Display
+
Sub-heading — 30px / 600 / 1.20 / normal — rb-freigeist-neue (system-ui fallback)
+
+ +
+
Sub-heading Sans
+
Sub-heading Sans — 38.4px / 400 / 0.83 / normal — basier-square (Inter fallback)
+
+ +
+
Feature Title
+
Feature Title — 18px / 600 / 1.56 / normal — basier-square (Inter fallback)
+
+ +
+
Body large text for intro paragraphs. Basier-square at 400 weight provides quiet geometric precision for all readable content.
+
Body Large — 20px / 400 / 1.40 / normal — basier-square (Inter fallback)
+
+ +
+
Standard body text for paragraphs, navigation, and button labels. The workhorse of the type system.
+
Body / Button — 16px / 400-600 / 1.50 / normal — basier-square (Inter fallback)
+
+ +
+
Caption and metadata descriptions for model cards
+
Caption — 14px / 400-600 / 1.43 / -0.35px — basier-square (Inter fallback)
+
+ +
+
small tag / lowercase transform
+
Small / Tag — 12px / 400 / 1.33 / normal / lowercase — basier-square (Inter fallback)
+
+ +
+
replicate.run("stability-ai/sdxl", input={"prompt": "..."})
+
Code Body — 14px / 400 / 1.43 / normal — JetBrains Mono
+
+ +
+
import replicate
+
Code Small — 11px / 400 / 1.50 / normal — JetBrains Mono
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
light solid pill
+
+
+ +
outlined pill
+
+
+ +
frosted glass / search
+
+
+ +
red accent pill
+
+
+ +
status badge
+
+
+ +
+ # Run a model with Replicate
+ import replicate
+ output = replicate.run("stability-ai/sdxl") +
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
standard card
+

Border Pill Card

+

Content card with 1px solid #4e4e4e border and 9999px pill radius. The default container for model galleries and feature sections.

+
+
+
accent highlighted
+

Red Accent Border

+

Featured or highlighted card with 1px solid Replicate Red border. Used for promoted models and primary emphasis.

+
+
+
deep surface
+

Deep Dark Card

+

Deeper dark background for manifesto-style sections, code examples, and high-contrast feature showcases.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale from 1px to 192px with generous section spacing.

+ +
+
1px
+
2px
+
4px
+
6px
+
8px
+
12px
+
16px
+
24px
+
32px
+
48px
+
64px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+

Replicate uses exclusively pill-shaped geometry. There is only ONE radius in the entire system.

+ +
+
+
+
9999px
+
Pill — the ONLY radius
+
+
+
+
9999px
+
Buttons
+
+
+
+
9999px
+
Cards
+
+
+
+
9999px
+
Badges
+
+
+
+
9999px
+
Images
+
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow, no border. Dark body and inline text blocks.
+
level 0
+
+
+
Bordered
1px solid #4e4e4e. Cards, buttons, containers.
+
level 1
+
+
+
Accent Border
1px solid #ea2804. Featured and highlighted items.
+
level 2
+
+
+
Gradient Hero
Full-width blaze gradient for maximum visual impact.
+
level 3
+
+
+
Deep Dark
Deeper dark surface for manifesto, footer, feature sections.
+
level 4
+
+
+
+ +
+ + + diff --git a/design-md/replicate/preview.html b/design-md/replicate/preview.html new file mode 100644 index 0000000..6ece524 --- /dev/null +++ b/design-md/replicate/preview.html @@ -0,0 +1,831 @@ + + + + + +Design System Preview: Replicate (Light) + + + + + + + + + + + +
+

Design System Preview:
Replicate

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Replicate Dark
+
#202020
+
Primary text, dark surfaces, borders
+
+
+
+
+
+
Replicate Red
+
#ea2804
+
Core brand, hero gradient, accent borders
+
+
+
+
+
+
Secondary Red
+
#dd4425
+
Button borders, link hover states
+
+
+
+
+ +
+

Secondary & Accent

+
+
+
+
+
Status Green
+
#2b9a66
+
Running/operational status badges
+
+
+
+
+
+
GitHub Dark
+
#24292e
+
Code block backgrounds
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Pure White
+
#ffffff
+
Primary page body background
+
+
+
+
+
+
Near White
+
#fcfcfc
+
Button text on dark surfaces
+
+
+
+
+
+
Hero Blaze Gradient
+
multi-stop
+
Hero section, maximum visual impact
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Medium Gray
+
#646464
+
Secondary body text
+
+
+
+
+
+
Warm Gray
+
#4e4e4e
+
Emphasized secondary text
+
+
+
+
+
+
Mid Silver
+
#8d8d8d
+
Tertiary text, footnotes
+
+
+
+
+
+
Light Silver
+
#bbbbbb
+
Dotted-underline link decoration
+
+
+
+
+
+
Pure Black
+
#000000
+
Maximum-emphasis borders
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — 72px / 700 / 1.00 / -1.8px — rb-freigeist-neue (system-ui fallback)
+
+ +
+
Section Heading
+
Section Heading — 48px / 400-700 / 1.00 / normal — rb-freigeist-neue (system-ui fallback)
+
+ +
+
Sub-heading Display
+
Sub-heading — 30px / 600 / 1.20 / normal — rb-freigeist-neue (system-ui fallback)
+
+ +
+
Sub-heading Sans
+
Sub-heading Sans — 38.4px / 400 / 0.83 / normal — basier-square (Inter fallback)
+
+ +
+
Feature Title
+
Feature Title — 18px / 600 / 1.56 / normal — basier-square (Inter fallback)
+
+ +
+
Body large text for intro paragraphs. Basier-square at 400 weight provides quiet geometric precision for all readable content.
+
Body Large — 20px / 400 / 1.40 / normal — basier-square (Inter fallback)
+
+ +
+
Standard body text for paragraphs, navigation, and button labels. The workhorse of the type system.
+
Body / Button — 16px / 400-600 / 1.50 / normal — basier-square (Inter fallback)
+
+ +
+
Caption and metadata descriptions for model cards
+
Caption — 14px / 400-600 / 1.43 / -0.35px — basier-square (Inter fallback)
+
+ +
+
small tag / lowercase transform
+
Small / Tag — 12px / 400 / 1.33 / normal / lowercase — basier-square (Inter fallback)
+
+ +
+
replicate.run("stability-ai/sdxl", input={"prompt": "..."})
+
Code Body — 14px / 400 / 1.43 / normal — JetBrains Mono
+
+ +
+
import replicate
+
Code Small — 11px / 400 / 1.50 / normal — JetBrains Mono
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
dark solid pill
+
+
+ +
white outlined pill
+
+
+ +
frosted glass / search
+
+
+ +
red accent pill
+
+
+ +
status badge
+
+
+ +
+ # Run a model with Replicate
+ import replicate
+ output = replicate.run("stability-ai/sdxl") +
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
standard card
+

Hard Border Pill

+

Content card with 1px solid #202020 border and 9999px pill radius. The default container for model galleries and feature sections.

+
+
+
accent highlighted
+

Red Accent Border

+

Featured or highlighted card with 1px solid Replicate Red border. Used for promoted models and primary emphasis.

+
+
+
dark surface
+

Dark Section Card

+

Dark background card for manifesto-style sections, code examples, and high-contrast feature showcases.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale from 1px to 192px with generous section spacing.

+ +
+
1px
+
2px
+
4px
+
6px
+
8px
+
12px
+
16px
+
24px
+
32px
+
48px
+
64px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+

Replicate uses exclusively pill-shaped geometry. There is only ONE radius in the entire system.

+ +
+
+
+
9999px
+
Pill — the ONLY radius
+
+
+
+
9999px
+
Buttons
+
+
+
+
9999px
+
Cards
+
+
+
+
9999px
+
Badges
+
+
+
+
9999px
+
Images
+
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow, no border. White body and inline text blocks.
+
level 0
+
+
+
Bordered
1px solid #202020. Cards, buttons, containers.
+
level 1
+
+
+
Accent Border
1px solid #ea2804. Featured and highlighted items.
+
level 2
+
+
+
Gradient Hero
Full-width blaze gradient for maximum visual impact.
+
level 3
+
+
+
Dark Section
Dark bg #202020 with light text. Manifesto, footer, features.
+
level 4
+
+
+
+ +
+ + + diff --git a/design-md/runwayml/DESIGN.md b/design-md/runwayml/DESIGN.md new file mode 100644 index 0000000..838e226 --- /dev/null +++ b/design-md/runwayml/DESIGN.md @@ -0,0 +1,244 @@ +# Design System: Runway + +## 1. Visual Theme & Atmosphere + +Runway's interface is a cinematic reel brought to life as a website — a dark, editorial, film-production-grade design where full-bleed photography and video ARE the primary UI elements. This is not a typical tech product page; it's a visual manifesto for AI-powered creativity. Every section feels like a frame from a film: dramatic lighting, sweeping landscapes, and intimate human moments captured in high-quality imagery that dominates the viewport. + +The design language is built on a single typeface — abcNormal — a clean, geometric sans-serif that handles everything from 48px display headlines to 11px uppercase labels. This single-font commitment creates an extreme typographic uniformity that lets the visual content speak louder than the text. Headlines use tight line-heights (1.0) with negative letter-spacing (-0.9px to -1.2px), creating compressed text blocks that feel like film titles rather than marketing copy. + +What makes Runway distinctive is its complete commitment to visual content as design. Rather than illustrating features with icons or diagrams, Runway shows actual AI-generated and AI-enhanced imagery — cars driving through cinematic landscapes, artistic portraits, architectural renders. The interface itself retreats into near-invisibility: minimal borders, zero shadows, subtle cool-gray text, and a dark palette that puts maximum focus on the photography. + +**Key Characteristics:** +- Cinematic full-bleed photography and video as primary UI elements +- Single typeface system: abcNormal for everything from display to micro labels +- Dark-dominant palette with cool-toned neutrals (#767d88, #7d848e) +- Zero shadows, minimal borders — the interface is intentionally invisible +- Tight display typography (line-height 1.0) with negative tracking (-0.9px to -1.2px) +- Uppercase labels with positive letter-spacing for navigational structure +- Weight 450 (unusual intermediate) for small uppercase text — precision craft +- Editorial magazine layout with mixed-size image grids + +## 2. Color Palette & Roles + +### Primary +- **Runway Black** (`#000000`): The primary page background and maximum-emphasis text. +- **Deep Black** (`#030303`): A near-imperceptible variant for layered dark surfaces. +- **Dark Surface** (`#1a1a1a`): Card backgrounds and elevated dark containers. +- **Pure White** (`#ffffff`): Primary text on dark surfaces and light-section backgrounds. + +### Surface & Background +- **Near White** (`#fefefe`): The lightest surface — barely distinguishable from pure white. +- **Cool Cloud** (`#e9ecf2`): Light section backgrounds with a cool blue-gray tint. +- **Border Dark** (`#27272a`): The single dark-mode border color — barely visible containment. + +### Neutrals & Text +- **Charcoal** (`#404040`): Primary body text on light surfaces and secondary text. +- **Near Charcoal** (`#3f3f3f`): Slightly lighter variant for dark-section secondary text. +- **Cool Slate** (`#767d88`): Secondary body text — a distinctly blue-gray cool neutral. +- **Mid Slate** (`#7d848e`): Tertiary text, metadata descriptions. +- **Muted Gray** (`#a7a7a7`): De-emphasized content, timestamps. +- **Cool Silver** (`#c9ccd1`): Light borders and dividers. +- **Light Silver** (`#d0d4d4`): The lightest border/divider variant. +- **Tailwind Gray** (`#6b7280`): Standard Tailwind neutral for supplementary text. +- **Dark Link** (`#0c0c0c`): Darkest link text — nearly black. +- **Footer Gray** (`#999999`): Footer links and deeply muted content. + +### Gradient System +- **None in the interface.** Visual richness comes entirely from photographic content — AI-generated and enhanced imagery provides all the color and gradient the design needs. The interface itself is intentionally colorless. + +## 3. Typography Rules + +### Font Family +- **Universal**: `abcNormal`, with fallback: `abcNormal Fallback` + +*Note: abcNormal is a custom geometric sans-serif. For external implementations, Inter or DM Sans serve as close substitutes.* + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display / Hero | abcNormal | 48px (3rem) | 400 | 1.00 (tight) | -1.2px | Maximum size, film-title presence | +| Section Heading | abcNormal | 40px (2.5rem) | 400 | 1.00–1.10 | -1px to 0px | Feature section titles | +| Sub-heading | abcNormal | 36px (2.25rem) | 400 | 1.00 (tight) | -0.9px | Secondary section markers | +| Card Title | abcNormal | 24px (1.5rem) | 400 | 1.00 (tight) | normal | Article and card headings | +| Feature Title | abcNormal | 20px (1.25rem) | 400 | 1.00 (tight) | normal | Small headings | +| Body / Button | abcNormal | 16px (1rem) | 400–600 | 1.30–1.50 | -0.16px to normal | Standard body, nav links | +| Caption / Label | abcNormal | 14px (0.88rem) | 500–600 | 1.25–1.43 | 0.35px (uppercase) | Metadata, section labels | +| Small | abcNormal | 13px (0.81rem) | 400 | 1.30 (tight) | -0.16px to -0.26px | Compact descriptions | +| Micro / Tag | abcNormal | 11px (0.69rem) | 450 | 1.30 (tight) | normal | Uppercase tags, tiny labels | + +### Principles +- **One typeface, complete expression**: abcNormal handles every text role. The design achieves variety through size, weight, case, and letter-spacing rather than font-family switching. +- **Tight everywhere**: Nearly every size uses line-height 1.0–1.30 — even body text is relatively compressed. This creates a dense, editorial feel. +- **Weight 450 — the precision detail**: Some small uppercase labels use weight 450, an uncommon intermediate between regular (400) and medium (500). This micro-craft signals typographic sophistication. +- **Negative tracking as default**: Even body text uses -0.16px to -0.26px letter-spacing, keeping everything slightly tighter than default. +- **Uppercase as structure**: Labels at 14px and 11px use `text-transform: uppercase` with positive letter-spacing (0.35px) to create navigational signposts that contrast with the tight lowercase text. + +## 4. Component Stylings + +### Buttons +- Text: weight 600 at 14px abcNormal +- Background: likely transparent or dark, with minimal border +- Radius: small (4px) for button-like links +- The button design is extremely restrained — no heavy fills or borders detected +- Interactive elements blend into the editorial flow + +### Cards & Containers +- Background: transparent or Dark Surface (`#1a1a1a`) +- Border: `1px solid #27272a` (dark mode) — barely visible containment +- Radius: small (4–8px) for functional elements; 16px for alert-style containers +- Shadow: zero — no shadows on any element +- Cards are primarily photographic — the image IS the card + +### Navigation +- Minimal horizontal nav — transparent over hero content +- Logo: Runway wordmark in white/black +- Links: abcNormal at 16px, weight 400–600 +- Hover: text shifts to white or higher opacity +- Extremely subtle — designed to not compete with visual content + +### Image Treatment +- Full-bleed cinematic photography and video dominate +- AI-generated content shown at large scale as primary visual elements +- Mixed-size image grids creating editorial magazine layouts +- Dark overlays on hero images for text readability +- Product screenshots with subtle rounded corners (8px) + +### Distinctive Components + +**Cinematic Hero** +- Full-viewport image or video with text overlay +- Headline in 48px abcNormal, white on dark imagery +- The image is always cinematic quality — film-grade composition + +**Research Article Cards** +- Photographic thumbnails with article titles +- Mixed-size grid layout (large feature + smaller supporting) +- Clean text overlay or below-image caption style + +**Trust Bar** +- Company logos (leading organizations across industries) +- Clean, monochrome treatment +- Horizontal layout with generous spacing + +**Mission Statement** +- "We are building AI to simulate the world through imagination, art and aesthetics" +- On a dark background with white text +- The emotional close — artistic and philosophical + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 4px, 6px, 8px, 12px, 16px, 20px, 24px, 28px, 32px, 48px, 64px, 78px +- Section vertical spacing: generous (48–78px) +- Component gaps: 16–24px + +### Grid & Container +- Max container width: up to 1600px (cinema-wide) +- Hero: full-viewport, edge-to-edge +- Content sections: centered with generous margins +- Image grids: asymmetric, magazine-style mixed sizes +- Footer: full-width dark section + +### Whitespace Philosophy +- **Cinema-grade breathing**: Large vertical gaps between sections create a scrolling experience that feels like watching scenes change. +- **Images replace whitespace**: Where other sites use empty space, Runway fills it with photography. The visual content IS the breathing room. +- **Editorial grid asymmetry**: The image grid uses intentionally varied sizes — large hero images paired with smaller supporting images, creating visual rhythm. + +### Border Radius Scale +- Sharp (4px): Buttons, small interactive elements +- Subtle (6px): Links, small containers +- Comfortable (8px): Standard containers, image cards +- Generous (16px): Alert-style containers, featured elements + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, no border | Everything — the dominant state | +| Bordered (Level 1) | `1px solid #27272a` | Alert containers only | +| Dark Section (Level 2) | Dark bg (#000000 / #1a1a1a) with light text | Hero, features, footer | +| Light Section (Level 3) | White/Cool Cloud bg with dark text | Content sections, research | + +**Shadow Philosophy**: Runway uses **zero shadows**. This is a film-production design decision — in cinema, depth comes from lighting, focus, and composition, not drop shadows. The interface mirrors this philosophy: depth is communicated through dark/light section alternation, photographic depth-of-field, and overlay transparency — never through CSS box-shadow. + +## 7. Do's and Don'ts + +### Do +- Use full-bleed cinematic photography as the primary visual element +- Use abcNormal for all text — maintain the single-typeface commitment +- Keep display line-heights at 1.0 with negative letter-spacing for film-title density +- Use the cool-gray neutral palette (#767d88, #7d848e) for secondary text +- Maintain zero shadows — depth comes from photography and section backgrounds +- Use uppercase with letter-spacing for navigational labels (14px, 0.35px spacing) +- Apply small border-radius (4–8px) — the design is NOT pill-shaped +- Let visual content (photos, videos) dominate — the UI should be invisible +- Use weight 450 for micro labels — the precision matters + +### Don't +- Don't add decorative colors to the interface — the only color comes from photography +- Don't use heavy borders or shadows — the interface must be nearly invisible +- Don't use pill-shaped radius — Runway's geometry is subtly rounded, not circular +- Don't use bold (700+) weight — 400–600 is the full range, with 450 as a precision tool +- Don't compete with the visual content — text overlays should be minimal and restrained +- Don't use gradient backgrounds in the interface — gradients exist only in photography +- Don't use more than one typeface — abcNormal handles everything +- Don't use body line-height above 1.50 — the tight, editorial feel is core +- Don't reduce image quality — cinematic photography IS the design + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <640px | Single column, stacked images, reduced hero text | +| Tablet | 640–768px | 2-column image grids begin | +| Small Desktop | 768–1024px | Standard layout | +| Desktop | 1024–1280px | Full layout, expanded hero | +| Large Desktop | 1280–1600px | Maximum cinema-width container | + +### Touch Targets +- Navigation links at comfortable 16px +- Article cards serve as large touch targets +- Buttons at 14px weight 600 with adequate padding + +### Collapsing Strategy +- **Navigation**: Collapses to hamburger on mobile +- **Hero**: Full-bleed maintained, text scales down +- **Image grids**: Multi-column → 2-column → single column +- **Research articles**: Feature-size cards → stacked full-width +- **Trust logos**: Horizontal scroll or reduced grid + +### Image Behavior +- Cinematic images scale proportionally +- Full-bleed hero maintained across all sizes +- Image grids reflow to fewer columns +- Video content maintains aspect ratio + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Background Dark: "Runway Black (#000000)" +- Background Light: "Pure White (#ffffff)" +- Primary Text Dark: "Charcoal (#404040)" +- Secondary Text: "Cool Slate (#767d88)" +- Muted Text: "Muted Gray (#a7a7a7)" +- Light Border: "Cool Silver (#c9ccd1)" +- Dark Border: "Border Dark (#27272a)" +- Card Surface: "Dark Surface (#1a1a1a)" + +### Example Component Prompts +- "Create a cinematic hero section: full-bleed dark background with a cinematic image overlay. Headline at 48px abcNormal weight 400, line-height 1.0, letter-spacing -1.2px in white. Minimal text below in Cool Slate (#767d88) at 16px." +- "Design a research article grid: one large card (50% width) with a cinematic image and 24px title, next to two smaller cards stacked. All images with 8px border-radius. Titles in white (dark bg) or Charcoal (#404040, light bg)." +- "Build a section label: 14px abcNormal weight 500, uppercase, letter-spacing 0.35px in Cool Slate (#767d88). No border, no background." +- "Create a trust bar: company logos in monochrome, horizontal layout with generous spacing. On dark background with white/gray logo treatments." +- "Design a mission statement section: Runway Black background, white text at 36px abcNormal, line-height 1.0, letter-spacing -0.9px. Centered, with generous vertical padding." + +### Iteration Guide +1. Visual content first — always include cinematic photography +2. Use abcNormal for everything — specify size and weight, never change the font +3. Keep the interface invisible — no heavy borders, no shadows, no bright colors +4. Use the cool slate grays (#767d88, #7d848e) for secondary text — not warm grays +5. Uppercase labels need letter-spacing (0.35px) — never tight uppercase +6. Dark sections should be truly dark (#000000 or #1a1a1a) — no medium grays as surfaces diff --git a/design-md/runwayml/README.md b/design-md/runwayml/README.md new file mode 100644 index 0000000..b9786f0 --- /dev/null +++ b/design-md/runwayml/README.md @@ -0,0 +1,25 @@ +# Runwayml — Design System + +> Design.md extracted from the public [runwayml](https://runwayml.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 Runwayml 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 +![Runwayml Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/runwayml/preview-dark-screenshot.png) + +### Light Mode +![Runwayml Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/runwayml/preview-screenshot.png) diff --git a/design-md/runwayml/preview-dark.html b/design-md/runwayml/preview-dark.html new file mode 100644 index 0000000..003b038 --- /dev/null +++ b/design-md/runwayml/preview-dark.html @@ -0,0 +1,664 @@ + + + + + +Design System Preview: Runway (Dark) + + + + + + + + + + + +
+

Design System Preview:
Runway

+

Cinematic, minimal, editorial design tokens from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Runway Black
+
#000000
+
Primary page background, maximum-emphasis text
+
+
+
+
+
+
Deep Black
+
#030303
+
Layered dark surfaces
+
+
+
+
+
+
Dark Surface
+
#1a1a1a
+
Card backgrounds, elevated dark containers
+
+
+
+
+
+
Pure White
+
#ffffff
+
Primary text on dark, light-section backgrounds
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Near White
+
#fefefe
+
Lightest surface variant
+
+
+
+
+
+
Cool Cloud
+
#e9ecf2
+
Light section backgrounds, cool blue-gray tint
+
+
+
+
+
+
Border Dark
+
#27272a
+
Dark-mode border color
+
+
+
+
+ +
+

Cool Neutrals & Text

+
+
+
+
+
Charcoal
+
#404040
+
Primary body text on light surfaces
+
+
+
+
+
+
Cool Slate
+
#767d88
+
Secondary body text, cool blue-gray
+
+
+
+
+
+
Mid Slate
+
#7d848e
+
Tertiary text, metadata
+
+
+
+
+
+
Muted Gray
+
#a7a7a7
+
De-emphasized content, timestamps
+
+
+
+
+
+
Cool Silver
+
#c9ccd1
+
Light borders and dividers
+
+
+
+
+
+
Light Silver
+
#d0d4d4
+
Lightest border/divider variant
+
+
+
+
+
+
Tailwind Gray
+
#6b7280
+
Supplementary text
+
+
+
+
+
+
Footer Gray
+
#999999
+
Footer links, deeply muted content
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+

Single typeface system: DM Sans (abcNormal substitute). One font, complete expression.

+ +
+
Display Hero
+
Display / Hero -- 48px / 400 / 1.00 / -1.2px
+
+ +
+
Section Heading
+
Section Heading -- 40px / 400 / 1.00 / -1px
+
+ +
+
Sub-heading
+
Sub-heading -- 36px / 400 / 1.00 / -0.9px
+
+ +
+
Card Title
+
Card Title -- 24px / 400 / 1.00 / normal
+
+ +
+
Feature Title
+
Feature Title -- 20px / 400 / 1.00 / normal
+
+ +
+
Body text for standard paragraphs, navigation links, and button labels. DM Sans provides geometric precision across all UI copy.
+
Body / Button -- 16px / 400 / 1.30 / -0.16px
+
+ +
+
SECTION LABEL
+
Caption / Label -- 14px / 500 / 1.25 / 0.35px / uppercase
+
+ +
+
Compact description text for metadata and small copy blocks.
+
Small -- 13px / 400 / 1.30 / -0.16px
+
+ +
+
MICRO TAG LABEL
+
Micro / Tag -- 11px / 450 / 1.30 / normal / uppercase
+
+
+ +
+ + +
+
03 / Card Examples
+

Cards & Containers

+ +
+
+
Bordered Card
+

Dark Border Containment

+

Standard content card with 1px solid border-dark and 8px radius. The default container for research articles and feature sections.

+
+
+
Deep Surface Card
+

Cinematic Container

+

Deep black surface card on #030303 with border containment. Layered depth through background variation.

+
+
+
Minimal Card
+

Transparent Container

+

Minimal bordered card with transparent background. The interface retreats to let content speak.

+
+
+
+ +
+ + +
+
04 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Cinema-grade breathing between sections.

+ +
+
4px
+
6px
+
8px
+
12px
+
16px
+
20px
+
24px
+
28px
+
32px
+
48px
+
64px
+
78px
+
+
+ +
+ + +
+
05 / Border Radius Scale
+

Border Radius

+

Subtle radius only. Not pill-shaped.

+ +
+
4px
Sharp / Buttons
+
6px
Subtle / Links
+
8px
Comfortable / Cards
+
16px
Generous / Alerts
+
+
+ +
+ + +
+
06 / Elevation & Depth
+

Depth & Elevation

+

Zero shadows. Depth comes from section alternation and photography, never from box-shadow.

+ +
+
+
Flat
No shadow, no border. The dominant state for everything.
+
Level 0
+
+
+
Bordered
1px solid #27272a. Alert containers only.
+
Level 1
+
+
+
Dark Section
Dark bg with light text. Hero, features, footer.
+
Level 2
+
+
+
Light Section
White or Cool Cloud bg with dark text. Content sections.
+
Level 3
+
+
+
+ +
+ + + diff --git a/design-md/runwayml/preview.html b/design-md/runwayml/preview.html new file mode 100644 index 0000000..002aaa1 --- /dev/null +++ b/design-md/runwayml/preview.html @@ -0,0 +1,665 @@ + + + + + +Design System Preview: Runway (Light) + + + + + + + + + + + +
+

Design System Preview:
Runway

+

Cinematic, minimal, editorial design tokens from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Runway Black
+
#000000
+
Primary page background, maximum-emphasis text
+
+
+
+
+
+
Deep Black
+
#030303
+
Layered dark surfaces
+
+
+
+
+
+
Dark Surface
+
#1a1a1a
+
Card backgrounds, elevated dark containers
+
+
+
+
+
+
Pure White
+
#ffffff
+
Primary text on dark, light-section backgrounds
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Near White
+
#fefefe
+
Lightest surface variant
+
+
+
+
+
+
Cool Cloud
+
#e9ecf2
+
Light section backgrounds, cool blue-gray tint
+
+
+
+
+
+
Border Dark
+
#27272a
+
Dark-mode border color
+
+
+
+
+ +
+

Cool Neutrals & Text

+
+
+
+
+
Charcoal
+
#404040
+
Primary body text on light surfaces
+
+
+
+
+
+
Cool Slate
+
#767d88
+
Secondary body text, cool blue-gray
+
+
+
+
+
+
Mid Slate
+
#7d848e
+
Tertiary text, metadata
+
+
+
+
+
+
Muted Gray
+
#a7a7a7
+
De-emphasized content, timestamps
+
+
+
+
+
+
Cool Silver
+
#c9ccd1
+
Light borders and dividers
+
+
+
+
+
+
Light Silver
+
#d0d4d4
+
Lightest border/divider variant
+
+
+
+
+
+
Tailwind Gray
+
#6b7280
+
Supplementary text
+
+
+
+
+
+
Footer Gray
+
#999999
+
Footer links, deeply muted content
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+

Single typeface system: DM Sans (abcNormal substitute). One font, complete expression.

+ +
+
Display Hero
+
Display / Hero -- 48px / 400 / 1.00 / -1.2px
+
+ +
+
Section Heading
+
Section Heading -- 40px / 400 / 1.00 / -1px
+
+ +
+
Sub-heading
+
Sub-heading -- 36px / 400 / 1.00 / -0.9px
+
+ +
+
Card Title
+
Card Title -- 24px / 400 / 1.00 / normal
+
+ +
+
Feature Title
+
Feature Title -- 20px / 400 / 1.00 / normal
+
+ +
+
Body text for standard paragraphs, navigation links, and button labels. DM Sans provides geometric precision across all UI copy.
+
Body / Button -- 16px / 400 / 1.30 / -0.16px
+
+ +
+
SECTION LABEL
+
Caption / Label -- 14px / 500 / 1.25 / 0.35px / uppercase
+
+ +
+
Compact description text for metadata and small copy blocks.
+
Small -- 13px / 400 / 1.30 / -0.16px
+
+ +
+
MICRO TAG LABEL
+
Micro / Tag -- 11px / 450 / 1.30 / normal / uppercase
+
+
+ +
+ + +
+
03 / Card Examples
+

Cards & Containers

+ +
+
+
Bordered Card
+

Cool Silver Border

+

Standard content card with 1px solid cool-silver border and 8px radius. The default container for research articles and feature sections.

+
+
+
Dark Surface Card
+

Cinematic Container

+

Dark surface card on #1a1a1a with border-dark containment. Used for featured content on dark sections.

+
+
+
Minimal Card
+

Transparent Container

+

Minimal bordered card with transparent background and subtle border. The interface retreats to let content speak.

+
+
+
+ +
+ + +
+
04 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Cinema-grade breathing between sections.

+ +
+
4px
+
6px
+
8px
+
12px
+
16px
+
20px
+
24px
+
28px
+
32px
+
48px
+
64px
+
78px
+
+
+ +
+ + +
+
05 / Border Radius Scale
+

Border Radius

+

Subtle radius only. Not pill-shaped.

+ +
+
4px
Sharp / Buttons
+
6px
Subtle / Links
+
8px
Comfortable / Cards
+
16px
Generous / Alerts
+
+
+ +
+ + +
+
06 / Elevation & Depth
+

Depth & Elevation

+

Zero shadows. Depth comes from section alternation and photography, never from box-shadow.

+ +
+
+
Flat
No shadow, no border. The dominant state for everything.
+
Level 0
+
+
+
Bordered
1px solid border. Alert containers only.
+
Level 1
+
+
+
Dark Section
Dark bg with light text. Hero, features, footer.
+
Level 2
+
+
+
Light Section
White or Cool Cloud bg with dark text. Content sections.
+
Level 3
+
+
+
+ +
+ + + diff --git a/design-md/sanity/DESIGN.md b/design-md/sanity/DESIGN.md new file mode 100644 index 0000000..e5678c9 --- /dev/null +++ b/design-md/sanity/DESIGN.md @@ -0,0 +1,357 @@ +# Design System: Sanity + +## 1. Visual Theme & Atmosphere + +Sanity's website is a developer-content platform rendered as a nocturnal command center -- dark, precise, and deeply structured. The entire experience sits on a near-black canvas (`#0b0b0b`) that reads less like a "dark mode toggle" and more like the natural state of a tool built for people who live in terminals. Where most CMS marketing pages reach for friendly pastels and soft illustration, Sanity leans into the gravity of its own product: structured content deserves a structured stage. + +The signature typographic voice is waldenburgNormal -- a distinctive, slightly geometric sans-serif with tight negative letter-spacing (-0.32px to -4.48px at display sizes) that gives headlines a compressed, engineered quality. At 112px hero scale with -4.48px tracking, the type feels almost machined -- like precision-cut steel letterforms. This is paired with IBM Plex Mono for code and technical labels, creating a dual-register voice: editorial authority meets developer credibility. + +What makes Sanity distinctive is the interplay between its monochromatic dark palette and vivid, saturated accent punctuation. The neutral scale runs from pure black through a tightly controlled gray ramp (`#0b0b0b` -> `#212121` -> `#353535` -> `#797979` -> `#b9b9b9` -> `#ededed` -> `#ffffff`) with no warm or cool bias -- just pure, achromatic precision. Against this disciplined backdrop, a neon green accent (display-p3 green) and electric blue (`#0052ef`) land with the impact of signal lights in a dark control room. The orange-red CTA (`#f36458`) provides the only warm touch in an otherwise cool system. + +**Key Characteristics:** +- Near-black canvas (`#0b0b0b`) as the default, natural environment -- not a dark "mode" but the primary identity +- waldenburgNormal with extreme negative tracking at display sizes, creating a precision-engineered typographic voice +- Pure achromatic gray scale -- no warm or cool undertones, pure neutral discipline +- Vivid accent punctuation: neon green, electric blue (`#0052ef`), and coral-red (`#f36458`) against the dark field +- Pill-shaped primary buttons (99999px radius) contrasting with subtle rounded rectangles (3-6px) for secondary actions +- IBM Plex Mono as the technical counterweight to the editorial display face +- Full-bleed dark sections with content contained in measured max-width containers +- Hover states that shift to electric blue (`#0052ef`) across all interactive elements -- a consistent "activation" signal + +## 2. Color Palette & Roles + +### Primary Brand +- **Sanity Black** (`#0b0b0b`): The primary canvas and dominant surface color. Not pure black but close enough to feel absolute. The foundation of the entire visual identity. +- **Pure Black** (`#000000`): Used for maximum-contrast moments, deep overlays, and certain border accents. +- **Sanity Red** (`#f36458`): The primary CTA and brand accent -- a warm coral-red that serves as the main call-to-action color. Used for "Get Started" buttons and primary conversion points. + +### Accent & Interactive +- **Electric Blue** (`#0052ef`): The universal hover/active state color across the entire system. Buttons, links, and interactive elements all shift to this blue on hover. Also used as `--color-blue-700` for focus rings and active states. +- **Light Blue** (`#55beff` / `#afe3ff`): Secondary blue variants used for accent backgrounds, badges, and dimmed blue surfaces. +- **Neon Green** (`color(display-p3 .270588 1 0)`): A vivid, wide-gamut green used as `--color-fg-accent-green` for success states and premium feature highlights. Falls back to `#19d600` in sRGB. +- **Accent Magenta** (`color(display-p3 .960784 0 1)`): A vivid wide-gamut magenta for specialized accent moments. + +### Surface & Background +- **Near Black** (`#0b0b0b`): Default page background and primary surface. +- **Dark Gray** (`#212121`): Elevated surface color for cards, secondary containers, input backgrounds, and subtle layering above the base canvas. +- **Medium Dark** (`#353535`): Tertiary surface and border color for creating depth between dark layers. +- **Pure White** (`#ffffff`): Used for inverted sections, light-on-dark text, and specific button surfaces. +- **Light Gray** (`#ededed`): Light surface for inverted/light sections and subtle background tints. + +### Neutrals & Text +- **White** (`#ffffff`): Primary text color on dark surfaces, maximum legibility. +- **Silver** (`#b9b9b9`): Secondary text, body copy on dark surfaces, muted descriptions, and placeholder text. +- **Medium Gray** (`#797979`): Tertiary text, metadata, timestamps, and de-emphasized content. +- **Charcoal** (`#212121`): Text on light/inverted surfaces. +- **Near Black Text** (`#0b0b0b`): Primary text on white/light button surfaces. + +### Semantic +- **Error Red** (`#dd0000`): Destructive actions, validation errors, and critical warnings -- a pure, high-saturation red. +- **GPC Green** (`#37cd84`): Privacy/compliance indicator green. +- **Focus Ring Blue** (`#0052ef`): Focus ring color for accessibility, matching the interactive blue. + +### Border System +- **Dark Border** (`#0b0b0b`): Primary border on dark containers -- barely visible, maintaining minimal containment. +- **Subtle Border** (`#212121`): Standard border for inputs, textareas, and card edges on dark surfaces. +- **Medium Border** (`#353535`): More visible borders for emphasized containment and dividers. +- **Light Border** (`#ffffff`): Border on inverted/light elements or buttons needing contrast separation. +- **Orange Border** (`color(display-p3 1 0.3333 0)`): Special accent border for highlighted/featured elements. + +## 3. Typography Rules + +### Font Family +- **Display / Headline**: `waldenburgNormal`, fallback: `waldenburgNormal Fallback, ui-sans-serif, system-ui` +- **Body / UI**: `waldenburgNormal`, fallback: `waldenburgNormal Fallback, ui-sans-serif, system-ui` +- **Code / Technical**: `IBM Plex Mono`, fallback: `ibmPlexMono Fallback, ui-monospace` +- **Fallback / CJK**: `Helvetica`, fallback: `Arial, Hiragino Sans GB, STXihei, Microsoft YaHei, WenQuanYi Micro Hei` + +*Note: waldenburgNormal is a custom typeface. For external implementations, use Inter or Space Grotesk as the sans substitute (geometric, slightly condensed feel). IBM Plex Mono is available on Google Fonts.* + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display / Hero | waldenburgNormal | 112px (7rem) | 400 | 1.00 (tight) | -4.48px | Maximum impact, compressed tracking | +| Hero Secondary | waldenburgNormal | 72px (4.5rem) | 400 | 1.05 (tight) | -2.88px | Large section headers | +| Section Heading | waldenburgNormal | 48px (3rem) | 400 | 1.08 (tight) | -1.68px | Primary section anchors | +| Heading Large | waldenburgNormal | 38px (2.38rem) | 400 | 1.10 (tight) | -1.14px | Feature section titles | +| Heading Medium | waldenburgNormal | 32px (2rem) | 425 | 1.24 (tight) | -0.32px | Card titles, subsection headers | +| Heading Small | waldenburgNormal | 24px (1.5rem) | 425 | 1.24 (tight) | -0.24px | Smaller feature headings | +| Subheading | waldenburgNormal | 20px (1.25rem) | 425 | 1.13 (tight) | -0.2px | Sub-section markers | +| Body Large | waldenburgNormal | 18px (1.13rem) | 400 | 1.50 | -0.18px | Intro paragraphs, descriptions | +| Body | waldenburgNormal | 16px (1rem) | 400 | 1.50 | normal | Standard body text | +| Body Small | waldenburgNormal | 15px (0.94rem) | 400 | 1.50 | -0.15px | Compact body text | +| Caption | waldenburgNormal | 13px (0.81rem) | 400-500 | 1.30-1.50 | -0.13px | Metadata, descriptions, tags | +| Small Caption | waldenburgNormal | 12px (0.75rem) | 400 | 1.50 | -0.12px | Footnotes, timestamps | +| Micro / Label | waldenburgNormal | 11px (0.69rem) | 500-600 | 1.00-1.50 | normal | Uppercase labels, tiny badges | +| Code Body | IBM Plex Mono | 15px (0.94rem) | 400 | 1.50 | normal | Code blocks, technical content | +| Code Caption | IBM Plex Mono | 13px (0.81rem) | 400-500 | 1.30-1.50 | normal | Inline code, small technical labels | +| Code Micro | IBM Plex Mono | 10-12px | 400 | 1.30-1.50 | normal | Tiny code labels, uppercase tags | + +### Principles +- **Extreme negative tracking at scale**: Display headings at 72px+ use aggressive negative letter-spacing (-2.88px to -4.48px), creating a tight, engineered quality that distinguishes Sanity from looser editorial typography. +- **Single font, multiple registers**: waldenburgNormal handles both editorial display and functional UI text. The weight range is narrow (400-425 for most, 500-600 only for tiny labels), keeping the voice consistent. +- **OpenType feature control**: Typography uses deliberate feature settings including `"cv01", "cv11", "cv12", "cv13", "ss07"` for display sizes and `"calt" 0` for body text, fine-tuning character alternates for different contexts. +- **Tight headings, relaxed body**: Headings use 1.00-1.24 line-height (extremely tight), while body text breathes at 1.50. This contrast creates clear visual hierarchy. +- **Uppercase for technical labels**: IBM Plex Mono captions and small labels frequently use `text-transform: uppercase` with tight line-heights, creating a "system readout" aesthetic for technical metadata. + +## 4. Component Stylings + +### Buttons + +**Primary CTA (Pill)** +- Background: Sanity Red (`#f36458`) +- Text: White (`#ffffff`) +- Padding: 8px 16px +- Border Radius: 99999px (full pill) +- Border: none +- Hover: Electric Blue (`#0052ef`) background, white text +- Font: 16px waldenburgNormal, weight 400 + +**Secondary (Dark Pill)** +- Background: Near Black (`#0b0b0b`) +- Text: Silver (`#b9b9b9`) +- Padding: 8px 12px +- Border Radius: 99999px (full pill) +- Border: none +- Hover: Electric Blue (`#0052ef`) background, white text + +**Outlined (Light Pill)** +- Background: White (`#ffffff`) +- Text: Near Black (`#0b0b0b`) +- Padding: 8px +- Border Radius: 99999px (full pill) +- Border: 1px solid `#0b0b0b` +- Hover: Electric Blue (`#0052ef`) background, white text + +**Ghost / Subtle** +- Background: Dark Gray (`#212121`) +- Text: Silver (`#b9b9b9`) +- Padding: 0px 12px +- Border Radius: 5px +- Border: 1px solid `#212121` +- Hover: Electric Blue (`#0052ef`) background, white text + +**Uppercase Label Button** +- Font: 11px waldenburgNormal, weight 600, uppercase +- Background: transparent or `#212121` +- Text: Silver (`#b9b9b9`) +- Letter-spacing: normal +- Used for tab-like navigation and filter controls + +### Cards + +**Dark Content Card** +- Background: `#212121` +- Border: 1px solid `#353535` or `#212121` +- Border Radius: 6px +- Padding: 24px +- Text: White (`#ffffff`) for titles, Silver (`#b9b9b9`) for body +- Hover: subtle border color shift or elevation change + +**Feature Card (Full-bleed)** +- Background: `#0b0b0b` or full-bleed image/gradient +- Border: none or 1px solid `#212121` +- Border Radius: 12px +- Padding: 32-48px +- Contains large imagery with overlaid text + +### Inputs + +**Text Input / Textarea** +- Background: Near Black (`#0b0b0b`) +- Text: Silver (`#b9b9b9`) +- Border: 1px solid `#212121` +- Padding: 8px 12px +- Border Radius: 3px +- Focus: outline with `var(--focus-ring-color)` (blue), 2px solid +- Focus background: shifts to deep cyan (`#072227`) + +**Search Input** +- Background: `#0b0b0b` +- Text: Silver (`#b9b9b9`) +- Padding: 0px 12px +- Border Radius: 3px +- Placeholder: Medium Gray (`#797979`) + +### Navigation + +**Top Navigation** +- Background: Near Black (`#0b0b0b`) with backdrop blur +- Height: auto, compact padding +- Logo: left-aligned, Sanity wordmark +- Links: waldenburgNormal 16px, Silver (`#b9b9b9`) +- Link Hover: Electric Blue via `--color-fg-accent-blue` +- CTA Button: Sanity Red pill button right-aligned +- Separator: 1px border-bottom `#212121` + +**Footer** +- Background: Near Black (`#0b0b0b`) +- Multi-column link layout +- Links: Silver (`#b9b9b9`), hover to blue +- Section headers: White (`#ffffff`), 13px uppercase IBM Plex Mono + +### Badges / Pills + +**Neutral Subtle** +- Background: White (`#ffffff`) +- Text: Near Black (`#0b0b0b`) +- Padding: 8px +- Font: 13px +- Border Radius: 99999px + +**Neutral Filled** +- Background: Near Black (`#0b0b0b`) +- Text: White (`#ffffff`) +- Padding: 8px +- Font: 13px +- Border Radius: 99999px + +## 5. Layout Principles + +### Spacing System +Base unit: **8px** + +| Token | Value | Usage | +|-------|-------|-------| +| space-1 | 1px | Hairline gaps, border-like spacing | +| space-2 | 2px | Minimal internal padding | +| space-3 | 4px | Tight component internal spacing | +| space-4 | 6px | Small element gaps | +| space-5 | 8px | Base unit -- button padding, input padding, badge padding | +| space-6 | 12px | Standard component gap, button horizontal padding | +| space-7 | 16px | Section internal padding, card spacing | +| space-8 | 24px | Large component padding, card internal spacing | +| space-9 | 32px | Section padding, container gutters | +| space-10 | 48px | Large section vertical spacing | +| space-11 | 64px | Major section breaks | +| space-12 | 96-120px | Hero vertical padding, maximum section spacing | + +### Grid & Container +- Max content width: ~1440px (inferred from breakpoints) +- Page gutter: 32px on desktop, 16px on mobile +- Content sections use full-bleed backgrounds with centered, max-width content +- Multi-column layouts: 2-3 columns on desktop, single column on mobile +- Card grids: CSS Grid with consistent gaps (16-24px) + +### Whitespace Philosophy +Sanity uses aggressive vertical spacing between sections (64-120px) to create breathing room on the dark canvas. Within sections, spacing is tighter (16-32px), creating dense information clusters separated by generous voids. This rhythm gives the page a "slides" quality -- each section feels like its own focused frame. + +### Border Radius Scale + +| Token | Value | Usage | +|-------|-------|-------| +| radius-xs | 3px | Inputs, textareas, subtle rounding | +| radius-sm | 4-5px | Secondary buttons, small cards, tags | +| radius-md | 6px | Standard cards, containers | +| radius-lg | 12px | Large cards, feature containers, forms | +| radius-pill | 99999px | Primary buttons, badges, nav pills | + +## 6. Depth & Elevation + +### Shadow System + +| Level | Value | Usage | +|-------|-------|-------| +| Level 0 (Flat) | none | Default state for most elements -- dark surfaces create depth through color alone | +| Level 1 (Subtle) | 0px 0px 0px 1px `#212121` | Border-like shadow for minimal containment without visible borders | +| Level 2 (Focus) | 0 0 0 2px `var(--color-blue-500)` | Focus ring for inputs and interactive elements | +| Level 3 (Overlay) | Backdrop blur + semi-transparent dark | Navigation overlay, modal backgrounds | + +### Depth Philosophy +Sanity's depth system is almost entirely **colorimetric** rather than shadow-based. Elevation is communicated through surface color shifts: `#0b0b0b` (ground) -> `#212121` (elevated) -> `#353535` (prominent) -> `#ffffff` (inverted/highest). This approach is native to dark interfaces where traditional drop shadows would be invisible. The few shadows that exist are ring-based (0px 0px 0px Npx) or blur-based (backdrop-filter) rather than offset shadows, maintaining the flat, precision-engineered aesthetic. + +Border-based containment (1px solid `#212121` or `#353535`) serves as the primary spatial separator, with the border darkness calibrated to be visible but not dominant. The system avoids "floating card" aesthetics -- everything feels mounted to the surface rather than hovering above it. + +## 7. Do's and Don'ts + +### Do +- Use the achromatic gray scale as the foundation -- maintain pure neutral discipline with no warm/cool tinting +- Apply Electric Blue (`#0052ef`) consistently as the universal hover/active state across all interactive elements +- Use extreme negative letter-spacing (-2px to -4.48px) on display headings 48px and above +- Keep primary CTAs as full-pill shapes (99999px radius) with the coral-red (`#f36458`) +- Use IBM Plex Mono uppercase for technical labels, tags, and system metadata +- Communicate depth through surface color (dark-to-light) rather than shadows +- Maintain generous vertical section spacing (64-120px) on the dark canvas +- Use `"cv01", "cv11", "cv12", "cv13", "ss07"` OpenType features for display typography + +### Don't +- Don't introduce warm or cool color tints to the neutral scale -- Sanity's grays are pure achromatic +- Don't use drop shadows for elevation -- dark interfaces demand colorimetric depth +- Don't apply border-radius between 13px and 99998px -- the system jumps from 12px (large card) directly to pill (99999px) +- Don't mix the coral-red CTA with the electric blue interactive color in the same element +- Don't use heavy font weights (700+) -- the system maxes out at 600 and only for 11px uppercase labels +- Don't place light text on light surfaces or dark text on dark surfaces without checking the gray-on-gray contrast ratio +- Don't use traditional offset box-shadows -- ring shadows (0 0 0 Npx) or border-based containment only +- Don't break the tight line-height on headings -- 1.00-1.24 is the range, never go to 1.5+ for display text + +## 8. Responsive Behavior + +### Breakpoints + +| Name | Width | Behavior | +|------|-------|----------| +| Desktop XL | >= 1640px | Full layout, maximum content width | +| Desktop | >= 1440px | Standard desktop layout | +| Desktop Compact | >= 1200px | Slightly condensed desktop | +| Laptop | >= 1100px | Reduced column widths | +| Tablet Landscape | >= 960px | 2-column layouts begin collapsing | +| Tablet | >= 768px | Transition zone, some elements stack | +| Mobile Large | >= 720px | Near-tablet layout | +| Mobile | >= 480px | Single-column, stacked layout | +| Mobile Small | >= 376px | Minimum supported width | + +### Collapsing Strategy +- **Navigation**: Horizontal links collapse to hamburger menu below 768px +- **Hero typography**: Scales from 112px -> 72px -> 48px -> 38px across breakpoints, maintaining tight letter-spacing ratios +- **Grid layouts**: 3-column -> 2-column at ~960px, single-column below 768px +- **Card grids**: Horizontal scrolling on mobile instead of wrapping (preserving card aspect ratios) +- **Section spacing**: Vertical padding reduces by ~40% on mobile (120px -> 64px -> 48px) +- **Button sizing**: CTA pills maintain padding but reduce font size; ghost buttons stay fixed +- **Code blocks**: Horizontal scroll with preserved monospace formatting + +### Mobile-Specific Adjustments +- Full-bleed sections extend edge-to-edge with 16px internal gutters +- Touch targets: minimum 44px for all interactive elements +- Heading letter-spacing relaxes slightly at mobile sizes (less aggressive negative tracking) +- Image containers switch from fixed aspect ratios to full-width with auto height + +## 9. Agent Prompt Guide + +### Quick Color Reference +``` +Background: #0b0b0b (near-black canvas) +Surface: #212121 (elevated cards/containers) +Border: #353535 (visible) / #212121 (subtle) +Text Primary: #ffffff (white on dark) +Text Secondary: #b9b9b9 (silver on dark) +Text Tertiary: #797979 (medium gray) +CTA: #f36458 (coral-red) +Interactive: #0052ef (electric blue, all hovers) +Success: #19d600 (green, sRGB fallback) +Error: #dd0000 (pure red) +Light Surface: #ededed / #ffffff (inverted sections) +``` + +### Example Prompts + +**Landing page section:** +"Create a feature section with a near-black (#0b0b0b) background. Use a 48px heading in Inter with -1.68px letter-spacing, white text. Below it, 16px body text in #b9b9b9 with 1.50 line-height. Include a coral-red (#f36458) pill button with white text and a secondary dark (#0b0b0b) pill button with #b9b9b9 text. Both buttons hover to #0052ef blue." + +**Card grid:** +"Build a 3-column card grid on a #0b0b0b background. Each card has a #212121 surface, 1px solid #353535 border, 6px border-radius, and 24px padding. Card titles are 24px white with -0.24px letter-spacing. Body text is 13px #b9b9b9. Add a 13px IBM Plex Mono uppercase tag in #797979 at the top of each card." + +**Form section:** +"Design a contact form on a #0b0b0b background. Inputs have #0b0b0b background, 1px solid #212121 border, 3px border-radius, 8px 12px padding, and #b9b9b9 placeholder text. Focus state shows a 2px blue (#0052ef) ring. Submit button is a full-width coral-red (#f36458) pill. Include a 13px #797979 helper text below each field." + +**Navigation bar:** +"Create a sticky top navigation on #0b0b0b with backdrop blur. Left: brand text in 15px white. Center/right: nav links in 16px #b9b9b9 that hover to blue. Far right: a coral-red (#f36458) pill CTA button. Bottom border: 1px solid #212121." + +### Iteration Guide +1. **Start dark**: Begin with `#0b0b0b` background, `#ffffff` primary text, `#b9b9b9` secondary text +2. **Add structure**: Use `#212121` surfaces and `#353535` borders for containment -- no shadows +3. **Apply typography**: Inter (or Space Grotesk) with tight letter-spacing on headings, 1.50 line-height on body +4. **Color punctuation**: Add `#f36458` for CTAs and `#0052ef` for all hover/interactive states +5. **Refine spacing**: 8px base unit, 24-32px within sections, 64-120px between sections +6. **Technical details**: Add IBM Plex Mono uppercase labels for tags and metadata +7. **Polish**: Ensure all interactive elements hover to `#0052ef`, all buttons are pills or subtle 5px radius, borders are hairline (1px) diff --git a/design-md/sanity/README.md b/design-md/sanity/README.md new file mode 100644 index 0000000..10d2e43 --- /dev/null +++ b/design-md/sanity/README.md @@ -0,0 +1,25 @@ +# Sanity — Design System + +> Design.md extracted from the public [sanity](https://sanity.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 Sanity 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 +![Sanity Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/sanity/preview-dark-screenshot.png) + +### Light Mode +![Sanity Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/sanity/preview-screenshot.png) diff --git a/design-md/sanity/preview-dark.html b/design-md/sanity/preview-dark.html new file mode 100644 index 0000000..64c5977 --- /dev/null +++ b/design-md/sanity/preview-dark.html @@ -0,0 +1,995 @@ + + + + + +Design System Preview: Sanity (Dark) + + + + + + + + +
Dark Mode
+ + + + + +
+

Design System Inspired by Sanity

+

Structured content meets precise design. A dark-first, engineering-grade design language built on achromatic neutrals, tight typography, and vivid accent punctuation.

+
+ + +
+
+ + +
+

Color Palette

+

Pure achromatic gray scale with vivid accent punctuation. No warm or cool bias in the neutral range.

+
+
+
+
+
Sanity Black
+
#0b0b0b
+
Primary canvas
+
+
+
+
+
+
Dark Surface
+
#212121
+
Elevated cards, containers
+
+
+
+
+
+
Medium Border
+
#353535
+
Visible borders, dividers
+
+
+
+
+
+
Medium Gray
+
#797979
+
Tertiary text, metadata
+
+
+
+
+
+
Silver
+
#b9b9b9
+
Secondary text
+
+
+
+
+
+
Light Gray
+
#ededed
+
Light surfaces
+
+
+
+
+
+
White
+
#ffffff
+
Primary text on dark
+
+
+
+
+
+
Sanity Red
+
#f36458
+
Primary CTA
+
+
+
+
+
+
Electric Blue
+
#0052ef
+
Hover/active, focus rings
+
+
+
+
+
+
Blue 300
+
#55beff
+
Light blue accent
+
+
+
+
+
+
Neon Green
+
#19d600
+
Success, accent green
+
+
+
+
+
+
Error Red
+
#dd0000
+
Errors, destructive
+
+
+
+
+ +
+ + +
+

Typography Scale

+

Space Grotesk (substitute for waldenburgNormal) with tight negative tracking at display sizes. IBM Plex Mono for technical labels.

+
+ +
+
+ Display + 80px / 700 + LH: 1.00 + LS: -3.6px +
+
Structure
+
+ +
+
+ Heading 1 + 48px / 600 + LH: 1.08 + LS: -1.68px +
+
Powers intelligence
+
+ +
+
+ Heading 2 + 38px / 600 + LH: 1.10 + LS: -1.14px +
+
Content operations
+
+ +
+
+ Heading 3 + 24px / 500 + LH: 1.24 + LS: -0.24px +
+
Composable content platform
+
+ +
+
+ Subheading + 20px / 500 + LH: 1.13 + LS: -0.2px +
+
One API, every platform
+
+ +
+
+ Body Large + 18px / 400 + LH: 1.50 + LS: -0.18px +
+
Mirror how your content operations team works. Treat content as data with a structured, API-first approach.
+
+ +
+
+ Body + 16px / 400 + LH: 1.50 +
+
Power anything with one unified content platform. Connect to any frontend, any channel, any device.
+
+ +
+
+ Caption + 13px / 400 + LH: 1.50 + LS: -0.13px +
+
Loved by 1M+ users and 6K+ teams worldwide. Enterprise-grade content infrastructure.
+
+ +
+
+ Mono Label + 12px / 500 + LH: 1.50 + UPPERCASE +
+
CONTENT LAKE · GROQ · STUDIO · SCHEMAS
+
+ +
+
+ Code + 15px / 400 + LH: 1.50 + IBM Plex Mono +
+
sanity.fetch('*[_type == "post"]')
+
+ +
+
+ +
+ + +
+

Button Variants

+

Pill-shaped CTAs with coral-red brand color. All interactive elements hover to electric blue.

+ +
+

Standard Buttons

+
+ + + + + +
+
+ +
+

Small Variants

+
+ + + +
+
+ +
+

Badges

+
+ Neutral + Filled + New + Featured + Active +
+
+
+ +
+ + +
+

Card Examples

+

Minimal containment with border-based separation. Depth communicated through surface color shifts.

+ +
+
+
Content Lake
+
Structured content as data
+
Store, query, and distribute content across any channel using a single source of truth with real-time collaboration.
+ Learn more → +
+
+
GROQ
+
Query language for content
+
Purpose-built query language that lets you fetch exactly the content you need, in the shape you want it.
+ Explore GROQ → +
+
+
Studio
+
Customizable editing environment
+
A fully customizable, open-source editing environment that adapts to your team's workflow and content model.
+ Try Studio → +
+
+ +
+

Elevated Cards

+
+
+
Schemas
+
Define your content model
+
Use code-first schemas to define documents, objects, and fields with full TypeScript support.
+ View docs → +
+
+
Plugins
+
Extend with the ecosystem
+
Community-driven plugin ecosystem with dashboards, custom inputs, and workflow tools.
+ Browse plugins → +
+
+
+
+ +
+ + +
+

Form Elements

+

Minimal inputs with subtle borders on the dark canvas. Blue focus rings for accessibility.

+ +
+
+ + +
+
+ + +
+
+ + + Keep your API token secure. Never commit it to version control. +
+
+ + + Write a GROQ query to test against your dataset. +
+
+ +
+
+
+ +
+ + +
+

Spacing Scale

+

8px base unit. Spacing follows a controlled progression for consistent rhythm.

+
+
+
4px
+
+
+
+
8px
+
+
+
+
12px
+
+
+
+
16px
+
+
+
+
24px
+
+
+
+
32px
+
+
+
+
48px
+
+
+
+
64px
+
+
+
+
96px
+
+
+
+
120px
+
+
+
+
+ +
+ + +
+

Border Radius Scale

+

Sharp geometry for inputs, subtle rounding for cards, full pills for buttons and badges.

+
+
+
+
3px
Inputs
+
+
+
+
5px
Ghost buttons
+
+
+
+
6px
Cards
+
+
+
+
12px
Large cards
+
+
+
+
99999px
Pill / CTA
+
+
+
+ +
+ + +
+

Elevation & Depth

+

Colorimetric depth system. Elevation is communicated through surface color shifts rather than shadows.

+
+
+
Ground
+
#000000
+
+
+
Canvas
+
#0b0b0b
+
+
+
Surface
+
#212121
+
+
+
Prominent
+
#353535
+
+
+
Inverted
+
#ffffff
+
+
+
+ + + + + + diff --git a/design-md/sanity/preview.html b/design-md/sanity/preview.html new file mode 100644 index 0000000..80cd48a --- /dev/null +++ b/design-md/sanity/preview.html @@ -0,0 +1,1140 @@ + + + + + +Design System Preview: Sanity (Light) + + + + + + + + + + + +
+

Design System Inspired by Sanity

+

Structured content meets precise design. A dark-first, engineering-grade design language built on achromatic neutrals, tight typography, and vivid accent punctuation.

+
+ + +
+
+ + +
+

Color Palette

+

Pure achromatic gray scale with vivid accent punctuation. No warm or cool bias in the neutral range.

+
+
+
+
+
Sanity Black
+
#0b0b0b
+
Primary canvas
+
+
+
+
+
+
Dark Surface
+
#212121
+
Elevated cards, containers
+
+
+
+
+
+
Medium Border
+
#353535
+
Visible borders, dividers
+
+
+
+
+
+
Medium Gray
+
#797979
+
Tertiary text, metadata
+
+
+
+
+
+
Silver
+
#b9b9b9
+
Secondary text on dark
+
+
+
+
+
+
Light Gray
+
#ededed
+
Light surface, backgrounds
+
+
+
+
+
+
White
+
#ffffff
+
Primary text on dark, light surfaces
+
+
+
+
+
+
Sanity Red
+
#f36458
+
Primary CTA
+
+
+
+
+
+
Electric Blue
+
#0052ef
+
Hover/active state, focus rings
+
+
+
+
+
+
Blue 300
+
#55beff
+
Light blue accent
+
+
+
+
+
+
Neon Green
+
#19d600
+
Success, accent green
+
+
+
+
+
+
Error Red
+
#dd0000
+
Errors, destructive actions
+
+
+
+
+ +
+ + +
+

Typography Scale

+

Space Grotesk (substitute for waldenburgNormal) with tight negative tracking at display sizes. IBM Plex Mono for technical labels.

+
+ +
+
+ Display + 80px / 700 + LH: 1.00 + LS: -3.6px +
+
Structure
+
+ +
+
+ Heading 1 + 48px / 600 + LH: 1.08 + LS: -1.68px +
+
Powers intelligence
+
+ +
+
+ Heading 2 + 38px / 600 + LH: 1.10 + LS: -1.14px +
+
Content operations
+
+ +
+
+ Heading 3 + 24px / 500 + LH: 1.24 + LS: -0.24px +
+
Composable content platform
+
+ +
+
+ Subheading + 20px / 500 + LH: 1.13 + LS: -0.2px +
+
One API, every platform
+
+ +
+
+ Body Large + 18px / 400 + LH: 1.50 + LS: -0.18px +
+
Mirror how your content operations team works. Treat content as data with a structured, API-first approach.
+
+ +
+
+ Body + 16px / 400 + LH: 1.50 +
+
Power anything with one unified content platform. Connect to any frontend, any channel, any device.
+
+ +
+
+ Caption + 13px / 400 + LH: 1.50 + LS: -0.13px +
+
Loved by 1M+ users and 6K+ teams worldwide. Enterprise-grade content infrastructure.
+
+ +
+
+ Mono Label + 12px / 500 + LH: 1.50 + UPPERCASE +
+
CONTENT LAKE · GROQ · STUDIO · SCHEMAS
+
+ +
+
+ Code + 15px / 400 + LH: 1.50 + IBM Plex Mono +
+
sanity.fetch('*[_type == "post"]')
+
+ +
+
+ +
+ + +
+

Button Variants

+

Pill-shaped CTAs with coral-red brand color. All interactive elements hover to electric blue.

+ +
+

Light Surface

+
+ + + + + +
+
+ +
+

Small Variants

+
+ + + +
+
+ +
+

Dark Surface

+
+ + + + +
+
+ +
+

Badges

+
+ Neutral + Dark + New + Featured + Active +
+
+
+ +
+ + +
+

Card Examples

+

Minimal containment with border-based separation. Dark cards use surface color shifts for elevation.

+ +
+

Light Cards

+
+
+
Content Lake
+
Structured content as data
+
Store, query, and distribute content across any channel using a single source of truth with real-time collaboration.
+ Learn more → +
+
+
GROQ
+
Query language for content
+
Purpose-built query language that lets you fetch exactly the content you need, in the shape you want it.
+ Explore GROQ → +
+
+
Studio
+
Customizable editing environment
+
A fully customizable, open-source editing environment that adapts to your team's workflow and content model.
+ Try Studio → +
+
+
+ +
+
+

Dark Cards

+
+
+
Schemas
+
Define your content model
+
Use code-first schemas to define documents, objects, and fields with full TypeScript support and validation rules.
+ View docs → +
+
+
Plugins
+
Extend with the ecosystem
+
Community-driven plugin ecosystem with dashboards, custom inputs, media management, and workflow tools.
+ Browse plugins → +
+
+
Webhooks
+
React to content changes
+
Trigger builds, sync to external systems, and automate workflows whenever your content updates in real-time.
+ Set up → +
+
+
+
+
+ + +
+

Form Elements

+

Minimal inputs with subtle borders and blue focus rings. Dark variant uses colorimetric depth.

+ +
+

Light Form

+
+
+ + +
+
+ + +
+
+ + + We will never share your email. +
+
+ + +
+
+ +
+
+
+ +
+
+

Dark Form

+
+
+ + +
+
+ + +
+
+ + + Write a GROQ query to test against your dataset. +
+
+ +
+
+
+
+
+ +
+ + +
+

Spacing Scale

+

8px base unit. Spacing follows a controlled progression for consistent rhythm.

+
+
+
4px
+
+
+
+
8px
+
+
+
+
12px
+
+
+
+
16px
+
+
+
+
24px
+
+
+
+
32px
+
+
+
+
48px
+
+
+
+
64px
+
+
+
+
96px
+
+
+
+
120px
+
+
+
+
+ +
+ + +
+

Border Radius Scale

+

Sharp geometry for inputs, subtle rounding for cards, full pills for buttons and badges.

+
+
+
+
3px
Inputs
+
+
+
+
5px
Ghost buttons
+
+
+
+
6px
Cards
+
+
+
+
12px
Large cards
+
+
+
+
99999px
Pill / CTA
+
+
+
+ +
+ + +
+

Elevation & Depth

+

Colorimetric depth system. Elevation is communicated through surface color shifts rather than shadows.

+ +
+

Light Mode Elevation

+
+
+
Level 0
+
Canvas
#f7f7f7
+
+
+
Level 1
+
Surface
#ffffff
+
+
+
Level 2
+
Elevated
shadow
+
+
+
+ +
+
+

Dark Mode Depth (Colorimetric)

+
+
+
Ground
+
#000000
+
+
+
Canvas
+
#0b0b0b
+
+
+
Surface
+
#212121
+
+
+
Prominent
+
#353535
+
+
+
Inverted
+
#ffffff
+
+
+
+
+
+ + + + + + diff --git a/design-md/sentry/DESIGN.md b/design-md/sentry/DESIGN.md new file mode 100644 index 0000000..ab84831 --- /dev/null +++ b/design-md/sentry/DESIGN.md @@ -0,0 +1,262 @@ +# Design System: Sentry + +## 1. Visual Theme & Atmosphere + +Sentry's website is a dark-mode-first developer tool interface that speaks the language of code editors and terminal windows. The entire aesthetic is rooted in deep purple-black backgrounds (`#1f1633`, `#150f23`) that evoke the late-night debugging sessions Sentry was built for. Against this inky canvas, a carefully curated set of purples, pinks, and a distinctive lime-green accent (`#c2ef4e`) create a visual system that feels simultaneously technical and vibrant. + +The typography pairing is deliberate: "Dammit Sans" appears at hero scale (88px, weight 700) as a display font with personality and attitude that matches Sentry's irreverent brand voice ("Code breaks. Fix it faster."), while Rubik serves as the workhorse UI font across all functional text — headings, body, buttons, captions, and navigation. Monaco provides the monospace layer for code snippets and technical content, completing the developer-tool trinity. + +What makes Sentry distinctive is its embrace of the "dark IDE" aesthetic without feeling cold or sterile. Warm purple tones replace the typical cool grays of developer tools, and bold illustrative elements (3D characters, colorful product screenshots) punctuate the dark canvas. The button system uses a signature muted purple (`#79628c`) with inset shadows that creates a tactile, almost physical quality — buttons feel like they could be pressed into the surface. + +**Key Characteristics:** +- Dark purple-black backgrounds (`#1f1633`, `#150f23`) — never pure black +- Warm purple accent spectrum: from deep (`#362d59`) through mid (`#79628c`, `#6a5fc1`) to vibrant (`#422082`) +- Lime-green accent (`#c2ef4e`) for high-visibility CTAs and highlights +- Pink/coral accents (`#ffb287`, `#fa7faa`) for focus states and secondary highlights +- "Dammit Sans" display font for brand personality at hero scale +- Rubik as primary UI font with uppercase letter-spaced labels +- Monaco monospace for code elements +- Inset shadows on buttons creating tactile depth +- Frosted glass effects with `blur(18px) saturate(180%)` + +## 2. Color Palette & Roles + +### Primary Brand +- **Deep Purple** (`#1f1633`): Primary background, the defining color of the brand +- **Darker Purple** (`#150f23`): Deeper sections, footer, secondary backgrounds +- **Border Purple** (`#362d59`): Borders, dividers, subtle structural lines + +### Accent Colors +- **Sentry Purple** (`#6a5fc1`): Primary interactive color — links, hover states, focus rings +- **Muted Purple** (`#79628c`): Button backgrounds, secondary interactive elements +- **Deep Violet** (`#422082`): Select dropdowns, active states, high-emphasis surfaces +- **Lime Green** (`#c2ef4e`): High-visibility accent, special links, badge highlights +- **Coral** (`#ffb287`): Focus state backgrounds, warm accent +- **Pink** (`#fa7faa`): Focus outlines, decorative accents + +### Text Colors +- **Pure White** (`#ffffff`): Primary text on dark backgrounds +- **Light Gray** (`#e5e7eb`): Secondary text, muted content +- **Code Yellow** (`#dcdcaa`): Syntax highlighting, code tokens + +### Surface & Overlay +- **Glass White** (`rgba(255, 255, 255, 0.18)`): Frosted glass button backgrounds +- **Glass Dark** (`rgba(54, 22, 107, 0.14)`): Hover overlay on glass elements +- **Input White** (`#ffffff`): Form input backgrounds (light context) +- **Input Border** (`#cfcfdb`): Form field borders + +### Shadows +- **Ambient Glow** (`rgba(22, 15, 36, 0.9) 0px 4px 4px 9px`): Deep purple ambient shadow +- **Button Hover** (`rgba(0, 0, 0, 0.18) 0px 0.5rem 1.5rem`): Elevated hover state +- **Card Shadow** (`rgba(0, 0, 0, 0.1) 0px 10px 15px -3px`): Standard card elevation +- **Inset Button** (`rgba(0, 0, 0, 0.1) 0px 1px 3px 0px inset`): Tactile pressed effect + +## 3. Typography Rules + +### Font Families +- **Display**: `Dammit Sans` — brand personality font for hero headings +- **Primary UI**: `Rubik`, with fallbacks: `-apple-system, system-ui, Segoe UI, Helvetica, Arial` +- **Monospace**: `Monaco`, with fallbacks: `Menlo, Ubuntu Mono` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Hero | Dammit Sans | 88px (5.50rem) | 700 | 1.20 (tight) | normal | Maximum impact, brand voice | +| Display Secondary | Dammit Sans | 60px (3.75rem) | 500 | 1.10 (tight) | normal | Secondary hero text | +| Section Heading | Rubik | 30px (1.88rem) | 400 | 1.20 (tight) | normal | Major section titles | +| Sub-heading | Rubik | 27px (1.69rem) | 500 | 1.25 (tight) | normal | Feature section headers | +| Card Title | Rubik | 24px (1.50rem) | 500 | 1.25 (tight) | normal | Card and block headings | +| Feature Title | Rubik | 20px (1.25rem) | 600 | 1.25 (tight) | normal | Emphasized feature names | +| Body | Rubik | 16px (1.00rem) | 400 | 1.50 | normal | Standard body text | +| Body Emphasis | Rubik | 16px (1.00rem) | 500–600 | 1.50 | normal | Bold body, nav items | +| Nav Label | Rubik | 15px (0.94rem) | 500 | 1.40 | normal | Navigation links | +| Uppercase Label | Rubik | 15px (0.94rem) | 500 | 1.25 (tight) | normal | `text-transform: uppercase` | +| Button Text | Rubik | 14px (0.88rem) | 500–700 | 1.14–1.29 (tight) | 0.2px | `text-transform: uppercase` | +| Caption | Rubik | 14px (0.88rem) | 500–700 | 1.00–1.43 | 0.2px | Often uppercase | +| Small Caption | Rubik | 12px (0.75rem) | 600 | 2.00 (relaxed) | normal | Subtle annotations | +| Micro Label | Rubik | 10px (0.63rem) | 600 | 1.80 (relaxed) | 0.25px | `text-transform: uppercase` | +| Code | Monaco | 16px (1.00rem) | 400–700 | 1.50 | normal | Code blocks, technical text | + +### Principles +- **Dual personality**: Dammit Sans brings irreverent brand character at display scale; Rubik provides clean professionalism for everything functional. +- **Uppercase as system**: Buttons, captions, labels, and micro-text all use `text-transform: uppercase` with subtle letter-spacing (0.2px–0.25px), creating a systematic "technical label" pattern throughout. +- **Weight stratification**: Rubik uses 400 (body), 500 (emphasis/nav), 600 (titles/strong), 700 (buttons/CTAs) — a clean four-tier weight system. +- **Tight headings, relaxed body**: All headings use 1.10–1.25 line-height; body uses 1.50; small captions expand to 2.00 for readability at tiny sizes. + +## 4. Component Stylings + +### Buttons + +**Primary Muted Purple** +- Background: `#79628c` (rgb(121, 98, 140)) +- Text: `#ffffff`, uppercase, 14px, weight 500–700, letter-spacing 0.2px +- Border: `1px solid #584674` +- Radius: 13px +- Shadow: `rgba(0, 0, 0, 0.1) 0px 1px 3px 0px inset` (tactile inset) +- Hover: elevated shadow `rgba(0, 0, 0, 0.18) 0px 0.5rem 1.5rem` + +**Glass White** +- Background: `rgba(255, 255, 255, 0.18)` (frosted glass) +- Text: `#ffffff` +- Padding: 8px +- Radius: 12px (left-aligned variant: `12px 0px 0px 12px`) +- Shadow: `rgba(0, 0, 0, 0.08) 0px 2px 8px` +- Hover background: `rgba(54, 22, 107, 0.14)` +- Use: Secondary actions on dark surfaces + +**White Solid** +- Background: `#ffffff` +- Text: `#1f1633` +- Padding: 12px 16px +- Radius: 8px +- Hover: background transitions to `#6a5fc1`, text to white +- Focus: background `#ffb287` (coral), outline `rgb(106, 95, 193) solid 0.125rem` +- Use: High-visibility CTA on dark backgrounds + +**Deep Violet (Select/Dropdown)** +- Background: `#422082` +- Text: `#ffffff` +- Padding: 8px 16px +- Radius: 8px + +### Inputs + +**Text Input** +- Background: `#ffffff` +- Text: `#1f1633` +- Border: `1px solid #cfcfdb` +- Padding: 8px 12px +- Radius: 6px +- Focus: border-color stays `#cfcfdb`, shadow `rgba(0, 0, 0, 0.15) 0px 2px 10px inset` + +### Links +- **Default on dark**: `#ffffff`, underline decoration +- **Hover**: color transitions to `#6a5fc1` (Sentry Purple) +- **Purple links**: `#6a5fc1` default, hover underline +- **Lime accent links**: `#c2ef4e` default, hover to `#6a5fc1` +- **Dark context links**: `#362d59`, hover to `#ffffff` + +### Cards & Containers +- Background: semi-transparent or dark purple surfaces +- Radius: 8px–12px +- Shadow: `rgba(0, 0, 0, 0.1) 0px 10px 15px -3px` +- Backdrop filter: `blur(18px) saturate(180%)` for glass effects + +### Navigation +- Dark transparent header over hero content +- Rubik 15px weight 500 for nav links +- White text, hover to Sentry Purple (`#6a5fc1`) +- Uppercase labels with 0.2px letter-spacing for categories +- Mobile: hamburger menu, full-width expanded + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 2px, 4px, 5px, 6px, 8px, 12px, 16px, 24px, 32px, 40px, 44px, 45px, 47px + +### Grid & Container +- Max content width: 1152px (XL breakpoint) +- Responsive padding: 2rem (mobile) → 4rem (tablet+) +- Content centered within container +- Full-width dark sections with contained inner content + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | < 576px | Single column, stacked layout | +| Small Tablet | 576–640px | Minor width adjustments | +| Tablet | 640–768px | 2-column begins | +| Small Desktop | 768–992px | Full nav visible | +| Desktop | 992–1152px | Standard layout | +| Large Desktop | 1152–1440px | Max-width content | + +### Whitespace Philosophy +- **Dark breathing room**: Generous vertical spacing between sections (64px–80px+) lets the dark background serve as a visual rest. +- **Content islands**: Feature sections are self-contained blocks floating in the dark purple sea, each with its own internal spacing rhythm. +- **Asymmetric padding**: Buttons use asymmetric padding patterns (12px 16px, 8px 12px) that feel organic rather than rigid. + +### Border Radius Scale +- Minimal (6px): Form inputs, small interactive elements +- Standard (8px): Buttons, cards, containers +- Comfortable (10px–12px): Larger containers, glass panels +- Rounded (13px): Primary muted buttons +- Pill (18px): Image containers, badges + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Sunken (Level -1) | Inset shadow `rgba(0, 0, 0, 0.1) 0px 1px 3px inset` | Primary buttons (tactile pressed feel) | +| Flat (Level 0) | No shadow | Default surfaces, dark backgrounds | +| Surface (Level 1) | `rgba(0, 0, 0, 0.08) 0px 2px 8px` | Glass buttons, subtle cards | +| Elevated (Level 2) | `rgba(0, 0, 0, 0.1) 0px 10px 15px -3px` | Cards, floating panels | +| Prominent (Level 3) | `rgba(0, 0, 0, 0.18) 0px 0.5rem 1.5rem` | Hover states, modals | +| Ambient (Level 4) | `rgba(22, 15, 36, 0.9) 0px 4px 4px 9px` | Deep purple ambient glow around hero | + +**Shadow Philosophy**: Sentry uses a unique combination of inset shadows (buttons feel pressed INTO the surface) and ambient glows (content radiates from the dark background). The deep purple ambient shadow (`rgba(22, 15, 36, 0.9)`) is the signature — it creates a bioluminescent quality where content seems to emit its own purple-tinted light. + +## 7. Do's and Don'ts + +### Do +- Use deep purple backgrounds (`#1f1633`, `#150f23`) — never pure black (`#000000`) +- Apply inset shadows on primary buttons for the tactile pressed effect +- Use Dammit Sans ONLY for hero/display headings — Rubik for everything else +- Apply `text-transform: uppercase` with `letter-spacing: 0.2px` on buttons and labels +- Use the lime-green accent (`#c2ef4e`) sparingly for maximum impact +- Employ frosted glass effects (`blur(18px) saturate(180%)`) for layered surfaces +- Maintain the warm purple shadow tones — shadows should feel purple-tinted, not neutral gray +- Use Rubik's 4-tier weight system: 400 (body), 500 (nav/emphasis), 600 (titles), 700 (CTAs) + +### Don't +- Don't use pure black (`#000000`) for backgrounds — always use the warm purple-blacks +- Don't apply Dammit Sans to body text or UI elements — it's display-only +- Don't use standard gray (`#666`, `#999`) for borders — use purple-tinted grays (`#362d59`, `#584674`) +- Don't drop the uppercase treatment on buttons — it's a system-wide pattern +- Don't use sharp corners (0px radius) — minimum 6px for all interactive elements +- Don't mix the lime-green accent with the coral/pink accents in the same component +- Don't use flat (non-inset) shadows on primary buttons — the tactile quality is signature +- Don't forget letter-spacing on uppercase text — 0.2px minimum + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <576px | Single column, hamburger nav, stacked CTAs | +| Tablet | 576–768px | 2-column feature grids begin | +| Small Desktop | 768–992px | Full navigation, side-by-side layouts | +| Desktop | 992–1152px | Max-width container, full layout | +| Large | >1152px | Content max-width maintained, generous margins | + +### Collapsing Strategy +- Hero text: 88px Dammit Sans → 60px → mobile scales +- Navigation: horizontal → hamburger with slide-out +- Feature sections: side-by-side → stacked cards +- Buttons: inline → full-width stacked on mobile +- Container padding: 4rem → 2rem + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Background: `#1f1633` (primary), `#150f23` (deeper) +- Text: `#ffffff` (primary), `#e5e7eb` (secondary) +- Interactive: `#6a5fc1` (links/hover), `#79628c` (buttons) +- Accent: `#c2ef4e` (lime highlight), `#ffb287` (coral focus) +- Border: `#362d59` (dark), `#cfcfdb` (light context) + +### Example Component Prompts +- "Create a hero section on deep purple background (#1f1633). Headline at 88px Dammit Sans weight 700, line-height 1.20, white text. Sub-text at 16px Rubik weight 400, line-height 1.50. White solid CTA button (8px radius, 12px 16px padding), hover transitions to #6a5fc1." +- "Design a navigation bar: transparent over dark background. Rubik 15px weight 500, white text. Uppercase category labels with 0.2px letter-spacing. Hover color #6a5fc1." +- "Build a primary button: background #79628c, border 1px solid #584674, inset shadow rgba(0,0,0,0.1) 0px 1px 3px, white uppercase text at 14px Rubik weight 700, letter-spacing 0.2px, radius 13px. Hover: shadow rgba(0,0,0,0.18) 0px 0.5rem 1.5rem." +- "Create a glass card panel: background rgba(255,255,255,0.18), backdrop-filter blur(18px) saturate(180%), radius 12px. White text content inside." +- "Design a feature section: #150f23 background, 24px Rubik weight 500 heading, 16px Rubik weight 400 body text. 14px uppercase lime-green (#c2ef4e) label above heading." + +### Iteration Guide +1. Always start with the dark purple background — the color palette is built FOR dark mode +2. Use inset shadows on buttons, ambient purple glows on hero sections +3. Uppercase + letter-spacing is the systematic pattern for labels, buttons, and captions +4. Lime green (#c2ef4e) is the "pop" color — use once per section maximum +5. Frosted glass for overlaid panels, solid purple for primary surfaces +6. Rubik handles 90% of typography — Dammit Sans is hero-only diff --git a/design-md/sentry/README.md b/design-md/sentry/README.md new file mode 100644 index 0000000..5dd5153 --- /dev/null +++ b/design-md/sentry/README.md @@ -0,0 +1,25 @@ +# Sentry — Design System + +> Design.md extracted from the public [sentry](https://sentry.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 Sentry 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 +![Sentry Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/sentry/preview-dark-screenshot.png) + +### Light Mode +![Sentry Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/sentry/preview-screenshot.png) diff --git a/design-md/sentry/preview-dark.html b/design-md/sentry/preview-dark.html new file mode 100644 index 0000000..6767526 --- /dev/null +++ b/design-md/sentry/preview-dark.html @@ -0,0 +1,628 @@ + + + + + +Design System Preview: Sentry (Dark) + + + + + + + +
Dark Mode
+ + + +
+
+

Design System
Inspired by Sentry

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized in dark mode.

+ +
+
+ +
+ +
+ +

Color Palette

+ +
Primary Brand
+
+
Deep Purple
#1f1633
Primary background
+
Darker Purple
#150f23
Deeper sections
+
Border Purple
#362d59
Borders, dividers
+
+ +
Accent Colors
+
+
Sentry Purple
#6a5fc1
Links, hover, focus
+
Muted Purple
#79628c
Button backgrounds
+
Deep Violet
#422082
Selects, active
+
Lime Green
#c2ef4e
High-visibility accent
+
Coral
#ffb287
Focus backgrounds
+
Pink
#fa7faa
Focus outlines
+
+ +
Text Colors
+
+
Pure White
#ffffff
Primary text
+
Light Gray
#e5e7eb
Secondary text
+
Code Yellow
#dcdcaa
Syntax highlighting
+
+ +
Surface & Overlay
+
+
Glass White
rgba(255,255,255,0.12)
Frosted glass
+
Glass Dark
rgba(54,22,107,0.2)
Hover overlay
+
Input Border
#3a3252
Form borders (dark)
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero — 88px / 700 / 1.20
+
Display Secondary
Display Secondary — 60px / 500 / 1.10
+
Section Heading
Section Heading — 30px / 400 / 1.20
+
Sub-heading
Sub-heading — 27px / 500 / 1.25
+
Card Title
Card Title — 24px / 500 / 1.25
+
Feature Title
Feature Title — 20px / 600 / 1.25
+
Body text — The quick brown fox jumps over the lazy dog. Sentry helps developers fix bugs faster.
Body — 16px / 400 / 1.50
+
Button Text
Button — 14px / 700 / uppercase / 0.2px
+
Micro Label
Micro — 10px / 600 / uppercase / 0.25px
+
const sentry = require('@sentry/node');
Code — 16px / Monaco / code-yellow
+
+ +
+ +
+ +

Button Variants

+
+
Start Building
Lime Primary
+
Get Started
Muted Purple
+
View Docs
Glass White
+
Select Plan
Deep Violet
+
+
+ +
+ +
+ +

Card Examples

+
+
Feature

Error Tracking

Automatically capture and organize errors from your application with full stack traces and breadcrumbs.

+
Elevated

Performance Monitoring

Track transactions and identify bottlenecks. Card shown with hover elevation.

+

Glass Card

Frosted glass surface with backdrop-filter blur on deep dark background.

+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus
+
Error
+
+
+ +
+ +
+ +

Spacing Scale

+
+
1
+
2
+
4
+
8
+
12
+
16
+
24
+
32
+
40
+
48
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
6px
Inputs
+
8px
Buttons
+
10px
Containers
+
12px
Glass panels
+
13px
Primary btn
+
18px
Badges
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Sunken (-1)
Inset — buttons
+
Flat (0)
No shadow
+
Surface (1)
Glass, subtle
+
Elevated (2)
Cards, panels
+
Prominent (3)
Hover, modals
+
Ambient (4)
Purple glow
+
+
+ + + + + diff --git a/design-md/sentry/preview.html b/design-md/sentry/preview.html new file mode 100644 index 0000000..baac639 --- /dev/null +++ b/design-md/sentry/preview.html @@ -0,0 +1,953 @@ + + + + + +Design System Preview: Sentry (Light) + + + + + + + + + + + +
+
+

Design System
Inspired by Sentry

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+
+ +
+ + +
+ +

Color Palette

+ +
Primary Brand
+
+
+
+
+
Deep Purple
+
#1f1633
+
Primary background
+
+
+
+
+
+
Darker Purple
+
#150f23
+
Deeper sections, footer
+
+
+
+
+
+
Border Purple
+
#362d59
+
Borders, dividers
+
+
+
+ +
Accent Colors
+
+
+
+
+
Sentry Purple
+
#6a5fc1
+
Links, hover, focus rings
+
+
+
+
+
+
Muted Purple
+
#79628c
+
Button backgrounds
+
+
+
+
+
+
Deep Violet
+
#422082
+
Selects, active states
+
+
+
+
+
+
Lime Green
+
#c2ef4e
+
High-visibility accent
+
+
+
+
+
+
Coral
+
#ffb287
+
Focus state backgrounds
+
+
+
+
+
+
Pink
+
#fa7faa
+
Focus outlines, decor
+
+
+
+ +
Text Colors
+
+
+
+
+
Pure White
+
#ffffff
+
Primary text on dark
+
+
+
+
+
+
Light Gray
+
#e5e7eb
+
Secondary text
+
+
+
+
+
+
Code Yellow
+
#dcdcaa
+
Syntax highlighting
+
+
+
+ +
Surface & Overlay
+
+
+
+
+
Glass White
+
rgba(255,255,255,0.18)
+
Frosted glass buttons
+
+
+
+
+
+
Glass Dark
+
rgba(54,22,107,0.14)
+
Hover overlay
+
+
+
+
+
+
Input Border
+
#cfcfdb
+
Form field borders
+
+
+
+
+ +
+ + +
+ +

Typography Scale

+ +
+
Display Hero
+
Display Hero — 88px / 700 / 1.20 / Dammit Sans (approximated)
+
+
+
Display Secondary
+
Display Secondary — 60px / 500 / 1.10 / Dammit Sans (approximated)
+
+
+
Section Heading
+
Section Heading — 30px / 400 / 1.20 / Rubik
+
+
+
Sub-heading
+
Sub-heading — 27px / 500 / 1.25 / Rubik
+
+
+
Card Title
+
Card Title — 24px / 500 / 1.25 / Rubik
+
+
+
Feature Title
+
Feature Title — 20px / 600 / 1.25 / Rubik
+
+
+
Body text — The quick brown fox jumps over the lazy dog. Sentry helps developers fix bugs faster.
+
Body — 16px / 400 / 1.50 / Rubik
+
+
+
Body Emphasis — The quick brown fox jumps over the lazy dog.
+
Body Emphasis — 16px / 600 / 1.50 / Rubik
+
+
+
Nav Label
+
Nav Label — 15px / 500 / 1.40 / Rubik
+
+
+
Uppercase Label
+
Uppercase Label — 15px / 500 / 1.25 / Rubik / uppercase
+
+
+
Button Text
+
Button Text — 14px / 700 / 1.14 / Rubik / uppercase / 0.2px spacing
+
+
+
Caption
+
Caption — 14px / 500 / 1.43 / Rubik / uppercase / 0.2px spacing
+
+
+
Small Caption
+
Small Caption — 12px / 600 / 2.00 / Rubik
+
+
+
Micro Label
+
Micro Label — 10px / 600 / 1.80 / Rubik / uppercase / 0.25px spacing
+
+
+
const sentry = require('@sentry/node');
+
Code — 16px / 400 / 1.50 / Monaco
+
+
+ +
+ + +
+ +

Button Variants

+ +
+
+ Start Building +
White Solid
+
+
+ Get Started +
Primary Muted
+
+
+ View Docs +
Glass White
+
+
+ Select Plan +
Deep Violet
+
+
+
+ +
+ + +
+ +

Card Examples

+ +
+
+
Feature
+

Error Tracking

+

Automatically capture and organize errors from your application. Get full stack traces, breadcrumbs, and context for every issue.

+
+
+
Elevated
+

Performance Monitoring

+

Track transactions and identify slow database queries, API calls, and rendering issues. Card shown with hover elevation.

+
+
+

Glass Card

+

Frosted glass surface using backdrop-filter blur and white alpha overlay. Used for layered panels on dark backgrounds.

+
+
+
+ +
+ + +
+ +

Form Elements

+ +
+ + +
Default state
+
+
+ + +
Focus state (inset shadow)
+
+
+ + +
Error state (pink ring)
+
+
+ + +
Textarea
+
+
+ +
+ + +
+ +

Spacing Scale

+ +
+
1
+
2
+
4
+
8
+
12
+
16
+
24
+
32
+
40
+
48
+
+

Base unit: 8px. Scale: 1, 2, 4, 5, 6, 8, 12, 16, 24, 32, 40, 44, 45, 47px

+
+ +
+ + +
+ +

Border Radius Scale

+ +
+
+
+
6px
+
Inputs
+
+
+
+
8px
+
Buttons, cards
+
+
+
+
10px
+
Containers
+
+
+
+
12px
+
Glass panels
+
+
+
+
13px
+
Primary buttons
+
+
+
+
18px
+
Badges, images
+
+
+
+ +
+ + +
+ +

Elevation & Depth

+ +
+
+
Level -1: Sunken
+
Inset shadow — tactile pressed buttons
+
+
+
Level 0: Flat
+
No shadow — default surfaces
+
+
+
Level 1: Surface
+
Glass buttons, subtle cards
+
+
+
Level 2: Elevated
+
Cards, floating panels
+
+
+
Level 3: Prominent
+
Hover states, modals
+
+
+
Level 4: Ambient
+
Purple glow around hero
+
+
+
+ + + + + + diff --git a/design-md/stripe/DESIGN.md b/design-md/stripe/DESIGN.md new file mode 100644 index 0000000..46eb288 --- /dev/null +++ b/design-md/stripe/DESIGN.md @@ -0,0 +1,322 @@ +# Design System: Stripe + +## 1. Visual Theme & Atmosphere + +Stripe's website is the gold standard of fintech design -- a system that manages to feel simultaneously technical and luxurious, precise and warm. The page opens on a clean white canvas (`#ffffff`) with deep navy headings (`#061b31`) and a signature purple (`#533afd`) that functions as both brand anchor and interactive accent. This isn't the cold, clinical purple of enterprise software; it's a rich, saturated violet that reads as confident and premium. The overall impression is of a financial institution redesigned by a world-class type foundry. + +The custom `sohne-var` variable font is the defining element of Stripe's visual identity. Every text element enables the OpenType `"ss01"` stylistic set, which modifies character shapes for a distinctly geometric, modern feel. At display sizes (48px-56px), sohne-var runs at weight 300 -- an extraordinarily light weight for headlines that creates an ethereal, almost whispered authority. This is the opposite of the "bold hero headline" convention; Stripe's headlines feel like they don't need to shout. The negative letter-spacing (-1.4px at 56px, -0.96px at 48px) tightens the text into dense, engineered blocks. At smaller sizes, the system also uses weight 300 with proportionally reduced tracking, and tabular numerals via `"tnum"` for financial data display. + +What truly distinguishes Stripe is its shadow system. Rather than the flat or single-layer approach of most sites, Stripe uses multi-layer, blue-tinted shadows: the signature `rgba(50,50,93,0.25)` combined with `rgba(0,0,0,0.1)` creates shadows with a cool, almost atmospheric depth -- like elements are floating in a twilight sky. The blue-gray undertone of the primary shadow color (50,50,93) ties directly to the navy-purple brand palette, making even elevation feel on-brand. + +**Key Characteristics:** +- sohne-var with OpenType `"ss01"` on all text -- a custom stylistic set that defines the brand's letterforms +- Weight 300 as the signature headline weight -- light, confident, anti-convention +- Negative letter-spacing at display sizes (-1.4px at 56px, progressive relaxation downward) +- Blue-tinted multi-layer shadows using `rgba(50,50,93,0.25)` -- elevation that feels brand-colored +- Deep navy (`#061b31`) headings instead of black -- warm, premium, financial-grade +- Conservative border-radius (4px-8px) -- nothing pill-shaped, nothing harsh +- Ruby (`#ea2261`) and magenta (`#f96bee`) accents for gradient and decorative elements +- `SourceCodePro` as the monospace companion for code and technical labels + +## 2. Color Palette & Roles + +### Primary +- **Stripe Purple** (`#533afd`): Primary brand color, CTA backgrounds, link text, interactive highlights. A saturated blue-violet that anchors the entire system. +- **Deep Navy** (`#061b31`): `--hds-color-heading-solid`. Primary heading color. Not black, not gray -- a very dark blue that adds warmth and depth to text. +- **Pure White** (`#ffffff`): Page background, card surfaces, button text on dark backgrounds. + +### Brand & Dark +- **Brand Dark** (`#1c1e54`): `--hds-color-util-brand-900`. Deep indigo for dark sections, footer backgrounds, and immersive brand moments. +- **Dark Navy** (`#0d253d`): `--hds-color-core-neutral-975`. The darkest neutral -- almost-black with a blue undertone for maximum depth without harshness. + +### Accent Colors +- **Ruby** (`#ea2261`): `--hds-color-accentColorMode-ruby-icon-solid`. Warm red-pink for icons, alerts, and accent elements. +- **Magenta** (`#f96bee`): `--hds-color-accentColorMode-magenta-icon-gradientMiddle`. Vivid pink-purple for gradients and decorative highlights. +- **Magenta Light** (`#ffd7ef`): `--hds-color-util-accent-magenta-100`. Tinted surface for magenta-themed cards and badges. + +### Interactive +- **Primary Purple** (`#533afd`): Primary link color, active states, selected elements. +- **Purple Hover** (`#4434d4`): Darker purple for hover states on primary elements. +- **Purple Deep** (`#2e2b8c`): `--hds-color-button-ui-iconHover`. Dark purple for icon hover states. +- **Purple Light** (`#b9b9f9`): `--hds-color-action-bg-subduedHover`. Soft lavender for subdued hover backgrounds. +- **Purple Mid** (`#665efd`): `--hds-color-input-selector-text-range`. Range selector and input highlight color. + +### Neutral Scale +- **Heading** (`#061b31`): Primary headings, nav text, strong labels. +- **Label** (`#273951`): `--hds-color-input-text-label`. Form labels, secondary headings. +- **Body** (`#64748d`): Secondary text, descriptions, captions. +- **Success Green** (`#15be53`): Status badges, success indicators (with 0.2-0.4 alpha for backgrounds/borders). +- **Success Text** (`#108c3d`): Success badge text color. +- **Lemon** (`#9b6829`): `--hds-color-core-lemon-500`. Warning and highlight accent. + +### Surface & Borders +- **Border Default** (`#e5edf5`): Standard border color for cards, dividers, and containers. +- **Border Purple** (`#b9b9f9`): Active/selected state borders on buttons and inputs. +- **Border Soft Purple** (`#d6d9fc`): Subtle purple-tinted borders for secondary elements. +- **Border Magenta** (`#ffd7ef`): Pink-tinted borders for magenta-themed elements. +- **Border Dashed** (`#362baa`): Dashed borders for drop zones and placeholder elements. + +### Shadow Colors +- **Shadow Blue** (`rgba(50,50,93,0.25)`): The signature -- blue-tinted primary shadow color. +- **Shadow Dark Blue** (`rgba(3,3,39,0.25)`): Deeper blue shadow for elevated elements. +- **Shadow Black** (`rgba(0,0,0,0.1)`): Secondary shadow layer for depth reinforcement. +- **Shadow Ambient** (`rgba(23,23,23,0.08)`): Soft ambient shadow for subtle elevation. +- **Shadow Soft** (`rgba(23,23,23,0.06)`): Minimal ambient shadow for light lift. + +## 3. Typography Rules + +### Font Family +- **Primary**: `sohne-var`, with fallback: `SF Pro Display` +- **Monospace**: `SourceCodePro`, with fallback: `SFMono-Regular` +- **OpenType Features**: `"ss01"` enabled globally on all sohne-var text; `"tnum"` for tabular numbers on financial data and captions. + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Features | Notes | +|------|------|------|--------|-------------|----------------|----------|-------| +| Display Hero | sohne-var | 56px (3.50rem) | 300 | 1.03 (tight) | -1.4px | ss01 | Maximum size, whisper-weight authority | +| Display Large | sohne-var | 48px (3.00rem) | 300 | 1.15 (tight) | -0.96px | ss01 | Secondary hero headlines | +| Section Heading | sohne-var | 32px (2.00rem) | 300 | 1.10 (tight) | -0.64px | ss01 | Feature section titles | +| Sub-heading Large | sohne-var | 26px (1.63rem) | 300 | 1.12 (tight) | -0.26px | ss01 | Card headings, sub-sections | +| Sub-heading | sohne-var | 22px (1.38rem) | 300 | 1.10 (tight) | -0.22px | ss01 | Smaller section heads | +| Body Large | sohne-var | 18px (1.13rem) | 300 | 1.40 | normal | ss01 | Feature descriptions, intro text | +| Body | sohne-var | 16px (1.00rem) | 300-400 | 1.40 | normal | ss01 | Standard reading text | +| Button | sohne-var | 16px (1.00rem) | 400 | 1.00 (tight) | normal | ss01 | Primary button text | +| Button Small | sohne-var | 14px (0.88rem) | 400 | 1.00 (tight) | normal | ss01 | Secondary/compact buttons | +| Link | sohne-var | 14px (0.88rem) | 400 | 1.00 (tight) | normal | ss01 | Navigation links | +| Caption | sohne-var | 13px (0.81rem) | 400 | normal | normal | ss01 | Small labels, metadata | +| Caption Small | sohne-var | 12px (0.75rem) | 300-400 | 1.33-1.45 | normal | ss01 | Fine print, timestamps | +| Caption Tabular | sohne-var | 12px (0.75rem) | 300-400 | 1.33 | -0.36px | tnum | Financial data, numbers | +| Micro | sohne-var | 10px (0.63rem) | 300 | 1.15 (tight) | 0.1px | ss01 | Tiny labels, axis markers | +| Micro Tabular | sohne-var | 10px (0.63rem) | 300 | 1.15 (tight) | -0.3px | tnum | Chart data, small numbers | +| Nano | sohne-var | 8px (0.50rem) | 300 | 1.07 (tight) | normal | ss01 | Smallest labels | +| Code Body | SourceCodePro | 12px (0.75rem) | 500 | 2.00 (relaxed) | normal | -- | Code blocks, syntax | +| Code Bold | SourceCodePro | 12px (0.75rem) | 700 | 2.00 (relaxed) | normal | -- | Bold code, keywords | +| Code Label | SourceCodePro | 12px (0.75rem) | 500 | 2.00 (relaxed) | normal | uppercase | Technical labels | +| Code Micro | SourceCodePro | 9px (0.56rem) | 500 | 1.00 (tight) | normal | ss01 | Tiny code annotations | + +### Principles +- **Light weight as signature**: Weight 300 at display sizes is Stripe's most distinctive typographic choice. Where others use 600-700 to command attention, Stripe uses lightness as luxury -- the text is so confident it doesn't need weight to be authoritative. +- **ss01 everywhere**: The `"ss01"` stylistic set is non-negotiable. It modifies specific glyphs (likely alternate `a`, `g`, `l` forms) to create a more geometric, contemporary feel across all sohne-var text. +- **Two OpenType modes**: `"ss01"` for display/body text, `"tnum"` for tabular numerals in financial data. These never overlap -- a number in a paragraph uses ss01, a number in a data table uses tnum. +- **Progressive tracking**: Letter-spacing tightens proportionally with size: -1.4px at 56px, -0.96px at 48px, -0.64px at 32px, -0.26px at 26px, normal at 16px and below. +- **Two-weight simplicity**: Primarily 300 (body and headings) and 400 (UI/buttons). No bold (700) in the primary font -- SourceCodePro uses 500/700 for code contrast. + +## 4. Component Stylings + +### Buttons + +**Primary Purple** +- Background: `#533afd` +- Text: `#ffffff` +- Padding: 8px 16px +- Radius: 4px +- Font: 16px sohne-var weight 400, `"ss01"` +- Hover: `#4434d4` background +- Use: Primary CTA ("Start now", "Contact sales") + +**Ghost / Outlined** +- Background: transparent +- Text: `#533afd` +- Padding: 8px 16px +- Radius: 4px +- Border: `1px solid #b9b9f9` +- Font: 16px sohne-var weight 400, `"ss01"` +- Hover: background shifts to `rgba(83,58,253,0.05)` +- Use: Secondary actions + +**Transparent Info** +- Background: transparent +- Text: `#2874ad` +- Padding: 8px 16px +- Radius: 4px +- Border: `1px solid rgba(43,145,223,0.2)` +- Use: Tertiary/info-level actions + +**Neutral Ghost** +- Background: transparent (`rgba(255,255,255,0)`) +- Text: `rgba(16,16,16,0.3)` +- Padding: 8px 16px +- Radius: 4px +- Outline: `1px solid rgb(212,222,233)` +- Use: Disabled or muted actions + +### Cards & Containers +- Background: `#ffffff` +- Border: `1px solid #e5edf5` (standard) or `1px solid #061b31` (dark accent) +- Radius: 4px (tight), 5px (standard), 6px (comfortable), 8px (featured) +- Shadow (standard): `rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px` +- Shadow (ambient): `rgba(23,23,23,0.08) 0px 15px 35px 0px` +- Hover: shadow intensifies, often adding the blue-tinted layer + +### Badges / Tags / Pills +**Neutral Pill** +- Background: `#ffffff` +- Text: `#000000` +- Padding: 0px 6px +- Radius: 4px +- Border: `1px solid #f6f9fc` +- Font: 11px weight 400 + +**Success Badge** +- Background: `rgba(21,190,83,0.2)` +- Text: `#108c3d` +- Padding: 1px 6px +- Radius: 4px +- Border: `1px solid rgba(21,190,83,0.4)` +- Font: 10px weight 300 + +### Inputs & Forms +- Border: `1px solid #e5edf5` +- Radius: 4px +- Focus: `1px solid #533afd` or purple ring +- Label: `#273951`, 14px sohne-var +- Text: `#061b31` +- Placeholder: `#64748d` + +### Navigation +- Clean horizontal nav on white, sticky with blur backdrop +- Brand logotype left-aligned +- Links: sohne-var 14px weight 400, `#061b31` text with `"ss01"` +- Radius: 6px on nav container +- CTA: purple button right-aligned ("Sign in", "Start now") +- Mobile: hamburger toggle with 6px radius + +### Decorative Elements +**Dashed Borders** +- `1px dashed #362baa` (purple) for placeholder/drop zones +- `1px dashed #ffd7ef` (magenta) for magenta-themed decorative borders + +**Gradient Accents** +- Ruby-to-magenta gradients (`#ea2261` to `#f96bee`) for hero decorations +- Brand dark sections use `#1c1e54` backgrounds with white text + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 2px, 4px, 6px, 8px, 10px, 11px, 12px, 14px, 16px, 18px, 20px +- Notable: The scale is dense at the small end (every 2px from 4-12), reflecting Stripe's precision-oriented UI for financial data + +### Grid & Container +- Max content width: approximately 1080px +- Hero: centered single-column with generous padding, lightweight headlines +- Feature sections: 2-3 column grids for feature cards +- Full-width dark sections with `#1c1e54` background for brand immersion +- Code/dashboard previews as contained cards with blue-tinted shadows + +### Whitespace Philosophy +- **Precision spacing**: Unlike the vast emptiness of minimalist systems, Stripe uses measured, purposeful whitespace. Every gap is a deliberate typographic choice. +- **Dense data, generous chrome**: Financial data displays (tables, charts) are tightly packed, but the UI chrome around them is generously spaced. This creates a sense of controlled density -- like a well-organized spreadsheet in a beautiful frame. +- **Section rhythm**: White sections alternate with dark brand sections (`#1c1e54`), creating a dramatic light/dark cadence that prevents monotony without introducing arbitrary color. + +### Border Radius Scale +- Micro (1px): Fine-grained elements, subtle rounding +- Standard (4px): Buttons, inputs, badges, cards -- the workhorse +- Comfortable (5px): Standard card containers +- Relaxed (6px): Navigation, larger interactive elements +- Large (8px): Featured cards, hero elements +- Compound: `0px 0px 6px 6px` for bottom-rounded containers (tab panels, dropdown footers) + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | Page background, inline text | +| Ambient (Level 1) | `rgba(23,23,23,0.06) 0px 3px 6px` | Subtle card lift, hover hints | +| Standard (Level 2) | `rgba(23,23,23,0.08) 0px 15px 35px` | Standard cards, content panels | +| Elevated (Level 3) | `rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px` | Featured cards, dropdowns, popovers | +| Deep (Level 4) | `rgba(3,3,39,0.25) 0px 14px 21px -14px, rgba(0,0,0,0.1) 0px 8px 17px -8px` | Modals, floating panels | +| Ring (Accessibility) | `2px solid #533afd` outline | Keyboard focus ring | + +**Shadow Philosophy**: Stripe's shadow system is built on a principle of chromatic depth. Where most design systems use neutral gray or black shadows, Stripe's primary shadow color (`rgba(50,50,93,0.25)`) is a deep blue-gray that echoes the brand's navy palette. This creates shadows that don't just add depth -- they add brand atmosphere. The multi-layer approach pairs this blue-tinted shadow with a pure black secondary layer (`rgba(0,0,0,0.1)`) at a different offset, creating a parallax-like depth where the branded shadow sits farther from the element and the neutral shadow sits closer. The negative spread values (-30px, -18px) ensure shadows don't extend beyond the element's footprint horizontally, keeping elevation vertical and controlled. + +### Decorative Depth +- Dark brand sections (`#1c1e54`) create immersive depth through background color contrast +- Gradient overlays with ruby-to-magenta transitions for hero decorations +- Shadow color `rgba(0,55,112,0.08)` (`--hds-color-shadow-sm-top`) for top-edge shadows on sticky elements + +## 7. Do's and Don'ts + +### Do +- Use sohne-var with `"ss01"` on every text element -- the stylistic set IS the brand +- Use weight 300 for all headlines and body text -- lightness is the signature +- Apply blue-tinted shadows (`rgba(50,50,93,0.25)`) for all elevated elements +- Use `#061b31` (deep navy) for headings instead of `#000000` -- the warmth matters +- Keep border-radius between 4px-8px -- conservative rounding is intentional +- Use `"tnum"` for any tabular/financial number display +- Layer shadows: blue-tinted far + neutral close for depth parallax +- Use `#533afd` purple as the primary interactive/CTA color + +### Don't +- Don't use weight 600-700 for sohne-var headlines -- weight 300 is the brand voice +- Don't use large border-radius (12px+, pill shapes) on cards or buttons -- Stripe is conservative +- Don't use neutral gray shadows -- always tint with blue (`rgba(50,50,93,...)`) +- Don't skip `"ss01"` on any sohne-var text -- the alternate glyphs define the personality +- Don't use pure black (`#000000`) for headings -- always `#061b31` deep navy +- Don't use warm accent colors (orange, yellow) for interactive elements -- purple is primary +- Don't apply positive letter-spacing at display sizes -- Stripe tracks tight +- Don't use the magenta/ruby accents for buttons or links -- they're decorative/gradient only + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <640px | Single column, reduced heading sizes, stacked cards | +| Tablet | 640-1024px | 2-column grids, moderate padding | +| Desktop | 1024-1280px | Full layout, 3-column feature grids | +| Large Desktop | >1280px | Centered content with generous margins | + +### Touch Targets +- Buttons use comfortable padding (8px-16px vertical) +- Navigation links at 14px with adequate spacing +- Badges have 6px horizontal padding minimum for tap targets +- Mobile nav toggle with 6px radius button + +### Collapsing Strategy +- Hero: 56px display -> 32px on mobile, weight 300 maintained +- Navigation: horizontal links + CTAs -> hamburger toggle +- Feature cards: 3-column -> 2-column -> single column stacked +- Dark brand sections: maintain full-width treatment, reduce internal padding +- Financial data tables: horizontal scroll on mobile +- Section spacing: 64px+ -> 40px on mobile +- Typography scale compresses: 56px -> 48px -> 32px hero sizes across breakpoints + +### Image Behavior +- Dashboard/product screenshots maintain blue-tinted shadow at all sizes +- Hero gradient decorations simplify on mobile +- Code blocks maintain `SourceCodePro` treatment, may horizontally scroll +- Card images maintain consistent 4px-6px border-radius + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA: Stripe Purple (`#533afd`) +- CTA Hover: Purple Dark (`#4434d4`) +- Background: Pure White (`#ffffff`) +- Heading text: Deep Navy (`#061b31`) +- Body text: Slate (`#64748d`) +- Label text: Dark Slate (`#273951`) +- Border: Soft Blue (`#e5edf5`) +- Link: Stripe Purple (`#533afd`) +- Dark section: Brand Dark (`#1c1e54`) +- Success: Green (`#15be53`) +- Accent decorative: Ruby (`#ea2261`), Magenta (`#f96bee`) + +### Example Component Prompts +- "Create a hero section on white background. Headline at 48px sohne-var weight 300, line-height 1.15, letter-spacing -0.96px, color #061b31, font-feature-settings 'ss01'. Subtitle at 18px weight 300, line-height 1.40, color #64748d. Purple CTA button (#533afd, 4px radius, 8px 16px padding, white text) and ghost button (transparent, 1px solid #b9b9f9, #533afd text, 4px radius)." +- "Design a card: white background, 1px solid #e5edf5 border, 6px radius. Shadow: rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px. Title at 22px sohne-var weight 300, letter-spacing -0.22px, color #061b31, 'ss01'. Body at 16px weight 300, #64748d." +- "Build a success badge: rgba(21,190,83,0.2) background, #108c3d text, 4px radius, 1px 6px padding, 10px sohne-var weight 300, border 1px solid rgba(21,190,83,0.4)." +- "Create navigation: white sticky header with backdrop-filter blur(12px). sohne-var 14px weight 400 for links, #061b31 text, 'ss01'. Purple CTA 'Start now' right-aligned (#533afd bg, white text, 4px radius). Nav container 6px radius." +- "Design a dark brand section: #1c1e54 background, white text. Headline 32px sohne-var weight 300, letter-spacing -0.64px, 'ss01'. Body 16px weight 300, rgba(255,255,255,0.7). Cards inside use rgba(255,255,255,0.1) border with 6px radius." + +### Iteration Guide +1. Always enable `font-feature-settings: "ss01"` on sohne-var text -- this is the brand's typographic DNA +2. Weight 300 is the default; use 400 only for buttons/links/navigation +3. Shadow formula: `rgba(50,50,93,0.25) 0px Y1 B1 -S1, rgba(0,0,0,0.1) 0px Y2 B2 -S2` where Y1/B1 are larger (far shadow) and Y2/B2 are smaller (near shadow) +4. Heading color is `#061b31` (deep navy), body is `#64748d` (slate), labels are `#273951` (dark slate) +5. Border-radius stays in the 4px-8px range -- never use pill shapes or large rounding +6. Use `"tnum"` for any numbers in tables, charts, or financial displays +7. Dark sections use `#1c1e54` -- not black, not gray, but a deep branded indigo +8. SourceCodePro for code at 12px/500 with 2.00 line-height (very generous for readability) diff --git a/design-md/stripe/README.md b/design-md/stripe/README.md new file mode 100644 index 0000000..c908b12 --- /dev/null +++ b/design-md/stripe/README.md @@ -0,0 +1,25 @@ +# Stripe — Design System + +> Design.md extracted from the public [stripe](https://stripe.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 Stripe 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 +![Stripe Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/stripe/preview-dark-screenshot.png) + +### Light Mode +![Stripe Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/stripe/preview-screenshot.png) diff --git a/design-md/stripe/preview-dark.html b/design-md/stripe/preview-dark.html new file mode 100644 index 0000000..6662d9b --- /dev/null +++ b/design-md/stripe/preview-dark.html @@ -0,0 +1,430 @@ + + + + + +Design System Preview: Stripe (Dark) + + + + + + + + +
Dark Mode
+ +
+

Design System
Inspired by Stripe

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value -- visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Stripe Purple
#533afd
Primary brand, CTA
+
Deep Navy
#061b31
Headings
+
White
#ffffff
Page background
+
+ +
Brand & Dark
+
+
Brand Dark
#1c1e54
Dark sections
+
Dark Navy
#0d253d
Darkest neutral
+
+ +
Accent
+
+
Ruby
#ea2261
Accent, alerts
+
Magenta
#f96bee
Gradients, decorative
+
Magenta Light
#ffd7ef
Tinted surface
+
+ +
Interactive Purple Scale
+
+
Purple Hover
#4434d4
CTA hover state
+
Purple Mid
#665efd
Range selectors
+
Purple Light
#b9b9f9
Subdued hover bg
+
Purple Deep
#2e2b8c
Icon hover
+
+ +
Neutral & Status
+
+
Dark Slate
#273951
Labels
+
Slate
#64748d
Body text
+
Border
#e5edf5
Default border
+
Success
#15be53
Status, badges
+
Lemon
#9b6829
Warning accent
+
+ +
Border & Surface
+
+
Border Soft
#d6d9fc
Purple-tinted border
+
Dashed Border
#362baa
Drop zones
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 56px / 300 / 1.03 / -1.4px / sohne-var "ss01"
+
Display Large
Display Large -- 48px / 300 / 1.15 / -0.96px / sohne-var "ss01"
+
Section Heading
Section Heading -- 32px / 300 / 1.10 / -0.64px / sohne-var "ss01"
+
Sub-heading Large
Sub-heading -- 26px / 300 / 1.12 / -0.26px / sohne-var "ss01"
+
Sub-heading
Sub-heading -- 22px / 300 / 1.10 / -0.22px / sohne-var "ss01"
+
Body Large -- Financial infrastructure for the internet. Millions of companies use Stripe to accept payments.
Body Large -- 18px / 300 / 1.40 / normal / sohne-var "ss01"
+
Body -- Standard reading text for descriptions and content.
Body -- 16px / 300 / 1.40 / normal / sohne-var "ss01"
+
Button Text
Button -- 16px / 400 / 1.00 / normal / sohne-var "ss01"
+
Link / Navigation
Link -- 14px / 400 / 1.00 / normal / sohne-var "ss01"
+
Caption -- Small labels and metadata
Caption -- 12px / 300 / 1.45 / normal / sohne-var "ss01"
+
$1,234,567.89
Tabular Numbers -- 12px / 300 / 1.33 / -0.36px / sohne-var "tnum"
+
const stripe = require('stripe')('sk_test_...');
Code Body -- 12px / 500 / 2.00 / Source Code Pro
+
API VERSION
Code Label -- 12px / 500 / uppercase / Source Code Pro
+
+ +
+ +
+ +

Button Variants

+
+
Start now
Primary Purple
+
Documentation
Ghost / Outlined
+
Learn more
Transparent Info
+
Disabled
Neutral Ghost
+
Active
Success Badge
+
v2024-12
Neutral Badge
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Payments
+

Online Payments

+

Accept payments online with a fully integrated suite of payment products. Optimized for conversion with pre-built checkout pages.

+
+
+
Elevated
+

Revenue Recognition

+

Automate your revenue reporting. Card shown with full shadow stack for elevated importance.

+
+
+
Connect
+

Platform Payments

+

Build a marketplace or platform with multi-party payments, instant payouts, and flexible revenue sharing.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (purple ring)
+
Error (ruby ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
10
+
12
+
14
+
16
+
18
+
20
+
+
+ +
+ +
+ +

Border Radius

+
+
1px
Micro
+
4px
Buttons, inputs
+
5px
Standard cards
+
6px
Nav, large cards
+
8px
Featured
+
+
+ +
+ +
+ +

Elevation

+
+
Level 0: Flat
No shadow
+
Level 1: Subtle
Ambient soft
+
Level 2: Standard
Ambient card
+
Level 3: Elevated
Dual layer deep
+
Level 4: Deep
Dark deep
+
Focus
Purple ring
+
+
+ + + + + diff --git a/design-md/stripe/preview.html b/design-md/stripe/preview.html new file mode 100644 index 0000000..14694dc --- /dev/null +++ b/design-md/stripe/preview.html @@ -0,0 +1,421 @@ + + + + + +Design System Preview: Stripe (Light) + + + + + + + + + +
+

Design System
Inspired by Stripe

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value -- visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Stripe Purple
#533afd
Primary brand, CTA
+
Deep Navy
#061b31
Headings
+
White
#ffffff
Page background
+
+ +
Brand & Dark
+
+
Brand Dark
#1c1e54
Dark sections
+
Dark Navy
#0d253d
Darkest neutral
+
+ +
Accent
+
+
Ruby
#ea2261
Accent, alerts
+
Magenta
#f96bee
Gradients, decorative
+
Magenta Light
#ffd7ef
Tinted surface
+
+ +
Interactive Purple Scale
+
+
Purple Hover
#4434d4
CTA hover state
+
Purple Mid
#665efd
Range selectors
+
Purple Light
#b9b9f9
Subdued hover bg
+
Purple Deep
#2e2b8c
Icon hover
+
+ +
Neutral & Status
+
+
Dark Slate
#273951
Labels
+
Slate
#64748d
Body text
+
Border
#e5edf5
Default border
+
Success
#15be53
Status, badges
+
Lemon
#9b6829
Warning accent
+
+ +
Border & Surface
+
+
Border Soft
#d6d9fc
Purple-tinted border
+
Dashed Border
#362baa
Drop zones
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 56px / 300 / 1.03 / -1.4px / sohne-var "ss01"
+
Display Large
Display Large -- 48px / 300 / 1.15 / -0.96px / sohne-var "ss01"
+
Section Heading
Section Heading -- 32px / 300 / 1.10 / -0.64px / sohne-var "ss01"
+
Sub-heading Large
Sub-heading -- 26px / 300 / 1.12 / -0.26px / sohne-var "ss01"
+
Sub-heading
Sub-heading -- 22px / 300 / 1.10 / -0.22px / sohne-var "ss01"
+
Body Large -- Financial infrastructure for the internet. Millions of companies use Stripe to accept payments.
Body Large -- 18px / 300 / 1.40 / normal / sohne-var "ss01"
+
Body -- Standard reading text for descriptions and content.
Body -- 16px / 300 / 1.40 / normal / sohne-var "ss01"
+
Button Text
Button -- 16px / 400 / 1.00 / normal / sohne-var "ss01"
+
Link / Navigation
Link -- 14px / 400 / 1.00 / normal / sohne-var "ss01"
+
Caption -- Small labels and metadata
Caption -- 12px / 300 / 1.45 / normal / sohne-var "ss01"
+
$1,234,567.89
Tabular Numbers -- 12px / 300 / 1.33 / -0.36px / sohne-var "tnum"
+
const stripe = require('stripe')('sk_test_...');
Code Body -- 12px / 500 / 2.00 / Source Code Pro
+
API VERSION
Code Label -- 12px / 500 / uppercase / Source Code Pro
+
+ +
+ +
+ +

Button Variants

+
+
Start now
Primary Purple
+
Documentation
Ghost / Outlined
+
Learn more
Transparent Info
+
Disabled
Neutral Ghost
+
Active
Success Badge
+
v2024-12
Neutral Badge
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Payments
+

Online Payments

+

Accept payments online with a fully integrated suite of payment products. Optimized for conversion with pre-built checkout pages.

+
+
+
Elevated
+

Revenue Recognition

+

Automate your revenue reporting. Card shown with full blue-tinted shadow stack for elevated importance.

+
+
+
Connect
+

Platform Payments

+

Build a marketplace or platform with multi-party payments, instant payouts, and flexible revenue sharing.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (purple ring)
+
Error (ruby ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
10
+
12
+
14
+
16
+
18
+
20
+
+
+ +
+ +
+ +

Border Radius

+
+
1px
Micro
+
4px
Buttons, inputs
+
5px
Standard cards
+
6px
Nav, large cards
+
8px
Featured
+
+
+ +
+ +
+ +

Elevation

+
+
Level 0: Flat
No shadow
+
Level 1: Subtle
Ambient soft
+
Level 2: Standard
Ambient card
+
Level 3: Elevated
Blue-tinted dual layer
+
Level 4: Deep
Dark blue-tinted
+
Focus
Purple ring
+
+
+ + + + + diff --git a/design-md/supabase/DESIGN.md b/design-md/supabase/DESIGN.md new file mode 100644 index 0000000..c302357 --- /dev/null +++ b/design-md/supabase/DESIGN.md @@ -0,0 +1,255 @@ +# Design System: Supabase + +## 1. Visual Theme & Atmosphere + +Supabase's website is a dark-mode-native developer platform that channels the aesthetic of a premium code editor — deep black backgrounds (`#0f0f0f`, `#171717`) with emerald green accents (`#3ecf8e`, `#00c573`) that reference the brand's open-source, PostgreSQL-green identity. The design system feels like it was born in a terminal window and evolved into a sophisticated marketing surface without losing its developer soul. + +The typography is built on "Circular" — a geometric sans-serif with rounded terminals that softens the technical edge. At 72px with a 1.00 line-height, the hero text is compressed to its absolute minimum vertical space, creating dense, impactful statements that waste nothing. The monospace companion (Source Code Pro) appears sparingly for uppercase technical labels with 1.2px letter-spacing, creating the "developer console" markers that connect the marketing site to the product experience. + +What makes Supabase distinctive is its sophisticated HSL-based color token system. Rather than flat hex values, Supabase uses HSL with alpha channels for nearly every color (`--colors-crimson4`, `--colors-purple5`, `--colors-slateA12`), enabling a nuanced layering system where colors interact through transparency. This creates depth through translucency — borders at `rgba(46, 46, 46)`, surfaces at `rgba(41, 41, 41, 0.84)`, and accents at partial opacity all blend with the dark background to create a rich, dimensional palette from minimal color ingredients. + +The green accent (`#3ecf8e`) appears selectively — in the Supabase logo, in link colors (`#00c573`), and in border highlights (`rgba(62, 207, 142, 0.3)`) — always as a signal of "this is Supabase" rather than as a decorative element. Pill-shaped buttons (9999px radius) for primary CTAs contrast with standard 6px radius for secondary elements, creating a clear visual hierarchy of importance. + +**Key Characteristics:** +- Dark-mode-native: near-black backgrounds (`#0f0f0f`, `#171717`) — never pure black +- Emerald green brand accent (`#3ecf8e`, `#00c573`) used sparingly as identity marker +- Circular font — geometric sans-serif with rounded terminals +- Source Code Pro for uppercase technical labels (1.2px letter-spacing) +- HSL-based color token system with alpha channels for translucent layering +- Pill buttons (9999px) for primary CTAs, 6px radius for secondary +- Neutral gray scale from `#171717` through `#898989` to `#fafafa` +- Border system using dark grays (`#2e2e2e`, `#363636`, `#393939`) +- Minimal shadows — depth through border contrast and transparency +- Radix color primitives (crimson, purple, violet, indigo, yellow, tomato, orange, slate) + +## 2. Color Palette & Roles + +### Brand +- **Supabase Green** (`#3ecf8e`): Primary brand color, logo, accent borders +- **Green Link** (`#00c573`): Interactive green for links and actions +- **Green Border** (`rgba(62, 207, 142, 0.3)`): Subtle green border accent + +### Neutral Scale (Dark Mode) +- **Near Black** (`#0f0f0f`): Primary button background, deepest surface +- **Dark** (`#171717`): Page background, primary canvas +- **Dark Border** (`#242424`): Horizontal rule, section dividers +- **Border Dark** (`#2e2e2e`): Card borders, tab borders +- **Mid Border** (`#363636`): Button borders, dividers +- **Border Light** (`#393939`): Secondary borders +- **Charcoal** (`#434343`): Tertiary borders, dark accents +- **Dark Gray** (`#4d4d4d`): Heavy secondary text +- **Mid Gray** (`#898989`): Muted text, link color +- **Light Gray** (`#b4b4b4`): Secondary link text +- **Near White** (`#efefef`): Light border, subtle surface +- **Off White** (`#fafafa`): Primary text, button text + +### Radix Color Tokens (HSL-based) +- **Slate Scale**: `--colors-slate5` through `--colors-slateA12` — neutral progression +- **Purple**: `--colors-purple4`, `--colors-purple5`, `--colors-purpleA7` — accent spectrum +- **Violet**: `--colors-violet10` (`hsl(251, 63.2%, 63.2%)`) — vibrant accent +- **Crimson**: `--colors-crimson4`, `--colors-crimsonA9` — warm accent / alert +- **Indigo**: `--colors-indigoA2` — subtle blue wash +- **Yellow**: `--colors-yellowA7` — attention/warning +- **Tomato**: `--colors-tomatoA4` — error accent +- **Orange**: `--colors-orange6` — warm accent + +### Surface & Overlay +- **Glass Dark** (`rgba(41, 41, 41, 0.84)`): Translucent dark overlay +- **Slate Alpha** (`hsla(210, 87.8%, 16.1%, 0.031)`): Ultra-subtle blue wash +- **Fixed Scale Alpha** (`hsla(200, 90.3%, 93.4%, 0.109)`): Light frost overlay + +### Shadows +- Supabase uses **almost no shadows** in its dark theme. Depth is created through border contrast and surface color differences rather than box-shadows. Focus states use `rgba(0, 0, 0, 0.1) 0px 4px 12px` — minimal, functional. + +## 3. Typography Rules + +### Font Families +- **Primary**: `Circular`, with fallbacks: `custom-font, Helvetica Neue, Helvetica, Arial` +- **Monospace**: `Source Code Pro`, with fallbacks: `Office Code Pro, Menlo` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Hero | Circular | 72px (4.50rem) | 400 | 1.00 (tight) | normal | Maximum density, zero waste | +| Section Heading | Circular | 36px (2.25rem) | 400 | 1.25 (tight) | normal | Feature section titles | +| Card Title | Circular | 24px (1.50rem) | 400 | 1.33 | -0.16px | Slight negative tracking | +| Sub-heading | Circular | 18px (1.13rem) | 400 | 1.56 | normal | Secondary headings | +| Body | Circular | 16px (1.00rem) | 400 | 1.50 | normal | Standard body text | +| Nav Link | Circular | 14px (0.88rem) | 500 | 1.00–1.43 | normal | Navigation items | +| Button | Circular | 14px (0.88rem) | 500 | 1.14 (tight) | normal | Button labels | +| Caption | Circular | 14px (0.88rem) | 400–500 | 1.43 | normal | Metadata, tags | +| Small | Circular | 12px (0.75rem) | 400 | 1.33 | normal | Fine print, footer links | +| Code Label | Source Code Pro | 12px (0.75rem) | 400 | 1.33 | 1.2px | `text-transform: uppercase` | + +### Principles +- **Weight restraint**: Nearly all text uses weight 400 (regular/book). Weight 500 appears only for navigation links and button labels. There is no bold (700) in the detected system — hierarchy is created through size, not weight. +- **1.00 hero line-height**: The hero text is compressed to absolute zero leading. This is the defining typographic gesture — text that feels like a terminal command: dense, efficient, no wasted vertical space. +- **Negative tracking on cards**: Card titles use -0.16px letter-spacing, a subtle tightening that differentiates them from body text without being obvious. +- **Monospace as ritual**: Source Code Pro in uppercase with 1.2px letter-spacing is the "developer console" voice — used sparingly for technical labels that connect to the product experience. +- **Geometric personality**: Circular's rounded terminals create warmth in what could otherwise be a cold, technical interface. The font is the humanizing element. + +## 4. Component Stylings + +### Buttons + +**Primary Pill (Dark)** +- Background: `#0f0f0f` +- Text: `#fafafa` +- Padding: 8px 32px +- Radius: 9999px (full pill) +- Border: `1px solid #fafafa` (white border on dark) +- Focus shadow: `rgba(0, 0, 0, 0.1) 0px 4px 12px` +- Use: Primary CTA ("Start your project") + +**Secondary Pill (Dark, Muted)** +- Background: `#0f0f0f` +- Text: `#fafafa` +- Padding: 8px 32px +- Radius: 9999px +- Border: `1px solid #2e2e2e` (dark border) +- Opacity: 0.8 +- Use: Secondary CTA alongside primary + +**Ghost Button** +- Background: transparent +- Text: `#fafafa` +- Padding: 8px +- Radius: 6px +- Border: `1px solid transparent` +- Use: Tertiary actions, icon buttons + +### Cards & Containers +- Background: dark surfaces (`#171717` or slightly lighter) +- Border: `1px solid #2e2e2e` or `#363636` +- Radius: 8px–16px +- No visible shadows — borders define edges +- Internal padding: 16px–24px + +### Tabs +- Border: `1px solid #2e2e2e` +- Radius: 9999px (pill tabs) +- Active: green accent or lighter surface +- Inactive: dark, muted + +### Links +- **Green**: `#00c573` — Supabase-branded links +- **Primary Light**: `#fafafa` — standard links on dark +- **Secondary**: `#b4b4b4` — muted links +- **Muted**: `#898989` — tertiary links, footer + +### Navigation +- Dark background matching page (`#171717`) +- Supabase logo with green icon +- Circular 14px weight 500 for nav links +- Clean horizontal layout with product dropdown +- Green "Start your project" CTA pill button +- Sticky header behavior + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 4px, 6px, 8px, 12px, 16px, 20px, 24px, 32px, 40px, 48px, 90px, 96px, 128px +- Notable large jumps: 48px → 90px → 96px → 128px for major section spacing + +### Grid & Container +- Centered content with generous max-width +- Full-width dark sections with constrained inner content +- Feature grids: icon-based grids with consistent card sizes +- Logo grids for "Trusted by" sections +- Footer: multi-column on dark background + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <600px | Single column, stacked layout | +| Desktop | >600px | Multi-column grids, expanded layout | + +*Note: Supabase uses a notably minimal breakpoint system — primarily a single 600px breakpoint, suggesting a mobile-first approach with progressive enhancement.* + +### Whitespace Philosophy +- **Dramatic section spacing**: 90px–128px between major sections creates a cinematic pacing — each section is its own scene in the dark void. +- **Dense content blocks**: Within sections, spacing is tight (16px–24px), creating concentrated information clusters. +- **Border-defined space**: Instead of whitespace + shadows for separation, Supabase uses thin borders on dark backgrounds — separation through line, not gap. + +### Border Radius Scale +- Standard (6px): Ghost buttons, small elements +- Comfortable (8px): Cards, containers +- Medium (11px–12px): Mid-size panels +- Large (16px): Feature cards, major containers +- Pill (9999px): Primary buttons, tab indicators + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, border `#2e2e2e` | Default state, most surfaces | +| Subtle Border (Level 1) | Border `#363636` or `#393939` | Interactive elements, hover | +| Focus (Level 2) | `rgba(0, 0, 0, 0.1) 0px 4px 12px` | Focus states only | +| Green Accent (Level 3) | Border `rgba(62, 207, 142, 0.3)` | Brand-highlighted elements | + +**Shadow Philosophy**: Supabase deliberately avoids shadows. In a dark-mode-native design, shadows are nearly invisible and serve no purpose. Instead, depth is communicated through a sophisticated border hierarchy — from `#242424` (barely visible) through `#2e2e2e` (standard) to `#393939` (prominent). The green accent border (`rgba(62, 207, 142, 0.3)`) at 30% opacity is the "elevated" state — the brand color itself becomes the depth signal. + +## 7. Do's and Don'ts + +### Do +- Use near-black backgrounds (`#0f0f0f`, `#171717`) — depth comes from the gray border hierarchy +- Apply Supabase green (`#3ecf8e`, `#00c573`) sparingly — it's an identity marker, not a decoration +- Use Circular at weight 400 for nearly everything — 500 only for buttons and nav +- Set hero text to 1.00 line-height — the zero-leading is the typographic signature +- Create depth through border color differences (`#242424` → `#2e2e2e` → `#363636`) +- Use pill shape (9999px) exclusively for primary CTAs and tabs +- Employ HSL-based colors with alpha for translucent layering effects +- Use Source Code Pro uppercase labels for developer-context markers + +### Don't +- Don't add box-shadows — they're invisible on dark backgrounds and break the border-defined depth system +- Don't use bold (700) text weight — the system uses 400 and 500 only +- Don't apply green to backgrounds or large surfaces — it's for borders, links, and small accents +- Don't use warm colors (crimson, orange) as primary design elements — they exist as semantic tokens for states +- Don't increase hero line-height above 1.00 — the density is intentional +- Don't use large border radius (16px+) on buttons — pills (9999px) or standard (6px), nothing in between +- Don't lighten the background above `#171717` for primary surfaces — the darkness is structural +- Don't forget the translucent borders — `rgba` border colors are the layering mechanism + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <600px | Single column, stacked features, condensed nav | +| Desktop | >600px | Multi-column grids, full nav, expanded sections | + +### Collapsing Strategy +- Hero: 72px → scales down proportionally +- Feature grids: multi-column → single column stacked +- Logo row: horizontal → wrapped grid +- Navigation: full → hamburger +- Section spacing: 90–128px → 48–64px +- Buttons: inline → full-width stacked + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Background: `#0f0f0f` (button), `#171717` (page) +- Text: `#fafafa` (primary), `#b4b4b4` (secondary), `#898989` (muted) +- Brand green: `#3ecf8e` (brand), `#00c573` (links) +- Borders: `#242424` (subtle), `#2e2e2e` (standard), `#363636` (prominent) +- Green border: `rgba(62, 207, 142, 0.3)` (accent) + +### Example Component Prompts +- "Create a hero section on #171717 background. Headline at 72px Circular weight 400, line-height 1.00, #fafafa text. Sub-text at 16px Circular weight 400, line-height 1.50, #b4b4b4. Pill CTA button (#0f0f0f bg, #fafafa text, 9999px radius, 8px 32px padding, 1px solid #fafafa border)." +- "Design a feature card: #171717 background, 1px solid #2e2e2e border, 16px radius. Title at 24px Circular weight 400, letter-spacing -0.16px. Body at 14px weight 400, #898989 text." +- "Build navigation bar: #171717 background. Circular 14px weight 500 for links, #fafafa text. Supabase logo with green icon left-aligned. Green pill CTA 'Start your project' right-aligned." +- "Create a technical label: Source Code Pro 12px, uppercase, letter-spacing 1.2px, #898989 text." +- "Design a framework logo grid: 6-column layout on dark, grayscale logos at 60% opacity, 1px solid #2e2e2e border between sections." + +### Iteration Guide +1. Start with #171717 background — everything is dark-mode-native +2. Green is the brand identity marker — use it for links, logo, and accent borders only +3. Depth comes from borders (#242424 → #2e2e2e → #363636), not shadows +4. Weight 400 is the default for everything — 500 only for interactive elements +5. Hero line-height of 1.00 is the signature typographic move +6. Pill (9999px) for primary actions, 6px for secondary, 8-16px for cards +7. HSL with alpha channels creates the sophisticated translucent layering diff --git a/design-md/supabase/README.md b/design-md/supabase/README.md new file mode 100644 index 0000000..063d3b9 --- /dev/null +++ b/design-md/supabase/README.md @@ -0,0 +1,25 @@ +# Supabase — Design System + +> Design.md extracted from the public [supabase](https://supabase.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 Supabase 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 +![Supabase Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/supabase/preview-dark-screenshot.png) + +### Light Mode +![Supabase Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/supabase/preview-screenshot.png) diff --git a/design-md/supabase/preview-dark.html b/design-md/supabase/preview-dark.html new file mode 100644 index 0000000..9469f94 --- /dev/null +++ b/design-md/supabase/preview-dark.html @@ -0,0 +1,977 @@ + + + + + +Design System Preview: Supabase (Dark) + + + + + + + + +
Dark Mode
+ + + + + +
+
Design System Preview
+

Design System
Inspired by Supabase

+

Even deeper darkness. The deepest surface (#0f0f0f) as the page canvas, where borders define every edge and green marks the brand.

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette

+ +
+

Brand

+
+
+
+
+
Supabase Green
+
#3ecf8e
+
Primary brand, logo, accent borders
+
+
+
+
+
+
Green Link
+
#00c573
+
Interactive green for links and actions
+
+
+
+
+
+
Green Border
+
rgba(62,207,142,0.3)
+
Subtle green border accent
+
+
+
+
+ +
+

Neutral Scale

+
+
+
+
+
Near Black
+
#0f0f0f
+
Primary button bg, deepest surface
+
+
+
+
+
+
Dark
+
#171717
+
Page background, primary canvas
+
+
+
+
+
+
Dark Border
+
#242424
+
Horizontal rules, section dividers
+
+
+
+
+
+
Border Dark
+
#2e2e2e
+
Card borders, tab borders
+
+
+
+
+
+
Mid Border
+
#363636
+
Button borders, dividers
+
+
+
+
+
+
Border Light
+
#393939
+
Secondary borders
+
+
+
+
+
+
Charcoal
+
#434343
+
Tertiary borders, dark accents
+
+
+
+
+
+
Dark Gray
+
#4d4d4d
+
Heavy secondary text
+
+
+
+
+
+
Mid Gray
+
#898989
+
Muted text, link color
+
+
+
+
+
+
Light Gray
+
#b4b4b4
+
Secondary link text
+
+
+
+
+
+
Near White
+
#efefef
+
Light border, subtle surface
+
+
+
+
+
+
Off White
+
#fafafa
+
Primary text, button text
+
+
+
+
+ +
+

Radix Color Tokens

+
+
+
+
+
Violet 10
+
hsl(251, 63%, 63%)
+
Vibrant accent
+
+
+
+
+
+
Purple 5
+
hsl(272, 51%, 54%)
+
Accent spectrum
+
+
+
+
+
+
Crimson 9
+
hsl(348, 60%, 50%)
+
Warm accent / alert
+
+
+
+
+
+
Indigo
+
hsl(226, 70%, 55%)
+
Subtle blue wash
+
+
+
+
+
+
Yellow 7
+
hsl(48, 90%, 55%)
+
Attention / warning
+
+
+
+
+
+
Tomato 4
+
hsl(10, 78%, 54%)
+
Error accent
+
+
+
+
+
+
Orange 6
+
hsl(24, 94%, 50%)
+
Warm accent
+
+
+
+
+ +
+

Surface & Overlay

+
+
+
+
+
Glass Dark
+
rgba(41,41,41,0.84)
+
Translucent dark overlay
+
+
+
+
+
+
Slate Alpha
+
hsla(210,88%,16%,0.03)
+
Ultra-subtle blue wash
+
+
+
+
+
+
Fixed Scale Alpha
+
hsla(200,90%,93%,0.11)
+
Light frost overlay
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display Hero — 72px / weight 400 / line-height 1.00 — Circular (system-ui)
+
+ +
+
Section Heading
+
Section Heading — 36px / weight 400 / line-height 1.25 — Circular (system-ui)
+
+ +
+
Card Title
+
Card Title — 24px / weight 400 / line-height 1.33 / letter-spacing -0.16px — Circular (system-ui)
+
+ +
+
Sub-heading
+
Sub-heading — 18px / weight 400 / line-height 1.56 — Circular (system-ui)
+
+ +
+
Body text for paragraphs and general content. Nearly all text uses weight 400 for hierarchy through size alone.
+
Body — 16px / weight 400 / line-height 1.50 — Circular (system-ui)
+
+ +
+
Nav Link · Button Label
+
Nav Link / Button — 14px / weight 500 / line-height 1.14–1.43 — Circular (system-ui)
+
+ +
+
Caption and metadata text for tags and descriptions
+
Caption — 14px / weight 400–500 / line-height 1.43 — Circular (system-ui)
+
+ +
+
Fine print, footer links, small metadata
+
Small — 12px / weight 400 / line-height 1.33 — Circular (system-ui)
+
+ +
+
Code Label · Technical Marker
+
Code Label — 12px / weight 400 / line-height 1.33 / letter-spacing 1.2px / uppercase — Source Code Pro
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Primary Pill
+
+
+ +
Secondary Pill
+
+
+ +
Ghost Button
+
+
+ +
Green Pill
+
+
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Border Dark Container

+

Default card with 1px solid #2e2e2e border and 16px radius. Depth defined through border contrast, not shadows. Background matches page at #0f0f0f.

+
+
+
Prominent Card
+

Mid Border Container

+

Elevated card using #363636 border for higher visual prominence. The lighter border creates the sense of depth in the dark environment.

+
+
+
Accent Card
+

Green Accent Container

+

Brand-highlighted card with rgba(62, 207, 142, 0.3) border. The green accent at 30% opacity is the highest elevation signal.

+
+
+
+ +
+ + +
+
05 / Form Elements
+

Form Elements

+ +
+
+
+ + +
+
+ + +
+
+ + +
Project name must only contain alphanumeric characters and hyphens.
+
+
+
+
+ + +
+
+ + +
+
+
+
+ +
+ + +
+
06 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale from 1px to 128px with notable large jumps for section spacing.

+ +
+
1px
+
4px
+
6px
+
8px
+
12px
+
16px
+
20px
+
24px
+
32px
+
40px
+
48px
+
90px
+
96px
+
128px
+
+
+ +
+ + +
+
07 / Border Radius Scale
+

Border Radius Scale

+

From standard 6px for ghost buttons to pill 9999px for primary CTAs. Nothing in between for buttons.

+ +
+
+
+
6px
+
Ghost buttons, small
+
+
+
+
8px
+
Cards, containers
+
+
+
+
12px
+
Mid-size panels
+
+
+
+
16px
+
Feature cards, major
+
+
+
+
9999px
+
Primary pills, tabs
+
+
+
+ +
+ + +
+
08 / Elevation & Depth
+

Elevation & Depth

+

No shadows. Depth is communicated through a sophisticated border hierarchy from barely visible to prominent green accent.

+ +
+
+
+
Flat
+
No shadow, border #2e2e2e. Default state for most surfaces and containers.
+
+
Level 0 — #2e2e2e
+
+
+
+
Subtle Border
+
Border #363636 or #393939. Interactive elements, hover states, prominent cards.
+
+
Level 1 — #363636
+
+
+
+
Focus
+
Minimal functional shadow: rgba(0,0,0,0.1) 0px 4px 12px. Focus states only.
+
+
Level 2 — Focus shadow
+
+
+
+
Green Accent
+
Brand-highlighted elements. The green accent border at 30% opacity is the highest elevation signal.
+
+
Level 3 — Green accent border
+
+
+
+ +
+ + + diff --git a/design-md/supabase/preview.html b/design-md/supabase/preview.html new file mode 100644 index 0000000..dedfbdf --- /dev/null +++ b/design-md/supabase/preview.html @@ -0,0 +1,955 @@ + + + + + +Design System Preview: Supabase (Light) + + + + + + + + + + + +
+
Design System Preview
+

Design System
Inspired by Supabase

+

Dark-mode-native developer platform aesthetic. Emerald green accents on near-black surfaces with border-defined depth.

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette

+ +
+

Brand

+
+
+
+
+
Supabase Green
+
#3ecf8e
+
Primary brand, logo, accent borders
+
+
+
+
+
+
Green Link
+
#00c573
+
Interactive green for links and actions
+
+
+
+
+
+
Green Border
+
rgba(62,207,142,0.3)
+
Subtle green border accent
+
+
+
+
+ +
+

Neutral Scale

+
+
+
+
+
Near Black
+
#0f0f0f
+
Primary button bg, deepest surface
+
+
+
+
+
+
Dark
+
#171717
+
Page background, primary canvas
+
+
+
+
+
+
Dark Border
+
#242424
+
Horizontal rules, section dividers
+
+
+
+
+
+
Border Dark
+
#2e2e2e
+
Card borders, tab borders
+
+
+
+
+
+
Mid Border
+
#363636
+
Button borders, dividers
+
+
+
+
+
+
Border Light
+
#393939
+
Secondary borders
+
+
+
+
+
+
Charcoal
+
#434343
+
Tertiary borders, dark accents
+
+
+
+
+
+
Dark Gray
+
#4d4d4d
+
Heavy secondary text
+
+
+
+
+
+
Mid Gray
+
#898989
+
Muted text, link color
+
+
+
+
+
+
Light Gray
+
#b4b4b4
+
Secondary link text
+
+
+
+
+
+
Near White
+
#efefef
+
Light border, subtle surface
+
+
+
+
+
+
Off White
+
#fafafa
+
Primary text, button text
+
+
+
+
+ +
+

Radix Color Tokens

+
+
+
+
+
Violet 10
+
hsl(251, 63%, 63%)
+
Vibrant accent
+
+
+
+
+
+
Purple 5
+
hsl(272, 51%, 54%)
+
Accent spectrum
+
+
+
+
+
+
Crimson 9
+
hsl(348, 60%, 50%)
+
Warm accent / alert
+
+
+
+
+
+
Indigo
+
hsl(226, 70%, 55%)
+
Subtle blue wash
+
+
+
+
+
+
Yellow 7
+
hsl(48, 90%, 55%)
+
Attention / warning
+
+
+
+
+
+
Tomato 4
+
hsl(10, 78%, 54%)
+
Error accent
+
+
+
+
+
+
Orange 6
+
hsl(24, 94%, 50%)
+
Warm accent
+
+
+
+
+ +
+

Surface & Overlay

+
+
+
+
+
Glass Dark
+
rgba(41,41,41,0.84)
+
Translucent dark overlay
+
+
+
+
+
+
Slate Alpha
+
hsla(210,88%,16%,0.03)
+
Ultra-subtle blue wash
+
+
+
+
+
+
Fixed Scale Alpha
+
hsla(200,90%,93%,0.11)
+
Light frost overlay
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display Hero — 72px / weight 400 / line-height 1.00 — Circular (system-ui)
+
+ +
+
Section Heading
+
Section Heading — 36px / weight 400 / line-height 1.25 — Circular (system-ui)
+
+ +
+
Card Title
+
Card Title — 24px / weight 400 / line-height 1.33 / letter-spacing -0.16px — Circular (system-ui)
+
+ +
+
Sub-heading
+
Sub-heading — 18px / weight 400 / line-height 1.56 — Circular (system-ui)
+
+ +
+
Body text for paragraphs and general content. Nearly all text uses weight 400 for hierarchy through size alone.
+
Body — 16px / weight 400 / line-height 1.50 — Circular (system-ui)
+
+ +
+
Nav Link · Button Label
+
Nav Link / Button — 14px / weight 500 / line-height 1.14–1.43 — Circular (system-ui)
+
+ +
+
Caption and metadata text for tags and descriptions
+
Caption — 14px / weight 400–500 / line-height 1.43 — Circular (system-ui)
+
+ +
+
Fine print, footer links, small metadata
+
Small — 12px / weight 400 / line-height 1.33 — Circular (system-ui)
+
+ +
+
Code Label · Technical Marker
+
Code Label — 12px / weight 400 / line-height 1.33 / letter-spacing 1.2px / uppercase — Source Code Pro
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Primary Pill
+
+
+ +
Secondary Pill
+
+
+ +
Ghost Button
+
+
+ +
Green Pill
+
+
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Border Dark Container

+

Default card with 1px solid #2e2e2e border and 16px radius. Depth defined through border contrast, not shadows. Background matches page at #171717.

+
+
+
Prominent Card
+

Mid Border Container

+

Elevated card using #363636 border for higher visual prominence. The lighter border creates the sense of depth in the dark environment.

+
+
+
Accent Card
+

Green Accent Container

+

Brand-highlighted card with rgba(62, 207, 142, 0.3) border. The green accent at 30% opacity is the highest elevation signal.

+
+
+
+ +
+ + +
+
05 / Form Elements
+

Form Elements

+ +
+
+
+ + +
+
+ + +
+
+ + +
Project name must only contain alphanumeric characters and hyphens.
+
+
+
+
+ + +
+
+ + +
+
+
+
+ +
+ + +
+
06 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale from 1px to 128px with notable large jumps for section spacing.

+ +
+
1px
+
4px
+
6px
+
8px
+
12px
+
16px
+
20px
+
24px
+
32px
+
40px
+
48px
+
90px
+
96px
+
128px
+
+
+ +
+ + +
+
07 / Border Radius Scale
+

Border Radius Scale

+

From standard 6px for ghost buttons to pill 9999px for primary CTAs. Nothing in between for buttons.

+ +
+
+
+
6px
+
Ghost buttons, small
+
+
+
+
8px
+
Cards, containers
+
+
+
+
12px
+
Mid-size panels
+
+
+
+
16px
+
Feature cards, major
+
+
+
+
9999px
+
Primary pills, tabs
+
+
+
+ +
+ + +
+
08 / Elevation & Depth
+

Elevation & Depth

+

No shadows. Depth is communicated through a sophisticated border hierarchy from barely visible to prominent green accent.

+ +
+
+
+
Flat
+
No shadow, border #2e2e2e. Default state for most surfaces and containers.
+
+
Level 0 — #2e2e2e
+
+
+
+
Subtle Border
+
Border #363636 or #393939. Interactive elements, hover states, prominent cards.
+
+
Level 1 — #363636
+
+
+
+
Focus
+
Minimal functional shadow: rgba(0,0,0,0.1) 0px 4px 12px. Focus states only.
+
+
Level 2 — Focus shadow
+
+
+
+
Green Accent
+
Brand-highlighted elements. The green accent border at 30% opacity is the highest elevation signal.
+
+
Level 3 — Green accent border
+
+
+
+ +
+ + + diff --git a/design-md/together.ai/DESIGN.md b/design-md/together.ai/DESIGN.md new file mode 100644 index 0000000..3cc30db --- /dev/null +++ b/design-md/together.ai/DESIGN.md @@ -0,0 +1,263 @@ +# Design System: Together AI + +## 1. Visual Theme & Atmosphere + +Together AI's interface is a pastel-gradient dreamscape built for enterprise AI infrastructure — a design that somehow makes GPU clusters and model inference feel light, airy, and optimistic. The hero section blooms with soft pink-blue-lavender gradients and abstract, painterly illustrations that evoke clouds and flight, establishing a visual metaphor for the "AI-Native Cloud" proposition. Against this softness, the typography cuts through with precision: "The Future" display font at 64px with aggressive negative tracking (-1.92px) creates dense, authoritative headline blocks. + +The design straddles two worlds: a bright, white-canvas light side where pastel gradients and stats cards create an approachable platform overview, and a dark navy universe (`#010120` — not gray-black but a deep midnight blue) where research papers and technical content live. This dual-world approach elegantly separates the "business" messaging (light, friendly, stat-driven) from the "research" messaging (dark, serious, academic). + +What makes Together AI distinctive is its type system. "The Future" handles all display and body text with a geometric modernist aesthetic, while "PP Neue Montreal Mono" provides uppercase labels with meticulous letter-spacing — creating a "technical infrastructure company with taste" personality. The brand accents — magenta (`#ef2cc1`) and orange (`#fc4c02`) — appear sparingly in the gradient and illustrations, never polluting the clean UI. + +**Key Characteristics:** +- Soft pastel gradients (pink, blue, lavender) against pure white canvas +- Deep midnight blue (`#010120`) for dark/research sections — not gray-black +- Custom "The Future" font with aggressive negative letter-spacing throughout +- PP Neue Montreal Mono for uppercase technical labels +- Sharp geometry (4px, 8px radius) — not rounded, not pill +- Magenta (#ef2cc1) + orange (#fc4c02) brand accents in illustrations only +- Lavender (#bdbbff) as a soft secondary accent +- Enterprise stats prominently displayed (2x, 60%, 90%) +- Dark-blue-tinted shadows (rgba(1, 1, 32, 0.1)) + +## 2. Color Palette & Roles + +### Primary +- **Brand Magenta** (`#ef2cc1`): The primary brand accent — a vivid pink-magenta used in gradient illustrations and the highest-signal brand moments. Never used as UI chrome. +- **Brand Orange** (`#fc4c02`): The secondary brand accent — a vivid orange for gradient endpoints and warm accent moments. +- **Dark Blue** (`#010120`): The primary dark surface — a deep midnight blue-black used for research sections, footer, and dark containers. Not gray, not black — distinctly blue. + +### Secondary & Accent +- **Soft Lavender** (`#bdbbff`): A gentle blue-violet used for subtle accents, secondary indicators, and soft UI highlights. +- **Black 40** (`#00000066`): Semi-transparent black for de-emphasized overlays and secondary text. + +### Surface & Background +- **Pure White** (`#ffffff`): The primary light-section page background. +- **Dark Blue** (`#010120`): Dark-section backgrounds — research, footer, technical content. +- **Glass Light** (`rgba(255, 255, 255, 0.12)`): Frosted glass button backgrounds on dark sections. +- **Glass Dark** (`rgba(0, 0, 0, 0.08)`): Subtle tinted surfaces on light sections. + +### Neutrals & Text +- **Pure Black** (`#000000`): Primary text on light surfaces. +- **Pure White** (`#ffffff`): Primary text on dark surfaces. +- **Black 8%** (`rgba(0, 0, 0, 0.08)`): Borders and subtle containment on light surfaces. +- **White 12%** (`rgba(255, 255, 255, 0.12)`): Borders and containment on dark surfaces. + +### Gradient System +- **Pastel Cloud Gradient**: Soft pink → lavender → soft blue gradients in hero illustrations. These appear in abstract, painterly forms — clouds, feathers, flowing shapes — that create visual warmth without literal meaning. +- **Hero Gradient**: The hero background uses soft pastel tints layered over white, creating a dawn-like atmospheric effect. + +## 3. Typography Rules + +### Font Family +- **Primary**: `The Future`, with fallback: `Arial` +- **Monospace / Labels**: `PP Neue Montreal Mono`, with fallback: `Georgia` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display / Hero | The Future | 64px (4rem) | 400–500 | 1.00–1.10 (tight) | -1.92px | Maximum impact, dense blocks | +| Section Heading | The Future | 40px (2.5rem) | 500 | 1.20 (tight) | -0.8px | Feature section titles | +| Sub-heading | The Future | 28px (1.75rem) | 500 | 1.15 (tight) | -0.42px | Card headings | +| Feature Title | The Future | 22px (1.38rem) | 500 | 1.15 (tight) | -0.22px | Small feature headings | +| Body Large | The Future | 18px (1.13rem) | 400–500 | 1.30 (tight) | -0.18px | Descriptions, sections | +| Body / Button | The Future | 16px (1rem) | 400–500 | 1.25–1.30 | -0.16px | Standard body, nav, buttons | +| Caption | The Future | 14px (0.88rem) | 400–500 | 1.40 | normal | Metadata, descriptions | +| Mono Label | PP Neue Montreal Mono | 16px (1rem) | 500 | 1.00 (tight) | 0.08px | Uppercase section labels | +| Mono Small | PP Neue Montreal Mono | 11px (0.69rem) | 500 | 1.00–1.40 | 0.055–0.08px | Small uppercase tags | +| Mono Micro | PP Neue Montreal Mono | 10px (0.63rem) | 400 | 1.40 | 0.05px | Smallest uppercase labels | + +### Principles +- **Negative tracking everywhere**: Every size of "The Future" uses negative letter-spacing (-0.16px to -1.92px), creating consistently tight, modern text. +- **Mono for structure**: PP Neue Montreal Mono in uppercase with positive letter-spacing creates technical "label" moments that structure the page without competing with display text. +- **Weight 500 as emphasis**: The system uses 400 (regular) and 500 (medium) — no bold. Medium weight marks headings and emphasis. +- **Tight line-heights throughout**: Even body text uses 1.25–1.30 line-height — tighter than typical, creating a dense, information-rich feel. + +## 4. Component Stylings + +### Buttons + +**Glass on Dark** +- Background: `rgba(255, 255, 255, 0.12)` (frosted glass) +- Text: Pure White (`#ffffff`) +- Radius: sharp (4px) +- Opacity: 0.5 +- Hover: transparent dark overlay +- Used on dark sections — subtle, glass-like + +**Dark Solid** +- Background: Dark Blue (`#010120`) or Pure Black +- Text: Pure White +- Radius: sharp (4px) +- The primary CTA on light surfaces + +**Outlined Light** +- Border: `1px solid rgba(0, 0, 0, 0.08)` +- Background: transparent or subtle glass +- Text: Pure Black +- Radius: sharp (4px) +- Secondary actions on light surfaces + +### Cards & Containers +- Background: Pure White or subtle glass tint +- Border: `1px solid rgba(0, 0, 0, 0.08)` on light; `1px solid rgba(255, 255, 255, 0.12)` on dark +- Radius: sharp (4px) for badges and small elements; comfortable (8px) for larger containers +- Shadow: dark-blue-tinted (`rgba(1, 1, 32, 0.1) 0px 4px 10px`) — warm and subtle +- Stats cards with large numbers prominently displayed + +### Badges / Tags +- Background: `rgba(0, 0, 0, 0.04)` (light) or `rgba(255, 255, 255, 0.12)` (dark) +- Text: Black (light) or White (dark) +- Padding: 2px 8px (compact) +- Radius: sharp (4px) +- Border: `1px solid rgba(0, 0, 0, 0.08)` +- PP Neue Montreal Mono, uppercase, 16px + +### Navigation +- Clean horizontal nav on white/transparent +- Logo: Together AI wordmark +- Links: The Future at 16px, weight 400 +- CTA: Dark solid button +- Hover: no text-decoration + +### Image Treatment +- Abstract pastel gradient illustrations (cloud/feather forms) +- Product UI screenshots on dark/light surfaces +- Team photos in editorial style +- Research paper cards with dark backgrounds + +### Distinctive Components + +**Stats Bar** +- Large performance metrics (2x, 60%, 90%) +- Bold display numbers +- Short descriptive captions beneath +- Clean horizontal layout + +**Mono Section Labels** +- PP Neue Montreal Mono, uppercase, 11px, letter-spacing 0.055px +- Used as navigational signposts throughout the page +- Technical, structured feel + +**Research Section** +- Dark Blue (#010120) background +- White text, research paper thumbnails +- Creates a distinct "academic" zone + +**Large Footer Logo** +- "together" wordmark rendered at massive scale in the dark footer +- Creates a brand-statement closing moment + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 2px, 4px, 8px, 10px, 12px, 16px, 20px, 24px, 32px, 44px, 48px, 80px, 100px, 120px +- Button/badge padding: 2px 8px (compact) +- Card internal padding: approximately 24–32px +- Section vertical spacing: generous (80–120px) + +### Grid & Container +- Max container width: approximately 1200px, centered +- Hero: centered with pastel gradient background +- Feature sections: multi-column card grids +- Stats: horizontal row of metric cards +- Research: dark full-width section + +### Whitespace Philosophy +- **Optimistic breathing room**: Generous spacing between sections creates an open, inviting feel that makes enterprise AI infrastructure feel accessible. +- **Dual atmosphere**: Light sections breathe with whitespace; dark sections are denser with content. +- **Stats as visual anchors**: Large numbers with small captions create natural focal points. + +### Border Radius Scale +- Sharp (4px): Buttons, badges, tags, small interactive elements — the primary radius +- Comfortable (8px): Larger containers, feature cards + +*This is a deliberately restrained radius system — no pills, no generous rounding. The sharp geometry contrasts with the soft pastel gradients.* + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, no border | Page background, text blocks | +| Contained (Level 1) | `1px solid rgba(0,0,0,0.08)` (light) or `rgba(255,255,255,0.12)` (dark) | Cards, badges, containers | +| Elevated (Level 2) | `rgba(1, 1, 32, 0.1) 0px 4px 10px` | Feature cards, hover states | +| Dark Zone (Level 3) | Dark Blue (#010120) full-width background | Research, footer, technical sections | + +**Shadow Philosophy**: Together AI uses a single, distinctive shadow — tinted with Dark Blue (`rgba(1, 1, 32, 0.1)`) rather than generic black. This gives elevated elements a subtle blue-ish cast that ties them to the brand's midnight-blue dark mode. The shadow is soft (10px blur, 4px offset) and always downward — creating gentle paper-hover elevation. + +## 7. Do's and Don'ts + +### Do +- Use pastel gradients (pink/blue/lavender) for hero illustrations and decorative backgrounds +- Use Dark Blue (#010120) for dark sections — never generic gray-black +- Apply negative letter-spacing on all "The Future" text (scaled by size) +- Use PP Neue Montreal Mono in uppercase for section labels and technical markers +- Keep border-radius sharp (4px) for badges and interactive elements +- Use the dark-blue-tinted shadow for elevation +- Maintain the light/dark section duality — business (light) vs research (dark) +- Show enterprise stats prominently with large display numbers + +### Don't +- Don't use Brand Magenta (#ef2cc1) or Brand Orange (#fc4c02) as UI colors — they're for illustrations only +- Don't use pill-shaped or generously rounded corners — the geometry is sharp +- Don't use generic gray-black for dark sections — always Dark Blue (#010120) +- Don't use positive letter-spacing on "The Future" — it's always negative +- Don't use bold (700+) weight — 400–500 is the full range +- Don't use warm-toned shadows — always dark-blue-tinted +- Don't reduce section spacing below 48px — the open feeling is core +- Don't mix in additional typefaces — "The Future" + PP Neue Montreal Mono is the pair + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <479px | Compact layout, stacked everything | +| Large Mobile | 479–767px | Single column, hamburger nav | +| Tablet | 768–991px | 2-column grids begin | +| Desktop | 992px+ | Full multi-column layout | + +### Touch Targets +- Buttons with adequate padding +- Card surfaces as touch targets +- Navigation links at comfortable 16px + +### Collapsing Strategy +- **Navigation**: Collapses to hamburger on mobile +- **Hero text**: 64px → 40px → 28px progressive scaling +- **Stats bar**: Horizontal → stacked vertical +- **Feature grids**: Multi-column → single column +- **Research section**: Cards stack vertically + +### Image Behavior +- Pastel illustrations scale proportionally +- Product screenshots maintain aspect ratio +- Team photos scale within containers + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary Text (light): "Pure Black (#000000)" +- Primary Text (dark): "Pure White (#ffffff)" +- Page Background: "Pure White (#ffffff)" +- Dark Surface: "Dark Blue (#010120)" +- Brand Accent 1: "Brand Magenta (#ef2cc1)" +- Brand Accent 2: "Brand Orange (#fc4c02)" +- Soft Accent: "Soft Lavender (#bdbbff)" +- Border (light): "rgba(0, 0, 0, 0.08)" + +### Example Component Prompts +- "Create a hero section on white with soft pastel gradients (pink → lavender → blue) as background. Headline at 64px 'The Future' weight 500, line-height 1.10, letter-spacing -1.92px. Pure Black text. Include a dark blue CTA button (#010120, 4px radius)." +- "Design a stats card: large display number (64px, weight 500) with a small caption below (14px). White background, 8px radius, dark-blue-tinted shadow (rgba(1, 1, 32, 0.1) 0px 4px 10px)." +- "Build a section label: PP Neue Montreal Mono, 11px, weight 500, uppercase, letter-spacing 0.055px. Black text on light, white on dark." +- "Create a dark research section: Dark Blue (#010120) background. White text, section heading at 40px 'The Future' weight 500, letter-spacing -0.8px. Cards with rgba(255, 255, 255, 0.12) border." +- "Design a badge: 4px radius, rgba(0, 0, 0, 0.04) background, 1px solid rgba(0, 0, 0, 0.08) border, 'The Future' 16px text. Padding: 2px 8px." + +### Iteration Guide +1. Always specify negative letter-spacing for "The Future" — it's scaled by size +2. Dark sections use #010120 (midnight blue), never generic black +3. Shadows are always dark-blue-tinted: rgba(1, 1, 32, 0.1) +4. Mono labels are always uppercase with positive letter-spacing +5. Keep radius sharp (4px or 8px) — no pills, no generous rounding +6. Pastel gradients are for decoration, not UI chrome diff --git a/design-md/together.ai/README.md b/design-md/together.ai/README.md new file mode 100644 index 0000000..45b37aa --- /dev/null +++ b/design-md/together.ai/README.md @@ -0,0 +1,25 @@ +# Together.ai — Design System + +> Design.md extracted from the public [together.ai](https://together.ai.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 Together.ai 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 +![Together.ai Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/together.ai/preview-dark-screenshot.png) + +### Light Mode +![Together.ai Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/together.ai/preview-screenshot.png) diff --git a/design-md/together.ai/preview-dark.html b/design-md/together.ai/preview-dark.html new file mode 100644 index 0000000..43d7da6 --- /dev/null +++ b/design-md/together.ai/preview-dark.html @@ -0,0 +1,892 @@ + + + + + +Design System Preview: Together AI (Dark) + + + + + + + + + + + +
+
+

Design System Preview:
Together AI

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary Brand

+
+
+
+
+
Brand Magenta
+
#ef2cc1
+
Gradient illustrations only, never UI chrome
+
+
+
+
+
+
Brand Orange
+
#fc4c02
+
Gradient endpoints, warm accent moments
+
+
+
+
+
+
Dark Blue
+
#010120
+
Dark surface, research sections, footer
+
+
+
+
+ +
+

Secondary & Accent

+
+
+
+
+
Soft Lavender
+
#bdbbff
+
Subtle accents, secondary indicators, highlights
+
+
+
+
+
+
Black 40
+
#00000066
+
De-emphasized overlays, secondary text
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Pure White
+
#ffffff
+
Primary light-section page background
+
+
+
+
+
+
Dark Blue
+
#010120
+
Research, footer, technical sections
+
+
+
+
+
+
Glass Light
+
rgba(255,255,255,0.12)
+
Frosted glass button backgrounds on dark
+
+
+
+
+
+
Glass Dark
+
rgba(0,0,0,0.08)
+
Subtle tinted surfaces on light sections
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Pure Black
+
#000000
+
Primary text on light surfaces
+
+
+
+
+
+
Pure White
+
#ffffff
+
Primary text on dark surfaces
+
+
+
+
+
+
Black 8%
+
rgba(0,0,0,0.08)
+
Borders on light surfaces
+
+
+
+
+
+
White 12%
+
rgba(255,255,255,0.12)
+
Borders on dark surfaces
+
+
+
+
+ +
+

Gradient System

+
+
+
+
+
Pastel Cloud Gradient
+
pink -> lavender -> blue
+
Hero illustrations, decorative backgrounds, abstract forms
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero -- 64px / 500 / 1.10 / -1.92px -- "The Future" (system-ui)
+
+ +
+
Section Heading
+
Section Heading -- 40px / 500 / 1.20 / -0.8px -- "The Future" (system-ui)
+
+ +
+
Sub-heading
+
Sub-heading -- 28px / 500 / 1.15 / -0.42px -- "The Future" (system-ui)
+
+ +
+
Feature Title
+
Feature Title -- 22px / 500 / 1.15 / -0.22px -- "The Future" (system-ui)
+
+ +
+
Body large text for descriptions and section introductions. The Future provides geometric modernist aesthetic for all UI copy.
+
Body Large -- 18px / 400 / 1.30 / -0.18px -- "The Future" (system-ui)
+
+ +
+
Standard body text for paragraphs, navigation links, and button labels. Tight line-height creates dense, information-rich layouts.
+
Body / Button -- 16px / 400 / 1.30 / -0.16px -- "The Future" (system-ui)
+
+ +
+
Caption and metadata text for descriptions
+
Caption -- 14px / 400 / 1.40 / normal -- "The Future" (system-ui)
+
+ +
+
MONO SECTION LABEL
+
Mono Label -- 16px / 500 / 1.00 / 0.08px / uppercase -- "PP Neue Montreal Mono" (Space Mono)
+
+ +
+
MONO SMALL UPPERCASE TAG
+
Mono Small -- 11px / 500 / 1.40 / 0.055px / uppercase -- "PP Neue Montreal Mono" (Space Mono)
+
+ +
+
MONO MICRO LABEL
+
Mono Micro -- 10px / 400 / 1.40 / 0.05px / uppercase -- "PP Neue Montreal Mono" (Space Mono)
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Glass on Dark
+
+
+ +
Inverted Solid
+
+
+ +
Outlined
+
+
+ INFERENCE +
Badge / Tag
+
+
+ + +
+
Stats Bar
+
+
+
2x
+
Faster inference speed
+
+
+
60%
+
Cost reduction
+
+
+
90%
+
GPU utilization
+
+
+
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
CONTAINED
+

Standard Card

+

Content card with 1px solid rgba(255,255,255,0.12) border and 8px radius. The default container for research and technical content on dark surfaces.

+
+
+
ELEVATED
+

Shadow Card

+

Elevated card with dark-blue-tinted shadow. Subtle blue-ish cast ties elevated elements to the midnight-blue dark mode.

+
+
+
ACCENT
+

Lavender Accent

+

Card with soft lavender border accent. Used for highlighted or selected content where a gentle visual distinction is needed.

+
+
+ +
+
LIGHT ZONE CARDS
+
+
+
BUSINESS
+

Platform Feature

+

Card on white surface with rgba(0,0,0,0.08) border. Used in bright business sections for approachable platform overview.

+
+
+
FEATURE
+

Product Overview

+

The light zone creates an open, inviting feel that makes enterprise AI infrastructure feel accessible and friendly.

+
+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale: 1px to 120px.

+ +
+
1px
+
2px
+
4px
+
8px
+
12px
+
16px
+
20px
+
24px
+
32px
+
44px
+
48px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+

Deliberately restrained: only 4px and 8px. No pills, no generous rounding.

+ +
+
4px
Buttons, badges, tags
+
8px
Cards, containers
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow, no border. Page background and text blocks.
+
LEVEL 0
+
+
+
Contained
1px solid rgba(255,255,255,0.12) on dark or rgba(0,0,0,0.08) on light. Cards, badges, containers.
+
LEVEL 1
+
+
+
Elevated
Dark-blue-tinted shadow: rgba(1,1,32,0.1) 0px 4px 10px. Feature cards and hover states.
+
LEVEL 2
+
+
+
Light Zone
Pure White (#ffffff) full-width background. Business, platform, stats sections.
+
LEVEL 3
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/design-md/together.ai/preview.html b/design-md/together.ai/preview.html new file mode 100644 index 0000000..cb97b04 --- /dev/null +++ b/design-md/together.ai/preview.html @@ -0,0 +1,897 @@ + + + + + +Design System Preview: Together AI (Light) + + + + + + + + + + + +
+
+

Design System Preview:
Together AI

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary Brand

+
+
+
+
+
Brand Magenta
+
#ef2cc1
+
Gradient illustrations only, never UI chrome
+
+
+
+
+
+
Brand Orange
+
#fc4c02
+
Gradient endpoints, warm accent moments
+
+
+
+
+
+
Dark Blue
+
#010120
+
Dark surface, research sections, footer
+
+
+
+
+ +
+

Secondary & Accent

+
+
+
+
+
Soft Lavender
+
#bdbbff
+
Subtle accents, secondary indicators, highlights
+
+
+
+
+
+
Black 40
+
#00000066
+
De-emphasized overlays, secondary text
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Pure White
+
#ffffff
+
Primary light-section page background
+
+
+
+
+
+
Dark Blue
+
#010120
+
Research, footer, technical sections
+
+
+
+
+
+
Glass Light
+
rgba(255,255,255,0.12)
+
Frosted glass button backgrounds on dark
+
+
+
+
+
+
Glass Dark
+
rgba(0,0,0,0.08)
+
Subtle tinted surfaces on light sections
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Pure Black
+
#000000
+
Primary text on light surfaces
+
+
+
+
+
+
Pure White
+
#ffffff
+
Primary text on dark surfaces
+
+
+
+
+
+
Black 8%
+
rgba(0,0,0,0.08)
+
Borders on light surfaces
+
+
+
+
+
+
White 12%
+
rgba(255,255,255,0.12)
+
Borders on dark surfaces
+
+
+
+
+ +
+

Gradient System

+
+
+
+
+
Pastel Cloud Gradient
+
pink -> lavender -> blue
+
Hero illustrations, decorative backgrounds, abstract forms
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero -- 64px / 500 / 1.10 / -1.92px -- "The Future" (system-ui)
+
+ +
+
Section Heading
+
Section Heading -- 40px / 500 / 1.20 / -0.8px -- "The Future" (system-ui)
+
+ +
+
Sub-heading
+
Sub-heading -- 28px / 500 / 1.15 / -0.42px -- "The Future" (system-ui)
+
+ +
+
Feature Title
+
Feature Title -- 22px / 500 / 1.15 / -0.22px -- "The Future" (system-ui)
+
+ +
+
Body large text for descriptions and section introductions. The Future provides geometric modernist aesthetic for all UI copy.
+
Body Large -- 18px / 400 / 1.30 / -0.18px -- "The Future" (system-ui)
+
+ +
+
Standard body text for paragraphs, navigation links, and button labels. Tight line-height creates dense, information-rich layouts.
+
Body / Button -- 16px / 400 / 1.30 / -0.16px -- "The Future" (system-ui)
+
+ +
+
Caption and metadata text for descriptions
+
Caption -- 14px / 400 / 1.40 / normal -- "The Future" (system-ui)
+
+ +
+
MONO SECTION LABEL
+
Mono Label -- 16px / 500 / 1.00 / 0.08px / uppercase -- "PP Neue Montreal Mono" (Space Mono)
+
+ +
+
MONO SMALL UPPERCASE TAG
+
Mono Small -- 11px / 500 / 1.40 / 0.055px / uppercase -- "PP Neue Montreal Mono" (Space Mono)
+
+ +
+
MONO MICRO LABEL
+
Mono Micro -- 10px / 400 / 1.40 / 0.05px / uppercase -- "PP Neue Montreal Mono" (Space Mono)
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Dark Solid CTA
+
+
+ +
Outlined Light
+
+
+
+ +
+
Glass on Dark
+
+
+ INFERENCE +
Badge / Tag
+
+
+ + +
+
Stats Bar
+
+
+
2x
+
Faster inference speed
+
+
+
60%
+
Cost reduction
+
+
+
90%
+
GPU utilization
+
+
+
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
CONTAINED
+

Standard Card

+

Content card with 1px solid rgba(0,0,0,0.08) border and 8px radius. The default container for features and content sections on light surfaces.

+
+
+
ELEVATED
+

Shadow Card

+

Elevated card with dark-blue-tinted shadow (rgba(1,1,32,0.1) 0px 4px 10px). Used for feature cards and hover states. Subtle blue-ish cast.

+
+
+
ACCENT
+

Lavender Accent

+

Card with soft lavender border accent. Used for highlighted or selected content where a gentle visual distinction is needed.

+
+
+ +
+
DARK ZONE CARDS
+
+
+
RESEARCH
+

Research Paper

+

Card on Dark Blue (#010120) surface with rgba(255,255,255,0.12) border. Used in research and technical content sections.

+
+
+
TECHNICAL
+

Technical Content

+

The dark zone creates a distinct academic atmosphere, separating research messaging from the bright business sections.

+
+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale: 1px to 120px.

+ +
+
1px
+
2px
+
4px
+
8px
+
12px
+
16px
+
20px
+
24px
+
32px
+
44px
+
48px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+

Deliberately restrained: only 4px and 8px. No pills, no generous rounding.

+ +
+
4px
Buttons, badges, tags
+
8px
Cards, containers
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow, no border. Page background and text blocks.
+
LEVEL 0
+
+
+
Contained
1px solid rgba(0,0,0,0.08) on light or rgba(255,255,255,0.12) on dark. Cards, badges, containers.
+
LEVEL 1
+
+
+
Elevated
Dark-blue-tinted shadow: rgba(1,1,32,0.1) 0px 4px 10px. Feature cards and hover states.
+
LEVEL 2
+
+
+
Dark Zone
Dark Blue (#010120) full-width background. Research, footer, technical sections.
+
LEVEL 3
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/design-md/uber/DESIGN.md b/design-md/uber/DESIGN.md new file mode 100644 index 0000000..ddd0142 --- /dev/null +++ b/design-md/uber/DESIGN.md @@ -0,0 +1,295 @@ +# Design System: Uber + +## 1. Visual Theme & Atmosphere + +Uber's design language is a masterclass in confident minimalism -- a black-and-white universe where every pixel serves a purpose and nothing decorates without earning its place. The entire experience is built on a stark duality: jet black (`#000000`) and pure white (`#ffffff`), with virtually no mid-tone grays diluting the message. This isn't the sterile minimalism of a startup that hasn't finished designing -- it's the deliberate restraint of a brand so established it can afford to whisper. + +The signature typeface, UberMove, is a proprietary geometric sans-serif with a distinctly square, engineered quality. Headlines in UberMove Bold at 52px carry the weight of a billboard -- authoritative, direct, unapologetic. The companion face UberMoveText handles body copy and buttons with a slightly softer, more readable character at medium weight (500). Together, they create a typographic system that feels like a transit map: clear, efficient, built for scanning at speed. + +What makes Uber's design truly distinctive is its use of full-bleed photography and illustration paired with pill-shaped interactive elements (999px border-radius). Navigation chips, CTA buttons, and category selectors all share this capsule shape, creating a tactile, thumb-friendly interface language that's unmistakably Uber. The illustrations -- warm, slightly stylized scenes of drivers, riders, and cityscapes -- inject humanity into what could otherwise be a cold, monochrome system. The site alternates between white content sections and a full-black footer, with card-based layouts using the gentlest possible shadows (rgba(0,0,0,0.12-0.16)) to create subtle lift without breaking the flat aesthetic. + +**Key Characteristics:** +- Pure black-and-white foundation with virtually no mid-tone grays in the UI chrome +- UberMove (headlines) + UberMoveText (body/UI) -- proprietary geometric sans-serif family +- Pill-shaped everything: buttons, chips, nav items all use 999px border-radius +- Warm, human illustrations contrasting the stark monochrome interface +- Card-based layout with whisper-soft shadows (0.12-0.16 opacity) +- 8px spacing grid with compact, information-dense layouts +- Bold photography integrated as full-bleed hero backgrounds +- Black footer anchoring the page with a dark, high-contrast environment + +## 2. Color Palette & Roles + +### Primary +- **Uber Black** (`#000000`): The defining brand color -- used for primary buttons, headlines, navigation text, and the footer. Not "near-black" or "off-black," but true, uncompromising black. +- **Pure White** (`#ffffff`): The primary surface color and inverse text. Used for page backgrounds, card surfaces, and text on black elements. + +### Interactive & Button States +- **Hover Gray** (`#e2e2e2`): White button hover state -- a clean, cool light gray that provides clear feedback without warmth. +- **Hover Light** (`#f3f3f3`): Subtle hover for elevated white buttons -- barely-there gray for gentle interaction feedback. +- **Chip Gray** (`#efefef`): Background for secondary/filter buttons and navigation chips -- a neutral, ultra-light gray. + +### Text & Content +- **Body Gray** (`#4b4b4b`): Secondary text and footer links -- a true mid-gray with no warm or cool bias. +- **Muted Gray** (`#afafaf`): Tertiary text, de-emphasized footer links, and placeholder content. + +### Borders & Separation +- **Border Black** (`#000000`): Thin 1px borders for structural containment -- used sparingly on dividers and form containers. + +### Shadows & Depth +- **Shadow Light** (`rgba(0, 0, 0, 0.12)`): Standard card elevation -- a featherweight lift for content cards. +- **Shadow Medium** (`rgba(0, 0, 0, 0.16)`): Slightly stronger elevation for floating action buttons and overlays. +- **Button Press** (`rgba(0, 0, 0, 0.08)`): Inset shadow for active/pressed states on secondary buttons. + +### Link States +- **Default Link Blue** (`#0000ee`): Standard browser blue for text links with underline -- used in body content. +- **Link White** (`#ffffff`): Links on dark surfaces -- used in footer and dark sections. +- **Link Black** (`#000000`): Links on light surfaces with underline decoration. + +### Gradient System +- Uber's design is **entirely gradient-free**. The black/white duality and flat color blocks create all visual hierarchy. No gradients appear anywhere in the system -- every surface is a solid color, every transition is a hard edge or a shadow. + +## 3. Typography Rules + +### Font Family +- **Headline / Display**: `UberMove`, with fallbacks: `UberMoveText, system-ui, Helvetica Neue, Helvetica, Arial, sans-serif` +- **Body / UI**: `UberMoveText`, with fallbacks: `system-ui, Helvetica Neue, Helvetica, Arial, sans-serif` + +*Note: UberMove and UberMoveText are proprietary typefaces. For external implementations, use `system-ui` or Inter as the closest available substitute. The geometric, square-proportioned character of UberMove can be approximated with Inter or DM Sans.* + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Notes | +|------|------|------|--------|-------------|-------| +| Display / Hero | UberMove | 52px (3.25rem) | 700 | 1.23 (tight) | Maximum impact, billboard presence | +| Section Heading | UberMove | 36px (2.25rem) | 700 | 1.22 (tight) | Major section anchors | +| Card Title | UberMove | 32px (2rem) | 700 | 1.25 (tight) | Card and feature headings | +| Sub-heading | UberMove | 24px (1.5rem) | 700 | 1.33 | Secondary section headers | +| Small Heading | UberMove | 20px (1.25rem) | 700 | 1.40 | Compact headings, list titles | +| Nav / UI Large | UberMoveText | 18px (1.13rem) | 500 | 1.33 | Navigation links, prominent UI text | +| Body / Button | UberMoveText | 16px (1rem) | 400-500 | 1.25-1.50 | Standard body text, button labels | +| Caption | UberMoveText | 14px (0.88rem) | 400-500 | 1.14-1.43 | Metadata, descriptions, small links | +| Micro | UberMoveText | 12px (0.75rem) | 400 | 1.67 (relaxed) | Fine print, legal text | + +### Principles +- **Bold headlines, medium body**: UberMove headings are exclusively weight 700 (bold) -- every headline hits with billboard force. UberMoveText body and UI text uses 400-500, creating a clear visual hierarchy through weight contrast. +- **Tight heading line-heights**: All headlines use line-heights between 1.22-1.40 -- compact and punchy, designed for scanning rather than reading. +- **Functional typography**: There is no decorative type treatment anywhere. No letter-spacing, no text-transform, no ornamental sizing. Every text element serves a direct communication purpose. +- **Two fonts, strict roles**: UberMove is exclusively for headings. UberMoveText is exclusively for body, buttons, links, and UI. The boundary is never crossed. + +## 4. Component Stylings + +### Buttons + +**Primary Black (CTA)** +- Background: Uber Black (`#000000`) +- Text: Pure White (`#ffffff`) +- Padding: 10px 12px +- Radius: 999px (full pill) +- Outline: none +- Focus: inset ring `rgb(255,255,255) 0px 0px 0px 2px` +- The primary action button -- bold, high-contrast, unmissable + +**Secondary White** +- Background: Pure White (`#ffffff`) +- Text: Uber Black (`#000000`) +- Padding: 10px 12px +- Radius: 999px (full pill) +- Hover: background shifts to Hover Gray (`#e2e2e2`) +- Focus: background shifts to Hover Gray, inset ring appears +- Used on dark surfaces or as a secondary action alongside Primary Black + +**Chip / Filter** +- Background: Chip Gray (`#efefef`) +- Text: Uber Black (`#000000`) +- Padding: 14px 16px +- Radius: 999px (full pill) +- Active: inset shadow `rgba(0,0,0,0.08)` +- Navigation chips, category selectors, filter toggles + +**Floating Action** +- Background: Pure White (`#ffffff`) +- Text: Uber Black (`#000000`) +- Padding: 14px +- Radius: 999px (full pill) +- Shadow: `rgba(0,0,0,0.16) 0px 2px 8px 0px` +- Transform: `translateY(2px)` slight offset +- Hover: background shifts to `#f3f3f3` +- Map controls, scroll-to-top, floating CTAs + +### Cards & Containers +- Background: Pure White (`#ffffff`) on white pages; no distinct card background differentiation +- Border: none by default -- cards are defined by shadow, not stroke +- Radius: 8px for standard content cards; 12px for featured/promoted cards +- Shadow: `rgba(0,0,0,0.12) 0px 4px 16px 0px` for standard lift +- Cards are content-dense with minimal internal padding +- Image-led cards use full-bleed imagery with text overlay or below + +### Inputs & Forms +- Text: Uber Black (`#000000`) +- Background: Pure White (`#ffffff`) +- Border: 1px solid Black (`#000000`) -- the only place visible borders appear prominently +- Radius: 8px +- Padding: standard comfortable spacing +- Focus: no extracted custom focus state -- relies on standard browser focus ring + +### Navigation +- Sticky top navigation with white background +- Logo: Uber wordmark/icon at 24x24px in black +- Links: UberMoveText at 14-18px, weight 500, in Uber Black +- Pill-shaped nav chips with Chip Gray (`#efefef`) background for category navigation ("Ride", "Drive", "Business", "Uber Eats") +- Menu toggle: circular button with 50% border-radius +- Mobile: hamburger menu pattern + +### Image Treatment +- Warm, hand-illustrated scenes (not photographs for feature sections) +- Illustration style: slightly stylized people, warm color palette within illustrations, contemporary vibe +- Hero sections use bold photography or illustration as full-width backgrounds +- QR codes for app download CTAs +- All imagery uses standard 8px or 12px border-radius when contained in cards + +### Distinctive Components + +**Category Pill Navigation** +- Horizontal row of pill-shaped buttons for top-level navigation ("Ride", "Drive", "Business", "Uber Eats", "About") +- Each pill: Chip Gray background, black text, 999px radius +- Active state indicated by black background with white text (inversion) + +**Hero with Dual Action** +- Split hero: text/CTA on left, map/illustration on right +- Two input fields side by side for pickup/destination +- "See prices" CTA button in black pill + +**Plan-Ahead Cards** +- Cards promoting features like "Uber Reserve" and trip planning +- Illustration-heavy with warm, human-centric imagery +- Black CTA buttons with white text at bottom + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 4px, 6px, 8px, 10px, 12px, 14px, 16px, 18px, 20px, 24px, 32px +- Button padding: 10px 12px (compact) or 14px 16px (comfortable) +- Card internal padding: approximately 24-32px +- Section vertical spacing: generous but efficient -- approximately 64-96px between major sections + +### Grid & Container +- Max container width: approximately 1136px, centered +- Hero: split layout with text left, visual right +- Feature sections: 2-column card grids or full-width single-column +- Footer: multi-column link grid on black background +- Full-width sections extending to viewport edges + +### Whitespace Philosophy +- **Efficient, not airy**: Uber's whitespace is functional -- enough to separate, never enough to feel empty. This is transit-system spacing: compact, clear, purpose-driven. +- **Content-dense cards**: Cards pack information tightly with minimal internal spacing, relying on shadow and radius to define boundaries. +- **Section breathing room**: Major sections get generous vertical spacing, but within sections, elements are closely grouped. + +### Border Radius Scale +- Sharp (0px): No square corners used in interactive elements +- Standard (8px): Content cards, input fields, listboxes +- Comfortable (12px): Featured cards, larger containers, link cards +- Full Pill (999px): All buttons, chips, navigation items, pills +- Circle (50%): Avatar images, icon containers, circular controls + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, solid background | Page background, inline content, text sections | +| Subtle (Level 1) | `rgba(0,0,0,0.12) 0px 4px 16px` | Standard content cards, feature blocks | +| Medium (Level 2) | `rgba(0,0,0,0.16) 0px 4px 16px` | Elevated cards, overlay elements | +| Floating (Level 3) | `rgba(0,0,0,0.16) 0px 2px 8px` + translateY(2px) | Floating action buttons, map controls | +| Pressed (Level 4) | `rgba(0,0,0,0.08) inset` (999px spread) | Active/pressed button states | +| Focus Ring | `rgb(255,255,255) 0px 0px 0px 2px inset` | Keyboard focus indicators | + +**Shadow Philosophy**: Uber uses shadow purely as a structural tool, never decoratively. Shadows are always black at very low opacity (0.08-0.16), creating the bare minimum lift needed to separate content layers. The blur radii are moderate (8-16px) -- enough to feel natural but never dramatic. There are no colored shadows, no layered shadow stacks, and no ambient glow effects. Depth is communicated more through the black/white section contrast than through shadow elevation. + +## 7. Do's and Don'ts + +### Do +- Use true black (`#000000`) and pure white (`#ffffff`) as the primary palette -- the stark contrast IS Uber +- Use 999px border-radius for all buttons, chips, and pill-shaped navigation elements +- Keep all headings in UberMove Bold (700) for billboard-level impact +- Use whisper-soft shadows (0.12-0.16 opacity) for card elevation -- barely visible +- Maintain the compact, information-dense layout style -- Uber prioritizes efficiency over airiness +- Use warm, human-centric illustrations to soften the monochrome interface +- Apply 8px radius for content cards and 12px for featured containers +- Use UberMoveText at weight 500 for navigation and prominent UI text +- Pair black primary buttons with white secondary buttons for dual-action layouts + +### Don't +- Don't introduce color into the UI chrome -- Uber's interface is strictly black, white, and gray +- Don't use rounded corners less than 999px on buttons -- the full-pill shape is a core identity element +- Don't apply heavy shadows or drop shadows with high opacity -- depth is whisper-subtle +- Don't use serif fonts anywhere -- Uber's typography is exclusively geometric sans-serif +- Don't create airy, spacious layouts with excessive whitespace -- Uber's density is intentional +- Don't use gradients or color overlays -- every surface is a flat, solid color +- Don't mix UberMove into body text or UberMoveText into headlines -- the hierarchy is strict +- Don't use decorative borders -- borders are functional (inputs, dividers) or absent entirely +- Don't soften the black/white contrast with off-whites or near-blacks -- the duality is deliberate + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile Small | 320px | Minimum layout, single column, stacked inputs, compact typography | +| Mobile | 600px | Standard mobile, stacked layout, hamburger nav | +| Tablet Small | 768px | Two-column grids begin, expanded card layouts | +| Tablet | 1119px | Full tablet layout, side-by-side hero content | +| Desktop Small | 1120px | Desktop grid activates, horizontal nav pills | +| Desktop | 1136px | Full desktop layout, maximum container width, split hero | + +### Touch Targets +- All pill buttons: minimum 44px height (10-14px vertical padding + line-height) +- Navigation chips: generous 14px 16px padding for comfortable thumb tapping +- Circular controls (menu, close): 50% radius ensures large, easy-to-hit targets +- Card surfaces serve as full-area touch targets on mobile + +### Collapsing Strategy +- **Navigation**: Horizontal pill nav collapses to hamburger menu with circular toggle +- **Hero**: Split layout (text + map/visual) stacks to single column -- text above, visual below +- **Input fields**: Side-by-side pickup/destination inputs stack vertically +- **Feature cards**: 2-column grid collapses to full-width stacked cards +- **Headings**: 52px display scales down through 36px, 32px, 24px, 20px +- **Footer**: Multi-column link grid collapses to accordion or stacked single column +- **Category pills**: Horizontal scroll with overflow on smaller screens + +### Image Behavior +- Illustrations scale proportionally within their containers +- Hero imagery maintains aspect ratio, may crop on smaller screens +- QR code sections hide on mobile (app download shifts to direct store links) +- Card imagery maintains 8-12px border radius at all sizes + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary Button: "Uber Black (#000000)" +- Page Background: "Pure White (#ffffff)" +- Button Text (on black): "Pure White (#ffffff)" +- Button Text (on white): "Uber Black (#000000)" +- Secondary Text: "Body Gray (#4b4b4b)" +- Tertiary Text: "Muted Gray (#afafaf)" +- Chip Background: "Chip Gray (#efefef)" +- Hover State: "Hover Gray (#e2e2e2)" +- Card Shadow: "rgba(0,0,0,0.12) 0px 4px 16px" +- Footer Background: "Uber Black (#000000)" + +### Example Component Prompts +- "Create a hero section on Pure White (#ffffff) with a headline at 52px UberMove Bold (700), line-height 1.23. Use Uber Black (#000000) text. Add a subtitle in Body Gray (#4b4b4b) at 16px UberMoveText weight 400 with 1.50 line-height. Place an Uber Black (#000000) pill CTA button with Pure White text, 999px radius, padding 10px 12px." +- "Design a category navigation bar with horizontal pill buttons. Each pill: Chip Gray (#efefef) background, Uber Black (#000000) text, 14px 16px padding, 999px border-radius. Active pill inverts to Uber Black background with Pure White text. Use UberMoveText at 14px weight 500." +- "Build a feature card on Pure White (#ffffff) with 8px border-radius and shadow rgba(0,0,0,0.12) 0px 4px 16px. Title in UberMove at 24px weight 700, description in Body Gray (#4b4b4b) at 16px UberMoveText. Add a black pill CTA button at the bottom." +- "Create a dark footer on Uber Black (#000000) with Pure White (#ffffff) heading text in UberMove at 20px weight 700. Footer links in Muted Gray (#afafaf) at 14px UberMoveText. Links hover to Pure White. Multi-column grid layout." +- "Design a floating action button with Pure White (#ffffff) background, 999px radius, 14px padding, and shadow rgba(0,0,0,0.16) 0px 2px 8px. Hover shifts background to #f3f3f3. Use for scroll-to-top or map controls." + +### Iteration Guide +1. Focus on ONE component at a time +2. Reference the strict black/white palette -- "use Uber Black (#000000)" not "make it dark" +3. Always specify 999px radius for buttons and pills -- this is non-negotiable for the Uber identity +4. Describe the font family explicitly -- "UberMove Bold for the heading, UberMoveText Medium for the label" +5. For shadows, use "whisper shadow (rgba(0,0,0,0.12) 0px 4px 16px)" -- never heavy drop shadows +6. Keep layouts compact and information-dense -- Uber is efficient, not airy +7. Illustrations should be warm and human -- describe "stylized people in warm tones" not abstract shapes +8. Pair black CTAs with white secondaries for balanced dual-action layouts diff --git a/design-md/uber/README.md b/design-md/uber/README.md new file mode 100644 index 0000000..5ce2cc2 --- /dev/null +++ b/design-md/uber/README.md @@ -0,0 +1,25 @@ +# Uber — Design System + +> Design.md extracted from the public [uber](https://uber.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 Uber 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 +![Uber Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/uber/preview-dark-screenshot.png) + +### Light Mode +![Uber Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/uber/preview-screenshot.png) diff --git a/design-md/uber/preview-dark.html b/design-md/uber/preview-dark.html new file mode 100644 index 0000000..e648599 --- /dev/null +++ b/design-md/uber/preview-dark.html @@ -0,0 +1,1164 @@ + + + + + +Design System Preview: Uber (Dark) + + + + + + + + + +
Dark Mode
+ + +
+

Design System
Inspired by Uber

+

A bold, black-and-white design language built for clarity, efficiency, and confident minimalism. Every element serves a purpose.

+
+ + +
+
+ +
+ + +
+ +

Stark Duality

+
+
+
+
+
Uber Black
+
#000000
+
Primary CTA, headings, nav, footer
+
+
+
+
+
+
Pure White
+
#ffffff
+
Page background, card surface, inverse text
+
+
+
+
+
+
Chip Gray
+
#efefef
+
Chip buttons, filter toggles, borders
+
+
+
+
+
+
Hover Gray
+
#e2e2e2
+
Button hover state
+
+
+
+
+
+
Hover Light
+
#f3f3f3
+
Subtle hover for floating buttons
+
+
+
+
+
+
Body Gray
+
#4b4b4b
+
Secondary text, descriptions
+
+
+
+
+
+
Muted Gray
+
#afafaf
+
Tertiary text, footer links, placeholders
+
+
+
+
+
+
Default Link Blue
+
#0000ee
+
Underlined text links in body content
+
+
+
+
+ +
+ + +
+ +

UberMove Type System

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SampleRoleSpecs
Display HeroDisplay / Hero52px / Bold 700 / 1.23
Section HeadingSection Heading36px / Bold 700 / 1.22
Card TitleCard Title32px / Bold 700 / 1.25
Sub-headingSub-heading24px / Bold 700 / 1.33
Small HeadingSmall Heading20px / Bold 700 / 1.40
Navigation / UI LargeNav / UI Large18px / Medium 500 / 1.33
Body text and button labelsBody / Button16px / Regular 400 / 1.50
Caption and metadataCaption14px / Medium 500 / 1.43
Micro text and fine printMicro12px / Regular 400 / 1.67
+
+ +
+ + +
+ +

Pill-Shaped Actions

+ +
+
+
Primary Black
+ +
+
+
Secondary Outline
+ +
+
+
Chip / Filter
+ +
+
+
Chip Active
+ +
+
+
Floating
+ +
+
+ +
+
On Dark Surface
+ + + +
+ +
+
Chip Navigation Row
+
+ + + + + +
+
+
+ +
+ + +
+ +

Content Cards

+
+
+
+ Illustration +
+
+
Plan for later
+
Reserve your ride in advance so you can relax on the day of your trip.
+ +
+
+
+
+ Illustration +
+
+
Drive when you want
+
Make what you need in the time you have. Set your own hours and earn on your schedule.
+ +
+
+
+
+ Illustration +
+
+
Business accounts
+
Simplify travel and meal management for your company with centralized billing.
+ +
+
+
+
+ +
+ + +
+ +

Input Components

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ +
+
+
+ +
+ + +
+ +

8px Grid System

+
+
+ 4px +
+ 0.25rem +
+
+ 8px +
+ 0.50rem +
+
+ 12px +
+ 0.75rem +
+
+ 16px +
+ 1.00rem +
+
+ 20px +
+ 1.25rem +
+
+ 24px +
+ 1.50rem +
+
+ 32px +
+ 2.00rem +
+
+ 48px +
+ 3.00rem +
+
+ 64px +
+ 4.00rem +
+
+
+ +
+ + +
+ +

Corner Shapes

+
+
+
+ None + 0px +
+
+
+ Standard + 8px +
+
+
+ Comfortable + 12px +
+
+
+ Full Pill + 999px +
+
+
+ Circle + 50% +
+
+
+ +
+ + +
+ +

Shadow Hierarchy

+
+
+ Flat + No shadow, border only +
+
+ Subtle + rgba(0,0,0,0.12) 0 4px 16px +
+
+ Medium + rgba(0,0,0,0.16) 0 4px 16px +
+
+ Floating + rgba(0,0,0,0.16) 0 2px 8px + lift +
+
+ Pressed + rgba(0,0,0,0.08) inset +
+
+
+ + + + + + diff --git a/design-md/uber/preview.html b/design-md/uber/preview.html new file mode 100644 index 0000000..907d1e0 --- /dev/null +++ b/design-md/uber/preview.html @@ -0,0 +1,1163 @@ + + + + + +Design System Preview: Uber (Light) + + + + + + + + + + + +
+

Design System
Inspired by Uber

+

A bold, black-and-white design language built for clarity, efficiency, and confident minimalism. Every element serves a purpose.

+
+ + +
+
+ +
+ + +
+ +

Stark Duality

+
+
+
+
+
Uber Black
+
#000000
+
Primary CTA, headings, nav, footer
+
+
+
+
+
+
Pure White
+
#ffffff
+
Page background, card surface, inverse text
+
+
+
+
+
+
Chip Gray
+
#efefef
+
Chip buttons, filter toggles, borders
+
+
+
+
+
+
Hover Gray
+
#e2e2e2
+
Button hover state
+
+
+
+
+
+
Hover Light
+
#f3f3f3
+
Subtle hover for floating buttons
+
+
+
+
+
+
Body Gray
+
#4b4b4b
+
Secondary text, descriptions
+
+
+
+
+
+
Muted Gray
+
#afafaf
+
Tertiary text, footer links, placeholders
+
+
+
+
+
+
Default Link Blue
+
#0000ee
+
Underlined text links in body content
+
+
+
+
+ +
+ + +
+ +

UberMove Type System

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SampleRoleSpecs
Display HeroDisplay / Hero52px / Bold 700 / 1.23
Section HeadingSection Heading36px / Bold 700 / 1.22
Card TitleCard Title32px / Bold 700 / 1.25
Sub-headingSub-heading24px / Bold 700 / 1.33
Small HeadingSmall Heading20px / Bold 700 / 1.40
Navigation / UI LargeNav / UI Large18px / Medium 500 / 1.33
Body text and button labelsBody / Button16px / Regular 400 / 1.50
Caption and metadataCaption14px / Medium 500 / 1.43
Micro text and fine printMicro12px / Regular 400 / 1.67
+
+ +
+ + +
+ +

Pill-Shaped Actions

+ +
+
+
Primary Black
+ +
+
+
Secondary Outline
+ +
+
+
Chip / Filter
+ +
+
+
Chip Active
+ +
+
+
Floating
+ +
+
+ +
+
On Dark Surface
+ + + +
+ +
+
Chip Navigation Row
+
+ + + + + +
+
+
+ +
+ + +
+ +

Content Cards

+
+
+
+ Illustration +
+
+
Plan for later
+
Reserve your ride in advance so you can relax on the day of your trip.
+ +
+
+
+
+ Illustration +
+
+
Drive when you want
+
Make what you need in the time you have. Set your own hours and earn on your schedule.
+ +
+
+
+
+ Illustration +
+
+
Business accounts
+
Simplify travel and meal management for your company with centralized billing.
+ +
+
+
+
+ +
+ + +
+ +

Input Components

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ +
+
+
+ +
+ + +
+ +

8px Grid System

+
+
+ 4px +
+ 0.25rem +
+
+ 8px +
+ 0.50rem +
+
+ 12px +
+ 0.75rem +
+
+ 16px +
+ 1.00rem +
+
+ 20px +
+ 1.25rem +
+
+ 24px +
+ 1.50rem +
+
+ 32px +
+ 2.00rem +
+
+ 48px +
+ 3.00rem +
+
+ 64px +
+ 4.00rem +
+
+
+ +
+ + +
+ +

Corner Shapes

+
+
+
+ None + 0px +
+
+
+ Standard + 8px +
+
+
+ Comfortable + 12px +
+
+
+ Full Pill + 999px +
+
+
+ Circle + 50% +
+
+
+ +
+ + +
+ +

Shadow Hierarchy

+
+
+ Flat + No shadow, border only +
+
+ Subtle + rgba(0,0,0,0.12) 0 4px 16px +
+
+ Medium + rgba(0,0,0,0.16) 0 4px 16px +
+
+ Floating + rgba(0,0,0,0.16) 0 2px 8px + lift +
+
+ Pressed + rgba(0,0,0,0.08) inset +
+
+
+ + + + + + diff --git a/design-md/vercel/DESIGN.md b/design-md/vercel/DESIGN.md new file mode 100644 index 0000000..b2e2399 --- /dev/null +++ b/design-md/vercel/DESIGN.md @@ -0,0 +1,310 @@ +# Design System: Vercel + +## 1. Visual Theme & Atmosphere + +Vercel's website is the visual thesis of developer infrastructure made invisible — a design system so restrained it borders on philosophical. The page is overwhelmingly white (`#ffffff`) with near-black (`#171717`) text, creating a gallery-like emptiness where every element earns its pixel. This isn't minimalism as decoration; it's minimalism as engineering principle. The Geist design system treats the interface like a compiler treats code — every unnecessary token is stripped away until only structure remains. + +The custom Geist font family is the crown jewel. Geist Sans uses aggressive negative letter-spacing (-2.4px to -2.88px at display sizes), creating headlines that feel compressed, urgent, and engineered — like code that's been minified for production. At body sizes, the tracking relaxes but the geometric precision persists. Geist Mono completes the system as the monospace companion for code, terminal output, and technical labels. Both fonts enable OpenType `"liga"` (ligatures) globally, adding a layer of typographic sophistication that rewards close reading. + +What distinguishes Vercel from other monochrome design systems is its shadow-as-border philosophy. Instead of traditional CSS borders, Vercel uses `box-shadow: 0px 0px 0px 1px rgba(0,0,0,0.08)` — a zero-offset, zero-blur, 1px-spread shadow that creates a border-like line without the box model implications. This technique allows borders to exist in the shadow layer, enabling smoother transitions, rounded corners without clipping, and a subtler visual weight than traditional borders. The entire depth system is built on layered, multi-value shadow stacks where each layer serves a specific purpose: one for the border, one for soft elevation, one for ambient depth. + +**Key Characteristics:** +- Geist Sans with extreme negative letter-spacing (-2.4px to -2.88px at display) — text as compressed infrastructure +- Geist Mono for code and technical labels with OpenType `"liga"` globally +- Shadow-as-border technique: `box-shadow 0px 0px 0px 1px` replaces traditional borders throughout +- Multi-layer shadow stacks for nuanced depth (border + elevation + ambient in single declarations) +- Near-pure white canvas with `#171717` text — not quite black, creating micro-contrast softness +- Workflow-specific accent colors: Ship Red (`#ff5b4f`), Preview Pink (`#de1d8d`), Develop Blue (`#0a72ef`) +- Focus ring system using `hsla(212, 100%, 48%, 1)` — a saturated blue for accessibility +- Pill badges (9999px) with tinted backgrounds for status indicators + +## 2. Color Palette & Roles + +### Primary +- **Vercel Black** (`#171717`): Primary text, headings, dark surface backgrounds. Not pure black — the slight warmth prevents harshness. +- **Pure White** (`#ffffff`): Page background, card surfaces, button text on dark. +- **True Black** (`#000000`): Secondary use, `--geist-console-text-color-default`, used in specific console/code contexts. + +### Workflow Accent Colors +- **Ship Red** (`#ff5b4f`): `--ship-text`, the "ship to production" workflow step — warm, urgent coral-red. +- **Preview Pink** (`#de1d8d`): `--preview-text`, the preview deployment workflow — vivid magenta-pink. +- **Develop Blue** (`#0a72ef`): `--develop-text`, the development workflow — bright, focused blue. + +### Console / Code Colors +- **Console Blue** (`#0070f3`): `--geist-console-text-color-blue`, syntax highlighting blue. +- **Console Purple** (`#7928ca`): `--geist-console-text-color-purple`, syntax highlighting purple. +- **Console Pink** (`#eb367f`): `--geist-console-text-color-pink`, syntax highlighting pink. + +### Interactive +- **Link Blue** (`#0072f5`): Primary link color with underline decoration. +- **Focus Blue** (`hsla(212, 100%, 48%, 1)`): `--ds-focus-color`, focus ring on interactive elements. +- **Ring Blue** (`rgba(147, 197, 253, 0.5)`): `--tw-ring-color`, Tailwind ring utility. + +### Neutral Scale +- **Gray 900** (`#171717`): Primary text, headings, nav text. +- **Gray 600** (`#4d4d4d`): Secondary text, description copy. +- **Gray 500** (`#666666`): Tertiary text, muted links. +- **Gray 400** (`#808080`): Placeholder text, disabled states. +- **Gray 100** (`#ebebeb`): Borders, card outlines, dividers. +- **Gray 50** (`#fafafa`): Subtle surface tint, inner shadow highlight. + +### Surface & Overlay +- **Overlay Backdrop** (`hsla(0, 0%, 98%, 1)`): `--ds-overlay-backdrop-color`, modal/dialog backdrop. +- **Selection Text** (`hsla(0, 0%, 95%, 1)`): `--geist-selection-text-color`, text selection highlight. +- **Badge Blue Bg** (`#ebf5ff`): Pill badge background, tinted blue surface. +- **Badge Blue Text** (`#0068d6`): Pill badge text, darker blue for readability. + +### Shadows & Depth +- **Border Shadow** (`rgba(0, 0, 0, 0.08) 0px 0px 0px 1px`): The signature — replaces traditional borders. +- **Subtle Elevation** (`rgba(0, 0, 0, 0.04) 0px 2px 2px`): Minimal lift for cards. +- **Card Stack** (`rgba(0,0,0,0.08) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 2px, rgba(0,0,0,0.04) 0px 8px 8px -8px, #fafafa 0px 0px 0px 1px`): Full multi-layer card shadow. +- **Ring Border** (`rgb(235, 235, 235) 0px 0px 0px 1px`): Light gray ring-border for tabs and images. + +## 3. Typography Rules + +### Font Family +- **Primary**: `Geist`, with fallbacks: `Arial, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol` +- **Monospace**: `Geist Mono`, with fallbacks: `ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New` +- **OpenType Features**: `"liga"` enabled globally on all Geist text; `"tnum"` for tabular numbers on specific captions. + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Hero | Geist | 48px (3.00rem) | 600 | 1.00–1.17 (tight) | -2.4px to -2.88px | Maximum compression, billboard impact | +| Section Heading | Geist | 40px (2.50rem) | 600 | 1.20 (tight) | -2.4px | Feature section titles | +| Sub-heading Large | Geist | 32px (2.00rem) | 600 | 1.25 (tight) | -1.28px | Card headings, sub-sections | +| Sub-heading | Geist | 32px (2.00rem) | 400 | 1.50 | -1.28px | Lighter sub-headings | +| Card Title | Geist | 24px (1.50rem) | 600 | 1.33 | -0.96px | Feature cards | +| Card Title Light | Geist | 24px (1.50rem) | 500 | 1.33 | -0.96px | Secondary card headings | +| Body Large | Geist | 20px (1.25rem) | 400 | 1.80 (relaxed) | normal | Introductions, feature descriptions | +| Body | Geist | 18px (1.13rem) | 400 | 1.56 | normal | Standard reading text | +| Body Small | Geist | 16px (1.00rem) | 400 | 1.50 | normal | Standard UI text | +| Body Medium | Geist | 16px (1.00rem) | 500 | 1.50 | normal | Navigation, emphasized text | +| Body Semibold | Geist | 16px (1.00rem) | 600 | 1.50 | -0.32px | Strong labels, active states | +| Button / Link | Geist | 14px (0.88rem) | 500 | 1.43 | normal | Buttons, links, captions | +| Button Small | Geist | 14px (0.88rem) | 400 | 1.00 (tight) | normal | Compact buttons | +| Caption | Geist | 12px (0.75rem) | 400–500 | 1.33 | normal | Metadata, tags | +| Mono Body | Geist Mono | 16px (1.00rem) | 400 | 1.50 | normal | Code blocks | +| Mono Caption | Geist Mono | 13px (0.81rem) | 500 | 1.54 | normal | Code labels | +| Mono Small | Geist Mono | 12px (0.75rem) | 500 | 1.00 (tight) | normal | `text-transform: uppercase`, technical labels | +| Micro Badge | Geist | 7px (0.44rem) | 700 | 1.00 (tight) | normal | `text-transform: uppercase`, tiny badges | + +### Principles +- **Compression as identity**: Geist Sans at display sizes uses -2.4px to -2.88px letter-spacing — the most aggressive negative tracking of any major design system. This creates text that feels _minified_, like code optimized for production. The tracking progressively relaxes as size decreases: -1.28px at 32px, -0.96px at 24px, -0.32px at 16px, and normal at 14px. +- **Ligatures everywhere**: Every Geist text element enables OpenType `"liga"`. Ligatures aren't decorative — they're structural, creating tighter, more efficient glyph combinations. +- **Three weights, strict roles**: 400 (body/reading), 500 (UI/interactive), 600 (headings/emphasis). No bold (700) except for tiny micro-badges. This narrow weight range creates hierarchy through size and tracking, not weight. +- **Mono for identity**: Geist Mono in uppercase with `"tnum"` or `"liga"` serves as the "developer console" voice — compact technical labels that connect the marketing site to the product. + +## 4. Component Stylings + +### Buttons + +**Primary White (Shadow-bordered)** +- Background: `#ffffff` +- Text: `#171717` +- Padding: 0px 6px (minimal — content-driven width) +- Radius: 6px (subtly rounded) +- Shadow: `rgb(235, 235, 235) 0px 0px 0px 1px` (ring-border) +- Hover: background shifts to `var(--ds-gray-1000)` (dark) +- Focus: `2px solid var(--ds-focus-color)` outline + `var(--ds-focus-ring)` shadow +- Use: Standard secondary button + +**Primary Dark (Inferred from Geist system)** +- Background: `#171717` +- Text: `#ffffff` +- Padding: 8px 16px +- Radius: 6px +- Use: Primary CTA ("Start Deploying", "Get Started") + +**Pill Button / Badge** +- Background: `#ebf5ff` (tinted blue) +- Text: `#0068d6` +- Padding: 0px 10px +- Radius: 9999px (full pill) +- Font: 12px weight 500 +- Use: Status badges, tags, feature labels + +**Large Pill (Navigation)** +- Background: transparent or `#171717` +- Radius: 64px–100px +- Use: Tab navigation, section selectors + +### Cards & Containers +- Background: `#ffffff` +- Border: via shadow — `rgba(0, 0, 0, 0.08) 0px 0px 0px 1px` +- Radius: 8px (standard), 12px (featured/image cards) +- Shadow stack: `rgba(0,0,0,0.08) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 2px, #fafafa 0px 0px 0px 1px` +- Image cards: `1px solid #ebebeb` with 12px top radius +- Hover: subtle shadow intensification + +### Inputs & Forms +- Radio: standard styling with focus `var(--ds-gray-200)` background +- Focus shadow: `1px 0 0 0 var(--ds-gray-alpha-600)` +- Focus outline: `2px solid var(--ds-focus-color)` — consistent blue focus ring +- Border: via shadow technique, not traditional border + +### Navigation +- Clean horizontal nav on white, sticky +- Vercel logotype left-aligned, 262x52px +- Links: Geist 14px weight 500, `#171717` text +- Active: weight 600 or underline +- CTA: dark pill buttons ("Start Deploying", "Contact Sales") +- Mobile: hamburger menu collapse +- Product dropdowns with multi-level menus + +### Image Treatment +- Product screenshots with `1px solid #ebebeb` border +- Top-rounded images: `12px 12px 0px 0px` radius +- Dashboard/code preview screenshots dominate feature sections +- Soft gradient backgrounds behind hero images (pastel multi-color) + +### Distinctive Components + +**Workflow Pipeline** +- Three-step horizontal pipeline: Develop → Preview → Ship +- Each step has its own accent color: Blue → Pink → Red +- Connected with lines/arrows +- The visual metaphor for Vercel's core value proposition + +**Trust Bar / Logo Grid** +- Company logos (Perplexity, ChatGPT, Cursor, etc.) in grayscale +- Horizontal scroll or grid layout +- Subtle `#ebebeb` border separation + +**Metric Cards** +- Large number display (e.g., "10x faster") +- Geist 48px weight 600 for the metric +- Description below in gray body text +- Shadow-bordered card container + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 2px, 3px, 4px, 5px, 6px, 8px, 10px, 12px, 14px, 16px, 32px, 36px, 40px +- Notable gap: jumps from 16px to 32px — no 20px or 24px in primary scale + +### Grid & Container +- Max content width: approximately 1200px +- Hero: centered single-column with generous top padding +- Feature sections: 2–3 column grids for cards +- Full-width dividers using `border-bottom: 1px solid #171717` +- Code/dashboard screenshots as full-width or contained with border + +### Whitespace Philosophy +- **Gallery emptiness**: Massive vertical padding between sections (80px–120px+). The white space IS the design — it communicates that Vercel has nothing to prove and nothing to hide. +- **Compressed text, expanded space**: The aggressive negative letter-spacing on headlines is counterbalanced by generous surrounding whitespace. The text is dense; the space around it is vast. +- **Section rhythm**: White sections alternate with white sections — there's no color variation between sections. Separation comes from borders (shadow-borders) and spacing alone. + +### Border Radius Scale +- Micro (2px): Inline code snippets, small spans +- Subtle (4px): Small containers +- Standard (6px): Buttons, links, functional elements +- Comfortable (8px): Cards, list items +- Image (12px): Featured cards, image containers (top-rounded) +- Large (64px): Tab navigation pills +- XL (100px): Large navigation links +- Full Pill (9999px): Badges, status pills, tags +- Circle (50%): Menu toggle, avatar containers + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | Page background, text blocks | +| Ring (Level 1) | `rgba(0,0,0,0.08) 0px 0px 0px 1px` | Shadow-as-border for most elements | +| Light Ring (Level 1b) | `rgb(235,235,235) 0px 0px 0px 1px` | Lighter ring for tabs, images | +| Subtle Card (Level 2) | Ring + `rgba(0,0,0,0.04) 0px 2px 2px` | Standard cards with minimal lift | +| Full Card (Level 3) | Ring + Subtle + `rgba(0,0,0,0.04) 0px 8px 8px -8px` + inner `#fafafa` ring | Featured cards, highlighted panels | +| Focus (Accessibility) | `2px solid hsla(212, 100%, 48%, 1)` outline | Keyboard focus on all interactive elements | + +**Shadow Philosophy**: Vercel has arguably the most sophisticated shadow system in modern web design. Rather than using shadows for elevation in the traditional Material Design sense, Vercel uses multi-value shadow stacks where each layer has a distinct architectural purpose: one creates the "border" (0px spread, 1px), another adds ambient softness (2px blur), another handles depth at distance (8px blur with negative spread), and an inner ring (`#fafafa`) creates the subtle highlight that makes the card "glow" from within. This layered approach means cards feel built, not floating. + +### Decorative Depth +- Hero gradient: soft, pastel multi-color gradient wash behind hero content (barely visible, atmospheric) +- Section borders: `1px solid #171717` (full dark line) between major sections +- No background color variation — depth comes entirely from shadow layering and border contrast + +## 7. Do's and Don'ts + +### Do +- Use Geist Sans with aggressive negative letter-spacing at display sizes (-2.4px to -2.88px at 48px) +- Use shadow-as-border (`0px 0px 0px 1px rgba(0,0,0,0.08)`) instead of traditional CSS borders +- Enable `"liga"` on all Geist text — ligatures are structural, not optional +- Use the three-weight system: 400 (body), 500 (UI), 600 (headings) +- Apply workflow accent colors (Red/Pink/Blue) only in their workflow context +- Use multi-layer shadow stacks for cards (border + elevation + ambient + inner highlight) +- Keep the color palette achromatic — grays from `#171717` to `#ffffff` are the system +- Use `#171717` instead of `#000000` for primary text — the micro-warmth matters + +### Don't +- Don't use positive letter-spacing on Geist Sans — it's always negative or zero +- Don't use weight 700 (bold) on body text — 600 is the maximum, used only for headings +- Don't use traditional CSS `border` on cards — use the shadow-border technique +- Don't introduce warm colors (oranges, yellows, greens) into the UI chrome +- Don't apply the workflow accent colors (Ship Red, Preview Pink, Develop Blue) decoratively +- Don't use heavy shadows (> 0.1 opacity) — the shadow system is whisper-level +- Don't increase body text letter-spacing — Geist is designed to run tight +- Don't use pill radius (9999px) on primary action buttons — pills are for badges/tags only +- Don't skip the inner `#fafafa` ring in card shadows — it's the glow that makes the system work + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile Small | <400px | Tight single column, minimal padding | +| Mobile | 400–600px | Standard mobile, stacked layout | +| Tablet Small | 600–768px | 2-column grids begin | +| Tablet | 768–1024px | Full card grids, expanded padding | +| Desktop Small | 1024–1200px | Standard desktop layout | +| Desktop | 1200–1400px | Full layout, maximum content width | +| Large Desktop | >1400px | Centered, generous margins | + +### Touch Targets +- Buttons use comfortable padding (8px–16px vertical) +- Navigation links at 14px with adequate spacing +- Pill badges have 10px horizontal padding for tap targets +- Mobile menu toggle uses 50% radius circular button + +### Collapsing Strategy +- Hero: display 48px → scales down, maintains negative tracking proportionally +- Navigation: horizontal links + CTAs → hamburger menu +- Feature cards: 3-column → 2-column → single column stacked +- Code screenshots: maintain aspect ratio, may horizontally scroll +- Trust bar logos: grid → horizontal scroll +- Footer: multi-column → stacked single column +- Section spacing: 80px+ → 48px on mobile + +### Image Behavior +- Dashboard screenshots maintain border treatment at all sizes +- Hero gradient softens/simplifies on mobile +- Product screenshots use responsive images with consistent border radius +- Full-width sections maintain edge-to-edge treatment + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA: Vercel Black (`#171717`) +- Background: Pure White (`#ffffff`) +- Heading text: Vercel Black (`#171717`) +- Body text: Gray 600 (`#4d4d4d`) +- Border (shadow): `rgba(0, 0, 0, 0.08) 0px 0px 0px 1px` +- Link: Link Blue (`#0072f5`) +- Focus ring: Focus Blue (`hsla(212, 100%, 48%, 1)`) + +### Example Component Prompts +- "Create a hero section on white background. Headline at 48px Geist weight 600, line-height 1.00, letter-spacing -2.4px, color #171717. Subtitle at 20px Geist weight 400, line-height 1.80, color #4d4d4d. Dark CTA button (#171717, 6px radius, 8px 16px padding) and ghost button (white, shadow-border rgba(0,0,0,0.08) 0px 0px 0px 1px, 6px radius)." +- "Design a card: white background, no CSS border. Use shadow stack: rgba(0,0,0,0.08) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 2px, #fafafa 0px 0px 0px 1px. Radius 8px. Title at 24px Geist weight 600, letter-spacing -0.96px. Body at 16px weight 400, #4d4d4d." +- "Build a pill badge: #ebf5ff background, #0068d6 text, 9999px radius, 0px 10px padding, 12px Geist weight 500." +- "Create navigation: white sticky header. Geist 14px weight 500 for links, #171717 text. Dark pill CTA 'Start Deploying' right-aligned. Shadow-border on bottom: rgba(0,0,0,0.08) 0px 0px 0px 1px." +- "Design a workflow section showing three steps: Develop (text color #0a72ef), Preview (#de1d8d), Ship (#ff5b4f). Each step: 14px Geist Mono uppercase label + 24px Geist weight 600 title + 16px weight 400 description in #4d4d4d." + +### Iteration Guide +1. Always use shadow-as-border instead of CSS border — `0px 0px 0px 1px rgba(0,0,0,0.08)` is the foundation +2. Letter-spacing scales with font size: -2.4px at 48px, -1.28px at 32px, -0.96px at 24px, normal at 14px +3. Three weights only: 400 (read), 500 (interact), 600 (announce) +4. Color is functional, never decorative — workflow colors (Red/Pink/Blue) mark pipeline stages only +5. The inner `#fafafa` ring in card shadows is what gives Vercel cards their subtle inner glow +6. Geist Mono uppercase for technical labels, Geist Sans for everything else diff --git a/design-md/vercel/README.md b/design-md/vercel/README.md new file mode 100644 index 0000000..ba305ca --- /dev/null +++ b/design-md/vercel/README.md @@ -0,0 +1,25 @@ +# Vercel — Design System + +> Design.md extracted from the public [vercel](https://vercel.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 Vercel 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 +![Vercel Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/vercel/preview-dark-screenshot.png) + +### Light Mode +![Vercel Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/vercel/preview-screenshot.png) diff --git a/design-md/vercel/preview-dark.html b/design-md/vercel/preview-dark.html new file mode 100644 index 0000000..ff5812e --- /dev/null +++ b/design-md/vercel/preview-dark.html @@ -0,0 +1,370 @@ + + + + + +Design System Preview: Vercel (Dark) + + + + + + + + +
Dark Mode
+ +
+

Design System
Inspired by Vercel

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Vercel Black
#171717
Primary text, headings
+
Pure White
#ffffff
Page background
+
True Black
#000000
Console text default
+
+ +
Workflow Accents
+
+
Develop Blue
#0a72ef
Development workflow
+
Preview Pink
#de1d8d
Preview deployments
+
Ship Red
#ff5b4f
Ship to production
+
+ +
Console Colors
+
+
Console Blue
#0070f3
Syntax blue
+
Console Purple
#7928ca
Syntax purple
+
Console Pink
#eb367f
Syntax pink
+
+ +
Neutral Scale
+
+
Gray 600
#4d4d4d
Secondary text
+
Gray 500
#666666
Tertiary text
+
Gray 400
#808080
Placeholders
+
Gray 100
#ebebeb
Borders, dividers
+
Gray 50
#fafafa
Subtle surface tint
+
+ +
Interactive
+
+
Link Blue
#0072f5
Links
+
Focus Blue
hsl(212,100%,48%)
Focus ring
+
Badge Bg
#ebf5ff
Pill badge surface
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero — 48px / 600 / 1.00 / -2.4px / Geist
+
Section Heading
Section Heading — 40px / 600 / 1.20 / -2.4px / Geist
+
Sub-heading Large
Sub-heading — 32px / 600 / 1.25 / -1.28px / Geist
+
Card Title
Card Title — 24px / 600 / 1.33 / -0.96px / Geist
+
Card Title Light
Card Title Light — 24px / 500 / 1.33 / -0.96px / Geist
+
Body Large — Build and deploy on the AI Cloud. Vercel provides tools for developers to ship fast.
Body Large — 20px / 400 / 1.80 / normal / Geist
+
Body Medium — Navigation and emphasized text
Body Medium — 16px / 500 / 1.50 / Geist
+
Body Semibold — Active states
Body Semibold — 16px / 600 / 1.50 / -0.32px / Geist
+
Button / Link
Button / Link — 14px / 500 / 1.43 / Geist
+
Caption — Metadata and small labels
Caption — 12px / 500 / 1.33 / Geist
+
const app = await deploy('next-app');
Mono Body — 16px / 400 / 1.50 / Geist Mono
+
DEPLOYMENT STATUS
Mono Label — 12px / 500 / uppercase / Geist Mono
+
NEW
Micro Badge — 7px / 700 / uppercase / Geist
+
+ +
+ +
+ +

Button Variants

+
+
Start Deploying
Primary Dark
+
Documentation
Ghost / Shadow
+
AI Optimized
Pill Badge
+
Develop
Workflow Pill
+
Preview
Workflow Pill
+
Ship
Workflow Pill
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Framework
+

Next.js Integration

+

Zero-config deployments for Next.js applications. Automatic optimizations, edge rendering, and instant rollbacks.

+
+
+
Elevated
+

Edge Functions

+

Run serverless functions at the edge with sub-millisecond cold starts. Card shown with full shadow stack.

+
+
+
AI
+

v0 by Vercel

+

Generate UI with AI. Describe what you want and v0 creates the code using shadcn/ui and Tailwind CSS.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default (shadow-border)
+
Focus (blue ring)
+
Error (red ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
12
+
16
+
32
+
40
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
2px
Code spans
+
4px
Small
+
6px
Buttons
+
8px
Cards
+
12px
Images
+
64px
Tabs
+
9999px
Badges
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Ring
Shadow-as-border
+
Level 1b: Light Ring
Lighter ring
+
Level 2: Card
Ring + subtle lift
+
Level 3: Full Card
Ring + lift + ambient + glow
+
Focus
Accessibility ring
+
+
+ + + + + diff --git a/design-md/vercel/preview.html b/design-md/vercel/preview.html new file mode 100644 index 0000000..0ad0ff0 --- /dev/null +++ b/design-md/vercel/preview.html @@ -0,0 +1,369 @@ + + + + + +Design System Preview: Vercel (Light) + + + + + + + + + +
+

Design System
Inspired by Vercel

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Vercel Black
#171717
Primary text, headings
+
Pure White
#ffffff
Page background
+
True Black
#000000
Console text default
+
+ +
Workflow Accents
+
+
Develop Blue
#0a72ef
Development workflow
+
Preview Pink
#de1d8d
Preview deployments
+
Ship Red
#ff5b4f
Ship to production
+
+ +
Console Colors
+
+
Console Blue
#0070f3
Syntax blue
+
Console Purple
#7928ca
Syntax purple
+
Console Pink
#eb367f
Syntax pink
+
+ +
Neutral Scale
+
+
Gray 600
#4d4d4d
Secondary text
+
Gray 500
#666666
Tertiary text
+
Gray 400
#808080
Placeholders
+
Gray 100
#ebebeb
Borders, dividers
+
Gray 50
#fafafa
Subtle surface tint
+
+ +
Interactive
+
+
Link Blue
#0072f5
Links
+
Focus Blue
hsl(212,100%,48%)
Focus ring
+
Badge Bg
#ebf5ff
Pill badge surface
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero — 48px / 600 / 1.00 / -2.4px / Geist
+
Section Heading
Section Heading — 40px / 600 / 1.20 / -2.4px / Geist
+
Sub-heading Large
Sub-heading — 32px / 600 / 1.25 / -1.28px / Geist
+
Card Title
Card Title — 24px / 600 / 1.33 / -0.96px / Geist
+
Card Title Light
Card Title Light — 24px / 500 / 1.33 / -0.96px / Geist
+
Body Large — Build and deploy on the AI Cloud. Vercel provides tools for developers to ship fast.
Body Large — 20px / 400 / 1.80 / normal / Geist
+
Body Medium — Navigation and emphasized text
Body Medium — 16px / 500 / 1.50 / Geist
+
Body Semibold — Active states
Body Semibold — 16px / 600 / 1.50 / -0.32px / Geist
+
Button / Link
Button / Link — 14px / 500 / 1.43 / Geist
+
Caption — Metadata and small labels
Caption — 12px / 500 / 1.33 / Geist
+
const app = await deploy('next-app');
Mono Body — 16px / 400 / 1.50 / Geist Mono
+
DEPLOYMENT STATUS
Mono Label — 12px / 500 / uppercase / Geist Mono
+
NEW
Micro Badge — 7px / 700 / uppercase / Geist
+
+ +
+ +
+ +

Button Variants

+
+
Start Deploying
Primary Dark
+
Documentation
Ghost / Shadow
+
AI Optimized
Pill Badge
+
Develop
Workflow Pill
+
Preview
Workflow Pill
+
Ship
Workflow Pill
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Framework
+

Next.js Integration

+

Zero-config deployments for Next.js applications. Automatic optimizations, edge rendering, and instant rollbacks.

+
+
+
Elevated
+

Edge Functions

+

Run serverless functions at the edge with sub-millisecond cold starts. Card shown with full shadow stack.

+
+
+
AI
+

v0 by Vercel

+

Generate UI with AI. Describe what you want and v0 creates the code using shadcn/ui and Tailwind CSS.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default (shadow-border)
+
Focus (blue ring)
+
Error (red ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
2
+
4
+
6
+
8
+
12
+
16
+
32
+
40
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
2px
Code spans
+
4px
Small
+
6px
Buttons
+
8px
Cards
+
12px
Images
+
64px
Tabs
+
9999px
Badges
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No shadow
+
Level 1: Ring
Shadow-as-border
+
Level 1b: Light Ring
Lighter ring
+
Level 2: Card
Ring + subtle lift
+
Level 3: Full Card
Ring + lift + ambient + glow
+
Focus
Accessibility ring
+
+
+ + + + + diff --git a/design-md/voltagent/DESIGN.md b/design-md/voltagent/DESIGN.md new file mode 100644 index 0000000..8195ea0 --- /dev/null +++ b/design-md/voltagent/DESIGN.md @@ -0,0 +1,323 @@ +# Design System: VoltAgent + +## 1. Visual Theme & Atmosphere + +VoltAgent's interface is a deep-space command terminal for the AI age — a developer-facing darkness built on near-pure-black surfaces (`#050507`) where the only interruption is the electric pulse of emerald green energy. The entire experience evokes the feeling of staring into a high-powered IDE at 2am: dark, focused, and alive with purpose. This is not a friendly SaaS landing page — it's an engineering platform that announces itself through code snippets, architectural diagrams, and raw technical confidence. + +The green accent (`#00d992`) is used with surgical precision — it glows from headlines, borders, and interactive elements like a circuit board carrying a signal. Against the carbon-black canvas, this green reads as "power on" — a deliberate visual metaphor for an AI agent engineering platform. The supporting palette is built entirely from warm-neutral grays (`#3d3a39`, `#8b949e`, `#b8b3b0`) that soften the darkness without introducing color noise, creating a cockpit-like warmth that pure blue-grays would lack. + +Typography leans on the system font stack for headings — achieving maximum rendering speed and native-feeling authority — while Inter carries the body and UI text with geometric precision. Code blocks use SFMono-Regular, the same font developers see in their terminals, reinforcing the tool's credibility at every scroll. + +**Key Characteristics:** +- Carbon-black canvas (`#050507`) with warm-gray border containment (`#3d3a39`) — not cold or sterile +- Single-accent identity: Emerald Signal Green (`#00d992`) as the sole chromatic energy source +- Dual-typography system: system-ui for authoritative headings, Inter for precise UI/body text, SFMono for code credibility +- Ultra-tight heading line-heights (1.0–1.11) creating dense, compressed power blocks +- Warm neutral palette (`#3d3a39`, `#8b949e`, `#b8b3b0`) that prevents the dark theme from feeling clinical +- Developer-terminal aesthetic where code snippets ARE the hero content +- Green glow effects (`drop-shadow`, border accents) that make UI elements feel electrically alive + +## 2. Color Palette & Roles + +### Primary +- **Emerald Signal Green** (`#00d992`): The core brand energy — used for accent borders, glow effects, and the highest-signal interactive moments. This is the "power-on" indicator of the entire interface. +- **VoltAgent Mint** (`#2fd6a1`): The button-text variant of the brand green — slightly warmer and more readable than pure Signal Green, used specifically for CTA text on dark surfaces. +- **Tailwind Emerald** (`#10b981`): The ecosystem-standard green used at low opacity (30%) for subtle background tints and link defaults. Bridges VoltAgent's custom palette with Tailwind's utility classes. + +### Secondary & Accent +- **Soft Purple** (`#818cf8`): A cool indigo-violet used sparingly for secondary categorization, code syntax highlights, and visual variety without competing with green. +- **Cobalt Primary** (`#306cce`): Docusaurus primary dark — used in documentation contexts for links and interactive focus states. +- **Deep Cobalt** (`#2554a0`): The darkest primary shade, reserved for pressed/active states in documentation UI. +- **Ring Blue** (`#3b82f6`): Tailwind's ring color at 50% opacity — visible only during keyboard focus for accessibility compliance. + +### Surface & Background +- **Abyss Black** (`#050507`): The landing page canvas — a near-pure black with the faintest warm undertone, darker than most "dark themes" for maximum contrast with green accents. +- **Carbon Surface** (`#101010`): The primary card and button background — one shade lighter than Abyss, creating a barely perceptible elevation layer. Used across all contained surfaces. +- **Warm Charcoal Border** (`#3d3a39`): The signature containment color — not a cold gray but a warm, almost brownish dark tone that prevents borders from feeling harsh against the black canvas. + +### Neutrals & Text +- **Snow White** (`#f2f2f2`): The primary text color on dark surfaces — not pure white (`#ffffff`) but a softened, eye-friendly off-white. The most-used color on the site (1008 instances). +- **Pure White** (`#ffffff`): Reserved for the highest-emphasis moments — ghost button text and maximum-contrast headings. Used at low opacity (5%) for subtle overlay effects. +- **Warm Parchment** (`#b8b3b0`): Secondary body text — a warm light gray with a slight pinkish undertone that reads as "paper" against the dark canvas. +- **Steel Slate** (`#8b949e`): Tertiary text, metadata, timestamps, and de-emphasized content. A cool blue-gray that provides clear hierarchy below Warm Parchment. +- **Fog Gray** (`#bdbdbd`): Footer links and supporting navigation text — brightens on hover to Pure White. +- **Mist Gray** (`#dcdcdc`): Slightly brighter than Fog, used for secondary link text that transitions to bright green on hover. +- **Near White** (`#eeeeee`): Highest-contrast secondary text, one step below Snow White. + +### Semantic & Accent +- **Success Emerald** (`#008b00`): Deep green for success states and positive confirmations in documentation contexts. +- **Success Light** (`#80d280`): Soft pastel green for success backgrounds and subtle positive indicators. +- **Warning Amber** (`#ffba00`): Bright amber for warning alerts and caution states. +- **Warning Pale** (`#ffdd80`): Softened amber for warning background fills. +- **Danger Coral** (`#fb565b`): Vivid red for error states and destructive action warnings. +- **Danger Rose** (`#fd9c9f`): Softened coral-pink for error backgrounds. +- **Info Teal** (`#4cb3d4`): Cool teal-blue for informational callouts and tip admonitions. +- **Dashed Border Slate** (`#4f5d75` at 40%): A muted blue-gray used exclusively for decorative dashed borders in workflow diagrams. + +### Gradient System +- **Green Signal Glow**: `drop-shadow(0 0 2px #00d992)` animating to `drop-shadow(0 0 8px #00d992)` — creates a pulsing "electric charge" effect on the VoltAgent bolt logo and interactive elements. The glow expands and contracts like a heartbeat. +- **Warm Ambient Haze**: `rgba(92, 88, 85, 0.2) 0px 0px 15px` — a warm-toned diffused shadow that creates a soft atmospheric glow around elevated cards, visible at the edges without sharp boundaries. +- **Deep Dramatic Elevation**: `rgba(0, 0, 0, 0.7) 0px 20px 60px` with `rgba(148, 163, 184, 0.1) 0px 0px 0px 1px inset` — a heavy, dramatic downward shadow paired with a faint inset slate ring for the most prominent floating elements. + +## 3. Typography Rules + +### Font Family +- **Primary (Headings)**: `system-ui`, with fallbacks: `-apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica, Arial, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol` +- **Secondary (Body/UI)**: `Inter`, with fallbacks inheriting from system-ui stack. OpenType features: `"calt", "rlig"` (contextual alternates and required ligatures) +- **Monospace (Code)**: `SFMono-Regular`, with fallbacks: `Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display / Hero | system-ui | 60px (3.75rem) | 400 | 1.00 (tight) | -0.65px | Maximum impact, compressed blocks | +| Section Heading | system-ui | 36px (2.25rem) | 400 | 1.11 (tight) | -0.9px | Tightest letter-spacing in the system | +| Sub-heading | system-ui | 24px (1.50rem) | 700 | 1.33 | -0.6px | Bold weight for emphasis at this size | +| Sub-heading Light | system-ui / Inter | 24px (1.50rem) | 300–400 | 1.33 | -0.6px | Light weight variant for softer hierarchy | +| Overline | system-ui | 20px (1.25rem) | 600 | 1.40 | 0.5px | Uppercase transform, positive letter-spacing | +| Feature Title | Inter | 20px (1.25rem) | 500–600 | 1.40 | normal | Card headings, feature names | +| Overline Small | Inter | 18px (1.13rem) | 600 | 1.56 | 0.45px | Uppercase section labels | +| Body / Button | Inter | 16px (1.00rem) | 400–600 | 1.50–1.65 | normal | Standard text, nav links, buttons | +| Nav Link | Inter | 14.45px (0.90rem) | 500 | 1.65 | normal | Navigation-specific sizing | +| Caption / Label | Inter | 14px (0.88rem) | 400–600 | 1.43–1.65 | normal | Descriptions, metadata, badge text | +| Tag / Overline Tiny | system-ui | 14px (0.88rem) | 600 | 1.43 | 2.52px | Widest letter-spacing — reserved for uppercase tags | +| Micro | Inter | 12px (0.75rem) | 400–500 | 1.33 | normal | Smallest sans-serif text | +| Code Body | SFMono-Regular | 13–14px | 400–686 | 1.23–1.43 | normal | Inline code, terminal output, variable weight for syntax | +| Code Small | SFMono-Regular | 11–12px | 400 | 1.33–1.45 | normal | Tiny code references, line numbers | +| Code Button | monospace | 13px (0.81rem) | 700 | 1.65 | normal | Copy-to-clipboard button labels | + +### Principles +- **System-native authority**: Display headings use system-ui rather than a custom web font — this means the largest text renders instantly (no FOIT/FOUT) and inherits the operating system's native personality. On macOS it's SF Pro, on Windows it's Segoe UI. The design accepts this variability as a feature, not a bug. +- **Tight compression creates density**: Hero line-heights are extremely compressed (1.0) with negative letter-spacing (-0.65px to -0.9px), creating text blocks that feel like dense technical specifications rather than airy marketing copy. +- **Weight gradient, not weight contrast**: The system uses a gentle 300→400→500→600→700 weight progression. Bold (700) is reserved for sub-headings and code-button emphasis. Most body text lives at 400–500, creating subtle rather than dramatic hierarchy. +- **Uppercase is earned and wide**: When uppercase appears, it's always paired with generous letter-spacing (0.45px–2.52px), transforming dense words into spaced-out overline labels. This treatment is never applied to headings. +- **OpenType by default**: Both system-ui and Inter enable `"calt"` and `"rlig"` features, ensuring contextual character adjustments and ligature rendering throughout. + +## 4. Component Stylings + +### Buttons + +**Ghost / Outline (Standard)** +- Background: transparent +- Text: Pure White (`#ffffff`) +- Padding: comfortable (12px 16px) +- Border: thin solid Warm Charcoal (`1px solid #3d3a39`) +- Radius: comfortably rounded (6px) +- Hover: background darkens to `rgba(0, 0, 0, 0.2)`, opacity drops to 0.4 +- Outline: subtle green tint (`rgba(33, 196, 93, 0.5)`) +- The default interactive element — unassuming but clearly clickable + +**Primary Green CTA** +- Background: Carbon Surface (`#101010`) +- Text: VoltAgent Mint (`#2fd6a1`) +- Padding: comfortable (12px 16px) +- Border: none visible (outline-based focus indicator) +- Outline: VoltAgent Mint (`rgb(47, 214, 161)`) +- Hover: same darkening behavior as Ghost +- The "powered on" button — green text on dark surface reads as an active terminal command + +**Tertiary / Emphasized Container Button** +- Background: Carbon Surface (`#101010`) +- Text: Snow White (`#f2f2f2`) +- Padding: generous (20px all sides) +- Border: thick solid Warm Charcoal (`3px solid #3d3a39`) +- Radius: comfortably rounded (8px) +- A card-like button treatment for larger interactive surfaces (code copy blocks, feature CTAs) + +### Cards & Containers +- Background: Carbon Surface (`#101010`) — one shade lighter than the page canvas +- Border: `1px solid #3d3a39` (Warm Charcoal) for standard containment; `2px solid #00d992` for highlighted/active cards +- Radius: comfortably rounded (8px) for content cards; subtly rounded (4–6px) for smaller inline containers +- Shadow Level 1: Warm Ambient Haze (`rgba(92, 88, 85, 0.2) 0px 0px 15px`) for standard elevation +- Shadow Level 2: Deep Dramatic (`rgba(0, 0, 0, 0.7) 0px 20px 60px` + `rgba(148, 163, 184, 0.1) 0px 0px 0px 1px inset`) for hero/feature showcase cards +- Hover behavior: likely border color shift toward green accent or subtle opacity increase +- Dashed variant: `1px dashed rgba(79, 93, 117, 0.4)` for workflow/diagram containers — visually distinct from solid-border content cards + +### Inputs & Forms +- No explicit input token data extracted — the site is landing-page focused with minimal form UI +- The npm install command (`npm create voltagent-app@latest`) is presented as a code block rather than an input field +- Inferred style: Carbon Surface background, Warm Charcoal border, VoltAgent Mint focus ring, Snow White text + +### Navigation +- Sticky top nav bar on Abyss Black canvas +- Logo: VoltAgent bolt icon with animated green glow (`drop-shadow` cycling 2px–8px) +- Nav structure: Logo → Product dropdown → Use Cases dropdown → Resources dropdown → GitHub stars badge → Docs CTA +- Link text: Snow White (`#f2f2f2`) at 14–16px Inter, weight 500 +- Hover: links transition to green variants (`#00c182` or `#00ffaa`) +- GitHub badge: social proof element integrated directly into nav +- Mobile: collapses to hamburger menu, single-column vertical layout + +### Image Treatment +- Dark-themed product screenshots and architectural diagrams dominate +- Code blocks are treated as primary visual content — syntax-highlighted with SFMono-Regular +- Agent workflow visualizations appear as interactive node graphs with green connection lines +- Decorative dot-pattern backgrounds appear behind hero sections +- Full-bleed within card containers, respecting 8px radius rounding + +### Distinctive Components + +**npm Install Command Block** +- A prominent code snippet (`npm create voltagent-app@latest`) styled as a copyable command +- SFMono-Regular on Carbon Surface with a copy-to-clipboard button +- Functions as the primary CTA — "install first, read later" developer psychology + +**Company Logo Marquee** +- Horizontal scrolling strip of developer/company logos +- Infinite animation (`scrollLeft`/`scrollRight`, 25–80s durations) +- Pauses on hover and for users with reduced-motion preferences +- Demonstrates ecosystem adoption without cluttering the layout + +**Feature Section Cards** +- Large cards combining code examples with descriptive text +- Left: code snippet with syntax highlighting; Right: feature description +- Green accent border (`2px solid #00d992`) on highlighted/active features +- Internal padding: generous (24–32px estimated) + +**Agent Flow Diagrams** +- Interactive node-graph visualizations showing agent coordination +- Connection lines use VoltAgent green variants +- Nodes styled as mini-cards within the Warm Charcoal border system + +**Community / GitHub Section** +- Large GitHub icon as the visual anchor +- Star count and contributor metrics prominently displayed +- Warm social proof: Discord, X, Reddit, LinkedIn, YouTube links in footer + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 2px, 4px, 5px, 6px, 6.4px, 8px, 12px, 16px, 20px, 24px, 28px, 32px, 40px, 48px, 64px +- Button padding: 12px 16px (standard), 20px (container-button) +- Card internal padding: approximately 24–32px +- Section vertical spacing: generous (estimated 64–96px between major sections) +- Component gap: 16–24px between sibling cards/elements + +### Grid & Container +- Max container width: approximately 1280–1440px, centered +- Hero: centered single-column with maximum breathing room +- Feature sections: alternating asymmetric layouts (code left / text right, then reversed) +- Logo marquee: full-width horizontal scroll, breaking the container constraint +- Card grids: 2–3 column for feature showcases +- Integration grid: responsive multi-column for partner/integration icons + +### Whitespace Philosophy +- **Cinematic breathing room between sections**: Massive vertical gaps create a "scroll-through-chapters" experience — each section feels like a new scene. +- **Dense within components**: Cards and code blocks are internally compact, with tight line-heights and controlled padding. Information is concentrated, not spread thin. +- **Border-defined separation**: Rather than relying solely on whitespace, VoltAgent uses the Warm Charcoal border system (`#3d3a39`) to delineate content zones. The border IS the whitespace signal. +- **Hero-first hierarchy**: The top of the page commands the most space — the "AI Agent Engineering Platform" headline and npm command get maximum vertical runway before the first content section appears. + +### Border Radius Scale +- Nearly squared (4px): Small inline elements, SVG containers, code spans — the sharpest treatment, conveying technical precision +- Subtly rounded (6px): Buttons, links, clipboard actions — the workhorse radius for interactive elements +- Code-specific (6.4px): Code blocks, `pre` elements, clipboard copy targets — a deliberate micro-distinction from standard 6px +- Comfortably rounded (8px): Content cards, feature containers, emphasized buttons — the standard containment radius +- Pill-shaped (9999px): Tags, badges, status indicators, pill-shaped navigation elements — the roundest treatment for small categorical labels + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, no border | Page background (`#050507`), inline text | +| Contained (Level 1) | `1px solid #3d3a39`, no shadow | Standard cards, nav bar, code blocks | +| Emphasized (Level 2) | `3px solid #3d3a39`, no shadow | Large interactive buttons, emphasized containers | +| Accent (Level 3) | `2px solid #00d992`, no shadow | Active/highlighted feature cards, selected states | +| Ambient Glow (Level 4) | `rgba(92, 88, 85, 0.2) 0px 0px 15px` | Elevated cards, hover states, soft atmospheric lift | +| Dramatic Float (Level 5) | `rgba(0, 0, 0, 0.7) 0px 20px 60px` + `rgba(148, 163, 184, 0.1) 1px inset` | Hero feature showcase, modals, maximum-elevation content | + +**Shadow Philosophy**: VoltAgent communicates depth primarily through **border weight and color**, not shadows. The standard `1px solid #3d3a39` border IS the elevation — adding a `3px` border weight or switching to green (`#00d992`) communicates importance more than adding shadow does. When shadows do appear, they're either warm and diffused (Level 4) or cinematic and dramatic (Level 5) — never medium or generic. + +### Decorative Depth +- **Green Signal Glow**: The VoltAgent bolt logo pulses with a `drop-shadow` animation cycling between 2px and 8px blur radius in Emerald Signal Green. This is the most distinctive decorative element — it makes the logo feel "powered on." +- **Warm Charcoal Containment Lines**: The warm tone of `#3d3a39` borders creates a subtle visual warmth against the cool black, as if the cards are faintly heated from within. +- **Dashed Workflow Lines**: `1px dashed rgba(79, 93, 117, 0.4)` creates a blueprint-like aesthetic for architecture diagrams, visually distinct from solid content borders. + +## 7. Do's and Don'ts + +### Do +- Use Abyss Black (`#050507`) as the landing page background and Carbon Surface (`#101010`) for all contained elements — the two-shade dark system is essential +- Reserve Emerald Signal Green (`#00d992`) exclusively for high-signal moments: active borders, glow effects, and the most important interactive accents +- Use VoltAgent Mint (`#2fd6a1`) for button text on dark surfaces — it's more readable than pure Signal Green +- Keep heading line-heights compressed (1.0–1.11) with negative letter-spacing for dense, authoritative text blocks +- Use the warm gray palette (`#3d3a39`, `#8b949e`, `#b8b3b0`) for borders and secondary text — warmth prevents the dark theme from feeling sterile +- Present code snippets as primary content — they're hero elements, not supporting illustrations +- Use border weight (1px → 2px → 3px) and color shifts (`#3d3a39` → `#00d992`) to communicate depth and importance, rather than relying on shadows +- Pair system-ui for headings with Inter for body text — the speed/authority of native fonts combined with the precision of a geometric sans +- Use SFMono-Regular for all code content — it's the developer credibility signal +- Apply `"calt"` and `"rlig"` OpenType features across all text + +### Don't +- Don't use bright or light backgrounds as primary surfaces — the entire identity lives on near-black +- Don't introduce warm colors (orange, red, yellow) as decorative accents — the palette is strictly green + warm neutrals on black. Warm colors are reserved for semantic states (warning, error) only +- Don't use Emerald Signal Green (`#00d992`) on large surfaces or as background fills — it's an accent, never a surface +- Don't increase heading line-heights beyond 1.33 — the compressed density is core to the engineering-platform identity +- Don't use heavy shadows generously — depth comes from border treatment, not box-shadow. Shadows are reserved for Level 4–5 elevation only +- Don't use pure white (`#ffffff`) as default body text — Snow White (`#f2f2f2`) is the standard. Pure white is reserved for maximum-emphasis headings and button text +- Don't mix in serif or decorative fonts — the entire system is geometric sans + monospace +- Don't use border-radius larger than 8px on content cards — 9999px (pill) is only for small tags and badges +- Don't skip the warm-gray border system — cards without `#3d3a39` borders lose their containment and float ambiguously on the dark canvas +- Don't animate aggressively — animations are slow and subtle (25–100s durations for marquee, gentle glow pulses). Fast motion contradicts the "engineering precision" atmosphere + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Small Mobile | <420px | Minimum layout, stacked everything, reduced hero text to ~24px | +| Mobile | 420–767px | Single column, hamburger nav, full-width cards, hero text ~36px | +| Tablet | 768–1024px | 2-column grids begin, condensed nav, medium hero text | +| Desktop | 1025–1440px | Full multi-column layout, expanded nav with dropdowns, large hero (60px) | +| Large Desktop | >1440px | Max-width container centered (est. 1280–1440px), generous horizontal margins | + +*23 breakpoints detected in total, ranging from 360px to 1992px — indicating a fluid, heavily responsive grid system rather than fixed breakpoint snapping.* + +### Touch Targets +- Buttons use comfortable padding (12px 16px minimum) ensuring adequate touch area +- Navigation links spaced with sufficient gap for thumb navigation +- Interactive card surfaces are large enough to serve as full touch targets +- Minimum recommended touch target: 44x44px + +### Collapsing Strategy +- **Navigation**: Full horizontal nav with dropdowns collapses to hamburger menu on mobile +- **Feature grids**: 3-column → 2-column → single-column vertical stacking +- **Hero text**: 60px → 36px → 24px progressive scaling with maintained compression ratios +- **Logo marquee**: Adjusts scroll speed and item sizing; maintains infinite loop +- **Code blocks**: Horizontal scroll on smaller viewports rather than wrapping — preserving code readability +- **Section padding**: Reduces proportionally but maintains generous vertical rhythm between chapters +- **Cards**: Stack vertically on mobile with full-width treatment and maintained internal padding + +### Image Behavior +- Dark-themed screenshots and diagrams scale proportionally within containers +- Agent flow diagrams simplify or scroll horizontally on narrow viewports +- Dot-pattern decorative backgrounds scale with viewport +- No visible art direction changes between breakpoints — same crops, proportional scaling +- Lazy loading for below-fold images (Docusaurus default behavior) + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Brand Accent: "Emerald Signal Green (#00d992)" +- Button Text: "VoltAgent Mint (#2fd6a1)" +- Page Background: "Abyss Black (#050507)" +- Card Surface: "Carbon Surface (#101010)" +- Border / Containment: "Warm Charcoal (#3d3a39)" +- Primary Text: "Snow White (#f2f2f2)" +- Secondary Text: "Warm Parchment (#b8b3b0)" +- Tertiary Text: "Steel Slate (#8b949e)" + +### Example Component Prompts +- "Create a feature card on Carbon Surface (#101010) with a 1px solid Warm Charcoal (#3d3a39) border, comfortably rounded corners (8px). Use Snow White (#f2f2f2) for the title in system-ui at 24px weight 700, and Warm Parchment (#b8b3b0) for the description in Inter at 16px. Add a subtle Warm Ambient shadow (rgba(92, 88, 85, 0.2) 0px 0px 15px)." +- "Design a ghost button with transparent background, Snow White (#f2f2f2) text in Inter at 16px, a 1px solid Warm Charcoal (#3d3a39) border, and subtly rounded corners (6px). Padding: 12px vertical, 16px horizontal. On hover, background shifts to rgba(0, 0, 0, 0.2)." +- "Build a hero section on Abyss Black (#050507) with a massive heading at 60px system-ui, line-height 1.0, letter-spacing -0.65px. The word 'Platform' should be colored in Emerald Signal Green (#00d992). Below the heading, place a code block showing 'npm create voltagent-app@latest' in SFMono-Regular at 14px on Carbon Surface (#101010) with a copy button." +- "Create a highlighted feature card using a 2px solid Emerald Signal Green (#00d992) border instead of the standard Warm Charcoal. Keep Carbon Surface background, comfortably rounded corners (8px), and include a code snippet on the left with feature description text on the right." +- "Design a navigation bar on Abyss Black (#050507) with the VoltAgent logo (bolt icon with animated green glow) on the left, nav links in Inter at 14px weight 500 in Snow White, and a green CTA button (Carbon Surface bg, VoltAgent Mint text) on the right. Add a 1px solid Warm Charcoal bottom border." + +### Iteration Guide +When refining existing screens generated with this design system: +1. Focus on ONE component at a time +2. Reference specific color names and hex codes — "use Warm Parchment (#b8b3b0)" not "make it lighter" +3. Use border treatment to communicate elevation: "change the border to 2px solid Emerald Signal Green (#00d992)" for emphasis +4. Describe the desired "feel" alongside measurements — "compressed and authoritative heading at 36px with line-height 1.11 and -0.9px letter-spacing" +5. For glow effects, specify "Emerald Signal Green (#00d992) as a drop-shadow with 2–8px blur radius" +6. Always specify which font — system-ui for headings, Inter for body/UI, SFMono-Regular for code +7. Keep animations slow and subtle — marquee scrolls at 25–80s, glow pulses gently diff --git a/design-md/voltagent/README.md b/design-md/voltagent/README.md new file mode 100644 index 0000000..4db9dcd --- /dev/null +++ b/design-md/voltagent/README.md @@ -0,0 +1,27 @@ +# Voltagent — Design System + +> Design.md extracted from the public [voltagent](https://voltagent.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 Voltagent 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 +![Voltagent Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/voltagent/preview-dark-screenshot.png) + +### Light Mode +![Voltagent Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/voltagent/preview-screenshot.png) + + diff --git a/design-md/voltagent/preview-dark.html b/design-md/voltagent/preview-dark.html new file mode 100644 index 0000000..bc03db7 --- /dev/null +++ b/design-md/voltagent/preview-dark.html @@ -0,0 +1,487 @@ + + + + + +Design System Preview: VoltAgent (Dark) + + + + + + + + + + + +
+

Design System Preview:
VoltAgent

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
Emerald Signal Green
#00d992
Core brand accent, glow effects, active borders
+
VoltAgent Mint
#2fd6a1
CTA button text on dark surfaces
+
Tailwind Emerald
#10b981
Ecosystem green, background tints at 30%
+
+
+ +
+

Secondary & Accent

+
+
Soft Purple
#818cf8
Code syntax, secondary categorization
+
Cobalt Primary
#306cce
Docs links, focus states
+
Info Teal
#4cb3d4
Informational callouts
+
+
+ +
+

Surface & Background

+
+
Abyss Black
#050507
Landing page canvas
+
Carbon Surface
#101010
Card backgrounds, button surfaces
+
Warm Charcoal
#3d3a39
Borders, containment lines
+
+
+ +
+

Neutrals & Text

+
+
Snow White
#f2f2f2
Primary text (1008 instances)
+
Warm Parchment
#b8b3b0
Secondary body text
+
Steel Slate
#8b949e
Tertiary text, metadata
+
+
+ +
+

Semantic

+
+
Warning Amber
#ffba00
Warning alerts
+
Danger Coral
#fb565b
Error states
+
Success Emerald
#008b00
Success confirmations
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
Display Hero
Display / Hero — 60px / 400 / 1.00 / -0.65px — system-ui
+
Section Heading
Section Heading — 36px / 400 / 1.11 / -0.9px — system-ui
+
Sub-heading Bold
Sub-heading Bold — 24px / 700 / 1.33 / -0.6px — system-ui
+
OVERLINE LABEL
Overline — 20px / 600 / 1.40 / 0.5px / uppercase — system-ui
+
Feature Title
Feature Title — 20px / 600 / 1.40 / normal — Inter
+
Body text for standard paragraphs, navigation links, and button labels. Inter provides geometric precision.
Body / Button — 16px / 400 / 1.65 / normal — Inter
+
Caption and metadata text for descriptions
Caption — 14px / 500 / 1.43 / normal — Inter
+
const agent = new Agent({ name: "voltagent" })
Code Body — 14px / 400 / 1.43 / normal — SFMono-Regular
+
import { Agent } from "@voltagent/core"
Code Small — 12px / 400 / 1.33 / normal — SFMono-Regular
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
Primary Green CTA
+
Ghost / Outline
+
Ghost / Charcoal
+
Accent Border
+
Tertiary / Container
+
+ +
+ // npm install command — the primary CTA
+ $ npm create voltagent-app@latest +
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
Standard Card

Warm Charcoal Border

Standard content card with 1px warm-charcoal border and 8px radius. The default container for features and code blocks.

+
Accent Highlighted

Green Signal Border

Active card with 2px solid Emerald Signal Green border. For selected features and primary emphasis.

+
Dramatic Float

Deep Shadow Elevation

Maximum-elevation card with dramatic shadow and inset slate ring. For hero features and floating content.

+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale builds from 2px to 64px.

+ +
+
2px
+
4px
+
6px
+
8px
+
12px
+
16px
+
20px
+
24px
+
32px
+
40px
+
48px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+ +
+
4px
Nearly squared
+
6px
Subtly rounded
+
8px
Comfortably rounded
+
9999px
Pill-shaped
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
Flat
No shadow, no border. Page background.
Level 0
+
Contained
1px solid Warm Charcoal. Standard cards.
Level 1
+
Emphasized
3px solid Warm Charcoal. Large containers.
Level 2
+
Accent
2px solid Signal Green. Active features.
Level 3
+
Ambient Glow
Warm diffused shadow. Soft atmospheric lift.
Level 4
+
Dramatic Float
Heavy shadow + inset ring. Hero features.
Level 5
+
+
+ +
+ + + diff --git a/design-md/voltagent/preview.html b/design-md/voltagent/preview.html new file mode 100644 index 0000000..430dd80 --- /dev/null +++ b/design-md/voltagent/preview.html @@ -0,0 +1,766 @@ + + + + + +Design System Preview: VoltAgent (Light) + + + + + + + + + + + +
+

Design System Preview:
VoltAgent

+

Auto-generated design token catalog from DESIGN.md

+
+ + +
+
+ +
+ + +
+
01 / Color Palette
+

Color Palette & Roles

+ +
+

Primary

+
+
+
+
+
Emerald Signal Green
+
#00d992
+
Core brand accent, glow effects, active borders
+
+
+
+
+
+
VoltAgent Mint
+
#2fd6a1
+
CTA button text on dark surfaces
+
+
+
+
+
+
Tailwind Emerald
+
#10b981
+
Ecosystem green, link defaults, background tints at 30%
+
+
+
+
+ +
+

Secondary & Accent

+
+
+
+
+
Soft Purple
+
#818cf8
+
Secondary categorization, code syntax highlights
+
+
+
+
+
+
Cobalt Primary
+
#306cce
+
Docs links, interactive focus states
+
+
+
+
+
+
Info Teal
+
#4cb3d4
+
Informational callouts and tip admonitions
+
+
+
+
+ +
+

Surface & Background

+
+
+
+
+
Abyss Black
+
#050507
+
Landing page canvas
+
+
+
+
+
+
Carbon Surface
+
#101010
+
Card backgrounds, button surfaces
+
+
+
+
+
+
Warm Charcoal
+
#3d3a39
+
Borders, containment lines
+
+
+
+
+ +
+

Neutrals & Text

+
+
+
+
+
Snow White
+
#f2f2f2
+
Primary text on dark surfaces (1008 instances)
+
+
+
+
+
+
Warm Parchment
+
#b8b3b0
+
Secondary body text
+
+
+
+
+
+
Steel Slate
+
#8b949e
+
Tertiary text, metadata
+
+
+
+
+ +
+

Semantic

+
+
+
+
+
Warning Amber
+
#ffba00
+
Warning states and caution alerts
+
+
+
+
+
+
Danger Coral
+
#fb565b
+
Error states and destructive actions
+
+
+
+
+
+
Success Emerald
+
#008b00
+
Success confirmations
+
+
+
+
+
+ +
+ + +
+
02 / Typography Scale
+

Typography Rules

+ +
+
Display Hero
+
Display / Hero — 60px / 400 / 1.00 / -0.65px — system-ui
+
+ +
+
Section Heading
+
Section Heading — 36px / 400 / 1.11 / -0.9px — system-ui
+
+ +
+
Sub-heading Bold
+
Sub-heading Bold — 24px / 700 / 1.33 / -0.6px — system-ui
+
+ +
+
OVERLINE LABEL
+
Overline — 20px / 600 / 1.40 / 0.5px / uppercase — system-ui
+
+ +
+
Feature Title
+
Feature Title — 20px / 600 / 1.40 / normal — Inter
+
+ +
+
Body text for standard paragraphs, navigation links, and button labels. Inter provides geometric precision for all UI copy.
+
Body / Button — 16px / 400 / 1.65 / normal — Inter
+
+ +
+
Caption and metadata text for descriptions
+
Caption — 14px / 500 / 1.43 / normal — Inter
+
+ +
+
TINY OVERLINE TAG
+
Tag / Overline Tiny — 14px / 600 / 1.43 / 2.52px / uppercase — system-ui
+
+ +
+
const agent = new Agent({ name: "voltagent" })
+
Code Body — 14px / 400 / 1.43 / normal — SFMono-Regular
+
+ +
+
import { Agent } from "@voltagent/core"
+
Code Small — 12px / 400 / 1.33 / normal — SFMono-Regular
+
+
+ +
+ + +
+
03 / Button Variants
+

Buttons

+ +
+
+ +
Primary Green CTA
+
+
+ +
Ghost / Outline
+
+
+ +
Ghost / Charcoal
+
+
+ +
Accent Border
+
+
+ +
Tertiary / Container
+
+
+ +
+ // npm install command — the primary CTA
+ $ npm create voltagent-app@latest +
+
+ +
+ + +
+
04 / Card Examples
+

Cards & Containers

+ +
+
+
Standard Card
+

Warm Charcoal Border

+

Standard content card with 1px solid warm-charcoal border and 8px radius. The default container for features, code blocks, and content sections.

+
+
+
Accent Highlighted
+

Green Signal Border

+

Active or highlighted card with 2px solid Emerald Signal Green border. Used for selected features, active states, and primary emphasis.

+
+
+
Dramatic Float
+

Deep Shadow Elevation

+

Maximum-elevation card with dramatic shadow (20px 60px) and inset slate ring. Reserved for hero feature showcases and floating content.

+
+
+
+ +
+ + +
+
05 / Spacing Scale
+

Spacing System

+

Base unit: 8px. Scale builds from 2px to 64px.

+ +
+
2px
+
4px
+
6px
+
8px
+
12px
+
16px
+
20px
+
24px
+
32px
+
40px
+
48px
+
+
+ +
+ + +
+
06 / Border Radius Scale
+

Border Radius

+ +
+
4px
Nearly squared
+
6px
Subtly rounded
+
8px
Comfortably rounded
+
9999px
Pill-shaped
+
+
+ +
+ + +
+
07 / Elevation & Depth
+

Depth & Elevation

+ +
+
+
Flat
No shadow, no border. Page background and inline text.
+
Level 0
+
+
+
Contained
1px solid Warm Charcoal. Standard cards and code blocks.
+
Level 1
+
+
+
Emphasized
3px solid Warm Charcoal. Large interactive buttons and containers.
+
Level 2
+
+
+
Accent
2px solid Emerald Signal Green. Active/highlighted feature cards.
+
Level 3
+
+
+
Ambient Glow
Warm diffused shadow (15px blur). Soft atmospheric lift.
+
Level 4
+
+
+
Dramatic Float
Heavy shadow (20px 60px) + inset ring. Hero features, modals.
+
Level 5
+
+
+
+ +
+ + + diff --git a/design-md/x.ai/DESIGN.md b/design-md/x.ai/DESIGN.md new file mode 100644 index 0000000..01ce318 --- /dev/null +++ b/design-md/x.ai/DESIGN.md @@ -0,0 +1,257 @@ +# Design System: xAI + +## 1. Visual Theme & Atmosphere + +xAI's website is a masterclass in dark-first, monospace-driven brutalist minimalism -- a design system that feels like it was built by engineers who understand that restraint is the ultimate form of sophistication. The entire experience is anchored to an almost-black background (`#1f2228`) with pure white text (`#ffffff`), creating a high-contrast, terminal-inspired aesthetic that signals deep technical credibility. There are no gradients, no decorative illustrations, no color accents competing for attention. This is a site that communicates through absence. + +The typographic system is split between two carefully chosen typefaces. `GeistMono` (Vercel's monospace font) handles display-level headlines at an extraordinary 320px with weight 300, and also serves as the button typeface in uppercase with tracked-out letter-spacing (1.4px). `universalSans` handles all body and secondary heading text with a clean, geometric sans-serif voice. The monospace-as-display-font choice is the defining aesthetic decision -- it positions xAI not as a consumer product but as infrastructure, as something built by people who live in terminals. + +The spacing system operates on an 8px base grid with values concentrated at the small end (4px, 8px, 24px, 48px), reflecting a dense, information-focused layout philosophy. Border radius is minimal -- the site barely rounds anything, maintaining sharp, architectural edges. There are no decorative shadows, no gradients, no layered elevation. Depth is communicated purely through contrast and whitespace. + +**Key Characteristics:** +- Pure dark theme: `#1f2228` background with `#ffffff` text -- no gray middle ground +- GeistMono at extreme display sizes (320px, weight 300) -- monospace as luxury +- Uppercase monospace buttons with 1.4px letter-spacing -- technical, commanding +- universalSans for body text at 16px/1.5 and headings at 30px/1.2 -- clean contrast +- Zero decorative elements: no shadows, no gradients, no colored accents +- 8px spacing grid with a sparse, deliberate scale +- Heroicons SVG icon system -- minimal, functional +- Tailwind CSS with arbitrary values -- utility-first engineering approach + +## 2. Color Palette & Roles + +### Primary +- **Pure White** (`#ffffff`): The singular text color, link color, and all foreground elements. In xAI's system, white is not a background -- it is the voice. +- **Dark Background** (`#1f2228`): The canvas. A warm near-black with a subtle blue undertone (not pure black, not neutral gray). This specific hue prevents the harsh eye strain of `#000000` while maintaining deep darkness. + +### Interactive +- **White Default** (`#ffffff`): Link and interactive element color in default state. +- **White Muted** (`rgba(255, 255, 255, 0.5)`): Hover state for links -- a deliberate dimming rather than brightening, which is unusual and distinctive. +- **White Subtle** (`rgba(255, 255, 255, 0.2)`): Borders, dividers, and subtle surface treatments. +- **Ring Blue** (`rgb(59, 130, 246) / 0.5`): Tailwind's default focus ring color (`--tw-ring-color`), used for keyboard accessibility focus states. + +### Surface & Borders +- **Surface Elevated** (`rgba(255, 255, 255, 0.05)`): Subtle card backgrounds and hover surfaces -- barely visible lift. +- **Surface Hover** (`rgba(255, 255, 255, 0.08)`): Slightly more visible hover state for interactive containers. +- **Border Default** (`rgba(255, 255, 255, 0.1)`): Standard border for cards, dividers, and containers. +- **Border Strong** (`rgba(255, 255, 255, 0.2)`): Emphasized borders for active states and button outlines. + +### Functional +- **Text Primary** (`#ffffff`): All headings, body text, labels. +- **Text Secondary** (`rgba(255, 255, 255, 0.7)`): Descriptions, captions, supporting text. +- **Text Tertiary** (`rgba(255, 255, 255, 0.5)`): Muted labels, placeholder text, timestamps. +- **Text Quaternary** (`rgba(255, 255, 255, 0.3)`): Disabled text, very subtle annotations. + +## 3. Typography Rules + +### Font Family +- **Display / Buttons**: `GeistMono`, with fallback: `ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New` +- **Body / Headings**: `universalSans`, with fallback: `universalSans Fallback` + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Transform | Notes | +|------|------|------|--------|-------------|----------------|-----------|-------| +| Display Hero | GeistMono | 320px (20rem) | 300 | 1.50 | normal | none | Extreme scale, monospace luxury | +| Section Heading | universalSans | 30px (1.88rem) | 400 | 1.20 (tight) | normal | none | Clean sans-serif contrast | +| Body | universalSans | 16px (1rem) | 400 | 1.50 | normal | none | Standard reading text | +| Button | GeistMono | 14px (0.88rem) | 400 | 1.43 | 1.4px | uppercase | Tracked monospace, commanding | +| Label / Caption | universalSans | 14px (0.88rem) | 400 | 1.50 | normal | none | Supporting text | +| Small / Meta | universalSans | 12px (0.75rem) | 400 | 1.50 | normal | none | Timestamps, footnotes | + +### Principles +- **Monospace as display**: GeistMono at 320px is not a gimmick -- it is the brand statement. The fixed-width characters at extreme scale create a rhythmic, architectural quality that no proportional font can achieve. +- **Light weight at scale**: Weight 300 for the 320px headline prevents the monospace from feeling heavy or brutish at extreme sizes. It reads as precise, not overwhelming. +- **Uppercase buttons**: All button text is uppercase GeistMono with 1.4px letter-spacing. This creates a distinctly technical, almost command-line aesthetic for interactive elements. +- **Sans-serif for reading**: universalSans at 16px/1.5 provides excellent readability for body content, creating a clean contrast against the monospace display elements. +- **Two-font clarity**: The system uses exactly two typefaces with clear roles -- monospace for impact and interaction, sans-serif for information and reading. No overlap, no ambiguity. + +## 4. Component Stylings + +### Buttons + +**Primary (White on Dark)** +- Background: `#ffffff` +- Text: `#1f2228` +- Padding: 12px 24px +- Radius: 0px (sharp corners) +- Font: GeistMono 14px weight 400, uppercase, letter-spacing 1.4px +- Hover: `rgba(255, 255, 255, 0.9)` background +- Use: Primary CTA ("TRY GROK", "GET STARTED") + +**Ghost / Outlined** +- Background: transparent +- Text: `#ffffff` +- Padding: 12px 24px +- Radius: 0px +- Border: `1px solid rgba(255, 255, 255, 0.2)` +- Font: GeistMono 14px weight 400, uppercase, letter-spacing 1.4px +- Hover: `rgba(255, 255, 255, 0.05)` background +- Use: Secondary actions ("LEARN MORE", "VIEW API") + +**Text Link** +- Background: none +- Text: `#ffffff` +- Font: universalSans 16px weight 400 +- Hover: `rgba(255, 255, 255, 0.5)` -- dims on hover +- Use: Inline links, navigation items + +### Cards & Containers +- Background: `rgba(255, 255, 255, 0.03)` or transparent +- Border: `1px solid rgba(255, 255, 255, 0.1)` +- Radius: 0px (sharp) or 4px (subtle) +- Shadow: none -- xAI does not use box shadows +- Hover: border shifts to `rgba(255, 255, 255, 0.2)` + +### Navigation +- Dark background matching page (`#1f2228`) +- Brand logotype: white text, left-aligned +- Links: universalSans 14px weight 400, `#ffffff` text +- Hover: `rgba(255, 255, 255, 0.5)` text color +- CTA: white primary button, right-aligned +- Mobile: hamburger toggle + +### Badges / Tags +**Monospace Tag** +- Background: transparent +- Text: `#ffffff` +- Padding: 4px 8px +- Border: `1px solid rgba(255, 255, 255, 0.2)` +- Radius: 0px +- Font: GeistMono 12px uppercase, letter-spacing 1px + +### Inputs & Forms +- Background: transparent or `rgba(255, 255, 255, 0.05)` +- Border: `1px solid rgba(255, 255, 255, 0.2)` +- Radius: 0px +- Focus: ring with `rgb(59, 130, 246) / 0.5` +- Text: `#ffffff` +- Placeholder: `rgba(255, 255, 255, 0.3)` +- Label: `rgba(255, 255, 255, 0.7)`, universalSans 14px + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 4px, 8px, 24px, 48px +- The scale is deliberately sparse -- xAI avoids granular spacing distinctions, preferring large jumps that create clear visual hierarchy through whitespace alone + +### Grid & Container +- Max content width: approximately 1200px +- Hero: full-viewport height with massive centered monospace headline +- Feature sections: simple vertical stacking with generous section padding (48px-96px) +- Two-column layouts for feature descriptions at desktop +- Full-width dark sections maintain the single dark background throughout + +### Whitespace Philosophy +- **Extreme generosity**: xAI uses vast amounts of whitespace. The 320px headline with 48px+ surrounding padding creates a sense of emptiness that is itself a design statement -- the content is so important it needs room to breathe. +- **Vertical rhythm over horizontal density**: Content stacks vertically with large gaps between sections rather than packing horizontally. This creates a scroll-driven experience that feels deliberate and cinematic. +- **No visual noise**: The absence of decorative elements, borders between sections, and color variety means whitespace is the primary structural tool. + +### Breakpoints +- 2000px, 1536px, 1280px, 1024px, 1000px, 768px, 640px +- Tailwind responsive modifiers drive breakpoint behavior + +### Border Radius Scale +- Sharp (0px): Primary treatment for buttons, cards, inputs -- the default +- Subtle (4px): Occasional softening on secondary containers +- The near-zero radius philosophy is core to the brand's brutalist identity + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, no border | Page background, body content | +| Surface (Level 1) | `rgba(255,255,255,0.03)` background | Subtle card surfaces | +| Bordered (Level 2) | `1px solid rgba(255,255,255,0.1)` border | Cards, containers, dividers | +| Active (Level 3) | `1px solid rgba(255,255,255,0.2)` border | Hover states, active elements | +| Focus (Accessibility) | `ring` with `rgb(59,130,246)/0.5` | Keyboard focus indicator | + +**Elevation Philosophy**: xAI rejects the conventional shadow-based elevation system entirely. There are no box-shadows anywhere on the site. Instead, depth is communicated through three mechanisms: (1) opacity-based borders that brighten on interaction, creating a sense of elements "activating" rather than lifting; (2) extremely subtle background opacity shifts (`0.03` to `0.08`) that create barely-perceptible surface differentiation; and (3) the massive scale contrast between the 320px display type and 16px body text, which creates typographic depth. This is elevation through contrast and opacity, not through simulated light and shadow. + +## 7. Do's and Don'ts + +### Do +- Use `#1f2228` as the universal background -- never pure black `#000000` +- Use GeistMono for all display headlines and button text -- monospace IS the brand +- Apply uppercase + 1.4px letter-spacing to all button labels +- Use weight 300 for the massive display headline (320px) +- Keep borders at `rgba(255, 255, 255, 0.1)` -- barely visible, not absent +- Dim interactive elements on hover to `rgba(255, 255, 255, 0.5)` -- the reverse of convention +- Maintain sharp corners (0px radius) as the default -- brutalist precision +- Use universalSans for all body and reading text at 16px/1.5 + +### Don't +- Don't use box-shadows -- xAI has zero shadow elevation +- Don't introduce color accents beyond white and the dark background -- the monochromatic palette is sacred +- Don't use large border-radius (8px+, pill shapes) -- the sharp edge is intentional +- Don't use bold weights (600-700) for headlines -- weight 300-400 only +- Don't brighten elements on hover -- xAI dims to `0.5` opacity instead +- Don't add decorative gradients, illustrations, or color blocks +- Don't use proportional fonts for buttons -- GeistMono uppercase is mandatory +- Don't use colored status indicators unless absolutely necessary -- keep everything in the white/dark spectrum + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile | <640px | Single column, hero headline scales dramatically down | +| Small Tablet | 640-768px | Slight increase in padding | +| Tablet | 768-1024px | Two-column layouts begin, heading sizes increase | +| Desktop | 1024-1280px | Full layout, generous whitespace | +| Large | 1280-1536px | Wider containers, more breathing room | +| Extra Large | 1536-2000px | Maximum content width, centered | +| Ultra | >2000px | Content stays centered, extreme margins | + +### Touch Targets +- Buttons use 12px 24px padding for comfortable touch +- Navigation links spaced with 24px gaps +- Minimum tap target: 44px height +- Mobile: full-width buttons for easy thumb reach + +### Collapsing Strategy +- Hero: 320px monospace headline scales down dramatically (to ~48px-64px on mobile) +- Navigation: horizontal links collapse to hamburger menu +- Feature sections: two-column to single-column stacking +- Section padding: 96px -> 48px -> 24px across breakpoints +- Massive display type is the first thing to resize -- it must remain impactful but not overflow + +### Image Behavior +- Minimal imagery -- the site relies on typography and whitespace +- Any product screenshots maintain sharp corners +- Full-width media scales proportionally with viewport + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Background: Dark (`#1f2228`) +- Text Primary: White (`#ffffff`) +- Text Secondary: White 70% (`rgba(255, 255, 255, 0.7)`) +- Text Muted: White 50% (`rgba(255, 255, 255, 0.5)`) +- Text Disabled: White 30% (`rgba(255, 255, 255, 0.3)`) +- Border Default: White 10% (`rgba(255, 255, 255, 0.1)`) +- Border Strong: White 20% (`rgba(255, 255, 255, 0.2)`) +- Surface Subtle: White 3% (`rgba(255, 255, 255, 0.03)`) +- Surface Hover: White 8% (`rgba(255, 255, 255, 0.08)`) +- Focus Ring: Blue (`rgb(59, 130, 246)` at 50% opacity) +- Button Primary BG: White (`#ffffff`), text Dark (`#1f2228`) + +### Example Component Prompts +- "Create a hero section on #1f2228 background. Headline in GeistMono at 72px weight 300, color #ffffff, centered. Subtitle in universalSans 18px weight 400, rgba(255,255,255,0.7), max-width 600px centered. Two buttons: primary (white bg, #1f2228 text, 0px radius, GeistMono 14px uppercase, 1.4px letter-spacing, 12px 24px padding) and ghost (transparent bg, 1px solid rgba(255,255,255,0.2), white text, same font treatment)." +- "Design a card: transparent or rgba(255,255,255,0.03) background, 1px solid rgba(255,255,255,0.1) border, 0px radius, 24px padding. No shadow. Title in universalSans 22px weight 400, #ffffff. Body in universalSans 16px weight 400, rgba(255,255,255,0.7), line-height 1.5. Hover: border changes to rgba(255,255,255,0.2)." +- "Build navigation: #1f2228 background, full-width. Brand text left (GeistMono 14px uppercase). Links in universalSans 14px #ffffff with hover to rgba(255,255,255,0.5). White primary button right-aligned (GeistMono 14px uppercase, 1.4px letter-spacing)." +- "Create a form: dark background #1f2228. Label in universalSans 14px rgba(255,255,255,0.7). Input with transparent bg, 1px solid rgba(255,255,255,0.2) border, 0px radius, white text 16px universalSans. Focus: blue ring rgb(59,130,246)/0.5. Placeholder: rgba(255,255,255,0.3)." +- "Design a monospace tag/badge: transparent bg, 1px solid rgba(255,255,255,0.2), 0px radius, GeistMono 12px uppercase, 1px letter-spacing, white text, 4px 8px padding." + +### Iteration Guide +1. Always start with `#1f2228` background -- never use pure black or gray backgrounds +2. GeistMono for display and buttons, universalSans for everything else -- never mix these roles +3. All buttons must be GeistMono uppercase with 1.4px letter-spacing -- this is non-negotiable +4. No shadows, ever -- depth comes from border opacity and background opacity only +5. Borders are always white with low opacity (0.1 default, 0.2 for emphasis) +6. Hover behavior dims to 0.5 opacity rather than brightening -- the reverse of most systems +7. Sharp corners (0px) by default -- only use 4px for specific secondary containers +8. Body text at 16px universalSans with 1.5 line-height for comfortable reading +9. Generous section padding (48px-96px) -- let content breathe in the darkness +10. The monochromatic white-on-dark palette is absolute -- resist adding color unless critical for function diff --git a/design-md/x.ai/README.md b/design-md/x.ai/README.md new file mode 100644 index 0000000..a99ae5f --- /dev/null +++ b/design-md/x.ai/README.md @@ -0,0 +1,25 @@ +# X.ai — Design System + +> Design.md extracted from the public [x.ai](https://x.ai.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 X.ai 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 +![X.ai Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/x.ai/preview-dark-screenshot.png) + +### Light Mode +![X.ai Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/x.ai/preview-screenshot.png) diff --git a/design-md/x.ai/preview-dark.html b/design-md/x.ai/preview-dark.html new file mode 100644 index 0000000..682cf62 --- /dev/null +++ b/design-md/x.ai/preview-dark.html @@ -0,0 +1,358 @@ + + + + + +Design System Preview: xAI (Dark) + + + + + + + + +
Dark Mode
+ +
+

Design System Inspired by xAI

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value -- visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Dark Background
#1f2228
Page background
+
Pure White
#ffffff
Text, foreground
+
+ +
Text Opacity Scale
+
+
Text Primary
rgba(255,255,255,1)
Headings, labels
+
Text Secondary
rgba(255,255,255,0.7)
Descriptions
+
Text Muted
rgba(255,255,255,0.5)
Hover state, placeholders
+
Text Disabled
rgba(255,255,255,0.3)
Disabled states
+
+ +
Border & Surface
+
+
Border Default
rgba(255,255,255,0.1)
Cards, dividers
+
Border Strong
rgba(255,255,255,0.2)
Active, buttons
+
Surface Subtle
rgba(255,255,255,0.03)
Card backgrounds
+
Surface Hover
rgba(255,255,255,0.08)
Hover surfaces
+
+ +
Functional
+
+
Focus Ring
rgb(59, 130, 246)
Keyboard focus
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 320px (shown at 72px) / GeistMono / 300 / 1.50
+
Section Heading
Section Heading -- 30px / universalSans / 400 / 1.20
+
Body text -- xAI is a company working on building artificial intelligence to accelerate human scientific discovery.
Body -- 16px / universalSans / 400 / 1.50
+
Button Label
Button -- 14px / GeistMono / 400 / uppercase / 1.4px tracking
+
Label / Caption text for supporting information
Label -- 14px / universalSans / 400 / 1.50
+
Small meta text, timestamps, footnotes
Small -- 12px / universalSans / 400 / 1.50
+
MONOSPACE TAG
Tag -- 12px / GeistMono / uppercase / 1px tracking
+
+ +
+ +
+ +

Button Variants

+
+ +
LEARN MORE
Ghost / Outlined
+
Text Link
Text Link
+
API v2
Mono Tag
+
+
+ +
+ +
+ +

Card Examples

+
+
+
MODEL
+

Grok

+

An AI assistant built to be maximally helpful. Grok has real-time knowledge, a conversational style, and handles complex reasoning tasks.

+
+
+
RESEARCH
+

Understanding AI

+

Advancing fundamental research in artificial intelligence. Card shown with stronger border for elevated emphasis.

+
+
+
API
+

Developer Access

+

Build with Grok through the xAI API. Enterprise-grade performance with straightforward integration.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (blue ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
4
+
8
+
24
+
48
+
+

Base unit: 8px. Scale is deliberately sparse -- large jumps create clear hierarchy through whitespace.

+
+ +
+ +
+ +

Border Radius

+
+
0px
Primary (buttons, cards)
+
4px
Secondary containers
+
+
+ +
+ +
+ +

Elevation (No Shadows)

+
+
Level 0: Flat
No border, no shadow
+
Level 1: Surface
Subtle bg (0.03 opacity)
+
Level 2: Bordered
0.1 opacity border
+
Level 3: Active
0.2 opacity border
+
Focus
Blue focus ring
+
+

xAI uses no box-shadows. Depth is communicated through border opacity and background opacity only.

+
+ + + + + diff --git a/design-md/x.ai/preview.html b/design-md/x.ai/preview.html new file mode 100644 index 0000000..d9631ca --- /dev/null +++ b/design-md/x.ai/preview.html @@ -0,0 +1,409 @@ + + + + + +Design System Preview: xAI (Light) + + + + + + + + + +
+

Design System Inspired by xAI

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value -- visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Dark Background
#1f2228
Page background
+
Pure White
#ffffff
Text, foreground
+
+ +
Text Opacity Scale
+
+
Text Primary
rgba(255,255,255,1)
Headings, labels
+
Text Secondary
rgba(255,255,255,0.7)
Descriptions
+
Text Muted
rgba(255,255,255,0.5)
Hover state, placeholders
+
Text Disabled
rgba(255,255,255,0.3)
Disabled states
+
+ +
Border & Surface
+
+
Border Default
rgba(255,255,255,0.1)
Cards, dividers
+
Border Strong
rgba(255,255,255,0.2)
Active, buttons
+
Surface Subtle
rgba(255,255,255,0.03)
Card backgrounds
+
Surface Hover
rgba(255,255,255,0.08)
Hover surfaces
+
+ +
Functional
+
+
Focus Ring
rgb(59, 130, 246)
Keyboard focus
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero -- 320px (shown at 72px) / GeistMono / 300 / 1.50
+
Section Heading
Section Heading -- 30px / universalSans / 400 / 1.20
+
Body text -- xAI is a company working on building artificial intelligence to accelerate human scientific discovery.
Body -- 16px / universalSans / 400 / 1.50
+
Button Label
Button -- 14px / GeistMono / 400 / uppercase / 1.4px tracking
+
Label / Caption text for supporting information
Label -- 14px / universalSans / 400 / 1.50
+
Small meta text, timestamps, footnotes
Small -- 12px / universalSans / 400 / 1.50
+
MONOSPACE TAG
Tag -- 12px / GeistMono / uppercase / 1px tracking
+
+ +
+ +
+ +

Button Variants

+
+ +
LEARN MORE
Ghost / Outlined
+
Text Link
Text Link
+
API v2
Mono Tag
+
+
+ +
+ +
+ +

Card Examples

+
+
+
MODEL
+

Grok

+

An AI assistant built to be maximally helpful. Grok has real-time knowledge, a conversational style, and handles complex reasoning tasks.

+
+
+
RESEARCH
+

Understanding AI

+

Advancing fundamental research in artificial intelligence. Card shown with stronger border for elevated emphasis.

+
+
+
API
+

Developer Access

+

Build with Grok through the xAI API. Enterprise-grade performance with straightforward integration.

+
+
+
+ +
+ + +
+
+ +

Monospace at Scale

+

xAI's dark-first design uses GeistMono at extreme display sizes. This section shows components in their native dark context -- the true home of the xAI design system.

+ +
+
+

Real-time Knowledge

+

Access to live information through direct integration with real-time data sources.

+
+
+

Complex Reasoning

+

Advanced chain-of-thought capabilities for multi-step problem solving.

+
+
+

Enterprise Scale

+

Production-ready infrastructure with high throughput and low latency.

+
+
+
+
+ +
+ +
+ +

Form Elements

+
Default
+
Focus (blue ring)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
4
+
8
+
24
+
48
+
+

Base unit: 8px. Scale is deliberately sparse -- large jumps create clear hierarchy through whitespace.

+
+ +
+ +
+ +

Border Radius

+
+
0px
Primary (buttons, cards)
+
4px
Secondary containers
+
+
+ +
+ +
+ +

Elevation (No Shadows)

+
+
Level 0: Flat
No border, no shadow
+
Level 1: Surface
Subtle bg (0.03 opacity)
+
Level 2: Bordered
0.1 opacity border
+
Level 3: Active
0.2 opacity border
+
Focus
Blue focus ring
+
+

xAI uses no box-shadows. Depth is communicated through border opacity and background opacity only.

+
+ + + + + diff --git a/design-md/zapier/DESIGN.md b/design-md/zapier/DESIGN.md new file mode 100644 index 0000000..aa46d49 --- /dev/null +++ b/design-md/zapier/DESIGN.md @@ -0,0 +1,328 @@ +# Design System: Zapier + +## 1. Visual Theme & Atmosphere + +Zapier's website radiates warm, approachable professionalism. It rejects the cold monochrome minimalism of developer tools in favor of a cream-tinted canvas (`#fffefb`) that feels like unbleached paper -- the digital equivalent of a well-organized notebook. The near-black (`#201515`) text has a faint reddish-brown warmth, creating an atmosphere more human than mechanical. This is automation designed to feel effortless, not technical. + +The typographic system is a deliberate interplay of two distinct personalities. **Degular Display** -- a geometric, wide-set display face -- handles hero-scale headlines at 56-80px with medium weight (500) and extraordinarily tight line-heights (0.90), creating headlines that compress vertically like stacked blocks. **Inter** serves as the workhorse for everything else, from section headings to body text and navigation, with fallbacks to Helvetica and Arial. **GT Alpina**, an elegant thin-weight serif with aggressive negative letter-spacing (-1.6px to -1.92px), makes occasional appearances for softer editorial moments. This three-font system gives Zapier the ability to shift register -- from bold and punchy (Degular) to clean and functional (Inter) to refined and literary (GT Alpina). + +The brand's signature orange (`#ff4f00`) is unmistakable -- a vivid, saturated red-orange that sits precisely between traffic-cone urgency and sunset warmth. It's used sparingly but decisively: primary CTA buttons, active state underlines, and accent borders. Against the warm cream background, this orange creates a color relationship that feels energetic without being aggressive. + +**Key Characteristics:** +- Warm cream canvas (`#fffefb`) instead of pure white -- organic, paper-like warmth +- Near-black with reddish undertone (`#201515`) -- text that breathes rather than dominates +- Degular Display for hero headlines at 0.90 line-height -- compressed, impactful, modern +- Inter as the universal UI font across all functional typography +- GT Alpina for editorial accents -- thin-weight serif with extreme negative tracking +- Zapier Orange (`#ff4f00`) as the single accent -- vivid, warm, sparingly applied +- Warm neutral palette: borders (`#c5c0b1`), muted text (`#939084`), surface tints (`#eceae3`) +- 8px base spacing system with generous padding on CTAs (20px 24px) +- Border-forward design: `1px solid` borders in warm grays define structure over shadows + +## 2. Color Palette & Roles + +### Primary +- **Zapier Black** (`#201515`): Primary text, headings, dark button backgrounds. A warm near-black with reddish undertones -- never cold. +- **Cream White** (`#fffefb`): Page background, card surfaces, light button fills. Not pure white; the yellowish warmth is intentional. +- **Off-White** (`#fffdf9`): Secondary background surface, subtle alternate tint. Nearly indistinguishable from cream white but creates depth. + +### Brand Accent +- **Zapier Orange** (`#ff4f00`): Primary CTA buttons, active underline indicators, accent borders. The signature color -- vivid and warm. + +### Neutral Scale +- **Dark Charcoal** (`#36342e`): Secondary text, footer text, border color for strong dividers. A warm dark gray-brown with 70% opacity variant. +- **Warm Gray** (`#939084`): Tertiary text, muted labels, timestamp-style content. Mid-range with greenish-warm undertone. +- **Sand** (`#c5c0b1`): Primary border color, hover state backgrounds, divider lines. The backbone of Zapier's structural elements. +- **Light Sand** (`#eceae3`): Secondary button backgrounds, light borders, subtle card surfaces. +- **Mid Warm** (`#b5b2aa`): Alternate border tone, used on specific span elements. + +### Interactive +- **Orange CTA** (`#ff4f00`): Primary action buttons and active tab underlines. +- **Dark CTA** (`#201515`): Secondary dark buttons with sand hover state. +- **Light CTA** (`#eceae3`): Tertiary/ghost buttons with sand hover. +- **Link Default** (`#201515`): Standard link color, matching body text. +- **Hover Underline**: Links remove `text-decoration: underline` on hover (inverse pattern). + +### Overlay & Surface +- **Semi-transparent Dark** (`rgba(45, 45, 46, 0.5)`): Overlay button variant, backdrop-like elements. +- **Pill Surface** (`#fffefb`): White pill buttons with sand borders. + +### Shadows & Depth +- **Inset Underline** (`rgb(255, 79, 0) 0px -4px 0px 0px inset`): Active tab indicator -- orange underline using inset box-shadow. +- **Hover Underline** (`rgb(197, 192, 177) 0px -4px 0px 0px inset`): Inactive tab hover -- sand-colored underline. + +## 3. Typography Rules + +### Font Families +- **Display**: `Degular Display` -- wide geometric display face for hero headlines +- **Primary**: `Inter`, with fallbacks: `Helvetica, Arial` +- **Editorial**: `GT Alpina` -- thin-weight serif for editorial moments +- **System**: `Arial` -- fallback for form elements and system UI + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Hero XL | Degular Display | 80px (5.00rem) | 500 | 0.90 (tight) | normal | Maximum impact, compressed block | +| Display Hero | Degular Display | 56px (3.50rem) | 500 | 0.90-1.10 (tight) | 0-1.12px | Primary hero headlines | +| Display Hero SM | Degular Display | 40px (2.50rem) | 500 | 0.90 (tight) | normal | Smaller hero variant | +| Display Button | Degular Display | 24px (1.50rem) | 600 | 1.00 (tight) | 1px | Large CTA button text | +| Section Heading | Inter | 48px (3.00rem) | 500 | 1.04 (tight) | normal | Major section titles | +| Editorial Heading | GT Alpina | 48px (3.00rem) | 250 | normal | -1.92px | Thin editorial headlines | +| Editorial Sub | GT Alpina | 40px (2.50rem) | 300 | 1.08 (tight) | -1.6px | Editorial subheadings | +| Sub-heading LG | Inter | 36px (2.25rem) | 500 | normal | -1px | Large sub-sections | +| Sub-heading | Inter | 32px (2.00rem) | 400 | 1.25 (tight) | normal | Standard sub-sections | +| Sub-heading MD | Inter | 28px (1.75rem) | 500 | normal | normal | Medium sub-headings | +| Card Title | Inter | 24px (1.50rem) | 600 | normal | -0.48px | Card headings | +| Body Large | Inter | 20px (1.25rem) | 400-500 | 1.00-1.20 (tight) | -0.2px | Feature descriptions | +| Body Emphasis | Inter | 18px (1.13rem) | 600 | 1.00 (tight) | normal | Emphasized body text | +| Body | Inter | 16px (1.00rem) | 400-500 | 1.20-1.25 | -0.16px | Standard reading text | +| Body Semibold | Inter | 16px (1.00rem) | 600 | 1.16 (tight) | normal | Strong labels | +| Button | Inter | 16px (1.00rem) | 600 | normal | normal | Standard buttons | +| Button SM | Inter | 14px (0.88rem) | 600 | normal | normal | Small buttons | +| Caption | Inter | 14px (0.88rem) | 500 | 1.25-1.43 | normal | Labels, metadata | +| Caption Upper | Inter | 14px (0.88rem) | 600 | normal | 0.5px | Uppercase section labels | +| Micro | Inter | 12px (0.75rem) | 600 | 0.90-1.33 | 0.5px | Tiny labels, often uppercase | +| Micro SM | Inter | 13px (0.81rem) | 500 | 1.00-1.54 | normal | Small metadata text | + +### Principles +- **Three-font system, clear roles**: Degular Display commands attention at hero scale only. Inter handles everything functional. GT Alpina adds editorial warmth sparingly. +- **Compressed display**: Degular at 0.90 line-height creates vertically compressed headline blocks that feel modern and architectural. +- **Weight as hierarchy signal**: Inter uses 400 (reading), 500 (navigation/emphasis), 600 (headings/CTAs). Degular uses 500 (display) and 600 (buttons). +- **Uppercase for labels**: Section labels (like "01 / Colors") and small categorization use `text-transform: uppercase` with 0.5px letter-spacing. +- **Negative tracking for elegance**: GT Alpina uses -1.6px to -1.92px letter-spacing for its thin-weight editorial headlines. + +## 4. Component Stylings + +### Buttons + +**Primary Orange** +- Background: `#ff4f00` +- Text: `#fffefb` +- Padding: 8px 16px +- Radius: 4px +- Border: `1px solid #ff4f00` +- Use: Primary CTA ("Start free with email", "Sign up free") + +**Primary Dark** +- Background: `#201515` +- Text: `#fffefb` +- Padding: 20px 24px +- Radius: 8px +- Border: `1px solid #201515` +- Hover: background shifts to `#c5c0b1`, text to `#201515` +- Use: Large secondary CTA buttons + +**Light / Ghost** +- Background: `#eceae3` +- Text: `#36342e` +- Padding: 20px 24px +- Radius: 8px +- Border: `1px solid #c5c0b1` +- Hover: background shifts to `#c5c0b1`, text to `#201515` +- Use: Tertiary actions, filter buttons + +**Pill Button** +- Background: `#fffefb` +- Text: `#36342e` +- Padding: 0px 16px +- Radius: 20px +- Border: `1px solid #c5c0b1` +- Use: Tag-like selections, filter pills + +**Overlay Semi-transparent** +- Background: `rgba(45, 45, 46, 0.5)` +- Text: `#fffefb` +- Radius: 20px +- Hover: background becomes fully opaque `#2d2d2e` +- Use: Video play buttons, floating actions + +**Tab / Navigation (Inset Shadow)** +- Background: transparent +- Text: `#201515` +- Padding: 12px 16px +- Shadow: `rgb(255, 79, 0) 0px -4px 0px 0px inset` (active orange underline) +- Hover shadow: `rgb(197, 192, 177) 0px -4px 0px 0px inset` (sand underline) +- Use: Horizontal tab navigation + +### Cards & Containers +- Background: `#fffefb` +- Border: `1px solid #c5c0b1` (warm sand border) +- Radius: 5px (standard), 8px (featured) +- No shadow elevation by default -- borders define containment +- Hover: subtle border color intensification + +### Inputs & Forms +- Background: `#fffefb` +- Text: `#201515` +- Border: `1px solid #c5c0b1` +- Radius: 5px +- Focus: border color shifts to `#ff4f00` (orange) +- Placeholder: `#939084` + +### Navigation +- Clean horizontal nav on cream background +- Zapier logotype left-aligned, 104x28px +- Links: Inter 16px weight 500, `#201515` text +- CTA: Orange button ("Start free with email") +- Tab navigation uses inset box-shadow underline technique +- Mobile: hamburger collapse + +### Image Treatment +- Product screenshots with `1px solid #c5c0b1` border +- Rounded corners: 5-8px +- Dashboard/workflow screenshots prominent in feature sections +- Light gradient backgrounds behind hero content + +### Distinctive Components + +**Workflow Integration Cards** +- Display connected app icons in pairs +- Arrow or connection indicator between apps +- Sand border containment +- Inter weight 500 for app names + +**Stat Counter** +- Large display number using Inter 48px weight 500 +- Muted description below in `#36342e` +- Used for social proof metrics + +**Social Proof Icons** +- Circular icon buttons: 14px radius +- Sand border: `1px solid #c5c0b1` +- Used for social media follow links in footer + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 1px, 4px, 6px, 8px, 10px, 12px, 16px, 20px, 24px, 32px, 40px, 48px, 56px, 64px, 72px +- CTA buttons use generous padding: 20px 24px for large, 8px 16px for standard +- Section padding: 64px-80px vertical + +### Grid & Container +- Max content width: approximately 1200px +- Hero: centered single-column with large top padding +- Feature sections: 2-3 column grids for integration cards +- Full-width sand-bordered dividers between sections +- Footer: multi-column dark background (`#201515`) + +### Whitespace Philosophy +- **Warm breathing room**: Generous vertical spacing between sections (64px-80px), but content areas are relatively dense -- Zapier packs information efficiently within its cream canvas. +- **Architectural compression**: Degular Display headlines at 0.90 line-height compress vertically, contrasting with the open spacing around them. +- **Section rhythm**: Cream background throughout, with sections separated by sand-colored borders rather than background color changes. + +### Border Radius Scale +- Tight (3px): Small inline spans +- Standard (4px): Buttons (orange CTA), tags, small elements +- Content (5px): Cards, links, general containers +- Comfortable (8px): Featured cards, large buttons, tabs +- Social (14px): Social icon buttons, pill-like elements +- Pill (20px): Play buttons, large pill buttons, floating actions + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow | Page background, text blocks | +| Bordered (Level 1) | `1px solid #c5c0b1` | Standard cards, containers, inputs | +| Strong Border (Level 1b) | `1px solid #36342e` | Dark dividers, emphasized sections | +| Active Tab (Level 2) | `rgb(255, 79, 0) 0px -4px 0px 0px inset` | Active tab underline (orange) | +| Hover Tab (Level 2b) | `rgb(197, 192, 177) 0px -4px 0px 0px inset` | Hover tab underline (sand) | +| Focus (Accessibility) | `1px solid #ff4f00` outline | Focus ring on interactive elements | + +**Shadow Philosophy**: Zapier deliberately avoids traditional shadow-based elevation. Structure is defined almost entirely through borders -- warm sand (`#c5c0b1`) borders for standard containment, dark charcoal (`#36342e`) borders for emphasis. The only shadow-like technique is the inset box-shadow used for tab underlines, where a `0px -4px 0px 0px inset` shadow creates a bottom-bar indicator. This border-first approach keeps the design grounded and tangible rather than floating. + +### Decorative Depth +- Orange inset underline on active tabs creates visual "weight" at the bottom of elements +- Sand hover underlines provide preview states without layout shifts +- No background gradients in main content -- the cream canvas is consistent +- Footer uses full dark background (`#201515`) for contrast reversal + +## 7. Do's and Don'ts + +### Do +- Use Degular Display exclusively for hero-scale headlines (40px+) with 0.90 line-height for compressed impact +- Use Inter for all functional UI -- navigation, body text, buttons, labels +- Apply warm cream (`#fffefb`) as the background, never pure white +- Use `#201515` for text, never pure black -- the reddish warmth matters +- Keep Zapier Orange (`#ff4f00`) reserved for primary CTAs and active state indicators +- Use sand (`#c5c0b1`) borders as the primary structural element instead of shadows +- Apply generous button padding (20px 24px) for large CTAs to match Zapier's spacious button style +- Use inset box-shadow underlines for tab navigation rather than border-bottom +- Apply uppercase with 0.5px letter-spacing for section labels and micro-categorization + +### Don't +- Don't use Degular Display for body text or UI elements -- it's display-only +- Don't use pure white (`#ffffff`) or pure black (`#000000`) -- Zapier's palette is warm-shifted +- Don't apply box-shadow elevation to cards -- use borders instead +- Don't scatter Zapier Orange across the UI -- it's reserved for CTAs and active states +- Don't use tight padding on large CTA buttons -- Zapier's buttons are deliberately spacious +- Don't ignore the warm neutral system -- borders should be `#c5c0b1`, not gray +- Don't use GT Alpina for functional UI -- it's an editorial accent at thin weights only +- Don't apply positive letter-spacing to GT Alpina -- it uses aggressive negative tracking (-1.6px to -1.92px) +- Don't use rounded pill shapes (9999px) for primary buttons -- pills are for tags and social icons + +## 8. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile Small | <450px | Tight single column, reduced hero text | +| Mobile | 450-600px | Standard mobile, stacked layout | +| Mobile Large | 600-640px | Slight horizontal breathing room | +| Tablet Small | 640-680px | 2-column grids begin | +| Tablet | 680-768px | Card grids expand | +| Tablet Large | 768-991px | Full card grids, expanded padding | +| Desktop Small | 991-1024px | Desktop layout initiates | +| Desktop | 1024-1280px | Full layout, maximum content width | +| Large Desktop | >1280px | Centered with generous margins | + +### Touch Targets +- Large CTA buttons: 20px 24px padding (comfortable 60px+ height) +- Standard buttons: 8px 16px padding +- Navigation links: 16px weight 500 with adequate spacing +- Social icons: 14px radius circular buttons +- Tab items: 12px 16px padding + +### Collapsing Strategy +- Hero: Degular 80px display scales to 40-56px on smaller screens +- Navigation: horizontal links + CTA collapse to hamburger menu +- Feature cards: 3-column grid to 2-column to single-column stacked +- Integration workflow illustrations: maintain aspect ratio, may simplify +- Footer: multi-column dark section collapses to stacked +- Section spacing: 64-80px reduces to 40-48px on mobile + +### Image Behavior +- Product screenshots maintain sand border treatment at all sizes +- Integration app icons maintain fixed sizes within responsive containers +- Hero illustrations scale proportionally +- Full-width sections maintain edge-to-edge treatment + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA: Zapier Orange (`#ff4f00`) +- Background: Cream White (`#fffefb`) +- Heading text: Zapier Black (`#201515`) +- Body text: Dark Charcoal (`#36342e`) +- Border: Sand (`#c5c0b1`) +- Secondary surface: Light Sand (`#eceae3`) +- Muted text: Warm Gray (`#939084`) + +### Example Component Prompts +- "Create a hero section on cream background (`#fffefb`). Headline at 56px Degular Display weight 500, line-height 0.90, color `#201515`. Subtitle at 20px Inter weight 400, line-height 1.20, color `#36342e`. Orange CTA button (`#ff4f00`, 4px radius, 8px 16px padding, white text) and dark button (`#201515`, 8px radius, 20px 24px padding, white text)." +- "Design a card: cream background (`#fffefb`), `1px solid #c5c0b1` border, 5px radius. Title at 24px Inter weight 600, letter-spacing -0.48px, `#201515`. Body at 16px weight 400, `#36342e`. No box-shadow." +- "Build a tab navigation: transparent background. Inter 16px weight 500, `#201515` text. Active tab: `box-shadow: rgb(255, 79, 0) 0px -4px 0px 0px inset`. Hover: `box-shadow: rgb(197, 192, 177) 0px -4px 0px 0px inset`. Padding 12px 16px." +- "Create navigation: cream sticky header (`#fffefb`). Inter 16px weight 500 for links, `#201515` text. Orange pill CTA 'Start free with email' right-aligned (`#ff4f00`, 4px radius, 8px 16px padding)." +- "Design a footer with dark background (`#201515`). Text `#fffefb`. Links in `#c5c0b1` with hover to `#fffefb`. Multi-column layout. Social icons as 14px-radius circles with sand borders." + +### Iteration Guide +1. Always use warm cream (`#fffefb`) background, never pure white -- the warmth defines Zapier +2. Borders (`1px solid #c5c0b1`) are the structural backbone -- avoid shadow elevation +3. Zapier Orange (`#ff4f00`) is the only accent color; everything else is warm neutrals +4. Three fonts, strict roles: Degular Display (hero), Inter (UI), GT Alpina (editorial) +5. Large CTA buttons need generous padding (20px 24px) -- Zapier buttons feel spacious +6. Tab navigation uses inset box-shadow underlines, not border-bottom +7. Text is always warm: `#201515` for dark, `#36342e` for body, `#939084` for muted +8. Uppercase labels at 12-14px with 0.5px letter-spacing for section categorization diff --git a/design-md/zapier/README.md b/design-md/zapier/README.md new file mode 100644 index 0000000..5841ed8 --- /dev/null +++ b/design-md/zapier/README.md @@ -0,0 +1,25 @@ +# Zapier — Design System + +> Design.md extracted from the public [zapier](https://zapier.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 Zapier 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 +![Zapier Design System — Dark Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/zapier/preview-dark-screenshot.png) + +### Light Mode +![Zapier Design System — Light Mode](https://pub-2e4ecbcbc9b24e7b93f1a6ab5b2bc71f.r2.dev/designs/zapier/preview-screenshot.png) diff --git a/design-md/zapier/preview-dark.html b/design-md/zapier/preview-dark.html new file mode 100644 index 0000000..8808b03 --- /dev/null +++ b/design-md/zapier/preview-dark.html @@ -0,0 +1,382 @@ + + + + + +Design System Preview: Zapier (Dark) + + + + + + + + +
Dark Mode
+ +
+

Design System
Inspired by Zapier

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Zapier Black
#201515
Primary text, headings
+
Cream White
#fffefb
Page background
+
Off White
#fffdf9
Secondary surface
+
+ +
Brand Accent
+
+
Zapier Orange
#ff4f00
Primary CTA, active states
+
+ +
Neutral Scale
+
+
Dark Charcoal
#36342e
Secondary text, borders
+
Warm Gray
#939084
Muted text, labels
+
Sand
#c5c0b1
Borders, dividers
+
Mid Warm
#b5b2aa
Alternate borders
+
Light Sand
#eceae3
Ghost button bg, surfaces
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero — 56px / 500 / 0.90 / Degular Display
+
Display Hero SM
Display Hero SM — 40px / 500 / 0.90 / Degular Display
+
Section Heading
Section Heading — 48px / 500 / 1.04 / Inter
+
Sub-heading Large
Sub-heading LG — 36px / 500 / normal / -1px / Inter
+
Card Title
Card Title — 24px / 600 / normal / -0.48px / Inter
+
Body Large — Automate your work across thousands of app integrations. Build powerful workflows in minutes.
Body Large — 20px / 400 / 1.40 / -0.2px / Inter
+
Body Emphasis
Body Emphasis — 18px / 600 / 1.00 / Inter
+
Body Medium — Navigation and interface text
Body Medium — 16px / 500 / 1.25 / Inter
+
Body Semibold — Active states
Body Semibold — 16px / 600 / 1.16 / Inter
+
Button Label
Button — 14px / 600 / normal / Inter
+
Caption — Labels and metadata
Caption — 14px / 500 / 1.43 / Inter
+
SECTION LABEL
Caption Upper — 14px / 600 / uppercase / 0.5px / Inter
+
MICRO LABEL
Micro — 12px / 600 / uppercase / 0.5px / Inter
+
+ +
+ +
+ +

Button Variants

+
+
Start Free
Primary Orange
+
Get Started
Dark CTA
+
Learn More
Ghost / Light
+ +
Play Video
Overlay
+
+ + +
+
Overview
+
Integrations
+
Pricing
+
Enterprise
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Integration
+

Connect Your Apps

+

Link your favorite tools and automate workflows between them. No code required, set up in minutes.

+
+
+
Featured
+

AI Automation

+

Build intelligent workflows with AI-powered actions. Transform, summarize, and route data automatically.

+
+
+
Workflow
+

Multi-step Zaps

+

Chain multiple actions together for complex automations. Trigger once, automate everything downstream.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default (sand border)
+
Focus (orange border)
+
Error (red border)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
4
+
8
+
12
+
16
+
20
+
24
+
32
+
40
+
48
+
64
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
3px
Spans
+
4px
Buttons
+
5px
Cards
+
8px
Large buttons
+
14px
Social icons
+
20px
Pills
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No border emphasis
+
Level 1: Sand Border
1px solid #c5c0b1
+
Level 1b: Strong
1px solid #36342e
+
Level 2: Active Tab
Inset orange underline
+
Level 2b: Hover Tab
Inset sand underline
+
Focus
Orange focus ring
+
+
+ + + + + diff --git a/design-md/zapier/preview.html b/design-md/zapier/preview.html new file mode 100644 index 0000000..bbb95e3 --- /dev/null +++ b/design-md/zapier/preview.html @@ -0,0 +1,374 @@ + + + + + +Design System Preview: Zapier (Light) + + + + + + + + + +
+

Design System
Inspired by Zapier

+

A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value — visualized.

+ +
+ +
+ +
+ +

Color Palette

+ +
Primary
+
+
Zapier Black
#201515
Primary text, headings
+
Cream White
#fffefb
Page background
+
Off White
#fffdf9
Secondary surface
+
+ +
Brand Accent
+
+
Zapier Orange
#ff4f00
Primary CTA, active states
+
+ +
Neutral Scale
+
+
Dark Charcoal
#36342e
Secondary text, borders
+
Warm Gray
#939084
Muted text, labels
+
Sand
#c5c0b1
Borders, dividers
+
Mid Warm
#b5b2aa
Alternate borders
+
Light Sand
#eceae3
Ghost button bg, surfaces
+
+
+ +
+ +
+ +

Typography Scale

+ +
Display Hero
Display Hero — 56px / 500 / 0.90 / Degular Display
+
Display Hero SM
Display Hero SM — 40px / 500 / 0.90 / Degular Display
+
Section Heading
Section Heading — 48px / 500 / 1.04 / Inter
+
Sub-heading Large
Sub-heading LG — 36px / 500 / normal / -1px / Inter
+
Card Title
Card Title — 24px / 600 / normal / -0.48px / Inter
+
Body Large — Automate your work across thousands of app integrations. Build powerful workflows in minutes.
Body Large — 20px / 400 / 1.40 / -0.2px / Inter
+
Body Emphasis
Body Emphasis — 18px / 600 / 1.00 / Inter
+
Body Medium — Navigation and interface text
Body Medium — 16px / 500 / 1.25 / Inter
+
Body Semibold — Active states
Body Semibold — 16px / 600 / 1.16 / Inter
+
Button Label
Button — 14px / 600 / normal / Inter
+
Caption — Labels and metadata
Caption — 14px / 500 / 1.43 / Inter
+
SECTION LABEL
Caption Upper — 14px / 600 / uppercase / 0.5px / Inter
+
MICRO LABEL
Micro — 12px / 600 / uppercase / 0.5px / Inter
+
+ +
+ +
+ +

Button Variants

+
+
Start Free
Primary Orange
+
Get Started
Dark CTA
+
Learn More
Ghost / Light
+ +
Play Video
Overlay
+
+ + +
+
Overview
+
Integrations
+
Pricing
+
Enterprise
+
+
+ +
+ +
+ +

Card Examples

+
+
+
Integration
+

Connect Your Apps

+

Link your favorite tools and automate workflows between them. No code required, set up in minutes.

+
+
+
Featured
+

AI Automation

+

Build intelligent workflows with AI-powered actions. Transform, summarize, and route data automatically.

+
+
+
Workflow
+

Multi-step Zaps

+

Chain multiple actions together for complex automations. Trigger once, automate everything downstream.

+
+
+
+ +
+ +
+ +

Form Elements

+
Default (sand border)
+
Focus (orange border)
+
Error (red border)
+
+
+ +
+ +
+ +

Spacing Scale

+
+
4
+
8
+
12
+
16
+
20
+
24
+
32
+
40
+
48
+
64
+
+
+ +
+ +
+ +

Border Radius Scale

+
+
3px
Spans
+
4px
Buttons
+
5px
Cards
+
8px
Large buttons
+
14px
Social icons
+
20px
Pills
+
+
+ +
+ +
+ +

Elevation & Depth

+
+
Level 0: Flat
No border emphasis
+
Level 1: Sand Border
1px solid #c5c0b1
+
Level 1b: Strong
1px solid #36342e
+
Level 2: Active Tab
Inset orange underline
+
Level 2b: Hover Tab
Inset sand underline
+
Focus
Orange focus ring
+
+
+ + + + +