Bun Design System
Bun's charcoal #282a36 canvas, one hot-pink #f472b6 accent, system-ui interface type and JetBrains Mono code. 20 components for React and AI tools.
- Primary color
- #f472b6
- Typeface
- system-ui
- Shape
- Sharp
- Base radius
- 4px
- Colors
- 20
- Type tokens
- 10
- Components
- 20
- Spacing values
- 7
About Bun DESIGN.md
Curated by Dov Azencot, updated May 14, 2026. Source bun.sh (opens in a new tab).
Bun’s site refuses the usual runtime aesthetic of a dark terminal lit by neon green. The fold opens on a charcoal #282a36 canvas, a flat, almost matte surface that feels more like a night‑sky than a console. A single 44‑pixel tall pill‑shaped button in hot pink #f472b6 dominates the hero, its 8px rounding and white border turning the call‑to‑action into a visual anchor that instantly tells you where to click. No gradient meshes, no illustrative hero graphics – just type, color, and a bold accent that says "this is the tool you run code with."
The palette is deliberately limited: a single saturated pink for emphasis, a deep charcoal for the main background, and a muted gray scale for supporting text. Where Stripe leans on an indigo gradient and Vercel opts for a matte black with subtle teal highlights, Bun chooses a binary contrast – dark canvas versus bright pink – to signal performance and speed. The brand’s own language talks about “fast all‑in‑one” and the visual restraint mirrors that promise, keeping the user’s eye on the code rather than decorative fluff.
For a designer or developer feeding this spec into a component library generator, the payoff is immediate. The system tells you exactly which token to use for every UI element – pink only lives on primary actions, white borders never change, and the code font is locked to JetBrains Mono. The one thing worth stealing is the disciplined use of a single accent color as a hierarchy marker; it lets you build a UI that feels fast, focused, and unmistakably Bun without drowning the page in unnecessary hues.
What makes it distinct
5 highlights
- Primary pink #f472b6Appears only on the main call‑to‑action button, the hero wordmark, and the navigation pill, never elsewhere.
- Ink #9ca3afServes as the default text color across headings, paragraphs and UI labels, providing high contrast on the dark canvas.
- Hairline #ffffffDefines every border, from input outlines to card dividers, keeping the visual language crisp without adding visual weight.
- Muted #e5e7ebUsed for secondary copy, code comments and subtle UI hints, ensuring a gentle hierarchy beneath the primary ink.
- Surface‑1 #14151aThe deepest background layer for modals and footers, creating a sense of depth without breaking the dark theme.
Live at bun.sh
Bun in production, as captured. Scroll the window to see the whole page.

20 colors
Bun's system runs on #f472b6 as its primary voltage, used in 4 of 20 components. Type is set in system-ui across 10 tokens from 12px to 18px, weights 400–600. Shape language is sharp — components average 0px corner radius, favoring crisp rectangles.
Brand & Accent
Sparing, CTA-only voltage · 8
Surface
Page and card backgrounds · 5
Text
Headlines, body, captions · 2
Borders & Hairlines
Dividers, outlines, rules · 1
Other
Specialty colors · 4
10 type tokens
Set in system-ui across 10 tokens, from 12px to 18px, weights 400–600. Shown in its own stack: where the font isn't installed, the fallback the file names stands in.
- body-sm14px · weight 400 · lh 20pxThe quick brown fox jumps over the lazy dog
- body-md16px · weight 600 · lh 24pxThe quick brown fox jumps over the lazy dog
- code-sm14px · weight 400 · lh 22.4pxThe quick brown fox jumps over the lazy dog
- code-md16px · weight 400 · lh 24pxThe quick brown fox jumps over the lazy dog
- heading-lg18px · weight 600 · lh 28pxThe quick brown fox jumps over the lazy dog
- heading-xl18px · weight 400 · lh 32pxThe quick brown fox jumps over the lazy dog
- caption14px · weight 500 · lh 20pxThe quick brown fox jumps over the lazy dog
- subheading16px · weight 500 · lh 24pxThe quick brown fox jumps over the lazy dog
- code-xs12px · weight 400 · lh 16pxThe quick brown fox jumps over the lazy dog
- code-sm213px · weight 400 · lh 20pxThe quick brown fox jumps over the lazy dog
Radii and spacing
4 corner radii and 7 spacing values. Shape language: sharp, on a 4px base radius.
Radii4
- full9999px
- lg8px
- md4px
- sm6px
Spacing7
- 00px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- xxl32px
20 components
Each rendered from its tokens (color, type, radius, padding) on Bun's own canvas.
- Primary ButtonPrimary Buttonprimary-button
- Nav LinkNav Linknav-link
- Hero HeadingHero Headinghero-heading
- Section TitleSection Titlesection-title
- Body TextBody Textbody-text
- BadgeBadgebadge
- PillPillpill
- Code BlockCode Blockcode-block
- InputInputinput
- CardCardcard
- ModalModalmodal
- TooltipTooltiptooltip
- FooterFooterfooter
- HeaderHeaderheader
- SidebarSidebarsidebar
- Alert SuccessAlert Successalert-success
- Alert ErrorAlert Erroralert-error
- Alert InfoAlert Infoalert-info
- Badge PinkBadge Pinkbadge-pink
- Badge PurpleBadge Purplebadge-purple
The system, in use
Bun's tokens on the kind of product it builds.
Plan, build and ship in one place
Bring your team's work together, from the first idea to the final release.
Bun design system FAQ
Bun's tokens, its components and how to use this DESIGN.md in your project.
What are the color tokens in the Bun DESIGN.md?
What is Bun's primary color hex code?
How do I use Bun's colors in Tailwind CSS?
Which colors dominate Bun’s UI and where are they applied?
What fonts does Bun use?
What is Bun's type scale?
What can I use if I don't have Bun's font?
What typefaces does Bun use for UI text versus code snippets?
Which components does the Bun DESIGN.md define?
What corner radius and spacing does Bun use?
How are border radii applied across Bun’s components?
What spacing values does Bun employ for layout and padding?
How do I apply the Bun design system to a shadcn/ui project?
How do I use the Bun DESIGN.md with Claude Code or Cursor?
Is the Bun DESIGN.md free to download?
How was the Bun DESIGN.md made?
Is the Bun DESIGN.md official?
Where does the pink #f472b6 appear in the site in the Bun design system?
Related reading
Specs, directories and component libraries that pair with this design system.
- Browse all design systemsThe full directory of DESIGN.md files on shadcn.io, with live mockups for each.shadcn.io
- Bun — official siteBun's public marketing site — the source of truth for the live tokens captured in this file.bun.sh (opens in a new tab)
- The DESIGN.md specificationGoogle Labs' open spec for machine-readable design system files — the format this page is built on.github.com (opens in a new tab)
Use Bun in your project
One machine-readable file. Drop it into Claude Code, Cursor, VS Code or any AI tool that reads DESIGN.md.
Download the DESIGN.md
One machine-readable file: every color, type, radius, spacing, and component token of Bun.
Feed it to your AI tool
Drop it into Claude, Cursor, or GitHub Copilot. The agent writes React components and Tailwind classes that match Bun's visual language.
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
Bun’s visual language hinges on a single accent that drives hierarchy. Pink‑pill hierarchy.
Where most JavaScript runtimes scatter brand colors across headers, footers, and icons, Bun concentrates its pink #f472b6 into a few high‑impact elements, letting the dark canvas dominate the rest of the experience. This restraint creates a clear signal path for users: pink means act now, gray means read, white means separate.
Key Characteristics:
- Dark charcoal canvas (#282a36) provides a high‑contrast stage for all content.
- Hot pink accent (#f472b6) appears only on primary actions and the hero wordmark.
- Ink gray (#9ca3af) serves as the default text color, balancing readability and mood.
- Pure white borders (#ffffff) define edges without adding visual weight.
- Muted gray (#e5e7eb) tones down secondary copy and code comments.
- Rounded corners follow a 4‑8‑9999px scale, giving pills a friendly feel.
- Spacing increments of 4px, 8px, 12px, 16px, 24px, 32px keep layout tight.
- System‑ui for UI text, JetBrains Mono for code, preserving developer focus.
- Surface layers (#14151a, #3b3f4b, #0d0e11) create depth for modals and footers.
- Accent reds and greens are reserved for alerts, never for decorative backgrounds.
Known Gaps
- No explicit dark‑mode toggle; the system assumes a single dark theme, limiting flexibility for light‑mode preferring users.
- Token documentation lacks visual swatches, requiring developers to manually map hex values to UI elements.
- The spacing token list includes composite values in the source data, but the spec only exposes pure values, leaving some original intent undocumented.
- Accessibility contrast for pink on dark background meets WCAG AA but falls short of AAA, which could be a concern for high‑visibility contexts.
- The design system does not expose a dedicated icon set, forcing teams to import external SVGs or font icons.
- No variant definitions for disabled states on buttons; designers must infer styling from existing tokens.
More systems like this
Adobe, Boursorama, Canva and 23 more in Design & Creative Tools: each brand's colors, type and components in one file your AI agent builds from.
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.
- 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.
- Cancel anytime
- Keep what you've shipped