Jenga Theme
Provides the Jenga design system to content.
Wrap your app (or any subtree) once; everything below can then read tokens via JengaTheme and use Jenga* components. Every parameter has a sensible default, so the simplest usage is just JengaTheme { ... }.
Rebrand or white-label by supplying your own tokens, e.g. JengaTheme(colors = jengaLightColors().copy(brand = Color(0xFF6D28D9))) { ... }.
A Material 3 theme is provided internally (mapped from these tokens) so M3 primitives such as ripples and text selection stay on-brand, but it is an implementation detail and not part of Jenga's API.
Parameters
whether to use the dark scheme; follows the system by default.
semantic colors; defaults to the built-in light/dark scheme based on darkTheme.
the type scale.
the spacing scale.
the corner-shape set.
the sizing set (touch targets, icon/control sizes).
the elevation ladder.
the motion tokens.
the semantic icons components draw; defaults to Jenga's own set.
theme-wide component styles; see JengaComponentStyles.
the themed content.
Provides Jenga themed from a single brand: one seed color yields a coherent, accessible light and dark scheme plus type, shape and density:
JengaTheme(
brand = jengaBrand(
seed = Color(
color = 0xFF6D28D9,
),
),
content = { App() },
)Everything is derived from the brand and can be overridden one argument at a time; each override defaults to the brand-derived value.
Parameters
the brand definition; see JengaBrand and jengaBrand.
whether to use the dark scheme; follows the system by default.
overrides the derived scheme (light or dark, per darkTheme).
overrides the derived type scale; null derives it from the brand, injecting Jenga's bundled font for any family the brand left unset.
the spacing scale; derived from the brand's density.
the corner-shape set; derived from the brand's corner style.
the sizing set; derived from the brand's density.
the elevation ladder.
the motion tokens.
the semantic icon set; the brand's, or Jenga's own if unset.
theme-wide component styles; see JengaComponentStyles.
the themed content.
Provides Jenga from a fully hand-authored scheme (a light + dark JengaColors pair). The scheme is selected for the current darkTheme; other token bundles keep their defaults or can be overridden.
JengaTheme(
scheme = JengaScheme(
light = myLight,
dark = myDark,
),
content = { App() },
)Parameters
the light + dark color pair.
whether to use the dark scheme; follows the system by default.
the type scale; null uses Jenga's default (bundled font).
the spacing scale.
the corner-shape set.
the sizing set.
the elevation ladder.
the motion tokens.
the semantic icon set; Jenga's own if unset.
theme-wide component styles; see JengaComponentStyles.
the themed content.