Avastage interaktiivsete kasutajaliideste täielik potentsiaal meie põhjaliku Tailwind CSS variantide juhendiga. Õppige pseudoklasside, olekute, grupi ja partneri stiilimist.
Tailwind CSS Variantide Meisterdamine: SĂĽvitsiminek Pseudoklasside ja Olekustiilide Maailma
Tänapäevases veebiarenduses on esmatähtis luua kasutajaliideseid, mis ei ole mitte ainult visuaalselt meeldivad, vaid ka dünaamilised ja kasutaja interaktsioonile reageerivad. Just siin tuleb esile utility-first raamistiku nagu Tailwind CSS tõeline jõud. Kuigi selle kasulikkuse klassid pakuvad "mida" – konkreetset stiilireeglit, mida rakendada –, pakuvad selle variandid üliolulist "millal".
Variandid on salajane koostisosa, mis muudab staatilised disainid interaktiivseteks kogemusteks. Need on spetsiaalsed eesliited, mis võimaldavad teil rakendada kasulikkuse klasse tingimuslikult, lähtudes elemendi olekust, kasutaja interaktsioonidest või isegi teise elemendi olekust. Olgu selleks nupu värvi muutmine hõljumisel, vormivälja stiilimine fookuses olles või teate kuvamine, kui märkeruut on märgitud – variandid on selle töö jaoks õiged tööriistad.
See põhjalik juhend on mõeldud arendajatele üle maailma. Uurime Tailwind CSS variantide täielikku spektrit, alates põhilistest pseudoklassidest nagu hover
ja focus
kuni täiustatud tehnikateni, kasutades group
ja peer
keerukate komponentide interaktsioonide jaoks. Lõpuks on teil teadmised, et ehitada keerukaid, olekuteadlikke liideseid täielikult oma HTML-i piires.
Põhikontseptsiooni Mõistmine: Mis on Variandid?
Oma olemuselt on variant Tailwind CSS-is eesliide, mille lisate kasulikkuse klassile, eraldatuna kooloniga (:
). See eesliide toimib tingimusena. Sellele eelnev kasulikkuse klass rakendub ainult siis, kui see tingimus on täidetud.
Põhiline süntaks on lihtne ja intuitiivne:
variant:utility-class
Näiteks, võtame lihtsa nupu. Te võiksite soovida, et selle taust oleks vaikimisi sinine, kuid tumedam sinine, kui kasutaja hiirega selle kohal hõljub. Traditsioonilises CSS-is kirjutaksite:
.my-button {
background-color: #3b82f6; /* bg-blue-500 */
}
.my-button:hover {
background-color: #2563eb; /* bg-blue-700 */
}
Tailwindi variantidega saavutate sama tulemuse otse oma HTML-is, hoides stiilid koos märgistusega:
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
Vajuta mind
</button>
Siin on hover:
variant. See ĂĽtleb Tailwindi Just-In-Time (JIT) mootorile, et genereerida CSS-reegel, mis rakendab bg-blue-700
ainult siis, kui nupp on :hover
olekus. See lihtne, kuid võimas kontseptsioon on kogu interaktiivse stiilimise alus Tailwind CSS-is.
Kõige Levinumad Variandid: Interaktiivsed Pseudoklassid
Pseudoklassid on CSS-selektorid, mis määratlevad elemendi eristaatuse. Tailwind pakub variante kõigile levinud pseudoklassidele, mida kasutate igapäevaselt kasutaja tegevustele reageerimiseks.
hover
Variant: Hiirekursorile Reageerimine
hover
variant on vaieldamatult kõige sagedamini kasutatav. See rakendab stiile, kui kasutaja kursor osutab elemendile. See on hädavajalik visuaalse tagasiside andmiseks linkidele, nuppudele, kaartidele ja mis tahes muule klikitavale elemendile.
Näide: interaktiivne kaardi komponent
Loome kaardi, mis hõljumisel tõuseb ja saab silmapaistvama varju – levinud muster kaasaegses kasutajaliidese disainis.
<div class="p-6 max-w-sm mx-auto bg-white rounded-xl shadow-md
transition-all duration-300
hover:shadow-xl hover:-translate-y-1">
<h3 class="text-xl font-medium text-black">Globaalsed Ăślevaated</h3>
<p class="text-slate-500">Avasta trende ĂĽle maailma.</p>
</div>
Selles näites:
hover:shadow-xl
muudab kasti varju hõljumisel suuremaks.hover:-translate-y-1
liigutab kaarti veidi ülespoole, luues "tõstva" efekti.- Lisasime
transition-all
jaduration-300
, et oleku muutus oleks sujuv ja animeeritud.
focus
Variant: Ligipääsetavuse ja Sisendi Stiilimine
focus
variant on ligipääsetavuse jaoks kriitilise tähtsusega. See rakendab stiile, kui element on valitud, kas hiirega klõpsates või klaviatuuriga sellele navigeerides (nt 'Tab' klahviga). Seda kasutatakse kõige sagedamini vormielementidel nagu sisendväljad, tekstialad ja nupud.
Näide: hästi stiilitud vormi sisendväli
Selge fookusolek annab kasutajatele täpselt teada, kus nad lehel on, mis on klaviatuuriga navigeerimisel eluliselt tähtis.
<label for="email" class="block text-sm font-medium text-gray-700">E-posti Aadress</label>
<input type="email" id="email"
class="mt-1 block w-full px-3 py-2 bg-white border border-slate-300 rounded-md
text-sm shadow-sm placeholder-slate-400
focus:outline-none focus:border-sky-500 focus:ring-1 focus:ring-sky-500">
Mida focus:
variandid siin teevad:
focus:outline-none
: Eemaldab brauseri vaikimisi fookusraami. Teeme seda, et asendada see meie enda, visuaalselt meeldivama stiiliga.focus:border-sky-500
: Muudab äärise värvi helesiniseks.focus:ring-1 focus:ring-sky-500
: Lisab sama värvi peene välise kuma (kasti varju rõnga), muutes fookusoleku veelgi silmapaistvamaks.
active
Variant: Klõpsude ja Puudutuste Püüdmine
active
variant rakendub, kui kasutaja elementi aktiveerib – näiteks, kui nuppu hoitakse all. See annab kohest tagasisidet, et klõps või puudutus on registreeritud.
Näide: "vajutatud" efektiga nupp
<button class="bg-indigo-500 text-white font-semibold py-2 px-4 rounded-lg
shadow-md hover:bg-indigo-600 focus:outline-none
focus:ring-2 focus:ring-indigo-400 focus:ring-opacity-75
active:bg-indigo-700 active:translate-y-0.5">
Esita
</button>
Selles täiustatud nupus:
active:bg-indigo-700
muudab nupu vajutamise ajal veelgi tumedamaks.active:translate-y-0.5
lĂĽkkab nuppu veidi alla, luues fĂĽĂĽsilise allavajutamise efekti.
Teised Interaktiivsed Variandid: focus-within
ja focus-visible
focus-within
: See kasulik variant rakendab stiile *vanem*elemendile, kui mõni selle *laps*element saab fookuse. See sobib ideaalselt terve vormigrupi stiilimiseks, kui kasutaja selle sisendiga suhtleb.
<div class="flex items-center space-x-2 p-4 border rounded-lg focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500">
<!-- SVG Ikoon -->
<svg class="h-6 w-6 text-gray-400">...</svg>
<input type="text" placeholder="Otsi..." class="outline-none">
</div>
NĂĽĂĽd, kui kasutaja fokuseerib <input>
elemendi, saab kogu vanem <div>
sinise äärise ja rõnga.
focus-visible
: Brauseritel on erinevad heuristikad selle kohta, millal fookusrõngast näidata. Näiteks ei pruugi nad seda näidata nupul pärast hiireklõpsu, kuid näitavad seda pärast klaviatuuriga navigeerimist. focus-visible
variant võimaldab teil seda nutikamat käitumist ära kasutada. Üldiselt on soovitatav kasutada focus-visible
'it focus
'e asemel raami/rõnga stiilimiseks, et pakkuda paremat kasutajakogemust nii hiire- kui ka klaviatuurikasutajatele.
Olekupõhine Stiilimine: Vormi ja Kasutajaliidese Elementide Variandid
Lisaks otsesele kasutaja interaktsioonile on elementidel sageli nende atribuutidest tulenevaid olekuid. Tailwind pakub variante nende olekute deklaratiivseks stiilimiseks.
disabled
Variant: Kättesaamatuse Kommunikeerimine
Kui nupul või vormi sisendil on disabled
atribuut, ei saa sellega suhelda. disabled
variant võimaldab teil seda olekut stiilida, et see oleks kasutajale visuaalselt selge.
<button disabled class="bg-slate-300 text-slate-500 font-bold py-2 px-4 rounded cursor-not-allowed
disabled:opacity-50">
Töötlemisel...
</button>
Siin vähendab disabled:opacity-50
nupu läbipaistvust, kui disabled
atribuut on olemas – levinud tava passiivse oleku tähistamiseks. cursor-not-allowed
kasulikkuse klass tugevdab seda veelgi.
checked
Variant: Märkeruutude ja Raadionuppude jaoks
checked
variant on hädavajalik kohandatud märkeruutude ja raadionuppude loomiseks. See rakendab stiile, kui sisendi checked
atribuut on tõene.
Näide: kohandatud stiiliga märkeruut
<label class="flex items-center space-x-3">
<input type="checkbox" class="appearance-none h-5 w-5 border border-gray-300 rounded-md
checked:bg-blue-600 checked:border-transparent">
<span class="text-gray-900 font-medium">Nõustun tingimustega</span>
</label>
Kasutame appearance-none
, et eemaldada brauseri vaikestiil, ja seejärel kasutame checked:
varianti, et muuta taustavärvi, kui ruut on märgitud. Võiksite isegi lisada linnukese ikooni, kasutades ::before
või ::after
pseudoelemente koos selle variandiga.
Vormi Valideerimise Variandid: required
, optional
, valid
, invalid
Kaasaegsed vormid pakuvad reaalajas valideerimise tagasisidet. Tailwindi valideerimisvariandid kasutavad brauseri piirangute valideerimise API-d. Need variandid rakenduvad atribuutide nagu required
ja sisendi väärtuse hetke kehtivusoleku põhjal (nt type="email"
korral).
<input type="email" required
class="border rounded-md px-3 py-2
invalid:border-pink-500 invalid:text-pink-600
focus:invalid:border-pink-500 focus:invalid:ring-pink-500
valid:border-green-500">
Sellel sisendväljal on:
- Roosa äär ja tekst, kui sisu ei ole kehtiv e-posti aadress (
invalid:
). - Roheline äär, kui kehtiv e-posti aadress on sisestatud (
valid:
). - Fookusrõngas muutub samuti roosaks, kui väli on fookuses olles kehtetu (
focus:invalid:
).
Täiustatud Interaktiivsus: `group` ja `peer` Variandid
Mõnikord on vaja stiilida elementi *teise* elemendi oleku põhjal. Siin tulevad mängu võimsad group
ja peer
kontseptsioonid. Nad lahendavad terve klassi kasutajaliidese väljakutseid, mida varem oli kasulikkuse klassidega raske käsitleda.
`group`'i Jõud: Laste Stiilimine Vanema Oleku Järgi
group
variant võimaldab teil stiilida lastelemente vanema elemendi oleku põhjal. Selle kasutamiseks lisage group
klass vanemale elemendile, mida soovite jälgida. Seejärel saate mis tahes lapselemendil kasutada variante nagu group-hover
, group-focus
jne.
Näide: kaart pealkirja ja ikooniga, mis muudavad hõljumisel koos värvi
<a href="#" class="group block max-w-xs mx-auto rounded-lg p-6 bg-white ring-1 ring-slate-900/5 shadow-lg space-y-3
hover:bg-sky-500 hover:ring-sky-500">
<div class="flex items-center space-x-3">
<!-- SVG Ikoon -->
<svg class="h-6 w-6 stroke-sky-500 group-hover:stroke-white">...</svg>
<h3 class="text-slate-900 group-hover:text-white text-sm font-semibold">Uus Projekt</h3>
</div>
<p class="text-slate-500 group-hover:text-white text-sm">Loo uus projekt erinevate mallide hulgast.</p>
</a>
Kuidas see töötab:
- Lisame
group
klassi vanemale<a>
sildile. - Kui kasutaja hõljub terve lingi kohal, muutub selle taustavärv tänu klassile
hover:bg-sky-500
. - Samaaegselt aktiveeruvad SVG-l klass
group-hover:stroke-white
ja tekstielementidel klassgroup-hover:text-white
, muutes nende värvid valgeks.
See loob ühtse, tervikliku hõljumisefekti, mis muidu nõuaks kohandatud CSS-i või JavaScripti.
Õde-Vennaselementide Stiilimine `peer`'iga: Vormide Pöördeline Muutus
peer
variant sarnaneb group
'iga, kuid see töötab õde-vennaselementide stiilimiseks. Lisate peer
klassi ühele elemendile ja seejärel saate kasutada variante nagu peer-checked
või peer-invalid
*järgnenud* õde-vennaselementidel, et neid stiilida "partneri" oleku põhjal. See on uskumatult kasulik kohandatud vormikontrollide jaoks.
Näide: silt, mis muutub, kui sellega seotud märkeruut on märgitud
<label class="relative inline-flex items-center cursor-pointer">
<input type="checkbox" class="sr-only peer">
<div class="w-11 h-6 bg-gray-200 rounded-full
peer-focus:ring-4 peer-focus:ring-blue-300
peer-checked:after:translate-x-full peer-checked:after:border-white
after:content-[''] after:absolute after:top-0.5 after:left-[2px]
after:bg-white after:border-gray-300 after:border after:rounded-full
after:h-5 after:w-5 after:transition-all
peer-checked:bg-blue-600"></div>
<span class="ml-3 text-sm font-medium text-gray-900 peer-checked:text-blue-600">
Luba Teavitused
</span>
</label>
See on täielik, ligipääsetav lüliti, mis on ehitatud null JavaScriptiga!
- Tegelik märkeruut
<input>
on visuaalselt peidetud klassigasr-only
(see on endiselt ekraanilugejatele ligipääsetav) ja märgitud kuipeer
. - Visuaalne lĂĽliti on
<div>
, mis on stiilitud välja nägema nagu rööbas koos nupuga (kasutades::after
pseudoelementi). peer-checked:bg-blue-600
muudab rööpa taustavärvi, kui peidetud märkeruut on märgitud.peer-checked:after:translate-x-full
libistab nupu paremale, kui märkeruut on märgitud.peer-checked:text-blue-600
muudab õde-vennaselemendi<span>
sildi teksti värvi.
Variantide Kombineerimine Granulaarse Kontrolli Saavutamiseks
Üks Tailwindi võimsamaid omadusi on võime variante omavahel aheldada. See võimaldab luua väga spetsiifilisi tingimuslikke stiile.
Reageerivad ja Olekupõhised Variandid: Dünaamiline Duo
Saate kombineerida reageerivaid eesliiteid (nagu md:
, lg:
) olekuvariantidega, et rakendada stiile ainult teatud ekraanisuurustel *ja* teatud olekutes. Reageeriv variant tuleb alati esimesena.
SĂĽntaks: murdepunkt:olek:utility-class
<button class="bg-blue-500 text-white p-2 rounded
hover:bg-blue-600
md:bg-green-500 md:hover:bg-green-600">
Reageeriv Nupp
</button>
See nupp on:
- Väikestel ekraanidel sinine, hõljumisel muutudes tumedamaks siniseks.
- Keskmistel ja suurematel ekraanidel roheline (
md:bg-green-500
), hõljumisel muutudes tumedamaks roheliseks (md:hover:bg-green-600
).
Mitme Olekupõhise Variandi Virnastamine
Saate ka virnastada mitu olekuvarianti, et rakendada stiile ainult siis, kui kõik tingimused on täidetud. See on kasulik interaktsioonide peenhäälestamiseks.
Näide: tumeda režiimi nupp, mis reageerib hõljumisele ja fookusele erinevalt
<button class="p-2 rounded-full text-gray-400
dark:text-gray-500
hover:text-gray-600 dark:hover:text-gray-300
focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-500
dark:focus:ring-offset-gray-900 dark:focus:ring-gray-400
dark:hover:focus:ring-gray-200">
<!-- Ikoon siin -->
</button>
Siin rakendab dark:hover:focus:ring-gray-200
spetsiifilise rõnga värvi ainult siis, kui tume režiim on aktiivne, nupu kohal hõljutakse *ja* sellel on fookus. Olekupõhiste variantide järjekord ei ole üldiselt oluline, kuna Tailwind genereerib kombinatsiooni jaoks õige CSS-selektori.
Kohandamine ja Ăśhekordsed Lahendused
Kuigi Tailwind pakub karbist välja laia valikut variante, on mõnikord vaja rohkem kontrolli.
Suvaliste Variantide Kasutamine
Ühekordseteks olukordadeks, kus vajate CSS-selektorit, mida sisseehitatud variant ei kata, saate kasutada suvalisi variante. See on uskumatult võimas pääsetee, mis võimaldab teil kirjutada kohandatud selektoreid otse oma klassi atribuuti, ümbritsetuna nurksulgudega.
Näide: loendi elementide erinev stiilimine
<ul>
<li class="[&:nth-child(odd)]:bg-gray-100 p-2">Esimene element</li>
<li class="[&:nth-child(odd)]:bg-gray-100 p-2">Teine element</li>
<li class="[&:nth-child(odd)]:bg-gray-100 p-2">Kolmas element</li>
</ul>
Klass [&:nth-child(odd)]:bg-gray-100
genereerib CSS-i li:nth-child(odd)
jaoks, luues triibulise loendi ilma, et peaks igale elemendile lisaklasse lisama.
Teine levinud kasutusala on otseste järeltulijate stiilimine:
<div class="[&_>_p]:mt-4">
<p>Esimene lõik.</p>
<p>Teine lõik. Sellel on ülemine marginaal.</p>
<div><p>Pesastatud lõik. Sellel EI OLE ülemist marginaali.</p></div>
</div>
Klass [&_>_p]:mt-4
stiilib ainult div'i otseseid p
lapsi.
Variantide Konfigureerimine `tailwind.config.js` Failis
Vaikimisi lubab Tailwindi JIT-mootor kõik variandid kõigi põhipluginate jaoks. Kui aga peate lubama variante kolmandate osapoolte pluginate jaoks või soovite registreerida kohandatud variandi, peate kasutama oma `tailwind.config.js` faili.
// tailwind.config.js
module.exports = {
// ...
plugins: [
function({ addVariant }) {
addVariant('child', '& > *');
addVariant('child-hover', '& > *:hover');
}
],
}
See kohandatud plugin lisab uued `child` ja `child-hover` variandid, mida saaksite seejärel kasutada näiteks child:text-red-500
, et stiilida kõiki elemendi otseseid lapsi.
Kokkuvõte: Olekupõhise Kasutajaliidese Jõud
Tailwind CSS variandid on midagi enamat kui lihtsalt mugavus; need on utility-first filosoofia fundamentaalne osa. Lubades teil kirjeldada elemendi välimust kõigis selle potentsiaalsetes olekutes otse HTML-is, aitavad variandid teil ehitada keerukaid, vastupidavaid ja väga hästi hooldatavaid kasutajaliideseid.
Alates lihtsatest hover
efektidest kuni keerukate vormikontrollideni, mis on ehitatud peer-checked
abil, ning reageerivate, mitme olekuga kombinatsioonideni, on teil nüüd põhjalik tööriistakomplekt oma disainide ellu äratamiseks. Need soodustavad komponendipõhist mõtteviisi, kus kogu loogika – struktuur, stiil ja olek – on kapseldatud ühte kohta.
Oleme käsitlenud põhitõdesid ja uurinud täiustatud tehnikaid, kuid teekond ei lõpe siin. Parim viis variantide valdamiseks on nende kasutamine. Katsetage nende kombineerimist, uurige ametlikus Tailwind CSS dokumentatsioonis olevat täielikku nimekirja ja esitage endale väljakutse ehitada interaktiivseid komponente ilma kohandatud CSS-i või JavaScripti järele haaramata. Olekupõhise stiilimise jõudu omaks võttes saate ehitada kiiremaid, järjepidevamaid ja meeldivamaid kasutajakogemusi globaalsele publikule.