VueForge maps theme tokens to CSS variables and supports runtime updates.
import { VueForge, DefaultTheme } from '@codemonster-ru/vueforge';
app.use(VueForge, {
theme: {
preset: DefaultTheme,
},
});import { setTheme } from '@codemonster-ru/vueforge';
import { DefaultTheme } from '@codemonster-ru/vueforge';
setTheme({
preset: DefaultTheme,
overrides: {
colors: {
blue: '#2b6cb0',
},
components: {
container: {
maxWidthLg: '68rem',
},
},
},
});import { updateTheme } from '@codemonster-ru/vueforge';
updateTheme({
overrides: {
colors: {
green: '#18a66a',
},
},
});setTheme(options)- apply preset with optional overridesupdateTheme(partial)- patch current themegetTheme()- read active options
VueForge also exposes runtime UI preference controls:
setDensityPreset('normal' | 'comfortable' | 'compact')getDensityPreset()setReducedMotion(boolean)getReducedMotion()applyUiPreferences({ density?, reducedMotion? })getUiPreferences()
These APIs update root attributes and shared CSS variables for density/motion behavior.
See: guides/density-motion.md
Use strict token hygiene to avoid runtime styling regressions:
- Prefer known token keys from component docs; avoid ad-hoc keys.
- Keep value types consistent:
- lengths:
px,rem,%(example:12px,1rem) - colors: CSS color values (
#hex,rgb(),hsl(), CSS vars) - booleans/enums: only documented values
- lengths:
- Validate overrides in review:
- unknown component token keys
- malformed CSS values
- mismatched scale usage (
small/largenested tokens)
- Apply token changes incrementally and visually verify at least one representative page.
updateTheme({
overrides: {
components: {
container: {
maxWidthLg: '72rem',
paddingX: '1.25rem',
},
section: {
paddingY: '3rem',
backgroundColorSurface: '#f7f8fb',
},
grid: {
gap: '1rem',
breakpointMd: '900px',
},
stack: {
gap: '0.875rem',
},
inline: {
gap: '0.5rem',
},
},
},
});- Components catalog:
components/README.md Containertokens example:components/container.md- Layout breakpoint/spacing contract:
guides/layout-breakpoint-spacing-contracts.md