Czym są zmienne CSS?
Czym są zmienne CSS?
Zmienne CSS (ang. CSS custom properties) to sposób na przechowywanie wartości, które możesz wielokrotnie wykorzystywać w różnych miejscach arkusza stylów. Dzięki nim możesz zdefiniować kolor, rozmiar czy margines w jednym miejscu, a potem używać tej wartości w wielu miejscach – zamiast wpisywać ją ręcznie wszędzie tam, gdzie jest potrzebna.
Jak definiujemy zmienne?
Zmienne w CSS zapisujemy wewnątrz selektora, najczęściej w :root (czyli na poziomie całego dokumentu):
:root {
--main-color: #4caf50;
--font-size-base: 16px;
--spacing: 20px;
}
Każda zmienna zaczyna się od dwóch minusów (--) i ma nazwę, którą Ty wybierasz. To daje Ci pełną elastyczność.
Jak używać zmiennych?
Żeby użyć zmiennej, wystarczy wywołać ją za pomocą funkcji var():
button {
background-color: var(--main-color);
font-size: var(--font-size-base);
padding: var(--spacing);
}
Efekt działania: wszystkie przyciski będą miały kolor, rozmiar czcionki i wewnętrzne odstępy pobrane z wcześniej zdefiniowanych zmiennych.
Dlaczego warto używać zmiennych CSS?
- Ułatwiają szybkie wprowadzanie zmian w projekcie – np. zmiana koloru w jednym miejscu zmienia go wszędzie.
- Sprawiają, że kod jest bardziej przejrzysty i logiczny.
- Świetnie nadają się do tworzenia motywów (np. jasny/ciemny).
Domyślna wartość zmiennej
Możesz ustawić tzw. wartość zapasową na wypadek, gdyby zmienna nie była zdefiniowana:
color: var(--text-color, #000);
Efekt działania: jeśli --text-color nie istnieje, użyty zostanie czarny kolor (#000).
Ćwiczenie – zmienne kolorystyczne i rozmiary
W JSFiddle zdefiniuj zmienne w :root i użyj ich w stylach przycisku i nagłówka:
--primary-color: np. niebieski,--text-color: np. ciemny szary,--padding: np. 12px.
<style>
:root {
--primary-color: #2196f3;
--text-color: #333;
--padding: 12px;
}
h2 {
color: var(--primary-color);
}
button {
background: var(--primary-color);
color: white;
padding: var(--padding);
border: none;
font-weight: bold;
}
</style>
<h2>Witaj na stronie</h2>
<button>Kliknij mnie</button>
Spróbuj zmienić wartości zmiennych w :root i zobacz, jak cała strona zmienia wygląd. To właśnie siła zmiennych CSS!
