Decision reference


Take it one answer at a time
This page keeps every decision behind Content first 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 Content first's spacing is spacious, or why its voice is conversational.
- 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.
- Informs and publishes What does the product do for the business?
- Occasional visitors Who uses it most?
- AA What accessibility level do we commit to?
- They see it fresh each time How do people recall the interface?
- Anywhere, on any device Where do people use it?
- Light and dark theming →
- Touch size accessibility → size.control.default size.48: 3rem
- Conversational voice and tone →
- Long-form text What is the main content?
- One idea at a time How much is on one screen?
- Read start to end What is the main task?
- Rarely How often do people repeat actions?
- Attention on the content What must the interface protect?
- Match the text iconography → size.icon size.16: 1rem
- Reading comfort Which outcome matters most?
- Large typography → type.body.font-size font.size.18: 1.125rem
- Spacious spacing → space.gap.tight space.8: 0.5rem
- Losing your place What is a costly mistake?
- One sitting How long is one visit?
- Warm What should the brand feel like?
- Present How visible is the brand in the interface?
- Only when the meaning changes components →
- Balanced color → color.neutral.0 color.stone.dark.0: #14110D
- Rounded shape → radius.control radius.8: 0.5rem
- Soft elevation → elevation.card shadow.none: [object Object]
- Moderate motion → motion.duration.feedback duration.moderate: 200ms
- Present How visible is the brand in the interface?
- Occasional visitors Who uses it most?
- One How many brands or products share the system?
- A small team Who maintains the system?
- Lowercase words in paths naming →
- Rarely 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
- Informs and publishes
- Why
The product publishes articles and guides.
- Because of
Nothing before it. It's one of the first answers.
- What it decided (3)Answers it led to (3)
- Who uses it most? → Occasional visitors
- What is the main content? → Long-form text
- What should the brand feel like? → Warm
- Why
- One
- Why
One publication, one brand.
- Because of
Nothing before it. It's one of the first answers.
- What it decided (3)
- Why
- Occasional visitors
- Why
Most readers arrive from search and visit now and then.
- Because of
- What does the product do for the business? → Informs and publishes
- What it decided (9)Answers it led to (7)
- 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? → Anywhere, on any device
- Motion · What is motion for? → Feedback and guidanceMotion →
- Iconography · What do icons do? → Actions, status and navigationIconography →
- Iconography · Where do icons work hardest? → NavigationIconography →
- Voice and tone · How does it sound? → ConversationalVoice and tone →
Rules it sets (2)- For an empty state, use an invitation, not a dead end. Don't use "No items". An empty list is a chance to show what the product offers.Voice →
- For a first visit, use one sentence on what is here and why it is worth reading. Don't use a sign-up wall. Occasional readers decide in seconds whether to stay.Voice →
- Why
- AA
- Why
AA is the commitment for a public site.
- Because of
- Who uses it most? → Occasional visitors
- What it decided (8)Answers it led to (3)
- Typography · How are sizes and line heights defined? → A ratio, line heights in proportionTypography →
- Accessibility · How many signals carry each meaning? → Two: color and wordAccessibility →
- Accessibility · What contrast floor do we hold? → AAAccessibility →
Rules it sets (2)- For a field label or column header, use type.label. Don't use type.caption. Caption is too faint for a label people must read.Typography →
- For keyboard focus, use button/focus-ring at border-width.focus. Don't use removing the outline. Keyboard users must always see where they are.Accessibility →
- Why
- Long-form text
- Why
The content is long-form text.
- Because of
- What does the product do for the business? → Informs and publishes
- What it decided (16)Answers it led to (15)
- How much is on one screen? → One idea at a time
- What is the main task? → Read start to end
- How long is one visit? → One sitting
- Typography · Which text roles does it need? → Core and editorial 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? → Articles and long textTypography →
- Spacing · Which spacing roles does it need? → Gaps and insetsSpacing →
- Spacing · Where does spacing matter most? → Between paragraphsSpacing →
- Shape · Where does shape show most? → Controls and cardsShape →
- Accessibility · Where are the floors hardest to hold? → Long textAccessibility →
- Voice and tone · Which kinds of copy does it need? → Labels, messages and articlesVoice and tone →
- Voice and tone · How is the voice defined? → Principles and examplesVoice and tone →
- Voice and tone · Where do the words matter most? → Articles and guidesVoice and tone →
- Components · Which component families does it need? → Core, plus content and mediaComponents →
- Components · Where do components do the most work? → ArticlesComponents →
Variants it picks (1)- Alert's default variant. A note or a warning inside an article.Alert →
- Why
- One idea at a time
- Why
One idea per screen keeps reading calm.
- Because of
- What is the main content? → Long-form text
- What it decided (1)Answers it led to (1)
- Spacing · How many densities exist? → OneSpacing →
- Why
- Read start to end
- Why
People read from start to end.
- Because of
- What is the main content? → Long-form text
- What it decided (12)Answers it led to (8)
- How often do people repeat actions? → Rarely
- What must the interface protect? → Attention on the content
- Which outcome matters most? → Reading comfort
- What is a costly mistake? → Losing your place
- Typography · How are sizes and line heights defined? → A ratio, line heights in proportionTypography →
- Color · Where does color carry meaning first? → Links and actionsColor →
- Components · Which component families does it need? → Core, plus content and mediaComponents →
- Components · How does a component earn its place? → A use scenario needs itComponents →
Rules it sets (3)- For a number in a table, use type.body. Don't use a mono font. Tables are rare and read row by row, so digits never need to line up in columns. A mono font would break the reading voice.Typography →
- For a table row height, use size.row (comfortable). Don't use a compact row. Rows are read, not scanned.Spacing →
- When no component in the inventory fits, use plain text, a link or a heading. Don't use a new component for one article. Readers come for the words; extra parts pull the eye away from them.Components →
Variants it picks (1)- Item's sm size isn't used. Many readers are on phones, and rows are read, not scanned.Item →
- Why
- Rarely
- Why
Actions are rare: subscribe, share, save.
- Because of
- What is the main task? → Read start to end
- What it decided (8)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 →
Rules it sets (1)- For the action that completes the task, use button primary, one per section. Don't use two primaries side by side. One clear action per section. Two primaries make the reader choose before they have read.Color →
Variants it picks (5)- Button's primary variant. One clear action per section.Button →
- Button's large size isn't used. Attention belongs to the text: one clear action per section, at the normal size.Button →
- Field's horizontal orientation isn't used. Forms are rare and short; stacking keeps the reading column.Field →
- Input group's block-start align isn't used. Search is one line, and forms are rare and short.Input group →
- Input group's block-end align isn't used. Search is one line, and forms are rare and short.Input group →
- Why
- Attention on the content
- Why
Attention belongs to the text.
- Because of
- What is the main task? → Read start to end
- What it decided (9)Answers it led to (5)
- Color · Which color roles does it need? → Surface, text, action and statusColor →
- Elevation · What rises above the page? → Only what floatsElevation →
- Iconography · What icon style? → OutlineIconography →
- Iconography · How big are icons next to text? → Match the textIconography →
- Voice and tone · How many tones does it use? → One per momentVoice and tone →
Variants it picks (4)- Button's large size isn't used. Attention belongs to the text: one clear action per section, at the normal size.Button →
- Field's horizontal orientation isn't used. Forms are rare and short; stacking keeps the reading column.Field →
- Empty's default variant isn't used. Attention belongs to the text: the invitation is in words, not a picture.Empty →
- Item's muted variant isn't used. Every row in the reading list weighs the same; attention belongs to the text.Item →
- Why
- They see it fresh each time
- Why
Visitors see the interface fresh each time.
- Because of
- Who uses it most? → Occasional visitors
- What it decided (9)Rules it sets (4)
- For a selected row or item, use color.surface.selected. Don't use bold text only. A tint shows the choice clearly on warm paper.Color →
- For a link, use color.text.link, underlined. Don't use color without underline. Readers expect links to be underlined inside text.Color →
- For an icon with no label, use not used: always add a word. Don't use an icon button. Occasional visitors do not know icons.Iconography →
- For an action on one row or item, use button ghost with a word. Don't use an icon on its own. Occasional visitors need the word.Iconography →
Variants it picks (5)- Button's ghost variant. Alternatives as a text link, and row actions with a word.Button →
- Button's icon size isn't used. Occasional visitors do not know icons: always add a word.Button →
- Button's disabled state isn't used. Keep it enabled and explain on press: visitors see the interface fresh each time.Button →
- Input group's inline-start align. The search icon before the text, with the visible label above the field.Input group →
- Input group's inline-end align. The clear button after the text, with a word: occasional visitors do not know icons.Input group →
- Why
- Reading comfort
- Why
Comfortable reading is the measure.
- Because of
- What is the main task? → Read start to end
- What it decided (7)Answers it led to (5)
- Typography · How large is body text? → LargeTypography →
- Spacing · How are spacing steps defined? → Big, even stepsSpacing →
- Spacing · How dense is the layout? → SpaciousSpacing →
- Elevation · What separates groups on the page? → SpaceElevation →
- Components · When does a component get another look? → Only when the meaning changesComponents →
Rules it sets (2)- For a paragraph or help text, use type.body, at most 65 characters a line. Don't use type.caption. A large size and short lines make long text easy on the eyes.Typography →
- When no component in the inventory fits, use plain text, a link or a heading. Don't use a new component for one article. Readers come for the words; extra parts pull the eye away from them.Components →
- Why
- Losing your place
- Why
Losing your place in an article breaks the read.
- Because of
- What is the main task? → Read start to end
- What it decided (3)Rules it sets (1)
- For a delete or remove, use button secondary with the full verb, then confirm with Button danger. Don't use button primary. Naming the verb and confirming prevents a mistake.Color →
- Why
- Warm
- Why
Warm and considered, like a good magazine.
- Because of
- What does the product do for the business? → Informs and publishes
- What it decided (11)Answers it led to (9)
- How visible is the brand in the interface? → Present
- Color · How is the palette defined? → Neutrals and one brand rampColor →
- Color · How saturated is the palette? → BalancedColor →
- Shape · Which shape roles does it need? → Controls, badges and containersShape →
- Shape · What should control corners say? → RoundedShape →
- Elevation · How soft are shadows? → SoftElevation →
- Motion · How is easing defined? → Standard ease-outMotion →
- Motion · How fast does feedback feel? → ModerateMotion →
- Voice and tone · How does it sound? → ConversationalVoice and tone →
Rules it sets (1)- For an alternative or cancel, use button ghost as a text link. Don't use a second boxed button. A link feels lighter and does not compete.Color →
Variants it picks (1)- Button's ghost variant. Alternatives as a text link, and row actions with a word.Button →
- Why
- Present
- Why
The brand shows in type, not in color.
- Because of
- What should the brand feel like? → Warm
- What it decided (2)Answers it led to (1)
- Components · When does a component get another look? → Only when the meaning changesComponents →
Variants it picks (1)- Empty's default variant isn't used. Attention belongs to the text: the invitation is in words, not a picture.Empty →
- Why
- Anywhere, on any device
- Why
Readers arrive on phones and laptops alike.
- Because of
- Who uses it most? → Occasional visitors
- What it decided (3)Answers it led to (2)
- Theming · Which modes ship? → Light and darkTheming →
- Accessibility · What is the smallest target? → Touch sizeAccessibility →
Variants it picks (1)- Field's responsive orientation isn't used. One stacked layout reads the same on phones and laptops.Field →
- Why
- One sitting
- Why
A guide is read in one sitting.
- Because of
- What is the main content? → Long-form text
- What it decided (2)Answers it led to (1)
- Components · How does a component earn its place? → A use scenario needs itComponents →
Rules it sets (1)- For a first visit, use one sentence on what is here and why it is worth reading. Don't use a sign-up wall. Occasional readers decide in seconds whether to stay.Voice →
- Why
- A small team
- Why
A small editorial team.
- Because of
Nothing before it. It's one of the first answers.
- What it decided (4)Answers it led to (4)
- Naming · How are decisions named? → By roleNaming →
- 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
- Rarely
- Why
The design changes rarely.
- Because of
Nothing before it. It's one of the first answers.
- What it decided (3)
- Why
Scopes
- Core and editorial display
- Why
A lead and a display role open articles.
- Because of
- What is the main content? → Long-form text
- What it decided (1)Rules it sets (1)
- For a page title, use type.title. Don't use type.display (landing only). Display is kept for the landing moment; article titles stay calm.Typography →
- Why
- Fine steps, so pages can set their own rhythm
- Why
Long pages need a clear hierarchy of headings, with fine steps between them.
- Because of
- What is the main content? → Long-form text
- What it decided
It sets the values of the typography tokens: Typography →
- Why
- A ratio, line heights in proportion
- Why
Line height is a ratio, so it grows with the text.
- Because of
- What is the main task? → Read start to end
- What accessibility level do we commit to? → AA
- What it decided
It sets the values of the typography tokens: Typography →
- Why
- Large
- Why
Large body text is easy on the eyes.
- Because of
- Which outcome matters most? → Reading comfort
- What it decided
It sets the values of the typography tokens: Typography →
- Why
- Articles and long text
- Why
Type does its work in articles.
- Because of
- What is the main content? → Long-form text
- What it decided
It sets the values of the typography tokens: Typography →
- Why
- Surface, text, action and status
- Why
Reading needs few color roles.
- Because of
- What must the interface protect? → Attention on the content
- What it decided
It sets the values of the color tokens: Color →
- Why
- Three
- Why
Primary, secondary and a text link.
- Because of
- How often do people repeat actions? → Rarely
- What it decided
It sets the values of the color tokens: Color →
- Why
- Neutrals and one brand ramp
- Why
Warm paper neutrals and one ink ramp.
- Because of
- What should the brand feel like? → Warm
- What it decided
It sets the values of the color tokens: Color →
- Why
- Balanced
- Why
A calm, balanced palette.
- Because of
- What should the brand feel like? → Warm
- What it decided
It sets the values of the color tokens: Color →
- Why
- Links and actions
- Why
Color marks links inside the text.
- Because of
- What is the main task? → Read start to end
- What it decided
It sets the values of the color tokens: Color →
- Why
- Gaps and insets
- Why
No dense tables, so no row role.
- Because of
- What is the main content? → Long-form text
- What it decided
It sets the values of the spacing tokens: Spacing →
- Why
- One
- Why
One calm 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 suit long reading.
- Because of
- Which outcome matters most? → Reading comfort
- What it decided
It sets the values of the spacing tokens: Spacing →
- Why
- Spacious
- Why
Room around the text helps reading.
- Because of
- Which outcome matters most? → Reading comfort
- What it decided (2)Rules it sets (1)
- For items that belong together, use space.gap.default. Don't use space.gap.tight. Text needs air even inside a group.Spacing →
Variants it picks (1)- Item's default variant. Rows in the reading list, separated by space, not lines.Item →
- Why
- Between paragraphs
- Why
Space is spent between paragraphs and sections.
- Because of
- What is the main content? → Long-form text
- What it decided
It sets the values of the spacing tokens: Spacing →
- Why
- Controls, badges and containers
- Why
Pill badges differ from controls.
- Because of
- What should the brand feel like? → Warm
- What it decided (2)Answers it led to (1)
- Shape · How many corner sizes exist? → ThreeShape →
Rules it sets (1)- For the shape of a status badge, use radius.badge (pill). Don't use a rectangle. Pills sit softly next to text.Shape →
- Why
- Three
- Why
Control, badge and container corners differ.
- Because of
- Shape · Which shape roles does it need? → Controls, badges 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
- Rounded
- Why
Rounded corners feel friendly.
- Because of
- What should the brand feel like? → Warm
- What it decided (1)Rules it sets (1)
- For the corners of buttons and inputs, use radius.control (rounded). Don't use sharp corners. Rounded corners match the warm reading tone. Sharp corners feel technical next to long text.Shape →
- Why
- Controls and cards
- Why
Corners show on buttons and article cards.
- Because of
- What is the main content? → Long-form text
- What it decided
It sets the values of the shape tokens: Shape →
- Why
- Only what floats
- Why
Only menus and dialogs float.
- Because of
- What must the interface protect? → Attention on the content
- What it decided (3)Answers it led to (2)
- Elevation · How many shadow levels exist? → OneElevation →
- Elevation · Where does elevation show? → Menus and dialogsElevation →
Rules it sets (1)- For a card on the page, use a border, no shadow. Don't use a strong shadow. Cards stay flat on the page; shadows are for floating things.Elevation →
- Why
- One
- Why
One shadow for floating things.
- Because of
- Elevation · What rises above the page? → Only what floats
- What it decided
It sets the values of the elevation tokens: Elevation →
- Why
- Space
- Why
Space separates groups; lines would interrupt reading.
- Because of
- Which outcome matters most? → Reading comfort
- What it decided (3)Rules it sets (1)
- Between page sections, use space.gap.section, no line. Don't use a divider line. Space alone separates sections; lines add noise.Spacing →
- Why
- Soft
- Why
Soft shadows suit warm paper.
- Because of
- What should the brand feel like? → Warm
- What it decided
It sets the values of the elevation tokens: Elevation →
- Why
- Menus and dialogs
- Why
Menus and dialogs are the only layers.
- Because of
- Elevation · What rises above the page? → Only what floats
- What it decided (1)Rules it sets (1)
- For a menu or dialog, use elevation.overlay and a dimmed page. Don't use no shadow. The dimmed page focuses the reader on the dialog.Elevation →
- Why
- Feedback and guidance
- Why
Motion confirms actions and guides between pages.
- Because of
- Who uses it most? → Occasional visitors
- What it decided (3)Answers it led to (2)Rules it sets (1)
- When someone asks for less motion, use no motion. Don't use reduced motion. A shorter motion still moves. When people ask for less motion, nothing moves.Motion →
- Why
- Two
- Why
One speed for feedback, one for panels.
- Because of
- Motion · What is motion for? → Feedback and guidance
- What it decided
It sets the values of the motion tokens: Motion →
- Why
- Standard ease-out
- Why
A standard ease-out is calm.
- Because of
- What should the brand feel like? → Warm
- What it decided
It sets the values of the motion tokens: Motion →
- Why
- Moderate
- Why
Moderate speed feels calm.
- Because of
- What should the brand feel like? → Warm
- What it decided (2)Rules it sets (1)
- For hover and press feedback, use motion.duration.feedback (moderate). Don't use a fast flash. Moderate speed feels calm in a slow reading flow. A fast flash feels jumpy.Motion →
Variants it picks (1)- Button's hover state. Moderate feedback that feels calm.Button →
- Why
- State changes and panels
- Why
State changes and opening panels move.
- Because of
- Motion · What is motion for? → Feedback and guidance
- What it decided
It sets the values of the motion tokens: Motion →
- Why
- Actions, status and navigation
- Why
Occasional readers need icons for save, share and navigation.
- Because of
- Who uses it most? → Occasional visitors
- What it decided (3)Rules it sets (1)
- For an icon with no label, use not used: always add a word. Don't use an icon button. Occasional visitors do not know icons.Iconography →
Variants it picks (2)- Button's icon size isn't used. Occasional visitors do not know icons: always add a word.Button →
- Input group's inline-start align. The search icon before the text, with the visible label above the field.Input group →
- Why
- One
- Why
One size next to text.
- Because of
- Iconography · How big are icons next to text? → Match the text
- What it decided
It sets the values of the iconography tokens: Iconography →
- Why
- Outline
- Why
Outline icons stay quiet beside text.
- Because of
- What must the interface protect? → Attention on the content
- What it decided (1)Variants it picks (1)
- Empty's icon variant. A quiet outline icon in a small tile, above a warm invitation to save an article.Empty →
- Why
- Match the text
- Why
Icons match the text size.
- Because of
- What must the interface protect? → Attention on the content
- What it decided (1)Answers it led to (1)
- Iconography · How many icon sizes exist? → OneIconography →
- Why
- Navigation
- Why
Icons help most in navigation.
- Because of
- Who uses it most? → Occasional visitors
- 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 publication, one brand.
- 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; dark helps night reading.
- Because of
- Where do people use it? → Anywhere, on any device
- 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 inverting images. Only semantic colors change; the reading layout stays.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 gets its own value 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
Status is rare; color and a word are enough.
- Because of
- What accessibility level do we commit to? → AA
- What it decided (8)Rules it sets (2)
- For an error message, use color.status.danger and a plain sentence. Don't use color alone. The sentence says what to fix; color only draws the eye.Color →
- For a status, use badge pill with a word. Don't use an icon alone. Status is rare, so readers never learn an icon for it. A word is clear the first time.Color →
Variants it picks (6)- Alert's destructive variant. A failed save or sign-up: calm, take the blame, offer the way forward.Alert →
- Badge's neutral tone. Saved: waiting for you; nothing is wrong.Badge →
- Badge's info tone isn't used. Topics and reading states need no news tone; status is rare.Badge →
- Badge's success tone. Finished: you read it to the end.Badge →
- Badge's warning tone. Out of date: the facts may have changed since it was written.Badge →
- Badge's danger tone isn't used. Nothing in an article fails; errors are calm sentences, not labels.Badge →
- Why
- AA
- Why
AA contrast, with large text helping further.
- 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
Readers are often on phones.
- Because of
- Where do people use it? → Anywhere, on any device
- What it decided (6)Answers it led to (1)
- Accessibility · Which states get their own visible value? → Those and pressedAccessibility →
Rules it sets (1)- For the smallest clickable thing, use size.control.default (touch). Don't use a compact control. Many readers are on phones.Accessibility →
Variants it picks (4)- Button's default size. Every button, at touch size: many readers are on phones.Button →
- Button's compact size isn't used. Many readers are on phones: no compact controls.Button →
- Item's default size. Every row, at touch size: many readers are on phones.Item →
- Item's sm size isn't used. Many readers are on phones, and rows are read, not scanned.Item →
- Why
- Long text
- Why
Long text needs steady contrast and line length.
- Because of
- What is the main content? → Long-form text
- 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? → Rarely
- 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? → Rarely
- What it decided
It sets the values of the naming tokens: Naming →
- Why
- By role
- Why
Role names survive a redesign.
- Because of
- Who maintains the system? → A small team
- 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? → A small team
- What it decided
It sets the values of the naming tokens: Naming →
- Why
- Component keys
- Why
A component API keeps changes local.
- Because of
- How fast does it change? → Rarely
- 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. Raw values break dark mode and the next redesign.Naming →
- Why
- Labels, messages and articles
- Why
Articles are the product; the UI copy must match them.
- Because of
- What is the main content? → Long-form text
- What it decided
It sets the values of the voice and tone tokens: Voice and tone →
- Why
- One per moment
- Why
Warm by default, calmer for errors.
- Because of
- What must the interface protect? → Attention on the content
- What it decided (4)Rules it sets (1)
- For the words of an error, use calm and helpful. Take the blame, offer the way forward. Don't use blaming the reader. A calm error keeps the reader's trust.Voice →
Variants it picks (3)
- Why
- Principles and examples
- Why
Editors work from principles and examples, not word lists.
- Because of
- Who maintains the system? → A small team
- What is the main content? → Long-form text
- What it decided
It sets the values of the voice and tone tokens: Voice and tone →
- Why
- Conversational
- Why
Talk to one reader, like a good editor.
- Because of
- Who uses it most? → Occasional visitors
- What should the brand feel like? → Warm
- What it decided (9)Rules it sets (5)
- For a button label, use a warm verb a reader would say. Don't use "Submit" or "Click here". Buttons are part of the reading voice.Voice →
- For the words of an error, use calm and helpful. Take the blame, offer the way forward. Don't use blaming the reader. A calm error keeps the reader's trust.Voice →
- For a success message, use warm and brief, with what happens next. Don't use a bare "Done". A warm close invites the reader back.Voice →
- For an empty state, use an invitation, not a dead end. Don't use "No items". An empty list is a chance to show what the product offers.Voice →
- For a confirmation question, use gentle and clear about what changes. Don't use guilt or pressure. Readers come back when leaving felt respectful.Voice →
Variants it picks (4)- Toast's neutral tone. A calm note: You're all caught up.Toast →
- Toast's success tone. Warm and brief, with what happens next.Toast →
- Toast's danger tone. Calm and helpful: take the blame, offer the way forward.Toast →
- Empty's icon variant. A quiet outline icon in a small tile, above a warm invitation to save an article.Empty →
- Why
- Articles and guides
- Why
Most words are in articles and guides.
- Because of
- What is the main content? → Long-form text
- What it decided
It sets the values of the voice and tone tokens: Voice and tone →
- Why
- Core, plus content and media
- Why
Readers need sections, navigation and little else.
- Because of
- What is the main content? → Long-form text
- What is the main task? → Read start to end
- What it decided
It sets the values of the components tokens: Components →
- Why
- Only what today's screens use
- Why
Actions are rare, so the components today's pages use cover them.
- Because of
- How often do people repeat actions? → Rarely
- Who maintains the system? → A small team
- What it decided
It sets the values of the components tokens: Components →
- Why
- A use scenario needs it
- Why
A component joins only when reading needs it.
- Because of
- How long is one visit? → One sitting
- What is the main task? → Read start to end
- What it decided
It sets the values of the components tokens: Components →
- Why
- Only when the meaning changes
- Why
Pages stay calm when a component changes only with its meaning.
- Because of
- How visible is the brand in the interface? → Present
- Which outcome matters most? → Reading comfort
- What it decided
It sets the values of the components tokens: Components →
- Why
- Articles
- Why
Components sit inside and around articles.
- Because of
- What is the main content? → Long-form text
- What it decided
It sets the values of the components tokens: Components →
- Why