Skip to content

Commit 46860e6

Browse files
authored
fix(preset-wind3, preset-wind4): update column generate value from container (#5030)
1 parent 70f1bc6 commit 46860e6

File tree

8 files changed

+33
-11
lines changed

8 files changed

+33
-11
lines changed

packages-engine/autocomplete/test/__snapshots__/autocomplete.test.ts.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ exports[`autocomplete > should provide autocomplete 1`] = `
371371
"border-": "border-amber border-b border-b-amber border-b-black border-b-blue border-b-bluegray border-b-blueGray border-b-coolgray border-b-coolGray border-b-current",
372372
"border-r": "border-r border-r-amber border-r-black border-r-blue border-r-bluegray border-r-blueGray border-r-coolgray border-r-coolGray border-r-current border-r-cyan",
373373
"border-spacing-": "border-spacing-lg border-spacing-none border-spacing-sm border-spacing-x border-spacing-x-lg border-spacing-x-none border-spacing-x-sm border-spacing-x-xl border-spacing-x-xs border-spacing-xl",
374-
"columns-": "columns-0 columns-1 columns-2 columns-3 columns-4 columns-5 columns-6 columns-8 columns-10 columns-12",
374+
"columns-": "columns-auto columns-lg columns-md columns-prose columns-sm columns-xl columns-xs columns-0 columns-1 columns-2",
375375
"divide-": "divide-amber divide-black divide-block divide-block-none divide-block-reverse divide-blue divide-bluegray divide-blueGray divide-coolgray divide-coolGray",
376376
"fill-": "fill-amber fill-black fill-blue fill-bluegray fill-blueGray fill-coolgray fill-coolGray fill-current fill-cyan fill-dark",
377377
"filter-": "filter-blur filter-blur-lg filter-blur-md filter-blur-sm filter-blur-xl filter-drop filter-drop-shadow filter-drop-shadow-color filter-drop-shadow-color-amber filter-drop-shadow-color-black",
@@ -478,7 +478,7 @@ exports[`autocomplete with attributify prefix > should provide autocomplete 1`]
478478
"u-border-": "u-border-amber u-border-b u-border-b-amber u-border-b-black u-border-b-blue u-border-b-bluegray u-border-b-blueGray u-border-b-coolgray u-border-b-coolGray u-border-b-current",
479479
"u-border-r": "u-border-r u-border-r-amber u-border-r-black u-border-r-blue u-border-r-bluegray u-border-r-blueGray u-border-r-coolgray u-border-r-coolGray u-border-r-current u-border-r-cyan",
480480
"u-border-spacing-": "u-border-spacing-lg u-border-spacing-none u-border-spacing-sm u-border-spacing-x u-border-spacing-x-lg u-border-spacing-x-none u-border-spacing-x-sm u-border-spacing-x-xl u-border-spacing-x-xs u-border-spacing-xl",
481-
"u-columns-": "u-columns-0 u-columns-1 u-columns-2 u-columns-3 u-columns-4 u-columns-5 u-columns-6 u-columns-8 u-columns-10 u-columns-12",
481+
"u-columns-": "u-columns-auto u-columns-lg u-columns-md u-columns-prose u-columns-sm u-columns-xl u-columns-xs u-columns-0 u-columns-1 u-columns-2",
482482
"u-divide-": "u-divide-amber u-divide-black u-divide-block u-divide-block-none u-divide-block-reverse u-divide-blue u-divide-bluegray u-divide-blueGray u-divide-coolgray u-divide-coolGray",
483483
"u-fill-": "u-fill-amber u-fill-black u-fill-blue u-fill-bluegray u-fill-blueGray u-fill-coolgray u-fill-coolGray u-fill-current u-fill-cyan u-fill-dark",
484484
"u-filter-": "u-filter-blur u-filter-blur-lg u-filter-blur-md u-filter-blur-sm u-filter-blur-xl u-filter-drop u-filter-drop-shadow u-filter-drop-shadow-color u-filter-drop-shadow-color-amber u-filter-drop-shadow-color-black",

packages-presets/preset-wind3/src/rules/columns.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
import type { Rule } from '@unocss/core'
2+
import type { Theme } from '@unocss/preset-mini'
23
import { h, makeGlobalStaticRules } from '@unocss/preset-mini/utils'
34

4-
export const columns: Rule[] = [
5-
[/^columns-(.+)$/, ([, v]) => ({ columns: h.bracket.global.number.auto.numberWithUnit(v) }), { autocomplete: 'columns-<num>' }],
5+
export const columns: Rule<Theme>[] = [
6+
[/^columns-(.+)$/, ([, v], { theme }) => {
7+
if (theme.containers && v in theme.containers) {
8+
return { columns: theme.containers[v] }
9+
}
10+
11+
return { columns: h.bracket.numberWithUnit.number.cssvar(v) }
12+
}, { autocomplete: ['columns-<num>', 'columns-$containers'] }],
13+
['columns-auto', { columns: 'auto' }],
614

715
// break before
816
['break-before-auto', { 'break-before': 'auto' }],

packages-presets/preset-wind4/src/rules/columns.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
import type { Rule } from '@unocss/core'
22
import type { Theme } from '../theme'
3-
import { h, makeGlobalStaticRules } from '../utils'
3+
import { generateThemeVariable, h, makeGlobalStaticRules, themeTracking } from '../utils'
44

55
export const columns: Rule<Theme>[] = [
6-
[/^columns-(.+)$/, ([, v]) => ({ columns: h.bracket.global.number.auto.numberWithUnit(v) }), { autocomplete: 'columns-<num>' }],
6+
[/^columns-(.+)$/, ([, v], { theme }) => {
7+
if (theme.container && v in theme.container) {
8+
themeTracking('container', v)
9+
return { columns: generateThemeVariable('container', v) }
10+
}
11+
12+
return { columns: h.bracket.numberWithUnit.number.cssvar(v) }
13+
}, { autocomplete: ['columns-<num>', 'columns-$container'] }],
14+
['columns-auto', { columns: 'auto' }],
715

816
// break before
917
['break-before-auto', { 'break-before': 'auto' }],

test/__snapshots__/postcss.test.ts.snap

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,10 +142,11 @@ exports[`postcss > @unocss 1`] = `
142142
.columns-\\[3_auto\\]{columns:3 auto;}
143143
.columns-\\[auto_13em\\]{columns:auto 13em;}
144144
.columns-\\[auto_auto\\]{columns:auto auto;}
145+
.columns-\\$variable{columns:var(--variable);}
145146
.columns-3{columns:3;}
146147
.columns-5em{columns:5em;}
148+
.columns-sm{columns:24rem;}
147149
.columns-auto{columns:auto;}
148-
.columns-unset{columns:unset;}
149150
.break-before-avoid-page{break-before:avoid-page;}
150151
.break-before-initial{break-before:initial;}
151152
.break-inside-avoid-column{break-inside:avoid-column;}

test/assets/output/preset-wind3-targets.css

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/assets/output/preset-wind4-targets.css

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@
173173
--colors-red-300: oklch(80.8% 0.114 19.571);
174174
--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";
175175
--colors-red-DEFAULT: oklch(70.4% 0.191 22.216);
176+
--container-sm: 24rem;
176177
--colors-sky-300: oklch(82.8% 0.111 230.318);
177178
--colors-gray-DEFAULT: oklch(70.7% 0.022 261.325);
178179
--colors-gray-400: oklch(70.7% 0.022 261.325);
@@ -1593,10 +1594,11 @@ unocss .scope-\[unocss\]\:block{display:block;}
15931594
.columns-\[3_auto\]{columns:3 auto;}
15941595
.columns-\[auto_13em\]{columns:auto 13em;}
15951596
.columns-\[auto_auto\]{columns:auto auto;}
1597+
.columns-\$variable{columns:var(--variable);}
15961598
.columns-3{columns:3;}
15971599
.columns-5em{columns:5em;}
1600+
.columns-sm{columns:var(--container-sm);}
15981601
.columns-auto{columns:auto;}
1599-
.columns-unset{columns:unset;}
16001602
.break-before-avoid-page{break-before:avoid-page;}
16011603
.break-before-initial{break-before:initial;}
16021604
.break-inside-avoid-column{break-inside:avoid-column;}

test/assets/preset-wind3-targets.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,8 @@ export const targets = [
170170
'columns-[3_auto]',
171171
'columns-[auto_13em]',
172172
'columns-[auto_auto]',
173-
'columns-unset',
173+
'columns-sm',
174+
'columns-$variable',
174175
'break-before-avoid-page',
175176
'break-inside-avoid-column',
176177
'break-after-column',

test/assets/preset-wind4-targets.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,8 @@ export const presetWind4Targets: string[] = [
180180
'columns-[3_auto]',
181181
'columns-[auto_13em]',
182182
'columns-[auto_auto]',
183-
'columns-unset',
183+
'columns-sm',
184+
'columns-$variable',
184185
'break-before-avoid-page',
185186
'break-inside-avoid-column',
186187
'break-after-column',

0 commit comments

Comments
 (0)