Skip to content

Starbucks Design System

Starbucks design system as a DESIGN.md file. Green Accent #00754A, SoDoSans, four green tiers, 30+ components. For React, Next.js, and AI tools.

Add shadcn.io to your AI agent. · Pro It installs blocks, icons and templates in your design system from a prompt, with Pro.

Set up MCP
Primary
#006241
Typeface
SoDoSans
Shape
Soft
Base radius
0px
Colors
23
Type tokens
12
Components
34
Spacing values
12

About

About Starbucks DESIGN.md

Curated by Dov Azencot · Updated May 12, 2026 · Source starbucks.com (opens in a new tab)

Starbucks runs one of the most disciplined retail design systems online. Every surface wears the green of the storefront apron, but never as a single "brand green" — there are four calibrated tiers (Starbucks #006241 for headings, Green Accent #00754A for CTAs, House Green #1E3932 for deep feature bands, Green Uplift #2b5148 for decorative). The canvas is not white. It is a warm-neutral cream (#f2f0eb) or a slightly darker ceramic (#edebe9) that references real café materials — paper napkins, café walls, wood finishes. Gold (#cba258) shows up only around Rewards-status ceremony. The product feels like clean café signage: confident, warm, legible, never shouting.

This DESIGN.md file packages the whole system into one machine-readable spec. Inside: roughly 23 colors tokens grouped by role (primary, secondary, surface, neutral, semantic, alpha ladders), 11 typography tokens running on SoDoSans with tight `-0.16px` tracking across the board, a rem-based spacing scale anchored at 1.6rem (16px) stepping to 6.4rem (64px), a universal 50px pill radius for buttons plus 12px for cards, and over 34 components — from the standard pill button family to the signature floating Frap circular order CTA, the dark-green feature bands, the Rewards status cards, and the full PDP component cluster (size selector, milk select, numeric stepper, Customize pill, gold-outlined Rewards Cost Pill).

Feed the file to Claude, Cursor, or GitHub Copilot and the agent will reproduce Starbucks' restraint — the four-green discipline, the cream canvas, the universal 50px pill, the `scale(0.95)` press — rather than a generic shadcn theme. Or reference tokens directly: every hex, font, radius, and spacing value is a quoted value you can paste into Tailwind config or CSS variables. The reason this system is worth studying is the four-tier color discipline: most brands ship one "brand color" and call it done. Starbucks ships four greens, each with a defined surface role, and the difference is visible on every screen.

What makes it distinct

5

  1. Four-tier green systemStarbucks #006241, Accent #00754A, House #1E3932, Uplift #2b5148 each mapped to a distinct surface role
  2. Warm cream canvas (#f2f0eb / #edebe9) instead of pure whitereferences café paper napkins and wood finishes
  3. Universal 50px full-pill buttons with `scale(0.95)` active press as the signature micro-interaction
  4. Floating Frap circular CTA at 56px (Green Accent #00754A)the product's signature elevation moment, layered shadow stack
  5. Gold (#cba258) reserved exclusively for Rewards-status ceremonynever a general-purpose accent

starbucks.com

Live at starbucks.com

A snapshot of the brand in production. Scroll the frame to see the whole page.

Starbucks's website at starbucks.com

Colors

23 colors

Starbucks's system runs on #006241 as its primary voltage, used in 1 of 34 components. Type is set in SoDoSans across 12 tokens from 13px to 80px, weights 400–600. Shape language is soft — components average 29px corner radius, with no sharp interactive edges.

Text

Headlines, body, captions · 4

Borders & Hairlines

Dividers, outlines, rules · 2

Semantic

Status, errors, success, links · 1

Other

Specialty colors · 16

Typography

12 type tokens

Set in SoDoSans across 12 tokens, from 13px to 80px, weights 400–600. Shown in its own stack: where the font isn't installed, the fallback the file names stands in.

  • display-1080px · weight 600 · lh 1.2 · tracking -0.16pxThe quick brown fox jumps over the lazy dog
  • jumbo-958px · weight 600 · lh 1.2 · tracking -0.16pxThe quick brown fox jumps over the lazy dog
  • hero-large-845px · weight 600 · lh 1.2 · tracking -0.16pxThe quick brown fox jumps over the lazy dog
  • h124px · weight 600 · lh 36px · tracking -0.16pxThe quick brown fox jumps over the lazy dog
  • h224px · weight 400 · lh 36px · tracking -0.16pxThe quick brown fox jumps over the lazy dog
  • body-large19px · weight 400 · lh 33.25px · tracking -0.16pxThe quick brown fox jumps over the lazy dog
  • body-316px · weight 400 · lh 24px · tracking -0.01emThe quick brown fox jumps over the lazy dog
  • small-214px · weight 600 · lh 1.5 · tracking -0.01emThe quick brown fox jumps over the lazy dog
  • micro-113px · weight 400 · lh 1.5 · tracking -0.01emThe quick brown fox jumps over the lazy dog
  • button-label16px · weight 600 · lh 1.2 · tracking -0.01emThe quick brown fox jumps over the lazy dog
  • rewards-serif45px · weight 400 · lh 1.2 · tracking -0.16pxThe quick brown fox jumps over the lazy dog
  • careers-script24px · weight 400 · lh 1.2The quick brown fox jumps over the lazy dog

Layout

Radii and spacing

5 corner radii and 12 spacing values. Shape language: soft.

Radii

  • none0px
  • xs4px
  • card12px
  • pill50px
  • full50%

Spacing

  • space-14px
  • space-28px
  • space-316px
  • space-424px
  • space-532px
  • space-640px
  • space-748px
  • space-856px
  • space-964px
  • outer-gutter16px
  • outer-gutter-md24px
  • outer-gutter-lg40px

Components

34 components

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

  • Button Primary Filled
    button-primary-filledButton Primary Filled
  • Button Primary Outlined
    button-primary-outlinedButton Primary Outlined
  • Button Black Filled
    button-black-filledButton Black Filled
  • Button Dark Outlined
    button-dark-outlinedButton Dark Outlined
  • Button Green On Green Inverted
    button-green-on-green-invertedButton Green On Green Inverted
  • Button Outlined On Dark
    button-outlined-on-darkButton Outlined On Dark
  • Button Consent Agree
    button-consent-agreeButton Consent Agree
  • Button Frap Floating
    button-frap-floatingButton Frap Floating
  • Button Frap Mini
    button-frap-miniButton Frap Mini
  • Button Feedback Tab
    button-feedback-tabButton Feedback Tab
  • Card Default
    card-defaultCard Default
  • Card Gift
    card-giftCard Gift
  • Card Rewards Status
    card-rewards-statusCard Rewards Status
  • Card Partnership
    card-partnershipCard Partnership
  • Dropdown Menu
    dropdown-menuDropdown Menu
  • Modal
    modalModal
  • Floating Label Input
    floating-label-inputFloating Label Input
  • Option Icon
    option-iconOption Icon
  • Global Nav
    global-navGlobal Nav
  • Sub Nav
    sub-navSub Nav
  • Feature Band
    feature-bandFeature Band
  • Size Options Cup
    size-options-cupSize Options Cup
  • Add In Select
    add-in-selectAdd In Select
  • Numeric Stepper Button
    numeric-stepper-buttonNumeric Stepper Button
  • Button Customize
    button-customizeButton Customize
  • Button Add To Order
    button-add-to-orderButton Add To Order
  • Rewards Cost Pill
    rewards-cost-pillRewards Cost Pill
  • Product Description Band
    product-description-bandProduct Description Band
  • Nutrition Table Row
    nutrition-table-rowNutrition Table Row
  • Store Availability Selector
    store-availability-selectorStore Availability Selector
  • Pdp Breadcrumb
    pdp-breadcrumbPdp Breadcrumb
  • Back Chevron Link
    back-chevron-linkBack Chevron Link
  • Cookie Consent
    cookie-consentCookie Consent
  • Expander Accordion
    expander-accordionExpander Accordion

In use

The system, in use

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

Build something people actually use.

A short paragraph of marketing copy that previews how the brand's display tier and body tier read together. Two sentences is usually enough.

Get startedLearn more
Marketing heroHeadline, sub-copy, primary CTA — the universal homepage opener.

FAQ

Starbucks design system FAQ

Common questions about Starbucks's tokens, components, and how to use this DESIGN.md in your project.

Read next

Specs, directories, and component libraries that pair with this design system.

Use it

Use Starbucks in your project

One machine-readable file. Drop it into Claude, Cursor, 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 Starbucks.

  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 Starbucks'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

Starbucks is a warm, confident retail flagship design system that wears the green of the storefront apron across every surface. The canvas is not pure white — it alternates between a neutral-warm cream ({colors.neutral-warm} — #f2f0eb) and a slightly darker ceramic ({colors.ceramic} — #edebe9) that references actual store materials: paper napkins, café walls, wood finishes. The signature Starbucks Green ({colors.starbucks-green} — #006241) anchors the brand moment on hero bands, CTAs, and Rewards surfaces. The greens come in four calibrated tiers (Starbucks Green, Green Accent, House Green, Green Uplift), each mapped to a distinct surface role, and gold ({colors.gold} — #cba258) appears only around Rewards-status ceremony — never as a general accent.

Typography carries most of the brand voice. The proprietary SoDoSans typeface (custom to Starbucks) sits across nearly every surface with a tight -0.16px letter-spacing — it reads confident and friendly rather than severe. Two context-specific swaps live in the system: the Rewards page switches to a warm serif ("Lander Tall", "Iowan Old Style", Georgia) for specific headline moments, subtly echoing the nostalgic feel of a coffeehouse chalkboard, and the Careers pages use a handwritten script ("Kalam", "Comic Sans MS", cursive) for personal cup-name touches. Three typefaces, three contexts — the system is disciplined about when each appears.

The surfaces breathe through rounded geometry. Every button is a 50px full-pill ({rounded.pill}). Cards take a 12px rounded-rectangle ({rounded.card}). The "Frap" floating CTA — a 56px circular order button in Green Accent ({colors.green-accent} — #00754A) — is the product's signature depth move: it floats bottom-right with a layered shadow stack and compresses via scale(0.95) on press. Elevations are otherwise restrained — card shadows stay at a whispered 0.14 / 0.24 alpha, global nav gets a quiet three-layer shadow stack. The whole system feels like clean café signage: legible, warm, and never shouting.

Key Characteristics:

  • Four-tier green brand system ({colors.starbucks-green} / {colors.green-accent} / {colors.house-green} / {colors.green-uplift}) each mapped to a distinct surface role — not a single "brand green".
  • Gold ({colors.gold} — #cba258) reserved exclusively for Rewards-status ceremony; never a general-purpose accent.
  • Warm-neutral canvas ({colors.neutral-warm} — #f2f0eb / {colors.ceramic} — #edebe9) instead of cold white — references café materials.
  • Custom proprietary typeface (SoDoSans) with tight -0.16px letter-spacing as the universal voice.
  • Context-specific type swaps: serif (Lander Tall) for Rewards, script (Kalam) for Careers cup-names.
  • Full-pill buttons ({rounded.pill} — 50px radius) universal; transform: scale(0.95) active press is the signature micro-interaction.
  • Floating Frap circular CTA ({component.button-frap-floating} — 56px, Green Accent fill, layered shadow stack) — the product's signature elevation element.
  • Gift-card surfaces designed as photographed physical product — every card is a distinct illustrated photograph rather than a generated graphic.
  • 12px card radius ({rounded.card}) plus whisper-soft shadows keep content cards flat-plus-hint-of-lift.
  • Rem-based spacing scale anchored at 1.6rem / 16px ({spacing.space-3}), stepping to 6.4rem / 64px ({spacing.space-9}).
  • Color-block page rhythm: cream hero → white content sections → dark-green ({colors.house-green} — #1E3932) feature band with white text → cream utility zone → dark-green footer with gold and white text. An espresso-dark bookend around the bright body.

Colors

Primary Greens

  • Starbucks Green ({colors.starbucks-green} — #006241): The historic brand green. Used on h1 headings, primary section headers on the Rewards page, and as the main brand signal wherever a single dominant color is needed.
  • Green Accent ({colors.green-accent} — #00754A): A slightly brighter, more luminous green. The primary filled-CTA color ("Explore our afternoon menu", "See the spring menu") and the fill of the floating Frap circular button.
  • House Green ({colors.house-green} — #1E3932): The deep near-black brand green. Footer surface, feature-band backgrounds, Rewards-status dark surfaces, and the "Free coffee is just the beginning" hero band on Rewards.
  • Green Uplift ({colors.green-uplift} — #2b5148): A secondary mid-dark green used sparingly on decorative accents and dark-gradient moments.
  • Green Light ({colors.green-light} — #d4e9e2): A pale mint wash used for form-valid-state tints and light green utility surfaces.
  • Consent Green ({colors.consent-green} — #008248): A specific variant green used only in the cookie-consent module's Agree button.

Gold (Rewards only)

  • Gold ({colors.gold} — #cba258): Reserved almost exclusively for Rewards-status ceremony — Gold-tier callouts, partnership badges (SkyMiles, Bonvoy), and premium-feeling accents. Never a general-purpose brand color.
  • Gold Light ({colors.gold-light} — #dfc49d): Softer gold for background washes on gold-tier sections.
  • Gold Lightest ({colors.gold-lightest} — #faf6ee): Cream-gold page-surface wash used under partnership sections on the Rewards page — ties the gold accent back into the warm neutral system.

Surface & Background

  • White ({colors.white} — #ffffff): Primary card and modal surface. Also card fill on gift-card tiles.
  • Neutral Cool ({colors.neutral-cool} — #f9f9f9): Subtle cool-gray surface used on dropdown menus (Account dropdown), form-card wraps, and quiet utility containers.
  • Neutral Warm ({colors.neutral-warm} — #f2f0eb): The warm cream primary page canvas for Rewards utility zones and hero bands.
  • Ceramic ({colors.ceramic} — #edebe9): A slightly warmer/darker cream for zone separators, soft page-section washes, and the Rewards partnership band.
  • Black ({colors.black} — #000000): Deep ink reserved for the dark top-of-page CTA strip ("Join now") and high-contrast top-nav sign-in buttons.

Text

  • Text Black ({colors.text-black} — rgba(0, 0, 0, 0.87)): Primary heading and body text color on light surfaces. Not pure black — an 87%-opacity black that reads warmer.
  • Text Black Soft ({colors.text-black-soft} — rgba(0, 0, 0, 0.58)): Secondary / metadata text on light surfaces.
  • Text White ({colors.text-white} — rgba(255, 255, 255, 1)): Primary heading / body text on dark green surfaces.
  • Text White Soft ({colors.text-white-soft} — rgba(255, 255, 255, 0.70)): Secondary text on dark-green surfaces — footer link descriptions, caption text.
  • Rewards Green ({colors.rewards-green} — #33433d): A dedicated muted slate-green used only on Rewards-page text blocks — slightly "dustier" than Text Black to signal "reward surface" without using full Starbucks Green.

Semantic & Borders

  • Red ({colors.red} — #c82014): Error and destructive state (form invalid, destructive actions).
  • Yellow ({colors.yellow} — #fbbc05): Warning state, legacy brand touch.
  • Input Border ({colors.input-border} — #d6dbde): The default 1px outline color on form inputs and PDP Add-in selectors.
  • Hairline ({colors.hairline} — #e7e7e7): The 1px row divider used inside nutrition tables and long-form lists.

Typography

Font Family

The system runs SoDoSans for nearly every surface — Starbucks' proprietary corporate typeface licensed from House Industries. Fallbacks walk "Helvetica Neue", Helvetica, Arial, sans-serif. Two context-specific swaps exist: Lander Tall (with "Iowan Old Style", Georgia, serif fallback) for warm editorial moments on the Rewards page, and Kalam (with "Comic Sans MS", cursive fallback) for hand-written "cup name" touches on Careers pages.

There is no OpenType stylistic set explicitly activated at :root.

Hierarchy

TokenSizeWeightLine HeightLetter SpacingUse
{typography.display-10}80px6001.2-0.16pxLargest Rewards / hero display
{typography.jumbo-9}58px6001.2-0.16pxSecondary hero headings
{typography.hero-large-8}45px6001.2-0.16pxLanding section headlines
{typography.h1}24px60036px-0.16pxStarbucks-Green primary heading
{typography.h2}24px40036px-0.16pxRegular-weight section title in Text Black
{typography.body-large}19px40033.25px-0.16pxHero intro copy, feature-band body
{typography.body-3}16px40024px-0.01emDefault body copy
{typography.small-2}14px6001.5-0.01emButton label, metadata, form labels
{typography.micro-1}13px4001.5-0.01emActive float-label state, caption micro-copy
{typography.button-label}16px6001.2-0.01emAll pill-button labels
{typography.rewards-serif}45px4001.2-0.16pxLander Tall serif on Rewards editorial headlines
{typography.careers-script}24px4001.20Kalam script for Careers "cup name" moments

Principles

  • Tight negative tracking (-0.01em / -0.16px) is applied almost universally — the whole product reads slightly compressed, which gives SoDoSans its confident presence without feeling squeezed.
  • Weight shifts carry hierarchy, not size shifts. {typography.h1} and {typography.h2} share the same 24px / 36px size; only weight (600 vs 400) and color (Starbucks Green vs Text Black) separate them.
  • Size tokens are rem-based, anchored to 1rem = 10px on the live site via a font-size: 62.5% root trick. So 1.6rem = 16px, 2.4rem = 24px. The scale is semantic (textSize-1 through textSize-10), not arbitrary pixel values.
  • Context-specific typeface swaps — Lander Tall serif on Rewards, Kalam script on Careers — are deliberate and localized. Never mix them with the primary sans within the same surface.
  • Body text never goes pure black. It sits at {colors.text-black} (rgba(0, 0, 0, 0.87)) to match the warm-neutral canvas temperature.

Note on Font Substitutes

SoDoSans is proprietary to Starbucks (licensed from House Industries, not publicly available). Reasonable open-source substitutes are Inter (Google Fonts — similar humanist geometric proportions), Manrope (slightly rounder, similar confident feel), or Nunito Sans (warmer, good "café" feel). If substituting, verify the tight -0.01em / -0.16px tracking still reads well; some open-source fonts need -0.005em instead. Lander Tall is custom — substitute with Iowan Old Style, Lora, or Source Serif Pro. Kalam is available on Google Fonts directly.

Layout

Spacing System

Rem-based semantic scale anchored at 1rem = 10px:

  • Tokens: {spacing.space-1} 4px · {spacing.space-2} 8px · {spacing.space-3} 16px · {spacing.space-4} 24px · {spacing.space-5} 32px · {spacing.space-6} 40px · {spacing.space-7} 48px · {spacing.space-8} 56px · {spacing.space-9} 64px.
  • Outer gutter: {spacing.outer-gutter} 16px on mobile, {spacing.outer-gutter-md} 24px on tablet, {spacing.outer-gutter-lg} 40px on desktop.
  • Universal rhythm constant: 16px ({spacing.space-3}) appears across every page as the default outer gutter, card padding baseline, and text size 3 body — the system's most frequent spacing unit.

Grid & Container

  • Column widths: Small 343px, Medium 500px, Large 720px, XLarge 1440px.
  • Gift-card grid: 3-up to 5-up responsive grid of ~343px tiles.
  • Rewards status section: 3-up dark-green panels at lg+ breakpoints, stacking to single column on mobile.
  • Hero: asymmetric 40% (image) / 60% (content) split — image crate and content crate proportions.

Whitespace Philosophy

Whitespace carries the feeling of "plenty of space in the café." Section padding leans generous (40–64px). Content blocks are separated by whitespace rather than dividers. The cream canvas ({colors.neutral-warm} — #f2f0eb) is itself a visual breath between white cards and green feature bands.

Border Radius Scale

  • {rounded.card} (12px): Cards, modals, menu-item tiles.
  • 12px 12px 0 0: Full-width feedback tab (top-rounded only).
  • {rounded.pill} (50px): All buttons — full-pill radius without exception.
  • {rounded.full} (50%): Circular icons, Frap floating button, avatar thumbnails.
  • {rounded.xs} (4px): PDP Add-in select, Store Availability Selector.

Elevation

LevelTreatmentUse
Card0 0 0.5px rgba(0,0,0,0.14), 0 1px 1px rgba(0,0,0,0.24)Default content cards — a whisper-soft dual-shadow
Global Nav0 1px 3px rgba(0,0,0,0.1), 0 2px 2px rgba(0,0,0,0.06), 0 0 2px rgba(0,0,0,0.07)Triple-layer soft lift on the fixed top bar
Frap Base0 0 6px rgba(0,0,0,0.24)Base halo around the floating circular CTA
Frap Ambient0 8px 12px rgba(0,0,0,0.14)Stacked directional ambient — floats the Frap forward
Gift CardLight drop shadow around illustrated photographPhysical-card feel for gift tiles
Starbucks Card (SVC)drop-shadow(0 4px 1px rgba(0,0,0,0.11)) drop-shadow(0 0 2px rgba(0,0,0,0.24))Stacked SVG drop shadows on Starbucks Card visuals

Shadow philosophy: Whisper-soft, layered over solid — the system never reaches for a single heavy drop shadow. Instead, it stacks 2–3 low-alpha shadows with different offsets to simulate real-world ambient + direct lighting. The Frap button is the most elevated element on any page. There are no gradient fills — color-block banding carries perceived depth (dark-green bands read as "recessed feature zones" between cream / white body sections).

Components

Buttons

button-primary-filled — Green Accent ({colors.green-accent} — #00754A) fill, white text, 50px full-pill, 7px 16px padding, SoDoSans 16/600 with -0.01em letter-spacing. The most common CTA: "Explore our afternoon menu", "Sign up for free". Active state: transform: scale(0.95) with a 0.2s ease transition.

button-primary-outlined — Transparent fill, Green Accent text, 1px Green Accent border. Same pill / padding / active behavior as the filled variant. Used for "Give them a try", "Start an order".

button-black-filled — Black ({colors.black}) fill, white text, 50px pill. 14/600. Used on the top-of-page "Join now" strip and high-conversion moments.

button-dark-outlined — Transparent with Text Black border and Text Black label. 14/600. Used for "Sign in" in the top nav.

button-green-on-green-inverted — White fill with Green Accent text and white border. Used when the surface behind the button is the dark-green House Green band — white pill with green text instead of a green pill on green.

button-outlined-on-dark — Transparent fill with white text and white 1px border. Used on dark-green feature bands as the secondary action paired with a white filled CTA.

button-consent-agree — Consent Green ({colors.consent-green} — #008248) fill with white text, no border, 14/400. A slightly brighter green reserved for the cookie-consent banner's Agree action.

button-frap-floating — The product's signature elevation element. 56px circular Green Accent fill with white shopping-bag icon centered. Fixed bottom-right with a -0.8rem touch offset. Layered shadow: 0 0 6px rgba(0,0,0,0.24) base + 0 8px 12px rgba(0,0,0,0.14) ambient. Active state collapses the ambient shadow to 0 8px 12px rgba(0,0,0,0) with scale(0.95). A 40px mini variant (button-frap-mini) is used in tighter contexts.

button-feedback-tab — Full-width Green Accent tab pinned to the viewport bottom-right edge. Top-rounded only (12px 12px 0 0), 14/400 white text, 8px 16px padding.

Cards & Containers

card-default — White fill at 12px radius with the layered card shadow. Used for feature cards, menu-item tiles, and Rewards utility panels.

card-gift — A photographed illustrated card filling the entire surface (no solid background), grouped under a category label ("Spring", "Thank You", "Birthday") in SoDoSans 24/400 above the grid. Each card is a distinct hand-drawn watercolor — never a generic generated graphic.

card-rewards-status — A House Green ({colors.house-green} — #1E3932) panel with a colored gradient top stripe (Bronze / Silver / Gold tier), numbered "Level" badge, status title in SoDoSans 24/600 white, benefits list in white / translucent-white text, and a "As you earn more stars…" progression caption at the bottom.

card-partnership — Gold Lightest ({colors.gold-lightest} — #faf6ee) warm-cream surface with partner logos centered (SkyMiles, Bonvoy) and descriptive text below. Default 12px radius + card shadow.

dropdown-menu — Neutral Cool ({colors.neutral-cool} — #f9f9f9) surface with 24/400 Text Black menu items. No border — the background surface shift against the white nav carries the boundary.

modal — Default card shadow and 12px radius. 2.4rem padding with a heavier 8.8rem top padding to leave room for the close button / header. Combined vertical padding hits 11.2rem.

Forms

floating-label-input — White surface with a 1px Input Border ({colors.input-border} — #d6dbde) outline at 4px radius. Label floats above the input border when focused or filled — desktop label animates from 1.9rem → 1.4rem; mobile label animates from 1.6rem → 1.3rem. Active label translate: up to -12px with -50% Y. Validation: valid field gets a rgba(green-light, 0.33) tint, invalid field gets a rgba(red, 0.05) tint. Transition uses a springy cubic-bezier(0.32, 2.32, 0.61, 0.27) overshoot curve on checked inputs.

option-icon — Checkbox / radio with 3px inner padding, using the same springy cubic-bezier on selection.

Navigation

global-nav — Fixed top bar with progressive heights: 64px (xs) → 72px (mobile) → 83px (tablet) → 99px (desktop). Three-layer soft shadow stack. Left: Starbucks wordmark, offset 99px (md) / 131px (lg) from the left edge. Center: primary links in SoDoSans 400–600 (Menu · Rewards · Gift Cards). Right: Find a store link + Sign in (outlined) + Join now (black filled).

sub-nav — A second bar (e.g., Rewards internal). 53px height for global subnav, 48px for internal subnav. Horizontal tab group beneath the global nav.

Feature Band

feature-band — Full-width House Green ({colors.house-green} — #1E3932) section with left column carrying a white headline + Text White Soft ({colors.text-white-soft} — rgba(255,255,255,0.70)) subhead + CTA row (Green-on-Green Inverted primary + Outlined-on-Dark secondary), and right column with product photography. Split ratio ~40 / 60 or 50 / 50 depending on section. Stacks vertically below 768px.

Product Detail (PDP)

size-options-cup — A horizontal row of 4 cup-icon buttons (Tall / Grande / Venti / Trenta). Each item: cup silhouette icon on top, size name below (16/700 Starbucks Green), fluid-ounce caption (13/400 Text Black Soft). Active state wraps the cup icon in a 2px solid Green Accent circular ring. Inactive: no ring, same typography.

add-in-select — Full-width white rectangle with 1px Input Border outline, 4px radius. Floating label above top border ("Add-ins", "Milk") in 13/700 Text Black uppercase with 0.325px letter-spacing. Value centered (e.g., "Ice", "Coconut", "Strawberry Fruit Inclusions scoop") in 16/400 Text Black. Chevron-down icon on the right in Text Black Soft. Focus: border shifts to Green Accent.

numeric-stepper-button — Circular 32×32px button with 1px Input Border outline and neutral gray icon. Embedded inside an Add-in row when a quantity is required. The count number sits 16/700 Text Black between the − and + buttons.

button-customize — White fill, Green Accent text, 1.5px Green Accent border, 50px pill, 14px 40px padding (generously larger than default pills). Label: "Customize" with a gold sparkle icon inset left. Used for entering the drink-customization flow.

button-add-to-order — Green Accent fill, white text, 50px pill, 14px 32px padding. Pinned top-right of the product card. Same scale(0.95) active behavior as other primary CTAs.

rewards-cost-pill — Transparent fill, Gold ({colors.gold} — #cba258) text and 1px Gold border. 50px pill, 4px 12px padding. Content: "200★ item" where ★ is a small filled star glyph — indicates Rewards Stars required to redeem. Used only on products that are Rewards-redeemable.

product-description-band — Full-width House Green band beneath the product header. Stacks: Rewards Cost Pill (gold) if applicable → product description body copy in white 16/400/1.5 → nutritional inline summary in white 14/700 ("140 calories, 25g sugar, 2.5g fat") with info-icon tooltip → "Full nutrition & ingredients list" outlined-white-on-green pill. 32px vertical padding.

nutrition-table-row — Two-column layout inside a white card. Left: "Ingredients" header + list (or "Not available for this item" placeholder paragraph in 14/400 Text Black Soft). Right: "Nutrition" header + label / value rows separated by 1px Hairline ({colors.hairline} — #e7e7e7) below. Footnote markers in 13/400 Text Black Soft at the bottom.

store-availability-selector — Full-width rounded rectangle on the dark-green feature band above the size-options row. Transparent-white interior, white 14/400 text ("For item availability, choose a store"), chevron-down + shopping-bag SVG icon on the right. 4px radius, ~48px height.

pdp-breadcrumb — "Menu / Refreshers / Pink Energy Drink" trail above the product title in 14/400 Proxima Nova. Separator: / slash in Text Black Soft. Current page unlinked, prior pages underlined green-accent links.

back-chevron-link — "← Back" text link above section headings on the nutrition page. Green Accent 14/700 Proxima Nova with a left chevron < in the same green. An alternative to the full breadcrumb on deep sub-pages.

System Modules

cookie-consent — Dark-green modal card at the top of the page with "Agree" (Consent Green filled) and "Manage preferences" (outlined) buttons. Appears on first visit; dismissible.

expander-accordion — 300ms duration with a cubic-bezier(0.25, 0.46, 0.45, 0.94) measured ease-out curve. Used for FAQ sections on Rewards and gift pages.

Responsive Behavior

NameWidthKey Changes
xs< 480pxGlobal nav 64px; hamburger menu; single-column layouts; pill buttons full-width.
Mobile480–767pxGlobal nav 72px; gift-card grid 2-up; card padding tightens.
Tablet768–1023pxGlobal nav 83px; gift-card grid 3-up; hero split begins to appear.
Desktop1024–1439pxGlobal nav 99px; gift-card grid 4-up; full 40 / 60 asymmetric hero.
XLarge1440px+Content caps at 1440px; gift-card grid 5-up; extra cream margin.

Touch Targets

  • Pill buttons at 7px 16px padding measure ~32px tall — below the 44px WCAG AAA minimum for touch-only surfaces. On mobile, button padding may visually expand to meet the minimum.
  • Frap floating circular button at 56px is well above minimum.
  • Frap uses --frapTouchOffset: calc(-1 * .8rem) to extend the tap area 8px beyond the visual edge.
  • Form float-label inputs grow their label font size on mobile (1.6rem base vs 1.9rem desktop) — easier to tap and read at arm's length.

Collapsing Strategy

  • Global nav height scales progressively: 64 → 72 → 83 → 99px across breakpoints.
  • Hero split collapses from 40 / 60 asymmetric → stacked (image top, content below) on mobile.
  • Gift-card grid: 5-up → 4-up → 3-up → 2-up → 1-up across breakpoints with adjusted card widths.
  • Feature bands stay full-width but text + imagery stack vertically on mobile.
  • Outer gutter scales: 16px → 24px → 40px as the viewport grows.
  • Rewards 3-column status panels stack to a single column on mobile.
  • Frap floating button persists at bottom-right regardless of nav state.

Image Behavior

  • Hero product photography crops tighter vertically on mobile; content becomes the visual anchor.
  • Gift-card illustrations preserve aspect ratio; the card grid reflows.
  • opacity 0.3s ease-in fade-in transition on image load (prevents jarring pop-in).
  • Rewards app-in-hand photography scales proportionally; never stretches.

Known Gaps

  • SoDoSans is proprietary — not available on Google Fonts (licensed from House Industries). When implementing publicly, use Inter or Manrope as a substitute and document the swap. Lander Tall (Rewards serif) is also custom — substitute with Iowan Old Style, Lora, or Source Serif Pro.
  • Specific per-component animation timings beyond the few documented (--duration: 0.4s, --iconTransition: all ease-out 0.2s, --expanderDuration: 300ms) are not captured for every interactive surface.
  • Form error-state full styling (red border weight, icon placement) is visible on the tint token but not exhaustively extracted.
  • Careers-page specific components (cup-name card, search radio grid) are referenced in token names but not covered by this extraction.
  • Starbucks Visa Card / Starbucks-Card (SVC) detailed mockup specs are hinted at by --svcRoundedCorners and --svcShadowFilter tokens but not fully documented.
  • Gradient system — none observed; the system is solid color-block throughout, so no gradient tokens are documented.

Food & Delivery

More systems like this

More DESIGN.md files in Food & Delivery.

Pricing

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
  • Production-ready React sections: hero, pricing, features, dashboards and more.Pro blocks: 6,000+ blocks
  • Complete multi-page sites you can ship as they are.Templates: All 14 templates
  • React icons from every major library, installable with one command.React icons: 294k+ icons
  • Presets that restyle every block, in light and dark.Themes: All 59 themes
  • Lets your AI editor search, preview and install blocks for you.MCP server: Basic usage
  • 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
  • Lets your AI editor search, preview and install blocks for you.MCP server: High usage
  • 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
  • Lets your AI editor search, preview and install blocks for you.MCP server: Unlimited usage
  • Secure checkout via Stripe
  • Code lives in your repo
  • Keep what you've shipped if you cancel
  • License terms

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