Variante
Variante vam omogočajo uporabo nekaterih variacij na vaših obstoječih pravilih, kot je varianta hover: iz Tailwind CSS.
Primer
ts
variants: [
// hover:
(matcher) => {
if (!matcher.startsWith('hover:'))
return matcher
return {
// odreži predpono `hover:` in posreduj naslednjim variantam in pravilom
matcher: matcher.slice(6),
selector: s => `${s}:hover`,
}
},
],
rules: [
[/^m-(\d)$/, ([, d]) => ({ margin: `${d / 4}rem` })],
]matchernadzoruje, kdaj je varianta omogočena. Če je vrnjena vrednost niz, bo uporabljen kot selektor za ujemanje s pravili.selectorzagotavlja možnost prilagajanja generiranega CSS selektorja.
Pod kapo
Oglejmo si, kaj se zgodi pri ujemanju za hover:m-2:
hover:m-2je izvlečen iz uporabnikove uporabehover:m-2poslan vsem variantam za ujemanjehover:m-2se ujema z našo varianto in vrnem-2- rezultat
m-2bo uporabljen za naslednji krog ujemanja variant - če se nobena druga varianta ne ujema, bo
m-2šel na ujemanje s pravili - naše prvo pravilo se ujema in generira
.m-2 { margin: 0.5rem; } - končno uporabimo transformacijo naših variant na generirani CSS. V tem primeru smo dodali
:hoverna hookselector
Kot rezultat bo generiran naslednji CSS:
css
.hover\:m-2:hover { margin: 0.5rem; }S tem lahko uporabimo m-2 le, ko uporabnik z miško prehaja čez element.
Naprej
Sistem variant je zelo zmogljiv in ga ni mogoče v celoti pokriti v tem vodniku, si oglejte implementacijo privzete prednastavitve za več naprednih uporab.