Skip to content

Czym jest UnoCSS?

UnoCSS to natychmiastowy silnik atomic CSS, zaprojektowany aby być elastycznym i rozszerzalnym. Rdzeń jest nieopinionowany i wszystkie narzędzia CSS są dostarczane przez presety.

Na przykład, możesz zdefiniować własne niestandardowe narzędzia CSS, podając reguły w lokalnym pliku konfiguracyjnym.

ts
import { defineConfig } from 'unocss'

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

To doda nowe narzędzie CSS m-1 do Twojego projektu. Ponieważ UnoCSS jest na żądanie, nie zrobi nic, dopóki nie użyjesz go w swoim kodzie. Więc powiedzmy, że mamy taki komponent:

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

m-1 zostanie wykryty i zostanie wygenerowany następujący CSS:

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

Aby uczynić to bardziej elastycznym, możesz uczynić swoją regułę dynamiczną, zmieniając pierwszy argument reguły (nazywamy go matcher) na RegExp, a ciało na funkcję, na przykład:

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

W ten sposób możesz teraz mieć dowolne narzędzia do marginesów, takie jak m-1, m-100 lub m-52.43. I ponownie, UnoCSS generuje je tylko wtedy, gdy ich użyjesz.

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; }

Presety

Po utworzeniu kilku reguł, możesz je wyodrębnić w preset i udostępnić innym. Na przykład, możesz utworzyć preset dla systemu design Twojej firmy i udostępnić go swojemu zespołowi.

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, // twój własny preset
  ],
})

Podobnie, udostępniliśmy kilka oficjalnych presetów, abyś mógł od razu zacząć ich używać, a także możesz znaleźć wiele interesujących presetów społeczności.

Zabawa

Możesz wypróbować UnoCSS w przeglądarce, w Placach zabaw. Lub wyszukaj narzędzia z domyślnych presetów w Dokumentacji interaktywnej.

Integracje

UnoCSS jest dostarczany z integracjami dla różnych frameworków / narzędzi:

Przykłady

Kod źródłowy wszystkich przykładów można znaleźć w katalogu /examples.

Released under the MIT License.