Snapshots

Ten rules for every screen, and the higher rule wins an argument

Waiting on you
  • Truth first: every number has a source chip, and unsure ones say To confirm.
  • The glance rule: a founder gets any card in three seconds, in 25 words at most.
  • One main button per screen, and one of each thing, from sheets to toasts.
  • The brand's photos carry the colour; the hero colour stays on the character and main button.
  • The live build is inconsistent: 309 surfaces today against a planned 22.
309Surfaces a person can reach
Your call

Does truth outrank every brand as the top rule, and does dark stay the default?

Design · 3.1

Design principles

DraftLast checked Mon Oct 26Owner Param

Answer

Brew's screens follow ten rules, quiet first, one of each thing, the brand's photos carry the colour and every card lands in one glance, and when two designs disagree the higher rule on this list wins.

Today

Checked 26 October 2026 against brew origin/main at b91e364 and the brand direction files.

What the live product looks like now:

Fact Source
The live look is design system v13: dark by default, light follows the device, one feed column with gutters for stickers and margin notes brew origin/main public/feed-system.css:1-4
The feed column token is 530 px wide, though the file header still says 500 brew origin/main public/feed-system.css:4, 36
Text is SF Pro Text with Inter as fallback, plus Caveat as a hand font brew origin/main public/feed-system.css:31-32
Inter and Caveat load from Google Fonts on every page brew origin/main public/index.html:6
Three tiers of glass sit in the tokens: chrome, action and row brew origin/main public/feed-system.css:16-21
The only brand colour in the chrome is a per brand wash taken from the brand's pack brew origin/main public/feed-system.css:26-27
The build has 309 surfaces a person can reach, 42 routes, 23 sheet styles, 163 button classes, 25 empty state styles, 12 loader kinds and 44 status lists brand-directions/_shared/surface-map.md:9-18
Param called the build inconsistent and more complicated than it needs to be, and asked for one consistent product brand-directions/_shared/product-model.md:3-5
Quiet page rules already in force: one sentence under each title, no zero tiles, no empty sections, underline tabs, one signal per state, history folded away, about six items then Show all memory brew-quiet-ui
The jam stage follows one contract: one name in the header, only the piece on stage, one primary button, Draft, Make, Send memory brew-one-stage
Every make leads with one version, then Redo it for another take, never three options memory brew-one-version
Every wait uses one loader, the b mark that fills and steams memory brew-loader
Connector sheets are solid, never glass, with a pinned header and footer memory brew-connect-sheet-design
A card's button must fit what it makes, and count rows follow today's facts memory brew-card-fit-and-counts
Labels are sentence case; the 26 October jam fit removed the last uppercase labels brew origin/main public/jam-fit.css:30-32
Top rule for every fix: it works for every brand, card, widget and view memory feed-for-all-brands

What is already decided for tomorrow:

Decision Source
One product model for all five brand directions; a direction changes only the character, the skin, the character's words and the sound brand-directions/_shared/product-model.md:3
One of each thing: one top bar, one tab set, one bottom bar, one sheet, one menu, one toast, one empty state, one error state, four button kinds brand-directions/_shared/ia.md:147-153
The brand's own pictures carry the colour; the hero colour is for the character, the main button and focus, never for cards brand-directions/_shared/ia.md:152
The glance rule: a founder gets any card in three seconds without reading past the picture brand-directions/_shared/product-model.md:166-168
Nothing may look or read like generic AI output brand-directions/_shared/no-ai-look.md:1-5
Fonts are the fastest AI giveaway: never Inter, Poppins, DM Sans and the like; each direction owns its type memory brand-directions-2026-10-25
Super clean branding: rich and specific, but few faces, a tight scale, generous space, no clutter memory brand-directions-2026-10-25
Fun and playful everywhere, never serious or creepy, user first memory brand-directions-2026-10-25

Tomorrow

The ten principles, in priority order. When two of them pull apart, the one higher on the list wins.

# Principle What it means on a screen Version Tag
1 Truth on the screen Every number has a source chip. Unsure numbers carry To confirm. Invented examples carry the Sample tag. No screen promises posting, scheduling or results before the version that does it v1 Stays
2 Every brand, every screen A design works for every brand, every card kind and every view, with real data that is long, short, missing or odd. Never a fix for the one brand in the screenshot v1 Stays
3 One next step One main button per screen, in the bottom bar where there is one: Make it on a pick, Hand it off in Make it v1 Changes
4 The glance rule A closed card is five things in 25 words at most. If it needs a second look, it is wrong v1 Changes
5 Quiet One sentence under a title, no zeros, no empty boxes, details folded, long lists cut at about six v1 Stays
6 One of each thing One way into each thing, one sheet, one toast, one empty state, one error state, four buttons, one word per concept v1 Changes
7 The brand's photos carry the colour Calm neutral surfaces. The direction's hero colour only on the main button, focus, the character and small accents v1 Changes
8 Plain words on controls Buttons, tabs and cards use the plain word in every direction. The character's words live around them v1 New
9 The character never blocks a control It lives in named slots, reads app state and can be switched off with nothing breaking v1 New
10 Made on purpose No gradients, glass, sparkle icons, default fonts or identical section rhythm. Each direction commits to one idea from its own world v1 Changes

What each one replaces:

# Today Tomorrow
3 A jam's next step is said in four places; 16 bars and 13 main button styles One bottom bar, one main button
4 A closed card carries about 60 to 90 words before a tap 25 words at most, about 19 on the sample card
6 309 surfaces, 16 ways into a jam, 10 hand off buttons 22 screens and sheets, one way into each thing
7 Grey surfaces, white main buttons, a brand wash, glass tiers Neutral surfaces tinted a little toward the direction, one hero colour, solid sheets
8 Many words for one thing, such as Redo it, Another take and Make it again One plain word per concept, from the word set in Content design
10 Inter and SF Pro as the only voice, glass tiers, logo stickers Two Google font families per direction, chosen to avoid the default faces

Later versions add to the rules and never relax them:

Version Addition Tag
v2 When the product posts and schedules, every post shows where and when before it goes, and Undo stays reachable until it goes New
v3 When the product measures, How it went shows the number, its source and the date range, never a lift we did not measure New
v4 When it runs ads within rules, the rules and the limits sit on the same screen as the action, and Need your yes stays the control centre New

How we do it

  1. Before drawing anything, find the existing kit part in Components. Build a new part only when no part fits, and add it to the kit, never to one screen.
  2. Write the plain labels first, from the word set. Then add the character's words around them, in the direction's voice.
  3. Draw every state the screen can be in. See States.
  4. Put the screen on real brand data from at least three brands of different kinds, plus the sample candle store with its Sample tag.
  5. Run the Design QA checklist.
  6. When two principles disagree, go down the list above and take the higher one. Write the call in the pull request.
  7. If a design still feels wrong, measure the cause and fix it. Do not offer style options. memory measure-before-style-options

Numbers

Number Definition Today Where it is measured Status
Surfaces Pages, views, sheets, overlays and menus a person can reach 309 Surface map, regenerated from the build Measured
Words on a closed card Visible words before a tap about 60 to 90 Card lint over every served card Measured by hand, lint Proposed
Main buttons per screen Buttons in the hero style visible at once up to several Screen kit audit at 390 and 1280 wide Proposed
Sheet styles Distinct sheet classes 23 CSS class audit Measured
Button classes Leading classes on buttons 163 CSS class audit Measured
Five second test pass rate Share of people who can say what the product does after five seconds on Today none run Founder sessions Proposed

Open

  1. Does truth outrank every brand as the top rule, or the other way round? Proposal: keep truth first, since a wrong number on one brand is worse than a missing feature on every brand.
  2. The live product is dark by default. Should the redesign keep dark as the default or follow the device? Proposal: follow the device, with dark as the fallback, because both themes ship for every direction.
  3. The glass tiers and the per brand wash are still in today's tokens. Remove both in the restyle? Proposal: yes, remove the glass tiers in v1 and keep the brand's photos as the only brand colour.
  4. Should the principles page carry a short example screen for each rule? Proposal: yes, one frame from the screen kit per rule, once a direction is picked.
Sources
  • brand-directions/_shared/product-model.md:3-5, 99-113, 129-142, 162-213, 221-250
  • brand-directions/_shared/ia.md:147-176
  • brand-directions/_shared/kit-contract.md:31-37
  • brand-directions/_shared/no-ai-look.md:1-58
  • brand-directions/_shared/surface-map.md:9-18
  • brand-directions/BRIEF.md:9-24, 147-175, 241-276, 499-508
  • brand-directions/book/content/d1.js:5-75, 121-176
  • brew origin/main b91e364: public/feed-system.css:1-40, public/index.html:6, public/jam-fit.css:1-2, 30-32
  • memory: brew-quiet-ui, brew-one-stage, brew-one-version, brew-loader, brew-connect-sheet-design, brew-card-fit-and-counts, feed-for-all-brands, brand-directions-2026-10-25

Source file content/design/design-principles.md · For agents: Markdown · JSON