Variabile CSS și funcții moderne
CSS-ul modern nu mai e doar o listă statică de proprietăți. Cu variabile și funcții, putem crea teme, sisteme de spacing, culori dinamice și layout-uri responsive fără să repetăm cod.
1. Variabile CSS (--nume)
Variabilele CSS permit definirea unor valori reutilizabile, ușor de modificat. Se definesc în interiorul unui
selector (de obicei :root) și se accesează cu var().
:root {
--primary-color: #3498db;
--spacing: 16px;
}
.button {
background: var(--primary-color);
padding: var(--spacing);
}
2. Funcții moderne: calc(), clamp(), min(), max()
Aceste funcții permit calcule direct în CSS, utile pentru layout-uri responsive și scalabile.
calc()- combină unități:width: calc(100% - 20px)clamp()- definește o valoare între un minim și un maxim:font-size: clamp(1rem, 2vw, 2rem)min()/max()- aleg valoarea cea mai mică / mare
3. Tematizare și întreținere ușoară
Cu variabile, poți schimba tema unui site dintr-un singur loc. Poți chiar să le suprascrii în funcție de media queries sau moduri (dark/light).
:root {
--bg-color: #ffffff;
--text-color: #000000;
}
@media (prefers-color-scheme: dark) {
:root {
--bg-color: #121212;
--text-color: #f5f5f5;
}
}
body {
background: var(--bg-color);
color: var(--text-color);
}
Exemplu - Toggle temă cu variabile CSS
Acest exemplu folosește variabile CSS pentru a defini culorile temei și un buton care comută între modul light
și dark. Totul e controlat printr-o clasă pe <body>.
Best practices
Definește variabilele în :root
Astfel devin accesibile global în tot documentul.
:root {
--primary-color: #3498db;
--font-size-base: 1rem;
}
Folosește clamp() pentru scalabilitate
Ideal pentru fonturi și spacing responsive.
font-size: clamp(1rem, 2vw, 1.5rem);
Folosește calc() pentru layout flexibil
Combină unități pentru dimensiuni dinamice.
width: calc(100% - 40px);
Folosește min() și max() pentru control predictiv
Limitează dimensiuni în funcție de viewport.
width: min(100%, 600px);
Grupează variabilele pe categorii
Organizează-le pentru întreținere ușoară.
:root {
/* Culori */
--color-bg: #fff;
--color-text: #333;
/* Spacing */
--space-sm: 8px;
--space-md: 16px;
/* Fonturi */
--font-base: 1rem;
}
Folosește fallback în var()
Asigură-te că ai o valoare de rezervă.
color: var(--text-color, #000);
Tematizează cu clase sau media queries
Schimbă tema cu o clasă globală sau detectează automat.
:root.dark {
--color-bg: #121212;
--color-text: #f5f5f5;
}
Documentează variabilele
Adaugă comentarii clare pentru fiecare grup.
:root {
/* Culori principale ale temei */
--primary: #3498db;
}
Când variabilele CSS sunt bine structurate și funcțiile moderne sunt folosite inteligent, stilurile devin nu doar elegante, ci și scalabile, întreținute ușor și pregătite pentru orice provocare de design.
🧠 Quiz - Variabile CSS și funcții moderne
