Tune every card so its text is easy to read.
Each card’s text is checked against its colors and texture. 4.5 is the minimum; set the goal below and watch the cards adjust.
Every branded card is set to one WCAG luminance per appearance, so readability matches on every card of every business. Since October 19 (the vivid finish, Hannah) each card keeps the brand’s own hue and takes its graded share of the chroma sRGB shows there: vivid brands stay vivid and muddy ones true, so an olive stays olive. The luminance is solved from the 8.2:1 text goal and the ink the card actually gets, and every grain speckle and blend keeps 4.5:1.
finishBrand(settings, brand, placeholder, intake, tintColor, name): BrandFinish
Try it: which text color reads on a card?
Relationship functions
| Function | From → to | Home |
|---|---|---|
| paletteColor | family → the color cards render it as | finish.ts |
| textTintColor | primary → text tint | finish.ts |
| finishLuminance | contrast goal + ink → card luminance | finish.ts |
| cardAssignments | brand → each card’s color, companion, and shade | finish.ts |
| inkChoice | surfaces → text color | finish.ts |
| actionPill | ink + surfaces → button base and floor | finish.ts |
| placeholderTone | sweep index → grayed tone at 6.4:1 | finish.ts |
| markTile | brand → initials tile colors | finish.ts |
| logoTileGround | declared + sampled background + brand → logo tile | finish.ts |
| accentColors | brand → accent colors and inks | finish.ts |
| lightText | ink → whether the card’s glass dims | finish.ts |