Définir des variables au niveau racine
CSS
:root {
--color-primary: #111;
--space-md: 1rem;
}
Définition, portée, thèmes et usages avancés.
:root {
--color-primary: #111;
--space-md: 1rem;
}
.box {
color: var(--color-primary);
}
Variantes possibles : couleurs, tailles, spacing.
.card {
--card-bg: #fafafa;
background: var(--card-bg);
}
.card-dark {
--card-bg: #111;
}
Variantes possibles : override local.
:root {
--base: 1rem;
--space-lg: calc(var(--base) * 2);
}
:root {
--radius: 8px;
--radius-lg: calc(var(--radius) * 2);
}
Variantes possibles : calc, clamp.
:root {
--bg: #fff;
--fg: #111;
}
[data-theme="dark"] {
--bg: #111;
--fg: #fff;
}
Variantes possibles : data-theme, classes.
.btn {
--btn-bg: #111;
--btn-fg: #fff;
background: var(--btn-bg);
color: var(--btn-fg);
}
.btn-secondary {
--btn-bg: #eee;
--btn-fg: #111;
}
Variantes possibles : bg, fg, radius.
:root {
--fs-base: clamp(1rem, 2vw, 1.25rem);
}
:root { --fw: 600; }
.title { font-weight: var(--fw); }
Variantes possibles : clamp, min, max.
:root {
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-3: 1rem;
}
.stack > * + * {
margin-top: var(--space-3);
}
Variantes possibles : spacing modulaire.
:root {
--r-sm: 4px;
--r-md: 8px;
--r-lg: 16px;
}
.box { border-radius: var(--r-md); }
Variantes possibles : sm, md, lg.
:root { --t: 0.2s; }
.btn {
transition: background var(--t);
}
Variantes possibles : t, easing.
:root {
--fs-fluid: clamp(1rem, 2vw, 2rem);
}
:root {
--box-size: calc(100% - 2rem);
}
Variantes possibles : calc, clamp, min, max.
@media (min-width: 600px) {
:root {
--layout: row;
}
}
:root {
--spin: 360deg;
}
.icon {
transform: rotate(var(--spin));
}
Variantes possibles : angles, durées.