mirror of
https://github.com/nexu-io/open-design.git
synced 2026-06-01 03:14:35 +07:00
feat(design-systems): add new design systems for Agentic, Airtable, Ant, Apple, Application, Arc, and Artistic
- Introduced comprehensive design documentation and JSON configurations for multiple design systems, including Agentic, Airtable, Ant, Apple, Application, Arc, and Artistic. - Each design system includes detailed guidelines on visual themes, color palettes, typography, spacing, layout, components, and interaction principles. - Enhanced the overall design framework to support diverse user interfaces and improve consistency across applications. This update significantly enriches the design resources available for developers, enabling them to create visually cohesive and user-friendly applications.
This commit is contained in:
parent
5af84c09af
commit
c12c816a44
858 changed files with 159619 additions and 0 deletions
71
plugins/_official/design-systems/agentic/DESIGN.md
Normal file
71
plugins/_official/design-systems/agentic/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Agentic
|
||||
|
||||
> Category: Themed & Unique
|
||||
> Conversational AI-first interface with minimal controls, clear outcomes, and delegated task flows for agentic workflows.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Conversational AI-first interface with minimal controls, clear outcomes, and delegated task flows for agentic workflows.
|
||||
|
||||
- **Visual style:** modern, bold
|
||||
- **Color stance:** surface/subtle layers
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#FF5701` — Token from style foundations.
|
||||
- **Secondary:** `#F6F6F1` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#FF5701) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 14/16/18/24/32/40
|
||||
- **Families:** primary=Playfair Display, display=Playfair Display, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 8pt baseline grid
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#FF5701`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#FF5701) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/agentic/open-design.json
Normal file
68
plugins/_official/design-systems/agentic/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-agentic",
|
||||
"title": "Agentic",
|
||||
"version": "0.1.0",
|
||||
"description": "Conversational AI-first interface with minimal controls, clear outcomes, and delegated task flows for agentic workflows.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"themed-unique"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Agentic design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "agentic",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
92
plugins/_official/design-systems/airtable/DESIGN.md
Normal file
92
plugins/_official/design-systems/airtable/DESIGN.md
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
# Design System Inspired by Airtable
|
||||
|
||||
> Category: Design & Creative
|
||||
> Spreadsheet-database hybrid. Colorful, friendly, structured data aesthetic.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Airtable's website is a clean, enterprise-friendly platform that communicates "sophisticated simplicity" through a white canvas with deep navy text (`#181d26`) and Airtable Blue (`#1b61c9`) as the primary interactive accent. The Haas font family (display + text variants) creates a Swiss-precision typography system with positive letter-spacing throughout.
|
||||
|
||||
**Key Characteristics:**
|
||||
- White canvas with deep navy text (`#181d26`)
|
||||
- Airtable Blue (`#1b61c9`) as primary CTA and link color
|
||||
- Haas + Haas Groot Disp dual font system
|
||||
- Positive letter-spacing on body text (0.08px–0.28px)
|
||||
- 12px radius buttons, 16px–32px for cards
|
||||
- Multi-layer blue-tinted shadow: `rgba(45,127,249,0.28) 0px 1px 3px`
|
||||
- Semantic theme tokens: `--theme_*` CSS variable naming
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Deep Navy** (`#181d26`): Primary text
|
||||
- **Airtable Blue** (`#1b61c9`): CTA buttons, links
|
||||
- **White** (`#ffffff`): Primary surface
|
||||
- **Spotlight** (`rgba(249,252,255,0.97)`): `--theme_button-text-spotlight`
|
||||
|
||||
### Semantic
|
||||
- **Success Green** (`#006400`): `--theme_success-text`
|
||||
- **Weak Text** (`rgba(4,14,32,0.69)`): `--theme_text-weak`
|
||||
- **Secondary Active** (`rgba(7,12,20,0.82)`): `--theme_button-text-secondary-active`
|
||||
|
||||
### Neutral
|
||||
- **Dark Gray** (`#333333`): Secondary text
|
||||
- **Mid Blue** (`#254fad`): Link/accent blue variant
|
||||
- **Border** (`#e0e2e6`): Card borders
|
||||
- **Light Surface** (`#f8fafc`): Subtle surface
|
||||
|
||||
### Shadows
|
||||
- **Blue-tinted** (`rgba(0,0,0,0.32) 0px 0px 1px, rgba(0,0,0,0.08) 0px 0px 2px, rgba(45,127,249,0.28) 0px 1px 3px, rgba(0,0,0,0.06) 0px 0px 0px 0.5px inset`)
|
||||
- **Soft** (`rgba(15,48,106,0.05) 0px 0px 20px`)
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Families
|
||||
- **Primary**: `Haas`, fallbacks: `-apple-system, system-ui, Segoe UI, Roboto`
|
||||
- **Display**: `Haas Groot Disp`, fallback: `Haas`
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing |
|
||||
|------|------|------|--------|-------------|----------------|
|
||||
| Display Hero | Haas | 48px | 400 | 1.15 | normal |
|
||||
| Display Bold | Haas Groot Disp | 48px | 900 | 1.50 | normal |
|
||||
| Section Heading | Haas | 40px | 400 | 1.25 | normal |
|
||||
| Sub-heading | Haas | 32px | 400–500 | 1.15–1.25 | normal |
|
||||
| Card Title | Haas | 24px | 400 | 1.20–1.30 | 0.12px |
|
||||
| Feature | Haas | 20px | 400 | 1.25–1.50 | 0.1px |
|
||||
| Body | Haas | 18px | 400 | 1.35 | 0.18px |
|
||||
| Body Medium | Haas | 16px | 500 | 1.30 | 0.08–0.16px |
|
||||
| Button | Haas | 16px | 500 | 1.25–1.30 | 0.08px |
|
||||
| Caption | Haas | 14px | 400–500 | 1.25–1.35 | 0.07–0.28px |
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
- **Primary Blue**: `#1b61c9`, white text, 16px 24px padding, 12px radius
|
||||
- **White**: white bg, `#181d26` text, 12px radius, 1px border white
|
||||
- **Cookie Consent**: `#1b61c9` bg, 2px radius (sharp)
|
||||
|
||||
### Cards: `1px solid #e0e2e6`, 16px–24px radius
|
||||
### Inputs: Standard Haas styling
|
||||
|
||||
## 5. Layout
|
||||
- Spacing: 1–48px (8px base)
|
||||
- Radius: 2px (small), 12px (buttons), 16px (cards), 24px (sections), 32px (large), 50% (circles)
|
||||
|
||||
## 6. Depth
|
||||
- Blue-tinted multi-layer shadow system
|
||||
- Soft ambient: `rgba(15,48,106,0.05) 0px 0px 20px`
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
### Do: Use Airtable Blue for CTAs, Haas with positive tracking, 12px radius buttons
|
||||
### Don't: Skip positive letter-spacing, use heavy shadows
|
||||
|
||||
## 8. Responsive Behavior
|
||||
Breakpoints: 425–1664px (23 breakpoints)
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
- Text: Deep Navy (`#181d26`)
|
||||
- CTA: Airtable Blue (`#1b61c9`)
|
||||
- Background: White (`#ffffff`)
|
||||
- Border: `#e0e2e6`
|
||||
68
plugins/_official/design-systems/airtable/open-design.json
Normal file
68
plugins/_official/design-systems/airtable/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-airtable",
|
||||
"title": "Airtable",
|
||||
"version": "0.1.0",
|
||||
"description": "Spreadsheet-database hybrid. Colorful, friendly, structured data aesthetic.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"design-creative"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Airtable design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "airtable",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/ant/DESIGN.md
Normal file
71
plugins/_official/design-systems/ant/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Ant
|
||||
|
||||
> Category: Professional & Corporate
|
||||
> Structured, enterprise-focused design system emphasizing clarity, consistency, and efficiency for data-dense web applications.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Structured, enterprise-focused design system emphasizing clarity, consistency, and efficiency for data-dense web applications.
|
||||
|
||||
- **Visual style:** data-dense, enterprise
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#1677FF` — Token from style foundations.
|
||||
- **Secondary:** `#8B5CF6` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#1677FF) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32
|
||||
- **Families:** primary=Plus Jakarta Sans, display=Plus Jakarta Sans, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#1677FF`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#1677FF) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/ant/open-design.json
Normal file
68
plugins/_official/design-systems/ant/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-ant",
|
||||
"title": "Ant",
|
||||
"version": "0.1.0",
|
||||
"description": "Structured, enterprise-focused design system emphasizing clarity, consistency, and efficiency for data-dense web applications.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"professional-corporate"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Ant design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "ant",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
250
plugins/_official/design-systems/apple/DESIGN.md
Normal file
250
plugins/_official/design-systems/apple/DESIGN.md
Normal file
|
|
@ -0,0 +1,250 @@
|
|||
# Design System Inspired by Apple
|
||||
|
||||
> Category: Media & Consumer
|
||||
> Consumer electronics. Premium white space, SF Pro, cinematic imagery.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Apple's web language is a precision editorial system that alternates between gallery-like calm and retail-density information blocks. The visual tone stays restrained: broad neutral canvases, quiet chrome, and product imagery given almost all of the expressive weight. The interface is engineered to disappear so hardware, materials, and finish options become the narrative foreground.
|
||||
|
||||
Across the five analyzed pages, the rhythm is consistent but not monolithic. Marketing surfaces (homepage and Environment) use cinematic black-and-light chaptering, while commerce surfaces (Store and Shop flows) introduce tighter spacing, more utility controls, and denser card stacks without breaking the core brand grammar. The result is one system with two gears: showcase mode and transaction mode.
|
||||
|
||||
Typography is the stabilizer. SF Pro Display carries hero and merchandising hierarchy with compact line heights and controlled tracking, while SF Pro Text handles product metadata, navigation, filters, and dense selection UI. The typography stays understated, but the scale range is wide enough to support both billboard hero messaging and micro utility labels.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Binary section rhythm: deep black scenes (`#000000`) alternating with pale neutral fields (`#f5f5f7`)
|
||||
- Single blue accent family for action and link semantics (`#0071e3`, `#0066cc`, `#2997ff`)
|
||||
- Dual operating modes in one system: cinematic showcase modules and dense commerce configurators
|
||||
- Heavy reliance on imagery and material finishes; UI chrome remains visually thin
|
||||
- Tight headline metrics (SF Pro Display, semibold) paired with compact body/link typography (SF Pro Text)
|
||||
- Pill and capsule geometry as signature action language (`18px` to `980px` and circular controls)
|
||||
- Depth used sparingly; contrast and surface separation do most of the layering work
|
||||
- Multi-page color-block rhythm: black hero chapters -> pale neutral merchandising fields -> utility white retail surfaces -> dark micro-surfaces for controls
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
> **Source Pages:** `https://www.apple.com/`, `https://www.apple.com/environment/`, `https://www.apple.com/store`, `https://www.apple.com/shop/buy-iphone/iphone-17-pro`, `https://www.apple.com/shop/accessories/all`
|
||||
|
||||
### Primary
|
||||
- **Absolute Black** (`#000000`): Immersive hero canvases, high-drama product chapters, deep UI anchors.
|
||||
- **Pale Apple Gray** (`#f5f5f7`): Main light surface for feature bands, comparison blocks, and editorial transitions.
|
||||
- **Near-Black Ink** (`#1d1d1f`): Primary text and dark-fill control color on light canvases.
|
||||
|
||||
### Secondary & Accent
|
||||
- **Apple Action Blue** (`#0071e3`): Primary action fill and focus-signaling brand accent.
|
||||
- **Body Link Blue** (`#0066cc`): Inline link color optimized for long-form readability.
|
||||
- **High-Luminance Link Blue** (`#2997ff`): Bright link treatment on darker scenes where stronger contrast is required.
|
||||
|
||||
### Surface & Background
|
||||
- **Pure White Canvas** (`#ffffff`): Retail/product-list backgrounds and dense transactional sections.
|
||||
- **Graphite Surface A** (`#272729`): Dark card and media-control context layer.
|
||||
- **Graphite Surface B** (`#262629`): Slightly deeper dark utility layer for control groupings.
|
||||
- **Graphite Surface C** (`#28282b`): Elevated dark supporting surfaces.
|
||||
- **Graphite Surface D** (`#2a2a2c`): Darkest elevated step used for separation in richer dark scenes.
|
||||
|
||||
### Neutrals & Text
|
||||
- **Secondary Neutral Gray** (`#6e6e73`): Body secondary copy, helper descriptions, tertiary metadata.
|
||||
- **Soft Border Gray** (`#d2d2d7`): Dividers, subtle outlines, and muted utility containment.
|
||||
- **Mid Border Gray** (`#86868b`): Stronger field outlines in product-configuration and filter contexts.
|
||||
- **Utility Dark Gray** (`#424245`): Dark-neutral text/surface crossover in store contexts.
|
||||
|
||||
### Semantic & Accent
|
||||
- **Selection/Focus Signal** (`#0071e3`): Shared focus and selected-state signal across marketing and commerce contexts.
|
||||
- **Error/Warning/Success**: No distinct semantic palette was consistently visible in the extracted surface set.
|
||||
|
||||
### Gradient System
|
||||
- The extracted pages are overwhelmingly solid-surface driven. Visual richness comes from photography and finish rendering rather than persistent UI gradients.
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
- **Display Family:** `SF Pro Display`, fallbacks `SF Pro Icons, Helvetica Neue, Helvetica, Arial, sans-serif`
|
||||
- **Text Family:** `SF Pro Text`, fallbacks `SF Pro Icons, Helvetica Neue, Helvetica, Arial, sans-serif`
|
||||
- **Usage Split:** Display family handles hero/product headlines and merchandising headings; Text family handles navigation, controls, labels, and dense commerce copy.
|
||||
|
||||
### Hierarchy
|
||||
| Role | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|--------|-------------|----------------|-------|
|
||||
| Hero Display XL | 80px | 600 | 1.00-1.05 | -1.2px | Environment/store hero scale |
|
||||
| Hero Display L | 56px | 600 | 1.07 | -0.28px | Homepage hero moments |
|
||||
| Section Display | 48px | 500-600 | 1.08 | -0.144px | Major chapter headings |
|
||||
| Product Heading | 40px | 600 | 1.10 | normal | Product and campaign section titles |
|
||||
| Feature Display | 38px | 600 | 1.21 | 0.152px | Device and merchandising callouts |
|
||||
| Promo Display | 32px | 300-600 | 1.09-1.13 | 0.128px to 0.352px | Module-level sub-heroes |
|
||||
| Card/Product Title | 28px | 600 | 1.14 | 0.196px | Tile-level naming and key copy |
|
||||
| Utility Heading | 24px | 600 | 1.17 | 0.216px / -0.2px | Configurator and grouped content headers |
|
||||
| Link/Action Heading | 21px | 600 | 1.14-1.38 | 0.231px | Larger promotional links |
|
||||
| Subhead | 19px | 600 | 1.21 | 0.228px | Compact section intros |
|
||||
| Body Primary | 17px | 400 | 1.47 | -0.374px | Standard body and retail descriptions |
|
||||
| Body Emphasis | 17px | 600 | 1.24 | -0.374px | Emphasized labels and key values |
|
||||
| Control Label | 14px | 400-600 | 1.29-1.47 | -0.224px | Buttons, helper labels, compact nav text |
|
||||
| Micro UI | 12px | 400-600 | 1.00-1.33 | -0.12px | Fine print, micro labels |
|
||||
| Legal/Meta | 10px | 400 | 1.30-1.47 | -0.08px | Dense metadata and legal support text |
|
||||
|
||||
### Principles
|
||||
- **Continuity across page types:** The same typographic DNA spans cinematic launches and product-purchase flows, preventing a brand split between marketing and commerce.
|
||||
- **Compression at scale:** Display tiers use tight leading and controlled tracking to feel machined and product-first.
|
||||
- **Readable density at retail depth:** SF Pro Text balances compactness with enough vertical rhythm for long product lists and option matrices.
|
||||
- **Measured weight ladder:** 600 is the dominant emphasis weight; 700 appears selectively; 300 is used sparingly for contrast in larger lines.
|
||||
|
||||
### Note on Font Substitutes
|
||||
- Closest freely available substitutes: `Inter` for text-heavy implementation and `SF Pro Display-like` metrics approximated with `Inter Tight` for headings.
|
||||
- When substituting, increase line-height slightly (+0.02 to +0.06) on body sizes and reduce negative tracking intensity to preserve readability.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
- **Primary Fill Action:** `#0071e3` background, `#ffffff` text, 8px radius, compact horizontal padding (commonly 8px 15px). Used for decisive purchase/progression actions.
|
||||
- **Dark Fill Action:** `#1d1d1f` background, `#ffffff` text, 8px radius. Used when light surfaces need a restrained high-contrast primary.
|
||||
- **Pill/Capsule Action Family:** large capsule actions at `18px`-`56px` radii and extreme pill links at `980px`. Establishes Apple’s soft but precise call-to-action silhouette.
|
||||
- **Utility Filter/Button Shells:** light shells (`#fafafc` or translucent white) with subtle gray borders (`#d2d2d7` / `#86868b`) for dense configuration contexts.
|
||||
- **Pressed Behavior:** active controls commonly reduce scale or shift fill slightly to indicate physical press confirmation.
|
||||
|
||||
### Cards & Containers
|
||||
- **Editorial/Product Cards:** light cards on `#f5f5f7` or white fields with minimal framing and image-first composition.
|
||||
- **Dark Utility Cards:** graphite steps (`#272729` to `#2a2a2c`) used for overlays, media controls, and dark-context modules.
|
||||
- **Configurator Panels:** rounded containers (often 12px-18px) with clear but restrained border definition.
|
||||
- **Carousel/Spotlight Modules:** larger rounded shells (`28px`-`36px`) for featured content lanes.
|
||||
|
||||
### Inputs & Forms
|
||||
- **Retail Input Fields:** translucent or white backgrounds, dark text (`#1d1d1f`), border-led containment (`#86868b`).
|
||||
- **Selection Controls:** circular/toggle-like control geometry appears frequently in product selection interfaces.
|
||||
- **Density Strategy:** form fields remain visually quiet to keep device imagery and pricing hierarchy dominant.
|
||||
|
||||
### Navigation
|
||||
- **Global Marketing Nav:** compact dark translucent bar with small-type links and restrained iconography.
|
||||
- **Store/Sub-shop Nav Layers:** additional utility bars, chips, and segmented controls for category and product narrowing.
|
||||
- **Link Hierarchy:** link blues remain the primary interactive signal while neutral text supports dense navigation sets.
|
||||
|
||||
### Image Treatment
|
||||
- **Object-First Photography:** hardware and accessories are foregrounded on controlled solid surfaces.
|
||||
- **High-fidelity finish rendering:** reflective/material details are central to visual persuasion.
|
||||
- **Mixed framing:** full-bleed hero scenes coexist with rounded retail cards and tightly cropped merchandising thumbnails.
|
||||
|
||||
### Other Distinctive Components
|
||||
- **Product Configurator Matrix:** option stacks and selectors combining chips, radio-style controls, and contextual pricing/summary blocks.
|
||||
- **Carousel Control Dots/Arrows:** circular control vocabulary in muted overlays for gallery progression.
|
||||
- **Environment Story Panels:** narrative chapters that blend editorial typography with cinematic product/environment visuals.
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
- Base unit is effectively `8px`, but the system supports dense micro-steps for precision alignment.
|
||||
- Frequently reused spacing values across pages: `2`, `4`, `6`, `7`, `8`, `9`, `10`, `12`, `14`, `17`, `20` px.
|
||||
- Universal rhythm constants visible across both marketing and retail flows: `8px` unit scaffolding with `14-20px` utility intervals for component padding and list spacing.
|
||||
|
||||
### Grid & Container
|
||||
- **Showcase pages:** large central columns with broad horizontal breathing room and full-width color chapters.
|
||||
- **Commerce pages:** tighter multi-column product and control grids with frequent modular stacking.
|
||||
- **Container behavior:** constrained readable core with generous outer margins at desktop widths.
|
||||
|
||||
### Whitespace Philosophy
|
||||
- **Scene pacing:** major visual chapters use broad top/bottom breathing room.
|
||||
- **Information compaction where needed:** retail pages deliberately compress spacing to expose more actionable information per viewport.
|
||||
- **Contrast-led separation:** section transitions rely more on surface changes than decorative separators.
|
||||
|
||||
### Border Radius Scale
|
||||
- **5px:** tiny utility links/tags and minor small shells.
|
||||
- **8px-12px:** standard controls and compact fields.
|
||||
- **16px-18px:** cards, module frames, and commerce panels.
|
||||
- **28px-36px:** larger module and spotlight containers.
|
||||
- **56px / 100px / 980px:** capsules, large pills, and signature elongated CTA forms.
|
||||
- **50%:** circular media and selection controls.
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|------|-----------|-----|
|
||||
| Level 0 | Flat neutral surfaces (`#ffffff`, `#f5f5f7`, `#000000`) | Main narrative and product stages |
|
||||
| Level 1 | Subtle border containment (`#d2d2d7`, `#86868b`) | Filters, input fields, utility cards |
|
||||
| Level 2 | Soft shadow (`rgba(0,0,0,0.08)` to `rgba(0,0,0,0.22)` where present) | Highlighted cards and elevated merchandise modules |
|
||||
| Level 3 | Dark-surface stepping (`#272729` -> `#2a2a2c`) | Overlays, media controls, dark utility clusters |
|
||||
| Accessibility | Blue focus signal (`#0071e3`) | Keyboard and selection emphasis |
|
||||
|
||||
Depth is intentionally restrained. Apple favors tonal contrast, surface stepping, and compositional hierarchy over heavy shadow stacks.
|
||||
|
||||
### Decorative Depth
|
||||
- Decorative depth is primarily created by photographic realism and material rendering, not synthetic UI effects.
|
||||
- Translucent overlays and glass-like utility bars provide mild atmospheric layering in navigation and controls.
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
|
||||
### Do
|
||||
- Use the neutral triad (`#000000`, `#f5f5f7`, `#ffffff`) as the structural foundation.
|
||||
- Reserve blue accents for genuine action and navigation semantics.
|
||||
- Keep typography tight and deliberate, especially at display scales.
|
||||
- Maintain the capsule/circle geometry language for controls and key actions.
|
||||
- Let product imagery carry visual drama; keep chrome understated.
|
||||
- Use border-led containment in dense retail contexts instead of heavy card ornamentation.
|
||||
- Preserve clear separation between showcase modules and transactional modules while keeping core tokens shared.
|
||||
|
||||
### Don't
|
||||
- Don’t introduce broad secondary accent palettes that compete with Apple blue.
|
||||
- Don’t overuse shadows, glow effects, or decorative gradients in core UI chrome.
|
||||
- Don’t mix unrelated font families or loosen tracking indiscriminately.
|
||||
- Don’t flatten all corners to a single radius; Apple uses purposeful radius tiers.
|
||||
- Don’t overload commerce modules with thick borders or loud visual effects.
|
||||
- Don’t remove neutral contrast cadence between dark and light chapters.
|
||||
- Don’t treat marketing and purchase flows as separate design systems.
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
| Name | Width | Key Changes |
|
||||
|------|-------|-------------|
|
||||
| Small Mobile | 374px and below | Tightened retail controls, single-column product stacks |
|
||||
| Mobile | 375px-640px | One-column modules, compact action rows, condensed selectors |
|
||||
| Tablet | 641px-833px | Expanded cards and mixed 1-2 column transitions |
|
||||
| Tablet Wide | 834px-1023px | More stable multi-column merchandising, larger text blocks |
|
||||
| Desktop | 1024px-1240px | Full retail layouts and product comparison structures |
|
||||
| Desktop Wide | 1241px-1440px | Marketing hero expansion and broader section spacing |
|
||||
| Large Desktop | 1441px+ | Maximum chapter breathing room and wide editorial composition |
|
||||
|
||||
### Touch Targets
|
||||
- Primary and secondary actions are generally presented in tap-friendly pill/button geometries.
|
||||
- Circular media and selection controls align with minimum touchable intent in mobile contexts.
|
||||
- Dense commerce UI uses compact labels but maintains clear hit regions via surrounding shape padding.
|
||||
|
||||
### Collapsing Strategy
|
||||
- Marketing hero typography scales down in discrete tiers while preserving hierarchy contrast.
|
||||
- Product and commerce grids collapse from multi-column to stacked cards with persistent selector visibility.
|
||||
- Utility navigation compresses into simpler link/control groupings while preserving key actions.
|
||||
- Option/configuration clusters become vertically sequenced to keep purchase flow linear on small screens.
|
||||
|
||||
### Image Behavior
|
||||
- Product imagery preserves aspect and centrality through breakpoints.
|
||||
- Hero visuals remain dominant on mobile, with text repositioned around media priority.
|
||||
- Retail thumbnails stay legible via tighter crop logic and denser card stacking.
|
||||
- Image-led modules continue to anchor the rhythm as layout density increases.
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- Primary action blue: **Apple Action Blue** (`#0071e3`)
|
||||
- Inline link blue: **Body Link Blue** (`#0066cc`)
|
||||
- Dark chapter canvas: **Absolute Black** (`#000000`)
|
||||
- Light chapter canvas: **Pale Apple Gray** (`#f5f5f7`)
|
||||
- Primary text on light: **Near-Black Ink** (`#1d1d1f`)
|
||||
- Secondary text: **Secondary Neutral Gray** (`#6e6e73`)
|
||||
- Retail border soft: **Soft Border Gray** (`#d2d2d7`)
|
||||
- Retail border strong: **Mid Border Gray** (`#86868b`)
|
||||
|
||||
### Example Component Prompts
|
||||
- "Design an Apple-style product hero on a black canvas (`#000000`) with SF Pro Display semibold headline (48-56px), concise supporting copy, and two capsule CTAs using `#0071e3` and `#1d1d1f`."
|
||||
- "Create a commerce configuration panel on white (`#ffffff`) with 18px rounded cards, `#86868b` border fields, SF Pro Text 17px body copy, and compact option selectors."
|
||||
- "Build a merchandising card grid alternating `#f5f5f7` and white surfaces, with image-first cards, restrained shadows, and 14-17px SF Pro Text metadata."
|
||||
- "Generate a carousel control cluster using circular buttons (50% radius), muted gray overlays, and clear active feedback for gallery navigation."
|
||||
- "Compose a mixed marketing + retail page rhythm: dark showcase chapter -> light feature chapter -> dense product list module while keeping blue accents only for actions and links."
|
||||
|
||||
### Iteration Guide
|
||||
1. Lock the neutral foundation first (`#000000`, `#f5f5f7`, `#ffffff`) before tuning accents.
|
||||
2. Keep blue accents scarce and purposeful; if everything is blue, hierarchy collapses.
|
||||
3. Tune typography in this order: display scale, body readability, then micro labels.
|
||||
4. Match radius by component class (field, card, capsule, circle) rather than one-size-fits-all rounding.
|
||||
5. Increase density gradually when moving from showcase sections to commerce sections.
|
||||
6. Validate that product imagery remains the strongest visual layer after each revision.
|
||||
|
||||
### Known Gaps
|
||||
- Distinct semantic status colors (error/warning/success) were not consistently visible in the extracted page set.
|
||||
- Some interaction micro-states vary by module and are not represented as universal system tokens.
|
||||
- A few retail modules expose context-specific typography overrides that do not appear across all five pages.
|
||||
68
plugins/_official/design-systems/apple/open-design.json
Normal file
68
plugins/_official/design-systems/apple/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-apple",
|
||||
"title": "Apple",
|
||||
"version": "0.1.0",
|
||||
"description": "Consumer electronics. Premium white space, SF Pro, cinematic imagery.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"media-consumer"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Apple design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "apple",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/application/DESIGN.md
Normal file
71
plugins/_official/design-systems/application/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Application
|
||||
|
||||
> Category: Professional & Corporate
|
||||
> App dashboard with purple-themed aesthetic, top-bar navigation, card-based layouts, and developer-first workflows.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
App dashboard with purple-themed aesthetic, top-bar navigation, card-based layouts, and developer-first workflows.
|
||||
|
||||
- **Visual style:** modern, clean, high-contrast, glass-like panels, soft shadows, rounded components
|
||||
- **Color stance:** primary (purple), neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#9333EA` — Token from style foundations.
|
||||
- **Secondary:** `#A855F7` — Token from style foundations.
|
||||
- **Success:** `#10B981` — Token from style foundations.
|
||||
- **Warning:** `#F59E0B` — Token from style foundations.
|
||||
- **Danger:** `#EF4444` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#09090B` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#9333EA) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#09090B) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32
|
||||
- **Families:** primary=Inter, display=Inter, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#9333EA`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#9333EA) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-application",
|
||||
"title": "Application",
|
||||
"version": "0.1.0",
|
||||
"description": "App dashboard with purple-themed aesthetic, top-bar navigation, card-based layouts, and developer-first workflows.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"professional-corporate"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Application design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "application",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
152
plugins/_official/design-systems/arc/DESIGN.md
Normal file
152
plugins/_official/design-systems/arc/DESIGN.md
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
# Design System Inspired by Arc Browser
|
||||
|
||||
> Category: Productivity & SaaS
|
||||
> "The browser that browses for you." Translucent surfaces, gradient warmth, sidebar-first layout.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Arc Browser dissolves the boundary between the chrome and the page. Where Chrome and Safari treat the browser frame as a container, Arc treats it as scenery — the toolbar fades into the system wallpaper, the sidebar carries gradient warmth from the user's chosen "theme color", and translucency is everywhere. The visual signature is **frosted glass plus a single saturated gradient** — most often a peach-to-coral or violet-to-fuchsia bloom — that sets the emotional temperature of the entire window.
|
||||
|
||||
Typography uses **Inter** for chrome and a custom display serif (`Argent CF` or similar) for marketing — when Arc speaks publicly it speaks editorially, in a serif voice unusual for tech. The product itself is sans-only, with tight tracking and generous line-height.
|
||||
|
||||
Shapes are squircle-soft: 12–16px radii on cards, 8px on tabs, 9999px pills for tags. Borders are rare — Arc prefers tinted background washes (`rgba(255, 255, 255, 0.5)` over the gradient) to delineate panes.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Translucent frosted-glass surfaces over a saturated gradient background
|
||||
- Theme-color gradients (peach-coral, violet-fuchsia, mint-cyan) as the primary mood
|
||||
- Inter for product chrome, Argent CF (serif) for marketing display
|
||||
- Squircle-soft 12–16px radii everywhere
|
||||
- Sidebar-first layout: tabs, spaces, and bookmarks live on the left, not the top
|
||||
- Color picker is a brand surface — themes are user-driven, not fixed
|
||||
- Subtle shadows (`0 8px 32px rgba(0,0,0,0.08)`) over the gradient backdrop
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary Theme Gradients (User-selectable; default is "Sunset")
|
||||
- **Sunset Start** (`#ff7e5f`): Peach gradient origin.
|
||||
- **Sunset End** (`#feb47b`): Soft coral gradient terminus.
|
||||
- **Twilight Start** (`#7f5af0`): Violet gradient origin.
|
||||
- **Twilight End** (`#e84393`): Fuchsia gradient terminus.
|
||||
- **Aurora Start** (`#16f2b3`): Mint gradient origin.
|
||||
- **Aurora End** (`#0db4f7`): Cyan gradient terminus.
|
||||
|
||||
### Surface (Frosted)
|
||||
- **Glass Light** (`rgba(255, 255, 255, 0.7)`): Standard frosted pane over gradient.
|
||||
- **Glass Medium** (`rgba(255, 255, 255, 0.5)`): Hover state, tab pill background.
|
||||
- **Glass Heavy** (`rgba(255, 255, 255, 0.85)`): Active pane, command bar.
|
||||
- **Glass Dark** (`rgba(20, 20, 25, 0.6)`): Dark-mode frosted surface.
|
||||
|
||||
### Ink & Text
|
||||
- **Ink Primary** (`#1a1a1f`): Primary text on light frosted surface.
|
||||
- **Ink Secondary** (`#54545a`): Secondary text, tab title at rest.
|
||||
- **Ink Muted** (`#8c8c93`): Tertiary, captions, URL bar.
|
||||
- **Ink Inverse** (`#fafafa`): Text on dark frosted surface.
|
||||
|
||||
### Border & Divider
|
||||
- **Border Glass** (`rgba(255, 255, 255, 0.4)`): Frosted-edge border.
|
||||
- **Border Hairline** (`rgba(0, 0, 0, 0.06)`): Hairline divider on light surface.
|
||||
- **Border Active** (`rgba(0, 0, 0, 0.18)`): Active tab outline.
|
||||
|
||||
### Brand Accent
|
||||
- **Arc Coral** (`#ff5f5f`): Default brand color — used in marketing, `arc.net`.
|
||||
- **Arc Lavender** (`#b794f4`): Secondary brand accent.
|
||||
|
||||
### Semantic
|
||||
- **Success** (`#48bb78`): Toast confirmation.
|
||||
- **Warning** (`#f6ad55`): Permission prompt.
|
||||
- **Error** (`#f56565`): Form validation.
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
- **Display / Marketing**: `Argent CF`, with fallback: `'Source Serif Pro', Georgia, serif`
|
||||
- **Body / UI**: `Inter`, with fallback: `system-ui, -apple-system, BlinkMacSystemFont, sans-serif`
|
||||
- **Code / Mono**: `Berkeley Mono`, with fallback: `ui-monospace, Menlo, Consolas, monospace`
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|------|--------|-------------|----------------|-------|
|
||||
| Marketing Hero | Argent CF | 72px (4.5rem) | 400 | 1.05 | -0.03em | Editorial display, marketing only |
|
||||
| Section Heading | Argent CF | 40px (2.5rem) | 400 | 1.15 | -0.02em | Marketing section titles |
|
||||
| Page H1 | Inter | 32px (2rem) | 700 | 1.2 | -0.02em | Settings, command bar header |
|
||||
| Page H2 | Inter | 22px (1.375rem) | 600 | 1.25 | -0.01em | Sub-section |
|
||||
| Tab Title | Inter | 13px (0.8125rem) | 500 | 1.3 | -0.005em | Sidebar tab label |
|
||||
| Body | Inter | 15px (0.9375rem) | 400 | 1.55 | normal | Settings prose, tooltips |
|
||||
| Caption | Inter | 12px (0.75rem) | 500 | 1.4 | 0.01em | URL bar protocol, metadata |
|
||||
| Code | Berkeley Mono | 13px (0.8125rem) | 400 | 1.5 | normal | URL bar, devtools |
|
||||
|
||||
### Principles
|
||||
- **Serif moments are rare**: Argent CF appears only in marketing. The product is sans-only.
|
||||
- **Title size is small**: tabs render at 13px so a long sidebar of 30+ tabs stays scannable.
|
||||
- **Tracking tightens with size**: -0.03em at 72px, returning to normal by 15px.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
|
||||
**Primary (Filled)**
|
||||
- Background: linear-gradient on theme color (e.g., `linear-gradient(135deg, #ff7e5f, #feb47b)`)
|
||||
- Text: `#ffffff`
|
||||
- Padding: 10px 20px
|
||||
- Radius: 12px
|
||||
- Shadow: `0 4px 16px rgba(255, 127, 95, 0.3)`
|
||||
- Hover: shadow grows to `0 8px 24px rgba(255, 127, 95, 0.4)`
|
||||
|
||||
**Glass (Secondary)**
|
||||
- Background: `rgba(255, 255, 255, 0.7)`
|
||||
- Backdrop: `blur(20px)`
|
||||
- Text: `#1a1a1f`
|
||||
- Border: 1px solid `rgba(255, 255, 255, 0.4)`
|
||||
- Padding: 10px 20px
|
||||
- Radius: 12px
|
||||
|
||||
**Subtle**
|
||||
- Background: transparent
|
||||
- Text: theme color
|
||||
- Hover: background `rgba(255, 127, 95, 0.1)`
|
||||
|
||||
### Tabs (Sidebar)
|
||||
- Background at rest: transparent
|
||||
- Background on hover: `rgba(255, 255, 255, 0.5)`
|
||||
- Background active: `rgba(255, 255, 255, 0.85)` + soft shadow
|
||||
- Padding: 8px 12px
|
||||
- Radius: 8px
|
||||
- Favicon: 16px square at left, 8px gap to title.
|
||||
|
||||
### Cards / Panes
|
||||
- Background: `rgba(255, 255, 255, 0.7)`
|
||||
- Backdrop: `blur(24px)` saturate 180%
|
||||
- Border: 1px solid `rgba(255, 255, 255, 0.4)`
|
||||
- Radius: 16px
|
||||
- Shadow: `0 8px 32px rgba(0, 0, 0, 0.08)`
|
||||
- Padding: 24px
|
||||
|
||||
### Inputs (Command Bar)
|
||||
- Background: `rgba(255, 255, 255, 0.85)`
|
||||
- Backdrop: `blur(40px)`
|
||||
- Text: `#1a1a1f`
|
||||
- Border: 1px solid `rgba(255, 255, 255, 0.4)`
|
||||
- Radius: 14px
|
||||
- Padding: 14px 18px
|
||||
- Focus: shadow `0 0 0 4px rgba(255, 127, 95, 0.2)`
|
||||
|
||||
### Pills (Spaces / Bookmarks Folder)
|
||||
- Background: theme color at 16% alpha
|
||||
- Text: theme color (full)
|
||||
- Padding: 4px 10px
|
||||
- Radius: 9999px
|
||||
- Font: 12px / 600
|
||||
|
||||
## 5. Spacing & Layout
|
||||
|
||||
- **Base unit**: 4px. Scale: 4, 8, 12, 16, 24, 32, 48, 64.
|
||||
- **Sidebar**: 240px wide; collapsible to 56px.
|
||||
- **Window radius**: 12px on the OS window itself (macOS-only flourish).
|
||||
- **Padding inside panes**: 24px.
|
||||
|
||||
## 6. Motion
|
||||
|
||||
- **Duration**: 200ms for hover; 320ms for tab create/close; 480ms for "Little Arc" window expand.
|
||||
- **Easing**: `cubic-bezier(0.32, 0.72, 0, 1)` for window expand (Apple's spring-style).
|
||||
- **Tab swap**: 1px translate + opacity blend, no scale change.
|
||||
68
plugins/_official/design-systems/arc/open-design.json
Normal file
68
plugins/_official/design-systems/arc/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-arc",
|
||||
"title": "Arc Browser",
|
||||
"version": "0.1.0",
|
||||
"description": "\"The browser that browses for you.\" Translucent surfaces, gradient warmth, sidebar-first layout.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"productivity-saas"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Arc Browser design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "arc",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/artistic/DESIGN.md
Normal file
71
plugins/_official/design-systems/artistic/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Artistic
|
||||
|
||||
> Category: Creative & Artistic
|
||||
> High-contrast, expressive style with creative typography and bold color choices for visually striking interfaces.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
High-contrast, expressive style with creative typography and bold color choices for visually striking interfaces.
|
||||
|
||||
- **Visual style:** high-contrast, artistic
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#3B82F6` — Token from style foundations.
|
||||
- **Secondary:** `#8B5CF6` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#3B82F6) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/18/24/30/36
|
||||
- **Families:** primary=Limelight, display=Limelight, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#3B82F6`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#3B82F6) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/artistic/open-design.json
Normal file
68
plugins/_official/design-systems/artistic/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-artistic",
|
||||
"title": "Artistic",
|
||||
"version": "0.1.0",
|
||||
"description": "High-contrast, expressive style with creative typography and bold color choices for visually striking interfaces.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"creative-artistic"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Artistic design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "artistic",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
316
plugins/_official/design-systems/atelier-zero/DESIGN.md
Normal file
316
plugins/_official/design-systems/atelier-zero/DESIGN.md
Normal file
|
|
@ -0,0 +1,316 @@
|
|||
# Atelier Zero
|
||||
|
||||
> Category: Editorial · Studio
|
||||
> A magazine-grade, collage-driven visual system: warm paper canvas, surreal
|
||||
> plaster-and-architecture imagery, oversized display type, hairline rules,
|
||||
> Roman-numeral section markers, and tiny editorial annotations.
|
||||
> Inspired by the production values of high-end print magazines (Monocle,
|
||||
> Apartamento, IDEA) translated into a working website.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
A small, high-craft studio's annual report rendered as a webpage. The
|
||||
canvas is warm handmade paper. Every surface earns its lines. Type does
|
||||
the heavy lifting; collage imagery does the storytelling. Coral provides
|
||||
the only spark of warmth; mustard, olive, and bone are quiet
|
||||
companions. The page feels printed, slightly aged, and intentionally
|
||||
restrained — never noisy, never neon.
|
||||
|
||||
- **Visual style:** editorial, collage, museum-catalog calm.
|
||||
- **Posture:** asymmetric, generous, top-biased.
|
||||
- **Reading rhythm:** Roman numerals (I, II, III…) walk the reader
|
||||
through the page like chapters in a printed essay.
|
||||
- **Mood:** intelligent, tactile, slightly poetic, unmistakably
|
||||
international.
|
||||
|
||||
### Print production references
|
||||
|
||||
The three magazines are not interchangeable inspiration — each owns a
|
||||
specific dimension of the system. When a brief asks "shift it closer to
|
||||
X", consult this map before changing tokens:
|
||||
|
||||
- **Monocle:** warm paper stock (`#efe7d2`), tight body leading (~1.55),
|
||||
monospace coordinates and SHA stamps, the international metadata
|
||||
strip ("Filed under …"), the small ★ in the nav.
|
||||
- **Apartamento:** surreal collage composition (plaster + architecture
|
||||
+ small human figure), torn-edge textures inside the imagery, the
|
||||
rotated side notes, and the willingness to leave generous negative
|
||||
space around an image.
|
||||
- **IDEA:** Roman-numeral section walks (I → VIII), oversized
|
||||
italic-serif words mixed inline with bold sans (Playfair Italic 500
|
||||
inside Inter Tight 800), hairline rules threading through method
|
||||
steps, the closing mega-word footer.
|
||||
|
||||
## 2. Color
|
||||
|
||||
All values are tokens. Do not invent new hex.
|
||||
|
||||
- **Paper:** `#efe7d2` — primary background, warm ivory.
|
||||
- **Paper-warm:** `#ece4cf` — second-tier surface tint.
|
||||
- **Paper-dark:** `#ddd2b6` — subtle wells, cards on cards.
|
||||
- **Bone:** `#f7f1de` — elevated card surface (always on Paper).
|
||||
- **Ink:** `#15140f` — body text, primary buttons, strong rules.
|
||||
- **Ink-soft:** `#2a2620` — secondary text, dense paragraphs.
|
||||
- **Ink-mute:** `#5a5448` — captions, lab descriptions.
|
||||
- **Ink-faint:** `#8b8676` — coordinates, page numbers, microcopy.
|
||||
- **Coral (accent):** `#ed6f5c` — single hot accent. CTA fills,
|
||||
Roman-numeral marks, eyebrow underlines, pulse dots, "fin." marks.
|
||||
- **Coral-soft:** `#f08e7c` — hover/secondary coral states only.
|
||||
- **Mustard:** `#e9b94a` — used sparingly: a single ★ in the nav, a
|
||||
highlighted ring in stats, occasional dot on a numbered annotation.
|
||||
- **Olive:** `#6e7448` — quiet third accent for tags or partner glyphs.
|
||||
|
||||
### Color rules
|
||||
|
||||
- One **coral** moment per ~600vh. If two CTAs are coral, the
|
||||
Roman numerals should be ink-faint instead.
|
||||
- Mustard is never used for a CTA. It is jewelry.
|
||||
- Pure white (`#fff`) only inside the dark "selected work" panel as
|
||||
inverse text. Never on Paper.
|
||||
- Pure black is forbidden. The darkest value is `Ink #15140f`.
|
||||
|
||||
### Why single-accent (not multi-accent)
|
||||
|
||||
Multi-accent editorial systems (e.g. *The New Yorker* using red for
|
||||
Opinion and teal for Culture) work when the publication has stable
|
||||
content categories and a long-term reader who learns the code. A
|
||||
single-shot studio landing page does not have that runway. One coral
|
||||
moment per ~600vh forces the agent to pick the single most important
|
||||
beat per viewport instead of balancing two chromatic hierarchies, and
|
||||
keeps the page calibrated to the warm-paper canvas. Mustard and olive
|
||||
exist as **jewelry** (≤1% surface area: a star, a dot, a partner glyph)
|
||||
— never as semantic signals, and never as CTA fills.
|
||||
|
||||
### Surface noise
|
||||
|
||||
Every page MUST overlay a faint paper noise texture using a fixed,
|
||||
pointer-events-disabled `::before` pseudo-element with a
|
||||
multiply-blend SVG turbulence at ~5–7% opacity, plus two soft
|
||||
radial gradients in `rgba(106, 92, 56, 0.06)` to simulate
|
||||
hand-pressed paper warmth.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
### Families
|
||||
|
||||
- **Display / sans:** `Inter Tight` 700–900 weights — headlines, section
|
||||
titles, button text. Letter-spacing `-0.025em` to `-0.04em` at
|
||||
display sizes.
|
||||
- **Italic emphasis / serif:** `Playfair Display` Italic, weight 500.
|
||||
Used inline inside display headlines on emphasized nouns, on Roman
|
||||
numerals, on testimonial quotes, on the brand mark `Ø`.
|
||||
- **Body:** `Inter` 300–500 — paragraph copy, lab descriptions.
|
||||
- **Mono:** `JetBrains Mono` 400–500 — code spans, coordinates,
|
||||
SHAs, plate numbers ("FIG. 01 / OD-26").
|
||||
|
||||
### Scale (px)
|
||||
|
||||
`9.5 · 10.5 · 11 · 13 · 14 · 16 · 17 · 22 · 26 · 38 · 54 · 66 · 78 · 90 · 200`
|
||||
|
||||
### Headline construction
|
||||
|
||||
Display headlines mix **bold sans** and **italic serif** in the same
|
||||
line. The serif italic carries the emotional words; the sans carries
|
||||
the structure. End every section H1/H2 with a coral period — `<span
|
||||
class="dot">.</span>`.
|
||||
|
||||
```
|
||||
Designing intelligence with skills, taste, and code.
|
||||
^^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^
|
||||
sans bold serif italic coral dot
|
||||
```
|
||||
|
||||
### Microcopy
|
||||
|
||||
- **Eyebrow / label:** 11px Inter Tight 600, `letter-spacing: 0.22em`,
|
||||
uppercase, coral, prefixed with an 18px coral hairline.
|
||||
- **Coordinates:** 10px JetBrains Mono, `letter-spacing: 0.04em`,
|
||||
ink-faint, e.g. `52.5200° N · 13.4050° E`.
|
||||
- **Page-of-pages:** `004 / 008` in Inter Tight 11px ink-faint.
|
||||
- **Roman numerals:** Playfair Italic 14px, coral, `I.` `II.` `III.` etc.
|
||||
at the head of every section rule.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Container:** max-width `1360px`, side padding `64px` desktop,
|
||||
`44px` at ≤1280, `32px` at ≤1080, `24px` at ≤880.
|
||||
- **Section padding:** `130px` top+bottom desktop, `90px` for
|
||||
tight sections, `80px` ≤560.
|
||||
- **Grid:** 12-column conceptual, executed as CSS Grid with
|
||||
task-specific column ratios. Hero is `0.78fr 1.22fr`.
|
||||
- **Vertical rhythm:** 8px baseline. Allow 32–48px between
|
||||
paragraph blocks.
|
||||
- **Side rails:** Two 36px-wide fixed vertical strips on the left and
|
||||
right edges of the viewport, each containing a single rotated
|
||||
text label in 10px Inter Tight 600 letter-spaced 0.42em.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- **Top metadata strip** is mandatory: a single horizontal bar above
|
||||
the nav containing the volume/issue, a "Filed under …" badge, and a
|
||||
live-status pulse with version + locale. Inter Tight 10.5px,
|
||||
ink-faint, 1px ink-line border-bottom.
|
||||
- **Section rule** is mandatory at the top of every section:
|
||||
`[Roman.] · [meta middle] · [page-of-008]`.
|
||||
- **Image annotations**: every featured image carries 4 corner
|
||||
brackets (1px hairlines, 22×22), at least 1 plate number
|
||||
("Plate Nº 08"), and a coordinate or SHA.
|
||||
- **Hero must extend above the fold** at 1440×900 minimum. The image
|
||||
fills the viewport vertically (`calc(100vh - 160px)`), aligned to
|
||||
the right edge.
|
||||
- **Method sections** must use a 4-step layout with a horizontal
|
||||
hairline running through the step heads at the same Y, with
|
||||
`→` separators between titles.
|
||||
|
||||
## 6. Components
|
||||
|
||||
### Buttons
|
||||
|
||||
- **Primary:** coral fill `#ed6f5c`, white label, `999px` radius,
|
||||
`14px 22px` padding, with a white arrow `↗` SVG at 14px and a
|
||||
coral 0,14,26,-16 rgba shadow.
|
||||
- **Ghost:** transparent, `1px solid rgba(21,20,15,0.2)` border,
|
||||
ink label, same radius and padding.
|
||||
|
||||
### Cards
|
||||
|
||||
- **Bone-fill cards** (`#f7f1de`), 18px radius, 28×26 padding,
|
||||
inset 1px ink-at-6% ring + 30/60/-30/15 ambient shadow.
|
||||
- Each card has a `01–04` italic serif num plus a tag eyebrow on
|
||||
the same row.
|
||||
- A bottom-right 28px circular arrow mark turns coral on hover.
|
||||
|
||||
### Pill filters
|
||||
|
||||
- 10×18 padding, 999px, `1px solid line` border, transparent.
|
||||
- Active state: coral fill, white label, count separator opacity 0.7.
|
||||
|
||||
### Stat rings
|
||||
|
||||
- 32–34px circular dashed rings carrying a 2-digit number; one ring
|
||||
per row may be coral-stroked to denote the highlighted stat.
|
||||
|
||||
### Page numbers / index card
|
||||
|
||||
- Hero artwork carries a small bordered card on the right edge with
|
||||
`01–04` index entries. The current entry uses bold ink; the rest
|
||||
ink-faint. Each item prefixes the digit with a coral `01` token.
|
||||
|
||||
### Side rails
|
||||
|
||||
- Fixed 36px vertical strips at left + right edges, hidden below
|
||||
1280px. Each contains rotated 10px Inter Tight uppercase text
|
||||
letter-spaced 0.42em, never wraps.
|
||||
|
||||
### Roman section rules
|
||||
|
||||
Every section opens with a `.sec-rule`: top hairline 1px, then a
|
||||
flex row containing `[Roman]`, a centered metadata cluster, and
|
||||
the page-of-008 counter on the right.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- **Pulse dot:** 6×6 coral circle at top metadata bar and footer,
|
||||
`pulse 2.4s ease-in-out infinite` between 1.0 and 0.35 opacity.
|
||||
- **Card hover:** translateY(-3px), arrow mark fills coral.
|
||||
- **Button hover:** translateY(-1px), darker coral fill.
|
||||
- **Pill hover:** ink-at-4% wash.
|
||||
- **Transitions:** `0.18s ease` everywhere; never longer than `0.25s`.
|
||||
- **No parallax, no scroll-jacking, no auto-rotators.** Editorial
|
||||
pages do not animate themselves at the user.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Headlines mix declarative and italicized emotional words.
|
||||
- Body copy is plain-spoken and specific. Quote real numbers
|
||||
(12 / 31 / 72), real coordinates (52.5200° N · 13.4050° E),
|
||||
real commands (`pnpm tools-dev`).
|
||||
- Microcopy uses publication metaphors: "Filed under", "Plate Nº",
|
||||
"Vol. 01 / Issue Nº 26", "FIN.", "MMXXVI", "Edited by".
|
||||
- Latin numerals — Roman for sections, Arabic for stats.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- ❌ No drop shadows above 30px blur. No gradients on text.
|
||||
- ❌ No emoji in product copy. ★ is allowed once in the nav CTA.
|
||||
- ❌ No glassmorphism, no neon, no neumorphism, no rounded
|
||||
corners larger than 24px (except 32px on the dark "Selected Work" panel).
|
||||
- ❌ No more than one coral CTA per viewport.
|
||||
- ❌ No collage image without corner brackets and at least one
|
||||
monospace annotation.
|
||||
- ❌ No Roman numeral skipped — sections must be sequential.
|
||||
- ❌ No pure white, no pure black, no pure 100%-saturation accent.
|
||||
|
||||
### Anti-patterns specific to AI-generated imagery
|
||||
|
||||
This system is paired with `gpt-image-fal` / `gpt-image-azure` via the
|
||||
open-design-landing skill. Several common image-model defaults will
|
||||
silently break the Atelier Zero aesthetic, so they are forbidden in
|
||||
every collage prompt and rejected on visual review:
|
||||
|
||||
- ❌ No lens flares, light leaks, bloom, or cinematic post-FX. The
|
||||
paper-and-museum mood is matte, not cinematic.
|
||||
- ❌ No glitch, datamosh, RGB-split, or scanline artifacts.
|
||||
- ❌ No photorealistic human faces or stock-portrait people. Plaster
|
||||
fragments, busts, and small scale figures only — eyes never look at
|
||||
the viewer.
|
||||
- ❌ No visible AI signatures, watermarks, generator logos, or
|
||||
hallucinated model captions. The rendered surface must read as a
|
||||
printed page, not a model output.
|
||||
- ❌ No DSLR-style shallow depth-of-field bokeh on the collage
|
||||
fragments — every plane stays in focus.
|
||||
|
||||
## 10. Responsive Behavior
|
||||
|
||||
- **Desktop ≥ 1280px:** full container, two side rails visible,
|
||||
metadata strip shows all three columns.
|
||||
- **Laptop 1080–1279px:** side rails hidden, container 32–44px
|
||||
padding, metadata strip's middle column collapses.
|
||||
- **Tablet 880–1079px:** hero / about / capabilities / testimonial
|
||||
/ cta grids collapse to 1 column at 50px gap. Method becomes 2×2,
|
||||
the connecting hairline is removed. Nav links + brand-meta hide;
|
||||
brand-mark + CTA remain.
|
||||
- **Phone < 560px:** all multi-column grids become 1 col;
|
||||
section padding drops to 80px.
|
||||
|
||||
## 11. Imagery
|
||||
|
||||
This system is collage-first. Every page-level image must be
|
||||
generated to match these constraints:
|
||||
|
||||
- **Background:** warm ivory paper with subtle grain, faint vertical
|
||||
folds, drafting registration marks.
|
||||
- **Subject:** classical plaster head fragments, brutalist concrete
|
||||
blocks, archways, stairs, tree, sky cutouts, one small human figure.
|
||||
- **Color overlay:** restrained — cream, stone, charcoal, washed
|
||||
coral, occasional mustard, pale-blue inside small sky cutouts.
|
||||
- **Annotations baked in:** thin hairline circles, crosshairs,
|
||||
dotted matrices, numbered tags. Never typography that conflicts
|
||||
with on-page copy.
|
||||
|
||||
See `skills/open-design-landing/assets/imagegen-prompts.md` for the
|
||||
working prompt pack and per-section variants. All renders should be
|
||||
at 16:9 (heroes) or 1:1 (cards / about / cta), saved as PNG, ≥1024px
|
||||
on the long edge.
|
||||
|
||||
## 12. Agent Prompt Guide
|
||||
|
||||
When generating against this design system:
|
||||
|
||||
- The page is a **printed magazine** that happens to deploy. Lean
|
||||
into print metaphors before web metaphors.
|
||||
- Always include the metadata strip, the side rails, the Roman
|
||||
section rules, and a footer with a giant `Open Design.` (or brand)
|
||||
word at clamp(70px, 13vw, 200px).
|
||||
- Coral is a single character on stage. If you find yourself
|
||||
reaching for a second coral element in the same viewport, use
|
||||
ink-faint or mustard instead.
|
||||
- Italic serif words inside display headlines should always be
|
||||
emotional nouns: *intelligence*, *taste*, *memorable*, *open*,
|
||||
*visually*. Never verbs, never adjectives.
|
||||
- If asked for "more dramatic," the lever is **typography size**
|
||||
(clamp top to 90–110px) and **image height** (push to 100vh - nav).
|
||||
Do not reach for color.
|
||||
- If asked for "more minimal," remove decorative side notes and
|
||||
reduce annotations to one per image — never remove the Roman
|
||||
rules or the metadata strip.
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-atelier-zero",
|
||||
"title": "Atelier Zero",
|
||||
"version": "0.1.0",
|
||||
"description": "A magazine-grade, collage-driven visual system: warm paper canvas, surreal\nplaster-and-architecture imagery, oversized display type, hairline rules,\nRoman-numeral section markers, and tiny editorial annotations.\nInspired by the production v",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"editorial-studio"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Atelier Zero design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "atelier-zero",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/bento/DESIGN.md
Normal file
71
plugins/_official/design-systems/bento/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Bento
|
||||
|
||||
> Category: Layout & Structure
|
||||
> Modular grid layout with card-like blocks, clear hierarchy, soft spacing, and subtle visual contrast for organized, scannable interfaces.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Modular grid layout with card-like blocks, clear hierarchy, soft spacing, and subtle visual contrast for organized, scannable interfaces.
|
||||
|
||||
- **Visual style:** modern, clean
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#FAD4C0` — Token from style foundations.
|
||||
- **Secondary:** `#80A1C1` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFF5E6` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFF5E6` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#FAD4C0) for CTA emphasis.
|
||||
- Use Surface (#FFF5E6) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32
|
||||
- **Families:** primary=Inter, display=Inter, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#FAD4C0`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#FAD4C0) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/bento/open-design.json
Normal file
68
plugins/_official/design-systems/bento/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-bento",
|
||||
"title": "Bento",
|
||||
"version": "0.1.0",
|
||||
"description": "Modular grid layout with card-like blocks, clear hierarchy, soft spacing, and subtle visual contrast for organized, scannable interfaces.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"layout-structure"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Bento design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "bento",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
348
plugins/_official/design-systems/binance/DESIGN.md
Normal file
348
plugins/_official/design-systems/binance/DESIGN.md
Normal file
|
|
@ -0,0 +1,348 @@
|
|||
# Design System Inspired by Binance.US
|
||||
|
||||
> Category: Fintech & Crypto
|
||||
> Crypto exchange. Bold yellow accent on monochrome, trading-floor urgency.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Binance.US radiates the polished urgency of a digital trading floor — a space where money moves and decisions happen in seconds. The design is a two-tone composition that alternates between stark white trading surfaces and deep near-black panels (`#222126`), creating a visual rhythm that mirrors the bull-and-bear duality of crypto markets. Binance Yellow (`#F0B90B`) cuts through this monochrome foundation like a gold ingot on a steel desk — unmistakable, confident, and engineered to guide every eye toward the next action.
|
||||
|
||||
The interface speaks the language of fintech trust. Custom BinancePlex typography gives every headline and data point a proprietary gravitas, while generous whitespace and restrained decoration keep the focus on numbers, charts, and call-to-action buttons. The design avoids visual complexity in favor of operational clarity — every element exists to either inform or convert. Product screenshots of the mobile trading app dominate the middle sections, presented on floating device mockups against golden gradients, reinforcing that this is a platform you carry with you.
|
||||
|
||||
What makes Binance.US distinctive is the tension between warmth and precision. The golden yellow brand color — warm, optimistic, almost celebratory — lives inside a system of cold, clinical grey text and razor-sharp borders. This isn't a playful fintech like Robinhood or a corporate fortress like Fidelity — it's a crypto-native platform that wraps cutting-edge trading technology in the visual language of established finance.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Two-tone light/dark section alternation — white surfaces for trust, dark panels for depth
|
||||
- Binance Yellow (`#F0B90B`) as the singular accent color driving all primary actions
|
||||
- BinancePlex custom typeface providing proprietary brand identity at every text level
|
||||
- Pill-shaped CTA buttons (50px radius) that demand attention
|
||||
- Floating device mockups on golden gradients for product showcasing
|
||||
- Crypto price tickers with real-time data prominently displayed
|
||||
- Shadow-light elevation with subtle 5% opacity card shadows
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
|
||||
- **Binance Yellow** (`#F0B90B`): The signature — primary CTA backgrounds, brand accent, active states, link color. The single most important color in the system
|
||||
- **Binance Gold** (`#FFD000`): Lighter gold variant used for pill button borders, secondary CTA fills, and golden gradient highlights
|
||||
- **Light Gold** (`#F8D12F`): Soft gold for gradient endpoints and hover-adjacent states
|
||||
|
||||
### Secondary & Accent
|
||||
|
||||
- **Active Yellow** (`#D0980B`): Darkened yellow for active/pressed button states — the "clicked" gold
|
||||
- **Focus Blue** (`#1EAEDB`): Accessibility focus state — appears on hover and focus for all interactive elements
|
||||
|
||||
### Surface & Background
|
||||
|
||||
- **Pure White** (`#FFFFFF`): Primary page canvas, card surfaces, light section backgrounds
|
||||
- **Snow** (`#F5F5F5`): Subtle surface differentiation, input backgrounds, alternating row fills
|
||||
- **Binance Dark** (`#222126`): Dark section backgrounds, footer canvas, "Trusted by millions" panel — a near-black with a faint purple undertone
|
||||
- **Dark Card** (`#2B2F36`): Card surfaces within dark sections, elevated dark containers
|
||||
- **Ink** (`#1E2026`): Button text on yellow backgrounds, deepest text color on light surfaces
|
||||
|
||||
### Neutrals & Text
|
||||
|
||||
- **Primary Text** (`#1E2026`): Main body text, headings on light backgrounds — near-black with slight warmth
|
||||
- **Secondary Text** (`#32313A`): Navigation links, descriptive copy on light surfaces
|
||||
- **Slate** (`#848E9C`): Tertiary text, metadata, timestamps, footer links — the workhorse grey
|
||||
- **Steel** (`#686A6C`): Disabled-adjacent text, subtle labels
|
||||
- **Muted** (`#777E90`): Secondary navigation links, less prominent footer text
|
||||
- **Hover Dark** (`#1A1A1A`): Universal link hover color — text darkens on hover
|
||||
|
||||
### Semantic & Accent
|
||||
|
||||
- **Crypto Green** (`#0ECB81`): Positive price movement, success states, "up" indicators
|
||||
- **Crypto Red** (`#F6465D`): Negative price movement, error states, "down" indicators
|
||||
- **Border Light** (`#E6E8EA`): Standard card and section borders on light backgrounds
|
||||
- **Border Gold** (`#FFD000`): Active/selected state borders, pill button outlines
|
||||
|
||||
### Gradient System
|
||||
|
||||
- **Golden Glow**: Radial gradient from `#F0B90B` center to `#F8D12F` edge — used behind product mockup screenshots
|
||||
- **Dark Fade**: Linear gradient from `#222126` to transparent — used for dark section transitions
|
||||
- **Hero Shimmer**: Subtle animated gold gradient on hero section accents
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
|
||||
**Primary:** BinancePlex (custom proprietary typeface designed by Binance)
|
||||
- Fallbacks: Arial, sans-serif
|
||||
- Replaced DIN Next to solve multi-language spacing issues
|
||||
- Available in weights: 400 (Regular), 500 (Medium), 600 (SemiBold), 700 (Bold)
|
||||
|
||||
**System:** system-ui stack for cookie banners and third-party UI
|
||||
- Fallbacks: Segoe UI, Roboto, Helvetica, Arial
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|--------|-------------|----------------|-------|
|
||||
| Display Hero | 60px | 700 | 1.08 | — | Hero headlines, maximum impact |
|
||||
| Display Secondary | 34px | 700 | 1.00 | — | Section titles on dark backgrounds |
|
||||
| Heading 1 | 28px | 500 | 1.00 | — | Major section headings |
|
||||
| Heading 2 | 24px | 700 | 1.00 | — | Feature headings, card titles |
|
||||
| Heading 3 | 24px | 600 | 1.00 | — | Subsection headings |
|
||||
| Heading 4 | 20px | 600 | 1.25 | — | Card headings, feature labels |
|
||||
| Body Large | 20px | 500 | 1.50 | — | Hero subtitle, lead paragraphs |
|
||||
| Body | 16px | 500 | 1.50 | — | Standard body text |
|
||||
| Body SemiBold | 16px | 600 | 1.30 | — | Emphasized body, nav links |
|
||||
| Body Bold | 16px | 700 | 1.50 | — | Strong emphasis text |
|
||||
| Button | 16px | 600 | 1.25 | 0.16px | Primary button text |
|
||||
| Button Small | 14.4px | 600 | 1.60 | 0.72px | Secondary buttons, wider tracking |
|
||||
| Caption | 14px | 500 | 1.43 | — | Metadata, labels, prices |
|
||||
| Caption SemiBold | 14px | 600 | 1.50 | — | Emphasized captions |
|
||||
| Small | 12px | 600 | 1.00 | — | Tags, badges, fine print |
|
||||
| Tiny | 11px | 500 | 1.00 | — | Micro-labels, chart annotations |
|
||||
|
||||
### Principles
|
||||
|
||||
BinancePlex is engineered for data-dense interfaces where numbers and text must coexist at multiple scales. The typeface has tabular numerals by default — critical for price columns and portfolio values that need perfect vertical alignment. Weights lean toward the heavier end (500-700), giving the interface a sense of authority and confidence that's essential for a financial platform. The tight line-heights (1.00-1.25) on headings create a stacked, compressed feel that mirrors the density of trading dashboards, while body text opens up to 1.50 for comfortable reading of educational and marketing content.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
|
||||
**Primary (Yellow Fill)**
|
||||
- Background: Binance Yellow (`#F0B90B`)
|
||||
- Text: Ink (`#1E2026`), 16px/600, BinancePlex
|
||||
- Border: none
|
||||
- Border radius: slightly rounded (6px)
|
||||
- Padding: 6px 32px
|
||||
- Hover: shifts to Focus Blue (`#1EAEDB`) with white text
|
||||
- Active: darkens to Active Yellow (`#D0980B`)
|
||||
- Focus: Focus Blue (`#1EAEDB`) bg, 1px black border, 2px black outline, opacity 0.9
|
||||
- Transition: background 200ms ease
|
||||
|
||||
**Primary Pill (Gold)**
|
||||
- Background: Binance Gold (`#FFD000`)
|
||||
- Text: White (`#FFFFFF`)
|
||||
- Border: 1px solid `#FFD000`
|
||||
- Border radius: full pill (50px)
|
||||
- Padding: 10px horizontal
|
||||
- Shadow: `rgb(153,153,153) 0px 2px 10px -3px`
|
||||
- Hover: shifts to Focus Blue (`#1EAEDB`) with white text
|
||||
|
||||
**Secondary (White Outlined)**
|
||||
- Background: White (`#FFFFFF`)
|
||||
- Text: Binance Yellow (`#F0B90B`)
|
||||
- Border: 1px solid `#F0B90B`
|
||||
- Border radius: full pill (50px)
|
||||
- Padding: 10px horizontal
|
||||
- Shadow: `rgb(153,153,153) 0px 2px 10px -3px`
|
||||
- Hover: shifts to Focus Blue bg, white text
|
||||
|
||||
**Disabled**
|
||||
- Background: `#E6E8EA`
|
||||
- Text: `#848E9C`
|
||||
- Cursor: not-allowed
|
||||
|
||||
### Cards & Containers
|
||||
|
||||
- Background: White (`#FFFFFF`) on light sections, Dark Card (`#2B2F36`) on dark sections
|
||||
- Border: 1px solid `#E6E8EA` on light cards
|
||||
- Border radius: medium rounded (12px) for content cards, tight (8px) for data cards
|
||||
- Shadow: `rgba(32, 32, 37, 0.05) 0px 3px 5px 0px` — barely visible, trust-building
|
||||
- Hover: shadow intensifies to `rgba(8, 8, 8, 0.05) 0px 3px 5px 5px`
|
||||
- Transition: box-shadow 200ms ease
|
||||
|
||||
### Inputs & Forms
|
||||
|
||||
- Background: White (`#FFFFFF`) or Snow (`#F5F5F5`)
|
||||
- Text: Ink (`#1E2026`)
|
||||
- Border: 1px solid `#E6E8EA`
|
||||
- Border radius: 8px
|
||||
- Padding: 0px 12px (compact for trading context)
|
||||
- Focus: border shifts to black (`#000000`), 1px outline
|
||||
- Placeholder: Slate (`#848E9C`)
|
||||
- Transition: border-color 200ms ease
|
||||
|
||||
### Navigation
|
||||
|
||||
- Background: White (`#FFFFFF`), sticky
|
||||
- Height: ~64px
|
||||
- Left: Binance logo (SVG, yellow mark + dark wordmark)
|
||||
- Center/Right: navigation links in 14px/600 BinancePlex, color `#32313A`
|
||||
- CTA: Yellow pill button "Get Started" in nav right
|
||||
- Hover: links darken to `#1A1A1A`
|
||||
- Mobile: hamburger menu, full-height overlay
|
||||
- Top: optional promotional banner bar
|
||||
|
||||
### Image Treatment
|
||||
|
||||
- Product mockups: device frames on golden gradient backgrounds, floating with subtle shadow
|
||||
- Hero images: full-width contained within card-like areas with rounded corners (24px)
|
||||
- Video sections: 24px radius with embedded player controls
|
||||
- App screenshots: dark-themed trading UI shown within phone/tablet bezels
|
||||
- Crypto icons: 48px circular with brand colors
|
||||
|
||||
### Trust Indicators
|
||||
|
||||
- Real-time crypto price ticker (BTC, BNB, SOL with green/red price change)
|
||||
- "Trusted by millions" section with statistics on dark background
|
||||
- Security badges and regulatory compliance mentions
|
||||
- QR code for direct app download in footer
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
|
||||
Base unit: 8px
|
||||
|
||||
| Token | Value | Use |
|
||||
|-------|-------|-----|
|
||||
| space-1 | 4px | Tight inline gaps, icon padding |
|
||||
| space-2 | 8px | Base unit, button icon gaps, tight margins |
|
||||
| space-3 | 12px | Card internal padding, input padding |
|
||||
| space-4 | 16px | Standard padding, section margins |
|
||||
| space-5 | 20px | Card gaps, medium padding |
|
||||
| space-6 | 24px | Section internal padding |
|
||||
| space-7 | 32px | Section breaks, large padding |
|
||||
| space-8 | 48px | Major section padding |
|
||||
| space-9 | 64px | Hero section padding |
|
||||
| space-10 | 80px | Large section spacing |
|
||||
|
||||
### Grid & Container
|
||||
|
||||
- Max container width: 1200px (centered)
|
||||
- Hero area: single column with side-by-side text + image above 1024px
|
||||
- Feature grid: 3-column on desktop, single column on mobile
|
||||
- Product showcase: 2-column (text + device mockup)
|
||||
- Horizontal padding: 32px desktop, 16px mobile
|
||||
- Grid gap: 24px between feature cards
|
||||
|
||||
### Whitespace Philosophy
|
||||
|
||||
Binance.US uses whitespace as a trust signal. Generous padding around the hero section and between content blocks creates a sense of spaciousness that counters the information density typically associated with crypto exchanges. The light sections breathe — wide margins around headlines and ample spacing between cards — while dark sections compress, packing features into tighter grids to convey capability and depth. The overall rhythm alternates between "inviting entry" (light, spacious) and "deep functionality" (dark, dense).
|
||||
|
||||
### Border Radius Scale
|
||||
|
||||
| Value | Context |
|
||||
|-------|---------|
|
||||
| 1px | Subtle edge softening, fine UI elements |
|
||||
| 2px | Close buttons, micro-interactive elements |
|
||||
| 6px | Primary buttons (non-pill), small cards |
|
||||
| 8px | Form inputs, data cards, image containers |
|
||||
| 10px | Navigation pills, tag containers |
|
||||
| 12px | Content cards, feature containers |
|
||||
| 24px | Video containers, hero imagery, large cards |
|
||||
| 50px | Pill buttons (CTA), search inputs, full-round elements |
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|-------|-----------|-----|
|
||||
| Flat | No shadow, solid background | Default for inline elements |
|
||||
| Subtle | `rgba(32, 32, 37, 0.05) 0px 3px 5px` | Content cards, resting state |
|
||||
| Medium | `rgba(8, 8, 8, 0.05) 0px 3px 5px 5px` | Hovered cards, elevated containers |
|
||||
| Pill Shadow | `rgb(153,153,153) 0px 2px 10px -3px` | Pill CTA buttons, floating actions |
|
||||
| Heavy | `rgba(0,0,0) 0px 32px 37px` | Modal overlays, dropdown menus |
|
||||
|
||||
Binance.US uses a whisper-light shadow system. Card shadows are barely perceptible at 5% opacity — they exist not for dramatic depth but as subtle ground cues that keep cards from feeling pasted onto the surface. The pill button shadow is the exception: slightly more visible to give CTAs a "floating" quality that invites clicks. The philosophy is pragmatic — in a financial context, heavy shadows feel frivolous, while no shadows at all feel flat and untrustworthy. The 5% sweet spot communicates professionalism.
|
||||
|
||||
### Decorative Depth
|
||||
|
||||
- **Golden gradient backgrounds**: Behind device mockup sections, radial golden glow centered on the product
|
||||
- **Dark-to-light section transitions**: Hard cut (no gradient blend) between white and `#222126` sections
|
||||
- **Price ticker strip**: Flat, borderless, reads as a data bar rather than a decorative element
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
|
||||
### Do
|
||||
|
||||
- Use Binance Yellow (`#F0B90B`) exclusively for primary CTAs and brand accents — it's the single point of color
|
||||
- Keep light and dark sections strictly alternating for visual rhythm
|
||||
- Use BinancePlex at weight 500+ for all interactive elements — this is a confidence-forward design
|
||||
- Apply 50px radius to all primary CTA pill buttons — the signature interactive shape
|
||||
- Maintain 12px radius on content cards for a polished but not overly rounded feel
|
||||
- Show real-time data prominently (prices, percentages, stats) — numbers build trust
|
||||
- Use Slate (`#848E9C`) for all secondary/metadata text — the universal quiet voice
|
||||
- Keep shadows at 5% opacity or less — barely there but present
|
||||
|
||||
### Don't
|
||||
|
||||
- Don't introduce additional brand colors — Binance Yellow is the only accent; all other color is data-driven (green up, red down)
|
||||
- Don't use rounded corners above 12px on content cards — only CTAs and video containers go higher
|
||||
- Don't add heavy shadows or hover lift effects — this is a restrained financial platform
|
||||
- Don't use BinancePlex below weight 500 for headings — lighter weights undermine authority
|
||||
- Don't place yellow text on yellow backgrounds — always ensure high contrast pairing
|
||||
- Don't mix pill (50px) and square (6px) button styles in the same row
|
||||
- Don't soften the dark sections — `#222126` should feel authoritative, not grey
|
||||
- Don't use decorative illustrations — imagery should be product screenshots or data visualizations
|
||||
- Don't add animation beyond subtle transitions (200ms ease) — financial platforms need stability
|
||||
- Don't use colored backgrounds for semantic states in cards — keep cards white or dark, use text color for semantic meaning
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
|
||||
| Name | Width | Key Changes |
|
||||
|------|-------|-------------|
|
||||
| Mobile | <425px | Single column, stacked hero, hamburger nav, 16px padding |
|
||||
| Small Mobile | 425-599px | Wider mobile layout, price ticker wraps |
|
||||
| Tablet Small | 600-768px | 2-column feature grid begins |
|
||||
| Tablet | 769-896px | Hero side-by-side layout begins |
|
||||
| Desktop Small | 897-1024px | Full nav expands, 3-column features |
|
||||
| Desktop | 1024-1280px | Full layout, max content width |
|
||||
| Large Desktop | 1280-1440px | Increased margins, centered container |
|
||||
| XL Desktop | >1440px | Max-width container (1200px) with expanded margins |
|
||||
|
||||
### Touch Targets
|
||||
|
||||
- Minimum touch target: 44x44px (WCAG AAA)
|
||||
- Pill CTA buttons: 48px height minimum
|
||||
- Nav links: 44px touch area
|
||||
- Crypto ticker items: full-width tappable rows on mobile
|
||||
- App download buttons: large tap zones (50px+)
|
||||
|
||||
### Collapsing Strategy
|
||||
|
||||
- **Navigation**: Full horizontal links → hamburger menu below 897px; logo and "Get Started" CTA remain visible
|
||||
- **Hero section**: Side-by-side (text left, image right) → stacked (text top, image below) at 768px
|
||||
- **Feature grid**: 3-col → 2-col at 768px → 1-col at 600px
|
||||
- **Price ticker**: Horizontal row → wrapping or scrollable at 600px
|
||||
- **Section padding**: 64px → 48px → 32px → 16px as viewport narrows
|
||||
- **Device mockups**: Scale down proportionally, maintain centered positioning
|
||||
- **Footer**: Multi-column → stacked accordion sections on mobile
|
||||
|
||||
### Image Behavior
|
||||
|
||||
- Device mockups: CSS-scaled with max-width constraints, maintain aspect ratio
|
||||
- Hero imagery: contained within rounded containers (24px), scale proportionally
|
||||
- App screenshots: responsive width with fixed aspect ratio
|
||||
- QR code: fixed 120px square, hidden on mobile (replaced with direct app store links)
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
|
||||
- Primary CTA: Binance Yellow (`#F0B90B`)
|
||||
- Secondary CTA: Binance Gold (`#FFD000`)
|
||||
- Background Light: Pure White (`#FFFFFF`)
|
||||
- Background Dark: Binance Dark (`#222126`)
|
||||
- Heading text: Ink (`#1E2026`)
|
||||
- Body text: Slate (`#848E9C`)
|
||||
- Border: Border Light (`#E6E8EA`)
|
||||
- Positive: Crypto Green (`#0ECB81`)
|
||||
- Negative: Crypto Red (`#F6465D`)
|
||||
|
||||
### Example Component Prompts
|
||||
|
||||
- "Create a hero section with white background, a 60px/700 bold headline in Ink (#1E2026), a 20px/500 subtitle in Slate (#848E9C), and a Binance Yellow (#F0B90B) pill button (50px radius) with dark text (#1E2026)"
|
||||
- "Design a crypto price ticker strip showing BTC, BNB, SOL prices in 14px/600 Ink (#1E2026) with green (#0ECB81) or red (#F6465D) percentage changes, on a white background with #E6E8EA bottom border"
|
||||
- "Build a feature card grid (3-column, 24px gap) with 12px radius white cards, subtle shadow (rgba(32,32,37,0.05) 0px 3px 5px), each containing a yellow (#F0B90B) icon, 20px/600 heading, and 14px/500 #848E9C description"
|
||||
- "Create a dark section (#222126) with a 34px/700 white headline centered, and a 3-column feature grid using dark cards (#2B2F36) with 12px radius and yellow (#F0B90B) accent icons"
|
||||
- "Design a sticky navigation bar with white background, Binance logo left, 14px/600 #32313A nav links center, and a yellow (#F0B90B) pill button (50px radius, 6px padding 32px) labeled 'Get Started' right"
|
||||
|
||||
### 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
|
||||
3. Remember: Binance Yellow (#F0B90B) is the ONLY accent color — everything else is grey/dark/white
|
||||
4. Use the dark/light section alternation for visual pacing
|
||||
5. Numbers and data should be prominent — this is a financial platform
|
||||
6. Pill buttons (50px radius) for CTAs, regular buttons (6px radius) for form actions
|
||||
7. Keep shadows almost invisible (5% opacity) — trust comes from clarity, not depth
|
||||
8. BinancePlex at 600+ weight for any text that needs to feel authoritative
|
||||
68
plugins/_official/design-systems/binance/open-design.json
Normal file
68
plugins/_official/design-systems/binance/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-binance",
|
||||
"title": "Binance.US",
|
||||
"version": "0.1.0",
|
||||
"description": "Crypto exchange. Bold yellow accent on monochrome, trading-floor urgency.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"fintech-crypto"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Binance.US design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "binance",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
246
plugins/_official/design-systems/bmw-m/DESIGN.md
Normal file
246
plugins/_official/design-systems/bmw-m/DESIGN.md
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
# Design System Inspired by BMW M
|
||||
|
||||
> Category: Automotive
|
||||
> Motorsport performance sub-brand. Near-black cockpit surfaces, BMW M tricolor accents, sharp engineering geometry.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
BMW M's analyzed editorial and marketing pages lean on a near-pure black canvas (`{colors.canvas}` — #000) holding white BMW Type Next Latin headlines in **confident UPPERCASE**. The system has no decorative voltage of its own; brand energy comes from **full-bleed automotive photography** — cars cornering at speed, carbon-fiber wheel detail, driver cockpit shots, motorsport pit lanes — placed as edge-to-edge content that fills entire bands. UI chrome around the photography stays minimal: thin sans-serif copy, dividers as 1px hairlines (`{colors.hairline}`), all-caps button labels with no fill until hovered.
|
||||
|
||||
The **M tricolor stripe** — `{colors.m-blue-light}` (#0066b1) → `{colors.m-blue-dark}` (#1c69d4) → `{colors.m-red}` (#e22718) — appears sparingly as the brand's signature accent, used on the M wordmark, motorsport chrome, vehicle-tech callouts, and model badges. It is never a CTA color and never used as a background fill — the tricolor is exclusively a brand-identity marker.
|
||||
|
||||
Type voice should stay aligned with the broader BMW family system: BMW Type Next Latin Light carries the large editorial display voice, while BMW Type Next Latin regular carries body and UI text. BMW M can use heavier uppercase weights for buttons, labels, cards, and emphasis, but agents should not treat a 700/300 split as a universal BMW M rule without page-specific evidence.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Near-pure black canvas (`{colors.canvas}` — #000) with white type across the analyzed editorial and marketing pages. Configurator, account, checkout, and order-management flows are unresolved and may introduce light surfaces.
|
||||
- Display headlines use UPPERCASE BMW Type Next Latin Light when following the BMW family system. Heavier uppercase settings are reserved for labels, buttons, card titles, and observed M-specific emphasis.
|
||||
- M tricolor (`{colors.m-blue-light}` / `{colors.m-blue-dark}` / `{colors.m-red}`) used as 4px brand-stripe dividers, M-wordmark accents, and motorsport chrome — never as buttons or fills.
|
||||
- Photography fills entire bands edge-to-edge. Cars are always the visual subject; UI chrome backs off to small white labels overlaid on photography.
|
||||
- Buttons are flat with 0px corners and uppercase letterspaced labels. The "industrial precision" rectangular silhouette IS the brand.
|
||||
- Border radius is mostly zero across the system. The few exceptions are circular icon buttons such as carousel arrows and any confirmed small toggle pills.
|
||||
- Spacing is generous and grid-aligned: `{spacing.section}` (96px) between major bands; `{spacing.xxl}` (64px) inside hero photo bands; `{spacing.xl}` (40px) inside content cards.
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
### Brand & Accent
|
||||
- **Primary** (#ffffff): `{colors.primary}`. The system's primary type and CTA color. Used for h1/h2/h3 display, body text on dark, and primary button labels (the buttons themselves are transparent or canvas-colored — the white text + outline IS the button).
|
||||
- **M Blue Light** (#0066b1): `{colors.m-blue-light}`. The first stop in the M tricolor stripe. Used on M-badge accents and motorsport chrome.
|
||||
- **M Blue Dark** (#1c69d4): `{colors.m-blue-dark}`. The middle stop and BMW heritage blue value, repurposed as the middle band of the M stripe.
|
||||
- **M Red** (#e22718): `{colors.m-red}`. The third stop. The signature M-power red, used in the stripe and on motorsport-pace callouts.
|
||||
- **Electric Blue** (#0653b6): `{colors.electric-blue}`. A separate electric-vehicle accent used on M xDrive electric model pages. Distinct from the heritage blue — feels colder, more digital.
|
||||
|
||||
### Surface
|
||||
- **Canvas** (#000000): `{colors.canvas}`. The default page floor across the analyzed editorial and marketing surfaces. True black.
|
||||
- **Surface Soft** (#0d0d0d): `{colors.surface-soft}`. A barely-different-from-black used for spec table cells and footer-adjacent strips.
|
||||
- **Surface Card** (#1a1a1a): `{colors.surface-card}`. Cards, secondary buttons, icon-button backgrounds.
|
||||
- **Surface Elevated** (#262626): `{colors.surface-elevated}`. One step lighter, used for nested cards inside dark bands.
|
||||
- **Carbon Gray** (#2b2b2b): `{colors.carbon-gray}`. Carbon-fiber-inspired surface tone used on technical-spec cards.
|
||||
|
||||
### Hairlines & Borders
|
||||
- **Hairline** (#3c3c3c): `{colors.hairline}`. The 1px divider tone on dark surfaces. Used between body sections, between table rows, around card outlines.
|
||||
- **Hairline Strong** (#262626): `{colors.hairline-strong}`. Same hex as `{colors.surface-elevated}` — borders feel like one-step elevations rather than ink lines.
|
||||
|
||||
### Text
|
||||
- **Ink / On Dark** (#ffffff): `{colors.on-dark}`. All headline and primary text on dark canvas.
|
||||
- **Body** (#bbbbbb): `{colors.body}`. Default running-text color (slightly cooler than pure white). Used for body paragraphs and secondary metadata.
|
||||
- **Body Strong** (#e6e6e6): `{colors.body-strong}`. Emphasized body / lead paragraph.
|
||||
- **Muted** (#7e7e7e): `{colors.muted}`. Footer links, breadcrumbs, captions.
|
||||
|
||||
### Semantic
|
||||
- **Warning** (#f4b400): `{colors.warning}`. Used very sparingly on technical-warning callouts.
|
||||
- **Success** (#0fa336): `{colors.success}`. Order-confirmation states (rare on marketing surfaces).
|
||||
|
||||
## 3. Typography Rules
|
||||
### Font Family
|
||||
**BMW Type Next Latin** is BMW's licensed display + body typeface. Align fallback guidance with the existing BMW design system: use `BMWTypeNextLatin Light` for display when available, `BMWTypeNextLatin` for body/UI, then `Helvetica, Arial, Hiragino Kaku Gothic ProN, Hiragino Sans, Meiryo, sans-serif`.
|
||||
|
||||
Observed BMW M examples can push uppercase labels, buttons, and card titles heavier for a motorsport "stamped" voice, but the family baseline remains:
|
||||
- Display: Light (300) for large h1/h2 editorial headlines unless a captured M page clearly uses a heavier static cut
|
||||
- Body/UI: regular (400) for paragraphs, descriptive copy, and persistent navigation
|
||||
- Emphasis: 700 for buttons, category labels, and card titles; 900 only where navigation emphasis is explicitly observed
|
||||
|
||||
The important pattern is contrast and restraint, not a hard 700/300 split. Avoid medium-weight mush: use Light for large display, regular for reading text, and heavier weights only for short UI labels or M-specific emphasis.
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Token | Size | Weight | Line Height | Letter Spacing | Use |
|
||||
|---|---|---|---|---|---|
|
||||
| `{typography.display-xl}` | 80px | 300 Light | 1.0 | 0 | Hero h1 ("THE ULTIMATE", "MORE BMW M.") |
|
||||
| `{typography.display-lg}` | 56px | 300 Light | 1.05 | 0 | Section heads ("MORE FROM BMW M MAGAZINE.") |
|
||||
| `{typography.display-md}` | 40px | 300 Light / 400 | 1.1 | 0 | Sub-section heads, model names |
|
||||
| `{typography.display-sm}` | 32px | 400 | 1.15 | 0 | CTA-band heads, category page titles |
|
||||
| `{typography.title-lg}` | 24px | 700 | 1.3 | 0 | Card titles in 3-up grids |
|
||||
| `{typography.title-md}` | 20px | 400 | 1.4 | 0 | Card sub-titles, lead paragraphs |
|
||||
| `{typography.title-sm}` | 18px | 400 | 1.4 | 0 | Spec callouts, intro paragraphs |
|
||||
| `{typography.label-uppercase}` | 14px | 700 | 1.3 | 1.5px | Category tabs, "VIEW MORE" inline labels |
|
||||
| `{typography.body-md}` | 16px | 400 | 1.5 | 0 | Default body — BMW Type Next Latin regular |
|
||||
| `{typography.body-sm}` | 14px | 400 | 1.5 | 0 | Footer body, cookie consent, fine print |
|
||||
| `{typography.caption}` | 12px | 400 | 1.4 | 0.5px | Photo captions, image-credit lines |
|
||||
| `{typography.button}` | 14px | 700 | 1.0 | 1.5px | All button labels — uppercase, letterspaced |
|
||||
| `{typography.nav-link}` | 14px | 400 | 1.4 | 0.5px | Top-nav menu items |
|
||||
|
||||
### Principles
|
||||
The system contrasts light, architectural display type against crisp regular body text, then uses heavier weights only for short labels and action chrome. Letter-spacing is non-trivial: button labels and category labels carry 1.5px tracking that makes them feel "machined" rather than "typed." Display headlines stay at 0 letter-spacing — BMW Type's natural cap-height handles spacing on large sizes.
|
||||
|
||||
UPPERCASE display is the default voice for h1/h2 — sentence case appears on body and intro paragraphs but rarely on headlines. The all-caps treatment is a brand-voice signal, not a stylistic choice.
|
||||
|
||||
### Note on Font Substitutes
|
||||
If BMW Type Next Latin is unavailable, **Inter** (variable) at 300/400/700 is the closest open-source substitute. Keep display tracking at 0 unless the chosen fallback looks loose at large sizes. **Saira Condensed** is an alternative for short motorsport labels if a slightly more compressed feel is desired.
|
||||
|
||||
## 4. Component Stylings
|
||||
### Top Navigation
|
||||
|
||||
**`top-nav`** — Black nav bar pinned to the top of every page. 64px tall, `{colors.canvas}` background. Carries the BMW M logo at left (M tricolor + BMW roundel + "M" wordmark), primary horizontal menu (Models, Topics, Magazine, Configurator, Fastlane), right-side cluster with language selector, search icon, account icon. Menu items render in `{typography.nav-link}` with sentence-case labels.
|
||||
|
||||
### Buttons
|
||||
|
||||
**`button-primary`** — The signature primary CTA. Background `{colors.canvas}` (or transparent over photography), text `{colors.on-dark}` (white), 1px white border outline, 0px radius, padding 16px × 32px, height 48px. Type `{typography.button}` — uppercase 14px / 700 / 1.5px tracking. The rectangular silhouette and uppercase letterspaced label IS the brand button.
|
||||
|
||||
**`button-primary-outline`** — Same shape as primary but with transparent background and white outline only. Used over photography where a filled button would clash with the image.
|
||||
|
||||
**`button-on-light`** — Tentative pattern for unresolved light-surface contexts such as configurator, account, checkout, or order dialogs. Background `{colors.canvas}`, text `{colors.on-dark}` — black button with white text, inverted from the dark-canvas default. Confirm against the specific flow before treating it as canonical.
|
||||
|
||||
**`button-icon`** — Circular icon buttons (carousel controls, share, favorite). 48 × 48px, background `{colors.surface-card}`, white icon centered, full-circle radius. The only non-rectangular button shape in the system.
|
||||
|
||||
**`carousel-arrow`** — Specific 48 × 48 circular arrow used in photo carousels. Same shape as `button-icon` with chevron glyph.
|
||||
|
||||
**`text-link`** — Inline uppercase letterspaced links ("VIEW ALL MODELS", "READ MORE"). `{typography.label-uppercase}`, white on dark, no underline. The chevron arrow → glyph appears next to most link labels.
|
||||
|
||||
### Cards & Containers
|
||||
|
||||
**`hero-photo-band`** — Full-width black band with full-bleed automotive photography filling most of the frame. The h1 uses `{typography.display-xl}` and sits left-aligned over the photo, often with a small subtitle in `{typography.body-md}` below. Vertical padding `{spacing.xxl}` (64px). No card frame — the photo IS the band.
|
||||
|
||||
**`feature-photo-card`** — Used in 3-up grids for "MORE FROM BMW M MAGAZINE" and similar editorial sections. Background `{colors.surface-card}`, 0px radius, internal padding `{spacing.lg}` (24px). Top half of the card is a 16:9 photo (full-bleed within the card); below the photo, a category tag in `{typography.label-uppercase}`, a `{typography.title-lg}` title, and a short body description.
|
||||
|
||||
**`model-card`** — Used in the "MORE NEW M MODELS" 3-up grid. Background `{colors.canvas}` (no card surface — just photo on black), 0px radius. Top: 16:10 hero shot of the model. Below: model name in `{typography.display-md}`, short specs line in `{typography.body-sm}`, a `text-link` ("EXPLORE THIS MODEL").
|
||||
|
||||
**`magazine-article-card`** — A more text-forward card variant used on the magazine overview page. Background `{colors.canvas}` with hairline border, 0px radius. Carries a small thumbnail at top, a category label in `{typography.label-uppercase}`, headline in `{typography.title-lg}`, and a body excerpt.
|
||||
|
||||
**`spec-cell`** — Technical specification cells used on model-detail pages (engine specs, weight, top speed, 0-100 time). Background `{colors.surface-soft}` (#0d0d0d), 0px radius, padding `{spacing.lg}` (24px). Each cell holds a value in `{typography.display-sm}` at top and a label in `{typography.label-uppercase}` below.
|
||||
|
||||
**`motorsport-photo-card`** — Edge-to-edge photo cards used in the racing-team / motorsport sections. No card surface — just a full-bleed photograph with a small overlay caption in white text at the bottom-left. The photography IS the brand here.
|
||||
|
||||
**`chatbot-launcher`** — A right-side card-style entry point ("BMW M CHATBOT") on the homepage. Background `{colors.surface-card}`, 0px radius, padding `{spacing.lg}` (24px). Carries an h3 title, a short prompt, and a `button-primary` to launch.
|
||||
|
||||
**`category-tab`** + **`category-tab-active`** — The category selector tabs used on the magazine and topics pages (e.g., "ALL · MAGAZINE · MODELS · LIFESTYLE · MOTORSPORT"). Tabs render as text-only labels in `{typography.label-uppercase}`. Active state changes text color from `{colors.body}` to `{colors.on-dark}` and adds a 2px white underline below the label. No background fill, no rounded corners.
|
||||
|
||||
### Inputs & Forms
|
||||
|
||||
**`text-input`** — Standard text input on dark surfaces. Background `{colors.surface-card}`, text `{colors.on-dark}`, type `{typography.body-md}`, 0px radius, padding 12px × 16px, height 48px. 1px hairline border. Focus state thickens the border to white.
|
||||
|
||||
**`cookie-consent-card`** — A right-side cookie-banner card visible on the homepage. Background `{colors.canvas}` with 1px hairline, 0px radius, padding `{spacing.lg}` (24px). Body text in `{typography.body-sm}`. Two buttons stacked at bottom: primary outline + text-link.
|
||||
|
||||
### Signature Components
|
||||
|
||||
**`m-stripe-divider`** — The 4px horizontal stripe carrying the M tricolor (`{colors.m-blue-light}` → `{colors.m-blue-dark}` → `{colors.m-red}`). Used as a divider on motorsport chrome, between brand-identity sections, and as a hover-state indicator on category tabs. The most distinctive non-typographic element in the system.
|
||||
|
||||
**`cta-band-photo`** — A pre-footer "Drive an M" CTA band carrying full-bleed photography of a car cornering on a track, with a centered headline in `{typography.display-md}` and a `button-primary-outline` below. Vertical padding 80px. The CTA inherits the editorial gravity of the rest of the page through full-bleed photography rather than chrome.
|
||||
|
||||
### Footer
|
||||
|
||||
**`footer`** — Black footer observed on analyzed marketing pages. Background `{colors.canvas}`, text `{colors.body}`. 4-column link list at desktop covering BMW M Models / BMW M Lifestyle / Owners / Company. Vertical padding 64px. Bottom row carries the BMW corporate disclaimer in `{typography.caption}` and language selector. Treat black footer behavior as confirmed for editorial/marketing pages, not for unresolved account or checkout flows.
|
||||
|
||||
## 5. Layout Principles
|
||||
### Spacing System
|
||||
- **Base unit:** 4px.
|
||||
- **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 24px · `{spacing.xl}` 40px · `{spacing.xxl}` 64px · `{spacing.section}` 96px.
|
||||
- **Section padding (vertical):** `{spacing.section}` (96px) between major editorial bands.
|
||||
- **Hero photo bands:** `{spacing.xxl}` (64px) internal vertical padding around the hero h1 + sub-headline pair.
|
||||
- **Card internal padding:** `{spacing.lg}` (24px) for content and model cards; `{spacing.xl}` (40px) for spec-cell tables.
|
||||
- **Gutters:** `{spacing.lg}` (24px) between cards in 3-up grids; `{spacing.md}` (16px) inside footer columns.
|
||||
|
||||
### Grid & Container
|
||||
- **Max content width:** ~1440px centered on marketing pages — wider than typical SaaS to give photography breathing room.
|
||||
- **Editorial body:** Single 12-column grid; photo bands bleed full-bleed (no max-width).
|
||||
- **Card grids:** 3-up at desktop, 2-up at tablet, 1-up at mobile.
|
||||
- **Footer:** 4-column link list at desktop, 2-up at tablet, 1-up at mobile.
|
||||
|
||||
### Whitespace Philosophy
|
||||
BMW M trusts photography to do the visual work. Whitespace around photography is restrained — the cars fill the frame, and copy sits below or beside them in tightly-aligned columns. Where whitespace appears (between body sections, around CTAs), it's always uniform `{spacing.section}` (96px). The system should avoid decorative atmospheric backdrops and ornamental gradients; functional contrast scrims are allowed when photo crops would make white text fail contrast.
|
||||
|
||||
## 6. Depth & Elevation
|
||||
| Level | Treatment | Use |
|
||||
|---|---|---|
|
||||
| Flat | No shadow, no border | Body sections, top nav, footer, photo bands |
|
||||
| Soft hairline | 1px `{colors.hairline}` border | Section dividers, card outlines, table rows |
|
||||
| Card surface | `{colors.surface-card}` background over canvas — no shadow | Feature photo cards, magazine cards, chatbot launcher |
|
||||
| Photographic depth | Full-bleed photography with edge-to-edge crop | Hero bands, motorsport features — depth via subject matter, not chrome |
|
||||
|
||||
The system uses no drop shadows and no layered chrome. Depth comes entirely from photography (subject + lens + lighting) and the contrast between black canvas and slightly-elevated `{colors.surface-card}`.
|
||||
|
||||
### Decorative Depth
|
||||
- **M Stripe Divider** (`m-stripe-divider`): A 4px-tall horizontal divider carrying the M tricolor (`{colors.m-blue-light}` → `{colors.m-blue-dark}` → `{colors.m-red}`). Used on motorsport chrome, model-detail headers, and brand-identity moments. The stripe is the system's only true "decorative" element — used sparingly to mark significance.
|
||||
- **Carbon-fiber surfaces**: The technical-spec page uses `{colors.carbon-gray}` (#2b2b2b) cells with subtle texture overlay. This is a single-page treatment, not a system-wide pattern.
|
||||
- **Photographic depth**: Full-bleed cars are the depth. Lighting in the photography (track lights, sunset rim-light) does the elevation work that drop shadows would do in a SaaS system.
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
### Do
|
||||
- Anchor every page with full-bleed automotive photography. The cars are the brand voltage; chrome backs off.
|
||||
- Use UPPERCASE display headlines in `{typography.display-xl}` or `{typography.display-lg}`. Sentence-case display reads as off-brand.
|
||||
- Keep typography disciplined: Light display, regular body text, heavier weights only for short labels, buttons, card titles, or observed M-specific emphasis.
|
||||
- Reserve the M tricolor stripe for brand-identity moments — wordmark accents, motorsport chrome, model badges. Never as a button fill or surface.
|
||||
- Use 0px radius by default. Reserve full-circle geometry for circular icon buttons only.
|
||||
- Letter-space all-caps labels at 1.5px. The "machined" feel is non-negotiable.
|
||||
- Use `{spacing.section}` (96px) between major editorial bands for grid-aligned vertical rhythm.
|
||||
|
||||
### Don't
|
||||
- Don't introduce a brand color outside the M tricolor (`{colors.m-blue-light}` / `{colors.m-blue-dark}` / `{colors.m-red}`) and the documented electric-blue accent.
|
||||
- Don't force body type into Light if readability suffers. Body should usually stay regular 400; reserve Light for large display and secondary editorial moments.
|
||||
- Don't use rounded buttons. The rectangular silhouette IS the brand. Rounded corners read as consumer-tech, not motorsport.
|
||||
- Don't put decorative gradient backdrops behind hero type. If a crop makes text fail contrast, add a functional black scrim, reposition the crop, or move the text into a solid black panel.
|
||||
- Don't repeat the same surface mode in two consecutive bands. Rhythm: photo band → spec table → photo band → magazine grid → photo band. Two text-only bands in a row read as a corporate site.
|
||||
- Don't use the M stripe as a button fill. The stripe is a divider / accent — never an action surface.
|
||||
- Don't bold uppercase tracking under 1.5px on button labels — the spacing is what makes them feel "machined."
|
||||
|
||||
## 8. Responsive Behavior
|
||||
### Breakpoints
|
||||
|
||||
| Name | Width | Key Changes |
|
||||
|---|---|---|
|
||||
| Mobile | < 768px | Hamburger nav; hero h1 scales 80→48px; demo grid 1-up; photo cards stack full-width; footer 4 cols → 1 |
|
||||
| Tablet | 768–1024px | Top nav stays horizontal but tightens; 2-up card grids; spec tables 2-up |
|
||||
| Desktop | 1024–1440px | Full top-nav; 3-up card grids; spec tables 4-up |
|
||||
| Wide | > 1440px | Same as desktop with more breathing room; max content 1440px |
|
||||
|
||||
### Touch Targets
|
||||
- `button-primary` renders at 48 × 48px minimum where possible; never go below a 44 × 44px pointer target.
|
||||
- `button-icon` and `carousel-arrow` are exactly 48 × 48px — comfortably above the 44 × 44px minimum.
|
||||
- `text-input` height is 48px.
|
||||
- Category tabs render as text-only labels with at least 12px vertical padding and enough horizontal spacing to create a 44px minimum effective tap area.
|
||||
|
||||
### Text Over Photography & Focus
|
||||
- White body text over photography must meet at least 4.5:1 contrast; large display text and icon strokes must meet at least 3:1.
|
||||
- First choice is crop discipline: place text over dark track, shadow, cockpit, or black bodywork regions. Avoid placing text over sky, headlights, white paint, concrete, or reflective highlights.
|
||||
- If crop discipline is not enough, use a functional black scrim (`rgba(0,0,0,0.45)` to `rgba(0,0,0,0.70)`) behind the text area. A left-to-right scrim is acceptable only as an accessibility layer, not as decoration.
|
||||
- If a scrim still fails contrast, move copy into a solid `{colors.canvas}` panel with 24px minimum padding.
|
||||
- Focus visibility on black or photo backgrounds must use a 2px white outline plus a 2px offset ring in `{colors.electric-blue}`. On light unresolved surfaces, invert to a 2px `{colors.electric-blue}` outline with visible offset.
|
||||
|
||||
### Collapsing Strategy
|
||||
- Top nav collapses to a hamburger sheet at < 768px; the menu opens as a full-screen black overlay with the M tricolor stripe at the top.
|
||||
- Photography stays full-bleed at every breakpoint — never collapses to a margin'd container.
|
||||
- Card grids reduce columns rather than scaling cards down; photography retains its native aspect ratio.
|
||||
- Spec tables collapse from 4-up to 2-up to 1-up; spec values stay at `{typography.display-sm}` regardless of column count.
|
||||
- The M-stripe divider stays at 4px height across all breakpoints.
|
||||
|
||||
### Image Behavior
|
||||
- Hero photography crops responsively — wider crops at desktop, vertical crops on mobile.
|
||||
- Lifestyle and motorsport photos retain native aspect ratios; the system never letterboxes or pillarboxes.
|
||||
- The M wordmark + tricolor logo scales proportionally with viewport width.
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
1. Focus on ONE component at a time. Reference its component name (`hero-photo-band`, `spec-cell`).
|
||||
2. New components default to 0px radius. Only use full-circle geometry for circular icon buttons.
|
||||
3. Variants (`-active`, `-disabled`) live as separate prose entries next to the component name.
|
||||
4. Use `{token.refs}` everywhere — never inline hex.
|
||||
5. Never document hover states. Default and Active/Pressed only.
|
||||
6. Display headlines stay UPPERCASE and light/architectural by default; body stays sentence-case regular. Use 700 only for short emphasis and UI labels.
|
||||
7. The M tricolor is brand-identity-only — never extend it to system tokens for "primary action."
|
||||
8. White-on-photo text needs a contrast strategy every time: crop first, scrim second, solid panel if needed.
|
||||
9. When in doubt about emphasis: bigger photography before bigger type.
|
||||
|
||||
### Known Gaps
|
||||
- The dembrandt frequency analyzer captured the white text (count 955) as the highest-frequency token. The black canvas was inferred from screenshot — dembrandt's body-background sampling didn't surface it as a top palette entry, but the page is unambiguously black-on-white-text.
|
||||
- The exact M tricolor stops are documented from public BMW brand guidelines; the screenshots show the stripe as a small element but pixel-sampling at this resolution doesn't reliably distinguish #0066b1 from #1c69d4. Treat the documented stops as canonical based on BMW Design Works' published brand spec.
|
||||
- BMW Type Next Latin weight evidence is incomplete. The broader BMW design system documents Light (300) display and regular (400) body/UI; BMW M-specific heavier label usage should be treated as observed emphasis, not a global replacement for BMW family typography.
|
||||
- Animation and transition timings (photo carousel transitions, hover-reveal effects, configurator interactions) are not in scope.
|
||||
- Form validation states beyond `text-input` defaults are not extracted — error / success input variants would need a configurator or order flow to confirm.
|
||||
- The configurator surface (vehicle build pages with color / wheel / interior pickers) was not in the analyzed URL set; its swatch grid, comparison panels, and price-summary card are not documented here.
|
||||
- The cookie consent overlay obscured part of the homepage hero in the captured screenshot; secondary hero treatments (different car models cycling through the hero band) may carry variations not captured.
|
||||
68
plugins/_official/design-systems/bmw-m/open-design.json
Normal file
68
plugins/_official/design-systems/bmw-m/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-bmw-m",
|
||||
"title": "BMW M",
|
||||
"version": "0.1.0",
|
||||
"description": "Motorsport performance sub-brand. Near-black cockpit surfaces, BMW M tricolor accents, sharp engineering geometry.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"automotive"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the BMW M design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "bmw-m",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
183
plugins/_official/design-systems/bmw/DESIGN.md
Normal file
183
plugins/_official/design-systems/bmw/DESIGN.md
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
# Design System Inspired by BMW
|
||||
|
||||
> Category: Automotive
|
||||
> Luxury automotive. Dark premium surfaces, precise German engineering aesthetic.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
BMW's website is automotive engineering made visual — a design system that communicates precision, performance, and German industrial confidence. The page alternates between deep dark hero sections (featuring full-bleed automotive photography) and clean white content areas, creating a cinematic rhythm reminiscent of a luxury car showroom where vehicles are lit against darkness. The BMW CI2020 design language (their corporate identity refresh) defines every element.
|
||||
|
||||
The typography is built on BMWTypeNextLatin — a proprietary typeface in two variants: BMWTypeNextLatin Light (weight 300) for massive uppercase display headings, and BMWTypeNextLatin Regular for body and UI text. The 60px uppercase headline at weight 300 is the defining typographic gesture — light-weight type that whispers authority rather than shouting it. The fallback stack includes Helvetica and Japanese fonts (Hiragino, Meiryo), reflecting BMW's global presence.
|
||||
|
||||
What makes BMW distinctive is its CSS variable-driven theming system. Context-aware variables (`--site-context-highlight-color: #1c69d4`, `--site-context-focus-color: #0653b6`, `--site-context-metainfo-color: #757575`) suggest a design system built for multi-brand, multi-context deployment where colors can be swapped globally. The blue highlight color (`#1c69d4`) is BMW's signature blue — used sparingly for interactive elements and focus states, never decoratively. Zero border-radius was detected — BMW's design is angular, sharp-cornered, and uncompromisingly geometric.
|
||||
|
||||
**Key Characteristics:**
|
||||
- BMWTypeNextLatin Light (weight 300) uppercase for display — whispered authority
|
||||
- BMW Blue (`#1c69d4`) as singular accent — used only for interactive elements
|
||||
- Zero border-radius detected — angular, sharp-cornered, industrial geometry
|
||||
- Dark hero photography + white content sections — showroom lighting rhythm
|
||||
- CSS variable-driven theming: `--site-context-*` tokens for brand flexibility
|
||||
- Weight 900 for navigation emphasis — extreme contrast with 300 display
|
||||
- Tight line-heights (1.15–1.30) throughout — compressed, efficient, German engineering
|
||||
- Full-bleed automotive photography as primary visual content
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary Brand
|
||||
- **Pure White** (`#ffffff`): `--site-context-theme-color`, primary surface, card backgrounds
|
||||
- **BMW Blue** (`#1c69d4`): `--site-context-highlight-color`, primary interactive accent
|
||||
- **BMW Focus Blue** (`#0653b6`): `--site-context-focus-color`, keyboard focus and active states
|
||||
|
||||
### Neutral Scale
|
||||
- **Near Black** (`#262626`): Primary text on light surfaces, dark link text
|
||||
- **Meta Gray** (`#757575`): `--site-context-metainfo-color`, secondary text, metadata
|
||||
- **Silver** (`#bbbbbb`): Tertiary text, muted links, footer elements
|
||||
|
||||
### Interactive States
|
||||
- All links hover to white (`#ffffff`) — suggesting primarily dark-surface navigation
|
||||
- Text links use underline: none on hover — clean interaction
|
||||
|
||||
### Shadows
|
||||
- Minimal shadow system — depth through photography and dark/light section contrast
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Families
|
||||
- **Display Light**: `BMWTypeNextLatin Light`, fallbacks: `Helvetica, Arial, Hiragino Kaku Gothic ProN, Hiragino Sans, Meiryo`
|
||||
- **Body / UI**: `BMWTypeNextLatin`, same fallback stack
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Notes |
|
||||
|------|------|------|--------|-------------|-------|
|
||||
| Display Hero | BMWTypeNextLatin Light | 60px (3.75rem) | 300 | 1.30 (tight) | `text-transform: uppercase` |
|
||||
| Section Heading | BMWTypeNextLatin | 32px (2.00rem) | 400 | 1.30 (tight) | Major section titles |
|
||||
| Nav Emphasis | BMWTypeNextLatin | 18px (1.13rem) | 900 | 1.30 (tight) | Navigation bold items |
|
||||
| Body | BMWTypeNextLatin | 16px (1.00rem) | 400 | 1.15 (tight) | Standard body text |
|
||||
| Button Bold | BMWTypeNextLatin | 16px (1.00rem) | 700 | 1.20–2.88 | CTA buttons |
|
||||
| Button | BMWTypeNextLatin | 16px (1.00rem) | 400 | 1.15 (tight) | Standard buttons |
|
||||
|
||||
### Principles
|
||||
- **Light display, heavy navigation**: Weight 300 for hero headlines creates whispered elegance; weight 900 for navigation creates stark authority. This extreme weight contrast (300 vs 900) is the signature typographic tension.
|
||||
- **Universal uppercase display**: The 60px hero is always uppercase — creating a monumental, architectural quality.
|
||||
- **Tight everything**: Line-heights from 1.15 to 1.30 across the entire system. Nothing breathes — every line is compressed, efficient, German-engineered.
|
||||
- **Single font family**: BMWTypeNextLatin handles everything from 60px display to 16px body — unity through one typeface at different weights.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
- Text: 16px BMWTypeNextLatin, weight 700 for primary, 400 for secondary
|
||||
- Line-height: 1.15–2.88 (large variation suggests padding-driven sizing)
|
||||
- Border: white bottom-border on dark surfaces (`1px solid #ffffff`)
|
||||
- No border-radius — sharp rectangular buttons
|
||||
|
||||
### Cards & Containers
|
||||
- No border-radius — all containers are sharp-cornered rectangles
|
||||
- White backgrounds on light sections
|
||||
- Dark backgrounds for hero/feature sections
|
||||
- No visible borders on most elements
|
||||
|
||||
### Navigation
|
||||
- BMWTypeNextLatin 18px weight 900 for primary nav links
|
||||
- White text on dark header
|
||||
- BMW logo 54x54px
|
||||
- Hover: remains white, text-decoration none
|
||||
- "Home" text link in header
|
||||
|
||||
### Image Treatment
|
||||
- Full-bleed automotive photography
|
||||
- Dark cinematic lighting
|
||||
- Edge-to-edge hero images
|
||||
- Car photography as primary visual content
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
- Base unit: 8px
|
||||
- Scale: 1px, 5px, 8px, 10px, 12px, 15px, 16px, 20px, 24px, 30px, 32px, 40px, 45px, 56px, 60px
|
||||
|
||||
### Grid & Container
|
||||
- Full-width hero photography
|
||||
- Centered content sections
|
||||
- Footer: multi-column link grid
|
||||
|
||||
### Whitespace Philosophy
|
||||
- **Showroom pacing**: Dark hero sections with generous padding create the feeling of walking through a showroom where each vehicle is spotlit in its own space.
|
||||
- **Compressed content**: Body text areas use tight line-heights and compact spacing — information-dense, no waste.
|
||||
|
||||
### Border Radius Scale
|
||||
- **None detected.** BMW uses sharp corners exclusively — every element is a precise rectangle. This is the most angular design system analyzed.
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|-------|-----------|-----|
|
||||
| Photography (Level 0) | Full-bleed dark imagery | Hero backgrounds |
|
||||
| Flat (Level 1) | White surface, no shadow | Content sections |
|
||||
| Focus (Accessibility) | BMW Focus Blue (`#0653b6`) | Focus states |
|
||||
|
||||
**Shadow Philosophy**: BMW uses virtually no shadows. Depth is created entirely through the contrast between dark photographic sections and white content sections — the automotive lighting does the elevation work.
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
|
||||
### Do
|
||||
- Use BMWTypeNextLatin Light (300) uppercase for all display headings
|
||||
- Keep ALL corners sharp (0px radius) — angular geometry is non-negotiable
|
||||
- Use BMW Blue (`#1c69d4`) only for interactive elements — never decoratively
|
||||
- Apply weight 900 for navigation emphasis — the extreme weight contrast is intentional
|
||||
- Use full-bleed automotive photography for hero sections
|
||||
- Keep line-heights tight (1.15–1.30) throughout
|
||||
- Use `--site-context-*` CSS variables for theming
|
||||
|
||||
### Don't
|
||||
- Don't round corners — zero radius is the BMW identity
|
||||
- Don't use BMW Blue for backgrounds or large surfaces — it's an accent only
|
||||
- Don't use medium font weights (500–600) — the system uses 300, 400, 700, 900 extremes
|
||||
- Don't add decorative elements — the photography and typography carry everything
|
||||
- Don't use relaxed line-heights — BMW text is always compressed
|
||||
- Don't lighten the dark hero sections — the contrast with white IS the design
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
| Name | Width | Key Changes |
|
||||
|------|-------|-------------|
|
||||
| Mobile Small | <375px | Minimum supported |
|
||||
| Mobile | 375–480px | Single column |
|
||||
| Mobile Large | 480–640px | Slight adjustments |
|
||||
| Tablet Small | 640–768px | 2-column begins |
|
||||
| Tablet | 768–920px | Standard tablet |
|
||||
| Desktop Small | 920–1024px | Desktop layout begins |
|
||||
| Desktop | 1024–1280px | Standard desktop |
|
||||
| Large Desktop | 1280–1440px | Expanded |
|
||||
| Ultra-wide | 1440–1600px | Maximum layout |
|
||||
|
||||
### Collapsing Strategy
|
||||
- Hero: 60px → scales down, maintains uppercase
|
||||
- Navigation: horizontal → hamburger
|
||||
- Photography: full-bleed maintained at all sizes
|
||||
- Content sections: stack vertically
|
||||
- Footer: multi-column → stacked
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- Background: Pure White (`#ffffff`)
|
||||
- Text: Near Black (`#262626`)
|
||||
- Secondary text: Meta Gray (`#757575`)
|
||||
- Accent: BMW Blue (`#1c69d4`)
|
||||
- Focus: BMW Focus Blue (`#0653b6`)
|
||||
- Muted: Silver (`#bbbbbb`)
|
||||
|
||||
### Example Component Prompts
|
||||
- "Create a hero: full-width dark automotive photography background. Heading at 60px BMWTypeNextLatin Light weight 300, uppercase, line-height 1.30, white text. No border-radius anywhere."
|
||||
- "Design navigation: dark background. BMWTypeNextLatin 18px weight 900 for links, white text. BMW logo 54x54. Sharp rectangular layout."
|
||||
- "Build a button: 16px BMWTypeNextLatin weight 700, line-height 1.20. Sharp corners (0px radius). White bottom border on dark surface."
|
||||
- "Create content section: white background. Heading at 32px weight 400, line-height 1.30, #262626. Body at 16px weight 400, line-height 1.15."
|
||||
|
||||
### Iteration Guide
|
||||
1. Zero border-radius — every corner is sharp, no exceptions
|
||||
2. Weight extremes: 300 (display), 400 (body), 700 (buttons), 900 (nav)
|
||||
3. BMW Blue for interactive only — never as background or decoration
|
||||
4. Photography carries emotion — the UI is pure precision
|
||||
5. Tight line-heights everywhere — 1.15 to 1.30 is the range
|
||||
68
plugins/_official/design-systems/bmw/open-design.json
Normal file
68
plugins/_official/design-systems/bmw/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-bmw",
|
||||
"title": "BMW",
|
||||
"version": "0.1.0",
|
||||
"description": "Luxury automotive. Dark premium surfaces, precise German engineering aesthetic.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"automotive"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the BMW design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "bmw",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/bold/DESIGN.md
Normal file
71
plugins/_official/design-systems/bold/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Bold
|
||||
|
||||
> Category: Bold & Expressive
|
||||
> Strong visual presence with heavyweight typography, high-contrast colors, and commanding layouts.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Strong visual presence with heavyweight typography, high-contrast colors, and commanding layouts.
|
||||
|
||||
- **Visual style:** bold
|
||||
- **Color stance:** primary, secondary
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#0077BC` — Token from style foundations.
|
||||
- **Secondary:** `#009866` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#111111` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#111111` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#0077BC) for CTA emphasis.
|
||||
- Use Surface (#111111) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** desktop-first expressive scale
|
||||
- **Families:** primary=Archivo Black, display=Archivo Black, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#0077BC`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#0077BC) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/bold/open-design.json
Normal file
68
plugins/_official/design-systems/bold/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-bold",
|
||||
"title": "Bold",
|
||||
"version": "0.1.0",
|
||||
"description": "Strong visual presence with heavyweight typography, high-contrast colors, and commanding layouts.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"bold-expressive"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Bold design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "bold",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/brutalism/DESIGN.md
Normal file
71
plugins/_official/design-systems/brutalism/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Brutalism
|
||||
|
||||
> Category: Bold & Expressive
|
||||
> Raw, anti-design aesthetic inspired by concrete architecture with unadorned elements, jarring layouts, and functional minimalism.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Raw, anti-design aesthetic inspired by concrete architecture with unadorned elements, jarring layouts, and functional minimalism.
|
||||
|
||||
- **Visual style:** bold
|
||||
- **Color stance:** primary, secondary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#DD614C` — Token from style foundations.
|
||||
- **Secondary:** `#DAA144` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#DD614C) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** desktop-first expressive scale
|
||||
- **Families:** primary=Darker Grotesque, display=Darker Grotesque, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#DD614C`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#DD614C) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/brutalism/open-design.json
Normal file
68
plugins/_official/design-systems/brutalism/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-brutalism",
|
||||
"title": "Brutalism",
|
||||
"version": "0.1.0",
|
||||
"description": "Raw, anti-design aesthetic inspired by concrete architecture with unadorned elements, jarring layouts, and functional minimalism.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"bold-expressive"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Brutalism design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "brutalism",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
271
plugins/_official/design-systems/bugatti/DESIGN.md
Normal file
271
plugins/_official/design-systems/bugatti/DESIGN.md
Normal file
|
|
@ -0,0 +1,271 @@
|
|||
# Design System Inspired by Bugatti
|
||||
|
||||
> Category: Automotive
|
||||
> Hypercar brand. Cinema-black canvas, monochrome austerity, monumental display type.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Bugatti.com does not behave like a website — it behaves like a feature-length car film that a visitor happens to be standing inside. The canvas is pure `#000000`, the only color that appears at rest is white, and the entire page is carried by full-bleed hero video and photography with a single typographic moment laid over the top. There are no cards, no grids, no promotional modules, no newsletter signups, no three-column editorial layouts. It is one continuous cinema-black channel, interrupted only by the cars themselves and a few pill-shaped calls to action that quietly say things like "EXPLORE OUR OPPORTUNITIES" in ALL CAPS monospace.
|
||||
|
||||
The single most distinctive move in the entire system is **scale**: the `Bugatti Display` typeface runs at **288px** at hero moments. Two hundred and eighty-eight pixels. That is not a typo — the dembrandt sweep extracted a heading style rendered at an 18rem size, ALL CAPS, line-height 1.0, meant to be read the way you read a brand mark on the front of a Chiron: from across a showroom floor. At 288px the headline is no longer text, it is architecture. The secondary display scale of 60px feels almost miniature next to it, and the 36px mid-display feels like fine print. This typographic hierarchy is the most extreme of any production brand website in this catalog, and it is what gives Bugatti.com its sculptural, couture-showroom presence.
|
||||
|
||||
The other signature is **monochromatic austerity**. The entire homepage uses exactly three colors at rest: `#000000`, `#ffffff`, and `#999999` (mid gray for disabled/tertiary states). There is no accent, no brand blue, no hazard color, no commerce orange, no gradient wash. The designers have made a conscious decision that Bugatti's color system should be the car paint itself — the page is a black velvet display stand, and the only color that exists is whatever blue-on-black lacquer the hero vehicle happens to be wearing today. This discipline is the exact opposite of PlayStation's PlayStation Blue or The Verge's Jelly Mint: Bugatti refuses to compete with its own product.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Cinema-black `#000000` canvas for the entire page — no gradients, no tints, no accents
|
||||
- 288px `Bugatti Display` ALL-CAPS headline — the most extreme display scale in the catalog
|
||||
- Three-font custom family: `Bugatti Display` (sculptural), `Bugatti Monospace` (UI labels), `Bugatti Text Regular` (body)
|
||||
- Monochrome-only palette: black, white, and a single `#999999` mid gray for tertiary/disabled
|
||||
- Pill buttons at `9999px` radius — transparent with a 1px white border, padding `12px 24px`
|
||||
- Video- and photography-first page — the chrome is almost silent so the product can speak
|
||||
- Mono UPPERCASE labels with 1.2–1.4px letter-spacing on every CTA, navigation link, and caption
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Velvet Black** (`#000000`): The entire canvas. Not near-black, not warm black — the pure HTML `#000`. Bugatti treats this as a display-stand surface, the way a jewelry brand treats a black velvet cloth.
|
||||
- **Showroom White** (`#ffffff`): All text, all borders, all CTAs. White is the only color that appears at rest on the chrome. It has the weight of typeset print on a matte museum label.
|
||||
|
||||
### Secondary & Accent
|
||||
- **Silver Mist** (`#999999`): The single gray in the system. Used for secondary button borders, disabled states, and the thinnest hairline dividers. Treat this as the "75%-volume" version of white — never a color, just a quieter version of the same voice.
|
||||
|
||||
### Surface & Background
|
||||
- **Velvet Black** (`#000000`): The only surface. There is no secondary surface, no elevated card, no modal backdrop. If something needs to feel "separate", it sits on the same black and is marked with a thin `#999999` border — no color change.
|
||||
|
||||
### Neutrals & Text
|
||||
- **Primary Text** (`#ffffff`): All headlines, body copy, button labels, and navigation items.
|
||||
- **Tertiary Text** (`#999999`): Disclaimer text, placeholder labels, and the faintest supporting metadata. Used sparingly — Bugatti prefers to hide secondary content rather than dim it.
|
||||
|
||||
### Semantic & Accent
|
||||
- **Tailwind Ring Leak** (`rgba(59, 130, 246, 0.5)`): A Tailwind default `--tw-ring-color` leaks into the extracted tokens from the build system — this is **not** part of the Bugatti brand palette. Ignore it. If a real focus state is needed, use a 1px `#ffffff` ring instead.
|
||||
|
||||
### Gradient System
|
||||
None. There are zero decorative gradients on Bugatti.com. The only "gradient" on the page is whatever natural light gradient exists inside the hero video of the car itself. The brand refuses to apply any chrome gradient that could compete with the atmospheric lighting of the product photography.
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
- **Bugatti Display** — fallback: `ui-sans-serif`, `system-ui`. A proprietary custom display typeface used only at very large sizes for hero and mid-display headlines. Designed to be read at architectural scale — at 288px, its geometry doubles as a visual element, not just text. The face carries a faint hint of early-20th-century Grand Prix typography (the period when Ettore Bugatti was racing) without ever becoming nostalgic.
|
||||
- **Bugatti Monospace** — fallback: `ui-sans-serif`, `system-ui`. A custom monospaced face reserved for every UI label on the site. It handles all navigation links, all button labels, all captions, and all UPPERCASE metadata. The strict mono tracking (1.2–1.4px letter-spacing on all usages) gives the UI the appearance of a technical dossier or dashboard telemetry printout — appropriate for a company that builds 1600-horsepower hypercars.
|
||||
- **Bugatti Text Regular** — fallback: `ui-sans-serif`, `system-ui`. The body copy workhorse, used for the rare paragraph and inline reading text. Weights and styles are restrained — this font exists to be invisible when the display type is shouting and the monospace is whispering.
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|---|---|---|---|---|---|---|
|
||||
| Hero Display (Monumental) | Bugatti Display | 288px / 18.00rem | 400 | 1.00 | — | ALL CAPS — the largest display scale in this catalog, architectural in presence |
|
||||
| Mid Display (Feature) | Bugatti Display | 60px / 3.75rem | 400 | 1.00 | 1.4px | Feature-panel headlines, ALL CAPS optional |
|
||||
| Mid Display (Subfeature) | Bugatti Display | 60px / 3.75rem | 400 | 1.00 | — | Secondary feature headlines |
|
||||
| Section Heading | Bugatti Display | 36px / 2.25rem | 400 | 1.11 | — | Section-level title |
|
||||
| Monumental Mono Headline | Bugatti Monospace | 60px / 3.75rem | 400 | 1.00 | — | UPPERCASE — reserved for technical/section labels at hero scale |
|
||||
| Body Small (Display) | Bugatti Display | 16px / 1.00rem | 400 | 1.50 | — | Display face used sparingly at body size for marketing copy |
|
||||
| Lead Body | Bugatti Text Regular | 20px / 1.25rem | 400 | 1.40 | — | Paragraph lead |
|
||||
| Body Regular | Bugatti Text Regular | 16px / 1.00rem | 400 | 1.50 | — | Standard reading body |
|
||||
| Body Compact | Bugatti Text Regular | 14px / 0.88rem | 400 | 1.43 | — | Dense body |
|
||||
| UI Link (Caps) | Bugatti Monospace | 14px / 0.88rem | 400 | 1.43 | 1.4px | UPPERCASE — primary navigation and primary link style |
|
||||
| UI Link (Mono Plain) | Bugatti Monospace | 14px / 0.88rem | 400 | 1.43 | — | Plain-case mono link — rare, used for disclaimer links |
|
||||
| Button Label (CAPS) | Bugatti Monospace | 14px / 0.88rem | 400 | 1.43 | 1.4px | UPPERCASE — primary pill-button label |
|
||||
| Button Label (Compact) | Bugatti Monospace | 12px / 0.75rem | 400 | 1.33 | 1.2px | UPPERCASE — small pill-button label |
|
||||
| Button Label (Unstyled) | Bugatti Monospace | 12px / 0.75rem | 400 | 1.33 | — | Plain-case mono — footer microbutton |
|
||||
| Caption CAPS Wide | Bugatti Monospace | 14px / 0.88rem | 400 | 1.43 | 1.4px | UPPERCASE — section eyebrows and tech-spec labels |
|
||||
| Caption Plain Wide | Bugatti Monospace | 14px / 0.88rem | 400 | 1.43 | 1.4px | Plain-case with 1.4px tracking — the "mid-formal" register |
|
||||
| Caption Plain | Bugatti Monospace | 14px / 0.88rem | 400 | 1.43 | — | Plain mono caption |
|
||||
| Caption Micro (Text) | Bugatti Text Regular | 14px / 0.88rem | 400 | 1.43 | — | Body-face caption |
|
||||
| Caption Micro (CAPS) | Bugatti Monospace | 12px / 0.75rem | 400 | 1.33 | 1.2px | UPPERCASE — smallest tagging label |
|
||||
| Caption Micro (Plain) | Bugatti Monospace | 12px / 0.75rem | 400 | 1.33 | — | Smallest plain-case mono |
|
||||
|
||||
### Principles
|
||||
- **Bugatti Display is a sculpture, not a font.** If you find yourself typesetting body copy or a button in Bugatti Display, you're using the wrong tool. Reserve this face for headlines at **36px minimum**, ideally 60px+, and at least once per page use it at 200px+ to create the monumental effect the brand is built around.
|
||||
- **Bugatti Monospace owns the UI.** Every navigation link, every button, every caption, every eyebrow runs in Bugatti Monospace — usually UPPERCASE with 1.2–1.4px tracking. This mono-caps discipline is what makes the UI read like a Grand Prix telemetry panel rather than a luxury shopping cart.
|
||||
- **Bugatti Text Regular is invisible.** It appears only in short paragraphs and inline reading copy, usually at 14–20px. It is never used for labels, buttons, or display.
|
||||
- **There is no bold.** Every weight in the extracted tokens is regular (400). Bugatti does not use weight for hierarchy — it uses scale. When you need emphasis, make the type bigger, not heavier.
|
||||
- **Tracking has two registers.** Mono caps always carry 1.2–1.4px letter-spacing. Display type at 60px+ sometimes carries 1.4px tracking at the hero scale. Body type has no tracking.
|
||||
- **Line-height is brutally tight at display.** Every Bugatti Display usage runs at line-height 1.00 or 1.11. Headlines touch each other when they wrap — that's the design. Do not relax the leading.
|
||||
|
||||
### Note on Font Substitutes
|
||||
The 1.00 line-height and 288px display scale both assume the **proprietary Bugatti Display face**, which is drawn with compact vertical metrics purpose-built for architectural scale. If you substitute with open-source extended geometric displays like **Unbounded**, **Big Shoulders Display**, or **Archivo Black**, make two adjustments: (1) **loosen line-height to ~1.05–1.10** to prevent ascender collisions, and (2) **cap the maximum display size at ~104–128px** on most viewports — these substitutes have wider horizontal metrics than Bugatti Display, so a 288px monumental headline will wrap across 4+ lines and overwhelm the layout. Reserve the 200px+ scale only for single-word monumental moments (e.g., "BUGATTI" alone). Bugatti Monospace substitutes (Space Mono, JetBrains Mono) and Bugatti Text Regular substitutes (Inter, DM Sans) work at the token values without adjustment.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
|
||||
**Primary — White Outlined Pill**
|
||||
- Background: transparent
|
||||
- Text: `#ffffff`, Bugatti Monospace 14px / 400 / 1.4px tracking, UPPERCASE
|
||||
- Border: `1px solid #ffffff`
|
||||
- Border radius: `9999px` — full pill
|
||||
- Padding: `12px 24px`
|
||||
- Outline: `rgb(255, 255, 255) none 0px` at rest
|
||||
- Hover: likely background fill to `#ffffff` with black text, or a subtle opacity dim (the extracted token set did not capture a bespoke hover — treat this as a safe assumption since the default Bugatti interaction is restraint)
|
||||
- Active: opacity drop to ~0.7
|
||||
- Focus: use a 1px `#ffffff` outer ring via `box-shadow: 0 0 0 1px #ffffff, 0 0 0 2px #000000` for contrast
|
||||
- Transition: 200–300ms ease on background/color — quiet, never bouncy
|
||||
|
||||
**Secondary — Gray Rounded Button**
|
||||
- Background: transparent
|
||||
- Text: `#ffffff`, Bugatti Monospace 12px / 400 / 1.2px tracking, UPPERCASE
|
||||
- Border: `1px solid #999999` (Silver Mist)
|
||||
- Border radius: `6px` — subtle corner, the only non-pill non-zero radius in the system
|
||||
- Padding: `6px 12px`
|
||||
- Hover: border transitions to `#ffffff`, text stays white
|
||||
- Active: opacity 0.7
|
||||
- Used for compact utility buttons (menu toggles, closed-dialog buttons)
|
||||
|
||||
**Ghost — Unbordered Link Button**
|
||||
- Background: transparent
|
||||
- Text: `#ffffff`, Bugatti Monospace 12px / 400 — plain or UPPERCASE
|
||||
- No border, no padding beyond inline
|
||||
- Used in the footer and tertiary nav
|
||||
|
||||
### Cards & Containers
|
||||
- **There are no cards.** Bugatti.com has no card component. The entire page is a sequence of full-bleed media blocks with a headline and optional CTA overlaid — more akin to a film chapter than a card grid.
|
||||
- The closest thing to a "container" is the rare bordered section that uses a `1px solid #999999` frame, a `6px` border radius, and `#000000` interior. These are reserved for cookie-consent notices and modal-style dialogues, not editorial content.
|
||||
- Hover state on media blocks: none. The video plays, the CTA becomes clickable, and that is the entire interaction vocabulary.
|
||||
|
||||
### Inputs & Forms
|
||||
- The extracted tokens captured **zero input styles** (`⚠ Inputs: 0 styles`). This is because Bugatti.com has essentially no forms on the homepage — no newsletter signup, no search bar, no contact form, no email capture. When forms do appear (on deeper pages), apply these defaults consistent with the rest of the system:
|
||||
- **Default**: `#000000` background, `1px solid #999999` border, `6px` radius, `#ffffff` text in Bugatti Text Regular 16px, placeholder `#999999`.
|
||||
- **Focus**: border transitions to `#ffffff`, no glow — the border change IS the focus signal.
|
||||
- **Error**: border stays white; add a `#999999` inline message below. Bugatti does not use red error colors — it stays in the monochrome palette.
|
||||
- **Transition**: ~250ms ease on border-color.
|
||||
|
||||
### Navigation
|
||||
|
||||
- **Top nav**: black (`#000000`) thin strip with the Bugatti "EB" monogram or full "BUGATTI" wordmark centered, a hamburger "MENU" link left, and a "STORE" link right. Both nav links are Bugatti Monospace 14px UPPERCASE with 1.4px tracking.
|
||||
- **Logo**: 128×29px at desktop scale — smaller than nearly every other brand in this catalog. Bugatti does not need to shout its name.
|
||||
- **Hover on nav links**: color stays `#ffffff` — the hover signal is a subtle text-decoration underline or an opacity shift to ~0.75. No color change.
|
||||
- **Mobile**: the full nav collapses to just three elements — "MENU", the wordmark, and "STORE" — which is basically the desktop layout minus the separator spacing.
|
||||
- **Sticky behavior**: the nav is pinned at the top on scroll and stays black-on-black. When it overlaps a dark video, it becomes nearly invisible, which is by design.
|
||||
|
||||
### Image & Video Treatment
|
||||
- **Aspect ratios**: 16:9 and 21:9 for hero video, 4:3 for mid-feature photography, 1:1 for rare portrait shots.
|
||||
- **Corners**: rare — most media is full-bleed with zero border radius. When radius appears, it's `6px`.
|
||||
- **Full-bleed**: yes, always. The hero video fills the viewport. Secondary feature video fills 100% of the section width.
|
||||
- **Captions**: Bugatti Monospace 12px UPPERCASE in `#ffffff` at ~1.2px tracking, placed below the media or in the lower-left corner.
|
||||
- **Hover**: no zoom, no scale, no scrim. The video plays, that is the hover state.
|
||||
- **Lazy loading**: `loading="lazy"` on every image below the fold; hero video is preloaded.
|
||||
|
||||
### Atmospheric Overlay
|
||||
- When type sits over photography or video that might threaten legibility, Bugatti uses a subtle `rgba(0, 0, 0, 0.4)` linear gradient from bottom (40% black) to top (transparent) — the only "shadow-like" effect in the system. It's a vignette, not a drop shadow.
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
- **Base unit**: 8px.
|
||||
- **Scale** (from tokens): 4, 6, 12, 36, 48, 64px. Six values. **Six.** This is one of the smallest spacing scales of any major brand site — Bugatti uses a handful of discrete gaps and refuses to invent in-between values.
|
||||
- **Section padding**: typically 48–64px vertical. Hero panels are full-viewport-height, which bypasses the scale entirely.
|
||||
- **Button padding**: 6px 12px (compact) or 12px 24px (primary). Nothing else.
|
||||
- **Inline spacing**: 4–12px between stacked labels; the big jump to 36/48/64 happens between content blocks.
|
||||
|
||||
### Grid & Container
|
||||
- **Max width**: 1720px (dembrandt detected breakpoints up to 1720). The site scales to ultra-wide for luxury showroom displays and wide cinema monitors.
|
||||
- **Column patterns**: there is essentially no multi-column grid on the homepage — it is a stack of single full-width blocks. When deeper pages need columns (configurator, atelier, technical specs), they use a 12-column Tailwind-based grid.
|
||||
- **Outer padding**: minimal. Most sections bleed to the viewport edge, with padding only applied to the overlaid text and CTA block (typically 48–64px from the bottom-center).
|
||||
|
||||
### Whitespace Philosophy
|
||||
Bugatti's whitespace philosophy is **cinematic negative space** — the page is 90% empty even when content is present, because the content is usually a video or photograph of a single car. The rhythm is: full-bleed media → monumental headline → single pill CTA → scroll → next full-bleed media. There is no "information density" anywhere. The page breathes the way a museum breathes, with each exhibit getting its own silent room.
|
||||
|
||||
### Border Radius Scale
|
||||
- **0** — default for all media and the hero canvas
|
||||
- **6px** — secondary rounded buttons, bordered frames, small utility containers
|
||||
- **9999px** — primary pill buttons
|
||||
|
||||
Three values. No `12px`, no `24px`, no `20px`. Bugatti's radius system is the most restrained of any site in this catalog — the brand has made an active decision that "slightly rounded rectangle" is a vulgar shape, and committed to either true rectangle or true pill.
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|---|---|---|
|
||||
| 0 | No shadow, no border | Default text and media on `#000000` |
|
||||
| 1 | `1px solid #999999` | Secondary containers, cookie-style dialogs |
|
||||
| 2 | `1px solid #ffffff` | Primary button outline, active state indicators |
|
||||
| 3 | Bottom-to-top `rgba(0, 0, 0, 0.4) → transparent` vignette | Text-legibility gradient when type sits over video |
|
||||
|
||||
**That is the entire depth system.** There are 1 shadows in the extracted token set (zero meaningful `box-shadow` values — just a placeholder). Bugatti does not use drop shadows. It does not use elevation rings. It does not use glowing focus states. Depth is implied by the 1px hairline of a border or the presence of a vignette gradient — nothing more.
|
||||
|
||||
### Decorative Depth
|
||||
None. Zero gradients (except the subtle text-legibility vignette), zero blurs, zero glows, zero atmospheric effects. The decorative depth of Bugatti's site comes entirely from the lighting baked into the product photography. The chrome does not compete.
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
|
||||
### Do
|
||||
- **Do** keep the entire canvas `#000000`. No off-black, no near-black, no warm black. Bugatti is pure black.
|
||||
- **Do** use Bugatti Display at architectural scale — minimum 36px, ideally 60px+, and once per page land a monumental 200px+ headline.
|
||||
- **Do** use Bugatti Monospace UPPERCASE with 1.2–1.4px tracking for every button, link, nav item, and caption.
|
||||
- **Do** use only white text at rest. `#999999` is only for disabled, tertiary, and thin borders.
|
||||
- **Do** use 9999px border radius for primary buttons — full pill, thin 1px white outline, transparent fill.
|
||||
- **Do** use full-bleed video and photography for every hero section. The product is the UI.
|
||||
- **Do** maintain line-height 1.00–1.11 on display headlines. Tight leading is the architecture.
|
||||
- **Do** treat whitespace like cinematic negative space — give every block its own silent room.
|
||||
|
||||
### Don't
|
||||
- **Don't** introduce accent colors. No blue, no red, no commerce orange, no hover cyan, no warning red. The palette is black, white, and one gray.
|
||||
- **Don't** use bold weights for hierarchy. Scale is the only hierarchy device — make it bigger, not heavier.
|
||||
- **Don't** use drop shadows on any element. Bugatti has no `box-shadow` in its chrome.
|
||||
- **Don't** use cards or elevated surfaces. Bugatti has no card component.
|
||||
- **Don't** use rounded rectangles between 6px and 9999px. The radius system is rectangle, slightly-rounded utility, or full pill — nothing in between.
|
||||
- **Don't** use Bugatti Display for body, buttons, or UI labels. Reserve it for headlines at 36px+.
|
||||
- **Don't** use Bugatti Monospace in lowercase for primary UI. Buttons and nav links are always ALL CAPS.
|
||||
- **Don't** add gradients, glows, blurs, or glassmorphism anywhere. The chrome is silent.
|
||||
- **Don't** put text over photography without a `rgba(0, 0, 0, 0.4)` bottom-up vignette if legibility is at risk.
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
|
||||
| Name | Width | Key Changes |
|
||||
|---|---|---|
|
||||
| Mobile | <640px | Single column, hamburger "MENU", hero video locked to 9:16 or 16:9, hero headline scales to ~48–72px |
|
||||
| Small Tablet | 640–767px | Still single column, padding opens slightly, typography scales up |
|
||||
| Tablet | 768–1023px | Still single column for content, nav expands to include wordmark, headline scales to ~120px |
|
||||
| Small Desktop | 1024–1279px | Full desktop nav, headline scales to ~200px |
|
||||
| Desktop | 1280–1535px | Full layout, headline at 240–260px |
|
||||
| Large Desktop | 1536–1719px | Max headline scale (288px), ultra-wide hero video |
|
||||
| Ultra-Wide | ≥1720px | Container caps, hero video locks at 21:9 or wider, everything else stays proportional |
|
||||
|
||||
The dembrandt sweep detected 6 breakpoints (1720 → 1536 → 1280 → 1024 → 768 → 640). This is a narrower responsive set than PlayStation's 30 — Bugatti tunes for six clean thresholds rather than micro-adjusting every device boundary. The brand's assumption is that its visitors are either on a high-end laptop, a desktop monitor, or a phone, and the site doesn't need to fuss over everything in between.
|
||||
|
||||
### Touch Targets
|
||||
- Primary pill buttons are `12px 24px` padded with 14px text — approximately 38–42px tall. **This falls slightly below WCAG AAA 44px recommendations**. For derivative work, bump vertical padding to 14–16px to hit 44px+.
|
||||
- Secondary buttons at `6px 12px` padding are about 28–32px tall — definitely below touch-target minimums. Use these only on desktop pointer contexts.
|
||||
- Navigation links have no explicit padding — the tap area is the text box, which at 14px is too small. Add `12–14px` vertical padding on mobile to make them touchable.
|
||||
|
||||
### Collapsing Strategy
|
||||
- **Nav**: desktop shows `MENU / BUGATTI wordmark / STORE`. Mobile keeps the same layout — there is no drawer, because there are only three items.
|
||||
- **Grid**: no grid to collapse. The page is already single-column at every breakpoint.
|
||||
- **Spacing**: section padding tightens from 64 → 48 → 36 → 12px as viewport narrows.
|
||||
- **Type**: Bugatti Display scales from 288px → 200px → 120px → 60px → 48px as viewport narrows. The scale curve is aggressive — losing 240px between the max and mobile hero.
|
||||
- **Video**: art-direction swap between 21:9 desktop and 16:9 or 9:16 mobile hero cuts.
|
||||
|
||||
### Image & Video Behavior
|
||||
- Hero video uses adaptive bitrate streaming and `poster=` fallback.
|
||||
- Below-the-fold media uses `loading="lazy"` with `srcset` art direction.
|
||||
- Bugatti serves high-density imagery through `imgix` — you'll see `bugatti.imgix.net` URLs with transformation parameters.
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- **Primary Canvas**: "Velvet Black (`#000000`)"
|
||||
- **Primary Text**: "Showroom White (`#ffffff`)"
|
||||
- **Secondary Text / Disabled / Hairline Border**: "Silver Mist (`#999999`)"
|
||||
- **Accent**: None. Do not add one.
|
||||
- **Hover Signal**: Opacity shift or border-color shift — no color change
|
||||
|
||||
### Example Component Prompts
|
||||
1. *"Create a monumental hero headline using Bugatti Display at 288px, ALL CAPS, `#ffffff` text on a pure `#000000` canvas, line-height 1.0, no letter-spacing. Place a full-bleed 21:9 hero video behind it with a `rgba(0, 0, 0, 0.4) → transparent` bottom-up vignette for legibility."*
|
||||
2. *"Design a primary pill CTA button: transparent background, 1px solid `#ffffff` border, `9999px` border radius, 12px × 24px padding, Bugatti Monospace 14px / 400 / 1.4px letter-spacing UPPERCASE label in `#ffffff`. Hover state fills the background white with black text, 250ms ease."*
|
||||
3. *"Build a navigation bar: pure `#000000` background, `MENU` link left, centered `BUGATTI` wordmark (128×29px), `STORE` link right. All links in Bugatti Monospace 14px UPPERCASE with 1.4px letter-spacing in `#ffffff`. No dividers, no hover color — just a slight opacity dim on hover."*
|
||||
4. *"Create a mid-feature section heading: Bugatti Display 60px ALL CAPS in `#ffffff`, line-height 1.0, centered over a full-bleed photograph. Place a single primary pill CTA 48–64px below the headline."*
|
||||
5. *"Design a secondary utility button for a cookie dialog: transparent background, 1px solid `#999999` border, 6px border radius, 6px × 12px padding, Bugatti Monospace 12px / 400 / 1.2px tracking UPPERCASE label in `#ffffff`."*
|
||||
|
||||
### Iteration Guide
|
||||
When refining existing screens generated with this design system:
|
||||
1. **Audit the canvas.** If the background isn't pure `#000000`, change it. Bugatti does not tolerate off-black.
|
||||
2. **Audit the palette.** Any color that isn't `#000000`, `#ffffff`, or `#999999` is drift. Remove it — that includes ALL accent colors, including common defaults like `#0070cc` Tailwind blue.
|
||||
3. **Audit display scale.** If the largest headline on a page is smaller than 60px, it's under-scaled. Bugatti's minimum "monumental moment" is 60px; the maximum is 288px. Aim for the upper half.
|
||||
4. **Audit mono-caps discipline.** Every button, every nav link, every caption, every CTA should be Bugatti Monospace UPPERCASE with 1.2–1.4px letter-spacing. If you see sentence case or mixed case on a button, that's drift.
|
||||
5. **Audit shadows and gradients.** Strip every `box-shadow`. Strip every gradient except the one legibility vignette over video. Bugatti's chrome is silent.
|
||||
6. **Audit radius.** Every container should land on `0`, `6px`, or `9999px`. If you see `12px`, `16px`, `20px`, `24px`, correct to the nearest Bugatti value (almost always `6px` or `9999px`).
|
||||
7. **Audit type weight.** All weights should be 400. If you see `bold` or `700` anywhere, change it. Scale, not weight, is the hierarchy.
|
||||
8. **Audit whitespace.** If a section feels cramped, add 48–64px. If it feels airy, leave it — Bugatti's negative space is a feature.
|
||||
9. **Audit product presence.** Every hero section should have a vehicle — video or photograph — as the primary visual. The chrome should feel like it's framing the car, not competing with it.
|
||||
68
plugins/_official/design-systems/bugatti/open-design.json
Normal file
68
plugins/_official/design-systems/bugatti/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-bugatti",
|
||||
"title": "Bugatti",
|
||||
"version": "0.1.0",
|
||||
"description": "Hypercar brand. Cinema-black canvas, monochrome austerity, monumental display type.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"automotive"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Bugatti design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "bugatti",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/cafe/DESIGN.md
Normal file
71
plugins/_official/design-systems/cafe/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Cafe
|
||||
|
||||
> Category: Creative & Artistic
|
||||
> Cozy cafe-inspired interface with warm tones, soft typography, and clean layouts for a relaxed browsing experience.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Cozy cafe-inspired interface with warm tones, soft typography, and clean layouts for a relaxed browsing experience.
|
||||
|
||||
- **Visual style:** minimal, clean
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#5D4432` — Token from style foundations.
|
||||
- **Secondary:** `#E9E3DD` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#F9F7F5` — Token from style foundations.
|
||||
- **Text:** `#3E2B1E` — Token from style foundations.
|
||||
- **Neutral:** `#F9F7F5` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#5D4432) for CTA emphasis.
|
||||
- Use Surface (#F9F7F5) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#3E2B1E) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** desktop-first expressive scale
|
||||
- **Families:** primary=Poppins, display=Poppins, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 2/4/8/12/16/24/32/48
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#5D4432`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#5D4432) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/cafe/open-design.json
Normal file
68
plugins/_official/design-systems/cafe/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-cafe",
|
||||
"title": "Cafe",
|
||||
"version": "0.1.0",
|
||||
"description": "Cozy cafe-inspired interface with warm tones, soft typography, and clean layouts for a relaxed browsing experience.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"creative-artistic"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Cafe design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "cafe",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
262
plugins/_official/design-systems/cal/DESIGN.md
Normal file
262
plugins/_official/design-systems/cal/DESIGN.md
Normal file
|
|
@ -0,0 +1,262 @@
|
|||
# Design System Inspired by Cal.com
|
||||
|
||||
> Category: Productivity & SaaS
|
||||
> Open-source scheduling. Clean neutral UI, developer-oriented simplicity.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Cal.com's website is a masterclass in monochromatic restraint — a grayscale world where boldness comes not from color but from the sheer confidence of black text on white space. Inspired by Uber's minimal aesthetic, the palette is deliberately stripped of hue: near-black headings (`#242424`), mid-gray secondary text (`#898989`), and pure white surfaces. Color is treated as a foreign substance — when it appears (a rare blue link, a green trust badge), it feels like a controlled accent in an otherwise black-and-white photograph.
|
||||
|
||||
Cal Sans, the brand's custom geometric display typeface designed by Mark Davis, is the visual centerpiece. Letters are intentionally spaced extremely close at large sizes, creating dense, architectural headlines that feel like they're carved into the page. At 64px and 48px, Cal Sans headings sit at weight 600 with a tight 1.10 line-height — confident, compressed, and immediately recognizable. For body text, the system switches to Inter, providing "rock-solid" readability that complements Cal Sans's display personality. The typography pairing creates a clear division: Cal Sans speaks, Inter explains.
|
||||
|
||||
The elevation system is notably sophisticated for a minimal site — 11 shadow definitions create a nuanced depth hierarchy using multi-layered shadows that combine ring borders (`0px 0px 0px 1px`), soft diffused shadows, and inset highlights. This shadow-first approach to depth (rather than border-first) gives surfaces a subtle three-dimensionality that feels modern and polished. Built on Framer with a border-radius scale from 2px to 9999px (pill), Cal.com balances geometric precision with soft, rounded interactive elements.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Purely grayscale brand palette — no brand colors, boldness through monochrome
|
||||
- Cal Sans custom geometric display font with extremely tight default letter-spacing
|
||||
- Multi-layered shadow system (11 definitions) with ring borders + diffused shadows + inset highlights
|
||||
- Cal Sans for headings, Inter for body — clean typographic division
|
||||
- Wide border-radius scale from 2px to 9999px (pill) — versatile rounding
|
||||
- White canvas with near-black (#242424) text — maximum contrast, zero decoration
|
||||
- Product screenshots as primary visual content — the scheduling UI sells itself
|
||||
- Built on Framer platform
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Charcoal** (`#242424`): Primary heading and button text — Cal.com's signature near-black, warmer than pure black
|
||||
- **Midnight** (`#111111`): Deepest text/overlay color — used at 50% opacity for subtle overlays
|
||||
- **White** (`#ffffff`): Primary background and surface — the dominant canvas
|
||||
|
||||
### Secondary & Accent
|
||||
- **Link Blue** (`#0099ff`): In-text links with underline decoration — the only blue in the system, reserved strictly for hyperlinks
|
||||
- **Focus Ring** (`#3b82f6` at 50% opacity): Keyboard focus indicator — accessibility-only, invisible in normal interaction
|
||||
- **Default Link** (`#0000ee`): Browser-default link color on some elements — unmodified, signaling openness
|
||||
|
||||
### Surface & Background
|
||||
- **Pure White** (`#ffffff`): Primary page background and card surfaces
|
||||
- **Light Gray** (approx `#f5f5f5`): Subtle section differentiation — barely visible tint
|
||||
- **Mid Gray** (`#898989`): Secondary text, descriptions, and muted labels
|
||||
|
||||
### Neutrals & Text
|
||||
- **Charcoal** (`#242424`): Headlines, buttons, primary UI text
|
||||
- **Midnight** (`#111111`): Deep black for high-contrast links and nav text
|
||||
- **Mid Gray** (`#898989`): Descriptions, secondary labels, muted content
|
||||
- **Pure Black** (`#000000`): Certain link text elements
|
||||
- **Border Gray** (approx `rgba(34, 42, 53, 0.08–0.10)`): Shadow-based borders using ring shadows instead of CSS borders
|
||||
|
||||
### Semantic & Accent
|
||||
- Cal.com is deliberately colorless for brand elements — "a grayscale brand to emphasise on boldness and professionalism"
|
||||
- Product UI screenshots show color (blues, greens in the scheduling interface), but the marketing site itself stays monochrome
|
||||
- The philosophy mirrors Uber's approach: let the content carry color, the frame stays neutral
|
||||
|
||||
### Gradient System
|
||||
- No gradients on the marketing site — the design is fully flat and monochrome
|
||||
- Depth is achieved entirely through shadows, not color transitions
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
- **Display**: `Cal Sans` — custom geometric sans-serif by Mark Davis. Open-source, available on Google Fonts and GitHub. Extremely tight default letter-spacing designed for large headlines. Has 6 character variants (Cc, j, t, u, 0, 1)
|
||||
- **Body**: `Inter` — "rock-solid" standard body font. Fallback: `Inter Placeholder`
|
||||
- **UI Light**: `Cal Sans UI Variable Light` — light-weight variant (300) for softer UI text with -0.2px letter-spacing
|
||||
- **UI Medium**: `Cal Sans UI Medium` — medium-weight variant (500) for emphasized captions
|
||||
- **Mono**: `Roboto Mono` — for code blocks and technical content
|
||||
- **Tertiary**: `Matter Regular` / `Matter SemiBold` / `Matter Medium` — additional body fonts for specific contexts
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|------|--------|-------------|----------------|-------|
|
||||
| Display Hero | Cal Sans | 64px | 600 | 1.10 | 0px | Maximum impact, tight default spacing |
|
||||
| Section Heading | Cal Sans | 48px | 600 | 1.10 | 0px | Large section titles |
|
||||
| Feature Heading | Cal Sans | 24px | 600 | 1.30 | 0px | Feature block headlines |
|
||||
| Sub-heading | Cal Sans | 20px | 600 | 1.20 | +0.2px | Positive spacing for readability at smaller size |
|
||||
| Sub-heading Alt | Cal Sans | 20px | 600 | 1.50 | 0px | Relaxed line-height variant |
|
||||
| Card Title | Cal Sans | 16px | 600 | 1.10 | 0px | Smallest Cal Sans usage |
|
||||
| Caption Label | Cal Sans | 12px | 600 | 1.50 | 0px | Small labels in Cal Sans |
|
||||
| Body Light | Cal Sans UI Light | 18px | 300 | 1.30 | -0.2px | Light-weight body intro text |
|
||||
| Body Light Standard | Cal Sans UI Light | 16px | 300 | 1.50 | -0.2px | Light-weight body text |
|
||||
| Caption Light | Cal Sans UI Light | 14px | 300 | 1.40–1.50 | -0.2 to -0.28px | Light captions and descriptions |
|
||||
| UI Label | Inter | 16px | 600 | 1.00 | 0px | UI buttons and nav labels |
|
||||
| Caption Inter | Inter | 14px | 500 | 1.14 | 0px | Small UI text |
|
||||
| Micro | Inter | 12px | 500 | 1.00 | 0px | Smallest Inter text |
|
||||
| Code | Roboto Mono | 14px | 600 | 1.00 | 0px | Code snippets, technical text |
|
||||
| Body Matter | Matter Regular | 14px | 400 | 1.14 | 0px | Alternate body text (product UI) |
|
||||
|
||||
### Principles
|
||||
- **Cal Sans at large, Inter at small**: Cal Sans is exclusively for headings and display — never for body text. The system enforces this division strictly
|
||||
- **Tight by default, space when small**: Cal Sans letters are "intentionally spaced to be extremely close" at large sizes. At 20px and below, positive letter-spacing (+0.2px) must be applied to prevent cramming
|
||||
- **Weight 300 body variant**: Cal Sans UI Variable Light at 300 weight creates an elegant, airy body text that contrasts with the dense 600-weight headlines
|
||||
- **Weight 600 dominance**: Nearly all Cal Sans usage is at weight 600 (semi-bold) — the font was designed to perform at this weight
|
||||
- **Negative tracking on light text**: Cal Sans UI Light uses -0.2px to -0.28px letter-spacing, subtly tightening the already-compact letterforms
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
- **Dark Primary**: `#242424` (or `#1e1f23`) background, white text, 6–8px radius. Hover: opacity reduction to 0.7. The signature CTA — maximally dark on white
|
||||
- **White/Ghost**: White background with shadow-ring border, dark text. Uses the multi-layered shadow system for subtle elevation
|
||||
- **Pill**: 9999px radius for rounded pill-shaped actions and badges
|
||||
- **Compact**: 4px padding, small text — utility actions within product UI
|
||||
- **Inset highlight**: Some buttons feature `rgba(255, 255, 255, 0.15) 0px 2px 0px inset` — a subtle inner-top highlight creating a 3D pressed effect
|
||||
|
||||
### Cards & Containers
|
||||
- **Shadow Card**: White background, multi-layered shadow — `rgba(19, 19, 22, 0.7) 0px 1px 5px -4px, rgba(34, 42, 53, 0.08) 0px 0px 0px 1px, rgba(34, 42, 53, 0.05) 0px 4px 8px 0px`. The ring shadow (0px 0px 0px 1px) acts as a shadow-border
|
||||
- **Product UI Cards**: Screenshots of the scheduling interface displayed in card containers with shadow elevation
|
||||
- **Radius**: 8px for standard cards, 12px for larger containers, 16px for prominent sections
|
||||
- **Hover**: Likely subtle shadow deepening or scale transform
|
||||
|
||||
### Inputs & Forms
|
||||
- **Select dropdown**: White background, `#000000` text, 1px solid `rgb(118, 118, 118)` border
|
||||
- **Focus**: Uses Framer's focus outline system (`--framer-focus-outline`)
|
||||
- **Text input**: 8px radius, standard border treatment
|
||||
- **Minimal form presence**: The marketing site prioritizes CTA buttons over complex forms
|
||||
|
||||
### Navigation
|
||||
- **Top nav**: White/transparent background, Cal Sans links at near-black
|
||||
- **Nav text**: `#111111` (Midnight) for primary links, `#000000` for emphasis
|
||||
- **CTA button**: Dark Primary in the nav — high contrast call-to-action
|
||||
- **Mobile**: Collapses to hamburger with simplified navigation
|
||||
- **Sticky**: Fixed on scroll
|
||||
|
||||
### Image Treatment
|
||||
- **Product screenshots**: Large scheduling UI screenshots — the product is the primary visual
|
||||
- **Trust logos**: Grayscale company logos in a horizontal trust bar
|
||||
- **Aspect ratios**: Wide landscape for product UI screenshots
|
||||
- **No decorative imagery**: No illustrations, photos, or abstract graphics — pure product + typography
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
- **Base unit**: 8px
|
||||
- **Scale**: 1px, 2px, 3px, 4px, 6px, 8px, 12px, 16px, 20px, 24px, 28px, 80px, 96px
|
||||
- **Section padding**: 80px–96px vertical between major sections (generous)
|
||||
- **Card padding**: 12px–24px internal
|
||||
- **Component gaps**: 4px–8px between related elements
|
||||
- **Notable jump**: From 28px to 80px — a deliberate gap emphasizing the section-level spacing tier
|
||||
|
||||
### Grid & Container
|
||||
- **Max width**: ~1200px content container, centered
|
||||
- **Column patterns**: Full-width hero, centered text blocks, 2-3 column feature grids
|
||||
- **Feature showcase**: Product screenshots flanked by description text
|
||||
- **Breakpoints**: 98px, 640px, 768px, 810px, 1024px, 1199px — Framer-generated
|
||||
|
||||
### Whitespace Philosophy
|
||||
- **Lavish section spacing**: 80px–96px between sections creates a breathable, premium feel
|
||||
- **Product-first content**: Screenshots dominate the visual space — minimal surrounding decoration
|
||||
- **Centered headlines**: Cal Sans headings centered with generous margins above and below
|
||||
|
||||
### Border Radius Scale
|
||||
- **2px**: Subtle rounding on inline elements
|
||||
- **4px**: Small UI components
|
||||
- **6px–7px**: Buttons, small cards, images
|
||||
- **8px**: Standard interactive elements — buttons, inputs, images
|
||||
- **12px**: Medium containers — links, larger cards, images
|
||||
- **16px**: Large section containers
|
||||
- **29px**: Special rounded elements
|
||||
- **100px**: Large rounding — nearly circular on small elements
|
||||
- **1000px**: Very large rounding
|
||||
- **9999px**: Full pill shape — badges, links
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|-------|-----------|-----|
|
||||
| Level 0 (Flat) | No shadow | Page canvas, basic text containers |
|
||||
| Level 1 (Inset) | `rgba(0,0,0,0.16) 0px 1px 1.9px 0px inset` | Pressed/recessed elements, input wells |
|
||||
| Level 2 (Ring + Soft) | `rgba(19,19,22,0.7) 0px 1px 5px -4px, rgba(34,42,53,0.08) 0px 0px 0px 1px, rgba(34,42,53,0.05) 0px 4px 8px` | Cards, containers — the workhorse shadow |
|
||||
| Level 3 (Ring + Soft Alt) | `rgba(36,36,36,0.7) 0px 1px 5px -4px, rgba(36,36,36,0.05) 0px 4px 8px` | Alt card elevation without ring border |
|
||||
| Level 4 (Inset Highlight) | `rgba(255,255,255,0.15) 0px 2px 0px inset` or `rgb(255,255,255) 0px 2px 0px inset` | Button inner highlight — 3D pressed effect |
|
||||
| Level 5 (Soft Only) | `rgba(34,42,53,0.05) 0px 4px 8px` | Subtle ambient shadow |
|
||||
|
||||
### Shadow Philosophy
|
||||
Cal.com's shadow system is the most sophisticated element of the design — 11 shadow definitions using a multi-layered compositing technique:
|
||||
- **Ring borders**: `0px 0px 0px 1px` shadows act as borders, avoiding CSS `border` entirely. This creates hairline containment without affecting layout
|
||||
- **Diffused soft shadows**: `0px 4px 8px` at 5% opacity add gentle ambient depth
|
||||
- **Sharp contact shadows**: `0px 1px 5px -4px` at 70% opacity create tight bottom-edge shadows for grounding
|
||||
- **Inset highlights**: White inset shadows at the top of buttons create a subtle 3D bevel
|
||||
- Shadows are composed in comma-separated stacks — each surface gets 2-3 layered shadow definitions working together
|
||||
|
||||
### Decorative Depth
|
||||
- No gradients or glow effects
|
||||
- All depth comes from the sophisticated shadow compositing system
|
||||
- The overall effect is subtle but precise — surfaces feel like physical cards sitting on a table
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
|
||||
### Do
|
||||
- Use Cal Sans exclusively for headings (24px+) and never for body text — it's a display font with tight default spacing
|
||||
- Apply positive letter-spacing (+0.2px) when using Cal Sans below 24px — the font cramps at small sizes without it
|
||||
- Maintain the grayscale palette — boldness comes from contrast, not color
|
||||
- Use the multi-layered shadow system for card elevation — ring shadow + diffused shadow + contact shadow
|
||||
- Keep backgrounds pure white — the monochrome philosophy requires a clean canvas
|
||||
- Use Inter for all body text at weight 300–600 — it's the reliable counterpart to Cal Sans's display personality
|
||||
- Let product screenshots be the visual content — no illustrations, no decorative graphics
|
||||
- Apply generous section spacing (80px–96px) — the breathing room is essential to the premium feel
|
||||
|
||||
### Don't
|
||||
- Use Cal Sans for body text or text below 16px — it wasn't designed for extended reading
|
||||
- Add brand colors — Cal.com is intentionally grayscale, color is reserved for links and UI states only
|
||||
- Use CSS borders when shadows can achieve the same containment — the ring-shadow technique is the system's approach
|
||||
- Apply negative letter-spacing to Cal Sans at small sizes — it needs positive spacing (+0.2px) below 24px
|
||||
- Create heavy, dark shadows — Cal.com's shadows are subtle (5% opacity diffused) with sharp contact edges
|
||||
- Use illustrations, abstract graphics, or decorative elements — the visual language is typography + product UI only
|
||||
- Mix Cal Sans weights — the font is designed for weight 600, other weights break the intended character
|
||||
- Reduce section spacing below 48px — the generous whitespace is core to the premium monochrome aesthetic
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
| Name | Width | Key Changes |
|
||||
|------|-------|-------------|
|
||||
| Mobile | <640px | Single column, hero text ~36px, stacked features, hamburger nav |
|
||||
| Tablet Small | 640px–768px | 2-column begins for some elements |
|
||||
| Tablet | 768px–810px | Layout adjustments, fuller grid |
|
||||
| Tablet Large | 810px–1024px | Multi-column feature grids |
|
||||
| Desktop | 1024px–1199px | Full layout, expanded navigation |
|
||||
| Large Desktop | >1199px | Max-width container, centered content |
|
||||
|
||||
### Touch Targets
|
||||
- Buttons: 8px radius with comfortable padding (10px+ vertical)
|
||||
- Nav links: Dark text with adequate spacing
|
||||
- Mobile CTAs: Full-width dark buttons for easy thumb access
|
||||
- Pill badges: 9999px radius creates large, tappable targets
|
||||
|
||||
### Collapsing Strategy
|
||||
- **Navigation**: Full horizontal nav → hamburger on mobile
|
||||
- **Hero**: 64px Cal Sans display → ~36px on mobile
|
||||
- **Feature grids**: Multi-column → 2-column → single stacked column
|
||||
- **Product screenshots**: Scale within containers, maintaining aspect ratios
|
||||
- **Section spacing**: Reduces from 80px–96px to ~48px on mobile
|
||||
|
||||
### Image Behavior
|
||||
- Product screenshots scale responsively
|
||||
- Trust logos reflow to multi-row grid on mobile
|
||||
- No art direction changes — same compositions at all sizes
|
||||
- Images use 7px–12px border-radius for consistent rounded corners
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- Primary Text: Charcoal (`#242424`)
|
||||
- Deep Text: Midnight (`#111111`)
|
||||
- Secondary Text: Mid Gray (`#898989`)
|
||||
- Background: Pure White (`#ffffff`)
|
||||
- Link: Link Blue (`#0099ff`)
|
||||
- CTA Button: Charcoal (`#242424`) bg, white text
|
||||
- Shadow Border: `rgba(34, 42, 53, 0.08)` ring
|
||||
|
||||
### Example Component Prompts
|
||||
- "Create a hero section with white background, 64px Cal Sans heading at weight 600, line-height 1.10, #242424 text, centered layout with a dark CTA button (#242424, 8px radius, white text)"
|
||||
- "Design a scheduling card with white background, multi-layered shadow (0px 1px 5px -4px rgba(19,19,22,0.7), 0px 0px 0px 1px rgba(34,42,53,0.08), 0px 4px 8px rgba(34,42,53,0.05)), 12px radius"
|
||||
- "Build a navigation bar with white background, Inter links at 14px weight 500 in #111111, a dark CTA button (#242424), sticky positioning"
|
||||
- "Create a trust bar with grayscale company logos, horizontally centered, 16px gap between logos, on white background"
|
||||
- "Design a feature section with 48px Cal Sans heading (weight 600, #242424), 16px Inter body text (weight 300, #898989, line-height 1.50), and a product screenshot with 12px radius and the card shadow"
|
||||
|
||||
### Iteration Guide
|
||||
When refining existing screens generated with this design system:
|
||||
1. Verify headings use Cal Sans at weight 600, body uses Inter — never mix them
|
||||
2. Check that the palette is purely grayscale — if you see brand colors, remove them
|
||||
3. Ensure card elevation uses the multi-layered shadow stack, not CSS borders
|
||||
4. Confirm section spacing is generous (80px+) — if sections feel cramped, add more space
|
||||
5. The overall tone should feel like a clean, professional scheduling tool — monochrome confidence without any decorative flourishes
|
||||
68
plugins/_official/design-systems/cal/open-design.json
Normal file
68
plugins/_official/design-systems/cal/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-cal",
|
||||
"title": "Cal.com",
|
||||
"version": "0.1.0",
|
||||
"description": "Open-source scheduling. Clean neutral UI, developer-oriented simplicity.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"productivity-saas"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Cal.com design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "cal",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
157
plugins/_official/design-systems/canva/DESIGN.md
Normal file
157
plugins/_official/design-systems/canva/DESIGN.md
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
# Design System Inspired by Canva
|
||||
|
||||
> Category: Design & Creative
|
||||
> Visual creation platform. Vivid purple-blue gradient, generous spacing, friendly geometry.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Canva is the friendly face of design tools — the brand makes a point of looking inviting where Adobe looks intimidating. The page is built on a clean white canvas (`#ffffff`) with a signature **purple-to-blue gradient** (`#7d2ae8` → `#00c4cc`) used in the brand mark, hero buttons, and Pro/Magic moments. Surfaces are generously padded, edges are gently rounded (8–16px), and shadows are soft and cool-toned.
|
||||
|
||||
Typography uses **Canva Sans** (a custom geometric sans) for chrome and prose, with rounded letterforms that share DNA with brands like Airbnb and Asana. Weight contrast does the heavy lifting — 800 for hero display, 700 for section heads, 400 for body — while size hierarchy is more compressed than typical product brands so cards and templates read at a glance.
|
||||
|
||||
The shape system is ultra-soft: 12px on most cards, 16–20px on larger panels, 9999px on chips. Buttons are rectangles with a subtle elevation shadow (`0 2px 8px rgba(0,0,0,0.06)`) that grows on hover. Iconography is filled and rounded, never line-only — Canva's icons speak the same shape language as its UI.
|
||||
|
||||
**Key Characteristics:**
|
||||
- White canvas with a violet-to-cyan gradient (`#7d2ae8` → `#00c4cc`)
|
||||
- Canva Sans (rounded geometric) for everything; weight contrast over color
|
||||
- 12–20px radii everywhere; 9999px pills for chips and tags
|
||||
- Soft cool-toned shadows that grow on hover
|
||||
- Filled rounded iconography — never outlined
|
||||
- Vibrant secondary palette (coral, mint, tangerine) for category tags
|
||||
- Pro/Magic moments lit by a static gradient — no animation
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Brand Gradient
|
||||
- **Canva Purple** (`#7d2ae8`): Brand primary; gradient origin.
|
||||
- **Canva Cyan** (`#00c4cc`): Brand secondary; gradient terminus.
|
||||
- **Canva Pink** (`#ff5757`): Tertiary brand accent (Magic Studio).
|
||||
|
||||
### Surface
|
||||
- **Canvas** (`#ffffff`): Primary background.
|
||||
- **Surface Subtle** (`#f4f5f7`): Section break, sidebar.
|
||||
- **Surface Inset** (`#e8eaed`): Disabled, inset block.
|
||||
- **Surface Cool** (`#eef0fc`): Hover tint on purple-themed cards.
|
||||
|
||||
### Ink & Text
|
||||
- **Ink Primary** (`#0e1318`): Primary text.
|
||||
- **Ink Secondary** (`#3c4043`): Body prose.
|
||||
- **Ink Muted** (`#5f6368`): Captions, descriptions.
|
||||
- **Ink Faint** (`#9aa0a6`): Placeholder, disabled label.
|
||||
|
||||
### Semantic
|
||||
- **Success** (`#00b894`): Saved, exported.
|
||||
- **Warning** (`#ffb020`): Storage limit, advisory.
|
||||
- **Error** (`#ff5757`): Validation, destructive.
|
||||
- **Info** (`#0d99ff`): Tip, link.
|
||||
|
||||
### Category Accents (Template Tags)
|
||||
- **Coral** (`#ff7059`): Social posts.
|
||||
- **Tangerine** (`#ff9633`): Marketing.
|
||||
- **Mint** (`#48c997`): Education.
|
||||
- **Sky** (`#3ea6ff`): Business.
|
||||
- **Lavender** (`#9b87f5`): Personal.
|
||||
|
||||
### Border
|
||||
- **Border Default** (`#e1e3e6`): Standard hairline.
|
||||
- **Border Strong** (`#c7cdd3`): Emphasized border, hover state.
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
- **Display / UI / Body**: `Canva Sans`, with fallback: `'YS Text', system-ui, -apple-system, sans-serif`
|
||||
- **Editorial (rare)**: `Canva Sans Display`, with fallback: `'Canva Sans', sans-serif`
|
||||
- **Code (devtools only)**: `JetBrains Mono`, with fallback: `ui-monospace, Menlo, Consolas, monospace`
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|------|--------|-------------|----------------|-------|
|
||||
| Hero | Canva Sans | 64px (4rem) | 800 | 1.05 | -0.02em | Marketing hero, "Design anything." |
|
||||
| H1 | Canva Sans | 36px (2.25rem) | 700 | 1.15 | -0.01em | Page heading |
|
||||
| H2 | Canva Sans | 24px (1.5rem) | 700 | 1.2 | -0.005em | Section heading |
|
||||
| H3 | Canva Sans | 18px (1.125rem) | 600 | 1.3 | normal | Sub-section, card title |
|
||||
| Body Large | Canva Sans | 16px (1rem) | 400 | 1.55 | normal | Lede, marketing body |
|
||||
| Body | Canva Sans | 14px (0.875rem) | 400 | 1.5 | normal | Standard UI prose |
|
||||
| Caption | Canva Sans | 12px (0.75rem) | 500 | 1.4 | 0.005em | Metadata, hint text |
|
||||
| Button | Canva Sans | 14px (0.875rem) | 600 | 1.2 | normal | Default button label |
|
||||
| Tag | Canva Sans | 11px (0.6875rem) | 600 | 1.2 | 0.04em | Uppercase category chip |
|
||||
|
||||
### Principles
|
||||
- **Weight contrast over color contrast**: hierarchy steps via 800→700→600→400; the surface stays neutral.
|
||||
- **Tight line-height for cards**: card titles use 1.15–1.2 so a 3-line title still fits a 4:3 thumbnail.
|
||||
- **No display serif**: Canva is sans-only across all surfaces; serifs appear only as user-selectable template fonts inside the editor.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
|
||||
**Primary (Gradient)**
|
||||
- Background: `linear-gradient(135deg, #7d2ae8, #00c4cc)`
|
||||
- Text: `#ffffff`
|
||||
- Padding: 12px 20px
|
||||
- Radius: 8px
|
||||
- Shadow: `0 2px 8px rgba(125, 42, 232, 0.2)`
|
||||
- Hover: shadow grows to `0 4px 14px rgba(125, 42, 232, 0.3)`
|
||||
- Use: hero CTAs, "Try Canva Pro"
|
||||
|
||||
**Primary (Solid Purple)**
|
||||
- Background: `#7d2ae8`
|
||||
- Text: `#ffffff`
|
||||
- Padding: 12px 20px
|
||||
- Radius: 8px
|
||||
- Hover: `#6815d4`
|
||||
|
||||
**Secondary**
|
||||
- Background: `#ffffff`
|
||||
- Text: `#0e1318`
|
||||
- Border: 1px solid `#e1e3e6`
|
||||
- Radius: 8px
|
||||
- Hover: background `#f4f5f7`, border `#c7cdd3`
|
||||
|
||||
**Subtle / Tertiary**
|
||||
- Background: `rgba(125, 42, 232, 0.08)`
|
||||
- Text: `#7d2ae8`
|
||||
- Hover: background `rgba(125, 42, 232, 0.14)`
|
||||
|
||||
### Cards / Template Tiles
|
||||
- Background: `#ffffff`
|
||||
- Border: 1px solid `#e1e3e6`
|
||||
- Radius: 12px
|
||||
- Shadow at rest: `0 1px 3px rgba(0,0,0,0.04)`
|
||||
- Shadow on hover: `0 8px 24px rgba(0,0,0,0.08)`, lift 2px
|
||||
- Aspect ratio: thumbnail respects template (1:1, 4:3, 9:16)
|
||||
|
||||
### Inputs
|
||||
- Background: `#ffffff`
|
||||
- Border: 1px solid `#e1e3e6`
|
||||
- Radius: 8px
|
||||
- Padding: 10px 14px
|
||||
- Focus: border `#7d2ae8`, ring `0 0 0 3px rgba(125, 42, 232, 0.16)`
|
||||
|
||||
### Chips / Tags
|
||||
- Background: category-tinted soft.
|
||||
- Text: matching strong category color.
|
||||
- Padding: 4px 10px
|
||||
- Radius: 9999px
|
||||
- Font: 11px / 600 / uppercase
|
||||
|
||||
### Pro Badge
|
||||
- Background: `linear-gradient(135deg, #7d2ae8, #ff5757)`
|
||||
- Text: `#ffffff`
|
||||
- Padding: 2px 8px
|
||||
- Radius: 9999px
|
||||
- Font: 10px / 700 / uppercase
|
||||
|
||||
## 5. Spacing & Layout
|
||||
|
||||
- **Base unit**: 4px. Scale: 4, 8, 12, 16, 24, 32, 48, 64, 96.
|
||||
- **Container**: max 1320px, 32px gutter.
|
||||
- **Sidebar (editor)**: 320px wide; collapses to 56px icons.
|
||||
- **Card grid gap**: 16px on mobile, 24px on desktop.
|
||||
|
||||
## 6. Motion
|
||||
|
||||
- **Duration**: 180ms for hover; 280ms for menu open; 420ms for editor sidebar collapse.
|
||||
- **Easing**: `cubic-bezier(0.4, 0, 0.2, 1)` (Material-style).
|
||||
- **Card lift**: translateY(-2px) + shadow grow on hover, single transition.
|
||||
68
plugins/_official/design-systems/canva/open-design.json
Normal file
68
plugins/_official/design-systems/canva/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-canva",
|
||||
"title": "Canva",
|
||||
"version": "0.1.0",
|
||||
"description": "Visual creation platform. Vivid purple-blue gradient, generous spacing, friendly geometry.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"design-creative"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Canva design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "canva",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
307
plugins/_official/design-systems/clay/DESIGN.md
Normal file
307
plugins/_official/design-systems/clay/DESIGN.md
Normal file
|
|
@ -0,0 +1,307 @@
|
|||
# Design System Inspired by Clay
|
||||
|
||||
> Category: Design & Creative
|
||||
> Creative agency. Organic shapes, soft gradients, art-directed layout.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Clay's website is a warm, playful celebration of color that treats B2B data enrichment like a craft rather than an enterprise chore. The design language is built on a foundation of warm cream backgrounds (`#faf9f7`) and oat-toned borders (`#dad4c8`, `#eee9df`) that give every surface the tactile quality of handmade paper. Against this artisanal canvas, a vivid swatch palette explodes with personality — Matcha green, Slushie cyan, Lemon gold, Ube purple, Pomegranate pink, Blueberry navy, and Dragonfruit magenta — each named like flavors at a juice bar, not colors in an enterprise UI kit.
|
||||
|
||||
The typography is anchored by Roobert, a geometric sans-serif with character, loaded with an extensive set of OpenType stylistic sets (`"ss01"`, `"ss03"`, `"ss10"`, `"ss11"`, `"ss12"`) that give the text a distinctive, slightly quirky personality. At display scale (80px, weight 600), Roobert uses aggressive negative letter-spacing (-3.2px) that compresses headlines into punchy, billboard-like statements. Space Mono serves as the monospace companion for code and technical labels, completing the craft-meets-tech duality.
|
||||
|
||||
What makes Clay truly distinctive is its hover micro-animations: buttons on hover rotate slightly (`rotateZ(-8deg)`), translate upward (`translateY(-80%)`), change background to a contrasting swatch color, and cast a hard offset shadow (`rgb(0,0,0) -7px 7px`). This playful hover behavior — where a button literally tilts and jumps on interaction — creates a sense of physical delight that's rare in B2B software. Combined with generously rounded containers (24px–40px radius), dashed borders alongside solid ones, and a multi-layer shadow system that includes inset highlights, Clay feels like a design system that was made by people who genuinely enjoy making things.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Warm cream canvas (`#faf9f7`) with oat-toned borders (`#dad4c8`) — artisanal, not clinical
|
||||
- Named swatch palette: Matcha, Slushie, Lemon, Ube, Pomegranate, Blueberry, Dragonfruit
|
||||
- Roobert font with 5 OpenType stylistic sets — quirky geometric character
|
||||
- Playful hover animations: rotateZ(-8deg) + translateY(-80%) + hard offset shadow
|
||||
- Space Mono for code and technical labels
|
||||
- Generous border radius: 24px cards, 40px sections, 1584px pills
|
||||
- Mixed border styles: solid + dashed in the same interface
|
||||
- Multi-layer shadow with inset highlight: `0px 1px 1px` + `-1px inset` + `-0.5px`
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Clay Black** (`#000000`): Text, headings, pricing card text, `--_theme--pricing-cards---text`
|
||||
- **Pure White** (`#ffffff`): Card backgrounds, button backgrounds, inverse text
|
||||
- **Warm Cream** (`#faf9f7`): Page background — the warm, paper-like canvas
|
||||
|
||||
### Swatch Palette — Named Colors
|
||||
|
||||
**Matcha (Green)**
|
||||
- **Matcha 300** (`#84e7a5`): `--_swatches---color--matcha-300`, light green accent
|
||||
- **Matcha 600** (`#078a52`): `--_swatches---color--matcha-600`, mid green
|
||||
- **Matcha 800** (`#02492a`): `--_swatches---color--matcha-800`, deep green for dark sections
|
||||
|
||||
**Slushie (Cyan)**
|
||||
- **Slushie 500** (`#3bd3fd`): `--_swatches---color--slushie-500`, bright cyan accent
|
||||
- **Slushie 800** (`#0089ad`): `--_swatches---color--slushie-800`, deep teal
|
||||
|
||||
**Lemon (Gold)**
|
||||
- **Lemon 400** (`#f8cc65`): `--_swatches---color--lemon-400`, warm pale gold
|
||||
- **Lemon 500** (`#fbbd41`): `--_swatches---color--lemon-500`, primary gold
|
||||
- **Lemon 700** (`#d08a11`): `--_swatches---color--lemon-700`, deep amber
|
||||
- **Lemon 800** (`#9d6a09`): `--_swatches---color--lemon-800`, dark amber
|
||||
|
||||
**Ube (Purple)**
|
||||
- **Ube 300** (`#c1b0ff`): `--_swatches---color--ube-300`, soft lavender
|
||||
- **Ube 800** (`#43089f`): `--_swatches---color--ube-800`, deep purple
|
||||
- **Ube 900** (`#32037d`): `--_swatches---color--ube-900`, darkest purple
|
||||
|
||||
**Pomegranate (Pink/Red)**
|
||||
- **Pomegranate 400** (`#fc7981`): `--_swatches---color--pomegranate-400`, warm coral-pink
|
||||
|
||||
**Blueberry (Navy Blue)**
|
||||
- **Blueberry 800** (`#01418d`): `--_swatches---color--blueberry-800`, deep navy
|
||||
|
||||
### Neutral Scale (Warm)
|
||||
- **Warm Silver** (`#9f9b93`): Secondary/muted text, footer links
|
||||
- **Warm Charcoal** (`#55534e`): Tertiary text, dark muted links
|
||||
- **Dark Charcoal** (`#333333`): Link text on light backgrounds
|
||||
|
||||
### Surface & Border
|
||||
- **Oat Border** (`#dad4c8`): Primary border — warm, cream-toned structural lines
|
||||
- **Oat Light** (`#eee9df`): Secondary lighter border
|
||||
- **Cool Border** (`#e6e8ec`): Cool-toned border for contrast sections
|
||||
- **Dark Border** (`#525a69`): Border on dark sections
|
||||
- **Light Frost** (`#eff1f3`): Subtle button background (at 0% opacity on hover)
|
||||
|
||||
### Badges
|
||||
- **Badge Blue Bg** (`#f0f8ff`): Blue-tinted badge surface
|
||||
- **Badge Blue Text** (`#3859f9`): Vivid blue badge text
|
||||
- **Focus Ring** (`rgb(20, 110, 245) solid 2px`): Accessibility focus indicator
|
||||
|
||||
### Shadows
|
||||
- **Clay Shadow** (`rgba(0,0,0,0.1) 0px 1px 1px, rgba(0,0,0,0.04) 0px -1px 1px inset, rgba(0,0,0,0.05) 0px -0.5px 1px`): Multi-layer with inset highlight — the signature
|
||||
- **Hard Offset** (`rgb(0,0,0) -7px 7px`): Hover state — playful hard shadow
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Families
|
||||
- **Primary**: `Roobert`, fallback: `Arial`
|
||||
- **Monospace**: `Space Mono`
|
||||
- **OpenType Features**: `"ss01"`, `"ss03"`, `"ss10"`, `"ss11"`, `"ss12"` on all Roobert text (display uses all 5; body/UI uses `"ss03"`, `"ss10"`, `"ss11"`, `"ss12"`)
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|------|--------|-------------|----------------|-------|
|
||||
| Display Hero | Roobert | 80px (5.00rem) | 600 | 1.00 (tight) | -3.2px | All 5 stylistic sets |
|
||||
| Display Secondary | Roobert | 60px (3.75rem) | 600 | 1.00 (tight) | -2.4px | All 5 stylistic sets |
|
||||
| Section Heading | Roobert | 44px (2.75rem) | 600 | 1.10 (tight) | -0.88px to -1.32px | All 5 stylistic sets |
|
||||
| Card Heading | Roobert | 32px (2.00rem) | 600 | 1.10 (tight) | -0.64px | All 5 stylistic sets |
|
||||
| Feature Title | Roobert | 20px (1.25rem) | 600 | 1.40 | -0.4px | All 5 stylistic sets |
|
||||
| Sub-heading | Roobert | 20px (1.25rem) | 500 | 1.50 | -0.16px | 4 stylistic sets (no ss01) |
|
||||
| Body Large | Roobert | 20px (1.25rem) | 400 | 1.40 | normal | 4 stylistic sets |
|
||||
| Body | Roobert | 18px (1.13rem) | 400 | 1.60 (relaxed) | -0.36px | 4 stylistic sets |
|
||||
| Body Standard | Roobert | 16px (1.00rem) | 400 | 1.50 | normal | 4 stylistic sets |
|
||||
| Body Medium | Roobert | 16px (1.00rem) | 500 | 1.20–1.40 | -0.16px to -0.32px | 4–5 stylistic sets |
|
||||
| Button | Roobert | 16px (1.00rem) | 500 | 1.50 | -0.16px | 4 stylistic sets |
|
||||
| Button Large | Roobert | 24px (1.50rem) | 400 | 1.50 | normal | 4 stylistic sets |
|
||||
| Button Small | Roobert | 12.8px (0.80rem) | 500 | 1.50 | -0.128px | 4 stylistic sets |
|
||||
| Nav Link | Roobert | 15px (0.94rem) | 500 | 1.60 (relaxed) | normal | 4 stylistic sets |
|
||||
| Caption | Roobert | 14px (0.88rem) | 400 | 1.50–1.60 | -0.14px | 4 stylistic sets |
|
||||
| Small | Roobert | 12px (0.75rem) | 400 | 1.50 | normal | 4 stylistic sets |
|
||||
| Uppercase Label | Roobert | 12px (0.75rem) | 600 | 1.20 (tight) | 1.08px | `text-transform: uppercase`, 4 sets |
|
||||
| Badge | Roobert | 9.6px | 600 | — | — | Pill badges |
|
||||
|
||||
### Principles
|
||||
- **Five stylistic sets as identity**: The combination of `"ss01"`, `"ss03"`, `"ss10"`, `"ss11"`, `"ss12"` on Roobert creates a distinctive typographic personality. `ss01` is reserved for headings and emphasis — body text omits it, creating a subtle hierarchy through glyph variation.
|
||||
- **Aggressive display compression**: -3.2px at 80px, -2.4px at 60px — the most compressed display tracking alongside the most generous body spacing (1.60 line-height), creating dramatic contrast.
|
||||
- **Weight 600 for headings, 500 for UI, 400 for body**: Clean three-tier system where each weight has a strict role.
|
||||
- **Uppercase labels with positive tracking**: 12px uppercase at 1.08px letter-spacing creates the systematic wayfinding pattern.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
|
||||
**Primary (Transparent with Hover Animation)**
|
||||
- Background: transparent (`rgba(239, 241, 243, 0)`)
|
||||
- Text: `#000000`
|
||||
- Padding: 6.4px 12.8px
|
||||
- Border: none (or `1px solid #717989` for outlined variant)
|
||||
- Hover: background shifts to swatch color (e.g., `#434346`), text to white, `rotateZ(-8deg)`, `translateY(-80%)`, hard shadow `rgb(0,0,0) -7px 7px`
|
||||
- Focus: `rgb(20, 110, 245) solid 2px` outline
|
||||
|
||||
**White Solid**
|
||||
- Background: `#ffffff`
|
||||
- Text: `#000000`
|
||||
- Padding: 6.4px
|
||||
- Hover: oat-200 swatch color, animated rotation + shadow
|
||||
- Use: Primary CTA on colored sections
|
||||
|
||||
**Ghost Outlined**
|
||||
- Background: transparent
|
||||
- Text: `#000000`
|
||||
- Padding: 8px
|
||||
- Border: `1px solid #717989`
|
||||
- Radius: 4px
|
||||
- Hover: dragonfruit swatch color, white text, animated rotation
|
||||
|
||||
### Cards & Containers
|
||||
- Background: `#ffffff` on cream canvas
|
||||
- Border: `1px solid #dad4c8` (warm oat) or `1px dashed #dad4c8`
|
||||
- Radius: 12px (standard cards), 24px (feature cards/images), 40px (section containers/footer)
|
||||
- Shadow: `rgba(0,0,0,0.1) 0px 1px 1px, rgba(0,0,0,0.04) 0px -1px 1px inset, rgba(0,0,0,0.05) 0px -0.5px 1px`
|
||||
- Colorful section backgrounds using swatch palette (matcha, slushie, ube, lemon)
|
||||
|
||||
### Inputs & Forms
|
||||
- Text: `#000000`
|
||||
- Border: `1px solid #717989`
|
||||
- Radius: 4px
|
||||
- Focus: `rgb(20, 110, 245) solid 2px` outline
|
||||
|
||||
### Navigation
|
||||
- Sticky top nav on cream background
|
||||
- Roobert 15px weight 500 for nav links
|
||||
- Clay logo left-aligned
|
||||
- CTA buttons right-aligned with pill radius
|
||||
- Border bottom: `1px solid #dad4c8`
|
||||
- Mobile: hamburger collapse at 767px
|
||||
|
||||
### Image Treatment
|
||||
- Product screenshots in white cards with oat borders
|
||||
- Colorful illustrated sections with swatch background colors
|
||||
- 8px–24px radius on images
|
||||
- Full-width colorful section backgrounds
|
||||
|
||||
### Distinctive Components
|
||||
|
||||
**Swatch Color Sections**
|
||||
- Full-width sections with swatch-colored backgrounds (matcha green, slushie cyan, ube purple, lemon gold)
|
||||
- White text on dark swatches, black text on light swatches
|
||||
- Each section tells a distinct product story through its color
|
||||
|
||||
**Playful Hover Buttons**
|
||||
- Rotate -8deg + translate upward on hover
|
||||
- Hard offset shadow (`-7px 7px`) instead of soft blur
|
||||
- Background transitions to contrasting swatch color
|
||||
- Creates a physical, toy-like interaction quality
|
||||
|
||||
**Dashed Border Elements**
|
||||
- Dashed borders (`1px dashed #dad4c8`) alongside solid borders
|
||||
- Used for secondary containers and decorative elements
|
||||
- Adds a hand-drawn, craft-like quality
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
- Base unit: 8px
|
||||
- Scale: 1px, 2px, 4px, 6.4px, 8px, 12px, 12.8px, 16px, 18px, 20px, 24px
|
||||
|
||||
### Grid & Container
|
||||
- Max content width centered
|
||||
- Feature sections alternate between white cards and colorful swatch backgrounds
|
||||
- Card grids: 2–3 columns on desktop
|
||||
- Full-width colorful sections break the grid
|
||||
- Footer with generous 40px radius container
|
||||
|
||||
### Whitespace Philosophy
|
||||
- **Warm, generous breathing**: The cream background provides a warm rest between content blocks. Spacing is generous but not austere — it feels inviting, like a well-set table.
|
||||
- **Color as spatial rhythm**: The alternating swatch-colored sections create visual rhythm through hue rather than just whitespace. Each color section is its own "room."
|
||||
- **Craft-like density inside cards**: Within cards, content is compact and well-organized, contrasting with the generous outer spacing.
|
||||
|
||||
### Border Radius Scale
|
||||
- Sharp (4px): Ghost buttons, inputs
|
||||
- Standard (8px): Small cards, images, links
|
||||
- Badge (11px): Tag badges
|
||||
- Card (12px): Standard cards, buttons
|
||||
- Feature (24px): Feature cards, images, panels
|
||||
- Section (40px): Large sections, footer, containers
|
||||
- Pill (1584px): CTAs, pill-shaped buttons
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|-------|-----------|-----|
|
||||
| Flat (Level 0) | No shadow, cream canvas | Page background |
|
||||
| Clay Shadow (Level 1) | `rgba(0,0,0,0.1) 0px 1px 1px, rgba(0,0,0,0.04) 0px -1px inset, rgba(0,0,0,0.05) 0px -0.5px` | Cards, buttons — multi-layer with inset highlight |
|
||||
| Hover Hard (Level 2) | `rgb(0,0,0) -7px 7px` | Hover state — playful hard offset shadow |
|
||||
| Focus (Level 3) | `rgb(20, 110, 245) solid 2px` | Keyboard focus ring |
|
||||
|
||||
**Shadow Philosophy**: Clay's shadow system is uniquely three-layered: a downward cast (`0px 1px 1px`), an upward inset highlight (`0px -1px 1px inset`), and a subtle edge (`0px -0.5px 1px`). This creates a "pressed into clay" quality where elements feel both raised AND embedded — like a clay tablet where content is stamped into the surface. The hover hard shadow (`-7px 7px`) is deliberately retro-graphic, referencing print-era drop shadows and adding physical playfulness.
|
||||
|
||||
### Decorative Depth
|
||||
- Full-width swatch-colored sections create dramatic depth through color contrast
|
||||
- Dashed borders add visual texture alongside solid borders
|
||||
- Product illustrations with warm, organic art style
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
|
||||
### Do
|
||||
- Use warm cream (`#faf9f7`) as the page background — the warmth is the identity
|
||||
- Apply all 5 OpenType stylistic sets on Roobert headings: `"ss01", "ss03", "ss10", "ss11", "ss12"`
|
||||
- Use the named swatch palette (Matcha, Slushie, Lemon, Ube, Pomegranate, Blueberry) for section backgrounds
|
||||
- Apply the playful hover animation: `rotateZ(-8deg)`, `translateY(-80%)`, hard shadow `-7px 7px`
|
||||
- Use warm oat borders (`#dad4c8`) — not neutral gray
|
||||
- Mix solid and dashed borders for visual variety
|
||||
- Use generous radius: 24px for cards, 40px for sections
|
||||
- Use weight 600 exclusively for headings, 500 for UI, 400 for body
|
||||
|
||||
### Don't
|
||||
- Don't use cool gray backgrounds — the warm cream (`#faf9f7`) is non-negotiable
|
||||
- Don't use neutral gray borders (`#ccc`, `#ddd`) — always use the warm oat tones
|
||||
- Don't mix more than 2 swatch colors in the same section
|
||||
- Don't skip the OpenType stylistic sets — they define Roobert's character
|
||||
- Don't use subtle hover effects — the rotation + hard shadow is the signature interaction
|
||||
- Don't use small border radius (<12px) on feature cards — the generous rounding is structural
|
||||
- Don't use standard shadows (blur-based) — Clay uses hard offset and multi-layer inset
|
||||
- Don't forget the uppercase labels with 1.08px tracking — they're the wayfinding system
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
| Name | Width | Key Changes |
|
||||
|------|-------|-------------|
|
||||
| Mobile Small | <479px | Single column, tight padding |
|
||||
| Mobile | 479–767px | Standard mobile, stacked layout |
|
||||
| Tablet | 768–991px | 2-column grids, condensed nav |
|
||||
| Desktop | 992px+ | Full layout, 3-column grids, expanded sections |
|
||||
|
||||
### Touch Targets
|
||||
- Buttons: minimum 6.4px + 12.8px padding for adequate touch area
|
||||
- Nav links: 15px font with generous spacing
|
||||
- Mobile: full-width buttons for easy tapping
|
||||
|
||||
### Collapsing Strategy
|
||||
- Hero: 80px → 60px → smaller display text
|
||||
- Navigation: horizontal → hamburger at 767px
|
||||
- Feature sections: multi-column → stacked
|
||||
- Colorful sections: maintain full-width but compress padding
|
||||
- Card grids: 3-column → 2-column → single column
|
||||
|
||||
### Image Behavior
|
||||
- Product screenshots scale proportionally
|
||||
- Colorful section illustrations adapt to viewport width
|
||||
- Rounded corners maintained across breakpoints
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- Background: Warm Cream (`#faf9f7`)
|
||||
- Text: Clay Black (`#000000`)
|
||||
- Secondary text: Warm Silver (`#9f9b93`)
|
||||
- Border: Oat Border (`#dad4c8`)
|
||||
- Green accent: Matcha 600 (`#078a52`)
|
||||
- Cyan accent: Slushie 500 (`#3bd3fd`)
|
||||
- Gold accent: Lemon 500 (`#fbbd41`)
|
||||
- Purple accent: Ube 800 (`#43089f`)
|
||||
- Pink accent: Pomegranate 400 (`#fc7981`)
|
||||
|
||||
### Example Component Prompts
|
||||
- "Create a hero on warm cream (#faf9f7) background. Headline at 80px Roobert weight 600, line-height 1.00, letter-spacing -3.2px, OpenType 'ss01 ss03 ss10 ss11 ss12', black text. Subtitle at 20px weight 400, line-height 1.40, #9f9b93 text. Two buttons: white solid pill (12px radius) and ghost outlined (4px radius, 1px solid #717989)."
|
||||
- "Design a colorful section with Matcha 800 (#02492a) background. Heading at 44px Roobert weight 600, letter-spacing -1.32px, white text. Body at 18px weight 400, line-height 1.60, #84e7a5 text. White card inset with oat border (#dad4c8), 24px radius."
|
||||
- "Build a button with playful hover: default transparent background, black text, 16px Roobert weight 500. On hover: background #434346, text white, transform rotateZ(-8deg) translateY(-80%), hard shadow rgb(0,0,0) -7px 7px."
|
||||
- "Create a card: white background, 1px solid #dad4c8 border, 24px radius. Shadow: rgba(0,0,0,0.1) 0px 1px 1px, rgba(0,0,0,0.04) 0px -1px 1px inset. Title at 32px Roobert weight 600, letter-spacing -0.64px."
|
||||
- "Design an uppercase label: 12px Roobert weight 600, text-transform uppercase, letter-spacing 1.08px, OpenType 'ss03 ss10 ss11 ss12'."
|
||||
|
||||
### Iteration Guide
|
||||
1. Start with warm cream (#faf9f7) — never cool white
|
||||
2. Swatch colors are for full sections, not small accents — go bold with matcha, slushie, ube
|
||||
3. Oat borders (#dad4c8) everywhere — dashed variants for decoration
|
||||
4. OpenType stylistic sets are mandatory — they make Roobert look like Roobert
|
||||
5. Hover animations are the signature — rotation + hard shadow, not subtle fades
|
||||
6. Generous radius: 24px cards, 40px sections — nothing looks sharp or corporate
|
||||
7. Three weights: 600 (headings), 500 (UI), 400 (body) — strict roles
|
||||
68
plugins/_official/design-systems/clay/open-design.json
Normal file
68
plugins/_official/design-systems/clay/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-clay",
|
||||
"title": "Clay",
|
||||
"version": "0.1.0",
|
||||
"description": "Creative agency. Organic shapes, soft gradients, art-directed layout.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"design-creative"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Clay design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "clay",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/claymorphism/DESIGN.md
Normal file
71
plugins/_official/design-systems/claymorphism/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Claymorphism
|
||||
|
||||
> Category: Morphism & Effects
|
||||
> Soft, rounded 3D-like shapes mimicking malleable clay with playful, puffy elements and colorful surfaces.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Soft, rounded 3D-like shapes mimicking malleable clay with playful, puffy elements and colorful surfaces.
|
||||
|
||||
- **Visual style:** modern, high-contrast, playful
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#3B82F6` — Token from style foundations.
|
||||
- **Secondary:** `#FFFFFF` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#1C398E` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#3B82F6) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#1C398E) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** desktop-first expressive scale
|
||||
- **Families:** primary=Montserrat, display=Poppins, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#3B82F6`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#3B82F6) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-claymorphism",
|
||||
"title": "Claymorphism",
|
||||
"version": "0.1.0",
|
||||
"description": "Soft, rounded 3D-like shapes mimicking malleable clay with playful, puffy elements and colorful surfaces.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"morphism-effects"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Claymorphism design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "claymorphism",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/clean/DESIGN.md
Normal file
71
plugins/_official/design-systems/clean/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Clean
|
||||
|
||||
> Category: Modern & Minimal
|
||||
> Simplicity-focused design with ample whitespace, legible typography, and a limited color palette to reduce visual clutter.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Simplicity-focused design with ample whitespace, legible typography, and a limited color palette to reduce visual clutter.
|
||||
|
||||
- **Visual style:** minimal, clean
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#3B82F6` — Token from style foundations.
|
||||
- **Secondary:** `#8B5CF6` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#3B82F6) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32
|
||||
- **Families:** primary=Roboto, display=Poppins, mono=Inconsolata
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 8pt baseline grid
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#3B82F6`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#3B82F6) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/clean/open-design.json
Normal file
68
plugins/_official/design-systems/clean/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-clean",
|
||||
"title": "Clean",
|
||||
"version": "0.1.0",
|
||||
"description": "Simplicity-focused design with ample whitespace, legible typography, and a limited color palette to reduce visual clutter.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"modern-minimal"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Clean design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "clean",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
284
plugins/_official/design-systems/clickhouse/DESIGN.md
Normal file
284
plugins/_official/design-systems/clickhouse/DESIGN.md
Normal file
|
|
@ -0,0 +1,284 @@
|
|||
# Design System Inspired by ClickHouse
|
||||
|
||||
> Category: Backend & Data
|
||||
> Fast analytics database. Yellow-accented, technical documentation style.
|
||||
|
||||
## 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
|
||||
68
plugins/_official/design-systems/clickhouse/open-design.json
Normal file
68
plugins/_official/design-systems/clickhouse/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-clickhouse",
|
||||
"title": "ClickHouse",
|
||||
"version": "0.1.0",
|
||||
"description": "Fast analytics database. Yellow-accented, technical documentation style.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"backend-data"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the ClickHouse design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "clickhouse",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
269
plugins/_official/design-systems/cohere/DESIGN.md
Normal file
269
plugins/_official/design-systems/cohere/DESIGN.md
Normal file
|
|
@ -0,0 +1,269 @@
|
|||
# Design System Inspired by Cohere
|
||||
|
||||
> Category: AI & LLM
|
||||
> Enterprise AI platform. Vibrant gradients, data-rich dashboard aesthetic.
|
||||
|
||||
## 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
|
||||
68
plugins/_official/design-systems/cohere/open-design.json
Normal file
68
plugins/_official/design-systems/cohere/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-cohere",
|
||||
"title": "Cohere",
|
||||
"version": "0.1.0",
|
||||
"description": "Enterprise AI platform. Vibrant gradients, data-rich dashboard aesthetic.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"ai-llm"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Cohere design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "cohere",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
132
plugins/_official/design-systems/coinbase/DESIGN.md
Normal file
132
plugins/_official/design-systems/coinbase/DESIGN.md
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
# Design System Inspired by Coinbase
|
||||
|
||||
> Category: Fintech & Crypto
|
||||
> Crypto exchange. Clean blue identity, trust-focused, institutional feel.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Coinbase's website is a clean, trustworthy crypto platform that communicates financial reliability through a blue-and-white binary palette. The design uses Coinbase Blue (`#0052ff`) — a deep, saturated blue — as the singular brand accent against white and near-black surfaces. The proprietary font family includes CoinbaseDisplay for hero headlines, CoinbaseSans for UI text, CoinbaseText for body reading, and CoinbaseIcons for iconography — a comprehensive four-font system.
|
||||
|
||||
The button system uses a distinctive 56px radius for pill-shaped CTAs with hover transitions to a lighter blue (`#578bfa`). The design alternates between white content sections and dark (`#0a0b0d`, `#282b31`) feature sections, creating a professional, financial-grade interface.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Coinbase Blue (`#0052ff`) as singular brand accent
|
||||
- Four-font proprietary family: Display, Sans, Text, Icons
|
||||
- 56px radius pill buttons with blue hover transition
|
||||
- Near-black (`#0a0b0d`) dark sections + white light sections
|
||||
- 1.00 line-height on display headings — ultra-tight
|
||||
- Cool gray secondary surface (`#eef0f3`) with blue tint
|
||||
- `text-transform: lowercase` on some button labels — unusual
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Coinbase Blue** (`#0052ff`): Primary brand, links, CTA borders
|
||||
- **Pure White** (`#ffffff`): Primary light surface
|
||||
- **Near Black** (`#0a0b0d`): Text, dark section backgrounds
|
||||
- **Cool Gray Surface** (`#eef0f3`): Secondary button background
|
||||
|
||||
### Interactive
|
||||
- **Hover Blue** (`#578bfa`): Button hover background
|
||||
- **Link Blue** (`#0667d0`): Secondary link color
|
||||
- **Muted Blue** (`#5b616e`): Border color at 20% opacity
|
||||
|
||||
### Surface
|
||||
- **Dark Card** (`#282b31`): Dark button/card backgrounds
|
||||
- **Light Surface** (`rgba(247,247,247,0.88)`): Subtle surface
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Families
|
||||
- **Display**: `CoinbaseDisplay` — hero headlines
|
||||
- **UI / Sans**: `CoinbaseSans` — buttons, headings, nav
|
||||
- **Body**: `CoinbaseText` — reading text
|
||||
- **Icons**: `CoinbaseIcons` — icon font
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Notes |
|
||||
|------|------|------|--------|-------------|-------|
|
||||
| Display Hero | CoinbaseDisplay | 80px | 400 | 1.00 (tight) | Maximum impact |
|
||||
| Display Secondary | CoinbaseDisplay | 64px | 400 | 1.00 | Sub-hero |
|
||||
| Display Third | CoinbaseDisplay | 52px | 400 | 1.00 | Third tier |
|
||||
| Section Heading | CoinbaseSans | 36px | 400 | 1.11 (tight) | Feature sections |
|
||||
| Card Title | CoinbaseSans | 32px | 400 | 1.13 | Card headings |
|
||||
| Feature Title | CoinbaseSans | 18px | 600 | 1.33 | Feature emphasis |
|
||||
| Body Bold | CoinbaseSans | 16px | 700 | 1.50 | Strong body |
|
||||
| Body Semibold | CoinbaseSans | 16px | 600 | 1.25 | Buttons, nav |
|
||||
| Body | CoinbaseText | 18px | 400 | 1.56 | Standard reading |
|
||||
| Body Small | CoinbaseText | 16px | 400 | 1.50 | Secondary reading |
|
||||
| Button | CoinbaseSans | 16px | 600 | 1.20 | +0.16px tracking |
|
||||
| Caption | CoinbaseSans | 14px | 600–700 | 1.50 | Metadata |
|
||||
| Small | CoinbaseSans | 13px | 600 | 1.23 | Tags |
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
|
||||
**Primary Pill (56px radius)**
|
||||
- Background: `#eef0f3` or `#282b31`
|
||||
- Radius: 56px
|
||||
- Border: `1px solid` matching background
|
||||
- Hover: `#578bfa` (light blue)
|
||||
- Focus: `2px solid black` outline
|
||||
|
||||
**Full Pill (100000px radius)**
|
||||
- Used for maximum pill shape
|
||||
|
||||
**Blue Bordered**
|
||||
- Border: `1px solid #0052ff`
|
||||
- Background: transparent
|
||||
|
||||
### Cards & Containers
|
||||
- Radius: 8px–40px range
|
||||
- Borders: `1px solid rgba(91,97,110,0.2)`
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
- Base: 8px
|
||||
- Scale: 1px, 3px, 4px, 5px, 6px, 8px, 10px, 12px, 15px, 16px, 20px, 24px, 25px, 32px, 48px
|
||||
|
||||
### Border Radius Scale
|
||||
- Small (4px–8px): Article links, small cards
|
||||
- Standard (12px–16px): Cards, menus
|
||||
- Large (24px–32px): Feature containers
|
||||
- XL (40px): Large buttons/containers
|
||||
- Pill (56px): Primary CTAs
|
||||
- Full (100000px): Maximum pill
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
Minimal shadow system — depth from color contrast between dark/light sections.
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
|
||||
### Do
|
||||
- Use Coinbase Blue (#0052ff) for primary interactive elements
|
||||
- Apply 56px radius for all CTA buttons
|
||||
- Use CoinbaseDisplay for hero headings only
|
||||
- Alternate dark (#0a0b0d) and white sections
|
||||
|
||||
### Don't
|
||||
- Don't use the blue decoratively — it's functional only
|
||||
- Don't use sharp corners on CTAs — 56px minimum
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
Breakpoints: 400px, 576px, 640px, 768px, 896px, 1280px, 1440px, 1600px
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- Brand: Coinbase Blue (`#0052ff`)
|
||||
- Background: White (`#ffffff`)
|
||||
- Dark surface: `#0a0b0d`
|
||||
- Secondary surface: `#eef0f3`
|
||||
- Hover: `#578bfa`
|
||||
- Text: `#0a0b0d`
|
||||
|
||||
### Example Component Prompts
|
||||
- "Create hero: white background. CoinbaseDisplay 80px, line-height 1.00. Pill CTA (#eef0f3, 56px radius). Hover: #578bfa."
|
||||
- "Build dark section: #0a0b0d background. CoinbaseDisplay 64px white text. Blue accent link (#0052ff)."
|
||||
68
plugins/_official/design-systems/coinbase/open-design.json
Normal file
68
plugins/_official/design-systems/coinbase/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-coinbase",
|
||||
"title": "Coinbase",
|
||||
"version": "0.1.0",
|
||||
"description": "Crypto exchange. Clean blue identity, trust-focused, institutional feel.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"fintech-crypto"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Coinbase design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "coinbase",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/colorful/DESIGN.md
Normal file
71
plugins/_official/design-systems/colorful/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Colorful
|
||||
|
||||
> Category: Bold & Expressive
|
||||
> Vibrant, high-contrast palettes and gradients for engaging, memorable, and modern user experiences.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Vibrant, high-contrast palettes and gradients for engaging, memorable, and modern user experiences.
|
||||
|
||||
- **Visual style:** high-contrast, playful, premium
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#3B82F6` — Token from style foundations.
|
||||
- **Secondary:** `#8B5CF6` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#3B82F6) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32
|
||||
- **Families:** primary=Inter, display=Inter, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 8pt baseline grid
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#3B82F6`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#3B82F6) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/colorful/open-design.json
Normal file
68
plugins/_official/design-systems/colorful/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-colorful",
|
||||
"title": "Colorful",
|
||||
"version": "0.1.0",
|
||||
"description": "Vibrant, high-contrast palettes and gradients for engaging, memorable, and modern user experiences.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"bold-expressive"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Colorful design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "colorful",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
310
plugins/_official/design-systems/composio/DESIGN.md
Normal file
310
plugins/_official/design-systems/composio/DESIGN.md
Normal file
|
|
@ -0,0 +1,310 @@
|
|||
# Design System Inspired by Composio
|
||||
|
||||
> Category: Backend & Data
|
||||
> Tool integration platform. Modern dark with colorful integration icons.
|
||||
|
||||
## 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
|
||||
68
plugins/_official/design-systems/composio/open-design.json
Normal file
68
plugins/_official/design-systems/composio/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-composio",
|
||||
"title": "Composio",
|
||||
"version": "0.1.0",
|
||||
"description": "Tool integration platform. Modern dark with colorful integration icons.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"backend-data"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Composio design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "composio",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/contemporary/DESIGN.md
Normal file
71
plugins/_official/design-systems/contemporary/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Contemporary
|
||||
|
||||
> Category: Modern & Minimal
|
||||
> Current-era minimalist design with bento grids, dark mode support, and high-performance accessible layouts.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Current-era minimalist design with bento grids, dark mode support, and high-performance accessible layouts.
|
||||
|
||||
- **Visual style:** modern, minimal, bold, playful
|
||||
- **Color stance:** primary, secondary, neutral
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#C800DF` — Token from style foundations.
|
||||
- **Secondary:** `#E60076` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#C800DF) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** desktop-first expressive scale
|
||||
- **Families:** primary=Jost, display=Jost, mono=Overpass Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** comfortable density mode
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#C800DF`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#C800DF) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-contemporary",
|
||||
"title": "Contemporary",
|
||||
"version": "0.1.0",
|
||||
"description": "Current-era minimalist design with bento grids, dark mode support, and high-performance accessible layouts.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"modern-minimal"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Contemporary design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "contemporary",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/corporate/DESIGN.md
Normal file
71
plugins/_official/design-systems/corporate/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Corporate
|
||||
|
||||
> Category: Professional & Corporate
|
||||
> Professional, brand-aligned design with structured grids, minimalist layouts, and consistent enterprise patterns.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Professional, brand-aligned design with structured grids, minimalist layouts, and consistent enterprise patterns.
|
||||
|
||||
- **Visual style:** enterprise, premium
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#3B82F6` — Token from style foundations.
|
||||
- **Secondary:** `#8B5CF6` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#3B82F6) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** desktop-first expressive scale
|
||||
- **Families:** primary=Open Sans, display=Poppins, mono=IBM Plex Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 8pt baseline grid
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#3B82F6`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#3B82F6) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/corporate/open-design.json
Normal file
68
plugins/_official/design-systems/corporate/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-corporate",
|
||||
"title": "Corporate",
|
||||
"version": "0.1.0",
|
||||
"description": "Professional, brand-aligned design with structured grids, minimalist layouts, and consistent enterprise patterns.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"professional-corporate"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Corporate design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "corporate",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/cosmic/DESIGN.md
Normal file
71
plugins/_official/design-systems/cosmic/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Cosmic
|
||||
|
||||
> Category: Creative & Artistic
|
||||
> Futuristic sci-fi aesthetic with dark themes, vibrant neon accents, and immersive spatial elements.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Futuristic sci-fi aesthetic with dark themes, vibrant neon accents, and immersive spatial elements.
|
||||
|
||||
- **Visual style:** playful, premium
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#3B82F6` — Token from style foundations.
|
||||
- **Secondary:** `#8B5CF6` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#3B82F6) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32
|
||||
- **Families:** primary=Audiowide, display=Audiowide, mono=JetBrains Mono
|
||||
- **Weights:** 400
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#3B82F6`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#3B82F6) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/cosmic/open-design.json
Normal file
68
plugins/_official/design-systems/cosmic/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-cosmic",
|
||||
"title": "Cosmic",
|
||||
"version": "0.1.0",
|
||||
"description": "Futuristic sci-fi aesthetic with dark themes, vibrant neon accents, and immersive spatial elements.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"creative-artistic"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Cosmic design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "cosmic",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/creative/DESIGN.md
Normal file
71
plugins/_official/design-systems/creative/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Creative
|
||||
|
||||
> Category: Creative & Artistic
|
||||
> Playful, character-driven design with expressive typography and bold graphics for landing pages and creative projects.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Playful, character-driven design with expressive typography and bold graphics for landing pages and creative projects.
|
||||
|
||||
- **Visual style:** playful
|
||||
- **Color stance:** primary, secondary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#3B82F6` — Token from style foundations.
|
||||
- **Secondary:** `#8B5CF6` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#3B82F6) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32
|
||||
- **Families:** primary=Bangers, display=Bangers, mono=IBM Plex Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#3B82F6`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#3B82F6) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/creative/open-design.json
Normal file
68
plugins/_official/design-systems/creative/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-creative",
|
||||
"title": "Creative",
|
||||
"version": "0.1.0",
|
||||
"description": "Playful, character-driven design with expressive typography and bold graphics for landing pages and creative projects.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"creative-artistic"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Creative design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "creative",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
312
plugins/_official/design-systems/cursor/DESIGN.md
Normal file
312
plugins/_official/design-systems/cursor/DESIGN.md
Normal file
|
|
@ -0,0 +1,312 @@
|
|||
# Design System Inspired by Cursor
|
||||
|
||||
> Category: Developer Tools
|
||||
> AI-first code editor. Sleek dark interface, gradient accents.
|
||||
|
||||
## 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
|
||||
68
plugins/_official/design-systems/cursor/open-design.json
Normal file
68
plugins/_official/design-systems/cursor/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-cursor",
|
||||
"title": "Cursor",
|
||||
"version": "0.1.0",
|
||||
"description": "AI-first code editor. Sleek dark interface, gradient accents.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"developer-tools"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Cursor design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "cursor",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/dashboard/DESIGN.md
Normal file
71
plugins/_official/design-systems/dashboard/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Dashboard
|
||||
|
||||
> Category: Professional & Corporate
|
||||
> Dark-themed cloud-platform aesthetic with modular grids, glass-like panels, and strong data hierarchy for productivity dashboards.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Dark-themed cloud-platform aesthetic with modular grids, glass-like panels, and strong data hierarchy for productivity dashboards.
|
||||
|
||||
- **Visual style:** modern, clean, cloud-platform aesthetic (Heroku/Vercel/GitHub inspired), dark theme, subtle gradients, soft shadows, glass-like panels, rounded components
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#0C5CAB` — Token from style foundations.
|
||||
- **Secondary:** `#0A4A8A` — Token from style foundations.
|
||||
- **Success:** `#10B981` — Token from style foundations.
|
||||
- **Warning:** `#F59E0B` — Token from style foundations.
|
||||
- **Danger:** `#EF4444` — Token from style foundations.
|
||||
- **Surface:** `#09090B` — Token from style foundations.
|
||||
- **Text:** `#FAFAFA` — Token from style foundations.
|
||||
- **Neutral:** `#09090B` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#0C5CAB) for CTA emphasis.
|
||||
- Use Surface (#09090B) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#FAFAFA) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32
|
||||
- **Families:** primary=IBM Plex Sans, display=IBM Plex Sans, mono=IBM Plex Sans
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 8pt baseline grid
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#0C5CAB`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#0C5CAB) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/dashboard/open-design.json
Normal file
68
plugins/_official/design-systems/dashboard/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-dashboard",
|
||||
"title": "Dashboard",
|
||||
"version": "0.1.0",
|
||||
"description": "Dark-themed cloud-platform aesthetic with modular grids, glass-like panels, and strong data hierarchy for productivity dashboards.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"professional-corporate"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Dashboard design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "dashboard",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
62
plugins/_official/design-systems/default/DESIGN.md
Normal file
62
plugins/_official/design-systems/default/DESIGN.md
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
# Neutral Modern
|
||||
|
||||
> Category: Starter
|
||||
> A clean, product-oriented default. Use when the brief doesn't call for a
|
||||
> specific mood — good for B2B tools, dashboards, and utility pages.
|
||||
|
||||
## Visual Theme & Atmosphere
|
||||
Calm, functional, quietly confident. No ornament. Content-first, chrome-second.
|
||||
|
||||
## Color Palette & Roles
|
||||
- **Background:** `#FAFAFA`
|
||||
- **Foreground:** `#111111`
|
||||
- **Accent:** `#2F6FEB` (cobalt) — primary CTAs, links, one hero element per screen
|
||||
- **Muted:** `#6B6B6B` — secondary text, captions
|
||||
- **Border:** `#E5E5E5`
|
||||
- **Surface:** `#FFFFFF` — cards, modals
|
||||
- **Success:** `#17A34A`, **Warn:** `#EAB308`, **Danger:** `#DC2626`
|
||||
Never pure black; never pure white for backgrounds.
|
||||
|
||||
## Typography Rules
|
||||
- **Display / headings:** `'Inter', -apple-system, system-ui, sans-serif`, weight 600
|
||||
- **Body:** `'Inter', -apple-system, system-ui, sans-serif`, weight 400
|
||||
- **Mono:** `ui-monospace, 'JetBrains Mono', monospace`
|
||||
- Scale (px): 12 · 14 · 16 · 20 · 24 · 32 · 48 · 64
|
||||
- Line-height: 1.5 for body, 1.2 for headings
|
||||
- Letter-spacing: -0.01em on display sizes ≥32px
|
||||
|
||||
## Component Stylings
|
||||
- **Buttons:** 8px radius, 10px padding-block, 16px padding-inline. Primary = cobalt fill, white label. Secondary = 1px border, transparent fill.
|
||||
- **Cards:** white, 1px border, 12px radius, 20px internal padding, no shadow by default.
|
||||
- **Inputs:** 1px border, 8px radius, 10px vertical padding, cobalt border on focus.
|
||||
- **Links:** cobalt, no underline, underline on hover.
|
||||
|
||||
## Layout Principles
|
||||
- 12-column grid, 1200px max-width, 24px gutters.
|
||||
- Hero: 40–60vh. Content top-biased, never centered vertically.
|
||||
- Sections: 80px top+bottom spacing desktop, 48px tablet, 32px phone.
|
||||
- Use whitespace as the main separator. Dividers only between unrelated top-level sections.
|
||||
|
||||
## Depth & Elevation
|
||||
Two levels only:
|
||||
- **Flat (0):** default.
|
||||
- **Raised (1):** dropdowns, modals, floating buttons. 2px y-offset, 8px blur, foreground at 8% opacity.
|
||||
No neumorphism, no glassmorphism.
|
||||
|
||||
## Do's and Don'ts
|
||||
- ✅ Let whitespace do the work.
|
||||
- ✅ One accent element per screen.
|
||||
- ✅ Sentence-case headings by default; title case only for brand names.
|
||||
- ❌ No gradients (except the accent → accent-at-80% on a hero, sparingly).
|
||||
- ❌ No drop shadows on inputs.
|
||||
- ❌ No more than three type sizes on one screen.
|
||||
|
||||
## Responsive Behavior
|
||||
- **Desktop ≥ 1024px:** 12-col grid.
|
||||
- **Tablet 640–1023px:** 8-col grid, 16px gutters.
|
||||
- **Phone < 640px:** 4-col grid, 12px gutters; hero drops to 40vh.
|
||||
|
||||
## Agent Prompt Guide
|
||||
- When in doubt, subtract. Fewer boxes, less chrome, more space.
|
||||
- Use the accent color sparingly — at most one hero accent and one CTA accent per screen.
|
||||
- Do not invent hex values outside this palette. If the request needs one, surface a warning comment in the artifact and use the closest existing token.
|
||||
68
plugins/_official/design-systems/default/open-design.json
Normal file
68
plugins/_official/design-systems/default/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-default",
|
||||
"title": "Neutral Modern",
|
||||
"version": "0.1.0",
|
||||
"description": "A clean, product-oriented default. Use when the brief doesn't call for a\nspecific mood — good for B2B tools, dashboards, and utility pages.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"starter"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Neutral Modern design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "default",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
162
plugins/_official/design-systems/discord/DESIGN.md
Normal file
162
plugins/_official/design-systems/discord/DESIGN.md
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
# Design System Inspired by Discord
|
||||
|
||||
> Category: Productivity & SaaS
|
||||
> Voice / chat platform. Deep blurple, dark-first surfaces, playful accent moments.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Discord's product is engineered for evenings, raids, and group voice — so the entire surface is dark-first. The default canvas is the deep `Background Primary` (`#313338` light theme, `#1e1f22` dark theme), with chat columns layered on slightly lighter or darker shades to denote channels, threads, and side panels. The signature **Blurple** (`#5865f2`) is reserved for the brand mark, primary CTAs, mentions, and the "you" affordance — used sparingly so it pops against the muted neutrals.
|
||||
|
||||
Typography is **gg sans** (Discord's custom Whitney-replacement) for prose and chrome, with rounded geometric shapes that feel approachable but still legible at the small sizes a chat client demands. Headings step up incrementally; chat rows are tight (4–8px between message groups) so hours of scrollback feel scannable.
|
||||
|
||||
The shape language is rounded but not balloon-soft: 8px radii on cards, 4px on inputs, full pills on status badges and tags. Servers are rounded-square avatars at 48px that morph to circles on hover — a tiny piece of motion that has become part of the brand's identity.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Dark-first surfaces: `#1e1f22` / `#2b2d31` / `#313338` (3-step depth)
|
||||
- Blurple `#5865f2` as the only saturated accent in the chat surface
|
||||
- gg sans (Whitney-style) for all text — friendly, geometric, neutral
|
||||
- Rounded-square server avatars (16px radius) that snap to circles on hover
|
||||
- Tight chat-row spacing, generous side-panel padding
|
||||
- Status dots: green online, yellow idle, red dnd, gray offline
|
||||
- Pixel-snapped 1px dividers in subtle off-white at low alpha
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Blurple** (`#5865f2`): Brand primary, primary CTA, mention highlight.
|
||||
- **Blurple Hover** (`#4752c4`): Hover/active for blurple.
|
||||
- **Blurple Soft** (`#7289da`): Legacy blurple, secondary accent in marketing.
|
||||
|
||||
### Surface (Dark Theme — default)
|
||||
- **Background Tertiary** (`#1e1f22`): Server list rail, deepest background.
|
||||
- **Background Secondary** (`#2b2d31`): Channel sidebar, settings sidebar.
|
||||
- **Background Primary** (`#313338`): Chat surface, message column.
|
||||
- **Background Floating** (`#111214`): Floating popovers, tooltips, autocomplete.
|
||||
- **Background Modifier Hover** (`rgba(78, 80, 88, 0.3)`): Hover overlay on rows.
|
||||
- **Background Modifier Selected** (`rgba(78, 80, 88, 0.6)`): Active row.
|
||||
|
||||
### Surface (Light Theme)
|
||||
- **Light Bg Primary** (`#ffffff`): Chat surface in light theme.
|
||||
- **Light Bg Secondary** (`#f2f3f5`): Sidebar in light theme.
|
||||
- **Light Bg Tertiary** (`#e3e5e8`): Deepest light surface.
|
||||
|
||||
### Text
|
||||
- **Header Primary** (`#f2f3f5`): Channel headers, modal titles in dark theme.
|
||||
- **Header Secondary** (`#b5bac1`): Muted headers.
|
||||
- **Text Normal** (`#dbdee1`): Body text in dark theme — slightly cooler than pure white.
|
||||
- **Text Muted** (`#949ba4`): Timestamps, server names, secondary metadata.
|
||||
- **Text Link** (`#00a8fc`): Hyperlinks in messages — sky blue, distinct from blurple.
|
||||
- **Channels Default** (`#80848e`): Inactive channel name in sidebar.
|
||||
|
||||
### Status & Semantic
|
||||
- **Status Online** (`#23a55a`): Online dot, success states.
|
||||
- **Status Idle** (`#f0b232`): Idle dot, away.
|
||||
- **Status DND** (`#f23f43`): Do-not-disturb, also serves as destructive red.
|
||||
- **Status Streaming** (`#593695`): "Streaming" purple.
|
||||
- **Status Offline** (`#80848e`): Offline gray.
|
||||
- **Mention Highlight** (`rgba(88, 101, 242, 0.1)`): Soft blurple wash on @mention rows.
|
||||
|
||||
### Border & Divider
|
||||
- **Background Modifier Accent** (`rgba(255, 255, 255, 0.06)`): Standard divider in dark.
|
||||
- **Border Subtle** (`#3f4147`): Solid divider for cards.
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
- **Body / UI / Headings**: `gg sans`, with fallback: `"Helvetica Neue", Helvetica, Arial, sans-serif`
|
||||
- **Display (legacy / Whitney)**: `Whitney`, with fallback: `gg sans`
|
||||
- **Code / Mono**: `"gg mono"`, with fallback: `Consolas, Andale Mono, Courier New, Courier, monospace`
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|------|--------|-------------|----------------|-------|
|
||||
| Display Hero | gg sans | 56px (3.5rem) | 800 | 1.1 | -0.02em | Marketing hero |
|
||||
| Page Heading | gg sans | 24px (1.5rem) | 700 | 1.25 | normal | Settings/profile titles |
|
||||
| Channel Name | gg sans | 16px (1rem) | 600 | 1.25 | normal | `#general`, channel header |
|
||||
| Message Body | gg sans | 16px (1rem) | 400 | 1.375 | normal | Standard chat text |
|
||||
| Username | gg sans | 16px (1rem) | 500 | 1.25 | normal | Author of a message |
|
||||
| Timestamp | gg sans | 12px (0.75rem) | 500 | 1.25 | normal | "Today at 4:32 PM" |
|
||||
| Sidebar Channel | gg sans | 16px (1rem) | 500 | 1.25 | normal | Channel list rows |
|
||||
| Server Name | gg sans | 16px (1rem) | 600 | 1.25 | normal | Server header |
|
||||
| Caption / Meta | gg sans | 12px (0.75rem) | 400 | 1.3 | 0.02em | Status text, edited tag |
|
||||
| Code Inline | gg mono | 0.875em | 400 | inherit | normal | Inline `code` |
|
||||
| Code Block | gg mono | 14px (0.875rem) | 400 | 1.5 | normal | ```triple-fenced``` block |
|
||||
|
||||
### Principles
|
||||
- **Friendly geometry**: gg sans replaces Whitney with rounded terminals on a/g/s — the brand wants warmth without breaking legibility.
|
||||
- **Weight contrast over color contrast**: hierarchy comes from 400→500→600→700→800 weight steps; the surface stays neutral.
|
||||
- **16px body**: chat messages do not shrink below 16px. Density comes from line-height (1.375), not font size.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
|
||||
**Primary**
|
||||
- Background: `#5865f2`
|
||||
- Text: `#ffffff`
|
||||
- Padding: 8px 16px
|
||||
- Radius: 4px
|
||||
- Hover: `#4752c4`
|
||||
- Use: Primary CTAs, "Continue", "Join Server"
|
||||
|
||||
**Secondary**
|
||||
- Background: `#4e5058`
|
||||
- Text: `#ffffff`
|
||||
- Padding: 8px 16px
|
||||
- Radius: 4px
|
||||
- Hover: `#6d6f78`
|
||||
|
||||
**Tertiary / Subtle (Link-style)**
|
||||
- Background: transparent
|
||||
- Text: `#dbdee1`
|
||||
- Hover: text underlined, no background change
|
||||
|
||||
**Danger**
|
||||
- Background: `#da373c`
|
||||
- Text: `#ffffff`
|
||||
- Hover: `#a12d2f`
|
||||
|
||||
### Inputs
|
||||
- Background: `#1e1f22`
|
||||
- Text: `#dbdee1`
|
||||
- Border: 1px solid `#1e1f22`
|
||||
- Radius: 4px
|
||||
- Padding: 10px 12px
|
||||
- Focus: border `#5865f2`
|
||||
|
||||
### Server Avatars
|
||||
- Size: 48×48px
|
||||
- Radius: 16px (rounded square) by default; transitions to 50% on hover and active.
|
||||
- Active state: 4px white pill on the left edge of the icon column.
|
||||
|
||||
### Status Dots
|
||||
- Size: 10×10px
|
||||
- Border: 3px solid background-tertiary (creates the "notch" effect)
|
||||
- Position: bottom-right of avatar.
|
||||
|
||||
### Cards / Embeds
|
||||
- Background: `#2b2d31` (dark) or `#f2f3f5` (light)
|
||||
- Left border: 4px solid embed accent color.
|
||||
- Radius: 4px
|
||||
- Padding: 8px 16px
|
||||
|
||||
### Mention Pill
|
||||
- Background: `rgba(88, 101, 242, 0.3)`
|
||||
- Text: `#c9cdfb`
|
||||
- Padding: 0 2px
|
||||
- Radius: 3px
|
||||
|
||||
## 5. Spacing & Layout
|
||||
|
||||
- **Base unit**: 4px. Scale: 4, 8, 12, 16, 20, 24, 32, 40.
|
||||
- **Server rail**: 72px wide, fixed.
|
||||
- **Channel sidebar**: 240px wide.
|
||||
- **Member list**: 240px wide on desktop.
|
||||
- **Chat column**: fluid, min 380px.
|
||||
|
||||
## 6. Motion
|
||||
|
||||
- **Duration**: 200ms for hover; 350ms for the avatar circle-morph; 80ms for tooltip fade.
|
||||
- **Easing**: `cubic-bezier(0.215, 0.61, 0.355, 1)` for the avatar morph (snappy then settle).
|
||||
- **Notification pulse**: 1.4s ease-in-out infinite on unread mention indicator.
|
||||
68
plugins/_official/design-systems/discord/open-design.json
Normal file
68
plugins/_official/design-systems/discord/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-discord",
|
||||
"title": "Discord",
|
||||
"version": "0.1.0",
|
||||
"description": "Voice / chat platform. Deep blurple, dark-first surfaces, playful accent moments.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"productivity-saas"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Discord design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "discord",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/dithered/DESIGN.md
Normal file
71
plugins/_official/design-systems/dithered/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Dithered
|
||||
|
||||
> Category: Retro & Nostalgic
|
||||
> Dot-pattern rendering technique that simulates shades with a limited palette for nostalgic, retro, high-contrast visuals.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Dot-pattern rendering technique that simulates shades with a limited palette for nostalgic, retro, high-contrast visuals.
|
||||
|
||||
- **Visual style:** modern, minimal
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#3B82F6` — Token from style foundations.
|
||||
- **Secondary:** `#8B5CF6` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#3B82F6) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 14/16/18/24/32/40
|
||||
- **Families:** primary=Open Sans, display=Space Grotesk, mono=IBM Plex Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#3B82F6`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#3B82F6) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/dithered/open-design.json
Normal file
68
plugins/_official/design-systems/dithered/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-dithered",
|
||||
"title": "Dithered",
|
||||
"version": "0.1.0",
|
||||
"description": "Dot-pattern rendering technique that simulates shades with a limited palette for nostalgic, retro, high-contrast visuals.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"retro-nostalgic"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Dithered design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "dithered",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/doodle/DESIGN.md
Normal file
71
plugins/_official/design-systems/doodle/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Doodle
|
||||
|
||||
> Category: Creative & Artistic
|
||||
> Hand-drawn, sketch-like style with doodles, handwritten fonts, and imperfect lines for a playful, informal feel.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Hand-drawn, sketch-like style with doodles, handwritten fonts, and imperfect lines for a playful, informal feel.
|
||||
|
||||
- **Visual style:** playful
|
||||
- **Color stance:** primary, secondary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#49B6E5` — Token from style foundations.
|
||||
- **Secondary:** `#263D5B` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#49B6E5) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 14/16/18/24/32/40
|
||||
- **Families:** primary=Delius Swash Caps, display=Delius Swash Caps, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#49B6E5`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#49B6E5) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/doodle/open-design.json
Normal file
68
plugins/_official/design-systems/doodle/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-doodle",
|
||||
"title": "Doodle",
|
||||
"version": "0.1.0",
|
||||
"description": "Hand-drawn, sketch-like style with doodles, handwritten fonts, and imperfect lines for a playful, informal feel.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"creative-artistic"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Doodle design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "doodle",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/dramatic/DESIGN.md
Normal file
71
plugins/_official/design-systems/dramatic/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Dramatic
|
||||
|
||||
> Category: Bold & Expressive
|
||||
> High-contrast, theatrical design with bold layouts, immersive visuals, and unconventional compositions that command attention.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
High-contrast, theatrical design with bold layouts, immersive visuals, and unconventional compositions that command attention.
|
||||
|
||||
- **Visual style:** modern, clean, high-contrast
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#8B5CF6` — Token from style foundations.
|
||||
- **Secondary:** `#F43F5E` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#09090B` — Token from style foundations.
|
||||
- **Text:** `#FAFAFA` — Token from style foundations.
|
||||
- **Neutral:** `#09090B` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#8B5CF6) for CTA emphasis.
|
||||
- Use Surface (#09090B) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#FAFAFA) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32
|
||||
- **Families:** primary=Outfit, display=Outfit, mono=JetBrains Mono
|
||||
- **Weights:** 400, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#8B5CF6`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#8B5CF6) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/dramatic/open-design.json
Normal file
68
plugins/_official/design-systems/dramatic/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-dramatic",
|
||||
"title": "Dramatic",
|
||||
"version": "0.1.0",
|
||||
"description": "High-contrast, theatrical design with bold layouts, immersive visuals, and unconventional compositions that command attention.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"bold-expressive"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Dramatic design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "dramatic",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
154
plugins/_official/design-systems/duolingo/DESIGN.md
Normal file
154
plugins/_official/design-systems/duolingo/DESIGN.md
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
# Design System Inspired by Duolingo
|
||||
|
||||
> Category: Productivity & SaaS
|
||||
> Language-learning platform. Bright owl green, chunky shadows, gamified joy.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Duolingo is gamification rendered as visual language. The interface is unapologetically bright, with **owl green** (`#58cc02`) as the brand primary and a chunky 4px bottom-shadow on every interactive element that reads like a 3D button waiting to be pressed. The page is white (`#ffffff`) with thick 2–3px borders in a deep gray (`#e5e5e5`) and the entire system reads like an iOS app from 2015 reborn with better hierarchy.
|
||||
|
||||
Typography uses **Feather Bold** (a custom rounded sans) for chrome and **Mona Sans** (or Inter) for body. Display sizes are big and confident — Duolingo never whispers. Headings often carry the green underline-stroke or sit on a green pill, and the mascot Duo (a green owl) appears as an active illustration character, not a static logo.
|
||||
|
||||
Shape language is friendly: 16–20px radii on cards, 12px on buttons, 9999px on chips and progress bars. Iconography is filled, rounded, and color-coded by skill — every lesson surface has an instantly identifiable color pairing.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Owl green (`#58cc02`) as the dominant brand color, used in 30%+ of the surface
|
||||
- Chunky 4px bottom-shadow on every button (the "tactile press" affordance)
|
||||
- 2–3px solid borders, never hairlines
|
||||
- Feather Bold (rounded display) + Mona Sans (body)
|
||||
- Big confident type — display sizes start at 48px and climb
|
||||
- Mascot-as-character: Duo the owl appears in onboarding, errors, streaks
|
||||
- Streak orange (`#ff9600`) and gem pink (`#ce82ff`) as secondary brand colors
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Owl Green** (`#58cc02`): Brand primary, primary CTA, correct answer.
|
||||
- **Owl Green Deep** (`#58a700`): Pressed/shadow color for green buttons.
|
||||
- **Owl Green Light** (`#89e219`): Hover, soft fills.
|
||||
- **Owl Green Pale** (`#dbf8c5`): Soft surface, success banner.
|
||||
|
||||
### Secondary Accents
|
||||
- **Streak Orange** (`#ff9600`): Streak counter, fire icon, premium energy.
|
||||
- **Streak Orange Deep** (`#cc7a00`): Pressed orange.
|
||||
- **Gem Pink** (`#ce82ff`): Gem currency, Super Duolingo.
|
||||
- **Eel Blue** (`#1cb0f6`): Hint button, info link.
|
||||
- **Cardinal Red** (`#ff4b4b`): Wrong answer, life lost.
|
||||
- **Bee Yellow** (`#ffc800`): Pro badge, achievement.
|
||||
|
||||
### Surface
|
||||
- **Snow** (`#ffffff`): Primary background.
|
||||
- **Eel** (`#f7f7f7`): Section break, secondary surface.
|
||||
- **Swan** (`#e5e5e5`): Disabled background, inset block.
|
||||
- **Wolf** (`#777777`): Dark divider, secondary text.
|
||||
|
||||
### Ink & Text
|
||||
- **Eel Black** (`#3c3c3c`): Primary text.
|
||||
- **Wolf** (`#777777`): Secondary text, captions.
|
||||
- **Hare** (`#afafaf`): Disabled, placeholder.
|
||||
|
||||
### Border
|
||||
- **Swan** (`#e5e5e5`): Standard 2px border.
|
||||
- **Hare** (`#afafaf`): Emphasized border on hover.
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
- **Display / UI / Headings**: `Feather Bold`, with fallback: `'DIN Round Pro', 'Helvetica Neue', sans-serif`
|
||||
- **Body / Long-form**: `Mona Sans`, with fallback: `'Helvetica Neue', system-ui, sans-serif`
|
||||
- **Code (rare, schools/admin)**: `JetBrains Mono`, with fallback: `ui-monospace, Menlo, monospace`
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|------|--------|-------------|----------------|-------|
|
||||
| Display | Feather Bold | 56px (3.5rem) | 800 | 1.05 | -0.01em | Onboarding hero |
|
||||
| H1 | Feather Bold | 32px (2rem) | 800 | 1.15 | -0.005em | Page title |
|
||||
| H2 | Feather Bold | 24px (1.5rem) | 800 | 1.2 | normal | Section heading |
|
||||
| H3 | Feather Bold | 18px (1.125rem) | 700 | 1.25 | normal | Card title, lesson row |
|
||||
| Body Large | Mona Sans | 17px (1.0625rem) | 500 | 1.5 | normal | Lesson prompt, instruction |
|
||||
| Body | Mona Sans | 15px (0.9375rem) | 400 | 1.5 | normal | Standard prose |
|
||||
| Caption | Mona Sans | 13px (0.8125rem) | 600 | 1.4 | 0.01em | XP counter, metadata |
|
||||
| Button | Feather Bold | 16px (1rem) | 800 | 1.2 | 0.02em | Standard button label |
|
||||
| Streak | Feather Bold | 14px (0.875rem) | 800 | 1.2 | normal | Streak number, on flame |
|
||||
|
||||
### Principles
|
||||
- **800 is default**: Feather Bold runs at 800 across headings and buttons. 700 feels weak in this system.
|
||||
- **Big type**: heading sizes are 25–40% larger than typical product brands — confidence as identity.
|
||||
- **Rounded letterforms**: every glyph has soft terminals; sharp serifs would break the friendliness contract.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
|
||||
**Primary (Owl Green)**
|
||||
- Background: `#58cc02`
|
||||
- Text: `#ffffff`
|
||||
- Padding: 14px 24px
|
||||
- Radius: 16px
|
||||
- Border-bottom: 4px solid `#58a700` (the chunky shadow)
|
||||
- Hover: background `#89e219`
|
||||
- Active: translate-y 4px, border-bottom 0 (button "presses")
|
||||
- Use: "Continue", "Check", main CTA.
|
||||
|
||||
**Secondary (White with Bottom-Shadow)**
|
||||
- Background: `#ffffff`
|
||||
- Text: `#777777`
|
||||
- Border: 2px solid `#e5e5e5`
|
||||
- Border-bottom: 4px solid `#e5e5e5`
|
||||
- Radius: 16px
|
||||
- Padding: 14px 24px
|
||||
- Hover: text `#3c3c3c`, border `#afafaf`
|
||||
|
||||
**Streak Orange**
|
||||
- Background: `#ff9600`
|
||||
- Text: `#ffffff`
|
||||
- Border-bottom: 4px solid `#cc7a00`
|
||||
- Use: streak goal, "Start streak"
|
||||
|
||||
**Error (Cardinal Red)**
|
||||
- Background: `#ff4b4b`
|
||||
- Text: `#ffffff`
|
||||
- Border-bottom: 4px solid `#cc3b3b`
|
||||
- Use: wrong answer feedback.
|
||||
|
||||
### Cards / Lesson Tiles
|
||||
- Background: `#ffffff`
|
||||
- Border: 2px solid `#e5e5e5`
|
||||
- Border-bottom: 4px solid `#e5e5e5`
|
||||
- Radius: 16px
|
||||
- Padding: 16px
|
||||
- Hover: lift 2px, shadow `0 4px 0 #d7d7d7`
|
||||
|
||||
### Skill Tree Node (Lesson Bubble)
|
||||
- Size: 80×72px
|
||||
- Background: skill-color tinted (green for active, gray for locked)
|
||||
- Border-bottom: 6px solid darker variant
|
||||
- Radius: 50% (circular)
|
||||
- Active: pulses 1.0 → 1.05 every 1.6s
|
||||
|
||||
### Inputs
|
||||
- Background: `#ffffff`
|
||||
- Border: 2px solid `#e5e5e5`
|
||||
- Radius: 12px
|
||||
- Padding: 12px 16px
|
||||
- Focus: border `#1cb0f6` (eel blue), ring `0 0 0 3px rgba(28, 176, 246, 0.2)`
|
||||
|
||||
### Progress Bar
|
||||
- Track: `#e5e5e5`
|
||||
- Fill: `#58cc02` (or `#ff9600` for streak)
|
||||
- Radius: 9999px
|
||||
- Height: 16px
|
||||
- Animated fill: 320ms ease-out on increment.
|
||||
|
||||
## 5. Spacing & Layout
|
||||
|
||||
- **Base unit**: 4px. Scale: 4, 8, 12, 16, 24, 32, 48, 64.
|
||||
- **Container**: max 1080px, 24px gutter.
|
||||
- **Lesson tree column**: 320px wide; centered on desktop.
|
||||
|
||||
## 6. Motion
|
||||
|
||||
- **Duration**: 180ms for button press; 320ms for skill-node unlock; 1.6s for active-node pulse.
|
||||
- **Easing**: `cubic-bezier(0.34, 1.56, 0.64, 1)` (back-out, slight overshoot) for unlocks.
|
||||
- **Mascot**: Duo blinks every 4–6s, jumps on streak milestones (480ms ease-out spring).
|
||||
68
plugins/_official/design-systems/duolingo/open-design.json
Normal file
68
plugins/_official/design-systems/duolingo/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-duolingo",
|
||||
"title": "Duolingo",
|
||||
"version": "0.1.0",
|
||||
"description": "Language-learning platform. Bright owl green, chunky shadows, gamified joy.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"productivity-saas"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Duolingo design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "duolingo",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/editorial/DESIGN.md
Normal file
71
plugins/_official/design-systems/editorial/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Editorial
|
||||
|
||||
> Category: Creative & Artistic
|
||||
> Magazine-inspired editorial layout with refined serif typography, structured grids, and elegant reading experiences.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Magazine-inspired editorial layout with refined serif typography, structured grids, and elegant reading experiences.
|
||||
|
||||
- **Visual style:** modern, editorial
|
||||
- **Color stance:** primary, secondary, neutral, success
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#111111` — Token from style foundations.
|
||||
- **Secondary:** `#F1F1F1` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#111111) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 14/16/18/24/32/40
|
||||
- **Families:** primary=Gelasio, display=Gelasio, mono=Ubuntu Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 8pt baseline grid
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#111111`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#111111) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/editorial/open-design.json
Normal file
68
plugins/_official/design-systems/editorial/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-editorial",
|
||||
"title": "Editorial",
|
||||
"version": "0.1.0",
|
||||
"description": "Magazine-inspired editorial layout with refined serif typography, structured grids, and elegant reading experiences.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"creative-artistic"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Editorial design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "editorial",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/elegant/DESIGN.md
Normal file
71
plugins/_official/design-systems/elegant/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Elegant
|
||||
|
||||
> Category: Professional & Corporate
|
||||
> Graceful, refined aesthetic with delicate typography, minimal palettes, and polished layouts that exude sophistication.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Graceful, refined aesthetic with delicate typography, minimal palettes, and polished layouts that exude sophistication.
|
||||
|
||||
- **Visual style:** minimal, clean
|
||||
- **Color stance:** primary, secondary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#3B82F6` — Token from style foundations.
|
||||
- **Secondary:** `#8B5CF6` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#3B82F6) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 14/16/18/24/32/40
|
||||
- **Families:** primary=Google Sans, display=Google Sans, mono=Anonymous Pro
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#3B82F6`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#3B82F6) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/elegant/open-design.json
Normal file
68
plugins/_official/design-systems/elegant/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-elegant",
|
||||
"title": "Elegant",
|
||||
"version": "0.1.0",
|
||||
"description": "Graceful, refined aesthetic with delicate typography, minimal palettes, and polished layouts that exude sophistication.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"professional-corporate"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Elegant design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "elegant",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
268
plugins/_official/design-systems/elevenlabs/DESIGN.md
Normal file
268
plugins/_official/design-systems/elevenlabs/DESIGN.md
Normal file
|
|
@ -0,0 +1,268 @@
|
|||
# Design System Inspired by ElevenLabs
|
||||
|
||||
> Category: AI & LLM
|
||||
> AI voice platform. Dark cinematic UI, audio-waveform aesthetics.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
ElevenLabs' website is a study in restrained elegance — a near-white canvas (`#ffffff`, `#f5f5f5`) where typography and subtle shadows do all the heavy lifting. The design feels like a premium audio product brochure: clean, spacious, and confident enough to let the content speak (literally, given ElevenLabs makes voice AI). There's an almost Apple-like quality to the whitespace strategy, but warmer — the occasional warm stone tint (`#f5f2ef`, `#777169`) prevents the purity from feeling clinical.
|
||||
|
||||
The typography system is built on a fascinating duality: Waldenburg at weight 300 (light) for display headings creates ethereal, whisper-thin titles that feel like sound waves rendered in type — delicate, precise, and surprisingly impactful at large sizes. This light-weight display approach is the design's signature — where most sites use bold headings to grab attention, ElevenLabs uses lightness to create intrigue. Inter handles all body and UI text with workmanlike reliability, using slight positive letter-spacing (0.14px–0.18px) that gives body text an airy, well-spaced quality. WaldenburgFH appears as a bold uppercase variant for specific button labels.
|
||||
|
||||
What makes ElevenLabs distinctive is its multi-layered shadow system. Rather than simple box-shadows, elements use complex stacks: inset border-shadows (`rgba(0,0,0,0.075) 0px 0px 0px 0.5px inset`), outline shadows (`rgba(0,0,0,0.06) 0px 0px 0px 1px`), and soft elevation shadows (`rgba(0,0,0,0.04) 0px 4px 4px`) — all at remarkably low opacities. The result is a design where surfaces seem to barely exist, floating just above the page with the lightest possible touch. Pill-shaped buttons (9999px) with warm-tinted backgrounds (`rgba(245,242,239,0.8)`) and warm shadows (`rgba(78,50,23,0.04)`) add a tactile, physical quality.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Near-white canvas with warm undertones (`#f5f5f5`, `#f5f2ef`)
|
||||
- Waldenburg weight 300 (light) for display — ethereal, whisper-thin headings
|
||||
- Inter with positive letter-spacing (0.14–0.18px) for body — airy readability
|
||||
- Multi-layered shadow stacks at sub-0.1 opacity — surfaces barely exist
|
||||
- Pill buttons (9999px) with warm stone-tinted backgrounds
|
||||
- WaldenburgFH bold uppercase for specific CTA labels
|
||||
- Warm shadow tints: `rgba(78, 50, 23, 0.04)` — shadows have color, not just darkness
|
||||
- Geist Mono / ui-monospace for code snippets
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Pure White** (`#ffffff`): Primary background, card surfaces, button backgrounds
|
||||
- **Light Gray** (`#f5f5f5`): Secondary surface, subtle section differentiation
|
||||
- **Warm Stone** (`#f5f2ef`): Button background (at 80% opacity) — the warm signature
|
||||
- **Black** (`#000000`): Primary text, headings, dark buttons
|
||||
|
||||
### Neutral Scale
|
||||
- **Dark Gray** (`#4e4e4e`): Secondary text, descriptions
|
||||
- **Warm Gray** (`#777169`): Tertiary text, muted links, decorative underlines
|
||||
- **Near White** (`#f6f6f6`): Alternate light surface
|
||||
|
||||
### Interactive
|
||||
- **Grid Cyan** (`#7fffff`): `--grid-column-bg`, at 25% opacity — decorative grid overlay
|
||||
- **Ring Blue** (`rgb(147 197 253 / 0.5)`): `--tw-ring-color`, focus ring
|
||||
- **Border Light** (`#e5e5e5`): Explicit borders
|
||||
- **Border Subtle** (`rgba(0, 0, 0, 0.05)`): Ultra-subtle bottom borders
|
||||
|
||||
### Shadows
|
||||
- **Inset Border** (`rgba(0,0,0,0.075) 0px 0px 0px 0.5px inset`): Internal edge definition
|
||||
- **Inset Dark** (`rgba(0,0,0,0.1) 0px 0px 0px 0.5px inset`): Stronger inset variant
|
||||
- **Outline Ring** (`rgba(0,0,0,0.06) 0px 0px 0px 1px`): Shadow-as-border
|
||||
- **Soft Elevation** (`rgba(0,0,0,0.04) 0px 4px 4px`): Gentle lift
|
||||
- **Card Shadow** (`rgba(0,0,0,0.4) 0px 0px 1px, rgba(0,0,0,0.04) 0px 4px 4px`): Button/card elevation
|
||||
- **Warm Shadow** (`rgba(78,50,23,0.04) 0px 6px 16px`): Warm-tinted button shadow
|
||||
- **Edge Shadow** (`rgba(0,0,0,0.08) 0px 0px 0px 0.5px`): Subtle edge definition
|
||||
- **Inset Ring** (`rgba(0,0,0,0.1) 0px 0px 0px 1px inset`): Strong inset border
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Families
|
||||
- **Display**: `Waldenburg`, fallback: `Waldenburg Fallback`
|
||||
- **Display Bold**: `WaldenburgFH`, fallback: `WaldenburgFH Fallback`
|
||||
- **Body / UI**: `Inter`, fallback: `Inter Fallback`
|
||||
- **Monospace**: `Geist Mono` or `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas`
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|------|--------|-------------|----------------|-------|
|
||||
| Display Hero | Waldenburg | 48px (3.00rem) | 300 | 1.08 (tight) | -0.96px | Whisper-thin, ethereal |
|
||||
| Section Heading | Waldenburg | 36px (2.25rem) | 300 | 1.17 (tight) | normal | Light display |
|
||||
| Card Heading | Waldenburg | 32px (2.00rem) | 300 | 1.13 (tight) | normal | Light card titles |
|
||||
| Body Large | Inter | 20px (1.25rem) | 400 | 1.35 | normal | Introductions |
|
||||
| Body | Inter | 18px (1.13rem) | 400 | 1.44–1.60 | 0.18px | Standard reading text |
|
||||
| Body Standard | Inter | 16px (1.00rem) | 400 | 1.50 | 0.16px | UI text |
|
||||
| Body Medium | Inter | 16px (1.00rem) | 500 | 1.50 | 0.16px | Emphasized body |
|
||||
| Nav / UI | Inter | 15px (0.94rem) | 500 | 1.33–1.47 | 0.15px | Navigation links |
|
||||
| Button | Inter | 15px (0.94rem) | 500 | 1.47 | normal | Button labels |
|
||||
| Button Uppercase | WaldenburgFH | 14px (0.88rem) | 700 | 1.10 (tight) | 0.7px | `text-transform: uppercase` |
|
||||
| Caption | Inter | 14px (0.88rem) | 400–500 | 1.43–1.50 | 0.14px | Metadata |
|
||||
| Small | Inter | 13px (0.81rem) | 500 | 1.38 | normal | Tags, badges |
|
||||
| Code | Geist Mono | 13px (0.81rem) | 400 | 1.85 (relaxed) | normal | Code blocks |
|
||||
| Micro | Inter | 12px (0.75rem) | 500 | 1.33 | normal | Tiny labels |
|
||||
| Tiny | Inter | 10px (0.63rem) | 400 | 1.60 (relaxed) | normal | Fine print |
|
||||
|
||||
### Principles
|
||||
- **Light as the hero weight**: Waldenburg at 300 is the defining typographic choice. Where other design systems use bold for impact, ElevenLabs uses lightness — thin strokes that feel like audio waveforms, creating intrigue through restraint.
|
||||
- **Positive letter-spacing on body**: Inter uses +0.14px to +0.18px tracking across body text, creating an airy, well-spaced reading rhythm that contrasts with the tight display tracking (-0.96px).
|
||||
- **WaldenburgFH for emphasis**: A bold (700) uppercase variant of Waldenburg appears only in specific CTA button labels with 0.7px letter-spacing — the one place where the type system gets loud.
|
||||
- **Monospace as ambient**: Geist Mono at relaxed line-height (1.85) for code blocks feels unhurried and readable.
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
|
||||
**Primary Black Pill**
|
||||
- Background: `#000000`
|
||||
- Text: `#ffffff`
|
||||
- Padding: 0px 14px
|
||||
- Radius: 9999px (full pill)
|
||||
- Use: Primary CTA
|
||||
|
||||
**White Pill (Shadow-bordered)**
|
||||
- Background: `#ffffff`
|
||||
- Text: `#000000`
|
||||
- Radius: 9999px
|
||||
- Shadow: `rgba(0,0,0,0.4) 0px 0px 1px, rgba(0,0,0,0.04) 0px 4px 4px`
|
||||
- Use: Secondary CTA on white
|
||||
|
||||
**Warm Stone Pill**
|
||||
- Background: `rgba(245, 242, 239, 0.8)` (warm translucent)
|
||||
- Text: `#000000`
|
||||
- Padding: 12px 20px 12px 14px (asymmetric)
|
||||
- Radius: 30px
|
||||
- Shadow: `rgba(78, 50, 23, 0.04) 0px 6px 16px` (warm-tinted)
|
||||
- Use: Featured CTA, hero action — the signature warm button
|
||||
|
||||
**Uppercase Waldenburg Button**
|
||||
- Font: WaldenburgFH 14px weight 700
|
||||
- Text-transform: uppercase
|
||||
- Letter-spacing: 0.7px
|
||||
- Use: Specific bold CTA labels
|
||||
|
||||
### Cards & Containers
|
||||
- Background: `#ffffff`
|
||||
- Border: `1px solid #e5e5e5` or shadow-as-border
|
||||
- Radius: 16px–24px
|
||||
- Shadow: multi-layer stack (inset + outline + elevation)
|
||||
- Content: product screenshots, code examples, audio waveform previews
|
||||
|
||||
### Inputs & Forms
|
||||
- Textarea: padding 12px 20px, transparent text at default
|
||||
- Select: white background, standard styling
|
||||
- Radio: standard with tw-ring focus
|
||||
- Focus: `var(--tw-ring-offset-shadow)` ring system
|
||||
|
||||
### Navigation
|
||||
- Clean white sticky header
|
||||
- Inter 15px weight 500 for nav links
|
||||
- Pill CTAs right-aligned (black primary, white secondary)
|
||||
- Mobile: hamburger collapse at 1024px
|
||||
|
||||
### Image Treatment
|
||||
- Product screenshots and audio waveform visualizations
|
||||
- Warm gradient backgrounds in feature sections
|
||||
- 20px–24px radius on image containers
|
||||
- Full-width sections alternating white and light gray
|
||||
|
||||
### Distinctive Components
|
||||
|
||||
**Audio Waveform Sections**
|
||||
- Colorful gradient backgrounds showcasing voice AI capabilities
|
||||
- Warm amber, blue, and green gradients behind product demos
|
||||
- Screenshots of the ElevenLabs product interface
|
||||
|
||||
**Warm Stone CTA Block**
|
||||
- `rgba(245,242,239,0.8)` background with warm shadow
|
||||
- Asymmetric padding (more right padding)
|
||||
- Creates a physical, tactile quality unique to ElevenLabs
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
- Base unit: 8px
|
||||
- Scale: 1px, 3px, 4px, 8px, 9px, 10px, 11px, 12px, 16px, 18px, 20px, 24px, 28px, 32px, 40px
|
||||
|
||||
### Grid & Container
|
||||
- Centered content with generous max-width
|
||||
- Single-column hero, expanding to feature grids
|
||||
- Full-width gradient sections for product showcases
|
||||
- White card grids on light gray backgrounds
|
||||
|
||||
### Whitespace Philosophy
|
||||
- **Apple-like generosity**: Massive vertical spacing between sections creates a premium, unhurried pace. Each section is an exhibit.
|
||||
- **Warm emptiness**: The whitespace isn't cold — the warm stone undertones and warm shadows give empty space a tactile, physical quality.
|
||||
- **Typography-led rhythm**: The light-weight Waldenburg headings create visual "whispers" that draw the eye through vast white space.
|
||||
|
||||
### Border Radius Scale
|
||||
- Minimal (2px): Small links, inline elements
|
||||
- Subtle (4px): Nav items, tab panels, tags
|
||||
- Standard (8px): Small containers
|
||||
- Comfortable (10px–12px): Medium cards, dropdowns
|
||||
- Card (16px): Standard cards, articles
|
||||
- Large (18px–20px): Featured cards, code panels
|
||||
- Section (24px): Large panels, section containers
|
||||
- Warm Button (30px): Warm stone CTA
|
||||
- Pill (9999px): Primary buttons, navigation pills
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|-------|-----------|-----|
|
||||
| Flat (Level 0) | No shadow | Page background, text blocks |
|
||||
| Inset Edge (Level 0.5) | `rgba(0,0,0,0.075) 0px 0px 0px 0.5px inset, #fff 0px 0px 0px 0px inset` | Internal border definition |
|
||||
| Outline Ring (Level 1) | `rgba(0,0,0,0.06) 0px 0px 0px 1px` + `rgba(0,0,0,0.04) 0px 1px 2px` + `rgba(0,0,0,0.04) 0px 2px 4px` | Shadow-as-border for cards |
|
||||
| Card (Level 2) | `rgba(0,0,0,0.4) 0px 0px 1px, rgba(0,0,0,0.04) 0px 4px 4px` | Button elevation, prominent cards |
|
||||
| Warm Lift (Level 3) | `rgba(78,50,23,0.04) 0px 6px 16px` | Featured CTAs — warm-tinted |
|
||||
| Focus (Accessibility) | `var(--tw-ring-offset-shadow)` blue ring | Keyboard focus |
|
||||
|
||||
**Shadow Philosophy**: ElevenLabs uses the most refined shadow system of any design system analyzed. Every shadow is at sub-0.1 opacity, many include both outward cast AND inward inset components, and the warm CTA shadows use an actual warm color (`rgba(78,50,23,...)`) rather than neutral black. The inset half-pixel borders (`0px 0px 0px 0.5px inset`) create edges so subtle they're felt rather than seen — surfaces define themselves through the lightest possible touch.
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
|
||||
### Do
|
||||
- Use Waldenburg weight 300 for all display headings — the lightness IS the brand
|
||||
- Apply multi-layer shadows (inset + outline + elevation) at sub-0.1 opacity
|
||||
- Use warm stone tints (`#f5f2ef`, `rgba(245,242,239,0.8)`) for featured elements
|
||||
- Apply positive letter-spacing (+0.14px to +0.18px) on Inter body text
|
||||
- Use 9999px radius for primary buttons — pill shape is standard
|
||||
- Use warm-tinted shadows (`rgba(78,50,23,0.04)`) on featured CTAs
|
||||
- Keep the page predominantly white with subtle gray section differentiation
|
||||
- Use WaldenburgFH bold uppercase ONLY for specific CTA button labels
|
||||
|
||||
### Don't
|
||||
- Don't use bold (700) Waldenburg for headings — weight 300 is non-negotiable
|
||||
- Don't use heavy shadows (>0.1 opacity) — the ethereal quality requires whisper-level depth
|
||||
- Don't use cool gray borders — the system is warm-tinted throughout
|
||||
- Don't skip the inset shadow component — half-pixel inset borders define edges
|
||||
- Don't apply negative letter-spacing to body text — Inter uses positive tracking
|
||||
- Don't use sharp corners (<8px) on cards — the generous radius is structural
|
||||
- Don't introduce brand colors — the palette is intentionally achromatic with warm undertones
|
||||
- Don't make buttons opaque and heavy — the warm translucent stone treatment is the signature
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
| Name | Width | Key Changes |
|
||||
|------|-------|-------------|
|
||||
| Mobile | <1024px | Single column, hamburger nav, stacked sections |
|
||||
| Desktop | >1024px | Full layout, horizontal nav, multi-column grids |
|
||||
|
||||
### Touch Targets
|
||||
- Pill buttons with generous padding (12px–20px)
|
||||
- Navigation links at 15px with adequate spacing
|
||||
- Select dropdowns maintain comfortable sizing
|
||||
|
||||
### Collapsing Strategy
|
||||
- Navigation: horizontal → hamburger at 1024px
|
||||
- Feature grids: multi-column → stacked
|
||||
- Hero: maintains centered layout, font scales proportionally
|
||||
- Gradient sections: full-width maintained, content stacks
|
||||
- Spacing compresses proportionally
|
||||
|
||||
### Image Behavior
|
||||
- Product screenshots scale responsively
|
||||
- Gradient backgrounds simplify on mobile
|
||||
- Audio waveform previews maintain aspect ratio
|
||||
- Rounded corners maintained across breakpoints
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- Background: Pure White (`#ffffff`) or Light Gray (`#f5f5f5`)
|
||||
- Text: Black (`#000000`)
|
||||
- Secondary text: Dark Gray (`#4e4e4e`)
|
||||
- Muted text: Warm Gray (`#777169`)
|
||||
- Warm surface: Warm Stone (`rgba(245, 242, 239, 0.8)`)
|
||||
- Border: `#e5e5e5` or `rgba(0,0,0,0.05)`
|
||||
|
||||
### Example Component Prompts
|
||||
- "Create a hero on white background. Headline at 48px Waldenburg weight 300, line-height 1.08, letter-spacing -0.96px, black text. Subtitle at 18px Inter weight 400, line-height 1.60, letter-spacing 0.18px, #4e4e4e text. Two pill buttons: black (9999px, 0px 14px padding) and warm stone (rgba(245,242,239,0.8), 30px radius, 12px 20px padding, warm shadow rgba(78,50,23,0.04) 0px 6px 16px)."
|
||||
- "Design a card: white background, 20px radius. Shadow: rgba(0,0,0,0.06) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 1px 2px, rgba(0,0,0,0.04) 0px 2px 4px. Title at 32px Waldenburg weight 300, body at 16px Inter weight 400 letter-spacing 0.16px, #4e4e4e."
|
||||
- "Build a white pill button: white bg, 9999px radius. Shadow: rgba(0,0,0,0.4) 0px 0px 1px, rgba(0,0,0,0.04) 0px 4px 4px. Text at 15px Inter weight 500."
|
||||
- "Create an uppercase CTA label: 14px WaldenburgFH weight 700, text-transform uppercase, letter-spacing 0.7px."
|
||||
- "Design navigation: white sticky header. Inter 15px weight 500. Black pill CTA right-aligned. Border-bottom: rgba(0,0,0,0.05)."
|
||||
|
||||
### Iteration Guide
|
||||
1. Start with white — the warm undertone comes from shadows and stone surfaces, not backgrounds
|
||||
2. Waldenburg 300 for headings — never bold, the lightness is the identity
|
||||
3. Multi-layer shadows: always include inset + outline + elevation at sub-0.1 opacity
|
||||
4. Positive letter-spacing on Inter body (+0.14px to +0.18px) — the airy reading quality
|
||||
5. Warm stone CTA is the signature — `rgba(245,242,239,0.8)` with `rgba(78,50,23,0.04)` shadow
|
||||
6. Pill (9999px) for buttons, generous radius (16px–24px) for cards
|
||||
68
plugins/_official/design-systems/elevenlabs/open-design.json
Normal file
68
plugins/_official/design-systems/elevenlabs/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-elevenlabs",
|
||||
"title": "ElevenLabs",
|
||||
"version": "0.1.0",
|
||||
"description": "AI voice platform. Dark cinematic UI, audio-waveform aesthetics.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"ai-llm"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the ElevenLabs design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "elevenlabs",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
72
plugins/_official/design-systems/energetic/DESIGN.md
Normal file
72
plugins/_official/design-systems/energetic/DESIGN.md
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
# Design System Inspired by Energetic
|
||||
|
||||
> Category: Bold & Expressive
|
||||
> Dynamic, vibrant style with thick borders, geometric shapes, high-contrast colors, and expressive typography conveying motion and vitality.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Dynamic, vibrant style with thick borders, geometric shapes, high-contrast colors, and expressive typography conveying motion and vitality.
|
||||
|
||||
- **Visual style:** bold, geometric, vibrant, thick-bordered
|
||||
- **Color stance:** primary, secondary, neutral
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#EA580B` — Token from style foundations.
|
||||
- **Secondary:** `#F59E0B` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Background:** `#FFEDD5` — Token from style foundations.
|
||||
- **Surface:** `#FDBA74` — Token from style foundations.
|
||||
- **Text:** `#EA580C` — Token from style foundations.
|
||||
- **Neutral:** `#FDBA74` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#EA580B) for CTA emphasis.
|
||||
- Use Surface (#FDBA74) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#EA580C) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32/48
|
||||
- **Families:** primary=Limelight, display=Limelight, mono=JetBrains Mono
|
||||
- **Weights:** 400
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32/48/64
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#EA580B`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#EA580B) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/energetic/open-design.json
Normal file
68
plugins/_official/design-systems/energetic/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-energetic",
|
||||
"title": "Energetic",
|
||||
"version": "0.1.0",
|
||||
"description": "Dynamic, vibrant style with thick borders, geometric shapes, high-contrast colors, and expressive typography conveying motion and vitality.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"bold-expressive"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Energetic design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "energetic",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/enterprise/DESIGN.md
Normal file
71
plugins/_official/design-systems/enterprise/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Enterprise
|
||||
|
||||
> Category: Professional & Corporate
|
||||
> Clean, high-contrast enterprise design for data-driven workflows with intuitive drag-and-drop patterns and structured layouts.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Clean, high-contrast enterprise design for data-driven workflows with intuitive drag-and-drop patterns and structured layouts.
|
||||
|
||||
- **Visual style:** clean, high-contrast, enterprise
|
||||
- **Color stance:** primary, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#072C2C` — Token from style foundations.
|
||||
- **Secondary:** `#FF5F03` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#EDEADE` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#EDEADE` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#072C2C) for CTA emphasis.
|
||||
- Use Surface (#EDEADE) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** desktop-first expressive scale
|
||||
- **Families:** primary=Ubuntu, display=Oswald, mono=Ubuntu Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** comfortable density mode
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#072C2C`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#072C2C) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/enterprise/open-design.json
Normal file
68
plugins/_official/design-systems/enterprise/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-enterprise",
|
||||
"title": "Enterprise",
|
||||
"version": "0.1.0",
|
||||
"description": "Clean, high-contrast enterprise design for data-driven workflows with intuitive drag-and-drop patterns and structured layouts.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"professional-corporate"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Enterprise design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "enterprise",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
284
plugins/_official/design-systems/expo/DESIGN.md
Normal file
284
plugins/_official/design-systems/expo/DESIGN.md
Normal file
|
|
@ -0,0 +1,284 @@
|
|||
# Design System Inspired by Expo
|
||||
|
||||
> Category: Developer Tools
|
||||
> React Native platform. Dark theme, tight letter-spacing, code-centric.
|
||||
|
||||
## 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
|
||||
68
plugins/_official/design-systems/expo/open-design.json
Normal file
68
plugins/_official/design-systems/expo/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-expo",
|
||||
"title": "Expo",
|
||||
"version": "0.1.0",
|
||||
"description": "React Native platform. Dark theme, tight letter-spacing, code-centric.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"developer-tools"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Expo design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "expo",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/expressive/DESIGN.md
Normal file
71
plugins/_official/design-systems/expressive/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Expressive
|
||||
|
||||
> Category: Bold & Expressive
|
||||
> Vibrant, personality-driven design with bold colors, playful graphics, and dynamic layouts that balance creativity with structure.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Vibrant, personality-driven design with bold colors, playful graphics, and dynamic layouts that balance creativity with structure.
|
||||
|
||||
- **Visual style:** modern, playful
|
||||
- **Color stance:** primary, secondary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#DB2777` — Token from style foundations.
|
||||
- **Secondary:** `#2563EB` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#DB2777) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 14/16/18/24/32/40
|
||||
- **Families:** primary=IBM Plex Mono, display=IBM Plex Mono, mono=IBM Plex Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#DB2777`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#DB2777) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/expressive/open-design.json
Normal file
68
plugins/_official/design-systems/expressive/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-expressive",
|
||||
"title": "Expressive",
|
||||
"version": "0.1.0",
|
||||
"description": "Vibrant, personality-driven design with bold colors, playful graphics, and dynamic layouts that balance creativity with structure.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"bold-expressive"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Expressive design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "expressive",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/fantasy/DESIGN.md
Normal file
71
plugins/_official/design-systems/fantasy/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Fantasy
|
||||
|
||||
> Category: Creative & Artistic
|
||||
> Game-inspired fantasy aesthetic with bold, premium visuals, rich color palettes, and immersive thematic elements.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Game-inspired fantasy aesthetic with bold, premium visuals, rich color palettes, and immersive thematic elements.
|
||||
|
||||
- **Visual style:** bold, premium
|
||||
- **Color stance:** primary, secondary, success, warning, danger, info
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#0250CC` — Token from style foundations.
|
||||
- **Secondary:** `#FDC800` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#0250CC) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32
|
||||
- **Families:** primary=New Rocker, display=New Rocker, mono=IBM Plex Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 8pt baseline grid
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#0250CC`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#0250CC) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/fantasy/open-design.json
Normal file
68
plugins/_official/design-systems/fantasy/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-fantasy",
|
||||
"title": "Fantasy",
|
||||
"version": "0.1.0",
|
||||
"description": "Game-inspired fantasy aesthetic with bold, premium visuals, rich color palettes, and immersive thematic elements.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"creative-artistic"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Fantasy design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "fantasy",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
317
plugins/_official/design-systems/ferrari/DESIGN.md
Normal file
317
plugins/_official/design-systems/ferrari/DESIGN.md
Normal file
|
|
@ -0,0 +1,317 @@
|
|||
# Design System Inspired by Ferrari
|
||||
|
||||
> Category: Automotive
|
||||
> Luxury automotive. Chiaroscuro editorial, Ferrari Red accents, cinematic black.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Ferrari's website is a digital editorial — a curated magazine where the Prancing Horse brand is presented with the gravitas of an art institution and the precision of Italian coachwork. The page opens onto an expanse of absolute black, broken only by the iconic Prancing Horse emblem floating alone in its own atmosphere. Below, the content unfolds in dramatic alternations between inky-dark cinematic sections and crisp white editorial panels. This chiaroscuro rhythm — darkness yielding to light, machinery yielding to human story — feels more like paging through a Ferrari yearbook than scrolling a commercial website. Every section is a curated vignette: a concept car dissolving from shadow, two F1 drivers posed with sculptural stillness, a lineup of production models arranged in a jewel-toned parade.
|
||||
|
||||
The color language is monastically restrained for a brand built on speed and emotion. Ferrari Red (`#DA291C`) appears with almost surgical sparseness — reserved for the Subscribe CTA and accent moments that need to command immediate attention. The vast majority of the interface lives in black, white, and a carefully calibrated gray scale (from `#303030` dark surfaces through `#8F8F8F` mid-tones to `#D2D2D2` light borders). Two yellows — Racing Yellow (`#FFF200`) and the deeper Modena Yellow (`#F6E500`) — exist in the token system as heritage accents for special contexts, honoring Ferrari's racing provenance. The restraint means that when red does appear, it carries the weight of the entire brand.
|
||||
|
||||
Typography relies on FerrariSans — a proprietary sans-serif family with medium-weight headings (500–700) and compact proportions. Display text runs at 24–26px for section titles, while the UI chrome lives at 12–16px in weights ranging from regular to bold. A secondary "Body-Font" custom typeface handles captions and utility text, rendered in uppercase with wide letter-spacing (1px) to create a label-like editorial quality. This two-font system — FerrariSans for narrative authority, Body-Font for structural annotation — gives the site a print-magazine hierarchy. No text decoration is gratuitous. Letter-spacing is tight for headlines and deliberately expanded for labels, creating a visual rhythm that alternates between urgency and composure.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Chiaroscuro layout alternating between deep black sections and clean white editorial panels
|
||||
- Ferrari Red (`#DA291C`) used with extreme sparseness — accent, not atmosphere
|
||||
- Prancing Horse emblem as isolated hero element on a void-black field
|
||||
- FerrariSans proprietary typeface with compact proportions and medium weights
|
||||
- Photo-journalism imagery: concept renders, driver portraits, lineup parades — each section is a story
|
||||
- Uppercase Body-Font labels with wide letter-spacing (1px) for editorial annotation
|
||||
- Nearly zero border-radius (2px default) reflecting precision engineering aesthetics
|
||||
- Dual-framework architecture (PrimeReact + Element Plus) powering 32+ interactive components
|
||||
- Carousel-driven hero with editorial slides and arrow/dot navigation
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Ferrari Red** (`#DA291C`): The iconic Rosso Corsa — primary accent and CTA color. Used for the Subscribe button, key action triggers, and brand moments where maximum visual authority is needed. The single most important color in the system (--f-color-accent-100)
|
||||
- **Pure White** (`#FFFFFF`): Primary surface for editorial content panels, navigation text on dark backgrounds, and button fills. The canvas that provides breathing room between dark cinematic sections (--f-color-ui-0)
|
||||
|
||||
### Secondary & Accent
|
||||
- **Dark Red** (`#B01E0A`): Deeper variant of Ferrari Red for hover/pressed states and high-contrast contexts — adds dimensionality to the brand color without introducing a new hue (--f-color-accent-90)
|
||||
- **Deep Red** (`#9D2211`): The most saturated dark red — used for active states and extra emphasis where even Dark Red needs more weight (--f-color-accent-80)
|
||||
- **Racing Yellow** (`#FFF200`): Heritage accent from Ferrari's racing livery — reserved for special highlights and motorsport-related contexts (--f-color-yellow-hypersail)
|
||||
- **Modena Yellow** (`#F6E500`): Slightly warmer and more golden than Racing Yellow — used for secondary heritage accents and category markers (--f-color-yellow)
|
||||
|
||||
### Surface & Background
|
||||
- **Absolute Black** (`#000000`): Hero sections, cinematic backgrounds, and the dominant dark surface — the void that makes imagery and the Prancing Horse emblem float
|
||||
- **Dark Surface** (`#303030`): Secondary dark surface for footer regions, newsletter sections, and layered dark panels — slightly lifted from pure black for depth differentiation (--f-color-ui-90)
|
||||
- **Light Gray Surface** (`#D2D2D2`): Subtle alternate surface for dividers and border treatments on white panels (--f-color-ui-20)
|
||||
- **Overlay Dark** (`hsla(0, 0%, 7%, 0.8)`): Semi-transparent near-black for modal overlays and image caption backgrounds (--f-color-overlay-darker)
|
||||
|
||||
### Neutrals & Text
|
||||
- **Near Black** (`#181818`): Primary body text color on light surfaces — slightly softened from absolute black for better readability (link default color)
|
||||
- **Dark Gray** (`#666666`): Secondary text and subdued UI labels — used where text needs to recede from the primary hierarchy (--f-color-black-60)
|
||||
- **Mid Gray** (`#8F8F8F`): Tertiary text for metadata, timestamps, and supportive content (--f-color-black-50)
|
||||
- **Silver Gray** (`#969696`): Placeholder text and disabled state indicators (--f-color-black-55)
|
||||
|
||||
### Semantic & Accent
|
||||
- **Warning Red** (`#F13A2C`): Accessible warning state — brighter and more orange-shifted than Ferrari Red to differentiate semantic alerts from brand expression (--f-color-accessible-warning)
|
||||
- **Success Green** (`#03904A`): Confirmation and positive status indicators (--f-color-accessible-success)
|
||||
- **Info Blue** (`#4C98B9`): Informational callouts, tooltips, and neutral status messaging (--f-color-accessible-info)
|
||||
- **Link Hover Blue** (`#3860BE`): Interactive hover state for text links — a dignified navy-blue that signals interactivity without competing with Ferrari Red
|
||||
|
||||
### Gradient System
|
||||
- No explicit gradients in the token system
|
||||
- Depth is achieved through photography and the binary contrast between black and white surfaces
|
||||
- The overlay darker color (`hsla(0, 0%, 7%, 0.8)`) creates depth through transparency layering over imagery
|
||||
- Occasional photographic gradients (light falloff in studio shots) provide atmospheric depth within image content
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
- **FerrariSans**: Primary typeface for headings, navigation, buttons, and editorial content. A proprietary sans-serif with medium weight as the default (500), compact x-height, and precise letter-spacing control. Fallbacks: Arial, Helvetica, sans-serif
|
||||
- **Body-Font**: Secondary typeface for captions, labels, and utility text. Frequently rendered in uppercase with expanded letter-spacing (1px) for an editorial label aesthetic. Used for category tags and small annotation text
|
||||
- **Arial / Helvetica**: System fallback fonts used in cookie consent modals, form elements, and third-party component frameworks
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|--------|-------------|----------------|-------|
|
||||
| Section Title | 26px (1.63rem) | 500 | 1.20 | normal | FerrariSans, primary editorial headings on white backgrounds |
|
||||
| Card Heading | 24px (1.50rem) | 400 | normal | normal | FerrariSans, content card titles |
|
||||
| Subheading | 18px (1.13rem) | 700 | 1.20 (tight) | normal | FerrariSans, bold subsection labels |
|
||||
| UI Heading | 16px (1.00rem) | 500 | 1.40 | 0.08px | FerrariSans, component headings and nav items |
|
||||
| Body Bold | 16px (1.00rem) | 700 | 1.30 (tight) | normal | FerrariSans, emphasized inline text |
|
||||
| Button Label | 16px (1.00rem) | 400 | normal | 1.28px | FerrariSans, primary button text with wide tracking |
|
||||
| Small Button | 14.4px (0.90rem) | 700 | 1.00 (tight) | normal | FerrariSans, compact action buttons |
|
||||
| Nav Link | 13px (0.81rem) | 600 | 1.20 (tight) | 0.13px | FerrariSans, navigation and footer links |
|
||||
| Caption | 13px (0.81rem) | 400 | 1.50 | 0.195px | FerrariSans/Body-Font, metadata and descriptions |
|
||||
| Micro Button | 12px (0.75rem) | 700 | 1.00 (tight) | 0.96px | FerrariSans, small CTA with wide tracking |
|
||||
| Label Upper | 12px (0.75rem) | 400 | 1.27 (tight) | 1px | Body-Font, uppercase labels and category tags |
|
||||
| Micro Label | 11px (0.69rem) | 400 | 1.27 (tight) | 1px | Body-Font, uppercase smallest annotation text |
|
||||
| Cookie Text | 45px (2.81rem) | 400 | 1.50 | 0.195px | Arial, consent dialog oversized button text |
|
||||
|
||||
### Principles
|
||||
- **Proprietary identity**: FerrariSans is exclusive to Ferrari — it cannot be substituted without losing brand recognition. The font's compact proportions and medium weight default (500) convey engineering precision
|
||||
- **Two-register system**: FerrariSans handles narrative voice (headings, content, buttons) while Body-Font handles structural annotation (labels, tags, micro-captions) — this mirrors print magazine conventions of editorial text vs. technical labels
|
||||
- **Uppercase as emphasis tool**: Body-Font captions use `text-transform: uppercase` with expanded letter-spacing (1px) to create a visually distinct label layer that reads as "informational overlay" rather than primary content
|
||||
- **Compact line-heights**: Headlines use tight line-heights (1.00–1.30) creating dense, impactful text blocks, while body text opens to 1.50 for comfortable reading — the contrast between compressed headers and relaxed body text creates visual tension
|
||||
- **Weight range 400–700**: Four weights active in the system (400, 500, 600, 700) — significantly more range than Tesla but still controlled. 500 is the default "voice," 700 is for emphasis, 400 for body, 600 for navigation
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
Ferrari's buttons are minimal white rectangles with near-zero radius — the CTA philosophy is "architecture, not decoration."
|
||||
|
||||
**Primary CTA (White)** — The default action button:
|
||||
- Default: bg `#FFFFFF`, text `#000000`, fontSize 16px (FerrariSans), letterSpacing 1.28px, padding 12px 10px, borderRadius 2px, border 1px solid `#000000`
|
||||
- Hover: bg `#1EAEDB` (Teal), text `#FFFFFF`, opacity 0.9
|
||||
- Focus: bg `#1EAEDB`, text `#FFFFFF`, border 1px solid `#FFFFFF`, outline 2px solid `#000000`, opacity 0.9
|
||||
- Used for: "Configure" actions, secondary calls to action on light backgrounds
|
||||
|
||||
**Subscribe CTA (Red)** — The high-emphasis action button:
|
||||
- Default: bg `#DA291C` (Ferrari Red), text `#FFFFFF`, borderRadius 2px, padding 12px 10px
|
||||
- Used for: Newsletter subscribe, primary conversion actions on dark backgrounds
|
||||
- The only button that uses Ferrari Red — reserved for maximum visual priority
|
||||
|
||||
**Ghost Button (White Border)** — For dark backgrounds:
|
||||
- Default: bg transparent, text `#FFFFFF`, border 1px solid `#FFFFFF`, borderRadius 2px, padding 12px 10px
|
||||
- Hover: bg `#1EAEDB` (Teal), text `#FFFFFF`, opacity 0.9
|
||||
- Focus: same as Primary CTA focus state
|
||||
- Used for: Actions overlaid on dark imagery and cinematic sections
|
||||
|
||||
**Text Link** — Inline navigation:
|
||||
- Default: text `#181818` (on light surfaces) or `#FFFFFF` (on dark), no border, no background
|
||||
- Hover: color shifts to `#3860BE` (Link Hover Blue), decoration removes underline
|
||||
- White variant on dark surfaces uses underline decoration by default
|
||||
- FerrariSans or Body-Font depending on context (Body-Font for uppercase label links)
|
||||
|
||||
### Cards & Containers
|
||||
|
||||
**Editorial Card** (Content sections):
|
||||
- Background: white
|
||||
- Border: none
|
||||
- Shadow: none
|
||||
- Layout: image above, heading + caption below
|
||||
- Image treatment: full-width within card, no rounded corners on image
|
||||
- Text: FerrariSans heading (16–24px) + Body-Font caption (12–13px uppercase)
|
||||
|
||||
**Dark Cinematic Card** (Hero/feature sections):
|
||||
- Background: `#000000` (Absolute Black)
|
||||
- Full-bleed imagery with text overlay
|
||||
- No border, no shadow — the darkness IS the container
|
||||
- Text: white, positioned with careful negative space
|
||||
|
||||
**Vehicle Lineup** (Model carousel):
|
||||
- Horizontal scrollable row of vehicle thumbnails
|
||||
- Each vehicle on a neutral/white background
|
||||
- Navigation: arrow buttons + dot indicators
|
||||
- Background shifts to showcase the selected model's color context
|
||||
|
||||
### Inputs & Forms
|
||||
|
||||
**Newsletter Input** (Footer section):
|
||||
- Background: transparent on dark surface
|
||||
- Text: white
|
||||
- Border: 1px solid `#CCCCCC`
|
||||
- Placeholder: `#969696` (Silver Gray)
|
||||
- Focus: border color transitions (standard browser focus ring)
|
||||
- Label: Body-Font uppercase, 12px, 1px letter-spacing
|
||||
|
||||
**Cookie Consent** (Modal):
|
||||
- Background: white
|
||||
- Border radius: 8px (dialog)
|
||||
- Shadow: `rgb(153, 153, 153) 1px 1px 1px 0px`
|
||||
- Buttons: oversized (45px Arial), white bg with black border
|
||||
- Uses standard PrimeReact/Element Plus modal framework
|
||||
|
||||
### Navigation
|
||||
- **Desktop**: Prancing Horse logo centered at top of page, primary navigation below — not a traditional horizontal nav bar but a full-width header block on black background
|
||||
- **Logo**: Centered Prancing Horse emblem (44×42px) on absolute black — the single most prominent UI element
|
||||
- **Links**: FerrariSans, 13px, weight 600, white text on dark backgrounds
|
||||
- **Mobile**: Hamburger collapse to vertical navigation drawer
|
||||
- **Footer**: Multi-column layout on `#303030` (Dark Surface) with category links in Body-Font uppercase
|
||||
- **No sticky nav behavior** observed — the page scrolls naturally with the header moving off-screen
|
||||
|
||||
### Image Treatment
|
||||
- **Hero**: Full-width editorial photography on black backgrounds — concept cars in atmospheric studio lighting, editorial portraits with cinematic composition
|
||||
- **Aspect ratios**: Mixed — landscape (16:9) for hero sections, near-square for portrait/driver imagery, wide panoramic for vehicle lineups
|
||||
- **Full-bleed vs padded**: Hero images are full-bleed edge-to-edge; editorial content images are padded within white containers
|
||||
- **Lazy loading**: Below-fold sections use progressive loading (PrimeReact framework handles this)
|
||||
- **Image quality**: High-resolution photography with studio lighting — no user-generated or lifestyle imagery. Every image is art-directed
|
||||
|
||||
### Carousel Component
|
||||
- Editorial carousel with multiple slides
|
||||
- Dot indicators for slide position
|
||||
- Arrow navigation (left/right) at slide edges
|
||||
- Auto-advancing with manual override
|
||||
- Content: mixed editorial — event recaps, model launches, racing highlights
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
- **Base unit**: 8px (detected system base)
|
||||
- **Scale**: 1px, 2px, 4px, 5px, 6px, 9px, 10px, 11.2px, 12px, 13px, 15px, 16px, 19px, 20px, 25px
|
||||
- **Button padding**: 12px vertical, 10px horizontal — compact and precise
|
||||
- **Section padding**: Generous vertical spacing (40–80px estimated) between major content blocks
|
||||
- **Card gaps**: 16–20px between grid items
|
||||
- **Footer padding**: 25px horizontal sections within the dark footer block
|
||||
|
||||
### Grid & Container
|
||||
- **Max width**: 1920px (largest breakpoint) with content constraining at narrower widths
|
||||
- **Hero**: Full-bleed on black, content centered
|
||||
- **Editorial sections**: 2-column layouts with image + text, alternating sides
|
||||
- **Vehicle lineup**: Horizontal scroll/carousel, 5–6 models visible at desktop width
|
||||
- **Footer**: 4-column grid for link categories
|
||||
|
||||
### Whitespace Philosophy
|
||||
Ferrari treats white space as a gallery wall. Each section — whether a concept car render on black void or a pair of F1 drivers on neutral gray — is given its own "room" of breathing space. The alternating black/white sections create a pacing rhythm: dark = immersive moment, white = editorial content, dark = immersive moment. This cadence makes scrolling feel like turning pages in a luxury publication. White space between editorial cards is moderate (not Tesla-extreme) because Ferrari is telling stories, not exhibiting single objects.
|
||||
|
||||
### Border Radius Scale
|
||||
| Value | Context |
|
||||
|-------|---------|
|
||||
| 1px | Subtle softening on small inline elements (spans) |
|
||||
| 2px | Default for buttons, inputs, and interactive elements — barely perceptible, razor-precision |
|
||||
| 8px | Modal dialogs and overlay containers — the "softest" structural radius |
|
||||
| 50% | Circular elements: carousel dots, avatar thumbnails, slider handles |
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|-------|-----------|-----|
|
||||
| Level 0 (Flat) | No shadow, no border | Default state for all content sections and cards |
|
||||
| Level 1 (Subtle) | `rgb(153, 153, 153) 1px 1px 1px 0px` | Rare — cookie consent dialogs and dropdown menus |
|
||||
| Level 2 (Overlay) | `hsla(0, 0%, 7%, 0.8)` backdrop | Modal overlays and image caption backgrounds |
|
||||
| Level 3 (Border) | `1px solid #CCCCCC` | Input fields, form containers — depth through delineation not shadow |
|
||||
|
||||
### Shadow Philosophy
|
||||
Ferrari's approach to elevation is nearly as flat as Tesla's, but with a different rationale. Where Tesla avoids shadows for minimalism, Ferrari avoids them because the editorial photography provides all the visual depth needed. The single shadow token (`rgb(153, 153, 153) 1px 1px 1px 0px`) is extremely subtle — a 1-pixel whisper used only in utilitarian contexts like consent dialogs. The site communicates hierarchy through three strategies:
|
||||
1. **Surface color contrast**: Black sections vs. white sections create unmistakable layering
|
||||
2. **Overlay transparency**: The `--f-color-overlay-darker` at 80% opacity creates depth without shadow
|
||||
3. **Photographic depth**: Studio-lit car imagery with reflections, ground shadows, and atmospheric haze provides all the visual dimensionality
|
||||
|
||||
### Decorative Depth
|
||||
- No UI gradients, no glows, no blur effects on interface elements
|
||||
- The Prancing Horse logo on black creates a "floating in void" effect through pure contrast — no glow or shadow needed
|
||||
- Dark-to-light section transitions are hard cuts, not gradient blends — reinforcing the editorial page-turn metaphor
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
|
||||
### Do
|
||||
- Use Ferrari Red (`#DA291C`) sparingly — only for primary CTAs and brand-critical moments. Its power comes from restraint
|
||||
- Alternate between black cinematic sections and white editorial sections to create the signature chiaroscuro rhythm
|
||||
- Use FerrariSans at weight 500 as the default heading voice — it's the typographic equivalent of the engine note
|
||||
- Apply Body-Font in uppercase with 1px letter-spacing for all labels, category tags, and structural annotations
|
||||
- Keep border-radius at 2px for all interactive elements — razor precision, not rounded friendliness
|
||||
- Let photography carry the emotional weight — every image should be art-directed studio quality
|
||||
- Use the Prancing Horse emblem as a standalone hero element on black — never crowd it with adjacent content
|
||||
- Maintain the 12px/10px button padding ratio — compact, purposeful, no excess
|
||||
- Use `#181818` (Near Black) for body text instead of pure `#000000` — the subtle warmth improves readability
|
||||
- Reserve the yellow accents (`#FFF200`, `#F6E500`) strictly for motorsport and racing heritage contexts
|
||||
|
||||
### Don't
|
||||
- Scatter Ferrari Red across the interface as decoration — it's a CTA signal, not a theme color
|
||||
- Use rounded-pill buttons or large border-radii — the 2px precision is non-negotiable
|
||||
- Add box-shadows to cards or content containers — depth comes from surface color contrast and photography
|
||||
- Mix FerrariSans and Body-Font within the same text block — they serve separate hierarchical functions
|
||||
- Use colorful backgrounds (blue, green, etc.) for sections — the palette is exclusively black/white/gray with red and yellow accents
|
||||
- Apply text transforms to FerrariSans headings — uppercase is reserved for Body-Font labels only
|
||||
- Display low-quality or user-generated imagery — every photograph must meet editorial standards
|
||||
- Use the Link Hover Blue (`#3860BE`) for anything other than interactive hover states — it's not a brand color
|
||||
- Create busy layouts with multiple competing focal points — each section should have one clear story
|
||||
- Override the semantic color system (warning, success, info) with brand colors — `#F13A2C` warning is deliberately different from `#DA291C` brand red
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
| Name | Width | Key Changes |
|
||||
|------|-------|-------------|
|
||||
| Mobile Small | ≤375px | Single-column, minimal padding (12px), stacked navigation, hero text scales to ~18px, full-width CTAs |
|
||||
| Mobile | 376–600px | Single-column, slightly larger padding (16px), hamburger nav, body text at 13px |
|
||||
| Tablet Small | 601–768px | 2-column editorial grid begins, hero images maintain full-width, footer switches to 2-column |
|
||||
| Tablet | 769–960px | Full 2-column layout, carousel shows 3 vehicles, padding increases to 20px |
|
||||
| Desktop | 961–1280px | Full navigation, 2-column editorial with larger imagery, vehicle lineup shows 5 models |
|
||||
| Large Desktop | 1281–1920px | Maximum content width, generous whitespace, hero photography at full cinematic scale |
|
||||
|
||||
### Touch Targets
|
||||
- Primary CTA buttons: minimum 44px height with 12px vertical padding (meets WCAG AAA 44×44px target)
|
||||
- Navigation links: 13px text with 1.50 line-height and adequate spacing between items
|
||||
- Carousel arrows: 44px+ touch targets at viewport edges
|
||||
- Footer links: grouped with sufficient vertical spacing (16–20px) for touch accuracy
|
||||
|
||||
### Collapsing Strategy
|
||||
- **Navigation**: Full horizontal nav collapses to centered Prancing Horse logo + hamburger menu on mobile
|
||||
- **Editorial sections**: 2-column image+text layouts collapse to single-column with image stacking above text
|
||||
- **Vehicle lineup**: Horizontal carousel maintains scroll behavior but reduces visible models from 5 to 2–3
|
||||
- **Footer**: 4-column link grid collapses to 2-column on tablet, single-column accordion on mobile
|
||||
- **Hero carousel**: Full-width at all breakpoints, dot indicators and arrows scale proportionally
|
||||
- **Spacing reduction**: Section padding reduces from 40–80px (desktop) to 20–40px (mobile), maintaining proportional breathing room
|
||||
|
||||
### Image Behavior
|
||||
- Hero images: full-bleed at all breakpoints, using `object-fit: cover` to maintain cinematic composition
|
||||
- Editorial images: responsive within their containers, maintaining aspect ratio
|
||||
- Vehicle lineup: thumbnail size scales but maintains consistent car-to-frame proportions
|
||||
- Art direction: mobile crops may tighten on vehicle subjects, reducing environmental context
|
||||
- Lazy loading: PrimeReact handles progressive image loading for below-fold content
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- Primary CTA: "Ferrari Red (#DA291C)"
|
||||
- Background Light: "Pure White (#FFFFFF)"
|
||||
- Background Dark: "Absolute Black (#000000)"
|
||||
- Secondary Dark Surface: "Dark Surface (#303030)"
|
||||
- Heading text (light bg): "Near Black (#181818)"
|
||||
- Body text: "Dark Gray (#666666)"
|
||||
- Tertiary text: "Mid Gray (#8F8F8F)"
|
||||
- Border: "Border Gray (#CCCCCC)"
|
||||
- Button Hover: "Teal (#1EAEDB)"
|
||||
- Link Hover: "Link Blue (#3860BE)"
|
||||
|
||||
### Example Component Prompts
|
||||
- "Create a hero section on Absolute Black (#000000) background with a centered logo emblem at the top, generous vertical spacing (80px+), and a single editorial headline in FerrariSans at 26px weight 500 in white, with a small Body-Font uppercase caption (12px, 1px letter-spacing) in Silver Gray (#969696) below"
|
||||
- "Design a Subscribe section on Dark Surface (#303030) with a left-aligned headline in white FerrariSans (24px/500), a subtitle in Mid Gray (#8F8F8F, 13px), an email input with transparent background and 1px #CCCCCC border, and a Ferrari Red (#DA291C) Subscribe button with white text, 2px border-radius, and 12px 10px padding"
|
||||
- "Build an editorial card on white background with a full-width image (16:9 ratio) above, a FerrariSans heading (16px/700, Near Black #181818) below, and a Body-Font uppercase label (11px, 1px letter-spacing, Mid Gray #8F8F8F) as the category tag — no border, no shadow, no border-radius"
|
||||
- "Create a vehicle lineup carousel showing 5 car thumbnails in a horizontal scroll on white background, with left/right arrow navigation, dot indicators below, and a FerrariSans model name (16px/500) beneath each vehicle"
|
||||
- "Design a dark cinematic section with full-bleed studio photography of a concept car on Absolute Black, a white FerrariSans headline (26px/500) positioned in the lower-left with generous padding (40px), and a Ghost Button (transparent bg, 1px white border, white text, 2px radius) as the CTA"
|
||||
|
||||
### Iteration Guide
|
||||
When refining existing screens generated with this design system:
|
||||
1. Focus on ONE component at a time — Ferrari's editorial rhythm means each section is a self-contained vignette
|
||||
2. Reference specific color names and hex codes from this document — the palette is small but each color has a precise role
|
||||
3. Use natural language descriptions, not CSS values — "razor-sharp 2px corners" conveys intent better than "border-radius: 2px"
|
||||
4. Describe the desired "feel" alongside specific measurements — "editorial magazine page-turn between sections" communicates the layout philosophy better than "margin-bottom: 80px"
|
||||
5. Always maintain the chiaroscuro contrast — if a section feels flat, check whether it needs to be on black or white to maintain the alternating rhythm
|
||||
6. Reserve Ferrari Red for ONE element per screen — if red appears in more than one place, it loses its authority
|
||||
68
plugins/_official/design-systems/ferrari/open-design.json
Normal file
68
plugins/_official/design-systems/ferrari/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-ferrari",
|
||||
"title": "Ferrari",
|
||||
"version": "0.1.0",
|
||||
"description": "Luxury automotive. Chiaroscuro editorial, Ferrari Red accents, cinematic black.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"automotive"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Ferrari design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "ferrari",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
223
plugins/_official/design-systems/figma/DESIGN.md
Normal file
223
plugins/_official/design-systems/figma/DESIGN.md
Normal file
|
|
@ -0,0 +1,223 @@
|
|||
# Design System Inspired by Figma
|
||||
|
||||
> Category: Design & Creative
|
||||
> Collaborative design tool. Vibrant multi-color, playful yet professional.
|
||||
|
||||
## 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
|
||||
68
plugins/_official/design-systems/figma/open-design.json
Normal file
68
plugins/_official/design-systems/figma/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-figma",
|
||||
"title": "Figma",
|
||||
"version": "0.1.0",
|
||||
"description": "Collaborative design tool. Vibrant multi-color, playful yet professional.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"design-creative"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Figma design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "figma",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
71
plugins/_official/design-systems/flat/DESIGN.md
Normal file
71
plugins/_official/design-systems/flat/DESIGN.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Design System Inspired by Flat
|
||||
|
||||
> Category: Modern & Minimal
|
||||
> Two-dimensional minimalist style with vibrant colors, clean typography, and no 3D effects for fast, user-friendly interfaces.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Two-dimensional minimalist style with vibrant colors, clean typography, and no 3D effects for fast, user-friendly interfaces.
|
||||
|
||||
- **Visual style:** minimal, enterprise
|
||||
- **Color stance:** primary, neutral, success, warning, danger
|
||||
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
||||
|
||||
## 2. Color
|
||||
|
||||
- **Primary:** `#F2673C` — Token from style foundations.
|
||||
- **Secondary:** `#8B5CF6` — Token from style foundations.
|
||||
- **Success:** `#16A34A` — Token from style foundations.
|
||||
- **Warning:** `#D97706` — Token from style foundations.
|
||||
- **Danger:** `#DC2626` — Token from style foundations.
|
||||
- **Surface:** `#FFFFFF` — Token from style foundations.
|
||||
- **Text:** `#111827` — Token from style foundations.
|
||||
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
||||
|
||||
- Favor Primary (#F2673C) for CTA emphasis.
|
||||
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
||||
- Keep body copy on Text (#111827) for legibility.
|
||||
|
||||
## 3. Typography
|
||||
|
||||
- **Scale:** 12/14/16/20/24/32
|
||||
- **Families:** primary=Inter, display=Inter, mono=JetBrains Mono
|
||||
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
||||
|
||||
## 4. Spacing & Grid
|
||||
|
||||
- **Spacing scale:** 4/8/12/16/24/32
|
||||
- Keep vertical rhythm consistent across sections and components.
|
||||
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
||||
|
||||
## 5. Layout & Composition
|
||||
|
||||
- Prefer clear content blocks with consistent internal padding.
|
||||
- Keep hierarchy obvious: headline → support text → primary action.
|
||||
- Use whitespace to separate concerns before adding borders or shadows.
|
||||
|
||||
## 6. Components
|
||||
|
||||
- Buttons: primary action uses `#F2673C`; secondary actions stay neutral.
|
||||
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
||||
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
||||
|
||||
## 7. Motion & Interaction
|
||||
|
||||
- Use subtle transitions that emphasize Primary (#F2673C) as the interaction signal.
|
||||
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
||||
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
||||
|
||||
## 8. Voice & Brand
|
||||
|
||||
- Tone should reflect the visual style: concise, confident, and product-specific.
|
||||
- Keep microcopy action-oriented and avoid generic filler language.
|
||||
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
||||
|
||||
## 9. Anti-patterns
|
||||
|
||||
- Do not introduce off-palette colors when an existing token can solve the problem.
|
||||
- Do not flatten hierarchy by using the same type size/weight for all text.
|
||||
- Do not add decorative effects that reduce readability or accessibility.
|
||||
- Do not mix unrelated visual metaphors in the same interface.
|
||||
68
plugins/_official/design-systems/flat/open-design.json
Normal file
68
plugins/_official/design-systems/flat/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-flat",
|
||||
"title": "Flat",
|
||||
"version": "0.1.0",
|
||||
"description": "Two-dimensional minimalist style with vibrant colors, clean typography, and no 3D effects for fast, user-friendly interfaces.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"modern-minimal"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Flat design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "flat",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
249
plugins/_official/design-systems/framer/DESIGN.md
Normal file
249
plugins/_official/design-systems/framer/DESIGN.md
Normal file
|
|
@ -0,0 +1,249 @@
|
|||
# Design System Inspired by Framer
|
||||
|
||||
> Category: Design & Creative
|
||||
> Website builder. Bold black and blue, motion-first, design-forward.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
|
||||
Framer's website is a cinematic, tool-obsessed dark canvas that radiates the confidence of a design tool built by designers who worship craft. The entire experience is drenched in pure black — not a warm charcoal or a cozy dark gray, but an absolute void (`#000000`) that makes every element, every screenshot, every typographic flourish feel like it's floating in deep space. This is a website that treats its own product UI as the hero art, embedding full-fidelity screenshots and interactive demos directly into the narrative flow.
|
||||
|
||||
The typography is the signature move: GT Walsheim with aggressively tight letter-spacing (as extreme as -5.5px on 110px display text) creates headlines that feel compressed, kinetic, almost spring-loaded — like words under pressure that might expand at any moment. The transition to Inter for body text is seamless, with extensive OpenType feature usage (`cv01`, `cv05`, `cv09`, `cv11`, `ss03`, `ss07`) that gives even small text a refined, custom feel. Framer Blue (`#0099ff`) is deployed sparingly but decisively — as link color, border accents, and subtle ring shadows — creating a cold, electric throughline against the warm-less black.
|
||||
|
||||
The overall effect is a nightclub for web designers: dark, precise, seductive, and unapologetically product-forward. Every section exists to showcase what the tool can do, with the website itself serving as proof of concept.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Pure black (`#000000`) void canvas — absolute dark, not warm or gray-tinted
|
||||
- GT Walsheim display font with extreme negative letter-spacing (-5.5px at 110px)
|
||||
- Framer Blue (`#0099ff`) as the sole accent color — cold, electric, precise
|
||||
- Pill-shaped buttons (40px–100px radius) — no sharp corners on interactive elements
|
||||
- Product screenshots as hero art — the tool IS the marketing
|
||||
- Frosted glass button variants using `rgba(255, 255, 255, 0.1)` on dark surfaces
|
||||
- Extensive OpenType feature usage across Inter for refined micro-typography
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
|
||||
### Primary
|
||||
- **Pure Black** (`#000000`): Primary background, the void canvas that defines Framer's dark-first identity
|
||||
- **Pure White** (`#ffffff`): Primary text color on dark surfaces, button text on accent backgrounds
|
||||
- **Framer Blue** (`#0099ff`): Primary accent color — links, borders, ring shadows, interactive highlights
|
||||
|
||||
### Secondary & Accent
|
||||
- **Muted Silver** (`#a6a6a6`): Secondary text, subdued labels, dimmed descriptions on dark surfaces
|
||||
- **Near Black** (`#090909`): Elevated dark surface, shadow ring color for subtle depth separation
|
||||
|
||||
### Surface & Background
|
||||
- **Void Black** (`#000000`): Page background, primary canvas
|
||||
- **Frosted White** (`rgba(255, 255, 255, 0.1)`): Translucent button backgrounds, glass-effect surfaces on dark
|
||||
- **Subtle White** (`rgba(255, 255, 255, 0.5)`): Slightly more opaque frosted elements for hover states
|
||||
|
||||
### Neutrals & Text
|
||||
- **Pure White** (`#ffffff`): Heading text, high-emphasis body text
|
||||
- **Muted Silver** (`#a6a6a6`): Body text, descriptions, secondary information
|
||||
- **Ghost White** (`rgba(255, 255, 255, 0.6)`): Tertiary text, placeholders on dark surfaces
|
||||
|
||||
### Semantic & Accent
|
||||
- **Framer Blue** (`#0099ff`): Links, interactive borders, focus rings
|
||||
- **Blue Glow** (`rgba(0, 153, 255, 0.15)`): Focus ring shadow, subtle blue halo around interactive elements
|
||||
- **Default Link Blue** (`#0000ee`): Standard browser link color (used sparingly in content areas)
|
||||
|
||||
### Gradient System
|
||||
- No prominent gradient usage — Framer relies on pure flat black surfaces with occasional blue-tinted glows for depth
|
||||
- Subtle radial glow effects behind product screenshots using Framer Blue at very low opacity
|
||||
|
||||
## 3. Typography Rules
|
||||
|
||||
### Font Family
|
||||
- **Display**: `GT Walsheim Framer Medium` / `GT Walsheim Medium` — custom geometric sans-serif, weight 500. Fallbacks: `GT Walsheim Framer Medium Placeholder`, system sans-serif
|
||||
- **Body/UI**: `Inter Variable` / `Inter` — variable sans-serif with extensive OpenType features. Fallbacks: `Inter Placeholder`, `-apple-system`, `system-ui`
|
||||
- **Accent**: `Mona Sans` — GitHub's open-source font, used for select elements at ultra-light weight (100)
|
||||
- **Monospace**: `Azeret Mono` — companion mono for code and technical labels
|
||||
- **Rounded**: `Open Runde` — small rounded companion font for micro-labels
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|------|--------|-------------|----------------|-------|
|
||||
| Display Hero | GT Walsheim Framer Medium | 110px | 500 | 0.85 | -5.5px | Extreme negative tracking, compressed impact |
|
||||
| Section Display | GT Walsheim Medium | 85px | 500 | 0.95 | -4.25px | OpenType: ss02, tnum |
|
||||
| Section Heading | GT Walsheim Medium | 62px | 500 | 1.00 | -3.1px | OpenType: ss02 |
|
||||
| Feature Heading | GT Walsheim Medium | 32px | 500 | 1.13 | -1px | Tightest of the smaller headings |
|
||||
| Accent Display | Mona Sans | 61.5px | 100 | 1.00 | -3.1px | Ultra-light weight, ethereal |
|
||||
| Card Title | Inter Variable | 24px | 400 | 1.30 | -0.01px | OpenType: cv01, cv05, cv09, cv11, ss03, ss07 |
|
||||
| Feature Title | Inter | 22px | 700 | 1.20 | -0.8px | OpenType: cv05 |
|
||||
| Sub-heading | Inter | 20px | 600 | 1.20 | -0.8px | OpenType: cv01, cv09 |
|
||||
| Body Large | Inter Variable | 18px | 400 | 1.30 | -0.01px | OpenType: cv01, cv05, cv09, cv11, ss03, ss07 |
|
||||
| Body | Inter Variable | 15px | 400 | 1.30 | -0.01px | OpenType: cv11 |
|
||||
| Nav/UI | Inter Variable | 15px | 400 | 1.00 | -0.15px | OpenType: cv06, cv11, dlig, ss03 |
|
||||
| Body Readable | Inter Framer Regular | 14px | 400 | 1.60 | normal | Long-form body text |
|
||||
| Caption | Inter Variable | 14px | 400 | 1.40 | normal | OpenType: cv01, cv06, cv09, cv11, ss03, ss07 |
|
||||
| Label | Inter | 13px | 500 | 1.60 | normal | OpenType: cv06, cv11, ss03 |
|
||||
| Small Caption | Inter Variable | 12px | 400 | 1.40 | normal | OpenType: cv01, cv06, cv09, cv11, ss03, ss07 |
|
||||
| Micro Code | Azeret Mono | 10.4px | 400 | 1.60 | normal | OpenType: cv06, cv11, ss03 |
|
||||
| Badge | Open Runde | 9px | 600 | 1.11 | normal | OpenType: cv01, cv09 |
|
||||
| Micro Uppercase | Inter Variable | 7px | 400 | 1.00 | 0.21px | uppercase transform |
|
||||
|
||||
### Principles
|
||||
- **Compression as personality**: GT Walsheim's extreme negative letter-spacing (-5.5px at 110px) is the defining typographic gesture — headlines feel spring-loaded, urgent, almost breathless
|
||||
- **OpenType maximalism**: Inter is deployed with 6+ OpenType features simultaneously (`cv01`, `cv05`, `cv09`, `cv11`, `ss03`, `ss07`), creating a subtly custom feel even at body sizes
|
||||
- **Weight restraint on display**: All GT Walsheim usage is weight 500 (medium) — never bold, never regular. This creates a confident-but-not-aggressive display tone
|
||||
- **Ultra-tight line heights**: Display text at 0.85 line-height means letters nearly overlap vertically — intentional density that rewards reading at arm's length
|
||||
|
||||
## 4. Component Stylings
|
||||
|
||||
### Buttons
|
||||
- **Frosted Pill**: `rgba(255, 255, 255, 0.1)` background, black text (`#000000`), pill shape (40px radius). The glass-effect button that lives on dark surfaces — translucent, ambient, subtle
|
||||
- **Solid White Pill**: `rgb(255, 255, 255)` background, black text (`#000000`), full pill shape (100px radius), padding `10px 15px`. The primary CTA — clean, high-contrast on dark, unmissable
|
||||
- **Ghost**: No visible background, white text, relies on text styling alone. Hover reveals subtle frosted background
|
||||
- **Transition**: Scale-based animations (matrix transform with 0.85 scale factor), opacity transitions for reveal effects
|
||||
|
||||
### Cards & Containers
|
||||
- **Dark Surface Card**: Black or near-black (`#090909`) background, `rgba(0, 153, 255, 0.15) 0px 0px 0px 1px` blue ring shadow border, rounded corners (10px–15px radius)
|
||||
- **Elevated Card**: Multi-layer shadow — `rgba(255, 255, 255, 0.1) 0px 0.5px 0px 0.5px` (subtle top highlight) + `rgba(0, 0, 0, 0.25) 0px 10px 30px` (deep ambient shadow)
|
||||
- **Product Screenshots**: Full-width or padded within dark containers, 8px–12px border-radius for software UI previews
|
||||
- **Hover**: Subtle glow increase on Framer Blue ring shadow, or brightness shift on frosted surfaces
|
||||
|
||||
### Inputs & Forms
|
||||
- Minimal form presence on the marketing site
|
||||
- Input fields follow dark theme: dark background, subtle border, white text
|
||||
- Focus state: Framer Blue (`#0099ff`) ring border, `1px solid #0099ff`
|
||||
- Placeholder text in `rgba(255, 255, 255, 0.4)`
|
||||
|
||||
### Navigation
|
||||
- **Dark floating nav bar**: Black background with frosted glass effect, white text links
|
||||
- **Nav links**: Inter at 15px, weight 400, white text with subtle hover opacity change
|
||||
- **CTA button**: Pill-shaped, white or frosted, positioned at right end of nav
|
||||
- **Mobile**: Collapses to hamburger menu, maintains dark theme
|
||||
- **Sticky behavior**: Nav remains fixed at top on scroll
|
||||
|
||||
### Image Treatment
|
||||
- **Product screenshots as hero art**: Full-width embedded UI screenshots with rounded corners (8px–12px)
|
||||
- **Dark-on-dark composition**: Screenshots placed on black backgrounds with subtle shadow for depth separation
|
||||
- **16:9 and custom aspect ratios**: Product demos fill their containers
|
||||
- **No decorative imagery**: All images are functional — showing the tool, the output, or the workflow
|
||||
|
||||
### Trust & Social Proof
|
||||
- Customer logos and testimonials in muted gray on dark surfaces
|
||||
- Minimal ornamentation — the product screenshots serve as the trust signal
|
||||
|
||||
## 5. Layout Principles
|
||||
|
||||
### Spacing System
|
||||
- **Base unit**: 8px
|
||||
- **Scale**: 1px, 2px, 3px, 4px, 5px, 6px, 8px, 10px, 12px, 15px, 20px, 30px, 35px
|
||||
- **Section padding**: Large vertical spacing (80px–120px between sections)
|
||||
- **Card padding**: 15px–30px internal padding
|
||||
- **Component gaps**: 8px–20px between related elements
|
||||
|
||||
### Grid & Container
|
||||
- **Max width**: ~1200px container, centered
|
||||
- **Column patterns**: Full-width hero, 2-column feature sections, single-column product showcases
|
||||
- **Asymmetric layouts**: Feature sections often pair text (40%) with screenshot (60%)
|
||||
|
||||
### Whitespace Philosophy
|
||||
- **Breathe through darkness**: Generous vertical spacing between sections — the black background means whitespace manifests as void, creating dramatic pauses between content blocks
|
||||
- **Dense within, spacious between**: Individual components are tightly composed (tight line-heights, compressed text) but float in generous surrounding space
|
||||
- **Product-first density**: Screenshot areas are allowed to be dense and information-rich, contrasting with the sparse marketing text
|
||||
|
||||
### Border Radius Scale
|
||||
- **1px**: Micro-elements, nearly squared precision edges
|
||||
- **5px–7px**: Small UI elements, image thumbnails — subtly softened
|
||||
- **8px**: Standard component radius — code blocks, buttons, interactive elements
|
||||
- **10px–12px**: Cards, product screenshots — comfortably rounded
|
||||
- **15px–20px**: Large containers, feature cards — generously rounded
|
||||
- **30px–40px**: Navigation pills, pagination — noticeably rounded
|
||||
- **100px**: Full pill shape — primary CTAs, tag elements
|
||||
|
||||
## 6. Depth & Elevation
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|-------|-----------|-----|
|
||||
| Level 0 (Flat) | No shadow, pure black surface | Page background, empty areas |
|
||||
| Level 1 (Ring) | `rgba(0, 153, 255, 0.15) 0px 0px 0px 1px` | Card borders, interactive element outlines — Framer Blue glow ring |
|
||||
| Level 2 (Contained) | `rgb(9, 9, 9) 0px 0px 0px 2px` | Near-black ring for subtle containment on dark surfaces |
|
||||
| Level 3 (Floating) | `rgba(255, 255, 255, 0.1) 0px 0.5px 0px 0.5px, rgba(0, 0, 0, 0.25) 0px 10px 30px` | Elevated cards, floating elements — subtle white top-edge highlight + deep ambient shadow |
|
||||
|
||||
### Shadow Philosophy
|
||||
Framer's elevation system is inverted from traditional light-theme designs. Instead of darker shadows on light backgrounds, Framer uses:
|
||||
- **Blue-tinted ring shadows** at very low opacity (0.15) for containment — a signature move that subtly brands every bordered element
|
||||
- **White edge highlights** (0.5px) on the top edge of elevated elements — simulating light hitting the top surface
|
||||
- **Deep ambient shadows** for true floating elements — `rgba(0, 0, 0, 0.25)` at large spread (30px)
|
||||
|
||||
### Decorative Depth
|
||||
- **Blue glow auras**: Subtle Framer Blue (`#0099ff`) radial gradients behind key interactive areas
|
||||
- **No background blur/glassmorphism**: Despite the frosted button effect, there's no heavy glass blur usage — the translucency is achieved through simple rgba opacity
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
|
||||
### Do
|
||||
- Use pure black (`#000000`) as the primary background — not dark gray, not charcoal
|
||||
- Apply extreme negative letter-spacing on GT Walsheim display text (-3px to -5.5px)
|
||||
- Keep all buttons pill-shaped (40px+ radius) — never use squared or slightly-rounded buttons
|
||||
- Use Framer Blue (`#0099ff`) exclusively for interactive accents — links, borders, focus states
|
||||
- Deploy `rgba(255, 255, 255, 0.1)` for frosted glass surfaces on dark backgrounds
|
||||
- Maintain GT Walsheim at weight 500 only — the medium weight IS the brand
|
||||
- Use extensive OpenType features on Inter text (cv01, cv05, cv09, cv11, ss03, ss07)
|
||||
- Let product screenshots be the visual centerpiece — the tool markets itself
|
||||
- Apply blue ring shadows (`rgba(0, 153, 255, 0.15) 0px 0px 0px 1px`) for card containment
|
||||
|
||||
### Don't
|
||||
- Use warm dark backgrounds (no `#1a1a1a`, `#2d2d2d`, or brownish blacks)
|
||||
- Apply bold (700+) weight to GT Walsheim display text — medium 500 only
|
||||
- Introduce additional accent colors beyond Framer Blue — this is a one-accent-color system
|
||||
- Use large border-radius on non-interactive elements (cards use 10px–15px, only buttons get 40px+)
|
||||
- Add decorative imagery, illustrations, or icons — the product IS the illustration
|
||||
- Use positive letter-spacing on headlines — everything is compressed, negative tracking
|
||||
- Create heavy drop shadows — depth is communicated through subtle rings and minimal ambients
|
||||
- Place light/white backgrounds behind content sections — the void is sacred
|
||||
- Use serif or display-weight fonts — the system is geometric sans-serif only
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
| Name | Width | Key Changes |
|
||||
|------|-------|-------------|
|
||||
| Mobile | <809px | Single column, stacked feature sections, reduced hero text (62px→40px), hamburger nav |
|
||||
| Tablet | 809px–1199px | 2-column features begin, nav links partially visible, screenshots scale down |
|
||||
| Desktop | >1199px | Full layout, expanded nav with all links + CTA, 110px display hero, side-by-side features |
|
||||
|
||||
### Touch Targets
|
||||
- Pill buttons: minimum 40px height with 10px vertical padding — exceeds 44px WCAG minimum
|
||||
- Nav links: 15px text with generous padding for touch accessibility
|
||||
- Mobile CTA buttons: Full-width pills on mobile for easy thumb reach
|
||||
|
||||
### Collapsing Strategy
|
||||
- **Navigation**: Full horizontal nav → hamburger menu at mobile breakpoint
|
||||
- **Hero text**: 110px display → 85px → 62px → ~40px across breakpoints, maintaining extreme negative tracking proportionally
|
||||
- **Feature sections**: Side-by-side (text + screenshot) → stacked vertically on mobile
|
||||
- **Product screenshots**: Scale responsively within containers, maintaining aspect ratios
|
||||
- **Section spacing**: Reduces proportionally — 120px desktop → 60px mobile
|
||||
|
||||
### Image Behavior
|
||||
- Product screenshots are responsive, scaling within their container boundaries
|
||||
- No art direction changes — same crops across breakpoints
|
||||
- Dark background ensures screenshots maintain visual impact at any size
|
||||
- Screenshots lazy-load as user scrolls into view
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- Primary Background: Void Black (`#000000`)
|
||||
- Primary Text: Pure White (`#ffffff`)
|
||||
- Accent/CTA: Framer Blue (`#0099ff`)
|
||||
- Secondary Text: Muted Silver (`#a6a6a6`)
|
||||
- Frosted Surface: Translucent White (`rgba(255, 255, 255, 0.1)`)
|
||||
- Elevation Ring: Blue Glow (`rgba(0, 153, 255, 0.15)`)
|
||||
|
||||
### Example Component Prompts
|
||||
- "Create a hero section on pure black background with 110px GT Walsheim heading in white, letter-spacing -5.5px, line-height 0.85, and a pill-shaped white CTA button (100px radius) with black text"
|
||||
- "Design a feature card on black background with a 1px Framer Blue ring shadow border (rgba(0,153,255,0.15)), 12px border-radius, white heading in Inter at 22px weight 700, and muted silver (a6a6a6) body text"
|
||||
- "Build a navigation bar with black background, white Inter text links at 15px, and a frosted pill button (rgba(255,255,255,0.1) background, 40px radius) as the CTA"
|
||||
- "Create a product showcase section with a full-width screenshot embedded on black, 10px border-radius, subtle multi-layer shadow (white 0.5px top highlight + rgba(0,0,0,0.25) 30px ambient)"
|
||||
- "Design a pricing card using pure black surface, Framer Blue (#0099ff) accent for the selected plan border, white text hierarchy (24px Inter bold heading, 14px regular body), and a solid white pill CTA button"
|
||||
|
||||
### Iteration Guide
|
||||
When refining existing screens generated with this design system:
|
||||
1. Focus on ONE component at a time — the dark canvas makes each element precious
|
||||
2. Always verify letter-spacing on GT Walsheim headings — the extreme negative tracking is non-negotiable
|
||||
3. Check that Framer Blue appears ONLY on interactive elements — never as decorative background or text color for non-links
|
||||
4. Ensure all buttons are pill-shaped — any squared corner immediately breaks the Framer aesthetic
|
||||
5. Test frosted glass surfaces by checking they have exactly `rgba(255, 255, 255, 0.1)` — too opaque looks like a bug, too transparent disappears
|
||||
68
plugins/_official/design-systems/framer/open-design.json
Normal file
68
plugins/_official/design-systems/framer/open-design.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||||
"name": "design-system-framer",
|
||||
"title": "Framer",
|
||||
"version": "0.1.0",
|
||||
"description": "Website builder. Bold black and blue, motion-first, design-forward.",
|
||||
"license": "MIT",
|
||||
"tags": [
|
||||
"design-system",
|
||||
"first-party",
|
||||
"design",
|
||||
"design-creative"
|
||||
],
|
||||
"od": {
|
||||
"kind": "scenario",
|
||||
"taskKind": "new-generation",
|
||||
"mode": "design-system",
|
||||
"scenario": "design",
|
||||
"surface": "web",
|
||||
"useCase": {
|
||||
"query": "Generate a {{artifactKind}} using the Framer design system. Stay faithful to its colour palette, typography, spacing, iconography, and component vocabulary as documented in DESIGN.md."
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"name": "artifactKind",
|
||||
"label": "Artifact kind",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"landing page",
|
||||
"dashboard",
|
||||
"marketing site",
|
||||
"app screen"
|
||||
],
|
||||
"default": "landing page"
|
||||
},
|
||||
{
|
||||
"name": "brief",
|
||||
"label": "Brief",
|
||||
"type": "text",
|
||||
"placeholder": "What should the page communicate?"
|
||||
}
|
||||
],
|
||||
"context": {
|
||||
"designSystem": {
|
||||
"ref": "framer",
|
||||
"primary": true
|
||||
},
|
||||
"assets": [
|
||||
"./DESIGN.md"
|
||||
]
|
||||
},
|
||||
"pipeline": {
|
||||
"stages": [
|
||||
{
|
||||
"id": "generate",
|
||||
"atoms": [
|
||||
"file-write",
|
||||
"live-artifact"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"capabilities": [
|
||||
"prompt:inject",
|
||||
"fs:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue