Status: Accepted
Date: 2026-02-23
Authors: OSHUN Studio Design Systems, OSHUN Web Engineering
Reviewers: Domain Leads (Yemaya, Isis, Hathor, Aja, Bellona), Project
Obsidian Program Design
Context and Problem Statement#
OSHUN Studio now has accepted IA (ADR-0013), visual identity (ADR-0014), and
typography (ADR-0015) decisions. A dedicated color-system decision is required
because Studio workloads rely heavily on color semantics for status, risk,
readiness, and cross-domain context.
Without explicit color governance, Studio risks:
- inconsistent semantic status signaling across domains
- domain accent overuse that harms usability and trust
- contrast regressions in high-density operational views
- drift between token definitions and runtime color usage
Decision Drivers#
- Semantic clarity: status colors must be deterministic and consistent.
- Cross-domain cohesion: domain accents should provide context, not override shared shell semantics.
- Accessibility compliance: color decisions must preserve AA contrast.
- Token governance: every color used in Studio should map to token contracts.
- Operational safety: critical states (error/warning/success/info) must remain immediately distinguishable.
Considered Options#
Option 1: Domain-Owned Color Systems#
Each domain controls its own color semantics and accents.
Pros:
- Local autonomy and domain expressiveness.
Cons:
- Inconsistent semantics and high cognitive switching cost.
- Elevated risk of accessibility drift.
Option 2: Shared Base Palette, Ungoverned Runtime Usage#
Provide shared tokens but allow unrestricted runtime color use.
Pros:
- Faster implementation.
Cons:
- No enforceable guarantees for semantic consistency.
- Drift between token definitions and UI usage.
Option 3: Unified Studio Color System with Governed Release Flow (Chosen)#
Use one Studio color model with semantic priority, domain accent constraints, contrast validation, and auditable release governance.
Pros:
- Predictable status signaling across all domains.
- Enforceable accessibility and token parity.
- Controlled and auditable release path for color changes.
Cons:
- Requires governance overhead and stricter release process.
Decision Outcome#
Chosen option: Option 3.
Studio color-system requirements:
- Semantic-first model: text/surface/accent/status semantics are primary.
- Domain accent constraints: domain accents are contextual and secondary to semantic status colors.
- Contrast certification: color bundles must pass contrast checks before production promotion.
- Token-only usage policy: Studio color usage must map to approved tokens.
- Release governance: draft -> validate -> approve -> publish with rollback.
Normative Rules#
Semantic Priority Contract#
- Semantic status colors (
success,warning,danger,info) are authoritative for state communication. - Domain accents must not replace semantic status colors in critical states.
- Surface and text contrast roles must remain stable across theme variants.
Domain Accent Contract#
- Domain accent application is limited to contextual indicators, non-critical highlights, and identity cues.
- Full-surface domain tints are prohibited for dense data and critical controls unless explicitly approved.
Accessibility Contract#
- Color changes must pass AA contrast for normal and large text contexts.
- High-contrast variants must preserve semantic meaning and legibility.
Release Validity Contract#
A color release is valid only when all are true:
- token schema and semantic mapping checks pass
- contrast validation checks pass
- role-authorized approval exists
- telemetry/audit records are complete
- rollback reference is present
Architecture Implications#
libs/oshun/design-tokensremains canonical source for color primitives and semantics.apps/oshun/web/src/design-system/tokens.tsremains web-layer color implementation.- Studio color governance workflows are implemented in
apps/oshun/weband integrated with audit/telemetry.
Acceptance Criteria (OST-00025)#
OST-00025 is complete only when:
- ADR exists at
docs/adr/ADR-0022-oshun-studio-color-system-and-token-governance.md. - ADR defines options, trade-offs, and chosen strategy.
- ADR defines semantic priority, domain accent, accessibility, and release validity contracts.
- ADR aligns with
ADR-0007throughADR-0015. - ADR aligns with
docs/releases/v1/design/brand-system.mdandlibs/oshun/design-tokens/src/tokens.ts. - ADR explicitly covers Yemaya, Isis, Hathor, Aja, Bellona, and Project Obsidian.
Consequences#
Positive#
- Consistent cross-domain state semantics.
- Lower risk of accessibility and color-drift regressions.
- Stronger operator trust in visual state communication.
Negative#
- Added governance and release ceremony for color changes.
- Requires strict adherence to tokenized usage.
Related Decisions#
docs/adr/ADR-0013-oshun-shell-architecture-and-domain-adapters.mddocs/adr/ADR-0014-oshun-web-and-pwa-strategy.mddocs/adr/ADR-0015-deep-linking-and-cross-domain-routing.mddocs/adr/ADR-0016-shared-identity-and-cross-domain-session-model.mddocs/adr/ADR-0017-offline-caching-and-sync-strategy.mddocs/adr/ADR-0018-analytics-taxonomy-and-event-naming.mddocs/adr/ADR-0019-oshun-studio-information-architecture.mddocs/adr/ADR-0020-oshun-studio-design-language-and-visual-identity.mddocs/adr/ADR-0021-oshun-studio-typography-system.md
References#
docs/releases/v1/design/brand-system.mddocs/releases/v1/design/ux-principles.mddocs/domains/yemaya/features.mddocs/domains/isis/features.mddocs/domains/hathor/features.mddocs/domains/aja/features.mddocs/domains/bellona/features.mdlibs/oshun/design-tokens/src/tokens.tsapps/oshun/web/src/design-system/tokens.ts