Information and UI components must be presentable to users in ways they can perceive - not invisible to all their senses.
High
Con trast
Access.
Design that works for everyone - high contrast ratios, visible focus rings, clear semantic structure, and never relying on colour alone to convey meaning. Accessibility is not a feature. It is the baseline.
High weight = clear
Never below 700w
1.75 line-height
Never below 16px
Cyan = info category
// Buttons - try Tab key
// Input Fields
// Status & Progress
UI components and navigation must be operable by keyboard alone. No interaction should require a mouse.
Information and UI operation must be understandable. Text must be readable and predictable. Error messages must be explicit.
Dashboard Overview
Weekly activity · 7 days
4.5:1 - Normal Text
Minimum contrast ratio for body text at any size. The most common WCAG requirement. All white text on black far exceeds this at 21:1.
3:1 - Large Text & UI
Lower threshold for text 18pt+ (or 14pt bold) and for user interface components like borders, icons, and focus rings.
7:1 - Enhanced Text
Highest contrast standard for text. Recommended for critical information. All colours in this palette exceed 7:1 - most exceed 15:1.
Focus Visible - Always
Every interactive element must show a visible focus indicator. This page uses a 3px solid yellow ring with 3px offset - impossible to miss.
Never Below 4.5:1
Measure every text/background pair with a contrast checker before shipping. Grey text on dark backgrounds looks sophisticated and fails WCAG simultaneously. Use white.
Focus Rings Are Non-Negotiable
Never use outline:none without a custom replacement. The yellow 3px ring in this system is the visual anchor for keyboard users. Remove it and the interface is unusable for millions of people.
Colour Is Not the Only Signal
Error states use red border AND an error message with an icon. Success uses green AND a checkmark. Colour-blind users see shape, weight, and text - not just hue.
HTML Structure Is the Interface
Correct use of role, aria-label, aria-live, aria-current, and heading hierarchy means the page is navigable by screen reader alone. Semantics precede styling.