◂ All design systems

// DS_03 · SERENIA V2

Blueberry + Cream Soda.

The third generation of a meditation app's identity. Blueberry night, a cream soda CTA and seven characters.

PRODUCT
Flutter guided meditation app, iOS and Android
SOURCE OF TRUTH
app_colors.dart in code. Figma is partly behind.
STATUS
Active migration. Code is on V2; art and Figma are catching up.
3identity generations
13V2 color tokens
7characters
3/7redrawn for V2

01 How it was built

Replay the construction of the system step by step. Tokens light up in the order they were created; audit findings and decisions appear where they happened.

BUILD 01/06 · tokens 0/17

Cosmic art, no system

The pre rebrand era: nebula and space art direction, not a token system. Five orphaned art files with no references.

  • [AUDIT] No tokens
  • [AUDIT] 5 orphaned session-art files
backgroundsurfacesurfaceElevatedcardtabBarprimaryctaaccentLavenderaccentSunsettextPrimarytextSecondarysuccesserrorv1 violetv1 emeraldv1 coralv1 bloom

02 How it connects

Every component traces back to a token and every token to an intent. Click a node to see what depends on it.

V1 LINEAGEV2 TOKENSWHERE IT LIVES#6C63FF violet#3DDC97 emeraldV1 neutrals#FF8F6B coralprimaryctasuccesssurfaceaccentSunsetMain CTASession playerStreak milestoneHome cards
V2 TOKENS primary

Blueberry. Replaces V1 violet.

2 connected nodes highlighted. Click any node to trace it.

03 Ask the system

An oracle that answers design questions from the system's own rules. Ask in English or Spanish, or paste any hex to find its token.

DS_03@oracle $

The oracle answers from the system's own rules, tokens and changelog. No guessing: every answer shows the chain it resolved through and a confidence label, the same rule the Launch Mobility guide uses for inferred values.

04 Three generations

The same screen across Harmonie, V1 and V2, plus the migration state of all seven characters.

TodayGood evening
SESSION 03Deep breathing
Blueberry night + Cream Soda
#6260FF#FFD15C#E4E4FF#FF8F6B
LotoBrand mascot: splash, paywall, onboardingRedrawn V2ChispaFocus, streak, energyRedrawn V2DestelloAchievements, celebrationRedrawn V2GotaCalm, anxiety, AI Coach avatarOriginalNimboSleepUndecidedCocoNeutral states, offlineUndecidedBroteGrowth, empty statesUndecided

05 Live accessibility audit

Every text token against every background token, WCAG 2.1 ratio computed on the spot.

23/28 pairs pass AA for body text · computed live in your browser

background surface card tabBar
textPrimaryAa17.0 · AAAAa16.0 · AAAAa11.0 · AAAAa16.5 · AAA
textSecondaryAa7.1 · AAAAa6.7 · AAAa4.6 · AAAa6.9 · AA
ctaAa12.7 · AAAAa11.9 · AAAAa8.2 · AAAAa12.3 · AAA
primaryAa4.1 · AA LGAa3.8 · AA LGAa2.6 · FAILAa3.9 · AA LG
accentLavenderAa14.7 · AAAAa13.8 · AAAAa9.5 · AAAAa14.3 · AAA
successAa10.4 · AAAAa9.8 · AAAAa6.7 · AAAa10.1 · AAA
errorAa6.6 · AAAa6.2 · AAAa4.3 · AA LGAa6.4 · AA

06 Specimen

Click any swatch to copy its value.

SURFACES
ACCENTS
TEXT
SEMANTIC
RETIRED
SORA SEMIBOLD · Titles, unchanged since V1

Deep breathing

INTER · Body, unchanged since V1

Guided · 12 min · Session 03

07 Rules

  1. Code is the source of truth: app_colors.dart wins over Figma.
  2. Surface and text neutrals are inherited from V1; only chroma changed.
  3. Cream Soda is reserved for the main CTA, with ctaGradient #FFD15C to #FFC43D.
  4. Retired V1 colors are never reintroduced as palette colors.
  5. Naming dropped the accent: Serenía became Serenia in V2.

08 Known gaps

  • Figma Button and Badge still use the old #7C9CFF to #9BE8C4 gradient Flutter no longer uses.
  • Character art is half migrated: 3 of 7 redrawn, 3 undecided.
  • All 7 characters need a final polish pass for full V2 fidelity.
  • Titles are real but the audio behind them is still the old mp3.
Read the case study ▸
NEXT_SYSTEMMidnight Pro ▸