Miro Design System
Miro's canary yellow #ffd02f and Roobert PRO type as one DESIGN.md: colors, typography and dozens of components for React, Next.js and AI tools.
- Primary color
- #1c1c1e
- Typeface
- Roobert PRO
- Shape
- Soft
- Base radius
- 8px
- Colors
- 40
- Type tokens
- 18
- Components
- 48
- Spacing values
- 12
About Miro DESIGN.md
Curated by Dov Azencot, updated May 12, 2026. Source miro.com (opens in a new tab).
Miro's design system frames the AI-powered visual workspace through one of the most confident brand-voltage choices in B2B SaaS: a single canary yellow ("#ffd02f") wordmark perched on a stark white canvas, then refused as a CTA. The dominant action everywhere is a black pill — "#1c1c1e" filled at fully rounded corners — and the live product carries the visual weight through real Miro-board mockup illustrations with sticky notes, kanban columns, and mind maps. Pastel feature cards in rose, teal, coral, and mint echo the actual sticky-note tints from inside the whiteboard, so the marketing language and the product language reinforce one another instead of drifting apart.
This page packages the full token system into a single DESIGN.md file built on the Google Labs spec. Inside: 40 colors tokens grouped into brand, surface, text, and semantic families; 18 typography tokens running Roobert PRO from the 80px hero display through 11px uppercase micro labels; 12 spacing values from 4px to a 120px hero band; 9 rounded-corner steps culminating in a 9999px pill; and 48 components covering buttons, pricing cards, comparison tables, whiteboard mockups, FAQ accordions, badges, and the dark multi-column footer.
Feed the file to Claude, Cursor, or GitHub Copilot and the AI will reproduce Miro's specific restraint — black pills not yellow, pastel cards not gradients, real product UI not stock photography — rather than a generic shadcn theme. Reference the tokens directly when wiring Tailwind config or CSS variables. The system is worth studying for one specific discipline: how a brand can own a loud signature color (canary yellow at "#ffd02f") and still keep it out of every primary action, letting black do the work and saving the voltage for the wordmark and the sticky-note tints.
What makes it distinct
5 highlights
- Reserved brand voltageCanary yellow #ffd02f confined to the wordmark, promo strip, and yellow-tag chips, never a primary CTA
- Black-pill primary CTAs#1c1c1e on rounded.full carries every dominant action across marketing, pricing, and AI Workflows pages
- Pastel feature cards at 28px cornersRose #ffd8f4, teal #c3faf5, coral #ffc6c6, yellow #ffd02f echo the live sticky-note palette
- Roobert PRO across 18 type tokens80px hero down to 11px micro labels, single-family typography with no 700 weight
- Massive 4-tier pricing into 80-row comparison tableFree / Starter / Business (featured lavender #f5f3ff) / Enterprise (dark canvas)
Live at miro.com
Miro in production, as captured. Scroll the window to see the whole page.

40 colors
Miro's system runs on #1c1c1e as its primary voltage, used in 14 of 48 components. Type is set in Roobert PRO across 18 tokens from 11px to 80px, weights 400–600. Shape language is soft — components average 17px corner radius, with no sharp interactive edges.
Brand & Accent
Sparing, CTA-only voltage · 11
Surface
Page and card backgrounds · 5
Text
Headlines, body, captions · 6
Borders & Hairlines
Dividers, outlines, rules · 3
Semantic
Status, errors, success, links · 1
Other
Specialty colors · 14
18 type tokens
Set in Roobert PRO across 18 tokens, from 11px to 80px, weights 400–600. Shown in its own stack: where the font isn't installed, the fallback the file names stands in.
- hero-display80px · weight 500 · lh 1.05 · tracking -2pxThe quick brown fox jumps over the lazy dog
- display-lg60px · weight 500 · lh 1.1 · tracking -1.5pxThe quick brown fox jumps over the lazy dog
- heading-148px · weight 500 · lh 1.15 · tracking -1pxThe quick brown fox jumps over the lazy dog
- heading-236px · weight 500 · lh 1.2 · tracking -0.5pxThe quick brown fox jumps over the lazy dog
- heading-328px · weight 500 · lh 1.25The quick brown fox jumps over the lazy dog
- heading-422px · weight 500 · lh 1.3The quick brown fox jumps over the lazy dog
- heading-518px · weight 500 · lh 1.4The quick brown fox jumps over the lazy dog
- subtitle18px · weight 400 · 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-md-medium16px · weight 500 · lh 1.5The quick brown fox jumps over the lazy dog
- body-sm14px · weight 400 · lh 1.5The quick brown fox jumps over the lazy dog
- body-sm-medium14px · weight 500 · lh 1.5The quick brown fox jumps over the lazy dog
- caption13px · weight 400 · lh 1.4The quick brown fox jumps over the lazy dog
- caption-bold13px · weight 600 · lh 1.4The quick brown fox jumps over the lazy dog
- micro12px · weight 500 · lh 1.4The quick brown fox jumps over the lazy dog
- micro-uppercase11px · weight 600 · lh 1.4 · tracking 0.5pxThe quick brown fox jumps over the lazy dog
- button-md14px · weight 500 · lh 1.3The quick brown fox jumps over the lazy dog
- stat-display64px · weight 500 · lh 1.1 · tracking -1.5pxThe quick brown fox jumps over the lazy dog
Radii and spacing
9 corner radii and 12 spacing values. Shape language: soft, on a 8px base radius.
Radii9
- xs4px
- sm6px
- md8px
- lg12px
- xl16px
- xxl20px
- xxxl28px
- feature32px
- full9999px
Spacing12
- xxs4px
- xs8px
- sm12px
- md16px
- lg20px
- xl24px
- xxl32px
- xxxl40px
- section-sm48px
- section64px
- section-lg96px
- hero120px
48 components
Each rendered from its tokens (color, type, radius, padding) on Miro's own canvas.
- Button PrimaryButton Primarybutton-primary
- Button Primary PressedButton Primary Pressedbutton-primary-pressed
- Button Primary DisabledButton Primary Disabledbutton-primary-disabled
- Button YellowButton Yellowbutton-yellow
- Button BlueButton Bluebutton-blue
- Button SecondaryButton Secondarybutton-secondary
- Button On DarkButton On Darkbutton-on-dark
- Button GhostButton Ghostbutton-ghost
- Button LinkButton Linkbutton-link
- Button Icon Circularbutton-icon-circular
- Card BaseCard Basecard-base
- Card FeatureCard Featurecard-feature
- Card Feature YellowCard Feature Yellowcard-feature-yellow
- Card Feature CoralCard Feature Coralcard-feature-coral
- Card Feature TealCard Feature Tealcard-feature-teal
- Card Feature RoseCard Feature Rosecard-feature-rose
- Card Customer StoryCard Customer Storycard-customer-story
- Card StatCard Statcard-stat
- Pricing CardPricing Cardpricing-card
- Pricing Card FeaturedPricing Card Featuredpricing-card-featured
- Pricing Card EnterprisePricing Card Enterprisepricing-card-enterprise
- Type here…Text Inputtext-input
- Type here…Text Input Focusedtext-input-focused
- Search PillSearch Pillsearch-pill
- Filter DropdownFilter Dropdownfilter-dropdown
- Pill TabPill Tabpill-tab
- Pill Tab ActivePill Tab Activepill-tab-active
- Toggle Monthly YearlyToggle Monthly Yearlytoggle-monthly-yearly
- Badge PromoBadge Promobadge-promo
- Badge Tag YellowBadge Tag Yellowbadge-tag-yellow
- Badge Tag PurpleBadge Tag Purplebadge-tag-purple
- Badge Tag CoralBadge Tag Coralbadge-tag-coral
- Badge SuccessBadge Successbadge-success
- Badge DiscountBadge Discountbadge-discount
- Promo BannerPromo Bannerpromo-banner
- Comparison TableComparison Tablecomparison-table
- Comparison RowComparison Rowcomparison-row
- Template CardTemplate Cardtemplate-card
- Whiteboard MockupWhiteboard Mockupwhiteboard-mockup
- Faq Accordion ItemFaq Accordion Itemfaq-accordion-item
- Logo Wall ItemLogo Wall Itemlogo-wall-item
- Hero Band MarketingHero Band Marketinghero-band-marketing
- Cta Banner DarkCta Banner Darkcta-banner-dark
- Industry TileIndustry Tileindustry-tile
- Capterra BadgeCapterra Badgecapterra-badge
- Footer RegionFooter Regionfooter-region
- Footer LinkFooter Linkfooter-link
- App Store BadgeApp Store Badgeapp-store-badge
The system, in use
Miro'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.
Miro design system FAQ
Miro's tokens, its components and how to use this DESIGN.md in your project.
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
- Miro homepageLive reference for the canary-yellow wordmark, black-pill CTAs, and pastel feature card system in production.miro.com (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 Miro 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 Miro.
Feed it to your AI tool
Drop it into Claude, Cursor, or GitHub Copilot. The agent writes React components and Tailwind classes that match Miro'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
Miro positions itself as the AI-powered visual workspace through a confident, slightly playful brand voice. The homepage opens with a stark white canvas anchored by a small canary-yellow Miro wordmark in the top-left, a black-pill primary CTA "Get started free" and a secondary "Book a demo" outline pill — then dramatic real-Miro-board mockup imagery (sticky notes, kanban, mind maps) carries the visual weight. Across deeper surfaces, the system breaks open: pastel feature cards (rose, teal, coral, yellow) echo the actual sticky-note color palette of the live whiteboard product, and customer story cards reuse those tints to differentiate brand vignettes.
Roobert PRO — Miro's custom display face — anchors every typographic surface, from the 80px hero display down to 11px micro labels. The face's slightly rounded, geometric character pairs naturally with the playful product photography and the friendly product positioning. Black-pill primary buttons ({rounded.full}) dominate marketing CTAs; the brand color, signature canary yellow ({colors.brand-yellow}), is reserved for the wordmark, top promo banners, and "yellow tag" feature pills — never as a primary CTA. The 4-tier pricing comparison (Free / Starter / Business / Enterprise) leads into the densest surface in the system: a feature comparison table that runs ~80 rows deep across multiple section dividers.
Key Characteristics:
- Stark white canvas + Miro wordmark in canary yellow ({colors.brand-yellow}) as the recognizable opening signature
- Black-pill primary CTAs ({colors.primary} +
{rounded.full}) as the dominant interactive element - Pastel feature cards (yellow, rose, coral, teal, mint) that echo the actual sticky-note palette
- Roobert PRO across every UI surface; geometric, slightly rounded character
- Real Miro-board mockup imagery used as feature illustrations
- 4-tier pricing card grid + dense feature comparison table
- Massive dark footer ({colors.footer-bg}) with multi-column links + app-store badges
Known Gaps
- Specific dark-mode token values not surfaced
- Animation/transition timings not extracted; recommend 150–200ms ease
- Form validation success state not explicitly captured beyond defaults
- Sticky note color tints inside the actual whiteboard product are richer than what marketing surfaces capture
More systems like this
Airtable, Amie, Anytype and 50 more in Productivity & SaaS: 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.
Billing
Billed once a year in USD. Cancel anytime.
- How many people can use the license.
- Client work, SaaS products and anything you charge for.
- Page sections in 56 categories, from heroes and pricing tables to dashboards and settings, on every framework and UI library, in your theme.
- Complete Next.js sites for startups, SaaS, agencies and portfolios, every page designed, ready to ship.
- 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.
- Buttons with motion and states of their own, from an arrow that slides in to a burst of confetti.
- Typewriters, scrambles, counters and more, for headlines, labels and numbers.
- Animated backgrounds for heroes, sections and cards, from a soft aurora to a flock that flees the cursor. Most are pure CSS.
- WebGPU shaders, from a slow aurora to a black hole, each drawing only while it's on screen.
- One design and one theme on all four: the components, blocks and effects are built for each framework.
- 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.
- From a button to a date picker, a color picker or a guided tour: accessible, typed in TypeScript, each with live demos.
- Real-world patterns built from the components, in 53 galleries: forms, tables, menus, dialogs and more.
- Area, bar, line, pie, radar and radial charts on TanStack Charts, on every framework. React also gets the Recharts originals.
- Debounce, local storage, media queries and more: each hook is one typed file you own.
- From 222 libraries, Lucide, Heroicons, Tabler and Material Symbols among them, as SVG or a React component in one command.
- Stripe, Linear, Apple and 497 more: a brand's colors, typography and components in one file your AI agent builds from.
- Restyle every component and block at once: 8 styles, 8 grays, 18 colors and 5 radii, shared as a shadcn preset code.
- Priority requests are answered first.
Individual
For personal projects & open source
$32instead of $49/mo
$389 billed yearly
- Seats: 1 seat
- Commercial use: Personal & open source only
- Blocks: All 6,181 blocks
- Templates: All 14 templates
- MCP server: 38 AI clients
- Animated buttons: All 35 buttons
- Text effects: All 97 effects
- Backgrounds: All 100 backgrounds
- Shaders: All 100 shaders
- Frameworks: React, Vue, Svelte, Solid
- UI libraries: Base UI, Radix, Aria, Ark
- Components: All 174 components
- Examples: All 1,103 examples
- Charts: All 70 charts
- React hooks: All 35 hooks
- Icons: 294k+ icons
- DESIGN.md files: All 500 brands
- Theme builder: 8 styles × 18 colors
- Support: Standard
Team
Most popularFor freelancers, agencies & startups
$66instead of $99/mo
$789 billed yearly · ≈ $13/dev/mo
- Seats: Up to 5 seats
- Commercial use: Included
- Blocks: All 6,181 blocks
- Templates: All 14 templates
- MCP server: 38 AI clients
- Animated buttons: All 35 buttons
- Text effects: All 97 effects
- Backgrounds: All 100 backgrounds
- Shaders: All 100 shaders
- Frameworks: React, Vue, Svelte, Solid
- UI libraries: Base UI, Radix, Aria, Ark
- Components: All 174 components
- Examples: All 1,103 examples
- Charts: All 70 charts
- React hooks: All 35 hooks
- Icons: 294k+ icons
- DESIGN.md files: All 500 brands
- Theme builder: 8 styles × 18 colors
- Support: Priority
Organization
For companies with larger teams
$132instead of $199/mo
$1,589 billed yearly
- Seats: Unlimited seats
- Commercial use: Included
- Blocks: All 6,181 blocks
- Templates: All 14 templates
- MCP server: 38 AI clients
- Animated buttons: All 35 buttons
- Text effects: All 97 effects
- Backgrounds: All 100 backgrounds
- Shaders: All 100 shaders
- Frameworks: React, Vue, Svelte, Solid
- UI libraries: Base UI, Radix, Aria, Ark
- Components: All 174 components
- Examples: All 1,103 examples
- Charts: All 70 charts
- React hooks: All 35 hooks
- Icons: 294k+ icons
- DESIGN.md files: All 500 brands
- Theme builder: 8 styles × 18 colors
- Support: Priority
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 popularFor 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.
- Cancel anytime
- Keep what you've shipped