Skip to main content
The signature Ash card-tile: a wallpaper background, a decorative element on the right, and automatic text-legibility handling. Source: styled_list_tile.dart. There is no default constructor — the tile is variant-only:

Variants

Every tile in the app now passes a SolidWallpaper. Seed it from the entity’s id so a tile and its detail page share one color.

API

Structure: 16 px radius, 1 px surfaceElevated outside-stroke border, min height 96, content padded (16, 16, 120, 16) to clear the decoration, InkWell ripple, AutoSizeText for overflow.

The legibility rule (implemented here)

  • Solid wallpaper → dark sand-12 ink (SundialRef.sandLight[12]) directly on the brand color; no scrim.
  • Image/vector wallpaper → a left-to-right black gradient scrim (75% → 0%) is painted, and the content subtree is wrapped in ThemeOverride(brightness: Brightness.dark) so all tokens resolve to light-on-dark.
This is the canonical example of the wallpaper legibility convention — follow the same pattern for any new wallpaper-backed surface.

Real usage

lib/widgets/history/day_entries_list.dart renders conversation and insights tiles for the history feed; lib/widgets/conversation/therapist_artifact.dart uses .insights with a custom backgroundImage.