Мы добавили больше утилит в 3.0, и у всех утилит есть хорошая встроенная игровая площадка, попробуйте ее и получайте удовольствие.
- Backface Visibility
- Isolation
- Mix Blend Mode
- Shadow Color
- Background Blend Mode
- Background Origin
- Box Decoration Break
- Caret Color
- Caret Opacity
- Image Rendering
- List Style Type
- Stroke DashArray
- Stroke DashOffset
- Stroke LineCap
- Stroke LineJoin
- Hyphens
- Tab Size
- Text Decoration Color
- Text Decoration Opacity
- Text Decoration Length
- Text Decoration Offset
- Text Indent
- Text Stroke Width
- Text Stroke Color
- Text Shadow
- Writing Mode
- Writing Orientation
- Table Empty Cells
- Table Caption Side
- Transform Style
- Rotate X
- Rotate Y
- Rotate Z
- Scale Z
- Translate Z
- Perspective
- Perspective Origin
- Filter
- Backdrop Filter
Утилита backface устанавливает, будет ли видна задняя грань элемента при повороте к пользователю.
xxxxxxxxxxbackface-hidden.backface-hidden { -webkit-backface-visibility: hidden; backface-visibility: hidden; }
Утилиты для управления тем, должен ли элемент явно создавать новый контекст стекирования. Эти утилиты особенно полезны при использовании вместе с mix-blend-mode и z-index.
isolate.isolate { isolation: isolate; }
Утилиты для управления тем, как элемент должен сливаться с фоном.
xxxxxxxxxxmix-blend-multiply.mix-blend-multiply { mix-blend-mode: multiply; }
xxxxxxxxxxshadow-gray-500.shadow-gray-500 { --tw-shadow-color: 107, 114, 128; }
export default {
theme: {
boxShadowColor: {
gray: '#1c1c1e',
},
},
}
Утилиты для управления тем, как фоновое изображение элемента должно сливаться с его цветом фона.
xxxxxxxxxxbg-blend-normal.bg-blend-normal { background-blend-mode: normal; }
Утилиты для управления источником фона фонового изображения элемента.
xxxxxxxxxxbg-origin-border.bg-origin-border { background-origin: border-box; }
Утилиты для управления отображением фрагментов элементов в нескольких строках, столбцах или страницах.
xxxxxxxxxxdecoration-slice.decoration-slice { -webkit-box-decoration-break: slice; box-decoration-break: slice; }
Утилиты для управления цветом текста вставки.
xxxxxxxxxxcaret-gray-500.caret-gray-500 { --tw-caret-opacity: 1; caret-color: rgba(107, 114, 128, var(--tw-caret-opacity)); }
export default {
theme: {
caretColor: {
primary: '#3490dc',
secondary: '#ffed4a',
danger: '#e3342f',
},
},
}
Утилиты для управления непрозрачностью цвета каретки элемента.
xxxxxxxxxxcaret-opacity-50.caret-opacity-50 { --tw-caret-opacity: 0.5; }
export default {
theme: {
extend: {
caretOpacity: {
light: '0.1',
},
},
},
}
Утилита image-render определяет, как браузер должен отображать изображение, если оно масштабируется вверх или вниз по сравнению с его исходными размерами. По умолчанию каждый браузер будет пытаться применить псевдоним к этому масштабированному изображению, чтобы предотвратить искажение, но иногда это может быть проблемой, если мы хотим, чтобы изображение сохраняло исходную пиксельную форму.
xxxxxxxxxximage-render-pixel.image-render-pixel { -ms-interpolation-mode: nearest-neighbor; image-rendering: -webkit-optimize-contrast; image-rendering: -moz-crisp-edges; image-rendering: -o-pixelated; image-rendering: pixelated; }
Утилиты для управления стилем маркера/номера списка.
xxxxxxxxxxlist-disc.list-disc { list-style-type: disc; }
export default {
theme: {
listStyleType: {
none: 'none',
disc: 'disc',
decimal: 'decimal',
square: 'square',
roman: 'upper-roman',
},
},
}
Утилита stroke-dash - это служебная программа для презентаций, определяющая образец штрихов и пробелов, используемых для рисования контура фигуры.
xxxxxxxxxxstroke-dash-2.stroke-dash-2 { stroke-dasharray: 2; }
Утилита stroke-offset - это служебная программа представления, определяющая смещение при отображении связанного массива штрихов.
xxxxxxxxxxstroke-offset-2.stroke-offset-2 { stroke-dashoffset: 2; }
Утилита stroke-cap - это служебная программа представления, определяющая форму, которая будет использоваться в конце открытых подпутей при их обводке.
xxxxxxxxxxstroke-cap-auto.stroke-cap-auto { stroke-linecap: butt; }
Утилита stroke-join - это служебная программа для представления, определяющая форму, которая будет использоваться в углах контуров при их обводке.
xxxxxxxxxxstroke-join-auto.stroke-join-auto { stroke-linejoin: miter; }
Утилиты дефисов определяют, как слова должны быть расставлены через дефис, когда текст переносится на несколько строк. Он может полностью запретить расстановку переносов, переносить через дефис в заданных вручную точках текста или позволить браузеру автоматически вставлять переносы там, где это необходимо.
xxxxxxxxxxhyphens-auto.hyphens-auto { -webkit-hyphens: auto; -ms-hyphens: auto; hyphens: auto; }
Утилиты размера табуляции используются для настройки ширины символов табуляции (U+0009).
xxxxxxxxxxtab.tab { -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4; }
export default {
theme: {
tabSize: {
sm: '2',
md: '4',
lg: '8',
},
},
}
Утилиты для управления оформлением текста.
Утилиты для управления типом оформления текста.
xxxxxxxxxxunderline.underline { -webkit-text-decoration-line: underline; text-decoration-line: underline; }
Утилиты для управления цветом оформления текста.
xxxxxxxxxxunderline-green-500.underline-green-500 { --tw-line-opacity: 1; -webkit-text-decoration-color: rgba(16, 185, 129, var(--tw-line-opacity)); text-decoration-color: rgba(16, 185, 129, var(--tw-line-opacity)); }
export default {
theme: {
textDecorationColor: {
primary: '#3490dc',
secondary: '#ffed4a',
danger: '#e3342f',
},
},
}
Утилиты для управления непрозрачностью цвета оформления элемента.
xxxxxxxxxxunderline-opacity-50.underline-opacity-50 { --tw-line-opacity: 0.5; }
export default {
theme: {
extend: {
textDecorationOpacity: {
10: '0.1',
20: '0.2',
95: '0.95',
},
},
},
}
Утилиты для управления длиной оформления текста.
xxxxxxxxxxunderline-auto.underline-auto { text-decoration-thickness: auto; }
export default {
theme: {
extend: {
textDecorationLength: {
sm: '1px',
md: '2px',
lg: '4px',
},
},
},
}
Утилиты для управления смещением оформления текста.
xxxxxxxxxxunderline-offset-auto.underline-offset-auto { text-underline-offset: auto; }
export default {
theme: {
textDecorationOffset: {
sm: '1px',
md: '2px',
lg: '4px',
},
},
}
Утилиты для управления отступом текста.
xxxxxxxxxxindent.indent { text-indent: 1.5rem; }
export default {
theme: {
extend: {
textIndent: {
'4xl': '5rem',
'5xl': '6rem',
},
},
},
}
Утилиты для управления обводкой текстового элемента.
Утилиты для управления шириной обводки текста.
xxxxxxxxxxtext-stroke-md.text-stroke-md { -webkit-text-stroke-width: medium; }
export default {
theme: {
extend: {
textStrokeWidth: {
'xl': '6',
'2xl': '8',
},
},
},
}
Утилиты для управления цветом обводки текста.
xxxxxxxxxxtext-stroke-blue-500.text-stroke-blue-500 { --tw-text-stroke-opacity: 1; -webkit-text-stroke-color: rgba(59, 130, 246, var(--tw-text-stroke-opacity)); }
export default {
theme: {
textStrokeColor: {
primary: '#3490dc',
secondary: '#ffed4a',
danger: '#e3342f',
},
},
}
Утилиты для управления тенью текстового элемента.
xxxxxxxxxxtext-shadow-lg.text-shadow-lg { text-shadow: 3px 3px 6px rgb(0 0 0 / 26%), 0 0 5px rgb(15 3 86 / 22%); }
export default {
theme: {
textShadow: {
'DEFAULT': '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)', // If a DEFAULT shadow is provided, it will be used for the non-suffixed shadow utility.
'2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
'3xl': '0 35px 60px -15px rgba(0, 0, 0, 0.3)',
},
},
}
Утилита writing-mode устанавливает, будут ли строки текста располагаться по горизонтали или вертикали, а также направление, в котором происходит прогресс блоков. При установке для всего документа он должен быть установлен в корневом элементе (элемент html для документов HTML).
xxxxxxxxxxwrite-vertical-right.write-vertical-right { -webkit-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; }
Утилита writing-orientation устанавливает ориентацию текстовых символов в строке. Это влияет только на текст в вертикальном режиме (когда writing-mode не horizontal-tb). Это полезно для управления отображением языков, использующих вертикальный сценарий, а также для создания заголовков вертикальных таблиц.
xxxxxxxxxxwrite-orient-mixed.write-orient-mixed { -webkit-text-orientation: mixed; text-orientation: mixed; }
Утилита caption помещает содержимое таблицы <caption> на указанную сторону. Значения относятся к режиму записи таблицы.
xxxxxxxxxxcaption-top.caption-top { caption-side: top; }
Утилита empty-cells устанавливает, появляются ли границы и фон вокруг ячеек <table>, которые не имеют видимого содержимого. Хорошим вариантом использования пустых ячеек может быть ситуация, когда вы можете не знать, будет ли таблица содержать пустые точки данных или нет, и вы решили их скрыть.
xxxxxxxxxxempty-cells-visible.empty-cells-visible { empty-cells: show; }
Утилиты для управления поведением трансформации.
xxxxxxxxxxtransform.transform { --tw-rotate: 0; --tw-rotate-x: 0; --tw-rotate-y: 0; --tw-rotate-z: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scale-z: 1; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-translate-z: 0; -webkit-transform: rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)); -ms-transform: rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)); transform: rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)); }
Утилита в стиле преобразования устанавливает, будут ли дочерние элементы элемента располагаться в трехмерном пространстве или выровнены в плоскости элемента.
xxxxxxxxxxpreserve-3d.preserve-3d { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; }
xxxxxxxxxxrotate-x-30.rotate-x-30 { --tw-rotate-x: 30deg; }
xxxxxxxxxxrotate-y-45.rotate-y-45 { --tw-rotate-y: 45deg; }
xxxxxxxxxxrotate-z-12.rotate-z-12 { --tw-rotate-z: 12deg; }
xxxxxxxxxxscale-z-90.scale-z-90 { --tw-scale-z: .9; }
export default {
theme: {
scale: {
half: '.5',
full: '1',
},
},
}
xxxxxxxxxxtranslate-z-0.translate-z-0 { --tw-translate-z: 0px; }
Вы можете настроить глобальную шкалу интервалов в разделах theme.spacing или theme.extend.spacing вашего файла windi.config.js:
export default {
theme: {
extend: {
spacing: {
72: '18rem',
84: '21rem',
96: '24rem',
},
},
},
}
Чтобы настроить масштаб перевода отдельно, используйте раздел theme.translate в файле windi.config.js.
export default {
theme: {
extend: {
translate: {
'1/7': '14.2857143%',
'2/7': '28.5714286%',
'3/7': '42.8571429%',
'4/7': '57.1428571%',
'5/7': '71.4285714%',
'6/7': '85.7142857%',
},
},
},
}
Утилита perspect определяет расстояние между плоскостью z=0 и пользователем, чтобы придать трехмерному позиционируемому элементу некоторую перспективу.
xxxxxxxxxxperspect-lg.perspect-lg { -webkit-perspective: 32rem; perspective: 32rem; }
export default {
theme: {
extend: {
perspective: {
'8xl': '96rem',
'9xl': '128rem',
},
},
},
}
Утилита perspect-origin определяет позицию, на которую смотрит зритель. Он используется как точка схода утилитой perspect utility.
xxxxxxxxxxperspect-origin-center.perspect-origin-center { -webkit-perspective-origin: center; perspective-origin: center; }
export default {
theme: {
extend: {
perspectiveOrigin: {
tb150: '150% 150%',
tb200: '200% 200%',
},
},
},
}
Утилиты для включения и отключения фильтров на элементе.
xxxxxxxxxxfilter.filter { --tw-blur: var(--tw-empty,/*!*/ /*!*/); --tw-brightness: var(--tw-empty,/*!*/ /*!*/); --tw-contrast: var(--tw-empty,/*!*/ /*!*/); --tw-grayscale: var(--tw-empty,/*!*/ /*!*/); --tw-hue-rotate: var(--tw-empty,/*!*/ /*!*/); --tw-invert: var(--tw-empty,/*!*/ /*!*/); --tw-saturate: var(--tw-empty,/*!*/ /*!*/); --tw-sepia: var(--tw-empty,/*!*/ /*!*/); --tw-drop-shadow: var(--tw-empty,/*!*/ /*!*/); -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
xxxxxxxxxxblur-sm.blur-sm { --tw-blur: blur(4px); }
export default {
theme: {
blur: {
'4xl': '72px',
'5xl': '96px',
'6xl': '128px',
},
},
}
xxxxxxxxxxbrightness-100.brightness-100 { --tw-brightness: brightness(1); }
export default {
theme: {
brightness: {
sm: '50',
md: '100',
lg: '150',
},
},
}
xxxxxxxxxxcontrast-100.contrast-100 { --tw-contrast: contrast(1); }
export default {
theme: {
contrast: {
sm: '50',
md: '100',
lg: '150',
},
},
}
xxxxxxxxxxdrop-shadow-md.drop-shadow-md { --tw-drop-shadow: drop-shadow(0 4px 3px rgba(0, 0, 0, 0.07)) drop-shadow(0 2px 2px rgba(0, 0, 0, 0.06)); }
export default {
theme: {
dropShadow: {
'3xl': 'drop-shadow(0 30px 30px rgba(0, 0, 0, 0.2))',
'4xl': 'drop-shadow(0 40px 40px rgba(0, 0, 0, 0.3))',
},
},
}
xxxxxxxxxxgrayscale.grayscale { --tw-grayscale: grayscale(100%); }
export default {
theme: {
grayscale: {
50: '0.5',
80: '0.8',
},
},
}
xxxxxxxxxxhue-rotate-45.hue-rotate-45 { --tw-hue-rotate: hue-rotate(45deg); }
export default {
theme: {
hueRotate: {
sm: '60',
lg: '90',
xl: '180',
},
},
}
xxxxxxxxxxinvert.invert { --tw-invert: invert(100%); }
export default {
theme: {
invert: {
sm: '0.5',
lg: '0.8',
},
},
}
xxxxxxxxxxsaturate-0.saturate-0 { --tw-saturate: saturate(0); }
export default {
theme: {
saturate: {
sm: '0.5',
md: '1',
lg: '1.5',
},
},
}
xxxxxxxxxxsepia.sepia { --tw-sepia: sepia(100%); }
export default {
theme: {
sepia: {
sm: '0.5',
md: '0.8',
},
},
}
Утилиты для включения и отключения фоновых фильтров для элемента.
xxxxxxxxxxbackdrop-filter.backdrop-filter { --tw-backdrop-blur: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-brightness: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-contrast: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-grayscale: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-hue-rotate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-invert: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-opacity: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-saturate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-sepia: var(--tw-empty,/*!*/ /*!*/); -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
xxxxxxxxxxbackdrop-blur-sm.backdrop-blur-sm { --tw-backdrop-blur: blur(4px); }
export default {
theme: {
backdropBlur: {
'4xl': '72px',
'5xl': '96px',
'6xl': '128px',
},
},
}
xxxxxxxxxxbackdrop-brightness-100.backdrop-brightness-100 { --tw-backdrop-brightness: brightness(1); }
export default {
theme: {
backdropBrightness: {
sm: '50',
md: '100',
lg: '150',
},
},
}
xxxxxxxxxxbackdrop-contrast-100.backdrop-contrast-100 { --tw-backdrop-contrast: contrast(1); }
export default {
theme: {
backdropContrast: {
sm: '50',
md: '100',
lg: '150',
},
},
}
xxxxxxxxxxbackdrop-grayscale.backdrop-grayscale { --tw-backdrop-grayscale: grayscale(100%); }
export default {
theme: {
backdropGrayscale: {
50: '0.5',
80: '0.8',
},
},
}
xxxxxxxxxxbackdrop-hue-rotate-45.backdrop-hue-rotate-45 { --tw-backdrop-hue-rotate: hue-rotate(45deg); }
export default {
theme: {
backdropHueRotate: {
sm: '60',
lg: '90',
xl: '180',
},
},
}
xxxxxxxxxxbackdrop-invert.backdrop-invert { --tw-backdrop-invert: invert(100%); }
export default {
theme: {
backdropInvert: {
sm: '0.5',
lg: '0.8',
},
},
}
xxxxxxxxxxbackdrop-opacity-50.backdrop-opacity-50 { --tw-backdrop-opacity: opacity(0.5); }
export default {
theme: {
backdropOpacity: {
sm: '0.5',
lg: '0.8',
},
},
}
xxxxxxxxxxbackdrop-saturate-0.backdrop-saturate-0 { --tw-backdrop-saturate: saturate(0); }
export default {
theme: {
backdropSaturate: {
sm: '0.5',
md: '1',
lg: '1.5',
},
},
}
xxxxxxxxxxbackdrop-sepia.backdrop-sepia { --tw-backdrop-sepia: sepia(100%); }
export default {
theme: {
backdropSepia: {
sm: '0.5',
md: '0.8',
},
},
}