Skip to content

What is UnoCSS?

UnoCSS je okamžitý atomický CSS engine, ktorý je navrhnutý tak, aby bol flexibilný a rozšíriteľný. Jadro je nestranné a všetky CSS utility sú poskytované prostredníctvom presetov.

Napríklad môžete definovať svoje vlastné CSS utility poskytnutím pravidiel vo vašom lokálnom konfiguračnom súbore.

ts
import { defineConfig } from 'unocss'

export default defineConfig({
  rules: [
    ['m-1', { margin: '1px' }],
  ],
})

Toto pridá novú CSS utility m-1 do vášho projektu. Keďže UnoCSS je on-demand, neurobí nič, kým ju nepoužijete vo vašom kóde. Takže povedzme, že máte komponent ako tento:

html
<div class="m-1">Hello</div>

m-1 bude detegované a nasledujúce CSS bude vygenerované:

css
.m-1 { margin: 1px; }

Aby to bolo flexibilnejšie, môžete urobiť svoje pravidlo dynamickým zmenou prvého argumentu na pravidle (nazývame ho matcher) na RegExp a tela na funkciu, napríklad:

diff
export default defineConfig({
  rules: [
-    ['m-1', { margin: '1px' }],
+    [/^m-([\.\d]+)$/, ([_, num]) => ({ margin: `${num}px` })],
  ],
})

Týmto spôsobom teraz môžete mať ľubovoľné margin utility, ako m-1, m-100 alebo m-52.43. A opäť, UnoCSS ich generuje iba vtedy, keď ich použijete.

html
<div class="m-1">Hello</div>
<div class="m-7.5">World</div>
css
.m-1 { margin: 1px; }
.m-7.5 { margin: 7.5px; }

Presets

Akonáhle vytvoríte niekoľko pravidiel, môžete ich extrahovať do presetu a zdieľať s ostatnými. Napríklad môžete vytvoriť preset pre dizajnový systém vašej spoločnosti a zdieľať ho s vaším tímom.

ts
import { Preset } from 'unocss'

export const myPreset: Preset = {
  name: 'my-preset',
  rules: [
    [/^m-([.\d]+)$/, ([_, num]) => ({ margin: `${num}px` })],
    [/^p-([.\d]+)$/, ([_, num]) => ({ padding: `${num}px` })],
  ],
  variants: [/* ... */],
  shortcuts: [/* ... */],
  // ...
}
ts
import { defineConfig } from 'unocss'
import { myPreset } from './my-preset'

export default defineConfig({
  presets: [
    myPreset, // váš vlastný preset
  ],
})

Podobne sme poskytli niekoľko oficiálnych presetov, ktoré môžete okamžite začať používať, a môžete tiež nájsť mnoho zaujímavých komunitných presetov.

Play

Môžete vyskúšať UnoCSS vo vašom prehliadači v Playground. Alebo si pozrieť utility z predvolených presetov v Interaktívnej dokumentácii.

Integrations

UnoCSS prichádza s integráciami pre rôzne frameworky / nástroje:

Examples

Zdrojový kód pre všetky príklady nájdete v adresári /examples.

Released under the MIT License.