getdesign.mdgetdesign/opencode.ai
OpenCode
Terminal-native monospace-first aesthetic with warm near-black background, Berkeley Mono throughout, and flat utilitarian surfaces.
install
npx designkit-cli add getdesign/opencode.aiTypography
Every text element the kit ships — headings through code
Headings
The quick brown fox
Section heading
Subsection heading
Minor heading
Overline heading
Body text
Lead paragraph.Body text sits at the backbone of any interface — if it reads well, everything else has a chance. If it doesn't, nothing else matters.
Standard paragraph at the body size. Type hierarchies work best when the jump from body to subheading is clear but not disruptive — around 1.25-1.5× works across most contexts. Inline elements like a link, inline code, emphasis, strong, and highlighted text should all feel native to the kit.
Small / caption text — used for metadata, timestamps, descriptions under labels. Usually 14px or slightly smaller.
Lists
Unordered
- Token-driven styling
- Agent-readable format
- Composable kits
- Colors
- Typography
- Component stylings
- Portable between projects
Ordered
- Describe the kit in prose
- Extract colors and typography
- Apply to a sample UI
- Iterate on token values
Blockquote
“Good design is as little design as possible. Less, but better — because it concentrates on the essential aspects, and the products are not burdened with non-essentials.”
Code
// install a kit
$ npx designkit-cli add airbnb
// apply it to your project
import { applyKit } from "@designkit/theme"
applyKit("airbnb")Rule
Buttons
Primary, secondary, outline, ghost — every state the kit ships
Default
Sizes
With icon
Form fields
Every input control the kit ships — text, select, checkboxes, radios, switches, file
Text inputs
Textarea
Select
Checkboxes
Radio group
Toggle switch
File input
Feedback
Alerts, badges, progress, tooltips, avatars — the signal surface of every UI
Alerts
Scheduled maintenance
We'll be rolling out a new version on Friday at 22:00 UTC. Expect a short read-only window.
Kit published
Your DESIGN.md is live. Anyone can now install it with `npx designkit-cli add you/my-kit`.
Deprecated API
You're calling /v1/kits which will be removed in 30 days. Migrate to /v2/kits.
Build failed
Two component tokens reference an undefined color. Run `designkit lint` to see them.
Badges & tags
Avatars
Jeremy Dupont
Author
Progress
Spinner
Tooltip (static)
Keyboard shortcut
Press ⌘ K to open the command palette, or Esc to dismiss.
Data display
Table, definition list, empty state — how the kit shows structured data
Table
| Kit | Author | Installs | Updated | Status |
|---|---|---|---|---|
| airbnb | getdesign | 12.4K | 2d ago | Active |
| claude | getdesign | 8.1K | 5d ago | Active |
| stripe | getdesign | 7.9K | 1w ago | Active |
| linear.app | getdesign | 6.2K | 2w ago | Beta |
| heritage | dk | 2.1K | 1mo ago | Draft |
Definition list
- Name
- Airbnb
- Author
- getdesign · Claude
- Format
- DESIGN.md (Google Stitch spec)
- Primary font
- Nunito (substitute for Airbnb Cereal VF)
- Installs
- 12,408
- License
- MIT
Empty state
No kits yet
You haven't published any kits on this account. Drop a DESIGN.md in a public repo to get started.
Breadcrumbs
Tabs
Sign in
Centered auth card — the most scrutinised surface in any app
Welcome back
Sign in with your work email to continue.
New here? Create an account
Dashboard KPIs
Four-card stat row — the staple of every internal dashboard
Overview
Performance for the last 30 days
Active users
12,408
+4.2% vs last period
MRR
$28.9K
+12.1% vs last period
Churn
1.8%
-0.3% vs last period
NPS
72
+5 vs last period
Chat thread
Agent + user turn-based chat — bubbles, avatar, timestamp
Design Agent
online · responds in seconds
Hero
Landing-page headline + subtitle + primary CTA
Designed for humans. Built for agents.
Ship a brand-aligned product in hours. Coding agents write UI that matches your design system — no brief, no handoff.
Pricing
Three-tier comparison grid with a highlighted middle tier
Simple pricing
Pay for what you use. Change plans any time.
Hobby
- 1 project
- Community support
- Public kits only
Pro
Popular- Unlimited projects
- Private kits
- Priority support
- AI kit generator
Team
- Everything in Pro
- Shared workspace
- SSO + audit logs
- Dedicated support
source
---
name: OpenCode
description:
Terminal-native monospace-first aesthetic with warm near-black background,
Berkeley Mono throughout, and flat utilitarian surfaces.
originalFonts:
primary: "Berkeley Mono"
fallbacks:
- "IBM Plex Mono"
- "ui-monospace"
- "SFMono-Regular"
- "Menlo"
- "Monaco"
- "Consolas"
- "Liberation Mono"
- "Courier New"
- "monospace"
colors:
background: "#201d1d"
surface: "#302c2c"
ink: "#fdfcfc"
ink-muted: "#9a9898"
accent: "#007aff"
accent-alt: "#0056b3"
border: "rgba(15, 0, 0, 0.12)"
link: "#201d1d"
opencode-dark: "#201d1d"
opencode-light: "#fdfcfc"
mid-gray: "#9a9898"
dark-surface: "#302c2c"
border-gray: "#646262"
light-surface: "#f1eeee"
accent-blue: "#007aff"
accent-blue-hover: "#0056b3"
accent-blue-active: "#004085"
danger-red: "#ff3b30"
danger-hover: "#d70015"
danger-active: "#a50011"
success-green: "#30d158"
warning-orange: "#ff9f0a"
warning-hover: "#cc7f08"
warning-active: "#995f06"
text-muted: "#6e6e73"
text-secondary: "#424245"
border-warm: "rgba(15, 0, 0, 0.12)"
border-tab: "#9a9898"
border-outline: "#646262"
typography:
h1:
family: "JetBrains Mono"
size: "2.375rem"
weight: 700
lineHeight: 1.5
h2:
family: "JetBrains Mono"
size: "1rem"
weight: 700
lineHeight: 1.5
body:
family: "JetBrains Mono"
size: "1rem"
weight: 400
lineHeight: 1.5
code:
family: "JetBrains Mono"
spacing:
xs: "0.5rem"
sm: "0.75rem"
md: "1rem"
lg: "1.5rem"
xl: "3rem"
rounded:
sm: "4px"
md: "4px"
lg: "6px"
xl: "6px"
shadows:
sm: "none"
md: "none"
components:
button-primary:
background: "{colors.opencode-dark}"
color: "{colors.opencode-light}"
border: "1px solid {colors.border-outline}"
radius: "{rounded.sm}"
padding: "4px 20px"
button-secondary:
background: "transparent"
color: "{colors.ink}"
border: "1px solid {colors.border}"
radius: "{rounded.sm}"
padding: "4px 20px"
card:
background: "{colors.surface}"
border: "1px solid {colors.border}"
radius: "{rounded.sm}"
padding: "1.5rem"
input:
background: "#f8f7f7"
color: "{colors.opencode-dark}"
border: "1px solid {colors.border}"
radius: "{rounded.lg}"
padding: "20px"
---
<!-- source: VoltAgent/awesome-design-md @ 80bbbc2 (MIT) — see ATTRIBUTION.md -->
# Design System Inspiration of OpenCode
## 1. Visual Theme & Atmosphere
OpenCode's website embodies a terminal-native, monospace-first aesthetic that
reflects its identity as an open source AI coding agent. The entire visual
system is built on a stark dark-on-light contrast using a near-black background
(`#201d1d`) with warm off-white text (`#fdfcfc`). This isn't a generic dark
theme -- it's a warm, slightly reddish-brown dark that feels like a
sophisticated terminal emulator rather than a cold IDE. The warm undertone in
both the darks and lights (notice the subtle red channel in `#201d1d` -- rgb(32,
29, 29)) creates a cohesive, lived-in quality.
Berkeley Mono is the sole typeface, establishing an unapologetic monospace
identity. Every element -- headings, body text, buttons, navigation -- shares
this single font family, creating a unified "everything is code" philosophy. The
heading at 38px bold with 1.50 line-height is generous and readable, while body
text at 16px with weight 500 provides a slightly heavier-than-normal reading
weight that enhances legibility on screen. The monospace grid naturally enforces
alignment and rhythm across the layout.
The color system is deliberately minimal. The primary palette consists of just
three functional tones: the warm near-black (`#201d1d`), a medium warm gray
(`#9a9898`), and a bright off-white (`#fdfcfc`). Semantic colors borrow from the
Apple HIG palette -- blue accent (`#007aff`), red danger (`#ff3b30`), green
success (`#30d158`), orange warning (`#ff9f0a`) -- giving the interface
familiar, trustworthy signal colors without adding brand complexity. Borders use
a subtle warm transparency (`rgba(15, 0, 0, 0.12)`) that ties into the warm
undertone of the entire system.
**Key Characteristics:**
- Berkeley Mono as the sole typeface -- monospace everywhere, no sans-serif or
serif voices
- Warm near-black primary (`#201d1d`) with reddish-brown undertone, not pure
black
- Off-white text (`#fdfcfc`) with warm tint, not pure white
- Minimal 4px border radius throughout -- sharp, utilitarian corners
- 8px base spacing system scaling up to 96px
- Apple HIG-inspired semantic colors (blue, red, green, orange)
- Transparent warm borders using `rgba(15, 0, 0, 0.12)`
- Email input with generous 20px padding and 6px radius -- the most generous
component radius
- Single button variant: dark background, light text, tight vertical padding
(4px 20px)
- Underlined links as default link style, reinforcing the text-centric identity
## 2. Color Palette & Roles
### Primary
- **OpenCode Dark** (`#201d1d`): Primary background, button fills, link text. A
warm near-black with subtle reddish-brown warmth -- rgb(32, 29, 29).
- **OpenCode Light** (`#fdfcfc`): Primary text on dark surfaces, button text. A
barely-warm off-white that avoids clinical pure white.
- **Mid Gray** (`#9a9898`): Secondary text, muted links. A neutral warm gray
that bridges dark and light.
### Secondary
- **Dark Surface** (`#302c2c`): Slightly lighter than primary dark, used for
elevated surfaces and subtle differentiation.
- **Border Gray** (`#646262`): Stronger borders, outline rings on interactive
elements.
- **Light Surface** (`#f1eeee`): Light mode surface, subtle background
variation.
### Accent
- **Accent Blue** (`#007aff`): Primary accent, links, interactive highlights.
Apple system blue.
- **Accent Blue Hover** (`#0056b3`): Darker blue for hover states.
- **Accent Blue Active** (`#004085`): Deepest blue for pressed/active states.
### Semantic
- **Danger Red** (`#ff3b30`): Error states, destructive actions. Apple system
red.
- **Danger Hover** (`#d70015`): Darker red for hover on danger elements.
- **Danger Active** (`#a50011`): Deepest red for pressed danger states.
- **Success Green** (`#30d158`): Success states, positive feedback. Apple system
green.
- **Warning Orange** (`#ff9f0a`): Warning states, caution signals. Apple system
orange.
- **Warning Hover** (`#cc7f08`): Darker orange for hover on warning elements.
- **Warning Active** (`#995f06`): Deepest orange for pressed warning states.
### Text Scale
- **Text Muted** (`#6e6e73`): Muted labels, disabled text, placeholder content.
- **Text Secondary** (`#424245`): Secondary text on light backgrounds, captions.
### Border
- **Border Warm** (`rgba(15, 0, 0, 0.12)`): Primary border color, warm
transparent black with red tint.
- **Border Tab** (`#9a9898`): Tab underline border, 2px solid bottom.
- **Border Outline** (`#646262`): 1px solid outline border for containers.
## 3. Typography Rules
### Font Family
- **Universal**: `Berkeley Mono`, with fallbacks:
`IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace`
### Hierarchy
| Role | Size | Weight | Line Height | Notes |
| ----------- | -------------- | ------ | -------------- | --------------------------------- |
| Heading 1 | 38px (2.38rem) | 700 | 1.50 | Hero headlines, page titles |
| Heading 2 | 16px (1.00rem) | 700 | 1.50 | Section titles, bold emphasis |
| Body | 16px (1.00rem) | 400 | 1.50 | Standard body text, paragraphs |
| Body Medium | 16px (1.00rem) | 500 | 1.50 | Links, button text, nav items |
| Body Tight | 16px (1.00rem) | 500 | 1.00 (tight) | Compact labels, tab items |
| Caption | 14px (0.88rem) | 400 | 2.00 (relaxed) | Footnotes, metadata, small labels |
### Principles
- **One font, one voice**: Berkeley Mono is used exclusively. There is no
typographic variation between display, body, and code -- everything speaks in
the same monospace register. Hierarchy is achieved through size and weight
alone.
- **Weight as hierarchy**: 700 for headings, 500 for interactive/medium
emphasis, 400 for body text. Three weight levels create the entire hierarchy.
- **Generous line-height**: 1.50 as the standard line-height gives text room to
breathe within the monospace grid. The relaxed 2.00 line-height on captions
creates clear visual separation.
- **Tight for interaction**: Interactive elements (tabs, compact labels) use
1.00 line-height for dense, clickable targets.
## 4. Component Stylings
### Buttons
**Primary (Dark Fill)**
- Background: `#201d1d` (OpenCode Dark)
- Text: `#fdfcfc` (OpenCode Light)
- Padding: 4px 20px
- Radius: 4px
- Font: 16px Berkeley Mono, weight 500, line-height 2.00 (relaxed)
- Outline: `rgb(253, 252, 252) none 0px`
- Use: Primary CTAs, main actions
### Inputs
**Email Input**
- Background: `#f8f7f7` (light neutral)
- Text: `#201d1d`
- Border: `1px solid rgba(15, 0, 0, 0.12)`
- Padding: 20px
- Radius: 6px
- Font: Berkeley Mono, standard size
- Use: Form fields, email capture
### Links
**Default Link**
- Color: `#201d1d`
- Decoration: underline 1px
- Font-weight: 500
- Use: Primary text links in body content
**Light Link**
- Color: `#fdfcfc`
- Decoration: none
- Use: Links on dark backgrounds, navigation
**Muted Link**
- Color: `#9a9898`
- Decoration: none
- Use: Footer links, secondary navigation
### Tabs
**Tab Navigation**
- Border-bottom: `2px solid #9a9898` (active tab indicator)
- Font: 16px, weight 500, line-height 1.00
- Use: Section switching, content filtering
### Navigation
- Clean horizontal layout with Berkeley Mono throughout
- Brand logotype left-aligned in monospace
- Links at 16px weight 500 with underline decoration
- Dark background matching page background
- No backdrop blur or transparency -- solid surfaces only
### Image Treatment
- Terminal/code screenshots as hero imagery
- Dark terminal aesthetic with monospace type
- Minimal borders, content speaks for itself
### Distinctive Components
**Terminal Hero**
- Full-width dark terminal window as hero element
- ASCII art / stylized logo within terminal frame
- Monospace command examples with syntax highlighting
- Reinforces the CLI-first identity of the product
**Feature List**
- Bulleted feature items with Berkeley Mono text
- Weight 500 for feature names, 400 for descriptions
- Tight vertical spacing between items
- No cards or borders -- pure text layout
**Email Capture**
- Light background input (`#f8f7f7`) contrasting dark page
- Generous 20px padding for comfortable typing
- 6px radius -- the roundest element in the system
- Newsletter/waitlist pattern
## 5. Layout Principles
### Spacing System
- Base unit: 8px
- Fine scale: 1px, 2px, 4px (sub-8px for borders and micro-adjustments)
- Standard scale: 8px, 12px, 16px, 20px, 24px
- Extended scale: 32px, 40px, 48px, 64px, 80px, 96px
- The system follows a clean 4/8px grid with consistent doubling
### Grid & Container
- Max content width: approximately 800-900px (narrow, reading-optimized)
- Single-column layout as the primary pattern
- Centered content with generous horizontal margins
- Hero section: full-width dark terminal element
- Feature sections: single-column text blocks
- Footer: multi-column link grid
### Whitespace Philosophy
- **Monospace rhythm**: The fixed-width nature of Berkeley Mono creates a
natural vertical grid. Line-heights of 1.50 and 2.00 maintain consistent
rhythm.
- **Narrow and focused**: Content is constrained to a narrow column, creating
generous side margins that focus attention on the text.
- **Sections through spacing**: No decorative dividers. Sections are separated
by generous vertical spacing (48-96px) rather than borders or background
changes.
### Border Radius Scale
- Micro (4px): Default for all elements -- buttons, containers, badges
- Input (6px): Form inputs get slightly more roundness
- The entire system uses just two radius values, reinforcing the utilitarian
aesthetic
## 6. Depth & Elevation
| Level | Treatment | Use |
| ------------------------ | -------------------------------- | ------------------------------------------------- |
| Flat (Level 0) | No shadow, no border | Default state for most elements |
| Border Subtle (Level 1) | `1px solid rgba(15, 0, 0, 0.12)` | Section dividers, input borders, horizontal rules |
| Border Tab (Level 2) | `2px solid #9a9898` bottom only | Active tab indicator |
| Border Outline (Level 3) | `1px solid #646262` | Container outlines, elevated elements |
**Shadow Philosophy**: OpenCode's depth system is intentionally flat. There are
no box-shadows in the extracted tokens -- zero shadow values were detected.
Depth is communicated exclusively through border treatments and background color
shifts. This flatness is consistent with the terminal aesthetic: terminals don't
have shadows, and neither does OpenCode. The three border levels (transparent
warm, tab indicator, solid outline) create sufficient visual hierarchy without
any elevation illusion.
### Decorative Depth
- Background color shifts between `#201d1d` and `#302c2c` create subtle surface
differentiation
- Transparent borders at 12% opacity provide barely-visible structure
- The warm reddish tint in border colors (`rgba(15, 0, 0, 0.12)`) ties borders
to the overall warm dark palette
- No gradients, no blurs, no ambient effects -- pure flat terminal aesthetic
## 7. Interaction & Motion
### Hover States
- Links: color shift from default to accent blue (`#007aff`) or underline style
change
- Buttons: subtle background lightening or border emphasis
- Accent blue provides a three-stage hover sequence: `#007aff` → `#0056b3` →
`#004085` (default → hover → active)
- Danger red: `#ff3b30` → `#d70015` → `#a50011`
- Warning orange: `#ff9f0a` → `#cc7f08` → `#995f06`
### Focus States
- Border-based focus: increased border opacity or solid border color
- No shadow-based focus rings -- consistent with the flat, no-shadow aesthetic
- Keyboard focus likely uses outline or border color shift to accent blue
### Transitions
- Minimal transitions expected -- terminal-inspired interfaces favor instant
state changes
- Color transitions: 100-150ms for subtle state feedback
- No scale, rotate, or complex transform animations
## 8. Responsive Behavior
### Breakpoints
| Name | Width | Key Changes |
| ------- | ---------- | ------------------------------------------------------------ |
| Mobile | <640px | Single column, reduced padding, heading scales down |
| Tablet | 640-1024px | Content width expands, slight padding increase |
| Desktop | >1024px | Full content width (~800-900px centered), maximum whitespace |
### Touch Targets
- Buttons with 4px 20px padding provide adequate horizontal touch area
- Input fields with 20px padding ensure comfortable mobile typing
- Tab items at 16px with tight line-height may need mobile adaptation
### Collapsing Strategy
- Hero heading: 38px → 28px → 24px on smaller screens
- Navigation: horizontal links → hamburger/drawer on mobile
- Feature lists: maintain single-column, reduce horizontal padding
- Terminal hero: maintain full-width, reduce internal padding
- Footer columns: multi-column → stacked single column
- Section spacing: 96px → 64px → 48px on mobile
### Image Behavior
- Terminal screenshots maintain aspect ratio and border treatment
- Full-width elements scale proportionally
- Monospace type maintains readability at all sizes due to fixed-width nature
## 9. Agent Prompt Guide
### Quick Color Reference
- Page background: `#201d1d` (warm near-black)
- Primary text: `#fdfcfc` (warm off-white)
- Secondary text: `#9a9898` (warm gray)
- Muted text: `#6e6e73`
- Accent: `#007aff` (blue)
- Danger: `#ff3b30` (red)
- Success: `#30d158` (green)
- Warning: `#ff9f0a` (orange)
- Button bg: `#201d1d`, button text: `#fdfcfc`
- Border: `rgba(15, 0, 0, 0.12)` (warm transparent)
- Input bg: `#f8f7f7`, input border: `rgba(15, 0, 0, 0.12)`
### Example Component Prompts
- "Create a hero section on `#201d1d` warm dark background. Headline at 38px
Berkeley Mono weight 700, line-height 1.50, color `#fdfcfc`. Subtitle at 16px
weight 400, color `#9a9898`. Primary CTA button (`#201d1d` bg with
`1px solid #646262` border, 4px radius, 4px 20px padding, `#fdfcfc` text at
weight 500)."
- "Design a feature list: single-column on `#201d1d` background. Feature name at
16px Berkeley Mono weight 700, color `#fdfcfc`. Description at 16px weight
400, color `#9a9898`. No cards, no borders -- pure text with 16px vertical gap
between items."
- "Build an email capture form: `#f8f7f7` background input,
`1px solid rgba(15, 0, 0, 0.12)` border, 6px radius, 20px padding. Adjacent
dark button (`#201d1d` bg, `#fdfcfc` text, 4px radius, 4px 20px padding).
Berkeley Mono throughout."
- "Create navigation: sticky `#201d1d` background. 16px Berkeley Mono weight 500
for links, `#fdfcfc` text. Brand name left-aligned in monospace. Links with
underline decoration. No blur, no transparency -- solid dark surface."
- "Design a footer: `#201d1d` background, multi-column link grid. Links at 16px
Berkeley Mono weight 400, color `#9a9898`. Section headers at weight 700.
Border-top `1px solid rgba(15, 0, 0, 0.12)` separator."
### Iteration Guide
1. Berkeley Mono is the only font -- never introduce a second typeface. Size and
weight create all hierarchy.
2. Keep surfaces flat: no shadows, no gradients, no blur effects. Use borders
and background shifts only.
3. The warm undertone matters: use `#201d1d` not `#000000`, use `#fdfcfc` not
`#ffffff`. The reddish warmth is subtle but essential.
4. Border radius is 4px everywhere except inputs (6px). Never use rounded pills
or large radii.
5. Semantic colors follow Apple HIG: `#007aff` blue, `#ff3b30` red, `#30d158`
green, `#ff9f0a` orange. Each has hover and active darkened variants.
6. Three-stage interaction: default → hover (darkened) → active (deeply
darkened) for all semantic colors.
7. Borders use `rgba(15, 0, 0, 0.12)` -- a warm transparent dark, not neutral
gray. This ties borders to the warm palette.
8. Spacing follows an 8px grid: 8, 16, 24, 32, 40, 48, 64, 80, 96px. Use 4px for
fine adjustments only.