Skip to content

Wind3 prednastavitev

Kompaktna prednastavitev Tailwind CSS / Windi CSS za UnoCSS.

Izvorna koda

INFO

@unocss/preset-wind in @unocss/preset-uno sta opuščena in preimenovana v @unocss/preset-wind3. Ta prednastavitev deduje od @unocss/preset-mini.

Namestitev

bash
pnpm add -D @unocss/preset-wind3
bash
yarn add -D @unocss/preset-wind3
bash
npm install -D @unocss/preset-wind3
bash
bun add -D @unocss/preset-wind3
ts
import presetWind3 from '@unocss/preset-wind3'
import { defineConfig } from 'unocss'

export default defineConfig({
  presets: [
    presetWind3(),
  ],
})

TIP

Ta prednastavitev je vključena v paket unocss, lahko jo tudi uvozite od tam:

ts
import { presetWind3 } from 'unocss'

Pravila

Primarni cilj te prednastavitve je zagotoviti združljivost s Tailwind CSS in Windi CSS. Opozoriti je treba, da popolna združljivost morda ne bo zagotovljena. Za podrobno uporabo si oglejte njihovo dokumentacijo.

Za vsa pravila in prednastavitve, vključene v to prednastavitev, glejte našo interaktivno dokumentacijo ali neposredno pojdite na izvorno kodo.

Funkcije

Temni način

Privzeto ta prednastavitev generira temni način na osnovi razreda z varianto dark:.

html
<div class="dark:bg-red:10" />

bo generiralo:

css
.dark .dark\:bg-red\:10 {
  background-color: rgb(248 113 113 / 0.1);
}

Temni način na osnovi medijske poizvedbe

Če želite namesto tega uporabiti temni način na osnovi medijske poizvedbe globalno, lahko spremenite konfiguracijo za varianto dark::

ts
presetWind3({
  dark: 'media'
})

Zdaj

html
<div class="dark:bg-red:10" />

bo generiralo:

css
@media (prefers-color-scheme: dark) {
  .dark\:bg-red\:10 {
    background-color: rgb(248 113 113 / 0.1);
  }
}

Opt-in temni način na osnovi medijske poizvedbe

Za uporabo opt-in temnega načina na osnovi medijske poizvedbe lahko uporabite varianto @dark::

html
<div class="@dark:bg-red:10" />
css
@media (prefers-color-scheme: dark) {
  .\@dark\:bg-red\:10 {
    background-color: rgb(248 113 113 / 0.1);
  }
}

Razlike od Tailwind CSS

Narekovaji

Uporaba narekovajev v predlogi (datoteke, namenjene obdelavi) ni podprta zaradi načina delovanja ekstraktorja. Npr. ne boste mogli napisati before:content-['']. Za te primere boste morda raje uvedli nov pripomoček, ki ga lahko eksplicitno nastavite, kot je class="before:content-empty".

background-position s poljubnimi vrednostmi

Tailwind omogoča uporabo poljubnih vrednosti za background-position z uporabo osnovne sintakse:

html
<div class="bg-[center_top_1rem]"></div>

Prednastavitev Wind bo namesto tega interpretirala center_top_1rem kot barvo. Uporabite predpono position: za dosego enakega rezultata:

html
<div class="bg-[position:center_top_1rem]"></div>

Animacije

Tailwind CSS ima manj vgrajenih animacij, mi v celoti podpiramo njegova pravila animacije in interno integriramo Animate.css za zagotavljanje več animacijskih učinkov.

Uporabite lahko predpono animate- za hitro iskanje potrebne animacije z IntelliSense.

TIP

Ne združujemo konfliktnih imen animacij iz Tailwind in Animate.css. Če morate uporabiti ime animacije iz Animate.css, uporabite animate-<ime>-alt.

Na primer

Tailwind CSSAnimate.css
animate-bounceanimate-bounce-alt

Če želite prilagoditi ali spremeniti učinek animacije, zagotavljamo visoko prilagodljive konfiguracijske elemente. Spremenite lahko trajanje, zamik, krivuljo hitrosti itd. animacije prek konfiguracijskega elementa.

ts
export default defineConfig({
  theme: {
    animation: {
      keyframes: {
        custom: '{0%, 100% { transform: scale(0.5); } 50% { transform: scale(1); }}',
      },
      durations: {
        custom: '1s',
      },
      timingFns: {
        custom: 'cubic-bezier(0.4,0,.6,1)',
      },
      properties: {
        custom: { 'transform-origin': 'center' },
      },
      counts: {
        custom: 'infinite',
      },
    }
  }
})

Predogled prilagojene animacije:

animate-custom

TIP

Animacijam lahko dodate tudi category za boljše upravljanje. To bo olajšalo porabo animacijskih učinkov za orodja nižjega nivoja.

ts
export default defineConfig({
  theme: {
    animation: {
      keyframes: {
        custom: '{0%, 100% { transform: scale(0.5); } 50% { transform: scale(1); }}',
      },
      // ...
      category: {
        custom: 'Zooming',
      },
    }
  }
})

Razlike od Windi CSS

Prelomne točke

Windi CSSUnoCSS
<sm:p-1lt-sm:p-1
@lg:p-1at-lg:p-1
>xl:p-1xl:p-1

Presledki v sintaksi z oklepaji

Ta prednastavitev uporablja _ namesto , za spoštovanje presledka v sintaksi z oklepaji.

Windi CSSUnoCSS
grid-cols-[1fr,10px,max-content]grid-cols-[1fr_10px_max-content]

Ker nekatera CSS pravila zahtevajo , kot del vrednosti, npr. grid-cols-[repeat(3,auto)]

Eksperimentalne funkcije

WARNING

Ta prednastavitev vključuje eksperimentalne funkcije, ki se lahko kadar koli spremenijo na prelomne načine.

Media Hover

Media hover obravnava problem lepljivega hoverja, kjer tap cilja, ki vključuje slog hover na mobilnih napravah, ohrani ta slog hover, dokler ne tapnete drugje.

Ker je običajni slog :hover verjetno uporabljen tako široko, varianta uporablja sintaksno @hover za razlikovanje od običajnega psevda hover.

Varianta @hover-text-red bo izpisala:

css
@media (hover: hover) and (pointer: fine) {
  .\@hover-text-red:hover {
    --un-text-opacity: 1;
    color: rgb(248 113 113 / var(--un-text-opacity));
  }
}

Možnosti

INFO

Možnosti te prednastavitve so podedovane od @unocss/preset-mini.

important

  • Tip: boolean | string
  • Privzeto: false

Možnost important vam omogoča nadzor, ali naj bodo pripomočki UnoCSS označeni z !important. To je lahko res uporabno, ko uporabljate UnoCSS z obstoječim CSS, ki ima selektorje z visoko specifičnostjo.

WARNING

Uporaba te možnosti bo uporabila important za vse pripomočke, ki jih generira UnoCSS. Če jih želite uporabiti le za določene pripomočke, lahko namesto tega uporabite varianto important:.

Vendar pa nastavitev important na true lahko povzroči nekatere težave pri vključevanju knjižnic JS tretjih oseb, ki dodajajo slogovne vrstice vašim elementom. V teh primerih pripomočki UnoCSS !important premagajo slogovne vrstice, kar lahko pokvari vašo načrtovano zasnovo.

Da se temu izognete, lahko namesto tega nastavite important na ID selektor, kot je #app:

ts
import presetWind3 from '@unocss/preset-wind'
import { defineConfig } from 'unocss'

export default defineConfig({
  presets: [
    presetWind3({
      important: '#app',
    }),
  ],
})

Ta konfiguracija bo predpono vseh vaših pripomočkov z danim selektorjem, kar učinkovito poveča njihovo specifičnost, ne da bi jih dejansko naredila !important.

Pripomoček dark:bg-blue bo izpisal:

css
#app :is(.dark .dark\:bg-blue) {
  --un-bg-opacity: 1;
  background-color: rgb(96 165 250 / var(--un-bg-opacity));
}

Released under the MIT License.