Varianten
Varianten stellen je in staat om enkele variaties toe te passen op je bestaande regels, zoals de hover: variant van Tailwind CSS.
Voorbeeld
ts
varianten: [
// hover:
(matcher) => {
if (!matcher.startsWith('hover:'))
return matcher
return {
// verwijder `hover:` prefix en geef door naar de volgende varianten en regels
matcher: matcher.slice(6),
selector: s => `${s}:hover`,
}
},
],
rules: [
[/^m-(\d)$/, ([, d]) => ({ margin: `${d / 4}rem` })],
]matchercontroleert wanneer de variant is ingeschakeld. Als de geretourneerde waarde een string is, zal deze worden gebruikt als de selector voor het matchen van de regels.selectorbiedt de mogelijkheid om de gegenereerde CSS selector aan te passen.
Onder de motorkap
Laten we een tour maken van wat er gebeurde bij het matchen van hover:m-2:
hover:m-2wordt geëxtraheerd uit gebruikershover:m-2wordt naar alle varianten gestuurd voor matchinghover:m-2wordt gematcht door onze variant en retourneertm-2- het resultaat
m-2zal worden gebruikt voor de volgende ronde van variant matching - als geen andere variant wordt gematcht, gaat
m-2dan naar het matchen van de regels - onze eerste regel wordt gematcht en genereert
.m-2 { margin: 0.5rem; } - tot slot passen we de transformatie van onze varianten toe op de gegenereerde CSS. In dit geval hebben we
:hovertoegevoegd aan deselectorhook
Als resultaat wordt de volgende CSS gegenereerd:
css
.hover\:m-2:hover { margin: 0.5rem; }Hiermee kunnen we m-2 alleen laten toepassen wanneer gebruikers over het element hoveren.
Verder gaan
Het variant systeem is zeer krachtig en kan niet volledig worden behandeld in deze handleiding, je kunt de implementatie van de standaard preset controleren om meer geavanceerde toepassingen te zien.