artwork-seeded-dynamic-scheme
Installation
SKILL.md
A whole scheme from one seed colour
Two ways to let artwork colour a screen. artwork-palette-theming picks swatches — an accent, a
background — and you place each one by hand. This one derives an entire scheme from a single seed and
wraps the subtree in it, so every button, container and label resolves through roles and you place
nothing.
// adapted
val seedColor = if (paletteColor == Color.Black) fallbackSeed else paletteColor
val animatedSeed by animateColorAsState(seedColor, tween(durationMillis = 800))
val scheme = rememberDynamicColorScheme(seedColor = animatedSeed, isDark = true, style = Vibrant)
ThemeWrapper(colorScheme = scheme) { Content(state, actions) }
The payoff is the reason to prefer it: every onX role is generated contrast-paired with its X. A
foreground picked by hand from a palette is where unreadable text comes from.