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 (Feature Flags Module)

Module → Material 3 / Flutter / token mapping, extending 00-shared/04. Every color, type, spacing, elevation, radius, icon, motion reference traces to 00-shared/02.


1. Theme recipes (module)

ScreensThemeException
Flags list / detail / editorstandard shell surfaceenabled switches primary; selected rows primaryContainer; danger error
Bulk sheetsurfaceContainerHighapply CTA primary; per-row failure errorContainer
Editor warning bannertertiaryContainer (advisory, not error)description/module-not-saved caveat
Affected-features card (proposed)surfaceContainerLow"hidden when off" badges outline

2. Widget → token

ComponentM3 / FlutterTokensElevRadius
Flag rowAppListTilesurface, switch primarye-0
Flag row (selected)ListTile tintedprimaryContainer/onPrimaryContainere-0
Key chipMaterial chipsurfaceVariant fill, mono textr-sm
Module badgeBadge/AppBadgesecondaryContainerr-full
Enabled-only filterFilterChipselected secondaryContainerr-sm
Detail cardAppCardsurfaceContainerLowe-1r-lg
Editor fieldsTextFormFieldfill surfaceVariant, focus primaryr-md
Save CTAFilledButtonprimary/onPrimaryr-md
DeleteTextButton destructiveerror
Warning bannerAppBannertertiaryContainere-1r-md
Bulk sheetAppBottomSheetsurfaceContainerHighe-5r-xl
Bulk progressLinearProgressIndicatorprimary
Dialog (delete)AppDialogsurfaceContainerHighe-4r-lg
FAB New flagFloatingActionButton.extendedprimaryContainere-3r-full
SnackbarSnackBarinverseSurfacee-5r-md
Switch (disabled-perm)SwitchonSurfaceVariant 38%

3. Typography mapping

TokenScreen element
headlineMediumscreen titles
titleMediumlist rows, section headers (module groups)
bodyMediumlabel/description values
bodySmallcreated/updated timestamps, bulk result notes
labelLargebuttons, segmented button
labelMediumbadge counts, "Saving…"
monoflag key, key chip, bulk result keys

Timestamps use FontFeature.tabularFigures().

4. Iconography

Material Symbols outlined: flag, toggle_on/toggle_off (row leading), tune (filters), add (FAB), edit, delete, content_copy, check_circle/cancel (bulk results), apps/category (module badge), bolt (affected-features). Status icons (enabled/disabled) use the filled variant.

5. Motion tokens (values 00-shared/02 §6)

PurposeTokenApplied to
Route transitionsm-baselist↔detail, editor push
Switch statem-fastall toggles
Filter/list cross-fadem-slowchip changes
Row insert/removalm-entrance (40 ms stagger)post-bulk/post-delete
Sheetm-basebulk sheet
Hero list→detailm-slowoptional

Reduced-motion: fades + instants only.

6. Contrast & dark parity

  • Text 4.5:1; chrome 3:1 (09_Accessibility_Baseline.md §2).
  • Enabled/disabled is never color-only: switch + icon + label on every row; bulk results pair ✓/✕ with success/error + text reason (09 §9).
  • Dark: chromatic roles TBD by designer (00-shared/02 §1.4); key mono on surfaceVariant keeps ≥ 4.5:1.

7. Breakpoint behaviour

ClassListDetail/Editor
phone < 600single pane, filter chips scroll horizontallypush navigation
600–839chips + listcentered editor ≤ 560 px
≥ 840master-detail (list 360 px left)right pane detail; editor dialog-ish page
≥ 1200master-detail + hoverkeyboard shortcuts active

8. Component mapping to shared library

All components from 00-shared/03 (see 05 §Shared components used); module-only additions (AppFlagRow, AppFlagKeyChip, AppFlagGroupHeader, AppFlagEditorForm, AppBulkUpdateSheet, AppAffectedMapCard, AppFlagToggleBanner) defined in 07_Component_Library.md with token references above.