lib/design_system/ and reference their pull requests. Bump rules live in Contributing.
The accent moves to periwinkle
The brand lead and accent change from Lavender Blue#CDCCF0 to Periwinkle #DBE1FD (#1968, in review). Both lavender ramps were re-derived from that single anchor in OKLCH: hue rotated −10.6°, chroma eased near the anchor and kept full on the deep steps, lightness held so every step keeps its contrast.Token changes in the same release:contentOnAccent/accent.onButtonis now pure black (16.2:1 on the solid).- Light-mode
contentAccent/accent.secondarymoves to lavender step 12 — step 11 read royal blue as text. - New
accentLine(light 8 / dark 11) for accent outlines, checkboxes and progress: 3:1, never text. brandLavenderfollows step 9, along with the native splash screens and the production app icon.
Sundial 2.0 color system
The color foundations are rewritten for Sundial 2.0: warm sand 12-step scales on the Radix model with paired alpha inks, the single Lavender Blue accent on a bright-solid grammar (a pale solid that takes dark content), eight mode-invariant brand flats, and cherry/amber status stops. Personas are retired — Accent Theming documents the replacement, and ThemeOverride is brightness-only.New in the token set:contentOnBrandSecondary — the secondary tier on brand surfaces, an alpha ink (light-alpha step 11) so the surface supplies the hue and one token holds AA on every brand color.Rollout status: the token system is fully specified in Figma and implemented behind draft PRs #1435–#1439; the old brand flats already resolve to 2.0 values in place. Legacy semantic names survive as forwarding getters until the rename phase completes.This site was rethemed to the 2.0 values: warm sand near-black canvas, lavender ramp accents.Pattern wallpapers retired
The last five surfaces still backed by hand-drawn pattern PNGs — the notification preview, onboarding notifications, the force-update modal, the voice-migration modal, and the shared interstitial modal header — now use a flatSolidWallpaper(ReferenceColors.lavender) (#1412). interstitialModalHeader lost its image: parameter along the way.With no callers left, ImageWallpaper.pattern, ImageWallpaper.random, and the 26-image pattern bank were deleted (#1413). This completes the move to flat brand color that SolidWallpaper began in June 2026.ImageWallpaper remains, narrowed to server-supplied imagery — a single URL, one use in the app. Use SolidWallpaper for decorative backgrounds.Brand section illustrated, site rethemed
The Brand section now carries the artwork of the Ash Brand Book: 19 slides exported from the book’s Figma across all seven pages — cover, marks, type specimens, illustration system, voice treatment, and applications. Color gained the new palette as native swatches (core, beiges, the Lavender Blue lead, and the green/orange/yellow pastels, sampled from the book’s chips) plus a “How we got here” retrospective.This site was rethemed to match the brand direction, locked to dark: Lavender Blue accent and a warm near-black background in place of the persona plum and grid decoration.StyledIconButton joins the system
The single-pill conversation input bar redesign (#1376) introducedStyledIconButton — a 40 px circular icon button with .accent and .surface variants and a showDisabledColors mode for buttons that look unavailable but stay tappable to explain why.Sundial 1.0
Sundial is declared 1.0: the system as documented on this site, shipping in the Ash app today.The 1.0 snapshot:- Three-layer color tokens — 9 reference ramps + 7 brand colors, 25 semantic tokens with light/dark mappings, 5 persona accent palettes
- 15 typography tokens — Libertinus Serif display styles + Inter (variable weight, incl. the 425 body weight)
- 14 components — Styled* Material wrappers and Ash* brand primitives
- Theming — ThemeExtension delivery, context accessors, the Material bridge, subtree persona overrides
Screen reader support in core flows
VoiceOver/TalkBack support added across core flows (#1262). For the design system this established the accessibility conventions documented in Conventions:SemanticButton— composite tappables merge into a single announced button- Decorative-by-default icons (
semanticLabel: nullonAshIcon), labeling at the button layer
Flat brand colors replace gradient wallpapers
Gradient wallpapers were replaced with flat brand colors (#1283), introducingSolidWallpaper with its cardPalette/brandPalette and the forWeekday/brand/forSeed factories — and with it the solid-wallpaper legibility rule (dark text, no scrim).Typography aligned to the Parchment spec
Typography tokens and fonts updated to match the Parchment spec (#1269): Inter (variable weight viaFontVariation, including the 425 body weight) and Libertinus Serif for display styles. Display styles set to 100% line height (#1270). The chat FAB was aligned to its Figma spec the same day (#1267).Current spec: Typography.Icons optimized for server-driven UI
The icon system was optimized for SDUI (#1155) — the era ofAshIcon.network for server-delivered SVGs alongside the registered AshIcons enum.Haptic feedback on navigation
Bottom-navigation destinations and home-screen cards gained haptic feedback (#1102) — now a built-in behavior ofNavDestination (HapticFeedback.selectionClick() before onTap).Navigation components join the system
Following the app-navigation overhaul (#1044), the navigation bar and FAB were moved into the design system (#1049) asStyledNavigationBar + NavDestination and StyledFloatingActionButton.Initial Sundial implementation
The Sundial Design System landed in the Ash app (#985):- ReferenceColors primitive ramps and DesignSystemColors semantic tokens as Flutter
ThemeExtensions - DesignSystemTypography — the 5×3 token grid
- AccentColors with the five persona palettes
AppThemebuilding light/darkThemeDatawith every Material component themed- The first
Styled*components andcontext.colorTheme/context.textThemeaccessors