platepilot

Design tokens and accessibility

Status

packages/design-tokens is the source of shared UI primitives. M1 Task 7 implements semantic status colors, minimum touch/control sizes, reduced-motion values, shared accessible actions/notices, and Simple/Standard presentation. The M1 review pass (2026-09-19) replaced the muted green palette with the playful direction described below. This document remains the contract for future components and does not claim production accessibility certification.

Visual direction: playful, warm, adult-facing

PlatePilot looks friendly on purpose: a cream background, a bold red primary (#DA291C) with a golden yellow accent (#FFC72C) and deep brown text (#27251F), a green secondary for water and confirmations, bright accent fills for meal slots, large rounded cards (28 px radius), pill-shaped controls, and decorative emoji glyphs. Destructive actions use a darker red so they never read as the primary call to action. The intent is to make everyday logging feel light rather than clinical. The audience is still adults aged 18 and older, so the copy, gating, and disclaimers do not change; only the presentation does.

Rules that keep the playful style accessible and adult-facing:

Token model

Designs should reference semantic roles, not raw values. Engineering and Figma must use the same reviewed values.

Category Semantic roles
Color surface, surface-muted, surface-raised, text, text-muted, border, action, action-hover, focus, success, warning, error, info
Typography display, heading-lg, heading-md, body, body-strong, label, caption, numeric
Spacing A documented base scale used consistently for inset, stack, inline, and screen gutters
Shape Small/medium/large radius and fully rounded action roles
Elevation Flat, raised, overlay; pair elevation with a visible boundary
Motion Short/medium durations and standard/emphasized easing, with reduced-motion alternatives
Size Minimum touch target, control height, icon sizes, and readable content widths

Do not invent values in a one-off screen. If a needed semantic role is missing, propose it in the token package and handoff notes. The implementation package remains the value source of truth.

Component state matrix

Every interactive component handoff must include:

Disabled controls need an explanation when the reason is not obvious. Prefer allowing an action and explaining a recoverable error over unexplained disabling.

Accessibility target

Target WCAG 2.2 AA and platform accessibility conventions before beta:

Test with screen readers and keyboard/switch-style navigation on each supported platform; automated checks alone are insufficient.

Nutrition-specific presentation

Forms and media

Validation checklist