Пресет Wind4
Компактный пресет Tailwind4 CSS для UnoCSS. Совместим со всеми функциями PresetWind3 и расширяет его еще больше.
TIP
Вы можете уделить немного времени, чтобы прочитать этот документ и понять изменения
Установка
pnpm add -D @unocss/preset-wind4yarn add -D @unocss/preset-wind4npm install -D @unocss/preset-wind4bun add -D @unocss/preset-wind4import presetWind4 from '@unocss/preset-wind4'
import { defineConfig } from 'unocss'
export default defineConfig({
presets: [
presetWind4(),
// ^?
],
})Совместимость
Обратитесь к Совместимости Tailwind, чтобы узнать о поддержке браузеров и совместимости.
Тема
Тема PresetWind4 почти идентична теме PresetWind3, но некоторые ключи темы были скорректированы.
WARNING
Обратите внимание при переходе на PresetWind4, обратитесь к таблице ниже, чтобы проверить конфигурацию ключей темы и внести соответствующие корректировки.
| PresetWind3 | PresetWind4 |
|---|---|
fontFamily | font |
fontSize | Перемещен в свойство fontSize в text |
lineHeight | Перемещен в свойство lineHeight в text или использовать leading |
letterSpacing | Перемещен в свойство letterSpacing в text или использовать tracking |
borderRadius | radius |
easing | ease |
breakpoints | breakpoint |
verticalBreakpoints | verticalBreakpoint |
boxShadow | shadow |
| - | insetShadow |
Свойства размера, такие как width, height, maxWidth, maxHeight, minWidth, minHeight | Унифицированы для использования spacing |
transitionProperty | property |
gridAutoColumn, gridAutoRow, gridColumn, gridRow, gridTemplateColumn, gridTemplateRow | - |
container.maxWidth | containers.maxWidth |
| - | defaults |
Theme.defaults
Theme.defaults - это глобальная конфигурация темы по умолчанию, которая будет применяться к стилям reset или использоваться в качестве значений по умолчанию для определенных правил.
Ниже приведены значения по умолчанию для Theme.defaults, которые вы можете переопределить в конфигурации темы.
Нажмите, чтобы просмотреть значения по умолчанию
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)',
},
}Параметры
Базовая конфигурация PresetWind4 похожа на PresetWind3, со следующими важными изменениями.
Стили сброса
В PresetWind4 мы выравниваем стили сброса с tailwind4 и интегрируем их внутренне. Вам не нужно устанавливать дополнительный пакет CSS-сброса, такой как @unocss/reset или normalize.css.
import '@unocss/reset/tailwind.css'
import '@unocss/reset/tailwind-compact.css'Вам нужно только контролировать включение стилей сброса через переключатель:
import presetWind4 from '@unocss/preset-wind4'
import { defineConfig } from 'unocss'
export default defineConfig({
presets: [
presetWind4({
reset: true,
// ^?
}),
],
})Резолвер утилит
В PresetWind4 мы обновили хук postProcess, чтобы предоставить более лаконичный API. Теперь вы можете напрямую настраивать utilities в пресете.
Например, если вы хотите использовать пресет presetRemToPx для преобразования rem в px, вам больше не нужно импортировать этот пресет отдельно, так как presetWind4 предоставляет эту функциональность внутренне.
import { createRemToPxResolver } from '@unocss/preset-wind4/utils'
import { defineConfig, presetWind4 } from 'unocss'
export default defineConfig({
presets: [
presetWind4({
utilityResolver: createRemToPxResolver()
}),
],
})Вы можете настроить больше наборов резолверов для обработки utilities и вывода нужного вам CSS.
Для конкретных методов реализации обратитесь к postProcess или тестовому случаю presetWind4
Префайл темы
Выберите, как генерировать CSS-переменные темы.
Движок UnoCSS с установленным presetWind4 автоматически собирает зависимости темы при разборе утилит и генерирует CSS-переменные в конце.
true: Полностью генерировать ключи темы.false: Отключить ключи темы. (Не рекомендуется ⚠️)'on-demand': Генерировать ключи темы только при использовании. -> ✅ (По умолчанию)
Сгенерированный CSS
В выводе PresetWind4 добавлены два новых слоя: theme и cssvar-property.
| Название слоя | Описание | порядок |
|---|---|---|
cssvar-property | CSS-свойства, определенные @property | -200 |
theme | CSS-переменные, связанные с темой | -150 |
Слой cssvar-property
Мы использовали @property для определения CSS-свойств во многих правилах для достижения лучшей производительности и меньшего размера.
Например, часто используемые утилиты, такие как text-op-xx, bg-op-xx и т.д.
@property --un-text-opacity {
syntax: '<percentage>';
inherits: false;
initial-value: 100%;
}Слой theme
Мы разместили CSS-переменные, связанные с темой, в слое theme, чтобы вам было легче переопределять и использовать их напрямую. Он может быть всеобъемлющим или по требованию. Всегда исходит из вашей конфигурации темы.
: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;
/* ... */
}Совместимость с другими пресетами
PresetWind4 улучшает и совместим с PresetWind3. Поскольку другие пакеты изначально были разработаны для PresetWind3, при их совместном использовании могут возникнуть некоторые проблемы. Известные проблемы включают:
presetWebFonts
При использовании presetWebFonts с PresetWind4 ключ темы fontFamily больше не поддерживается. Пожалуйста, внесите следующие изменения:
import { defineConfig, presetWebFonts, presetWind4 } from 'unocss'
export default defineConfig({
presets: [
presetWind4(),
presetWebFonts({
themeKey: 'font',
// ^?
}),
],
})presetLegacyCompat
В presetWind4 мы используем цветовую модель oklch для поддержки лучшей цветовой контрастности и восприятия цвета. Поэтому он не совместим с presetLegacyCompat и не рекомендуется для совместного использования.
Пожалуйста, обратитесь к разделу Совместимость для получения дополнительной информации.
transformDirectives
transformDirectives плохо работает с PresetWind4. Существуют некоторые известные проблемы, поэтому используйте его с осторожностью.
WARNING
- Когда используется
@applyдля обработки правил, которые имеют@property, могут возникнуть конфликты между различными уровнями.