Controls ship no component CSS. Everything you see is produced by a theme — a plain
data object the engine turns into CSS and injects into <head> at runtime, one control
scope at a time, as controls appear on the page.
A theme is assembled from three kinds of part:
@awdlab/jig-themes/templates/*) — the style-free
contract. Each declares a control's scope (e.g. 'switch') and its named class
slots (root, track, thumb, …). Controls and themes both import the template, so
their class names always line up.--jig-* CSS custom properties.A complete theme is just createTheme(name, parts, meta). The library ships three ready
presets: nova (nova), shade, and material (material, a Material
Design 3 theme).
You select a theme by passing it as theme.preset to the provider. The preset is a
Theme object, not a name:
import { provideJigControls } from '@awdlab/jig/api/ng';
import { nova } from '@awdlab/jig-themes/nova';
provideJigControls({ theme: { preset: nova } });Without a preset (and with lazyLoaded: false), the theme service logs a warning and
controls throw — a theme is required.
kind and color styling axes.
jig