Developer Handoff · Design Tokens
Dart Tokens Guide v4
Golden Canvas Design System · Flutter Implementation · February 2026
lib/design/app_colors.dart
app_radius.dart
app_text_styles.dart
app_motion.dart — NEW
11 Delight Components Covered
What Changed in v4
Breaking fixes + additions required for the full component library
Token / FileTypeWasNowReason
AppRadius.rXS / rS / rM Fix 6 / 10 / 14 4 / 8 / 12 Sync with tokens-v3.css source of truth
AppColors.electricBlue Fix #2563EB #4A9FFF Matches CSS --electricBlue; #2563EB kept as electricBlueText for readable text
AppColors.txMid Fix Color(0xFF4A566E) Color(0x8C0C1220) Opacity-based (55% midnight) renders correctly on cream bgBase
AppColors.txLight Fix Color(0xFF8695B0) Color(0x590C1220) Opacity-based (35% midnight), same reason
AppColors.btnPrimaryText Add #1A1200 (near-black) Text on gold buttons; 18.3:1 contrast. Not midnight #0C1220.
DM Mono typeface Add Courier New (vouchers only) DM Mono — counters, scores, vouchers Heartbeat, Total Return, Lifetime Score all use DM Mono
AppRadius.rSheet Add 28pt — bottom sheet top corners Bottom sheets use 28pt not rXL (24pt)
AppShadows.focusRingGold Add 0 0 0 3px rgba(245,200,66,0.12) All focused inputs, PIN boxes, dropdowns
app_motion.dart New Durations, curves, stagger, press scale Delight components require specific spring curve + 60ms stagger
Form state tokens Add formBorder*, formFocusRing, formBg ds-forms.html component library
Neutral tokens Add neutralTrack #F0F0F0, neutralBorder #E0E0E0 Progress bars, skeleton loaders, voucher dashed border
New gradients Add progressTeal, progressScore, chartBarActive, carouselSlide, scoreHeader Delight + financial components
Color Tokens — AppColors
All token names are static const on AppColors class · import 'package:multipl/design/design.dart'
Canvas
bgBase
#FDFAF0
bgCard
#FFFFFF
bgDark
#0C1220
bgDark02
#141B2D
bgGlass
rgba(255,255,255,0.06)
Brand Gold · CTA only · one per screen
gold
#F5C842
goldGradStart/End
#F7D464 → #F0A832
goldGlow
25% gold
btnPrimaryText ★
#1A1200 · 18.3:1 ✅
navActiveIconBg
18% gold
Teal — Growth signal · surface-aware rule
teal #00D4AA
On dark surfaces only
tealText #006B55
On light · 5.2:1 ✅
tealBgLt / tealBdrLt
9% bg · 22% border
tealChipBg / tealChipBdr
14% bg · 25% border
Electric Blue · Info accent
electricBlue ★
#4A9FFF · glows & decorative
electricBlueText
#2563EB · text on light · 4.8:1 ✅
blueBgLt / blueBdrLt
12% bg · 30% border
blueGlow
18% electricBlue
Text — Light surfaces ★ Opacity-based
txDark
Color(0xFF0C1220)
17.5:1 ✅
txMid ★
Color(0x8C0C1220)
55%
txLight ★
Color(0x590C1220)
35%
Text — Dark surfaces
txWhite
Color(0xFFFFFFFF)
primary
txWhiteMd
Color(0xA6FFFFFF)
65% secondary
txWhiteDm
Color(0x61FFFFFF)
38% tertiary
txWhiteMt
Color(0x38FFFFFF)
22% muted
Semantic
coral
Color(0xFFE53935)
error, debit, PIN error
coralBg
Color(0x14E53935)
8%
warning ★
Color(0xFFFFB347)
new in v4
warningBg ★
Color(0x1AFFB347)
10%
Form states ★ New
formBorderNormal
Color(0x1F0C1220)
12% midnight
formBorderFocus
Color(0xFFF5C842)
gold
formBorderError
Color(0xFFE53935)
coral
formFocusRing
Color(0x1FF5C842)
3px spread shadow
neutralTrack
Color(0xFFF0F0F0)
progress / skeleton
neutralBorder
Color(0xFFE0E0E0)
voucher dashed
Border Radius — AppRadius
★ XS/S/M corrected in v4 to match tokens-v3.css
rXS ★
4pt
badges
rS ★
8pt
icons
rM ★
12pt
inputs
rL
20pt
cards
rXL
24pt
hero cards
rSheet ★
28pt top
bottom sheets
rFull
999pt
pills, CTAs
Typography — AppTextStyles
DM Sans (default) · Playfair Display (wealth headings only) · DM Mono (counters, voucher codes) ★ new in v4
DM Mono — Numeric Display ★ New typeface
₹0.004/sec
counterLarge · 34px · Heartbeat
₹1,368
counterDisplay · 36px · Total Return Card
682/1000
scoreDisplay · 44px · Lifetime Score
STAR-X4K9-2025
voucherCode · 18px · ls 3px
DM Sans — UI Scale
₹42,840
amountHero · 48/800
₹12,450
amountLarge · 36/700
Spend smarter,
build wealth.
wealthHeading · Playfair 28/700
Your Money Worked!
headlineLarge · 22/700
Set Up Wealth Goals
titleMedium · 16/700
Your spending account already earns 8.4% p.a. Set a goal and watch every rupee work harder.
bodyMedium · 14/400 · txMid
Motion Tokens — AppMotion ★ New file
import 'package:multipl/design/design.dart' · Principle: motion communicates meaning, not decoration
Duration Scale
TokenValueUse case
micro 150ms
Press, toggle, icon swap
standard 300ms
Chip select, nav transition
entrance 500ms
Card entrances, staggered lists
spring 600ms
Bottom sheet open (spring curve)
celebration 800ms
Celebration card reveal + confetti
counter 1500ms
Earnings count-up, score rollup
pulseLoop 1500ms
Teal heartbeat ring, infinite
Easing Curves
easeOut — Curves.easeOut
Standard entrances, chip selection, nav transitions
springCurve — Cubic(0.34, 1.56, 0.64, 1.0)
Bottom sheet open · Celebration card reveal · Subtle overshoot = feels alive
linear — Curves.linear
Counter run-up, progress bar fill
easeInOut — Curves.easeInOut
Looping animations: pulse ring, skeleton shimmer
Other constants
staggerItem
Duration(60ms)
per list item
pressScale
0.95
all interactive elements
shimmer
Duration(1200ms)
skeleton loader sweep
Gradients — AppGradients
All static const · New gradients added for delight + financial components
gold
CTA button · 1 per screen
spendingAccount
Spending account card
progressTeal ★
Goal bars, total return
progressScore ★
Lifetime Savings Score
chartBarActive ★
Routine map bars
carouselSlide ★
Relatable carousel bg
scoreHeader ★
Lifetime Score card top
brandFood
Brand tile · food
Shadows — AppShadows
★ focusRingGold added for all form interactions
Card shadows
card · default white card
cardMd · modals, dropdowns
cardHigh · overlays, celebration
Glow shadows
glowGold · CTA button
↑ 8.4%
glowTealChip · growth chips on dark
Focus ring ★ New
focusRingGold · inputs, PIN, dropdown
Usage: Apply as additional boxShadow entry when the field has focus. Combine with formBorderFocus border color.
Component Coverage Matrix
Every component in the v4 library mapped to its primary tokens
ComponentKey tokens
Core Atoms
Gold CTA Buttongold · goldGradStart/End · glowGold · btnPrimaryText (#1A1200)
Secondary Button (glass)bgGlass · borderDk · txWhite
Ghost Buttontransparent · txMid · btnSmHeight
Growth chip (dark)tealChipBg · tealChipBdr · teal · glowTealChip
Cashback chip (light)tealBgLt · tealBdrLt · tealText
Badge (Most Opted)gold gradient · btnPrimaryText · rXS
Badges (status)tealBgLt · coralBg · warningBg · blueBgLt
Category tags — lighttagFoodBg/Text · tagApparelBg/Text · tagShopBg/Text · tagCabsBg/Text
Category tags — darktagDkFoodBg/Text · tagDkApparelBg/Text · tagDkShopBg/Text · tagDkCabsBg/Text
Forms
Text input (normal / focus / error)formBorderNormal · formBorderFocus · formBorderError · formFocusRing · focusRingGold shadow
Amount inputformBorderFocus · rM · txDark · tabularFigures
Search fieldformBorderNormal → gold on focus · txLight placeholder
Dropdown (closed / open / focused)formBorderNormal/Focus · formFocusRing · txDark / txLight
Checkbox · Radioteal fill checked · formBorderNormal unchecked · coral error
Toggle switchteal active · formBorderNormal inactive track
Sliderteal track · teal thumb · neutralTrack
PIN box (active / filled / error)formBorderFocus + gold cursor · txDark dot · formBorderError + coral dot
OTP boxsame as PIN
Verified labeltealText · checkmark icon
Navigation
Top app barbgBase · txDark · rS back button
Bottom nav (frosted dark)navBg (96% midnight) · navActiveIconBg · navActiveLabel (gold) · navInactiveLabel
Tab bartxDark active · txLight inactive · gold underline indicator
Step progresstealText completed · bgDark + gold text active · txLight pending
Cards & Lists
Hero dark cardbgDark · 3 glows (gold/blue/teal) · amountHero · growth chip · sparkline
White cardbgCard · shadowCard · rL
Brand tile cardbrandFood/Shop/Apparel/Cabs gradient header · category tag · cashback chip
Transaction row (credit)tealText amount · txDark label
Transaction row (debit)coral amount · txDark label
Feedback
Success toasttealBgLt · tealBdrLt · tealText · teal icon
Error toast / alertcoralBg · coral border · coral · coral icon
Info toastblueBgLt · blueBdrLt · electricBlueText · electricBlue icon
Warning toastwarningBg · warning border · warning · warning icon
Progress bar (goal)progressTeal gradient · neutralTrack · rFull
Skeleton loaderneutralTrack shimmer → shimmer duration (1200ms)
Overlays
Bottom sheetbgBase · rSheet (28pt) · shadowModal · handle: txLight
Modal dialogbgCard · rXL · shadowCardHigh · bgDark 50% backdrop
TooltipbgDark · txWhiteMd · rM
Financial
Voucher cardbgDark · 3 glows · voucherCode (DM Mono) · gold code · coral expiry · neutralBorder dashed
Goal progress widgetprogressTeal · neutralTrack · tealText value · txMid label
Interest / earnings cardbgDark · teal on dark · tealText on light rows
Delight Components
Earnings ToasttealBgLt icon bg · teal icon · tealText value · gold sparkle
Earnings HeartbeatbgDark header · 3 glows · counterLarge (DM Mono teal) · teal pulseLoop ring
Milestone TickerbgDark · teal separator dots · teal values
Relatable CarouselcarouselSlide gradient · gold active dot (rFull 18pt) · tealText inline stat
Double Dip Calculatorgold border/bg selected tile · tealText result values
Post-Deposit CelebrationbgBase sheet · rSheet · wealthHeadingSm (Playfair 22pt) · gold CTA · tealText stats
Post-Redemption Celebrationgold chip selected · gold CTA · tealText progress
Total Return CardcounterDisplay (DM Mono tealText) · progressTeal · gold brand dot
Spending Routine MapchartBarActive gradient bars · tealText value + day labels
Lifetime Savings ScorescoreHeader gradient · scoreDisplay (DM Mono) · progressScore (gold→teal)
Weekly ScorecardscorecardMultipl gradient · teal legend dot · neutralTrack bank bars
Quick Reference — Opacity → Hex
CSS rgba opacity → Dart Color(0xAARRGGBB) alpha channel · multiply opacity × 255, convert to hex
%HexVisual
4%0x0A
6%0x0F
8%0x14
9%0x17
10%0x1A
12%0x1F
%HexVisual
14%0x24
15%0x26
18%0x2E
22%0x38
25%0x40
30%0x4D
%HexVisual
35%0x59
38%0x61
55%0x8C
65%0xA6
96%0xF5
Formula: Alpha byte = round(opacity × 255) → to hex  ·  Example: rgba(0,212,170,0.14) → 0.14 × 255 = 35.7 → 0x24Color(0x2400D4AA)
File Structure & Sync Workflow
Single import · lib/design/design.dart barrel re-exports everything
lib/design/ — All token files
dart
// Barrel export — single import for all widgets
export 'app_colors.dart';     // Color tokens
export 'app_gradients.dart';  // Gradients + BrandCategory
export 'app_spacing.dart';    // Spacing + safe areas
export 'app_radius.dart';     // Border radius objects
export 'app_shadows.dart';    // Box shadows + glows
export 'app_text_styles.dart';// Typography scale
export 'app_motion.dart';     // ★ NEW — durations + curves
export 'app_theme.dart';      // Flutter ThemeData

// In any widget file:
import 'package:multipl/design/design.dart';
Figma → Code sync workflow
1
Designer updates variable in Figma
File: TI3aVROhQNC4UzGxkJbCy1 · JoUVhWIbn3d3JW6aytyC3a
2
Fetch via REST API
curl -H "X-Figma-Token: $TOKEN" api.figma.com/v1/files/$KEY/variables/local
3
Run transform / update Dart files
node design-tokens/transform.js or manual update
4
Verify + commit
flutter analyze && git add design/ lib/design/
Multipl Design System v4.0 "Golden Canvas" · Dart Tokens Guide · February 2026 · lib/design/design.dart