One primary action per surface
Give each section, card or dialog at most one primary-styled action.
Draft — not yet reviewed by a maintainer
Why it matters
When two actions share the strongest style, people stop to compare them and neither reads as the next step. One primary action makes the intended path obvious; everything else becomes secondary or a link.
How to check it
Count primary-styled actions per section and dialog at 1440 and 390: one at most.
The default it guards against
A hero with two equally filled buttons ("Get started" and "Book a demo"), or the same filled button repeated on every card in a grid.
Library items that apply it
Where it comes from
- design.md §3 (principle 4: one primary action per surface)
- design.md §15 (multiple competing primary buttons)
- docs/v1.2/plan.md §6.4 (hero default: two equal CTAs)
- Review dimension: hierarchy (docs/quality-gates.md)
Repository paths refer to the Tessli repository ; WCAG references are to WCAG 2.2.