Design Tokens
Color Palette
Backgrounds
Primary
Borders
Text
Highlights
Typography
All text uses Roboto. Google Fonts loaded via link.
color #424753
line-height 1.17
color #424753
line-height 1.55
uppercase / #424753
letter-spacing 0.4px
uppercase / #9A9A9A
letter-spacing 1px
color #424753
line-height 1.17
uppercase / #FFFFFF
letter-spacing 0.6px
color #9A9A9A
Border Radius
8px
100px (pill)
--radius · --radius-chip
Shadows
rgba(0,0,0,0.05)
rgba(0,0,0,0.2)
rgba(0,0,0,0.2)
--shadow-card · --shadow-elevated · --shadow-subtle
Components
Buttons & CTAs
Primary CTA
.btn-welcome
Forward FAB · Default + Disabled
.fab-nav · .fab-nav:disabled
Back Navigation (bare icon, no border)
.fab-back
Form Inputs
Text Input
.form-label · .form-input
Textarea
.form-input (textarea)
Custom Dropdown
.form-select-wrap · .form-input
Error State
.form-input.input-error · .field-error-msg
Sliders
Range Slider with Age Display
.slider-input · .age-display · .slider-wrap
Selection Controls
Radio Pills (Yes / No)
.checkin-opt.radio · .radio-dot · .active
Quick Reply Chips
.checkin-options · .checkin-opt · .active
Stacked Button Options
.ha-btn-option · .ha-btn-option.active
Context Pill Tray
.chat-ctx-pill · .chat-ctx-pill.active
Checkbox Row (Multi-select Concern Card)
.concern-card · .concern-row · .ms-box · .ms-check-icon · .concern-submit
Cards
Goal Card (Selected State)
.goal-card · .goal-card.selected · .goal-card-badge · .goal-card-title · .goal-card-reason · .goal-radio
Task Card
.task-card · .task-card.done · .task-check · .task-info · .task-status · .task-title
Off-Ramp Resource Card
.offramp-resource · .offramp-resource-icon.t1/.t2 · .offramp-resource-body · .offramp-resource-label · .offramp-resource-sub
Plan Focus Alt Card
Primary Focus Card + Sub Goals + Benefits (dark background)
.pfocus-primary · .pfocus-badge · .pfocus-title · .pfocus-reason · .pfocus-edit · .pfocus-sub-item · .pfocus-sub-title · .pfocus-sub-desc · .pfocus-benefit-row · .pfocus-benefit-dot · .pfocus-benefit-text
Chat UI
Chat Bubbles + System Label + Quick Replies
.chat-bubble · .chat-ai · .chat-user · .chat-system · .checkin-options · .checkin-opt
Headers & Navigation
Screen Header — with progress bar (intake flow)
.screen-header · .header-avatar · .header-logo · .header-progress · .header-dots
Screen Header — without progress bar (core app)
.screen-header · .header-avatar · .header-logo · .header-spacer · .header-dots
Chat Header (centered avatar · hamburger)
.chat-header · .header-avatar · .header-dots
Hamburger / Sub-menu Button (dark context)
.sub-menu-btn
Dark Screen Pattern
Used on full-screen onboarding / plan presentation screens. The dark chrome (bg-loading) wraps .dark-header + .sub-content + .dark-footer.
Dark Header + Sub-content + Dark Footer
.dark-header · .sub-menu-btn · .sub-content · .dark-footer · .btn-welcome
Tab Toggle
Segmented pill used to switch between views (e.g. Plan / Tasks).
2-Up Tab Toggle
.tab-toggle · .tab-toggle button · .tab-toggle button.active
Bottom Sheet Modal
Slides up from the bottom over a scrim. Used for Terms of Service and similar full-read overlays.
ToS / Info Sheet (open state)
.tos-modal-overlay · .tos-modal-box · .tos-modal-header · .tos-modal-title · .tos-modal-close · .tos-modal-body · .tos-modal-footer · .tos-modal-action
Badges & Labels
All Badge Variants
.step-label
.goal-card-badge
.offramp-tier-badge.tier1
.offramp-tier-badge.tier2
Loading / Spinner
Spinner (dark background)
.loading-spinner · .loading-spinner-inner · .loading-spinner-ring