Skip to main content

ADR 0003: Tokens via overlay + RRO

  • Status: Accepted
  • Date: 2026-09-15

Context

OEMs need brand expression without maintaining private forks of every component. Platform images already use Runtime Resource Overlays (RROs). Hardcoding brand in widgets breaks thin adoption and dual-stack parity.

Decision

  • Brand through token overlays (apps) and RROs / optional Soong token overlay modules (platform)
  • Machine-readable stub: tokens/cabin.tokens.json
  • Safety-adjacent token meanings (warning, error) are lockable and must not be remapped for decoration
  • Do not treat OEM forks of Cabin core as the default customization path

Consequences

  • Theme Kit resolves tokens → attrs/resources
  • Components reference tokens only
  • Agents must not invent per-OEM copies of System/Status bar sources