Używanie zmiennych CSS w Tailwind
Definiować tokeny projektowe jako własne właściwości CSS i odwoływać się do nich w konfiguracji Tailwind, tworząc dynamiczne wartości uwzględniające motyw.
Używanie zmiennych CSS w Tailwind to bezpłatna lekcja Tailwind CSS Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Tailwind CSS Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Tailwind CSS Academy zawiera 4 lekcji w sumie.
Właściwości niestandardowe CSS jako tokeny projektowe
Właściwości niestandardowe CSS (nazywane też zmiennymi CSS) pozwalają zdefiniować wartości raz i odwoływać się do nich w całym arkuszu stylów. Są to wartości działające w czasie wykonywania — można je zmieniać za pomocą JavaScriptu lub przez przełączanie klasy na elemencie nadrzędnym. Połączenie zmiennych CSS z konfiguracją Tailwind tworzy zaawansowany system obsługi motywów: tokeny projektowe są przechowywane w zmiennych CSS, a Tailwind generuje klasy narzędziowe odwołujące się do tych zmiennych.
/* CSS variables defined in :root */
:root {
--color-primary: #6366f1;
--color-surface: #ffffff;
--color-on-surface: #111827;
--spacing-section: 5rem;
}
/* Dark mode swaps values without changing class names */
.dark {
--color-surface: #1f2937;
--color-on-surface: #f9fafb;
}Odwoływanie się do zmiennych CSS w konfiguracji Tailwind
Powiąż zmienne CSS z konfiguracją Tailwind, używając składni var(--variable-name) jako wartości. Spowoduje to utworzenie klas narzędziowych, które w wygenerowanym CSS będą zwracać odwołania var(). W czasie wykonywania, gdy wartość zmiennej ulegnie zmianie (na przykład w trybie ciemnym lub po przełączeniu motywu), wszystkie elementy korzystające z tych klas narzędziowych zostaną natychmiast zaktualizowane — bez ponownego budowania CSS i przełączania dodatkowych klas.
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: {
primary: 'var(--color-primary)',
surface: 'var(--color-surface)',
'on-surface': 'var(--color-on-surface)',
},
spacing: {
section: 'var(--spacing-section)',
},
},
},
};Symbol zastępczy alpha-value dla krycia
Jeśli chce Pan / Pani obsługiwać modyfikator krycia (bg-primary/50) dla kolorów przechowywanych w zmiennych CSS, Tailwind musi wiedzieć, jak zastosować krycie. Rozwiązaniem jest przechowywanie kolorów jako rozdzielonych spacjami wartości kanałów RGB i użycie symbolu zastępczego <alpha-value> w konfiguracji. Tailwind zastępuje ten symbol ułamkiem krycia podczas kompilacji, generując poprawną składnię rgba() lub rgb(... / alpha).
/* CSS: store as RGB channels, not hex */
:root {
--color-primary: 99 102 241; /* R G B without rgb() wrapper */
}
.dark {
--color-primary: 129 140 248; /* lighter shade for dark mode */
}
/* tailwind.config.js */
colors: {
primary: 'rgb(var(--color-primary) / <alpha-value>)',
}
<!-- Now opacity modifier works -->
<div class="bg-primary/50"> <!-- 50% opacity primary background -->Automatyczny tryb ciemny za pomocą zmiennych CSS
Najbardziej eleganckim zastosowaniem zmiennych CSS w Tailwind jest automatyczny tryb ciemny bez umieszczania wszędzie prefiksów dark:. Należy zdefiniować tokeny semantyczne (powierzchnia, tekst, obramowanie) jako zmienne CSS i zmieniać ich wartości w selektorze .dark. Komponenty korzystające z bg-surface automatycznie otrzymają ciemne tło — bez potrzeby dodawania dodatkowych klas do poszczególnych elementów. Znacznie zmniejsza to ilość znaczników potrzebnych do obsługi trybu ciemnego.
/* CSS */
:root {
--surface: 255 255 255; /* white */
--on-surface: 17 24 39; /* gray-900 */
}
.dark {
--surface: 31 41 55; /* gray-800 */
--on-surface: 249 250 251; /* gray-50 */
}
<!-- tailwind.config.js adds: bg-surface, text-on-surface -->
<!-- HTML: no dark: prefix needed! -->
<div class="bg-surface text-on-surface p-6 rounded-xl">
Automatically adapts to dark mode via CSS variable swap
</div>Przełączanie wielu motywów w czasie wykonywania
Zmienne CSS umożliwiają obsługę wielu motywów, nie tylko jasnego i ciemnego. Należy zdefiniować zestaw zmiennych CSS dla każdego motywu i stosować poszczególne zestawy przez przełączanie atrybutu data-theme lub klasy na elemencie głównym. Użytkownicy mogą natychmiast przełączyć domyślny niebieski motyw na zielony albo wysokokontrastowy, a wszystkie narzędzia Tailwind odwołujące się do tych zmiennych zostaną zaktualizowane w czasie rzeczywistym.
/* Multiple brand themes using data-theme */
:root, [data-theme='blue'] {
--color-accent: 99 102 241;
}
[data-theme='green'] {
--color-accent: 22 163 74;
}
[data-theme='orange'] {
--color-accent: 234 88 12;
}
<!-- Toggle themes with JavaScript -->
<script>
document.documentElement.setAttribute('data-theme', 'green');
</script>Używanie funkcji theme() w CSS
W plikach CSS przetwarzanych przez Tailwind specjalna funkcja theme() umożliwia bezpośrednie odwoływanie się do wartości motywu Tailwind. Można jej używać w niestandardowych regułach CSS lub blokach @layer, aby uzyskać dostęp do skonfigurowanych wartości kolorów, odstępów i typografii. Jest to odwrotność poprzedniego wzorca — zamiast umieszczać zmienne CSS w konfiguracji Tailwind, przenosi się wartości tokenów Tailwind do CSS.
/* Using theme() function in CSS */
@layer components {
.btn-primary {
background-color: theme('colors.blue.600');
padding: theme('spacing.3') theme('spacing.6');
border-radius: theme('borderRadius.lg');
font-weight: theme('fontWeight.semibold');
color: theme('colors.white');
}
.btn-primary:hover {
background-color: theme('colors.blue.700');
}
}Łączenie zmiennych CSS z @apply
Zmienne CSS można łączyć z @apply w niestandardowych warstwach CSS. Należy zdefiniować klasę komponentu, używając @apply dla większości narzędzi, a następnie zastosować zmienne CSS dla wartości, które muszą zmieniać się w czasie wykonywania. Takie hybrydowe podejście pozwala zachować zwięzły kod HTML, a jednocześnie umożliwia dynamiczną obsługę motywów dla najważniejszych wartości systemu projektowego.
@layer components {
.card {
@apply rounded-xl border p-6 shadow-sm;
background-color: rgb(var(--surface) / 1);
color: rgb(var(--on-surface) / 1);
border-color: rgb(var(--border) / 1);
}
.card-header {
@apply font-semibold text-lg mb-4 pb-4;
border-bottom: 1px solid rgb(var(--border) / 1);
}
}Zmienne CSS dla tokenów typografii
Tokeny typografii, takie jak rozmiar czcionki, wysokość wiersza i odstępy między literami, również można definiować jako zmienne CSS i wykorzystywać w konfiguracji Tailwind. Umożliwia to responsywną typografię, w której JavaScript dostosowuje zmienne font-size na podstawie warunków związanych z obszarem widoku, a także skalowanie czcionki przyjazne dla dostępności, dzięki któremu użytkownicy mogą zwiększać rozmiar tekstu, a zmienne automatycznie propagują się w całym systemie projektowym.
/* Typography tokens as CSS variables */
:root {
--font-size-base: 1rem;
--font-size-lg: 1.125rem;
--font-size-xl: 1.25rem;
--line-height-normal: 1.5;
--font-weight-heading: 700;
}
/* tailwind.config.js */
theme: {
extend: {
fontSize: {
'token-base': 'var(--font-size-base)',
'token-lg': 'var(--font-size-lg)',
},
},
}Uwagi dotyczące obsługi przez przeglądarki
Właściwości niestandardowe CSS są obsługiwane we wszystkich nowoczesnych przeglądarkach (Chrome, Firefox, Safari, Edge). NIE są obsługiwane w Internet Explorerze 11. Jeśli projekt musi obsługiwać IE11, nie można używać zmiennych CSS do obsługi motywów. W przypadku wszystkich pozostałych projektów (czyli zdecydowanej większości obecnie) zmienne CSS są bezpiecznym i zaawansowanym rozwiązaniem, szeroko obsługiwanym przez przeglądarki używane na całym świecie.
/* CSS variables work in all modern browsers */
/* Browser support: Chrome 49+, Firefox 31+, Safari 9.1+, Edge 15+ */
/* For IE11 fallback (if required): */
.button {
background-color: #6366f1; /* IE11 fallback */
background-color: var(--color-primary); /* modern browsers override above */
}Sprawdzanie zmiennych CSS w DevTools
Zmienne CSS można łatwo sprawdzać i debugować w narzędziach DevTools przeglądarki. Należy wybrać dowolny element i przejść do karty Computed — pojawią się tam obliczone wartości używanych zmiennych CSS. Panel Elements pokazuje deklarację zmiennej w kaskadzie. Można nawet bezpośrednio nadpisywać wartości zmiennych CSS w DevTools, aby podglądać zmiany motywu bez modyfikowania kodu, co doskonale sprawdza się podczas szybkiego iterowania nad tokenami projektowymi.
Zmienne CSS a wartości konfiguracji: kiedy używać których
Statycznych wartości konfiguracji należy używać dla tokenów projektowych, które nigdy nie zmieniają się w czasie wykonywania — skali odstępów, skali zaokrągleń obramowania, punktów przerwania i skali rozmiarów czcionki. Zmiennych CSS należy używać dla tokenów zmieniających się zależnie od motywu, preferencji użytkownika lub kontekstu wykonywania — kolorów, teł powierzchni, kolorów tekstu i semantycznych tokenów projektowych. Taki podział przechowuje w CSS elementy systemu projektowego zmieniające się w czasie wykonywania, a strukturalne reguły układu pozostawia w konfiguracji, gdzie są przetwarzane podczas budowania.
Szybkie sprawdzenie
Sprawdź swoje rozumienie używania zmiennych CSS w Tailwind CSS.
Podsumowanie lekcji
W tej lekcji nauczył się Pan / nauczyła się Pani: zmienne CSS w konfiguracji Tailwind tworzą tokeny projektowe przełączane w czasie wykonywania; symbolu zastępczego <alpha-value> należy używać wraz ze zmiennymi kanałów RGB, aby obsługiwać modyfikator krycia; a semantyczne zmienne CSS przełączane w selektorze .dark lub [data-theme] umożliwiają automatyczną obsługę motywów bez klas dark: na poszczególnych elementach. W następnej części szczegółowo omówimy dyrektywę @apply służącą do wydzielania powtarzających się wzorców narzędziowych.
Ucz się HTML dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Używanie zmiennych CSS w Tailwind” jest bezpłatna?
Tak — pełny tekst „Używanie zmiennych CSS w Tailwind” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Tailwind CSS Academy, przejdź na CoddyKit PRO. Kurs Tailwind CSS Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Używanie zmiennych CSS w Tailwind”?
Definiować tokeny projektowe jako własne właściwości CSS i odwoływać się do nich w konfiguracji Tailwind, tworząc dynamiczne wartości uwzględniające motyw. Ćwiczysz Tailwind CSS Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Tailwind CSS Academy?
Nie wymagamy żadnego doświadczenia. Tailwind CSS Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Używanie zmiennych CSS w Tailwind”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Tailwind CSS Academy?
Tak. Każda lekcja Tailwind CSS Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dodawanie niestandardowych kolorów
- Niestandardowe rodziny czcionek
- Niestandardowe wartości odstępów
- Używanie zmiennych CSS w Tailwind