Package-level declarations

The color system: the generated primitive palette, the semantic JengaColors roles (brand, surface, textPrimary, success…) that flip for dark mode, and withBrand, a lower-level helper that rebrands a single palette (prefer jengaBrand(seed = …) to brand a whole light+dark theme).

Types

Link copied to clipboard
class JengaColors(val brand: Color, val onBrand: Color, val brandSubtle: Color, val onBrandSubtle: Color, val ink: Color, val onInk: Color, val background: Color, val surface: Color, val surfaceVariant: Color, val surfaceSunk: Color, val textPrimary: Color, val textSecondary: Color, val textMuted: Color, val textFaint: Color, val border: Color, val borderStrong: Color, val contentDisabled: Color, val surfaceDisabled: Color, val borderDisabled: Color, val inverseSurface: Color, val inverseOnSurface: Color, val success: Color, val successContainer: Color, val onSuccessContainer: Color, val warning: Color, val warningContainer: Color, val onWarningContainer: Color, val error: Color, val errorContainer: Color, val onErrorContainer: Color, val info: Color, val infoContainer: Color, val onInfoContainer: Color, val overlaySurface: Color, val onOverlay: Color, val onOverlayMuted: Color, val focusRing: Color, val scrim: Color, val isLight: Boolean)

Semantic color layer: colors named by role, not by hue.

Link copied to clipboard
class JengaScheme(val light: JengaColors, val dark: JengaColors)

A light + dark JengaColors pair: a complete custom color theme as one object. Pass it to JengaTheme(scheme = ...) and the right scheme is chosen for the current darkTheme, so the caller never wires the selection themselves.

Functions

Link copied to clipboard

The default dark color scheme.

Link copied to clipboard

The default light color scheme.

Link copied to clipboard
fun JengaColors.withBrand(brand: Color, onBrand: Color = this.onBrand, brandSubtle: Color = this.brandSubtle, onBrandSubtle: Color = this.onBrandSubtle): JengaColors

Multi-brand convenience: returns a copy of this scheme rebranded to brand. The semantic structure (surfaces, text, lines, status) is untouched; only the brand accent and its subtle/on pairs change.