Skip to content

Wind4 preset

Tailwind4 CSS kompakt preset för UnoCSS. Den är kompatibel med alla funktioner i PresetWind3 och förbättrar den ytterligare.

Källkod

TIP

Du kan lägga lite tid på att läsa detta dokument för att förstå ändringarna

Installation

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

export default defineConfig({
  presets: [
    presetWind4(),
    //  ^?
  ],
})

Kompatibilitet

Se Tailwind Compatibility för att lära dig om webbläsarstöd och kompatibilitet.

Tema

PresetWind4😒 tema är nästan identiskt med PresetWind3😒 tema, men vissa temanycklar har justerats.

WARNING

Vänligen notera vid växling till PresetWind4, se tabellen nedan för att kontrollera din temanyckelkonfiguration och göra lämpliga justeringar.

PresetWind3PresetWind4
fontFamilyfont
fontSizeFlyttad till fontSize-egenskap i text
lineHeightFlyttad till lineHeight-egenskap i text eller använd leading
letterSpacingFlyttad till letterSpacing-egenskap i text eller använd tracking
borderRadiusradius
easingease
breakpointsbreakpoint
verticalBreakpointsverticalBreakpoint
boxShadowshadow
-insetShadow
Storleksegenskaper som width, height, maxWidth, maxHeight, minWidth, minHeightAnvänd enhetligt spacing
transitionPropertyproperty
gridAutoColumn, gridAutoRow, gridColumn, gridRow, gridTemplateColumn, gridTemplateRow-
container.maxWidthcontainers.maxWidth
-defaults

Theme.defaults

Theme.defaults är en global standardtemakonfiguration som kommer att tillämpas på reset-stilar eller användas som standardvärden för vissa regler.

Nedan är standardvärdena för Theme.defaults, som du kan åsidosätta i din temakonfiguration.

Klicka för att visa standardvärden
ts
import type { Theme } from '@unocss/preset-wind4/theme'

export const defaults: Theme['defaults'] = {
  transition: {
    duration: '150ms',
    timingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',
  },
  font: {
    family: 'var(--font-sans)',
    featureSettings: 'var(--font-sans--font-feature-settings)',
    variationSettings: 'var(--font-sans--font-variation-settings)',
  },
  monoFont: {
    family: 'var(--font-mono)',
    featureSettings: 'var(--font-mono--font-feature-settings)',
    variationSettings: 'var(--font-mono--font-variation-settings)',
  },
}

Alternativ

PresetWind4:s grundkonfiguration liknar PresetWind3, med följande viktiga ändringar.

Reset-stilar

I PresetWind4 anpassar vi reset-stilarna till tailwind4 och integrerar dem internt. Du behöver inte installera något ytterligare CSS-reset-paket som @unocss/reset eller normalize.css.

ts
import '@unocss/reset/tailwind.css'
import '@unocss/reset/tailwind-compact.css'

Du behöver bara kontrollera om du vill aktivera reset-stilar genom en växling:

ts
import presetWind4 from '@unocss/preset-wind4'
import { defineConfig } from 'unocss'

export default defineConfig({
  presets: [
    presetWind4({
      reset: true, 
      // ^?
    }),
  ],
})

Utility Resolver

I PresetWind4 har vi uppgraderat postProcess-hook för att tillhandahålla ett mer koncist API. Du kan nu direkt anpassa utilities i preset.

Till exempel, om du vill använda presetRemToPx-preset för att konvertera rem till px, behöver du inte längre importera denna preset separat eftersom presetWind4 tillhandahåller denna funktion internt.

ts
import { createRemToPxResolver } from '@unocss/preset-wind4/utils'
import { defineConfig, presetWind4 } from 'unocss'

export default defineConfig({
  presets: [
    presetWind4({
      utilityResolver: createRemToPxResolver() 
    }),
  ],
})

Du kan anpassa fler resolver-uppsättningar för att bearbeta utilities och mata ut den CSS du vill ha.

För specifik implementering, se postProcess eller presetWind4 testfallet

Tema Preflight

Välj hur CSS-variabler för temat ska genereras.

UnoCSS-motorn med presetWind4 installerad kommer automatiskt att samla in beroenden på temat vid parsning av utilities och generera CSS-variabler i slutet.

  • true: Generera temanycklar fullständigt.
  • false: Inaktivera temanycklar. (Rekommenderas inte ⚠️)
  • 'on-demand': Generera temanycklar endast vid användning. -> ✅ (Som standard)

Genererad CSS

I utdata från PresetWind4 har två nya lager lagts till: theme och cssvar-property.

LagernamnBeskrivningordning
cssvar-propertyCSS-egenskaper definierade av @property-200
themeTema-relaterade CSS-variabler-150

cssvar-property-lager

Vi har använt @property för att definiera CSS-egenskaper i många regler för att uppnå bättre prestanda och mindre storlek.

Till exempel vanliga verktyg som text-op-xx, bg-op-xx, och så vidare.

css
@property --un-text-opacity {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

theme-lager

Vi har placerat tema-relaterade CSS-variabler i theme-lagret för att göra det lättare för dig att åsidosätta och använda direkt. Det kan vara omfattande eller på begäran. Det kommer alltid från din temakonfiguration.

css
:root,
:host {
  --spacing: 0.25rem;
  --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
    'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
  --colors-black: #000;
  --colors-white: #fff;
  /* ... */
}

Kompatibilitet med andra presets

PresetWind4 förbättrar och är kompatibel med PresetWind3. Eftersom andra paket ursprungligen utvecklades för PresetWind3, kan vissa problem uppstå vid användning tillsammans. Kända problem inkluderar:

presetWebFonts

Vid användning av presetWebFonts med PresetWind4, stöds inte temanyckeln fontFamily längre. Gör följande justering:

ts
import { defineConfig, presetWebFonts, presetWind4 } from 'unocss'

export default defineConfig({
  presets: [
    presetWind4(),
    presetWebFonts({
      themeKey: 'font', 
      // ^?
    }),
  ],
})

presetLegacyCompat

I presetWind4 använder vi oklch-färgmodellen för att stödja bättre färgkontrast och färguppfattning. Därför är den inte kompatibel med presetLegacyCompat och rekommenderas inte för användning tillsammans.

Se avsnittet Kompatibilitet för mer information.

transformDirectives

transformDirectives fungerar inte bra med PresetWind4. Det finns vissa kända problem, så använd det med försiktighet.

WARNING

  • Vid användning av @apply för att bearbeta regler som har @property, kan konflikter uppstå mellan olika lagernivåer.

Released under the MIT License.