Decision reference


Take it one answer at a time
This page keeps every decision behind Brand expressive in one place: 78 answers and what each one shaped. It's a reference, not a reading list. Most days you only need one answer.
Three easy ways in- Take a minute with Where it starts. It shows the few first answers the rest grow from.
- Open one section when you wonder why. For example, why Brand expressive's spacing is spacious, or why its voice is playful.
- Come in from a component page. Each one links here, to the answers that shaped it.
Everything else can wait until you need it.
- Question
- Answer
- Why, and what it came from
- Design values
- In the UI
Where it starts
The first answers lead to the rest. Each branch is an answer that follows from the one above it.
- Sells and converts What does the product do for the business?
- Customers who choose us Who uses it most?
- AA What accessibility level do we commit to?
- They see it fresh each time How do people recall the interface?
- On the move Where do people use it?
- Touch size accessibility → size.control.default size.52: 3.25rem
- Light and dark theming →
- Images and campaigns What is the main content?
- One idea at a time How much is on one screen?
- Regular typography → type.body.font-size font.size.17: 1.0625rem
- Spacious spacing → space.gap.tight space.8: 0.5rem
- Browse and explore What is the main task?
- One idea at a time How much is on one screen?
- Rarely How often do people repeat actions?
- Delight What must the interface protect?
- Fast motion → motion.duration.feedback duration.fast: 120ms
- Engagement Which outcome matters most?
- A few minutes How long is one visit?
- Looking off-brand What is a costly mistake?
- Bold What should the brand feel like?
- Loud How visible is the brand in the interface?
- Vivid color → color.neutral.0 color.taupe.dark.0: #120B09
- Pronounced elevation → elevation.card shadow.card-dark: [object Object]
- Pill shape → radius.control radius.999: 9999px
- Playful voice and tone →
- Loud How visible is the brand in the interface?
- Customers who choose us Who uses it most?
- One How many brands or products share the system?
- An agency Who maintains the system?
- Every campaign How fast does it change?
- Also for emphasis and size components →
- Lowercase words in paths naming →
- Every campaign How fast does it change?
Every question
All 78, by section, in the order every scheme answers them. Each answer shows why, what it came from, and every design decision it made. The menu in the sidebar opens a section; its number is how many decisions that section made.
Reasons
- Sells and converts
- Why
A launch site that must win attention and sign-ups.
- Because of
Nothing before it. It's one of the first answers.
- What it decided (8)Answers it led to (8)
- Who uses it most? → Customers who choose us
- What is the main content? → Images and campaigns
- How often do people repeat actions? → Rarely
- What must the interface protect? → Delight
- Which outcome matters most? → Engagement
- What is a costly mistake? → Looking off-brand
- What should the brand feel like? → Bold
- Voice and tone · Which kinds of copy does it need? → Labels, messages and headlinesVoice and tone →
- Why
- One
- Why
One brand, loudly.
- Because of
Nothing before it. It's one of the first answers.
- What it decided (3)
- Why
- Customers who choose us
- Why
New customers deciding if they care.
- Because of
- What does the product do for the business? → Sells and converts
- What it decided (4)Answers it led to (4)
- What accessibility level do we commit to? → AA
- How do people recall the interface? → They see it fresh each time
- Where do people use it? → On the move
- Theming · Which modes ship? → Light and darkTheming →
- Why
- AA
- Why
AA, even when loud.
- Because of
- Who uses it most? → Customers who choose us
- What it decided (7)Answers it led to (2)
- Accessibility · How many signals carry each meaning? → Two: color and wordAccessibility →
- Accessibility · What contrast floor do we hold? → AAAccessibility →
Rules it sets (3)- For a field label or column header, use type.label. Don't use type.caption. Labels stay readable on vivid color.Typography →
- For a link, use color.text.link, underlined. Don't use color only. Underline keeps links clear on vivid color.Color →
- For keyboard focus, use button/focus-ring at border-width.focus. Don't use removing the outline. Focus must show on vivid color.Accessibility →
- Why
- Images and campaigns
- Why
Images, campaigns and short punchy copy.
- Because of
- What does the product do for the business? → Sells and converts
- What it decided (12)Answers it led to (7)
- How much is on one screen? → One idea at a time
- What is the main task? → Browse and explore
- Spacing · Which spacing roles does it need? → Gaps and insetsSpacing →
- Spacing · Where does spacing matter most? → Between big sectionsSpacing →
- Elevation · What separates groups on the page? → CardsElevation →
- Components · Which component families does it need? → Core, plus mediaComponents →
- Components · Where do components do the most work? → Campaign sectionsComponents →
Rules it sets (1)- For a number in a table, use type.body. Don't use a mono font. Tables are rare and never compared column by column, so mono digits add nothing. The brand font keeps the voice.Typography →
Variants it picks (4)- Badge's info tone isn't used. Campaign labels are a state or a nudge; there are no plain news labels.Badge →
- Empty's default variant. A campaign image or illustration beside the playful words and a clear next step.Empty →
- Input group's block-start align isn't used. Copy is short and sign-up is the one action, so fields stay one line.Input group →
- Input group's block-end align isn't used. Copy is short and sign-up is the one action, so fields stay one line.Input group →
- Why
- One idea at a time
- Why
One big idea per section.
- Because of
- What is the main content? → Images and campaigns
- What it decided (3)Answers it led to (3)
- Typography · How large is body text? → RegularTypography →
- Spacing · How many densities exist? → OneSpacing →
- Spacing · How dense is the layout? → SpaciousSpacing →
- Why
- Browse and explore
- Why
People browse and explore the story.
- Because of
- What is the main content? → Images and campaigns
- What it decided (1)Answers it led to (1)
- Components · Where do components do the most work? → Campaign sectionsComponents →
- Why
- Rarely
- Why
One action: sign up.
- Because of
- What does the product do for the business? → Sells and converts
- What it decided (6)Answers it led to (2)
- Color · How many emphasis levels do actions need? → ThreeColor →
- Components · How far does the inventory reach? → Only what today's screens useComponents →
Variants it picks (4)- Alert's default variant isn't used. Alerts here only report a sign-up that did not go through; confirmations go in a toast.Alert →
- Input group's block-start align isn't used. Copy is short and sign-up is the one action, so fields stay one line.Input group →
- Input group's block-end align isn't used. Copy is short and sign-up is the one action, so fields stay one line.Input group →
- Toggle's lg size isn't used. Large is for the one call to action per section, and a toggle is not that action.Toggle →
- Why
- Delight
- Why
Delight is the point.
- Because of
- What does the product do for the business? → Sells and converts
- What it decided (2)Answers it led to (1)
- Motion · How fast does feedback feel? → FastMotion →
Variants it picks (1)- Empty's default variant. A campaign image or illustration beside the playful words and a clear next step.Empty →
- Why
- They see it fresh each time
- Why
Every visit should feel fresh.
- Because of
- Who uses it most? → Customers who choose us
- Why
- Engagement
- Why
Engagement and sign-ups.
- Because of
- What does the product do for the business? → Sells and converts
- What it decided (13)Answers it led to (6)
- How long is one visit? → A few minutes
- Color · Where does color carry meaning first? → Brand momentsColor →
- Motion · Where does motion show? → Hero and launch momentsMotion →
- Iconography · Where do icons work hardest? → Buttons and calls to actionIconography →
- Voice and tone · Where do the words matter most? → Headlines and buttonsVoice and tone →
- Components · How does a component earn its place? → It gives the brand a momentComponents →
Rules it sets (2)Variants it picks (5)- Button's primary variant. One loud call to action per section.Button →
- Button's large size. The one loud call to action per section.Button →
- Badge's warning tone. Almost gone: few left, act soon.Badge →
- Toast's success tone. Celebrate, briefly: You're on the list. See you at launch.Toast →
- Toggle's lg size isn't used. Large is for the one call to action per section, and a toggle is not that action.Toggle →
- Why
- Looking off-brand
- Why
A bland page is the costly mistake.
- Because of
- What does the product do for the business? → Sells and converts
- What it decided (7)Answers it led to (1)
- Voice and tone · How many tones does it use? → One per momentVoice and tone →
Rules it sets (2)Variants it picks (4)- Button's secondary variant. The first step of a delete, before the confirm.Button →
- Button's danger variant. The confirm of a delete. It stays red, apart from the brand's pink.Button →
- Alert's destructive variant. A sign-up that did not go through: plain first, then how to recover, with a word beside the color.Alert →
- Item's muted variant isn't used. A quiet fill reads as bland on a loud page; color blocks already mark each section.Item →
- Why
- Bold
- Why
Bold and confident.
- Because of
- What does the product do for the business? → Sells and converts
- What it decided (7)Answers it led to (7)
- How visible is the brand in the interface? → Loud
- Color · How is the palette defined? → Neutrals and one brand rampColor →
- Shape · Which shape roles does it need? → Controls and containersShape →
- Shape · What should control corners say? → PillShape →
- Motion · How is easing defined? → A springMotion →
- Voice and tone · How does it sound? → PlayfulVoice and tone →
- Components · How does a component earn its place? → It gives the brand a momentComponents →
- Why
- Loud
- Why
The brand is loud everywhere.
- Because of
- What should the brand feel like? → Bold
- What it decided (16)Answers it led to (14)
- Typography · Which text roles does it need? → Core and expressive displayTypography →
- Typography · How many steps does the type scale take? → Fine steps, so pages can set their own rhythmTypography →
- Typography · Where does type do the most work? → Headlines and heroTypography →
- Color · Which color roles does it need? → Those and brand accentsColor →
- Color · How saturated is the palette? → VividColor →
- Spacing · How are spacing steps defined? → Big, even stepsSpacing →
- Shape · Where does shape show most? → Buttons and badgesShape →
- Elevation · What rises above the page? → Cards tooElevation →
- Elevation · How soft are shadows? → PronouncedElevation →
- Motion · What is motion for? → Feedback and expressionMotion →
- Iconography · What do icons do? → Those and decorationIconography →
- Voice and tone · How does it sound? → PlayfulVoice and tone →
- Components · Which component families does it need? → Core, plus mediaComponents →
- Components · When does a component get another look? → Also for emphasis and sizeComponents →
Rules it sets (1)- For a page title, use type.display. Don't use type.title. The display role carries the brand in every hero.Typography →
Variants it picks (1)- Item's muted variant isn't used. A quiet fill reads as bland on a loud page; color blocks already mark each section.Item →
- Why
- On the move
- Why
Visitors come from social posts on their phones.
- Because of
- Who uses it most? → Customers who choose us
- What it decided (4)Answers it led to (1)
- Accessibility · What is the smallest target? → Touch sizeAccessibility →
- Why
- A few minutes
- Why
A visit lasts a few minutes at most.
- Because of
- Which outcome matters most? → Engagement
- What it decided (1)Rules it sets (1)
- For a first visit, use one bold line and one button. Don't use a paragraph of copy. Visitors from a social post give a few seconds.Voice →
- Why
- An agency
- Why
An agency runs campaigns.
- Because of
Nothing before it. It's one of the first answers.
- What it decided (4)Answers it led to (4)
- How fast does it change? → Every campaign
- Naming · How are names written? → Lowercase words in pathsNaming →
- Voice and tone · How is the voice defined? → Principles and examplesVoice and tone →
- Components · How far does the inventory reach? → Only what today's screens useComponents →
- Why
- Every campaign
- Why
Every campaign changes the look a little.
- Because of
- Who maintains the system? → An agency
- What it decided (6)Answers it led to (5)
- Naming · What gets a name? → Tokens and component keysNaming →
- Naming · How many token tiers? → ThreeNaming →
- Naming · How are decisions named? → By roleNaming →
- Naming · What do components read? → Component keysNaming →
- Components · When does a component get another look? → Also for emphasis and sizeComponents →
Rules it sets (1)- When no component in the inventory fits, use a section built from the inventory with campaign tokens. Don't use a new component for one campaign. Campaigns change the look through tokens; new parts every drop are hard to keep working.Components →
- Why
Scopes
- Core and expressive display
- Why
A big expressive display role carries the brand.
- Because of
- How visible is the brand in the interface? → Loud
- What it decided (3)Answers it led to (2)
- Typography · How are sizes and line heights defined? → A ratio, line heights in proportionTypography →
- Iconography · How big are icons next to text? → Larger than the textIconography →
Rules it sets (1)- For a page title, use type.display. Don't use type.title. The display role carries the brand in every hero.Typography →
- Why
- Fine steps, so pages can set their own rhythm
- Why
Fine steps give big moments room.
- Because of
- How visible is the brand in the interface? → Loud
- What it decided
It sets the values of the typography tokens: Typography →
- Why
- A ratio, line heights in proportion
- Why
Ratios suit the big display sizes.
- Because of
- Typography · Which text roles does it need? → Core and expressive display
- What it decided
It sets the values of the typography tokens: Typography →
- Why
- Regular
- Why
Regular body; the display does the shouting.
- Because of
- How much is on one screen? → One idea at a time
- What it decided
It sets the values of the typography tokens: Typography →
- Why
- Headlines and hero
- Why
Type does its work in headlines.
- Because of
- How visible is the brand in the interface? → Loud
- What it decided
It sets the values of the typography tokens: Typography →
- Why
- Those and brand accents
- Why
Brand accents are part of the message.
- Because of
- How visible is the brand in the interface? → Loud
- What it decided
It sets the values of the color tokens: Color →
- Why
- Three
- Why
Primary, secondary, ghost.
- Because of
- How often do people repeat actions? → Rarely
- What it decided (2)Rules it sets (1)
- For an alternative or cancel, use button ghost. Don't use a second primary. The alternative must not compete.Color →
Variants it picks (1)- Button's ghost variant. The alternative next to the primary, and row actions with a word.Button →
- Why
- Neutrals and one brand ramp
- Why
Warm neutrals and one vivid ramp.
- Because of
- What should the brand feel like? → Bold
- What it decided
It sets the values of the color tokens: Color →
- Why
- Vivid
- Why
Vivid color is the brand.
- Because of
- How visible is the brand in the interface? → Loud
- What it decided (6)Answers it led to (2)
- Iconography · What icon style? → Two-toneIconography →
- Accessibility · Where are the floors hardest to hold? → Brand colorAccessibility →
Rules it sets (1)- For a selected row or item, use color.surface.selected (brand tint). Don't use grey. Selection carries the brand.Color →
Variants it picks (3)- Item's outline variant. Rows on a color block, with a border so each holds its edge on vivid color.Item →
- Toggle's default variant isn't used. Sections lead with media and color blocks, not toolbars; a toggle with no border is lost on vivid color.Toggle →
- Toggle's outline variant. A pill with a border, so the toggle reads as a control on vivid color.Toggle →
- Why
- Brand moments
- Why
Color makes the launch moment.
- Because of
- Which outcome matters most? → Engagement
- What it decided
It sets the values of the color tokens: Color →
- Why
- Gaps and insets
- Why
Few tables; no row role needed.
- Because of
- What is the main content? → Images and campaigns
- What it decided
It sets the values of the spacing tokens: Spacing →
- Why
- One
- Why
One generous density.
- Because of
- How much is on one screen? → One idea at a time
- What it decided
It sets the values of the spacing tokens: Spacing →
- Why
- Big, even steps
- Why
Big, even steps make big moments.
- Because of
- How visible is the brand in the interface? → Loud
- What it decided
It sets the values of the spacing tokens: Spacing →
- Why
- Spacious
- Why
Big space makes big moments.
- Because of
- How much is on one screen? → One idea at a time
- What it decided (2)Rules it sets (2)
- For items that belong together, use space.gap.default. Don't use space.gap.tight. Air keeps big type readable.Spacing →
- For a table row height, use size.row (comfortable). Don't use a compact row. Tables are rare and short, so there is no need to fit many rows. Comfortable rows keep the brand's airy rhythm.Spacing →
- Why
- Between big sections
- Why
Space works between big sections.
- Because of
- What is the main content? → Images and campaigns
- What it decided
It sets the values of the spacing tokens: Spacing →
- Why
- Controls and containers
- Why
Pills everywhere; badges share the control corner.
- Because of
- What should the brand feel like? → Bold
- What it decided (2)Answers it led to (1)
- Shape · How many corner sizes exist? → TwoShape →
Rules it sets (1)- For the shape of a status badge, use radius.badge (pill). Don't use a rectangle. Pills match the controls.Shape →
- Why
- Two
- Why
Pill controls and large container corners.
- Because of
- Shape · Which shape roles does it need? → Controls and containers
- What it decided
It sets the values of the shape tokens: Shape →
- Why
- Fixed for the product
- Why
One brand, one set of corners.
- Because of
- How many brands or products share the system? → One
- What it decided
It sets the values of the shape tokens: Shape →
- Why
- Pill
- Why
Pill controls feel playful.
- Because of
- What should the brand feel like? → Bold
- What it decided (2)Rules it sets (1)
- For the corners of buttons and inputs, use radius.control (pill). Don't use sharp corners. Pills match the brand's round, playful shapes. Sharp corners would feel corporate.Shape →
Variants it picks (1)- Toggle's outline variant. A pill with a border, so the toggle reads as a control on vivid color.Toggle →
- Why
- Buttons and badges
- Why
Pill buttons are the signature shape.
- Because of
- How visible is the brand in the interface? → Loud
- What it decided
It sets the values of the shape tokens: Shape →
- Why
- Cards too
- Why
Cards lift to feel like objects.
- Because of
- How visible is the brand in the interface? → Loud
- What it decided (3)Answers it led to (2)
- Elevation · How many shadow levels exist? → TwoElevation →
- Elevation · Where does elevation show? → Cards, menus and dialogsElevation →
Rules it sets (1)- For a card on the page, use elevation.card (pronounced). Don't use a flat card. Cards float to feel tactile.Elevation →
- Why
- Two
- Why
One shadow for cards, one for overlays.
- Because of
- Elevation · What rises above the page? → Cards too
- What it decided
It sets the values of the elevation tokens: Elevation →
- Why
- Cards
- Why
Cards hold each offer.
- Because of
- What is the main content? → Images and campaigns
- What it decided (2)Rules it sets (1)
- Between page sections, use space.gap.section and a color block. Don't use a thin line. Big space and color make each section a moment.Spacing →
Variants it picks (1)- Item's default variant. Rows inside a card, which already gives the frame.Item →
- Why
- Pronounced
- Why
Pronounced shadows add depth.
- Because of
- How visible is the brand in the interface? → Loud
- What it decided (2)Rules it sets (2)
- For a card on the page, use elevation.card (pronounced). Don't use a flat card. Cards float to feel tactile.Elevation →
- For a menu or dialog, use elevation.overlay and a dimmed page. Don't use no shadow. Strong depth shows a menu or dialog sits above vivid sections. Without a shadow it blends into the color blocks.Elevation →
- Why
- Cards, menus and dialogs
- Why
Cards, menus and dialogs rise.
- Because of
- Elevation · What rises above the page? → Cards too
- What it decided
It sets the values of the elevation tokens: Elevation →
- Why
- Feedback and expression
- Why
Motion carries personality.
- Because of
- How visible is the brand in the interface? → Loud
- What it decided (4)Answers it led to (1)
- Motion · How many speeds exist? → ThreeMotion →
Rules it sets (2)- For hover and press feedback, use motion.duration.feedback (fast). Don't use an instant change. Fast feedback, on the brand's spring. An instant change drops the brand's motion.Motion →
- When someone asks for less motion, use reduced motion. Don't use full motion. Motion is part of the brand, so it shrinks to a fade instead of vanishing. Full motion is never forced on people who asked for less.Motion →
Variants it picks (1)- Button's hover state. Relaxed, springy feedback: motion is part of the brand.Button →
- Why
- Three
- Why
Fast feedback, moderate panels, relaxed hero.
- Because of
- Motion · What is motion for? → Feedback and expression
- What it decided
It sets the values of the motion tokens: Motion →
- Why
- A spring
- Why
A spring that overshoots feels alive.
- Because of
- What should the brand feel like? → Bold
- What it decided
It sets the values of the motion tokens: Motion →
- Why
- Fast
- Why
Feedback stays fast; the personality shows in panels and hero moments, which move slower on a spring.
- Because of
- What must the interface protect? → Delight
- What it decided (2)Rules it sets (1)
- For hover and press feedback, use motion.duration.feedback (fast). Don't use an instant change. Fast feedback, on the brand's spring. An instant change drops the brand's motion.Motion →
Variants it picks (1)- Button's hover state. Relaxed, springy feedback: motion is part of the brand.Button →
- Why
- Hero and launch moments
- Why
Motion shows in hero and launch moments.
- Because of
- Which outcome matters most? → Engagement
- What it decided
It sets the values of the motion tokens: Motion →
- Why
- Those and decoration
- Why
Icons also decorate campaign pages.
- Because of
- How visible is the brand in the interface? → Loud
- What it decided (7)Answers it led to (1)
- Iconography · How many icon sizes exist? → TwoIconography →
Rules it sets (2)- For an icon with no label, use not used: always add a word. Don't use an icon button with a hover hint. On phones, hover hints never show; a word says what will happen.Iconography →
- For an action on one row or item, use button ghost with a word. Don't use an icon alone. Visitors come rarely, so they never learn an icon. A word says what will happen.Iconography →
Variants it picks (4)- Button's ghost variant. The alternative next to the primary, and row actions with a word.Button →
- Button's icon size isn't used. Phones first: hover hints never show, so every button has a word.Button →
- Empty's icon variant. A two-tone icon in a tile, for a small region where a picture would push the words away.Empty →
- Input group's inline-start align. The search icon before the text.Input group →
- Why
- Two
- Why
One size next to text, one for decoration.
- Because of
- Iconography · What do icons do? → Those and decoration
- What it decided
It sets the values of the iconography tokens: Iconography →
- Why
- Two-tone
- Why
Two-tone icons carry the brand color.
- Because of
- Color · How saturated is the palette? → Vivid
- What it decided (1)Variants it picks (1)
- Empty's icon variant. A two-tone icon in a tile, for a small region where a picture would push the words away.Empty →
- Why
- Larger than the text
- Why
Larger icons hold their own next to big type.
- Because of
- Typography · Which text roles does it need? → Core and expressive display
- What it decided
It sets the values of the iconography tokens: Iconography →
- Why
- Buttons and calls to action
- Why
Icons sit in calls to action.
- Because of
- Which outcome matters most? → Engagement
- What it decided
It sets the values of the iconography tokens: Iconography →
- Why
- Mode only
- Why
One brand, so only the mode changes.
- Because of
- How many brands or products share the system? → One
- What it decided (1)Answers it led to (1)
- Theming · What changes when the theme changes? → Colors onlyTheming →
- Why
- Two
- Why
Light and dark.
- Because of
- Theming · Which modes ship? → Light and dark
- What it decided
It sets the values of the theming tokens: Theming →
- Why
- One brand
- Why
One brand per campaign.
- Because of
- How many brands or products share the system? → One
- What it decided
It sets the values of the theming tokens: Theming →
- Why
- Light and dark
- Why
Light and dark ship as standard.
- Because of
- Who uses it most? → Customers who choose us
- What it decided (2)Answers it led to (1)
- Theming · How many themes ship? → TwoTheming →
Rules it sets (1)- When someone switches to dark, use the dark semantic mode. Don't use a separate campaign palette. Dark ships as standard; campaigns change values, not structure.Theming →
- Why
- Colors only
- Why
Only colors change.
- Because of
- Theming · What can a theme change? → Mode only
- What it decided
It sets the values of the theming tokens: Theming →
- Why
- Those and pressed
- Why
Pressed for touch.
- Because of
- Accessibility · What is the smallest target? → Touch size
- What it decided
It sets the values of the accessibility tokens: Accessibility →
- Why
- Two: color and word
- Why
Color and word.
- Because of
- What accessibility level do we commit to? → AA
- What it decided (6)Rules it sets (2)Variants it picks (4)
- Badge's neutral tone. New: a label, not a state to fix.Badge →
- Badge's success tone. On the list: you joined and your place is saved.Badge →
- Badge's warning tone. Almost gone: few left, act soon.Badge →
- Alert's destructive variant. A sign-up that did not go through: plain first, then how to recover, with a word beside the color.Alert →
- Why
- AA
- Why
AA, checked on every vivid color.
- Because of
- What accessibility level do we commit to? → AA
- What it decided
It sets the values of the accessibility tokens: Accessibility →
- Why
- Touch size
- Why
Visitors come from social posts on phones.
- Because of
- Where do people use it? → On the move
- What it decided (12)Answers it led to (1)
- Accessibility · Which states get their own visible value? → Those and pressedAccessibility →
Rules it sets (2)- For an icon with no label, use not used: always add a word. Don't use an icon button with a hover hint. On phones, hover hints never show; a word says what will happen.Iconography →
- For the smallest clickable thing, use size.control.default (touch). Don't use a compact control. Most visitors arrive on phones, and a compact control is too small for a thumb.Accessibility →
Variants it picks (9)- Button's default size. Every button, at touch size: phones first.Button →
- Button's compact size isn't used. Phones first: no compact controls.Button →
- Button's icon size isn't used. Phones first: hover hints never show, so every button has a word.Button →
- Field's horizontal orientation isn't used. Phones first: there is no room beside the field.Field →
- Input group's inline-end align. The unit after the value, or the clear button with a word: hover hints never show on phones.Input group →
- Item's default size. Every row, at touch size: phones first.Item →
- Item's sm size isn't used. Phones first: no compact rows.Item →
- Toggle's default size. Every toggle, at touch size: phones first.Toggle →
- Toggle's sm size isn't used. Phones first: no compact controls.Toggle →
- Why
- Brand color
- Why
Vivid brand color is the hardest to keep readable.
- Because of
- Color · How saturated is the palette? → Vivid
- What it decided
It sets the values of the accessibility tokens: Accessibility →
- Why
- Tokens and component keys
- Why
Components get their own keys.
- Because of
- How fast does it change? → Every campaign
- What it decided
It sets the values of the naming tokens: Naming →
- Why
- Three
- Why
Primitives, semantics and component keys.
- Because of
- How fast does it change? → Every campaign
- What it decided
It sets the values of the naming tokens: Naming →
- Why
- By role
- Why
Role names survive each campaign.
- Because of
- How fast does it change? → Every campaign
- What it decided
It sets the values of the naming tokens: Naming →
- Why
- Lowercase words in paths
- Why
Lowercase paths read the same everywhere.
- Because of
- Who maintains the system? → An agency
- What it decided
It sets the values of the naming tokens: Naming →
- Why
- Component keys
- Why
Campaigns change primitives, never components.
- Because of
- How fast does it change? → Every campaign
- What it decided (1)Rules it sets (1)
- For a value with no token, use the closest semantic token, then ask for a new one. Don't use a raw value in the component. The next campaign changes primitives; raw values would stay behind.Naming →
- Why
- Labels, messages and headlines
- Why
Headlines carry the campaign.
- Because of
- What does the product do for the business? → Sells and converts
- What it decided
It sets the values of the voice and tone tokens: Voice and tone →
- Why
- One per moment
- Why
Playful in headlines, plain in errors.
- Because of
- What is a costly mistake? → Looking off-brand
- What it decided (7)Rules it sets (2)Variants it picks (5)
- Badge's danger tone isn't used. Nothing on a launch page is labeled as failed; errors are plain sentences.Badge →
- Toast's neutral tone. A light note that something changed.Toast →
- Toast's danger tone. Plain first, a light touch after: That didn't go through.Toast →
- Alert's default variant isn't used. Alerts here only report a sign-up that did not go through; confirmations go in a toast.Alert →
- Alert's destructive variant. A sign-up that did not go through: plain first, then how to recover, with a word beside the color.Alert →
- Why
- Principles and examples
- Why
Principles and examples guide each campaign's writers.
- Because of
- Who maintains the system? → An agency
- What it decided
It sets the values of the voice and tone tokens: Voice and tone →
- Why
- Playful
- Why
Big words, few of them.
- Because of
- What should the brand feel like? → Bold
- How visible is the brand in the interface? → Loud
- What it decided (6)Rules it sets (5)
- For a paragraph or help text, use type.body, short. Don't use long paragraphs. Short copy keeps the energy.Typography →
- For a button label, use a short verb that moves: Join, Try, Go. Don't use "Learn more". Big moments need verbs with energy.Voice →
- For a success message, use celebrate, briefly. Don't use a long thank-you. A short celebration is remembered.Voice →
- For an empty state, use playful, with a clear next step. Don't use a dead end. Playful words still need a way forward.Voice →
- For a first visit, use one bold line and one button. Don't use a paragraph of copy. Visitors from a social post give a few seconds.Voice →
Variants it picks (1)- Toast's success tone. Celebrate, briefly: You're on the list. See you at launch.Toast →
- Why
- Headlines and buttons
- Why
Words work hardest in headlines and buttons.
- Because of
- Which outcome matters most? → Engagement
- What it decided (1)Rules it sets (1)
- For a button label, use a short verb that moves: Join, Try, Go. Don't use "Learn more". Big moments need verbs with energy.Voice →
- Why
- Core, plus media
- Why
Campaigns lead with media and big sections.
- Because of
- What is the main content? → Images and campaigns
- How visible is the brand in the interface? → Loud
- What it decided (1)Variants it picks (1)
- Toggle's default variant isn't used. Sections lead with media and color blocks, not toolbars; a toggle with no border is lost on vivid color.Toggle →
- Why
- Only what today's screens use
- Why
One action and a story need only the parts in use; an agency keeps them fresh.
- Because of
- How often do people repeat actions? → Rarely
- Who maintains the system? → An agency
- What it decided
It sets the values of the components tokens: Components →
- Why
- It gives the brand a moment
- Why
A component joins when it gives the campaign a moment.
- Because of
- What should the brand feel like? → Bold
- Which outcome matters most? → Engagement
- What it decided (1)Rules it sets (1)
- When no component in the inventory fits, use a section built from the inventory with campaign tokens. Don't use a new component for one campaign. Campaigns change the look through tokens; new parts every drop are hard to keep working.Components →
- Why
- Also for emphasis and size
- Why
Variants for emphasis and size let each campaign look a little different.
- Because of
- How fast does it change? → Every campaign
- How visible is the brand in the interface? → Loud
- What it decided
It sets the values of the components tokens: Components →
- Why
- Campaign sections
- Why
Components sit inside big campaign sections.
- Because of
- What is the main content? → Images and campaigns
- What is the main task? → Browse and explore
- What it decided
It sets the values of the components tokens: Components →
- Why