Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

11 — Design System Mapping (Biometric Module)

Maps the Biometric module onto the shared design system (00-shared/02 tokens, 00-shared/03 components, 00-shared/04 mapping). Module adds no new global tokens; it only introduces semantic mappings for biometric states.


1. Token usage (from 00-shared/02)

Token groupWhere
Color: primary, primaryContaineractive states, CTA, "matched" verdict
Color: error, errorContaineroffline, failed sync, mismatch, destructive confirms
Color: tertiaryContainerprocessed-punch indicator
Color: surfaceVariantinactive devices, unprocessed punch
Type: headlineMedium / bodyMedium / bodySmallscreen titles, rows, metadata (06 layouts)
Spacing: Sp-16 phone / Sp-24 tabletscreen padding
Radius R-mdcards, fields, badges
Elevation El-1cards; El-2 bottom sheet
Motion Mo.m-fast / Mo.m-basemicro-interactions, screen transitions

2. Component mapping (all shared, no forks — 07 for module widgets)

Shared componentModule use
AppCardstatus summary, device header, config viewer
AppListTiledevice rows, punch rows
AppButton / AppFABCTAs, "Register device" FAB
AppMenurow actions
AppDialogdisable/overwrite-enrollment confirms
AppSnackbarsync result, register success
AppBannerfailed sync, mismatch verdict
AppSkeleton / AppEmptyState / AppErrorStateloading / empty / error
AppOfflineBannerconnectivity
AppRefreshIndicatorlist refresh
AppBadge / AppChipsstatus badge, filter chips, device status
AppBottomSheetlog detail
AppAvatarstudent/device leading icons

3. New module widgets (in 07, not global)

DeviceStatusBadge, SyncStatusTile, PunchRow, PunchTimeline, EnrollStepBar, StatusSummaryCard, QueueHealthChip, ConfigJsonViewer — all compose shared primitives; none introduce tokens.

4. Semantic state mapping (module)

StateColorIcon
active deviceprimaryContainersensors
inactive devicesurfaceVariantsensors_off
offline deviceerrorContainercloud_off
sync runningprimaryspinner
sync failederrorContainererror_outline
punch processedtertiaryContainercheck_circle
punch unprocessedsurfaceVariantcircle
verdict matchedprimaryContainerverified
verdict mismatcherrorContainerwarning_amber

5. Dark/light parity

  • All mappings token-based → automatic dark parity; QA pass required on badge contrast (errorContainer on dark) — 14 §9.
  • Monospace rawData uses bodySmall + monospace family on both themes.

6. Typography rules

  • Timestamps always bodySmall relative + absolute (locale-aware, 00-shared/02 §2).
  • Never uppercase device names or punch data.