Skip to content

OpenCode Design System

OpenCode's terminal-flavored look as a DESIGN.md: Berkeley Mono everywhere, #fdfcfc cream canvas and #201d1d ink, with components for React and AI tools.

Primary color
#201d1d
Typeface
Berkeley Mono
Shape
Sharp
Base radius
4px
Colors
28
Type tokens
8
Components
21
Spacing values
8

About OpenCode DESIGN.md

Curated by Dov Azencot, updated May 12, 2026. Source opencode.ai (opens in a new tab).

OpenCode's marketing site reads like a manpage. The hero headline at 38px sits in the same Berkeley Mono face as the 14px footer fine print, the bullets are bracketed ASCII markers (`[+]`, `[-]`, `[x]`), and the wordmark in the primary nav is a block-pixel character grid rather than a vector logo. The entire visual moment in the system is a single dark TUI mockup near-black at #201d1d, with a Build command line, a model selector, and tab / ctrl-p keybinding hints. Everything else is flat-on-cream — no shadows, no gradients, no photography, no italic, no sans-serif. The brand identity is one font and one weight away from being a 1990s `whatis` page rendered at modern resolutions.

This page captures the full system as a DESIGN.md file. Inside the spec: 28 colors tokens (one cream canvas, one near-black ink, four neutral grays for body / mute / stone / ash, plus the full Apple HIG semantic ramp at #007aff / #ff3b30 / #ff9f0a / #30d158), 8 typography roles all on Berkeley Mono with weights 400 / 500 / 700, an 8-step spacing scale topped by 96px section rhythm, a two-value radius vocabulary at 4px and 0px, and 21 components entries covering buttons, inputs, the install snippet, the hero TUI mockup, and the ASCII-bullet list row. The format is the Google Labs DESIGN.md specification.

Feed the file to Claude Code, Cursor, or GitHub Copilot and the agent will generate React components that match OpenCode's restraint rather than a generic shadcn theme. Reference the tokens directly in Tailwind config or CSS variables — every hex and px value is a quoted entry you can paste. The system is worth studying because almost no marketing site commits to monospace this hard; the typographic discipline of "the marketing page is a man page" is the rarest thing in consumer-facing tooling.

What makes it distinct

5 highlights

  1. 100% Berkeley MonoEvery word on the page in one monospaced face, with no sans-serif fallback anywhere in the chrome
  2. Single warm cream canvas#fdfcfc carries every page body, with no gray section bands or surface alternation
  3. ASCII bracket markers[+], [-], [x] glyphs replace every icon and bullet, treating brackets as the only iconography
  4. One dark surface used once#201d1d hero TUI mockup is the entire visual moment, reserved as a narrative device
  5. Two-value radius vocabulary4px on interactive elements, 0px on every container, with no decorative rounding

Live at opencode.ai

OpenCode in production, as captured. Scroll the window to see the whole page.

OpenCode's website at opencode.ai

28 colors

OpenCode's system runs on #201d1d as its primary voltage, used in 1 of 21 components. Type is set in Berkeley Mono across 8 tokens from 14px to 38px, weights 400–700. Shape language is sharp — components average 2px corner radius, favoring crisp rectangles.

Brand & Accent

Sparing, CTA-only voltage · 4

Surface

Page and card backgrounds · 5

Text

Headlines, body, captions · 6

Borders & Hairlines

Dividers, outlines, rules · 2

Semantic

Status, errors, success, links · 4

Other

Specialty colors · 7

8 type tokens

Set in Berkeley Mono across 8 tokens, from 14px to 38px, weights 400–700. Shown in its own stack: where the font isn't installed, the fallback the file names stands in.

  • display-xl38px · weight 700 · lh 1.5The quick brown fox jumps over the lazy dog
  • heading-md16px · weight 700 · lh 1.5The quick brown fox jumps over the lazy dog
  • body-md16px · weight 400 · lh 1.5The quick brown fox jumps over the lazy dog
  • body-strong16px · weight 500 · lh 1.5The quick brown fox jumps over the lazy dog
  • body-tight16px · weight 500 · lh 1The quick brown fox jumps over the lazy dog
  • link-md16px · weight 400 · lh 1.5The quick brown fox jumps over the lazy dog
  • button-md16px · weight 500 · lh 2The quick brown fox jumps over the lazy dog
  • caption-md14px · weight 400 · lh 2The quick brown fox jumps over the lazy dog

Radii and spacing

3 corner radii and 8 spacing values. Shape language: sharp, on a 4px base radius.

Radii3

  • none0px
  • sm4px
  • full9999px

Spacing8

  • xxs1px
  • xs4px
  • sm8px
  • md12px
  • lg16px
  • xl24px
  • xxl32px
  • section96px

21 components

Each rendered from its tokens (color, type, radius, padding) on OpenCode's own canvas.

  • Button Primary
    Button Primarybutton-primary
  • Button Primary Active
    Button Primary Activebutton-primary-active
  • Button Secondary
    Button Secondarybutton-secondary
  • Button Tab
    Button Tabbutton-tab
  • Button Tab Active
    Button Tab Activebutton-tab-active
  • Button Disabled
    Button Disabledbutton-disabled
  • Badge News
    Badge Newsbadge-news
  • Type here…
    Text Inputtext-input
  • Type here…
    Text Input Focusedtext-input-focused
  • Textarea
    Textareatextarea
  • Install Snippet
    Install Snippetinstall-snippet
  • Hero Tui Mockup
    Hero Tui Mockuphero-tui-mockup
  • Tui Prompt Row
    Tui Prompt Rowtui-prompt-row
  • List Row
    List Rowlist-row
  • Faq Row
    Faq Rowfaq-row
  • Testimonial Row
    Testimonial Rowtestimonial-row
  • Chart Tile
    Chart Tilechart-tile
  • Primary Nav
    Primary Navprimary-nav
  • Footer Section
    Footer Sectionfooter-section
  • Link Inline
    Link Inlinelink-inline
  • Badge Section Label
    Badge Section Labelbadge-section-label

The system, in use

OpenCode's tokens on the kind of product it builds.

Marketing heroThe homepage: its nav, a headline and the main call to action.
Sign up

The fastest way to build and ship software

Deploy from git in seconds, scale on demand and keep every environment in sync.

Start deployingRead the docs
A
Requests2.4M
Deployments148
Error rate0.08%
p95 latency182ms
RequestsLast 30 days

OpenCode design system FAQ

OpenCode's tokens, its components and how to use this DESIGN.md in your project.

Use OpenCode in your project

One machine-readable file. Drop it into Claude Code, Cursor, VS Code or any AI tool that reads DESIGN.md.

Download DESIGN.md
  1. Download the DESIGN.md

    One machine-readable file: every color, type, radius, spacing, and component token of OpenCode.

  2. Feed it to your AI tool

    Drop it into Claude, Cursor, or GitHub Copilot. The agent writes React components and Tailwind classes that match OpenCode's visual language.

  3. Reference the tokens directly

    Or paste the values into your Tailwind config, CSS variables, or component library: every color, size and radius is a quoted, ready-to-copy value.

Read the full DESIGN.md overview, rationale, do’s and don’ts

Overview

OpenCode's marketing site is rendered entirely in Berkeley Mono — every word on the page, from the 38px hero headline down to the 14px footer fine print, sits in the same monospaced face. The visual identity comes from that single typographic decision: the page reads like a manpage or a static-site README, complete with bracketed [+] / [-] / [x] ASCII markers used in place of icons or bullets, and a wordmark rendered as block-pixel ASCII art at the top of the nav. There is no sans-serif anywhere, no display face, no italics, no decorative ornament — the system is one font and one weight away from being a 1990s whatis page rendered at modern resolutions.

The chrome is austere: warm cream canvas ({colors.canvas} — #fdfcfc with a faint blush), nearly-black ink ({colors.ink} — #201d1d), and a 4-tier neutral gray ladder for body, metadata, and disabled text. Cards don't exist as raised surfaces — sections are just hairline-bordered text blocks ({colors.hairline} 1px) sitting directly on the canvas with {spacing.section} (96px) air between them. The single "visual" moment in the entire system is a full-bleed dark hero card ({colors.surface-dark} — true near-black) that mocks up the OpenCode TUI itself: a terminal frame with tab / ctrl-p keybinding hints, a "Build" command line, and the OpenCode wordmark rendered as a pixel-block ASCII title.

The semantic palette is unusual for a brand-marketing site: it ships the full Apple Human Interface Guidelines accent ramp — {colors.accent} (Apple Blue #007aff), {colors.danger} (#ff3b30), {colors.warning} (#ff9f0a), {colors.success} (#30d158) plus their hover/active deepenings — even though the marketing surfaces themselves only use these colors in the dark hero TUI mockup as syntax-highlight stand-ins. The wider palette belongs to the in-product TUI; the marketing pages mostly stay in monochrome.

Key Characteristics:

  • 100% Berkeley Mono typography across every text role — no sans-serif fallback anywhere in the chrome
  • Warm cream {colors.canvas} ("#fdfcfc") as the only body background — no surface alternation across sections
  • Single dark surface ({colors.surface-dark} — "#201d1d") reserved exclusively for the hero TUI mockup
  • 4px radius ({rounded.sm}) on every interactive element; sections themselves are sharp rectangles bordered in 1px hairline
  • ASCII bracket markers ([+], [-], [x]) used as bullet glyphs in feature lists and FAQ rows
  • Block-pixel ASCII wordmark in the primary nav and inside the hero TUI — the brand identity is its own ASCII art
  • 96px {spacing.section} rhythm between every section, with no decorative dividers; only thin 1px {colors.hairline} rules separate content blocks

Known Gaps

  • Mobile screenshots not captured — responsive behavior synthesizes OpenCode's mobile pattern (hamburger drawer, single-column, footer accordion) from desktop evidence and the breakpoint stack.
  • Hover states not documented by system policy.
  • In-product TUI screenshots beyond the marketing hero mockup are not in the captured set; the actual opencode terminal interface (full keybindings, panels, status bar) is not documented here.
  • /go page not extracted — the marketing page for the Go SDK likely shares the same chrome but introduces code-sample blocks not documented above.
  • Form validation state styling (success / error inline messages) not present in the captured surfaces.

Build it with Pro

The DESIGN.md files are free. Pro adds 6,000+ blocks, premium templates and the MCP server, so your AI editor builds in your system for you.

4.9/5 out of 5 · 150+ reviewsfrom 150+ founders and developers.

Billed once a year in USD. Cancel anytime.

Individual

For personal projects & open source

$32instead of $49/mo

$389 billed yearly

  • How many people can use the license.Seats: 1 seat
  • Client work, SaaS products and anything you charge for.Commercial use: Personal & open source only
  • Page sections in 56 categories, from heroes and pricing tables to dashboards and settings, on every framework and UI library, in your theme.Blocks: All 6,181 blocks
  • Complete Next.js sites for startups, SaaS, agencies and portfolios, every page designed, ready to ship.Templates: All 14 templates
  • Your AI agent searches, previews and installs any component, block, icon or DESIGN.md from a prompt: 22 tools in Claude Code, Cursor, VS Code and 35 more clients.MCP server: 38 AI clients
  • Buttons with motion and states of their own, from an arrow that slides in to a burst of confetti.Animated buttons: All 35 buttons
  • Typewriters, scrambles, counters and more, for headlines, labels and numbers.Text effects: All 97 effects
  • Animated backgrounds for heroes, sections and cards, from a soft aurora to a flock that flees the cursor. Most are pure CSS.Backgrounds: All 100 backgrounds
  • WebGPU shaders, from a slow aurora to a black hole, each drawing only while it's on screen.Shaders: All 100 shaders
  • One design and one theme on all four: the components, blocks and effects are built for each framework.Frameworks: React, Vue, Svelte, Solid
  • React on Base UI, Radix UI, React Aria or Ark UI: install the version for the library your project already uses. Vue, Svelte and Solid run on Ark UI.UI libraries: Base UI, Radix, Aria, Ark
  • From a button to a date picker, a color picker or a guided tour: accessible, typed in TypeScript, each with live demos.Components: All 174 components
  • Real-world patterns built from the components, in 53 galleries: forms, tables, menus, dialogs and more.Examples: All 1,103 examples
  • Area, bar, line, pie, radar and radial charts on TanStack Charts, on every framework. React also gets the Recharts originals.Charts: All 70 charts
  • Debounce, local storage, media queries and more: each hook is one typed file you own.React hooks: All 35 hooks
  • From 222 libraries, Lucide, Heroicons, Tabler and Material Symbols among them, as SVG or a React component in one command.Icons: 294k+ icons
  • Stripe, Linear, Apple and 497 more: a brand's colors, typography and components in one file your AI agent builds from.DESIGN.md files: All 500 brands
  • Restyle every component and block at once: 8 styles, 8 grays, 18 colors and 5 radii, shared as a shadcn preset code.Theme builder: 8 styles × 18 colors
  • Priority requests are answered first.Support: Standard

Team

Most popular

For freelancers, agencies & startups

$66instead of $99/mo

$789 billed yearly · ≈ $13/dev/mo

Everything in Individual, plus

  • How many people can use the license.Seats: Up to 5 seats
  • Client work, SaaS products and anything you charge for.Commercial use: Included
  • Priority requests are answered first.Support: Priority

Organization

For companies with larger teams

$132instead of $199/mo

$1,589 billed yearly

Everything in Team, plus

  • How many people can use the license.Seats: Unlimited seats
  • Secure checkout via Stripe
  • Code lives in your repo
  • Keep what you've shipped if you cancel
  • License terms

4.9 out of 5 from 150+ developers

Your system, built for you

Every block, template and icon, installed by your AI agent in your design system. The DESIGN.md files stay free.

Get Pro
  • Cancel anytime
  • Keep what you've shipped