TabotaboTheme

fun TabotaboTheme(darkTheme: Boolean, hueState: HueState = rememberHueState(), typography: Typography = montserratTypography(), dimensions: TabotaboDimensions = TabotaboDimensions.default(), motion: TabotaboMotion = TabotaboMotion.Default, systemBars: SystemBarsAppearance? = null, content: @Composable () -> Unit)(source)

Root of the design system. Builds the TabotaboColors for hueState's hue and darkTheme, and provides colors, typography, dimensions and motion through CompositionLocals. It also installs a restyled MaterialTheme underneath, so stock M3 components pick up the scheme (no tonal elevation tint) and every clickable gets Material's ripple, including its hover, focus and press feedback. Error colors are Material's own.

The library has no notion of a "System" appearance and never reads the OS setting. Consumers resolve the user's choice into darkTheme, e.g. darkTheme = choice.isDark ?: isSystemInDarkTheme().

Parameters

darkTheme

Whether to use the dark variant.

hueState

Holds the session hue; defaults to a fresh random hue that survives recomposition and configuration changes but is regenerated on a cold start / page load.

typography

Material Typography; defaults to montserratTypography.

dimensions

Spacing / shape / stroke tokens.

motion

Animation tokens; pass TabotaboMotion.Reduced to honour OS reduce-motion.

systemBars

Called whenever the resolved colors change (hue shuffle or darkTheme change). Platform code uses it to tint status/navigation bars.