learn-product-design-with-phoebe / Session 4 of 6
Learn Product Design with Phoebe · Session 4 of 6

The visual system

Visual design is where people expect taste to take over, and it is actually where the most measurable part of the craft lives. Tonight you take the grey wireframe from session 3 and give it a type scale, a spacing scale, one clear hierarchy and a palette - with a scorer that reads the real rendered pixels and computes the actual WCAG contrast ratio as you work. You will get the screen to 100 out of 100. Then you will switch on the change everybody asks for, and watch it cost you 42 points and half your contrast.

🟡 Medium The scorer session - everything runs in your browser Contrast is genuinely measured, not scripted 45 min
0-3 · Welcome 3-18 · Scales, hierarchy and real contrast 18-40 · Build-along: the screen scorer 40-45 · Q&A
Part 0

Where we are

Session 3 produced a structure in grey boxes. Tonight it becomes a screen, and for the first time in this course something can be checked rather than argued about.

🎫 Clear all three quiz questions to stamp your passport Live = presented in the 45 minutes Self-study = the full depth, after class

★ What you walk out with tonight. A type scale and a spacing scale written down as named values, a screen that scores 100 on measured criteria, and the ability to answer "can we brighten it up" with a number instead of a sigh.

LiveWhy a scale, rather than choosing each value2 min▶

Every size and every gap you pick individually is a decision you will have to make again, slightly differently, on the next screen. Twenty screens later the product has 31 font sizes and 40 spacing values, none of them wrong on their own, and the whole thing feels subtly cheap without anybody being able to point at why.

A scale is a small set of allowed values. It removes the decision, which is the actual benefit - not tidiness, fewer decisions. And it is what makes session 6's handoff possible, because named values are the only thing a developer can implement without guessing.

Three type sizes used consistently beats nine used expressively, and this is one of the few places in design where that sentence is not a matter of taste.

Part 1 · covers the scales

Two scales, and hierarchy comes out almost free

6 min live
A type scale · four sizes, one ratio 24 · page title 17 · section 14 · body 12 · meta Four sizes. Every screen in the product uses these. A spacing scale · powers of one step 4 · inside a chip 8 · between related lines 16 · inside a card 24 · between groups 40 · between sections Five values. Proximity does the grouping, no lines needed. The alternative, which is what most products actually have 31 font sizes and 40 spacing values, each one reasonable when it was chosen, and a product that feels subtly cheap in a way nobody in the room can point at.
🔍 Click to zoom - the benefit is not tidiness, it is that you stop making the decision
LiveOne primary action, and what the others become4 min▶

Hierarchy is not decoration, it is arithmetic about attention. Five buttons styled identically is five decisions handed to a person who came to make one.

  • One filled button. The thing most people came to do. On Daybreak's screen, after session 2, that is Pause deliveries.
  • Everything else becomes a text link. Still there, still one tap, visibly secondary. Note what this does not do: it does not hide or slow anything, which is the distinction a reviewer will test you on.
  • Destructive actions are quiet, not hidden. Cancel is a text link in the normal text colour. Not red, not shouting, not buried. Red on a destructive link makes it more eye-catching, which is the opposite of what you want.

The test for a hierarchy that works: squint at the screen, or blur it in your browser's dev tools. If more than one thing survives the blur as "the loud thing", you have two primaries and therefore none.

Part 2 · covers colour

Contrast is the one part of visual design with a right answer

6 min live

Almost everything else on this page is judgement. This is arithmetic, it is in a published specification, and it settles arguments that would otherwise run for a week.

WCAG 2.1 minimums 4.5:1 for normal text (AA) · 3:1 for large text · 7:1 for AAA Large means about 18.5px bold or 24px regular, and up Pastel violet on white 1.67:1 · fails the "friendlier" palette Light grey on white 2.64:1 · fails what Daybreak ships today Slate violet on white 9.30:1 · AAA and it still looks calm Passing AAA did not require anything dramatic. It required not using grey for text.
🔍 Click to zoom - the third row is the point: readable and quiet are not opposites

That seeded pair is the text colour Daybreak currently ships on white. Swap the first value for #4A4458 and run it again. Then try your own product's body-text grey, which is the moment this usually stops being theoretical.

Self-studyColour decisions that are not contrast4 min▶
  • Never carry meaning in hue alone. Roughly one in twelve men has some form of colour vision deficiency. Pair every colour signal with a word, an icon or a position. "Paused" in green text is a design that excludes people; a "Paused" label with a pause icon is not.
  • One accent, used sparingly, is what makes it an accent. The moment there are four accent colours on a screen, none of them means anything and your primary action stops being visibly primary.
  • Test the state you are least proud of. Disabled buttons, placeholder text and helper text are where contrast failures live, because they are deliberately faint and nobody checks them.
  • Dark mode is a second palette, not an inversion. Contrast ratios do not survive being flipped, and pure white on pure black is uncomfortable to read for long. If you cannot maintain two palettes properly, shipping one good one is the honest choice.
Build-along

The screen scorer

★ 22 min · everyone builds

Daybreak's screen, live and rendered, with the levers from tonight and sessions 2 and 3. The contrast row is genuinely measured: it reads the colours of the pixels you just changed and computes the WCAG ratio. The other rows are a stated rubric. Both are labelled on the widget.

0 / 100 · contrast 2.64:1 · 41 seconds to find pause. The screen Daybreak ships. Nothing about it looks broken in a screenshot, which is exactly why it survived three years.

30 / 100 · contrast 9.16:1. One change: stop using grey for text. That is 30 of the 100 points, it is the largest single move on the board, and it took one colour value.

50 / 100 · 36 seconds. One primary action, the rest demoted to links. Notice nothing was removed or hidden - the screen simply says which thing matters.

62 / 100. One spacing scale. The groups become visible without a single divider line being drawn.

76 / 100 · 27 seconds. Task-named buttons instead of container names. "Pause deliveries" rather than "Manage". Session 3's rule, now worth 14 points and 9 seconds.

88 / 100. Empty, loading and error states designed. On this screen these are not edge cases and the rubric weights them accordingly.

100 / 100 · 5 seconds. Pause on the screen rather than inside a menu. From 41 seconds to 5. That single lever is session 3's entire argument, scored.

Start from "the screen we inherited" and read the score. Zero. Then look at the mock: it is not ugly. This is the important part - a screen can look perfectly professional and score zero, which is why measurement beats impression.

Switch on the contrast lever alone. Watch the measured ratio go from 2.64 to 9.16 and the score to 30. One colour value, 30 points. Nothing else on the board pays like that.

Climb the rest of the ladder in order and read the "measured on" line each time. It tells you which piece of text is currently your worst, which is exactly the feedback a real audit gives you.

Get to 100, then look at the mock properly. It is a calm, plain screen with one filled button. There is no cleverness in it anywhere. That is what a 100 looks like, and it is worth sitting with for a moment.

Now switch on "brighten it up, make it feel more friendly". This is the most requested change in design history and it is on the board as an anti-lever: 100 drops to 58. Measured contrast falls from 9.30 to 1.67. Time to find pause goes from 5 seconds to 11.

Read why, row by row. Contrast collapses because pastel text on white genuinely fails - that number is computed from the pixels, not scripted. Hierarchy drops from 20 to 8 because four competing button colours means the screen no longer says which action matters.

Practise the sentence. Not "I do not like it". Instead: "That palette measures 1.67 to 1. AA needs 4.5. Here are three brighter options that pass, pick one." You have just turned a taste argument into a constraint plus a choice, which is the entire job.

Now score your own screen. Take the six rubric rows to the wireframe you brought from session 3 and grade it honestly. Run your real body-text colour through the contrast checker above. Most people find one failure in the first two minutes.

The anti-lever is not saying colour is bad. It is saying that "make it friendlier" is a goal, not a change - and that the version of it people reach for first happens to break the only part of visual design with a published right answer. Bright and readable is entirely achievable. It is just not what you get by lightening the text.

Homework

Before session 5

30 min
  1. Write your type scale and spacing scale down as named values. Four sizes, five spaces. Named, because session 6 hands these to a developer.
  2. Run your product's body text, helper text and placeholder text through a contrast check. The last two are where the failures hide.
  3. Blur-test one of your screens. Squint or use the dev tools blur filter. Count how many things survive as "the loud thing". More than one means none.
  4. Find one place where meaning is carried by colour alone. A status dot, a red number, a green tick without a label. Add a word.
  5. Apply your scales to the session 3 wireframe. Bring the result to session 5, where every word on it gets written on purpose.
Check yourself

Three questions

Clear all three and session 4 gets stamped in your passport.

1 · On the scorer, one lever alone is worth 30 of the 100 points. Which, and why that much?

Contrast carries 30 points because it is measured rather than judged, and because failing it is not a matter of preference - it makes the screen unusable for some people in some conditions. It is also the cheapest fix on the board: one colour value.

2 · Switching on "brighten it up" takes the screen from 100 to 58. What actually happened?

Nothing is penalised for being bright. The contrast row is computed from the rendered pixels, so it fell because the colours genuinely became unreadable. Bright and readable is achievable - it is just not what you get by lightening the text.

3 · Why should a destructive action like Cancel be quiet rather than red?

A red button is a loud button. If the goal is that people who mean to cancel still can, easily, while people who meant to pause find pause first, then cancel should be present, one tap, and visually calm. Hiding or slowing it would be a different thing entirely, and a reviewer will check which one you did.

Sources covered

What this session teaches, and where it came from

✓Type scale and spacing scaleFour sizes, five spaces, named. The benefit is fewer decisions, and named values are what makes session 6's handoff possible
✓WCAG 2.1 contrast4.5:1 AA for normal text, 3:1 for large, 7:1 AAA. Computed live in the browser on the real rendered colours, plus a checker you can paste your own hexes into
✓Visual hierarchyOne filled button, the rest as links, destructive quiet rather than red. The blur test as the check
✓Colour beyond contrastNever meaning in hue alone, one accent, test the faint states, dark mode as a second palette rather than an inversion
✓The anti-lever"Brighten it up" takes 100 to 58 with contrast measured at 1.67:1. The teaching move is the sentence it gives you: a constraint plus a choice, instead of an opinion
◐Brand systems, illustration, motion craftThis session builds one screen's system. Brand-level work lives in Phoebe's design-partner skills and learn-ai-design-with-phoebe

The scorer's rubric and every number on this page are written down in the course's source map, including which rows are measured and which are a teaching model.

Session 4 cheat sheet · pin this

Scales, not choicesFour type sizes, five spacing values. The benefit is fewer decisions, not tidiness.
4.5 : 1AA for body text, 3:1 large, 7:1 AAA. The one part of visual design with a right answer.
Stop using grey for text#9AA0A6 is 2.64:1. #4A4458 is 9.30:1 and still looks calm. 30 points, one value.
The blur testSquint. If more than one thing survives as the loud thing, you have no primary.
Quiet, not hiddenDestructive actions stay one tap away in normal text colour. Red is louder, not safer.
The sentence"That measures 1.67 to 1, AA needs 4.5, here are three brighter options that pass."