✦ Introducing MCP for React

Build, test & document components

Storybook is a frontend workshop for building UI components and pages in isolation. Thousands of teams use it for UI development, testing, and documentation. It is open source and free.

Get Started npm create storybook@latest 📋
80.23mInstalls per month
2282Contributors
Version10
←→↻ localhost:6006
CanvasDocsControlsInteractions
NameDescriptionDefaultControls
description*description paragraph
productTitle*Button label
paddinginner spacing16
selectedColorswatch selectionWhite
VS Code★ EUGitHubairbnbmoz://amonday.comBBC
Controls

Every control is a pill

Primary 48px Primary — hover Copy command 48px Outline 32px White nav 32px Disabled
Search docs… Focused — #029cfd ✦ Announcement badge Chip Active chip

Controls run 32px in the nav and 48px in the hero, all at 9999px radius. The primary is a solid #ffffff pill with #000000 ink; outline pills carry a 1px #4d4d4d hairline. The brand hues never fill a button — they live entirely in the background aurora. Hover is a fill or colour shift over 150ms cubic-bezier(.4,0,.2,1); focus borders in #029cfd.

Typography

Nunito Sans, two weights, normal tracking

Hero h1 · Nunito Sans · 56/70 (1.25) · 700 · normalBuild, test & document
Section h2 · Nunito Sans · 56/70 (1.25) · 700 · normalDevelop durable user interfaces
Card h3 · Nunito Sans · 24/32 (1.33) · 700 · normalBuild UI components in isolation
Body · Nunito Sans · 16/28 (1.75) · 400 · normalStorybook is a frontend workshop for building UI in isolation.
Nav / control · Nunito Sans · 16 · 500 · normalDocs · Addons · Showcase · Blog
Primary CTA · Nunito Sans · 16 · 700 · normalGet Started
Badge · Nunito Sans · 12 · 400 · normalIntroducing MCP for React
Muted body · Nunito Sans · 16/28 · 400 · #94a3b8Installs per month · Contributors
Palette

Colour is atmosphere, not signal

Text
primary#ffffff
inverse#000000
muted slate#94a3b8
muted zinc#a1a1aa
muted#999999
faint zinc#71717a
faint slate#64748b
faint blue#76828b
Surfaces
ground#0d1026
deep ground#020617
black#000000
white#ffffff
zinc fill#e4e4e7
cool white#f7f9fc
dark fill#333333
dark fill 2#52525b
Borders
control#4d4d4d
UI hairline#d9e0e6
dark hairline#3f3f46
active#029cfd
Brand hues — the aurora set (background only)
pink#ff4785
blue#1ea7fd
periwinkle#4791ff
orange#fc511f
amber#ffae00
purple#6f2cac
error#ef4444
Background recipes
radial-gradient(closest-side,#ff4785,transparent) + texture.svg
radial-gradient(closest-side,#4791ff,transparent) + texture.svg
radial-gradient(100% 100%, rgba(30,167,253,0), #1ea7fd)
conic-gradient(from 338.953deg,#4791ff,#ff4785,#4791ff) under a .7 black scrim
linear-gradient(#0d1026 90%, rgba(13,16,38,.1)) section fade
Depth & motion

No shadows. Depth is light and grain.

2px
4px
6px
8px
6px 6px 0 0 chrome
0 0 6px 6px body
9999px pill
50% dot
ground #0d1026
deep ground #020617
aurora blob + grain
1px #4d4d4d hairline

The computed shadow census returns a single fully-transparent stack across all 37 elements — there is not one drop shadow on the page. Depth comes from aurora falloff, the shared grain texture and 1px hairlines. Motion sits in a narrow band on the Material standard curve: color, background-color 150ms cubic-bezier(.4,0,.2,1) on 21 elements, plus all 200ms and all 300ms on the same curve for chrome.