Authoritative documentation for Cabin, an open-source AAOS design language
and dual UI component library (Jetpack Compose + legacy Views).
Library Alpha: cabin-tokens, cabin-compliance, and Theme Kit in
cabin-views. Planned APIs beyond that are marked as such.
Table of contents
Orientation
| Document | Description |
|---|
| Vision | Positioning, uniqueness vs Material, OEM/Tier-1/dev adoption |
| Principles | Clean Code, SOLID, safety-critical UI, android/skills alignment |
| Architecture | Multi-module plan, dependency rules, theming, anti-bloat |
| Roadmap | Phased delivery aligned to the product feature layers |
| Contributing | Contribution guide |
Pre-implementation (before library code)
Product
| Document | Description |
|---|
| Product index | Product design docs — stance, pillars, feature plan |
| Stance | Calm, legible, inevitable cabin HMI |
| Pillars | Five gates every feature must pass |
| Features | Layered feature plan (Foundations → Craft) |
Compliance (first-class)
Design language
| Document | Description |
|---|
| Overview | Cabin design language scope |
| Foundations | Color, type, space, elevation, motion, icons |
| Tokens | Semantic + component tokens, OEM theming without forks |
| Token schema | JSON stub, naming, overlay/RRO mapping |
Components
| Document | Description |
|---|
| Compose | Compose guidelines and Views parity contracts |
| Views | View/XML for SystemUI and build-tree apps |
| Soong | Platform Soong engineering notes (Android.bp) |
Adoption
| Document | Description |
|---|
| Integration | Add Cabin to an existing AAOS/app repo |
| Theme Kit | Views Theme Kit + OEM overlay / RRO path (MVP #3) |
| Build-tree / Soong | SystemUI, CarLauncher, platform media via Soong |
| Migration | From stock Material / AAOS widgets |
| Packaging | Maven vs Soong dual distribution, minimal footprint |
Agents
| Document | Description |
|---|
| Agents index | AGENTS.md, skills/, Cursor rules, android/skills relationship |
| AGENTS.md | Hard rules for coding agents (repo root) |
| llms.txt | LLM-oriented doc map |
| skills/ | Modular Agent Skills (SKILL.md per concern) |
Website
| Document | Description |
|---|
| website/ | Public docs shell (Docusaurus) — run/build/deploy |
| Site plan | Public docs IA modeled on m3.material.io |
| Marketing craft | Docs vs marketing roles; points to apps/www/DESIGN.md |
How to read these docs
- Start with vision and the product stance.
- Filter ideas through pillars and the
feature plan.
- Before library code: pre-implementation and
MVP.
- Internalize compliance — it constrains every component.
- Learn tokens /
token schema before implementing UI.
- Pick a platform (Compose or Views)
and keep parity contracts in mind. Platform chrome uses Soong —
build-tree.
- Use architecture and packaging
when wiring modules into a product.
Dual stack reminder
Every component and pattern is specified for both:
- Jetpack Compose (
cabin-compose, Experimental Theme + bars)
- Legacy Views / XML (
cabin-views, planned)
Shared tokens and compliance live outside both UI stacks so OEMs can theme
once and ship everywhere. See architecture.