@unocss/preset-wind 0.35.2 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ const presetMini = require('@unocss/preset-mini');
5
6
  const core = require('@unocss/core');
6
7
  const utils = require('@unocss/preset-mini/utils');
7
- const theme$1 = require('@unocss/preset-mini/theme');
8
- const presetMini = require('@unocss/preset-mini');
9
8
  const rules$1 = require('@unocss/preset-mini/rules');
9
+ const theme$1 = require('@unocss/preset-mini/theme');
10
10
  const variants$1 = require('@unocss/preset-mini/variants');
11
11
 
12
12
  const animations = [
@@ -32,36 +32,36 @@ ${constructCSS(Object.assign({ animation: `${name} ${duration} ${timing} infinit
32
32
  [/^animate-delay-(.+)$/, ([, d], { theme }) => ({ "animation-delay": theme.duration?.[d || "DEFAULT"] ?? utils.handler.bracket.cssvar.time(d) }), { autocomplete: ["animate-delay", "animate-delay-$duration"] }],
33
33
  [/^animate-ease(?:-(.+))?$/, ([, d], { theme }) => ({ "animation-timing-function": theme.easing?.[d || "DEFAULT"] ?? utils.handler.bracket.cssvar(d) }), { autocomplete: "animate-delay-$easing" }],
34
34
  [
35
- /^animate-(?:fill-|mode-|fill-mode-)?(none|forwards|backwards|both|inherit|initial|revert|unset)$/,
35
+ /^animate-(?:fill-|mode-|fill-mode-)?(none|forwards|backwards|both|inherit|initial|revert|revert-layer|unset)$/,
36
36
  ([, d]) => ({ "animation-fill-mode": d }),
37
37
  {
38
38
  autocomplete: [
39
39
  "animate-(fill|mode|fill-mode)",
40
- "animate-(fill|mode|fill-mode)-(none|forwards|backwards|both|inherit|initial|revert|unset)",
41
- "animate-(none|forwards|backwards|both|inherit|initial|revert|unset)"
40
+ "animate-(fill|mode|fill-mode)-(none|forwards|backwards|both|inherit|initial|revert|revert-layer|unset)",
41
+ "animate-(none|forwards|backwards|both|inherit|initial|revert|revert-layer|unset)"
42
42
  ]
43
43
  }
44
44
  ],
45
45
  [
46
- /^animate-(?:direction-)?(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|unset)$/,
46
+ /^animate-(?:direction-)?(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|revert-layer|unset)$/,
47
47
  ([, d]) => ({ "animation-direction": d }),
48
48
  {
49
49
  autocomplete: [
50
50
  "animate-direction",
51
- "animate-direction-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|unset)",
52
- "animate-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|unset)"
51
+ "animate-direction-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|revert-layer|unset)",
52
+ "animate-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|revert-layer|unset)"
53
53
  ]
54
54
  }
55
55
  ],
56
56
  [/^animate-(?:iteration-|count-|iteration-count-)(.+)$/, ([, d]) => ({ "animation-iteration-count": utils.handler.bracket.cssvar(d) ?? d.replace(/\-/g, ",") }), { autocomplete: ["animate-(iteration|count|iteration-count)", "animate-(iteration|count|iteration-count)-<num>"] }],
57
57
  [
58
- /^animate-(?:play-|state-|play-state-)?(paused|running|inherit|initial|revert|unset)$/,
58
+ /^animate-(?:play-|state-|play-state-)?(paused|running|inherit|initial|revert|revert-layer|unset)$/,
59
59
  ([, d]) => ({ "animation-play-state": d }),
60
60
  {
61
61
  autocomplete: [
62
62
  "animate-(play|state|play-state)",
63
- "animate-(play|state|play-state)-(paused|running|inherit|initial|revert|unset)",
64
- "animate-(paused|running|inherit|initial|revert|unset)"
63
+ "animate-(play|state|play-state)-(paused|running|inherit|initial|revert|revert-layer|unset)",
64
+ "animate-(paused|running|inherit|initial|revert|revert-layer|unset)"
65
65
  ]
66
66
  }
67
67
  ],
@@ -98,14 +98,17 @@ const bgGradientColorResolver = (mode) => ([, body], { theme }) => {
98
98
  };
99
99
  }
100
100
  };
101
+ const bgUrlRE = /^\[url\(.+\)\]$/;
102
+ const bgLengthRE = /^\[length:.+\]$/;
103
+ const bgPositionRE = /^\[position:.+\]$/;
101
104
  const backgroundStyles = [
102
- [/^bg-(.*)$/, ([, d]) => {
103
- if (/^\[url\((.+)\)\]$/.test(d))
104
- return { "--un-url": `${utils.handler.bracket(d)}`, "background-image": "var(--un-url)" };
105
- else if (/^\[length:(.+)\]$/.test(d) && utils.handler.bracketOfLength(d) != null)
105
+ [/^bg-(.+)$/, ([, d]) => {
106
+ if (bgUrlRE.test(d))
107
+ return { "--un-url": utils.handler.bracket(d), "background-image": "var(--un-url)" };
108
+ if (bgLengthRE.test(d) && utils.handler.bracketOfLength(d) != null)
106
109
  return { "background-size": utils.handler.bracketOfLength(d).split(" ").map((e) => utils.handler.fraction.auto.px.cssvar(e)).join(" ") };
107
- else if (/^\[position:(.+)\]$/.test(d) && utils.handler.bracketOfPosition(d) != null)
108
- return { "background-position": utils.handler.bracketOfPosition(d).split(" ").map((e) => utils.handler.fraction.auto.px.cssvar(e)).join(" ") };
110
+ if (bgPositionRE.test(d) && utils.handler.bracketOfPosition(d) != null)
111
+ return { "background-position": utils.handler.bracketOfPosition(d).split(" ").map((e) => utils.handler.position.fraction.auto.px.cssvar(e)).join(" ") };
109
112
  }],
110
113
  [/^bg-gradient-(.+)$/, ([, d]) => ({ "--un-gradient": utils.handler.bracket(d) }), {
111
114
  autocomplete: ["bg-gradient", "bg-gradient-(from|to|via)", "bg-gradient-(from|to|via)-$colors", "bg-gradient-(from|to|via)-(op|opacity)", "bg-gradient-(from|to|via)-(op|opacity)-<percent>"]
@@ -294,8 +297,7 @@ const filterBase = {
294
297
  "--un-invert": rules$1.varEmpty,
295
298
  "--un-saturate": rules$1.varEmpty,
296
299
  "--un-sepia": rules$1.varEmpty,
297
- "--un-filter": "var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)",
298
- [core.CONTROL_SHORTCUT_NO_MERGE]: ""
300
+ "--un-filter": "var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)"
299
301
  };
300
302
  const backdropFilterBase = {
301
303
  "--un-backdrop-blur": rules$1.varEmpty,
@@ -307,8 +309,7 @@ const backdropFilterBase = {
307
309
  "--un-backdrop-opacity": rules$1.varEmpty,
308
310
  "--un-backdrop-saturate": rules$1.varEmpty,
309
311
  "--un-backdrop-sepia": rules$1.varEmpty,
310
- "--un-backdrop-filter": "var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)",
311
- [core.CONTROL_SHORTCUT_NO_MERGE]: ""
312
+ "--un-backdrop-filter": "var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)"
312
313
  };
313
314
  const percentWithDefault = (str) => {
314
315
  let v = utils.handler.bracket.cssvar(str || "");
@@ -322,22 +323,16 @@ const toFilter = (varName, resolver) => ([, b, s], { theme }) => {
322
323
  const value = resolver(s, theme) ?? (s === "none" ? "0" : "");
323
324
  if (value !== "") {
324
325
  if (b) {
325
- return [
326
- backdropFilterBase,
327
- {
328
- [`--un-${b}${varName}`]: `${varName}(${value})`,
329
- "-webkit-backdrop-filter": "var(--un-backdrop-filter)",
330
- "backdrop-filter": "var(--un-backdrop-filter)"
331
- }
332
- ];
326
+ return {
327
+ [`--un-${b}${varName}`]: `${varName}(${value})`,
328
+ "-webkit-backdrop-filter": "var(--un-backdrop-filter)",
329
+ "backdrop-filter": "var(--un-backdrop-filter)"
330
+ };
333
331
  } else {
334
- return [
335
- filterBase,
336
- {
337
- [`--un-${varName}`]: `${varName}(${value})`,
338
- filter: "var(--un-filter)"
339
- }
340
- ];
332
+ return {
333
+ [`--un-${varName}`]: `${varName}(${value})`,
334
+ filter: "var(--un-filter)"
335
+ };
341
336
  }
342
337
  }
343
338
  };
@@ -345,23 +340,17 @@ const dropShadowResolver = ([, s], { theme }) => {
345
340
  let v = theme.dropShadow?.[s || "DEFAULT"];
346
341
  if (v != null) {
347
342
  const shadows = utils.colorableShadows(v, "--un-drop-shadow-color");
348
- return [
349
- filterBase,
350
- {
351
- "--un-drop-shadow": `drop-shadow(${shadows.join(") drop-shadow(")})`,
352
- "filter": "var(--un-filter)"
353
- }
354
- ];
343
+ return {
344
+ "--un-drop-shadow": `drop-shadow(${shadows.join(") drop-shadow(")})`,
345
+ "filter": "var(--un-filter)"
346
+ };
355
347
  }
356
348
  v = utils.handler.bracket.cssvar(s);
357
349
  if (v != null) {
358
- return [
359
- filterBase,
360
- {
361
- "--un-drop-shadow": `drop-shadow(${v})`,
362
- "filter": "var(--un-filter)"
363
- }
364
- ];
350
+ return {
351
+ "--un-drop-shadow": `drop-shadow(${v})`,
352
+ "filter": "var(--un-filter)"
353
+ };
365
354
  }
366
355
  };
367
356
  const filters = [
@@ -387,33 +376,17 @@ const filters = [
387
376
  }],
388
377
  [/^(?:filter-)?drop-shadow-color-(.+)$/, utils.colorResolver("--un-drop-shadow-color", "drop-shadow")],
389
378
  [/^(?:filter-)?drop-shadow-color-op(?:acity)?-?(.+)$/, ([, opacity]) => ({ "--un-drop-shadow-opacity": utils.handler.bracket.percent(opacity) })],
390
- [/^(?:(backdrop-)|filter-)?grayscale(?:-(.+))?$/, toFilter("grayscale", percentWithDefault), {
391
- autocomplete: ["(backdrop|filter)-grayscale", "(backdrop|filter)-grayscale-<percent>", "grayscale-<percent>"]
392
- }],
379
+ [/^(?:(backdrop-)|filter-)?grayscale(?:-(.+))?$/, toFilter("grayscale", percentWithDefault), { autocomplete: ["(backdrop|filter)-grayscale", "(backdrop|filter)-grayscale-<percent>", "grayscale-<percent>"] }],
393
380
  [/^(?:(backdrop-)|filter-)?hue-rotate-(.+)$/, toFilter("hue-rotate", (s) => utils.handler.bracket.cssvar.degree(s))],
394
- [/^(?:(backdrop-)|filter-)?invert(?:-(.+))?$/, toFilter("invert", percentWithDefault), {
395
- autocomplete: ["(backdrop|filter)-invert", "(backdrop|filter)-invert-<percent>", "invert-<percent>"]
396
- }],
397
- [/^(backdrop-)op(?:acity)-(.+)$/, toFilter("opacity", (s) => utils.handler.bracket.cssvar.percent(s)), {
398
- autocomplete: ["backdrop-(op|opacity)", "backdrop-(op|opacity)-<percent>"]
381
+ [/^(?:(backdrop-)|filter-)?invert(?:-(.+))?$/, toFilter("invert", percentWithDefault), { autocomplete: ["(backdrop|filter)-invert", "(backdrop|filter)-invert-<percent>", "invert-<percent>"] }],
382
+ [/^(backdrop-)op(?:acity)-(.+)$/, toFilter("opacity", (s) => utils.handler.bracket.cssvar.percent(s)), { autocomplete: ["backdrop-(op|opacity)", "backdrop-(op|opacity)-<percent>"] }],
383
+ [/^(?:(backdrop-)|filter-)?saturate-(.+)$/, toFilter("saturate", (s) => utils.handler.bracket.cssvar.percent(s)), { autocomplete: ["(backdrop|filter)-saturate", "(backdrop|filter)-saturate-<percent>", "saturate-<percent>"] }],
384
+ [/^(?:(backdrop-)|filter-)?sepia(?:-(.+))?$/, toFilter("sepia", percentWithDefault), { autocomplete: ["(backdrop|filter)-sepia", "(backdrop|filter)-sepia-<percent>", "sepia-<percent>"] }],
385
+ ["filter", { filter: "var(--un-filter)" }],
386
+ ["backdrop-filter", {
387
+ "-webkit-backdrop-filter": "var(--un-backdrop-filter)",
388
+ "backdrop-filter": "var(--un-backdrop-filter)"
399
389
  }],
400
- [/^(?:(backdrop-)|filter-)?saturate-(.+)$/, toFilter("saturate", (s) => utils.handler.bracket.cssvar.percent(s)), {
401
- autocomplete: ["(backdrop|filter)-saturate", "(backdrop|filter)-saturate-<percent>", "saturate-<percent>"]
402
- }],
403
- [/^(?:(backdrop-)|filter-)?sepia(?:-(.+))?$/, toFilter("sepia", percentWithDefault), {
404
- autocomplete: ["(backdrop|filter)-sepia", "(backdrop|filter)-sepia-<percent>", "sepia-<percent>"]
405
- }],
406
- [/^filter$/, () => [
407
- filterBase,
408
- { filter: "var(--un-filter)" }
409
- ]],
410
- [/^backdrop-filter$/, () => [
411
- backdropFilterBase,
412
- {
413
- "-webkit-backdrop-filter": "var(--un-backdrop-filter)",
414
- "backdrop-filter": "var(--un-backdrop-filter)"
415
- }
416
- ], { autocomplete: "backdrop-filter" }],
417
390
  ["filter-none", { filter: "none" }],
418
391
  ["backdrop-filter-none", {
419
392
  "-webkit-backdrop-filter": "none",
@@ -553,6 +526,7 @@ const mixBlendModes = [
553
526
  ["mix-blend-saturation", { "mix-blend-mode": "saturation" }],
554
527
  ["mix-blend-color", { "mix-blend-mode": "color" }],
555
528
  ["mix-blend-luminosity", { "mix-blend-mode": "luminosity" }],
529
+ ["mix-blend-plus-lighter", { "mix-blend-mode": "plus-lighter" }],
556
530
  ["mix-blend-normal", { "mix-blend-mode": "normal" }]
557
531
  ];
558
532
 
@@ -1011,6 +985,11 @@ const theme = {
1011
985
  pointer: "(hover) and (pointer: coarse)",
1012
986
  mouse: "(hover) and (pointer: fine)",
1013
987
  hd_color: "(dynamic-range: high)"
988
+ },
989
+ preflightBase: {
990
+ ...rules$1.transformBase,
991
+ ...filterBase,
992
+ ...backdropFilterBase
1014
993
  }
1015
994
  };
1016
995
 
@@ -1025,6 +1004,10 @@ const variantColorsScheme = [
1025
1004
  utils.variantParentMatcher("@light", "@media (prefers-color-scheme: light)")
1026
1005
  ];
1027
1006
 
1007
+ const variantContrasts = [
1008
+ utils.variantParentMatcher("contrast-more", "@media (prefers-contrast: more)"),
1009
+ utils.variantParentMatcher("contrast-less", "@media (prefers-contrast: less)")
1010
+ ];
1028
1011
  const variantMotions = [
1029
1012
  utils.variantParentMatcher("motion-reduce", "@media (prefers-reduced-motion: reduce)"),
1030
1013
  utils.variantParentMatcher("motion-safe", "@media (prefers-reduced-motion: no-preference)")
@@ -1067,6 +1050,7 @@ const variants = (options) => [
1067
1050
  placeholderModifier,
1068
1051
  variantSpaceAndDivide,
1069
1052
  ...variants$1.variants(options),
1053
+ ...variantContrasts,
1070
1054
  ...variantOrientations,
1071
1055
  ...variantMotions,
1072
1056
  ...variantCombinators,
@@ -1082,11 +1066,13 @@ const presetWind = (options = {}) => {
1082
1066
  rules,
1083
1067
  shortcuts,
1084
1068
  variants: variants(options),
1085
- options
1069
+ options,
1070
+ preflights: presetMini.preflights
1086
1071
  };
1087
1072
  };
1088
1073
 
1089
1074
  exports.colors = presetMini.colors;
1075
+ exports.preflights = presetMini.preflights;
1090
1076
  exports["default"] = presetWind;
1091
1077
  exports.presetWind = presetWind;
1092
1078
  exports.rules = rules;
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as _unocss_core from '@unocss/core';
2
2
  import { Rule, Variant, Preset } from '@unocss/core';
3
3
  import * as _unocss_preset_mini from '@unocss/preset-mini';
4
4
  import { Theme, PresetMiniOptions } from '@unocss/preset-mini';
5
- export { Theme, colors } from '@unocss/preset-mini';
5
+ export { Theme, colors, preflights } from '@unocss/preset-mini';
6
6
 
7
7
  declare const rules: Rule[];
8
8
 
package/dist/index.mjs CHANGED
@@ -1,8 +1,9 @@
1
+ import { preflights } from '@unocss/preset-mini';
2
+ export { colors, preflights } from '@unocss/preset-mini';
1
3
  import { toArray, CONTROL_SHORTCUT_NO_MERGE } from '@unocss/core';
2
4
  import { handler, positionMap, parseColor, colorToString, colorResolver, resolveBreakpoints, colorableShadows, directionMap, directionSize, variantMatcher, variantParentMatcher, hasParseableColor } from '@unocss/preset-mini/utils';
5
+ import { varEmpty, cssVariables as cssVariables$1, cssProperty, pointerEvents, appearances, positions, insets, zIndexes, orders, grids, floats, margins, boxSizing, displays, aspectRatio, sizes, flex, transforms, cursors, userSelects, resizes, appearance, placements, alignments, justifies, gaps, overflows, textOverflows, whitespaces, breaks, borders, bgColors, svgUtilities, paddings, textAligns, textIndents, verticalAligns, fonts, textTransforms as textTransforms$1, fontStyles, textColors, textDecorations, fontSmoothings, tabSizes, textStrokes, textShadows, opacity, boxShadows, outline, rings, transitions, willChange, contents, questionMark, transformBase } from '@unocss/preset-mini/rules';
3
6
  import { theme as theme$1 } from '@unocss/preset-mini/theme';
4
- export { colors } from '@unocss/preset-mini';
5
- import { varEmpty, cssVariables as cssVariables$1, cssProperty, pointerEvents, appearances, positions, insets, zIndexes, orders, grids, floats, margins, boxSizing, displays, aspectRatio, sizes, flex, transforms, cursors, userSelects, resizes, appearance, placements, alignments, justifies, gaps, overflows, textOverflows, whitespaces, breaks, borders, bgColors, svgUtilities, paddings, textAligns, textIndents, verticalAligns, fonts, textTransforms as textTransforms$1, fontStyles, textColors, textDecorations, fontSmoothings, tabSizes, textStrokes, textShadows, opacity, boxShadows, outline, rings, transitions, willChange, contents, questionMark } from '@unocss/preset-mini/rules';
6
7
  import { variants as variants$1 } from '@unocss/preset-mini/variants';
7
8
 
8
9
  const animations = [
@@ -28,36 +29,36 @@ ${constructCSS(Object.assign({ animation: `${name} ${duration} ${timing} infinit
28
29
  [/^animate-delay-(.+)$/, ([, d], { theme }) => ({ "animation-delay": theme.duration?.[d || "DEFAULT"] ?? handler.bracket.cssvar.time(d) }), { autocomplete: ["animate-delay", "animate-delay-$duration"] }],
29
30
  [/^animate-ease(?:-(.+))?$/, ([, d], { theme }) => ({ "animation-timing-function": theme.easing?.[d || "DEFAULT"] ?? handler.bracket.cssvar(d) }), { autocomplete: "animate-delay-$easing" }],
30
31
  [
31
- /^animate-(?:fill-|mode-|fill-mode-)?(none|forwards|backwards|both|inherit|initial|revert|unset)$/,
32
+ /^animate-(?:fill-|mode-|fill-mode-)?(none|forwards|backwards|both|inherit|initial|revert|revert-layer|unset)$/,
32
33
  ([, d]) => ({ "animation-fill-mode": d }),
33
34
  {
34
35
  autocomplete: [
35
36
  "animate-(fill|mode|fill-mode)",
36
- "animate-(fill|mode|fill-mode)-(none|forwards|backwards|both|inherit|initial|revert|unset)",
37
- "animate-(none|forwards|backwards|both|inherit|initial|revert|unset)"
37
+ "animate-(fill|mode|fill-mode)-(none|forwards|backwards|both|inherit|initial|revert|revert-layer|unset)",
38
+ "animate-(none|forwards|backwards|both|inherit|initial|revert|revert-layer|unset)"
38
39
  ]
39
40
  }
40
41
  ],
41
42
  [
42
- /^animate-(?:direction-)?(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|unset)$/,
43
+ /^animate-(?:direction-)?(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|revert-layer|unset)$/,
43
44
  ([, d]) => ({ "animation-direction": d }),
44
45
  {
45
46
  autocomplete: [
46
47
  "animate-direction",
47
- "animate-direction-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|unset)",
48
- "animate-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|unset)"
48
+ "animate-direction-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|revert-layer|unset)",
49
+ "animate-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|revert-layer|unset)"
49
50
  ]
50
51
  }
51
52
  ],
52
53
  [/^animate-(?:iteration-|count-|iteration-count-)(.+)$/, ([, d]) => ({ "animation-iteration-count": handler.bracket.cssvar(d) ?? d.replace(/\-/g, ",") }), { autocomplete: ["animate-(iteration|count|iteration-count)", "animate-(iteration|count|iteration-count)-<num>"] }],
53
54
  [
54
- /^animate-(?:play-|state-|play-state-)?(paused|running|inherit|initial|revert|unset)$/,
55
+ /^animate-(?:play-|state-|play-state-)?(paused|running|inherit|initial|revert|revert-layer|unset)$/,
55
56
  ([, d]) => ({ "animation-play-state": d }),
56
57
  {
57
58
  autocomplete: [
58
59
  "animate-(play|state|play-state)",
59
- "animate-(play|state|play-state)-(paused|running|inherit|initial|revert|unset)",
60
- "animate-(paused|running|inherit|initial|revert|unset)"
60
+ "animate-(play|state|play-state)-(paused|running|inherit|initial|revert|revert-layer|unset)",
61
+ "animate-(paused|running|inherit|initial|revert|revert-layer|unset)"
61
62
  ]
62
63
  }
63
64
  ],
@@ -94,14 +95,17 @@ const bgGradientColorResolver = (mode) => ([, body], { theme }) => {
94
95
  };
95
96
  }
96
97
  };
98
+ const bgUrlRE = /^\[url\(.+\)\]$/;
99
+ const bgLengthRE = /^\[length:.+\]$/;
100
+ const bgPositionRE = /^\[position:.+\]$/;
97
101
  const backgroundStyles = [
98
- [/^bg-(.*)$/, ([, d]) => {
99
- if (/^\[url\((.+)\)\]$/.test(d))
100
- return { "--un-url": `${handler.bracket(d)}`, "background-image": "var(--un-url)" };
101
- else if (/^\[length:(.+)\]$/.test(d) && handler.bracketOfLength(d) != null)
102
+ [/^bg-(.+)$/, ([, d]) => {
103
+ if (bgUrlRE.test(d))
104
+ return { "--un-url": handler.bracket(d), "background-image": "var(--un-url)" };
105
+ if (bgLengthRE.test(d) && handler.bracketOfLength(d) != null)
102
106
  return { "background-size": handler.bracketOfLength(d).split(" ").map((e) => handler.fraction.auto.px.cssvar(e)).join(" ") };
103
- else if (/^\[position:(.+)\]$/.test(d) && handler.bracketOfPosition(d) != null)
104
- return { "background-position": handler.bracketOfPosition(d).split(" ").map((e) => handler.fraction.auto.px.cssvar(e)).join(" ") };
107
+ if (bgPositionRE.test(d) && handler.bracketOfPosition(d) != null)
108
+ return { "background-position": handler.bracketOfPosition(d).split(" ").map((e) => handler.position.fraction.auto.px.cssvar(e)).join(" ") };
105
109
  }],
106
110
  [/^bg-gradient-(.+)$/, ([, d]) => ({ "--un-gradient": handler.bracket(d) }), {
107
111
  autocomplete: ["bg-gradient", "bg-gradient-(from|to|via)", "bg-gradient-(from|to|via)-$colors", "bg-gradient-(from|to|via)-(op|opacity)", "bg-gradient-(from|to|via)-(op|opacity)-<percent>"]
@@ -290,8 +294,7 @@ const filterBase = {
290
294
  "--un-invert": varEmpty,
291
295
  "--un-saturate": varEmpty,
292
296
  "--un-sepia": varEmpty,
293
- "--un-filter": "var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)",
294
- [CONTROL_SHORTCUT_NO_MERGE]: ""
297
+ "--un-filter": "var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)"
295
298
  };
296
299
  const backdropFilterBase = {
297
300
  "--un-backdrop-blur": varEmpty,
@@ -303,8 +306,7 @@ const backdropFilterBase = {
303
306
  "--un-backdrop-opacity": varEmpty,
304
307
  "--un-backdrop-saturate": varEmpty,
305
308
  "--un-backdrop-sepia": varEmpty,
306
- "--un-backdrop-filter": "var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)",
307
- [CONTROL_SHORTCUT_NO_MERGE]: ""
309
+ "--un-backdrop-filter": "var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)"
308
310
  };
309
311
  const percentWithDefault = (str) => {
310
312
  let v = handler.bracket.cssvar(str || "");
@@ -318,22 +320,16 @@ const toFilter = (varName, resolver) => ([, b, s], { theme }) => {
318
320
  const value = resolver(s, theme) ?? (s === "none" ? "0" : "");
319
321
  if (value !== "") {
320
322
  if (b) {
321
- return [
322
- backdropFilterBase,
323
- {
324
- [`--un-${b}${varName}`]: `${varName}(${value})`,
325
- "-webkit-backdrop-filter": "var(--un-backdrop-filter)",
326
- "backdrop-filter": "var(--un-backdrop-filter)"
327
- }
328
- ];
323
+ return {
324
+ [`--un-${b}${varName}`]: `${varName}(${value})`,
325
+ "-webkit-backdrop-filter": "var(--un-backdrop-filter)",
326
+ "backdrop-filter": "var(--un-backdrop-filter)"
327
+ };
329
328
  } else {
330
- return [
331
- filterBase,
332
- {
333
- [`--un-${varName}`]: `${varName}(${value})`,
334
- filter: "var(--un-filter)"
335
- }
336
- ];
329
+ return {
330
+ [`--un-${varName}`]: `${varName}(${value})`,
331
+ filter: "var(--un-filter)"
332
+ };
337
333
  }
338
334
  }
339
335
  };
@@ -341,23 +337,17 @@ const dropShadowResolver = ([, s], { theme }) => {
341
337
  let v = theme.dropShadow?.[s || "DEFAULT"];
342
338
  if (v != null) {
343
339
  const shadows = colorableShadows(v, "--un-drop-shadow-color");
344
- return [
345
- filterBase,
346
- {
347
- "--un-drop-shadow": `drop-shadow(${shadows.join(") drop-shadow(")})`,
348
- "filter": "var(--un-filter)"
349
- }
350
- ];
340
+ return {
341
+ "--un-drop-shadow": `drop-shadow(${shadows.join(") drop-shadow(")})`,
342
+ "filter": "var(--un-filter)"
343
+ };
351
344
  }
352
345
  v = handler.bracket.cssvar(s);
353
346
  if (v != null) {
354
- return [
355
- filterBase,
356
- {
357
- "--un-drop-shadow": `drop-shadow(${v})`,
358
- "filter": "var(--un-filter)"
359
- }
360
- ];
347
+ return {
348
+ "--un-drop-shadow": `drop-shadow(${v})`,
349
+ "filter": "var(--un-filter)"
350
+ };
361
351
  }
362
352
  };
363
353
  const filters = [
@@ -383,33 +373,17 @@ const filters = [
383
373
  }],
384
374
  [/^(?:filter-)?drop-shadow-color-(.+)$/, colorResolver("--un-drop-shadow-color", "drop-shadow")],
385
375
  [/^(?:filter-)?drop-shadow-color-op(?:acity)?-?(.+)$/, ([, opacity]) => ({ "--un-drop-shadow-opacity": handler.bracket.percent(opacity) })],
386
- [/^(?:(backdrop-)|filter-)?grayscale(?:-(.+))?$/, toFilter("grayscale", percentWithDefault), {
387
- autocomplete: ["(backdrop|filter)-grayscale", "(backdrop|filter)-grayscale-<percent>", "grayscale-<percent>"]
388
- }],
376
+ [/^(?:(backdrop-)|filter-)?grayscale(?:-(.+))?$/, toFilter("grayscale", percentWithDefault), { autocomplete: ["(backdrop|filter)-grayscale", "(backdrop|filter)-grayscale-<percent>", "grayscale-<percent>"] }],
389
377
  [/^(?:(backdrop-)|filter-)?hue-rotate-(.+)$/, toFilter("hue-rotate", (s) => handler.bracket.cssvar.degree(s))],
390
- [/^(?:(backdrop-)|filter-)?invert(?:-(.+))?$/, toFilter("invert", percentWithDefault), {
391
- autocomplete: ["(backdrop|filter)-invert", "(backdrop|filter)-invert-<percent>", "invert-<percent>"]
392
- }],
393
- [/^(backdrop-)op(?:acity)-(.+)$/, toFilter("opacity", (s) => handler.bracket.cssvar.percent(s)), {
394
- autocomplete: ["backdrop-(op|opacity)", "backdrop-(op|opacity)-<percent>"]
395
- }],
396
- [/^(?:(backdrop-)|filter-)?saturate-(.+)$/, toFilter("saturate", (s) => handler.bracket.cssvar.percent(s)), {
397
- autocomplete: ["(backdrop|filter)-saturate", "(backdrop|filter)-saturate-<percent>", "saturate-<percent>"]
378
+ [/^(?:(backdrop-)|filter-)?invert(?:-(.+))?$/, toFilter("invert", percentWithDefault), { autocomplete: ["(backdrop|filter)-invert", "(backdrop|filter)-invert-<percent>", "invert-<percent>"] }],
379
+ [/^(backdrop-)op(?:acity)-(.+)$/, toFilter("opacity", (s) => handler.bracket.cssvar.percent(s)), { autocomplete: ["backdrop-(op|opacity)", "backdrop-(op|opacity)-<percent>"] }],
380
+ [/^(?:(backdrop-)|filter-)?saturate-(.+)$/, toFilter("saturate", (s) => handler.bracket.cssvar.percent(s)), { autocomplete: ["(backdrop|filter)-saturate", "(backdrop|filter)-saturate-<percent>", "saturate-<percent>"] }],
381
+ [/^(?:(backdrop-)|filter-)?sepia(?:-(.+))?$/, toFilter("sepia", percentWithDefault), { autocomplete: ["(backdrop|filter)-sepia", "(backdrop|filter)-sepia-<percent>", "sepia-<percent>"] }],
382
+ ["filter", { filter: "var(--un-filter)" }],
383
+ ["backdrop-filter", {
384
+ "-webkit-backdrop-filter": "var(--un-backdrop-filter)",
385
+ "backdrop-filter": "var(--un-backdrop-filter)"
398
386
  }],
399
- [/^(?:(backdrop-)|filter-)?sepia(?:-(.+))?$/, toFilter("sepia", percentWithDefault), {
400
- autocomplete: ["(backdrop|filter)-sepia", "(backdrop|filter)-sepia-<percent>", "sepia-<percent>"]
401
- }],
402
- [/^filter$/, () => [
403
- filterBase,
404
- { filter: "var(--un-filter)" }
405
- ]],
406
- [/^backdrop-filter$/, () => [
407
- backdropFilterBase,
408
- {
409
- "-webkit-backdrop-filter": "var(--un-backdrop-filter)",
410
- "backdrop-filter": "var(--un-backdrop-filter)"
411
- }
412
- ], { autocomplete: "backdrop-filter" }],
413
387
  ["filter-none", { filter: "none" }],
414
388
  ["backdrop-filter-none", {
415
389
  "-webkit-backdrop-filter": "none",
@@ -549,6 +523,7 @@ const mixBlendModes = [
549
523
  ["mix-blend-saturation", { "mix-blend-mode": "saturation" }],
550
524
  ["mix-blend-color", { "mix-blend-mode": "color" }],
551
525
  ["mix-blend-luminosity", { "mix-blend-mode": "luminosity" }],
526
+ ["mix-blend-plus-lighter", { "mix-blend-mode": "plus-lighter" }],
552
527
  ["mix-blend-normal", { "mix-blend-mode": "normal" }]
553
528
  ];
554
529
 
@@ -1007,6 +982,11 @@ const theme = {
1007
982
  pointer: "(hover) and (pointer: coarse)",
1008
983
  mouse: "(hover) and (pointer: fine)",
1009
984
  hd_color: "(dynamic-range: high)"
985
+ },
986
+ preflightBase: {
987
+ ...transformBase,
988
+ ...filterBase,
989
+ ...backdropFilterBase
1010
990
  }
1011
991
  };
1012
992
 
@@ -1021,6 +1001,10 @@ const variantColorsScheme = [
1021
1001
  variantParentMatcher("@light", "@media (prefers-color-scheme: light)")
1022
1002
  ];
1023
1003
 
1004
+ const variantContrasts = [
1005
+ variantParentMatcher("contrast-more", "@media (prefers-contrast: more)"),
1006
+ variantParentMatcher("contrast-less", "@media (prefers-contrast: less)")
1007
+ ];
1024
1008
  const variantMotions = [
1025
1009
  variantParentMatcher("motion-reduce", "@media (prefers-reduced-motion: reduce)"),
1026
1010
  variantParentMatcher("motion-safe", "@media (prefers-reduced-motion: no-preference)")
@@ -1063,6 +1047,7 @@ const variants = (options) => [
1063
1047
  placeholderModifier,
1064
1048
  variantSpaceAndDivide,
1065
1049
  ...variants$1(options),
1050
+ ...variantContrasts,
1066
1051
  ...variantOrientations,
1067
1052
  ...variantMotions,
1068
1053
  ...variantCombinators,
@@ -1078,7 +1063,8 @@ const presetWind = (options = {}) => {
1078
1063
  rules,
1079
1064
  shortcuts,
1080
1065
  variants: variants(options),
1081
- options
1066
+ options,
1067
+ preflights
1082
1068
  };
1083
1069
  };
1084
1070
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unocss/preset-wind",
3
- "version": "0.35.2",
3
+ "version": "0.36.0",
4
4
  "description": "Tailwind / Windi CSS compact preset for UnoCSS",
5
5
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
6
6
  "license": "MIT",
@@ -35,8 +35,8 @@
35
35
  "*.css"
36
36
  ],
37
37
  "dependencies": {
38
- "@unocss/core": "0.35.2",
39
- "@unocss/preset-mini": "0.35.2"
38
+ "@unocss/core": "0.36.0",
39
+ "@unocss/preset-mini": "0.36.0"
40
40
  },
41
41
  "scripts": {
42
42
  "build": "unbuild",