Zetta v1.6

Resources

Known gaps

Where Zetta v1.6 is genuinely silent, build from the foundation tokens and the guardrails, and state your assumptions — don't invent a new token system. This is the consolidated, honest list of what the spec leaves open.

Genuinely unspecified

State assumptions and build conservatively from the foundation.

  • A high-contrast light variant — the Accessibility theme is pure-black only. There is no light-background high-contrast option.
  • Dyslexia-friendly and cognitive-accessibility options — no alternate typeface, line-spacing, or reading-mode provision.
  • Localization and RTL — a language switcher component exists, but it is UI only: no mirroring rules, no bidirectional layout, no locale-specific type or number handling.
  • Theme-transition animation — a theme switcher exists, but no transition between themes is specified. Swap instantly rather than inventing one.
  • Motion applicationmotion tokens (durations / easings) exist, but per-component mapping is incomplete, and the motion foundation and component files disagree in places.
  • Data-viz standards — chart colours exist (chart-1…5 + greyscale in Accessibility), but chart-type / axis / tooltip / legend / empty-state specs do not. Use the ramp plus non-colour separation (pattern, dash, label) in Accessibility.
  • Page-level states — empty / loading / error states; form-validation UX; focus-trap (specified behaviourally for dialog / drawer, but not as component code).
  • Governance documentation — review checklists and the contribution / versioning policy are out of scope for the spec itself.

Known issues carried into v1.6

Internal inconsistencies the spec ships with, each awaiting a design decision. These are not licence to improvise — work around them as described.

  • The brand shade ramp is non-monotonicbrand-600 (#b6d600) is lighter than brand-500 (#84cc16). Never walk the ramp programmatically; it is a supporting reference, not a perceptually uniform progression. {colors.brand} is the source of truth.
  • status-icon-* holds two incompatible types — hex in Light and Dark, but Material Symbol glyph names in Accessibility. Any typed token pipeline breaks on theme switch, so never type this family uniformly across themes.
  • Retired roles still ship in the Accessibility theme — it still specifies Secondary and Quaternary button variants that v1.5 deleted. They are not built here.
  • Brand is still used for interactive state in a few component specs (badge-primary, banner-announcement, icon-tile-brand, button-brand), which sits awkwardly beside guardrail 1. badge-primary's brand fill is correct — the token name is what will change.
  • Four untokenised rgba() values remain in the badge, progress-indicator and table specs.
  • Source-of-truth conflicts — the motion Animation Library and the component motion map disagree (skeleton 400ms vs 1.5s), as do sidebar padding and the 1440px breakpoint across documents. Where v1.6 contradicts itself, the zetta-design-md skill carries the designer's rulings; build to the ruling.

Out of core by design

Product-specific concerns deliberately live in the consuming product's own token layer, never in Zetta core — so the system stays small and every project can extend it without forking.

  • Business / domain colours — lifecycle states, incident / category types, report / section accents.
  • Product compositions — card header / footer / action areas, session cards.

Intentional contrast trade-offs

Documented on purpose — don't "fix" these.

  • border-strong on canvas is intentionally below WCAG SC 1.4.11 (3:1) in the standard themes (Light ≈1.45:1, Dark ≈2.80:1) — chosen for visual density. The Accessibility theme overrides it to white for full compliance.
  • A few Dark semantic -text-on--bg pairs are "moderate" (e.g. danger-text ≈5.89:1) — accepted; AAA is enforced only in the Accessibility theme.
  • WCAG AAA is enforced exclusively in the Accessibility theme — Light / Dark contrast figures are informational.

Per-component gaps are also called out in each component's Known gaps section (see, for example, Chart and Calendar).