Skip to main content

Status bars

Status bars communicate vehicle and system state at a glance: connectivity, battery/charge, temperature outdoor, user profiles, and alerts.

MVP implementable spec: specs/status-bar.md (Views-first). This page is the overview; the spec is the contract.

Purpose

  • Provide persistent, glanceable status for drivers and passengers.
  • Standardize iconography and ordering conventions across OEM programs.
  • Surface warnings without hijacking the entire display (unless safety policy requires).

Typical status items

ItemClassNotes
ClockInformationalTabular figures
Connectivity (LTE/Wi‑Fi)Informational
Battery / SOC / chargingInformational / faultSee EV
Outside temperatureInformational
User / profileConvenienceMay gate while driving
Active alerts countWarningDeep-link to details when allowed

States

  • Normal
  • Warning present
  • Charging active
  • Offline / signal unavailable (safety-critical patterns for unknown)
  • Compact vs expanded (program choice)

Compliance

ConcernRule
Glanceabilitystatus type role; short labels (a11y)
DrivingTaps into complex settings restricted
ColorDo not rely on color alone for faults
SafetyPersistent fault icons remain visible

Token dependencies

  • cabin.component.statusBar.height
  • cabin.component.statusBar.iconSize
  • cabin.type.role.status.*
  • cabin.color.semantic.warning / error / charging

Planned Compose API

// Planned
@Composable
fun CabinStatusBar(
items: List<CabinStatusItem>,
onItemClick: (CabinStatusItem) -> Unit = {},
modifier: Modifier = Modifier,
)

sealed interface CabinStatusItem {
val id: String
val contentDescription: String
}

Planned Views API

// Planned
class CabinStatusBarView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
) : ViewGroup(context, attrs) {
fun setItems(items: List<CabinStatusItem>) { /* … */ }
}

Parity notes

Item order, overflow behavior, and unavailable-state glyphs must match across stacks for the same item list fixture.

Acceptance criteria

  • Exhaustive unavailable/stale rendering for signal-backed items
  • Fault/warning contrast validated day/night
  • Click paths compliance-gated
  • Content descriptions present
  • Compose/Views parity