Skip to main content
Sundial is versioned as a system: the version reflects the design system as it ships in the Ash app, not this documentation site. Entries below are backfilled from the git history of lib/design_system/ and reference their pull requests. Bump rules live in Contributing.
TokensBrand
Periwinkle

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.onButton is now pure black (16.2:1 on the solid).
  • Light-mode contentAccent / accent.secondary moves 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.
  • brandLavender follows step 9, along with the native splash screens and the production app icon.
This site was rethemed to the new values.
TokensDocs
Sundial 2.0

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.
Components
Wallpapers

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 flat SolidWallpaper(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.
DocsBrand
Brand

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.
Components
Components

StyledIconButton joins the system

The single-pill conversation input bar redesign (#1376) introduced StyledIconButton — 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.
ReleaseDocs
v1.0.0

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
Also in this release: this documentation site — full token/component reference, Flutter theming guides, the design Philosophy section, and this changelog.
AccessibilityComponents
Accessibility

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: null on AshIcon), labeling at the button layer
ComponentsTokens
Wallpapers

Flat brand colors replace gradient wallpapers

Gradient wallpapers were replaced with flat brand colors (#1283), introducing SolidWallpaper with its cardPalette/brandPalette and the forWeekday/brand/forSeed factories — and with it the solid-wallpaper legibility rule (dark text, no scrim).
Tokens
Typography

Typography aligned to the Parchment spec

Typography tokens and fonts updated to match the Parchment spec (#1269): Inter (variable weight via FontVariation, 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.
Components
Iconography

Icons optimized for server-driven UI

The icon system was optimized for SDUI (#1155) — the era of AshIcon.network for server-delivered SVGs alongside the registered AshIcons enum.
Components
Interaction

Haptic feedback on navigation

Bottom-navigation destinations and home-screen cards gained haptic feedback (#1102) — now a built-in behavior of NavDestination (HapticFeedback.selectionClick() before onTap).
Components
Components
Following the app-navigation overhaul (#1044), the navigation bar and FAB were moved into the design system (#1049) as StyledNavigationBar + NavDestination and StyledFloatingActionButton.
ReleaseTokensComponents
Sundial is born

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
  • AppTheme building light/dark ThemeData with every Material component themed
  • The first Styled* components and context.colorTheme / context.textTheme accessors