Skip to content

Commit cd4711c

Browse files
authored
Remove automatic var(…) injection (tailwindlabs#13537)
* remove automatic `var(…)` injection There are a few properties that use "dashed-ident" values, this means that you can use `--my-thing` as-is without the `var(…)` around it. This causes issues because we are now injecting a `var(…)` where it's not needed. One potential solution is to create a list of properties where dashed idents can be used. However, they can _also_ use CSS custom properties that point to another dashed ident. A workaround that some people used is adding a `_` in front of the variable: `mt-[_--my-thing]` this way we don't automatically inject the `var(…)` around it. This is a workaround and gross. While the idea of automatic var injection is neat, this causes more trouble than it's worth. Adding `var(…)` explicitly is better. A side effect of this is that we can simplify the `candidate` data structure because we don't need to track `dashedIdent` separately anymore. * update tests by adding `var(…)` explicitly * update changelog
1 parent b83576e commit cd4711c

File tree

5 files changed

+749
-818
lines changed

5 files changed

+749
-818
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
- Make sure `contain-*` utility variables resolve to a valid value ([#13521](https://github.com/tailwindlabs/tailwindcss/pull/13521))
1313

14+
### Changed
15+
16+
- Remove automatic `var(…)` injection ([#13537](https://github.com/tailwindlabs/tailwindcss/pull/13537))
17+
1418
## Changed
1519

1620
- Use `rem` units for breakpoints by default instead of `px` ([#13469](https://github.com/tailwindlabs/tailwindcss/pull/13469))

packages/tailwindcss/src/__snapshots__/utilities.test.ts.snap

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ exports[`border-* 1`] = `
3838
border-width: 12px;
3939
}
4040
41-
.border-\\[length\\:--my-width\\], .border-\\[line-width\\:--my-width\\] {
41+
.border-\\[length\\:var\\(--my-width\\)\\], .border-\\[line-width\\:var\\(--my-width\\)\\] {
4242
border-style: var(--tw-border-style);
4343
border-width: var(--my-width);
4444
}
@@ -66,19 +66,19 @@ exports[`border-* 1`] = `
6666
border-color: #0088cc80;
6767
}
6868
69-
.border-\\[--my-color\\] {
69+
.border-\\[color\\:var\\(--my-color\\)\\] {
7070
border-color: var(--my-color);
7171
}
7272
73-
.border-\\[--my-color\\]\\/50 {
73+
.border-\\[color\\:var\\(--my-color\\)\\]\\/50 {
7474
border-color: color-mix(in srgb, var(--my-color) 50%, transparent);
7575
}
7676
77-
.border-\\[color\\:--my-color\\] {
77+
.border-\\[var\\(--my-color\\)\\] {
7878
border-color: var(--my-color);
7979
}
8080
81-
.border-\\[color\\:--my-color\\]\\/50 {
81+
.border-\\[var\\(--my-color\\)\\]\\/50 {
8282
border-color: color-mix(in srgb, var(--my-color) 50%, transparent);
8383
}
8484
@@ -151,7 +151,7 @@ exports[`border-b-* 1`] = `
151151
border-bottom-width: 12px;
152152
}
153153
154-
.border-b-\\[length\\:--my-width\\], .border-b-\\[line-width\\:--my-width\\] {
154+
.border-b-\\[length\\:var\\(--my-width\\)\\], .border-b-\\[line-width\\:var\\(--my-width\\)\\] {
155155
border-bottom-style: var(--tw-border-style);
156156
border-bottom-width: var(--my-width);
157157
}
@@ -179,19 +179,19 @@ exports[`border-b-* 1`] = `
179179
border-bottom-color: #0088cc80;
180180
}
181181
182-
.border-b-\\[--my-color\\] {
182+
.border-b-\\[color\\:var\\(--my-color\\)\\] {
183183
border-bottom-color: var(--my-color);
184184
}
185185
186-
.border-b-\\[--my-color\\]\\/50 {
186+
.border-b-\\[color\\:var\\(--my-color\\)\\]\\/50 {
187187
border-bottom-color: color-mix(in srgb, var(--my-color) 50%, transparent);
188188
}
189189
190-
.border-b-\\[color\\:--my-color\\] {
190+
.border-b-\\[var\\(--my-color\\)\\] {
191191
border-bottom-color: var(--my-color);
192192
}
193193
194-
.border-b-\\[color\\:--my-color\\]\\/50 {
194+
.border-b-\\[var\\(--my-color\\)\\]\\/50 {
195195
border-bottom-color: color-mix(in srgb, var(--my-color) 50%, transparent);
196196
}
197197
@@ -264,7 +264,7 @@ exports[`border-e-* 1`] = `
264264
border-inline-end-width: 12px;
265265
}
266266
267-
.border-e-\\[length\\:--my-width\\], .border-e-\\[line-width\\:--my-width\\] {
267+
.border-e-\\[length\\:var\\(--my-width\\)\\], .border-e-\\[line-width\\:var\\(--my-width\\)\\] {
268268
border-inline-end-style: var(--tw-border-style);
269269
border-inline-end-width: var(--my-width);
270270
}
@@ -292,19 +292,19 @@ exports[`border-e-* 1`] = `
292292
border-inline-end-color: #0088cc80;
293293
}
294294
295-
.border-e-\\[--my-color\\] {
295+
.border-e-\\[color\\:var\\(--my-color\\)\\] {
296296
border-inline-end-color: var(--my-color);
297297
}
298298
299-
.border-e-\\[--my-color\\]\\/50 {
299+
.border-e-\\[color\\:var\\(--my-color\\)\\]\\/50 {
300300
border-inline-end-color: color-mix(in srgb, var(--my-color) 50%, transparent);
301301
}
302302
303-
.border-e-\\[color\\:--my-color\\] {
303+
.border-e-\\[var\\(--my-color\\)\\] {
304304
border-inline-end-color: var(--my-color);
305305
}
306306
307-
.border-e-\\[color\\:--my-color\\]\\/50 {
307+
.border-e-\\[var\\(--my-color\\)\\]\\/50 {
308308
border-inline-end-color: color-mix(in srgb, var(--my-color) 50%, transparent);
309309
}
310310
@@ -377,7 +377,7 @@ exports[`border-l-* 1`] = `
377377
border-left-width: 12px;
378378
}
379379
380-
.border-l-\\[length\\:--my-width\\], .border-l-\\[line-width\\:--my-width\\] {
380+
.border-l-\\[length\\:var\\(--my-width\\)\\], .border-l-\\[line-width\\:var\\(--my-width\\)\\] {
381381
border-left-style: var(--tw-border-style);
382382
border-left-width: var(--my-width);
383383
}
@@ -405,19 +405,19 @@ exports[`border-l-* 1`] = `
405405
border-left-color: #0088cc80;
406406
}
407407
408-
.border-l-\\[--my-color\\] {
408+
.border-l-\\[color\\:var\\(--my-color\\)\\] {
409409
border-left-color: var(--my-color);
410410
}
411411
412-
.border-l-\\[--my-color\\]\\/50 {
412+
.border-l-\\[color\\:var\\(--my-color\\)\\]\\/50 {
413413
border-left-color: color-mix(in srgb, var(--my-color) 50%, transparent);
414414
}
415415
416-
.border-l-\\[color\\:--my-color\\] {
416+
.border-l-\\[var\\(--my-color\\)\\] {
417417
border-left-color: var(--my-color);
418418
}
419419
420-
.border-l-\\[color\\:--my-color\\]\\/50 {
420+
.border-l-\\[var\\(--my-color\\)\\]\\/50 {
421421
border-left-color: color-mix(in srgb, var(--my-color) 50%, transparent);
422422
}
423423
@@ -490,7 +490,7 @@ exports[`border-r-* 1`] = `
490490
border-right-width: 12px;
491491
}
492492
493-
.border-r-\\[length\\:--my-width\\], .border-r-\\[line-width\\:--my-width\\] {
493+
.border-r-\\[length\\:var\\(--my-width\\)\\], .border-r-\\[line-width\\:var\\(--my-width\\)\\] {
494494
border-right-style: var(--tw-border-style);
495495
border-right-width: var(--my-width);
496496
}
@@ -518,19 +518,19 @@ exports[`border-r-* 1`] = `
518518
border-right-color: #0088cc80;
519519
}
520520
521-
.border-r-\\[--my-color\\] {
521+
.border-r-\\[color\\:var\\(--my-color\\)\\] {
522522
border-right-color: var(--my-color);
523523
}
524524
525-
.border-r-\\[--my-color\\]\\/50 {
525+
.border-r-\\[color\\:var\\(--my-color\\)\\]\\/50 {
526526
border-right-color: color-mix(in srgb, var(--my-color) 50%, transparent);
527527
}
528528
529-
.border-r-\\[color\\:--my-color\\] {
529+
.border-r-\\[var\\(--my-color\\)\\] {
530530
border-right-color: var(--my-color);
531531
}
532532
533-
.border-r-\\[color\\:--my-color\\]\\/50 {
533+
.border-r-\\[var\\(--my-color\\)\\]\\/50 {
534534
border-right-color: color-mix(in srgb, var(--my-color) 50%, transparent);
535535
}
536536
@@ -603,7 +603,7 @@ exports[`border-s-* 1`] = `
603603
border-inline-start-width: 12px;
604604
}
605605
606-
.border-s-\\[length\\:--my-width\\], .border-s-\\[line-width\\:--my-width\\] {
606+
.border-s-\\[length\\:var\\(--my-width\\)\\], .border-s-\\[line-width\\:var\\(--my-width\\)\\] {
607607
border-inline-start-style: var(--tw-border-style);
608608
border-inline-start-width: var(--my-width);
609609
}
@@ -631,19 +631,19 @@ exports[`border-s-* 1`] = `
631631
border-inline-start-color: #0088cc80;
632632
}
633633
634-
.border-s-\\[--my-color\\] {
634+
.border-s-\\[color\\:var\\(--my-color\\)\\] {
635635
border-inline-start-color: var(--my-color);
636636
}
637637
638-
.border-s-\\[--my-color\\]\\/50 {
638+
.border-s-\\[color\\:var\\(--my-color\\)\\]\\/50 {
639639
border-inline-start-color: color-mix(in srgb, var(--my-color) 50%, transparent);
640640
}
641641
642-
.border-s-\\[color\\:--my-color\\] {
642+
.border-s-\\[var\\(--my-color\\)\\] {
643643
border-inline-start-color: var(--my-color);
644644
}
645645
646-
.border-s-\\[color\\:--my-color\\]\\/50 {
646+
.border-s-\\[var\\(--my-color\\)\\]\\/50 {
647647
border-inline-start-color: color-mix(in srgb, var(--my-color) 50%, transparent);
648648
}
649649
@@ -716,7 +716,7 @@ exports[`border-t-* 1`] = `
716716
border-top-width: 12px;
717717
}
718718
719-
.border-t-\\[length\\:--my-width\\], .border-t-\\[line-width\\:--my-width\\] {
719+
.border-t-\\[length\\:var\\(--my-width\\)\\], .border-t-\\[line-width\\:var\\(--my-width\\)\\] {
720720
border-top-style: var(--tw-border-style);
721721
border-top-width: var(--my-width);
722722
}
@@ -744,19 +744,19 @@ exports[`border-t-* 1`] = `
744744
border-top-color: #0088cc80;
745745
}
746746
747-
.border-t-\\[--my-color\\] {
747+
.border-t-\\[color\\:var\\(--my-color\\)\\] {
748748
border-top-color: var(--my-color);
749749
}
750750
751-
.border-t-\\[--my-color\\]\\/50 {
751+
.border-t-\\[color\\:var\\(--my-color\\)\\]\\/50 {
752752
border-top-color: color-mix(in srgb, var(--my-color) 50%, transparent);
753753
}
754754
755-
.border-t-\\[color\\:--my-color\\] {
755+
.border-t-\\[var\\(--my-color\\)\\] {
756756
border-top-color: var(--my-color);
757757
}
758758
759-
.border-t-\\[color\\:--my-color\\]\\/50 {
759+
.border-t-\\[var\\(--my-color\\)\\]\\/50 {
760760
border-top-color: color-mix(in srgb, var(--my-color) 50%, transparent);
761761
}
762762
@@ -841,7 +841,7 @@ exports[`border-x-* 1`] = `
841841
border-right-width: 12px;
842842
}
843843
844-
.border-x-\\[length\\:--my-width\\], .border-x-\\[line-width\\:--my-width\\] {
844+
.border-x-\\[length\\:var\\(--my-width\\)\\], .border-x-\\[line-width\\:var\\(--my-width\\)\\] {
845845
border-left-style: var(--tw-border-style);
846846
border-right-style: var(--tw-border-style);
847847
border-left-width: var(--my-width);
@@ -879,22 +879,22 @@ exports[`border-x-* 1`] = `
879879
border-right-color: #0088cc80;
880880
}
881881
882-
.border-x-\\[--my-color\\] {
882+
.border-x-\\[color\\:var\\(--my-color\\)\\] {
883883
border-left-color: var(--my-color);
884884
border-right-color: var(--my-color);
885885
}
886886
887-
.border-x-\\[--my-color\\]\\/50 {
887+
.border-x-\\[color\\:var\\(--my-color\\)\\]\\/50 {
888888
border-left-color: color-mix(in srgb, var(--my-color) 50%, transparent);
889889
border-right-color: color-mix(in srgb, var(--my-color) 50%, transparent);
890890
}
891891
892-
.border-x-\\[color\\:--my-color\\] {
892+
.border-x-\\[var\\(--my-color\\)\\] {
893893
border-left-color: var(--my-color);
894894
border-right-color: var(--my-color);
895895
}
896896
897-
.border-x-\\[color\\:--my-color\\]\\/50 {
897+
.border-x-\\[var\\(--my-color\\)\\]\\/50 {
898898
border-left-color: color-mix(in srgb, var(--my-color) 50%, transparent);
899899
border-right-color: color-mix(in srgb, var(--my-color) 50%, transparent);
900900
}
@@ -986,7 +986,7 @@ exports[`border-y-* 1`] = `
986986
border-bottom-width: 12px;
987987
}
988988
989-
.border-y-\\[length\\:--my-width\\], .border-y-\\[line-width\\:--my-width\\] {
989+
.border-y-\\[length\\:var\\(--my-width\\)\\], .border-y-\\[line-width\\:var\\(--my-width\\)\\] {
990990
border-top-style: var(--tw-border-style);
991991
border-bottom-style: var(--tw-border-style);
992992
border-top-width: var(--my-width);
@@ -1024,22 +1024,22 @@ exports[`border-y-* 1`] = `
10241024
border-bottom-color: #0088cc80;
10251025
}
10261026
1027-
.border-y-\\[--my-color\\] {
1027+
.border-y-\\[color\\:var\\(--my-color\\)\\] {
10281028
border-top-color: var(--my-color);
10291029
border-bottom-color: var(--my-color);
10301030
}
10311031
1032-
.border-y-\\[--my-color\\]\\/50 {
1032+
.border-y-\\[color\\:var\\(--my-color\\)\\]\\/50 {
10331033
border-top-color: color-mix(in srgb, var(--my-color) 50%, transparent);
10341034
border-bottom-color: color-mix(in srgb, var(--my-color) 50%, transparent);
10351035
}
10361036
1037-
.border-y-\\[color\\:--my-color\\] {
1037+
.border-y-\\[var\\(--my-color\\)\\] {
10381038
border-top-color: var(--my-color);
10391039
border-bottom-color: var(--my-color);
10401040
}
10411041
1042-
.border-y-\\[color\\:--my-color\\]\\/50 {
1042+
.border-y-\\[var\\(--my-color\\)\\]\\/50 {
10431043
border-top-color: color-mix(in srgb, var(--my-color) 50%, transparent);
10441044
border-bottom-color: color-mix(in srgb, var(--my-color) 50%, transparent);
10451045
}

0 commit comments

Comments
 (0)