Skip to content

Commit 083bca3

Browse files
authored
Insert always on defaults layer in correct spot (#6526)
* insert in correct spot We were injecting the always on `@tailwind defaults` layer at the beginning of the file. However, if a `@tailwind base` layer is available, then that will now be injected _after_ the defaults layer. The base layer does contain some reset that are now overriding the defaults we set. So now we will: - Insert the `@tailwind defaults` layer at the beginning of the file _if_ there is no `@tailwind base` - Insert the `@tailwind defaults` layer after the `@tailwind base` layer if it exists. * update changelog
1 parent 6bfde07 commit 083bca3

File tree

3 files changed

+47
-38
lines changed

3 files changed

+47
-38
lines changed

CHANGELOG.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
- Nothing yet!
10+
### Fixed
11+
12+
- Insert always on defaults layer in correct spot ([#6526](https://github.com/tailwindlabs/tailwindcss/pull/6526))
1113

1214
## [3.0.3] - 2021-12-15
1315

src/lib/expandTailwindAtRules.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -221,15 +221,22 @@ export default function expandTailwindAtRules(context) {
221221

222222
// Replace any Tailwind directives with generated CSS
223223

224+
if (layerNodes.base) {
225+
layerNodes.base.before(cloneNodes([...baseNodes], layerNodes.base.source))
226+
}
227+
224228
// @defaults rules are unconditionally added first to ensure that
225229
// using any utility that relies on defaults will work even when
226230
// compiled in an isolated environment like CSS modules
227231
if (context.tailwindConfig[DEFAULTS_LAYER] !== false) {
228-
root.prepend(cloneNodes([...defaultNodes], root.source))
232+
if (layerNodes.base) {
233+
layerNodes.base.after(cloneNodes([...defaultNodes], root.source))
234+
} else {
235+
root.prepend(cloneNodes([...defaultNodes], root.source))
236+
}
229237
}
230238

231239
if (layerNodes.base) {
232-
layerNodes.base.before(cloneNodes([...baseNodes], layerNodes.base.source))
233240
layerNodes.base.remove()
234241
}
235242

tests/kitchen-sink.test.css

+35-35
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,3 @@
1-
.scale-50,
2-
.transform,
3-
.hover\:scale-75 {
4-
--tw-translate-x: 0;
5-
--tw-translate-y: 0;
6-
--tw-rotate: 0;
7-
--tw-skew-x: 0;
8-
--tw-skew-y: 0;
9-
--tw-scale-x: 1;
10-
--tw-scale-y: 1;
11-
--tw-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y))
12-
rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
13-
scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
14-
}
15-
16-
.shadow-sm,
17-
.shadow-md,
18-
.hover\:shadow-lg,
19-
.md\:shadow-sm {
20-
--tw-ring-offset-shadow: 0 0 #0000;
21-
--tw-ring-shadow: 0 0 #0000;
22-
--tw-shadow: 0 0 #0000;
23-
--tw-shadow-colored: 0 0 #0000;
24-
}
25-
26-
.focus\:ring-2 {
27-
--tw-ring-inset: var(--tw-empty, /*!*/ /*!*/);
28-
--tw-ring-offset-width: 0px;
29-
--tw-ring-offset-color: #fff;
30-
--tw-ring-color: rgb(59 130 246 / 0.5);
31-
--tw-ring-offset-shadow: 0 0 #0000;
32-
--tw-ring-shadow: 0 0 #0000;
33-
--tw-shadow: 0 0 #0000;
34-
--tw-shadow-colored: 0 0 #0000;
35-
}
361
.theme-test {
372
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
383
'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
@@ -171,6 +136,41 @@ h1:first-child {
171136
div {
172137
background: #654321;
173138
}
139+
.scale-50,
140+
.transform,
141+
.hover\:scale-75 {
142+
--tw-translate-x: 0;
143+
--tw-translate-y: 0;
144+
--tw-rotate: 0;
145+
--tw-skew-x: 0;
146+
--tw-skew-y: 0;
147+
--tw-scale-x: 1;
148+
--tw-scale-y: 1;
149+
--tw-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y))
150+
rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
151+
scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
152+
}
153+
154+
.shadow-sm,
155+
.shadow-md,
156+
.hover\:shadow-lg,
157+
.md\:shadow-sm {
158+
--tw-ring-offset-shadow: 0 0 #0000;
159+
--tw-ring-shadow: 0 0 #0000;
160+
--tw-shadow: 0 0 #0000;
161+
--tw-shadow-colored: 0 0 #0000;
162+
}
163+
164+
.focus\:ring-2 {
165+
--tw-ring-inset: var(--tw-empty, /*!*/ /*!*/);
166+
--tw-ring-offset-width: 0px;
167+
--tw-ring-offset-color: #fff;
168+
--tw-ring-color: rgb(59 130 246 / 0.5);
169+
--tw-ring-offset-shadow: 0 0 #0000;
170+
--tw-ring-shadow: 0 0 #0000;
171+
--tw-shadow: 0 0 #0000;
172+
--tw-shadow-colored: 0 0 #0000;
173+
}
174174
.container {
175175
width: 100%;
176176
}

0 commit comments

Comments
 (0)