Aurum Design System v0.3.1

The Aurum
Design System.

Jar's design system for Android, built on Jetpack Compose. Every component, every token, every device size — always current with what just shipped on main.

32components
308rendered states
13families

What's new

v0.3.0 released 4 May 2026

  • AurumCheckbox + AurumCheckboxGroup — multi-select selection family (component/selection/). AurumCheckbox is a tri-state control (AurumCheckState.Unchecked / Checked / Indeterminate) mapped to Figma 5169:1314. Closed enum chosen over Boolean? to avoid null-as-indeterminate ambiguity. Mirrors AurumRadioButton's API: selected, onCheckStateChange, label, subtext, enabled, error, labelPosition (End/Start). The 24 dp box is rendered via Canvas — checked state fills with Aurum.colors.interactive.bgPrimaryDefault and overlays a stroked checkmark; indeterminate fills the box and overlays a centred horizontal bar; error tints both outline and glyph with feedback-negative. AurumCheckboxGroup<T> mirrors AurumRadioGroup<T> but with selected: ImmutableSet<T> and onSelectionChange: (T, Boolean) -> Unit; uses triStateToggleable per row so Indeterminate → Checked advancement is a single tap. Both ship Code Connect mappings (AurumCheckbox.figma.kt at 5169:1314, AurumCheckboxGroup.figma.kt at 5169:1796) plus 8 + 5 @AurumPreview previews. Catalog SelectionDemo extended with single-checkbox and group examples.
  • AurumAmountInput — currency-prefixed numeric input mapped to Figma 5080:261 (component/field/AurumAmountInput.kt). Delegates to AurumTextField for state, validation, helper/error/success text, label plumbing — currency symbol (default ) is rendered in the leading slot using Aurum.type.headingLarge; optional suffixText (e.g. "0.0097 g") sits in the trailing slot. loading = true swaps the trailing slot for an inline AurumLoader(size = Aurum.iconSize.lg) and forces read-only. Caller is responsible for formatting both value and suffixText (locale + currency conventions are app-level concerns) — flagged in KDoc. Numeric keyboard via KeyboardOptions(keyboardType = KeyboardType.Number). 8 @AurumPreview previews + Code Connect.
  • AurumNavBar + AurumNavBarItem — bottom navigation family (component/navigation/). Mapped to the layout component_set at Figma 5575:14226. AurumNavBar is a slot-based composable taking an ImmutableList<AurumNavBarItem> (label + line/fill icon pair) plus selectedIndex, onSelect, and a layout: AurumNavBarLayout. AurumNavBarLayout is a sealed interface exposing four data variants — Standard3, Standard4, Standard5, CenterQr5(onQrClick) — each carrying an itemCount enforced via require() at composition time. CenterQr5 takes 4 items (the QR action is rendered by the layout, not surfaced as an item) and inserts the raised QR FAB between items 1 and 2 using AurumIcons.Action.QrCode. The per-cell renderer AurumNavBarCell is private — exposing it would only invite cells without a parent bar. 6 @AurumPreview previews (one per layout + selected-state variants) + Code Connect. Catalog NavigationDemo extended with all 4 layouts running interactive selectedIndex state.
See full changelog

How changes ship

From Figma to Compose, and back — the loop that keeps design and code in sync.

  1. Inspect the diff

    Open the gallery alongside the PR's visual diff. Any component that moved shows up as a side-by-side comparison — decide if the change is intentional.

  2. Approve the change

    Add the record-baselines label on the PR. The new baselines get regenerated and committed back automatically — no one has to run anything.

  3. Verify on device

    Install the catalog APK on Android to explore with real gestures and platform font rendering.

Figma plugins

Two plugins on the Figma Community that keep Figma and Compose speaking the same language.

Components

Every component across 6 device and font-scale combinations. Search by name.

Icons

The full Aurum icon set — line and fill weights, grouped by category. Pair search with copy-the-symbol.

Tokens

Every colour, type scale, spacing step, radius, and shadow — the exact values Figma and Compose share.

Changelog

What changed in each release, linked to the source commit.

Catalog APK

Install on Android to explore components with real gestures and platform font rendering.