tailwindcss 0.0.0-insiders.8259dfd → 0.0.0-insiders.8293c2d

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.
Files changed (93) hide show
  1. package/CHANGELOG.md +207 -2
  2. package/README.md +8 -4
  3. package/colors.js +2 -1
  4. package/defaultConfig.js +2 -1
  5. package/defaultTheme.js +2 -1
  6. package/lib/cli.js +94 -61
  7. package/lib/constants.js +1 -1
  8. package/lib/corePluginList.js +8 -1
  9. package/lib/corePlugins.js +477 -517
  10. package/lib/css/preflight.css +18 -5
  11. package/lib/featureFlags.js +5 -6
  12. package/lib/index.js +1 -3
  13. package/lib/lib/collapseDuplicateDeclarations.js +80 -0
  14. package/lib/lib/defaultExtractor.js +42 -0
  15. package/lib/lib/detectNesting.js +17 -2
  16. package/lib/lib/evaluateTailwindFunctions.js +10 -6
  17. package/lib/lib/expandApplyAtRules.js +94 -45
  18. package/lib/lib/expandTailwindAtRules.js +32 -33
  19. package/lib/lib/generateRules.js +167 -21
  20. package/lib/lib/normalizeTailwindDirectives.js +8 -1
  21. package/lib/lib/partitionApplyAtRules.js +53 -0
  22. package/lib/lib/resolveDefaultsAtRules.js +28 -14
  23. package/lib/lib/setupContextUtils.js +153 -129
  24. package/lib/lib/setupTrackingContext.js +11 -10
  25. package/lib/lib/sharedState.js +34 -5
  26. package/lib/lib/substituteScreenAtRules.js +7 -4
  27. package/lib/processTailwindFeatures.js +7 -2
  28. package/lib/util/buildMediaQuery.js +13 -24
  29. package/lib/util/color.js +23 -8
  30. package/lib/util/createPlugin.js +1 -2
  31. package/lib/util/createUtilityPlugin.js +6 -10
  32. package/lib/util/dataTypes.js +38 -7
  33. package/lib/util/defaults.js +6 -0
  34. package/lib/util/flattenColorPalette.js +1 -3
  35. package/lib/util/formatVariantSelector.js +186 -0
  36. package/lib/util/isValidArbitraryValue.js +64 -0
  37. package/lib/util/log.js +4 -0
  38. package/lib/util/nameClass.js +1 -0
  39. package/lib/util/normalizeConfig.js +63 -21
  40. package/lib/util/normalizeScreens.js +59 -0
  41. package/lib/util/parseBoxShadowValue.js +77 -0
  42. package/lib/util/pluginUtils.js +27 -158
  43. package/lib/util/prefixSelector.js +1 -3
  44. package/lib/util/resolveConfig.js +30 -31
  45. package/lib/util/resolveConfigPath.js +1 -2
  46. package/lib/util/toColorValue.js +1 -2
  47. package/lib/util/toPath.js +6 -1
  48. package/lib/util/transformThemeValue.js +19 -13
  49. package/nesting/plugin.js +4 -1
  50. package/package.json +19 -21
  51. package/peers/index.js +4621 -5626
  52. package/plugin.js +2 -1
  53. package/resolveConfig.js +2 -1
  54. package/src/cli.js +66 -14
  55. package/src/corePluginList.js +1 -1
  56. package/src/corePlugins.js +406 -518
  57. package/src/css/preflight.css +18 -5
  58. package/src/featureFlags.js +1 -1
  59. package/src/index.js +1 -7
  60. package/src/lib/collapseDuplicateDeclarations.js +93 -0
  61. package/src/lib/defaultExtractor.js +48 -0
  62. package/src/lib/detectNesting.js +22 -3
  63. package/src/lib/evaluateTailwindFunctions.js +6 -3
  64. package/src/lib/expandApplyAtRules.js +101 -45
  65. package/src/lib/expandTailwindAtRules.js +33 -27
  66. package/src/lib/generateRules.js +178 -11
  67. package/src/lib/normalizeTailwindDirectives.js +6 -1
  68. package/src/lib/partitionApplyAtRules.js +52 -0
  69. package/src/lib/resolveDefaultsAtRules.js +31 -10
  70. package/src/lib/setupContextUtils.js +140 -84
  71. package/src/lib/setupTrackingContext.js +11 -10
  72. package/src/lib/sharedState.js +40 -4
  73. package/src/lib/substituteScreenAtRules.js +6 -3
  74. package/src/processTailwindFeatures.js +8 -2
  75. package/src/util/buildMediaQuery.js +14 -18
  76. package/src/util/color.js +20 -7
  77. package/src/util/dataTypes.js +43 -11
  78. package/src/util/defaults.js +6 -0
  79. package/src/util/formatVariantSelector.js +196 -0
  80. package/src/util/isValidArbitraryValue.js +61 -0
  81. package/src/util/log.js +4 -0
  82. package/src/util/nameClass.js +1 -1
  83. package/src/util/normalizeConfig.js +37 -2
  84. package/src/util/normalizeScreens.js +45 -0
  85. package/src/util/parseBoxShadowValue.js +71 -0
  86. package/src/util/pluginUtils.js +15 -138
  87. package/src/util/prefixSelector.js +1 -4
  88. package/src/util/resolveConfig.js +11 -1
  89. package/src/util/toPath.js +23 -1
  90. package/src/util/transformThemeValue.js +22 -7
  91. package/stubs/defaultConfig.stub.js +42 -16
  92. package/lib/lib/setupWatchingContext.js +0 -284
  93. package/src/lib/setupWatchingContext.js +0 -304
package/CHANGELOG.md CHANGED
@@ -9,12 +9,181 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ### Added
11
11
 
12
+ - Show warnings for invalid content config ([#7065](https://github.com/tailwindlabs/tailwindcss/pull/7065))
13
+
14
+ ## [3.0.13] - 2022-01-11
15
+
16
+ ### Fixed
17
+
18
+ - Fix consecutive builds with at apply producing different CSS ([#6999](https://github.com/tailwindlabs/tailwindcss/pull/6999))
19
+
20
+ ## [3.0.12] - 2022-01-07
21
+
22
+ ### Fixed
23
+
24
+ - Allow use of falsy values in theme config ([#6917](https://github.com/tailwindlabs/tailwindcss/pull/6917))
25
+ - Ensure we can apply classes that are grouped with non-class selectors ([#6922](https://github.com/tailwindlabs/tailwindcss/pull/6922))
26
+ - Improve standalone CLI compatibility on Linux by switching to the `linuxstatic` build target ([#6914](https://github.com/tailwindlabs/tailwindcss/pull/6914))
27
+ - Ensure `@apply` works consistently with or without `@layer` ([#6938](https://github.com/tailwindlabs/tailwindcss/pull/6938))
28
+ - Only emit defaults when using base layer ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
29
+ - Emit plugin defaults regardless of usage ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
30
+ - Move default border color back to preflight ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
31
+ - Change `experimental.optimizeUniversalDefaults` to only work with `@tailwind base` ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
32
+
33
+ ## [3.0.11] - 2022-01-05
34
+
35
+ ### Fixed
36
+
37
+ - Preserve casing of CSS variables added by plugins ([#6888](https://github.com/tailwindlabs/tailwindcss/pull/6888))
38
+ - Ignore content paths that are passed in but don't actually exist ([#6901](https://github.com/tailwindlabs/tailwindcss/pull/6901))
39
+ - Revert change that applies Tailwind's defaults in isolated environments like CSS modules ([9fdc391](https://github.com/tailwindlabs/tailwindcss/commit/9fdc391d4ff93e7e350f5ce439060176b1f0162f))
40
+
41
+ ## [3.0.10] - 2022-01-04
42
+
43
+ ### Fixed
44
+
45
+ - Fix `@apply` in files without `@tailwind` directives ([#6580](https://github.com/tailwindlabs/tailwindcss/pull/6580), [#6875](https://github.com/tailwindlabs/tailwindcss/pull/6875))
46
+ - CLI: avoid unnecessary writes to output files ([#6550](https://github.com/tailwindlabs/tailwindcss/pull/6550))
47
+
48
+ ### Added
49
+
50
+ - Allow piping data into the CLI ([#6876](https://github.com/tailwindlabs/tailwindcss/pull/6876))
51
+
52
+ ## [3.0.9] - 2022-01-03
53
+
54
+ ### Fixed
55
+
56
+ - Improve `DEBUG` flag ([#6797](https://github.com/tailwindlabs/tailwindcss/pull/6797), [#6804](https://github.com/tailwindlabs/tailwindcss/pull/6804))
57
+ - Ensure we can use `<` and `>` characters in modifiers ([#6851](https://github.com/tailwindlabs/tailwindcss/pull/6851))
58
+ - Validate `theme()` works in arbitrary values ([#6852](https://github.com/tailwindlabs/tailwindcss/pull/6852))
59
+ - Properly detect `theme()` value usage in arbitrary properties ([#6854](https://github.com/tailwindlabs/tailwindcss/pull/6854))
60
+ - Improve collapsing of duplicate declarations ([#6856](https://github.com/tailwindlabs/tailwindcss/pull/6856))
61
+ - Remove support for `TAILWIND_MODE=watch` ([#6858](https://github.com/tailwindlabs/tailwindcss/pull/6858))
62
+
63
+ ## [3.0.8] - 2021-12-28
64
+
65
+ ### Fixed
66
+
67
+ - Reduce specificity of `abbr` rule in preflight ([#6671](https://github.com/tailwindlabs/tailwindcss/pull/6671))
68
+ - Support HSL with hue units in arbitrary values ([#6726](https://github.com/tailwindlabs/tailwindcss/pull/6726))
69
+ - Add `node16-linux-arm64` target for standalone CLI ([#6693](https://github.com/tailwindlabs/tailwindcss/pull/6693))
70
+
71
+ ## [3.0.7] - 2021-12-17
72
+
73
+ ### Fixed
74
+
75
+ - Don't mutate custom color palette when overriding per-plugin colors ([#6546](https://github.com/tailwindlabs/tailwindcss/pull/6546))
76
+ - Improve circular dependency detection when using `@apply` ([#6588](https://github.com/tailwindlabs/tailwindcss/pull/6588))
77
+ - Only generate variants for non-`user` layers ([#6589](https://github.com/tailwindlabs/tailwindcss/pull/6589))
78
+ - Properly extract classes with arbitrary values in arrays and classes followed by escaped quotes ([#6590](https://github.com/tailwindlabs/tailwindcss/pull/6590))
79
+ - Improve jsx interpolation candidate matching ([#6593](https://github.com/tailwindlabs/tailwindcss/pull/6593))
80
+ - Ensure `@apply` of a rule inside an AtRule works ([#6594](https://github.com/tailwindlabs/tailwindcss/pull/6594))
81
+
82
+ ## [3.0.6] - 2021-12-16
83
+
84
+ ### Fixed
85
+
86
+ - Support square bracket notation in paths ([#6519](https://github.com/tailwindlabs/tailwindcss/pull/6519))
87
+ - Ensure all plugins are executed for a given candidate ([#6540](https://github.com/tailwindlabs/tailwindcss/pull/6540))
88
+
89
+ ## [3.0.5] - 2021-12-15
90
+
91
+ ### Fixed
92
+
93
+ - Revert: add `li` to list-style reset ([9777562d](https://github.com/tailwindlabs/tailwindcss/commit/9777562da37ee631bbf77374c0d14825f09ef9af))
94
+
95
+ ## [3.0.4] - 2021-12-15
96
+
97
+ ### Fixed
98
+
99
+ - Insert always-on defaults layer in correct spot ([#6526](https://github.com/tailwindlabs/tailwindcss/pull/6526))
100
+
101
+ ## [3.0.3] - 2021-12-15
102
+
103
+ ### Added
104
+
105
+ - Warn about invalid globs in `content` ([#6449](https://github.com/tailwindlabs/tailwindcss/pull/6449))
106
+ - Add standalone tailwindcss CLI ([#6506](https://github.com/tailwindlabs/tailwindcss/pull/6506))
107
+ - Add `li` to list-style reset ([00f60e6](https://github.com/tailwindlabs/tailwindcss/commit/00f60e61013c6e4e3419e4b699371a13eb30b75d))
108
+
109
+ ### Fixed
110
+
111
+ - Don't output unparsable values ([#6469](https://github.com/tailwindlabs/tailwindcss/pull/6469))
112
+ - Fix text decoration utilities from overriding the new text decoration color/style/thickness utilities when used with a modifier ([#6378](https://github.com/tailwindlabs/tailwindcss/pull/6378))
113
+ - Move defaults to their own always-on layer ([#6500](https://github.com/tailwindlabs/tailwindcss/pull/6500))
114
+ - Support negative values in safelist patterns ([#6480](https://github.com/tailwindlabs/tailwindcss/pull/6480))
115
+
116
+ ## [3.0.2] - 2021-12-13
117
+
118
+ ### Fixed
119
+
120
+ - Temporarily disable optimize universal defaults, fixes issue with transforms/filters/rings not being `@apply`-able in CSS modules/Svelte components/Vue components ([#6461](https://github.com/tailwindlabs/tailwindcss/pull/6461))
121
+
122
+ ## [3.0.1] - 2021-12-10
123
+
124
+ ### Fixed
125
+
126
+ - Ensure complex variants with multiple classes work ([#6311](https://github.com/tailwindlabs/tailwindcss/pull/6311))
127
+ - Re-add `default` interop to public available functions ([#6348](https://github.com/tailwindlabs/tailwindcss/pull/6348))
128
+ - Detect circular dependencies when using `@apply` ([#6365](https://github.com/tailwindlabs/tailwindcss/pull/6365))
129
+ - Fix defaults optimization when vendor prefixes are involved ([#6369](https://github.com/tailwindlabs/tailwindcss/pull/6369))
130
+
131
+ ## [3.0.0] - 2021-12-09
132
+
133
+ ### Fixed
134
+
135
+ - Enforce the order of some variants (like `before` and `after`) ([#6018](https://github.com/tailwindlabs/tailwindcss/pull/6018))
136
+
137
+ ### Added
138
+
139
+ - Add `placeholder` variant ([#6106](https://github.com/tailwindlabs/tailwindcss/pull/6106))
140
+ - Add composable `touch-action` utilities ([#6115](https://github.com/tailwindlabs/tailwindcss/pull/6115))
141
+ - Add support for "arbitrary properties" ([#6161](https://github.com/tailwindlabs/tailwindcss/pull/6161))
142
+ - Add `portrait` and `landscape` variants ([#6046](https://github.com/tailwindlabs/tailwindcss/pull/6046))
143
+ - Add `text-decoration-style`, `text-decoration-thickness`, and `text-underline-offset` utilities ([#6004](https://github.com/tailwindlabs/tailwindcss/pull/6004))
144
+ - Add `menu` reset to preflight ([#6213](https://github.com/tailwindlabs/tailwindcss/pull/6213))
145
+ - Allow `0` as a valid `length` value ([#6233](https://github.com/tailwindlabs/tailwindcss/pull/6233), [#6259](https://github.com/tailwindlabs/tailwindcss/pull/6259))
146
+ - Add CSS functions to data types ([#6258](https://github.com/tailwindlabs/tailwindcss/pull/6258))
147
+ - Support negative values for `scale-*` utilities ([c48e629](https://github.com/tailwindlabs/tailwindcss/commit/c48e629955585ad18dadba9f470fda59cc448ab7))
148
+ - Improve `length` data type, by validating each value individually ([#6283](https://github.com/tailwindlabs/tailwindcss/pull/6283))
149
+
150
+ ### Changed
151
+
152
+ - Deprecate `decoration-slice` and `decoration-break` in favor `box-decoration-slice` and `box-decoration-break` _(non-breaking)_ ([#6004](https://github.com/tailwindlabs/tailwindcss/pull/6004))
153
+
154
+ ## [3.0.0-alpha.2] - 2021-11-08
155
+
156
+ ### Changed
157
+
158
+ - Don't use pointer cursor on disabled buttons by default ([#5772](https://github.com/tailwindlabs/tailwindcss/pull/5772))
159
+ - Set default content value in preflight instead of within each before/after utility ([#5820](https://github.com/tailwindlabs/tailwindcss/pull/5820))
160
+ - Remove `prefix` as a function ([#5829](https://github.com/tailwindlabs/tailwindcss/pull/5829))
161
+
162
+ ### Added
163
+
12
164
  - Add `flex-basis` utilities ([#5671](https://github.com/tailwindlabs/tailwindcss/pull/5671))
13
165
  - Make negative values a first-class feature ([#5709](https://github.com/tailwindlabs/tailwindcss/pull/5709))
14
166
  - Add `fit-content` values for `min/max-width/height` utilities ([#5638](https://github.com/tailwindlabs/tailwindcss/pull/5638))
15
167
  - Add `min/max-content` values for `min/max-height` utilities ([#5729](https://github.com/tailwindlabs/tailwindcss/pull/5729))
16
168
  - Add all standard `cursor-*` values by default ([#5734](https://github.com/tailwindlabs/tailwindcss/pull/5734))
17
169
  - Add `grow-*` and `shrink-*` utilities, deprecate `flex-grow-*` and `flex-shrink-*` ([#5733](https://github.com/tailwindlabs/tailwindcss/pull/5733))
170
+ - Add `text-decoration-color` utilities ([#5760](https://github.com/tailwindlabs/tailwindcss/pull/5760))
171
+ - Add new declarative `addVariant` API ([#5809](https://github.com/tailwindlabs/tailwindcss/pull/5809))
172
+ - Add first-class `print` variant for targeting printed media ([#5885](https://github.com/tailwindlabs/tailwindcss/pull/5885))
173
+ - Add `outline-style`, `outline-color`, `outline-width` and `outline-offset` utilities ([#5887](https://github.com/tailwindlabs/tailwindcss/pull/5887))
174
+ - Add full color palette for `fill-*` and `stroke-*` utilities (#5933[](https://github.com/tailwindlabs/tailwindcss/pull/5933))
175
+ - Add composable API for colored box shadows ([#5979](https://github.com/tailwindlabs/tailwindcss/pull/5979))
176
+
177
+ ### Fixed
178
+
179
+ - Configure chokidar's `awaitWriteFinish` setting to avoid occasional stale builds on Windows ([#5774](https://github.com/tailwindlabs/tailwindcss/pull/5774))
180
+ - Fix CLI `--content` option ([#5775](https://github.com/tailwindlabs/tailwindcss/pull/5775))
181
+ - Fix before/after utilities overriding custom content values at larger breakpoints ([#5820](https://github.com/tailwindlabs/tailwindcss/pull/5820))
182
+ - Cleanup duplicate properties ([#5830](https://github.com/tailwindlabs/tailwindcss/pull/5830))
183
+ - Allow `_` inside `url()` when using arbitrary values ([#5853](https://github.com/tailwindlabs/tailwindcss/pull/5853))
184
+ - Prevent crashes when using comments in `@layer` AtRules ([#5854](https://github.com/tailwindlabs/tailwindcss/pull/5854))
185
+ - Handle color transformations properly with `theme(...)` for all relevant plugins ([#4533](https://github.com/tailwindlabs/tailwindcss/pull/4533), [#5871](https://github.com/tailwindlabs/tailwindcss/pull/5871))
186
+ - Ensure `@apply`-ing a utility with multiple definitions works ([#5870](https://github.com/tailwindlabs/tailwindcss/pull/5870))
18
187
 
19
188
  ## [3.0.0-alpha.1] - 2021-10-01
20
189
 
@@ -55,6 +224,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
55
224
  - Fix using negated `content` globs ([#5625](https://github.com/tailwindlabs/tailwindcss/pull/5625))
56
225
  - Fix using backslashes in `content` globs ([#5628](https://github.com/tailwindlabs/tailwindcss/pull/5628))
57
226
 
227
+ ## [2.2.19] - 2021-10-29
228
+
229
+ ### Fixed
230
+
231
+ - Ensure `corePlugins` order is consisent in AOT mode ([#5928](https://github.com/tailwindlabs/tailwindcss/pull/5928))
232
+
233
+ ## [2.2.18] - 2021-10-29
234
+
235
+ ### Fixed
236
+
237
+ - Bump versions for security vulnerabilities ([#5924](https://github.com/tailwindlabs/tailwindcss/pull/5924))
238
+
239
+ ## [2.2.17] - 2021-10-13
240
+
241
+ ### Fixed
242
+
243
+ - Configure chokidar's `awaitWriteFinish` setting to avoid occasional stale builds on Windows ([#5758](https://github.com/tailwindlabs/tailwindcss/pull/5758))
244
+
58
245
  ## [2.2.16] - 2021-09-26
59
246
 
60
247
  ### Fixed
@@ -1613,8 +1800,26 @@ No release notes
1613
1800
 
1614
1801
  - Everything!
1615
1802
 
1616
- [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0-alpha.1...HEAD
1617
- [3.0.0-alpha.1]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.16...v3.0.0-alpha.1
1803
+ [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.13...HEAD
1804
+ [3.0.13]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.12...v3.0.13
1805
+ [3.0.12]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.11...v3.0.12
1806
+ [3.0.11]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.10...v3.0.11
1807
+ [3.0.10]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.9...v3.0.10
1808
+ [3.0.9]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.8...v3.0.9
1809
+ [3.0.8]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.7...v3.0.8
1810
+ [3.0.7]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.6...v3.0.7
1811
+ [3.0.6]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.5...v3.0.6
1812
+ [3.0.5]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.4...v3.0.5
1813
+ [3.0.4]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.3...v3.0.4
1814
+ [3.0.3]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.2...v3.0.3
1815
+ [3.0.2]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.1...v3.0.2
1816
+ [3.0.1]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0...v3.0.1
1817
+ [3.0.0]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0-alpha.2...v3.0.0
1818
+ [3.0.0-alpha.2]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0-alpha.1...v3.0.0-alpha.2
1819
+ [3.0.0-alpha.1]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.19...v3.0.0-alpha.1
1820
+ [2.2.19]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.18...v2.2.19
1821
+ [2.2.18]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.17...v2.2.18
1822
+ [2.2.17]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.16...v2.2.17
1618
1823
  [2.2.16]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.15...v2.2.16
1619
1824
  [2.2.15]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.14...v2.2.15
1620
1825
  [2.2.14]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.13...v2.2.14
package/README.md CHANGED
@@ -1,10 +1,14 @@
1
1
  <p>
2
- <a href="https://tailwindcss.com/" target="_blank">
3
- <img alt="Tailwind CSS" width="350" src="https://refactoringui.nyc3.cdn.digitaloceanspaces.com/tailwind-logo-sticker.svg">
4
- </a><br>
5
- A utility-first CSS framework for rapidly building custom user interfaces.
2
+ <a href="https://tailwindcss.com/#gh-light-mode-only" target="_blank">
3
+ <img src="./.github/logo-light.svg" alt="Tailwind CSS" width="350" height="70">
4
+ </a>
5
+ <a href="https://tailwindcss.com/#gh-dark-mode-only" target="_blank">
6
+ <img src="./.github/logo-dark.svg" alt="Tailwind CSS" width="350" height="70">
7
+ </a>
6
8
  </p>
7
9
 
10
+ A utility-first CSS framework for rapidly building custom user interfaces.
11
+
8
12
  <p>
9
13
  <a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/workflow/status/tailwindlabs/tailwindcss/Node.js%20CI" alt="Build Status"></a>
10
14
  <a href="https://www.npmjs.com/package/tailwindcss"><img src="https://img.shields.io/npm/dt/tailwindcss.svg" alt="Total Downloads"></a>
package/colors.js CHANGED
@@ -1 +1,2 @@
1
- module.exports = require('./lib/public/colors').default
1
+ let colors = require('./lib/public/colors')
2
+ module.exports = (colors.__esModule ? colors : { default: colors }).default
package/defaultConfig.js CHANGED
@@ -1 +1,2 @@
1
- module.exports = require('./lib/public/default-config').default
1
+ let defaultConfig = require('./lib/public/default-config')
2
+ module.exports = (defaultConfig.__esModule ? defaultConfig : { default: defaultConfig }).default
package/defaultTheme.js CHANGED
@@ -1 +1,2 @@
1
- module.exports = require('./lib/public/default-theme').default
1
+ let defaultTheme = require('./lib/public/default-theme')
2
+ module.exports = (defaultTheme.__esModule ? defaultTheme : { default: defaultTheme }).default
package/lib/cli.js CHANGED
@@ -22,7 +22,7 @@ function _interopRequireDefault(obj) {
22
22
  };
23
23
  }
24
24
  let env = {
25
- DEBUG: process.env.DEBUG !== undefined
25
+ DEBUG: process.env.DEBUG !== undefined && process.env.DEBUG !== '0'
26
26
  };
27
27
  // ---
28
28
  function indentRecursive(node, indent = 0) {
@@ -40,7 +40,26 @@ function formatNodes(root) {
40
40
  root.first.raws.before = '';
41
41
  }
42
42
  }
43
- function help({ message , usage , commands , options }) {
43
+ async function outputFile(file, contents) {
44
+ if (_fs.default.existsSync(file) && await _fs.default.promises.readFile(file, 'utf8') === contents) {
45
+ return; // Skip writing the file
46
+ }
47
+ // Write the file
48
+ await _fs.default.promises.writeFile(file, contents, 'utf8');
49
+ }
50
+ function drainStdin() {
51
+ return new Promise((resolve, reject)=>{
52
+ let result = '';
53
+ process.stdin.on('data', (chunk)=>{
54
+ result += chunk;
55
+ });
56
+ process.stdin.on('end', ()=>resolve(result)
57
+ );
58
+ process.stdin.on('error', (err)=>reject(err)
59
+ );
60
+ });
61
+ }
62
+ function help({ message , usage , commands: commands1 , options }) {
44
63
  let indent = 2;
45
64
  // Render header
46
65
  console.log();
@@ -61,17 +80,16 @@ function help({ message , usage , commands , options }) {
61
80
  }
62
81
  }
63
82
  // Render commands
64
- if (commands && commands.length > 0) {
83
+ if (commands1 && commands1.length > 0) {
65
84
  console.log();
66
85
  console.log('Commands:');
67
- for (let command of commands){
68
- console.log(' '.repeat(indent), command);
86
+ for (let command1 of commands1){
87
+ console.log(' '.repeat(indent), command1);
69
88
  }
70
89
  }
71
90
  // Render options
72
91
  if (options) {
73
- let groupedOptions = {
74
- };
92
+ let groupedOptions = {};
75
93
  for (let [key, value] of Object.entries(options)){
76
94
  if (typeof value === 'object') {
77
95
  groupedOptions[key] = {
@@ -86,12 +104,12 @@ function help({ message , usage , commands , options }) {
86
104
  }
87
105
  console.log();
88
106
  console.log('Options:');
89
- for (let { flags , description , deprecated } of Object.values(groupedOptions)){
107
+ for (let { flags: flags1 , description , deprecated } of Object.values(groupedOptions)){
90
108
  if (deprecated) continue;
91
- if (flags.length === 1) {
92
- console.log(' '.repeat(indent + 4 /* 4 = "-i, ".length */ ), flags.slice().reverse().join(', ').padEnd(20, ' '), description);
109
+ if (flags1.length === 1) {
110
+ console.log(' '.repeat(indent + 4 /* 4 = "-i, ".length */ ), flags1.slice().reverse().join(', ').padEnd(20, ' '), description);
93
111
  } else {
94
- console.log(' '.repeat(indent), flags.slice().reverse().join(', ').padEnd(24, ' '), description);
112
+ console.log(' '.repeat(indent), flags1.slice().reverse().join(', ').padEnd(24, ' '), description);
95
113
  }
96
114
  }
97
115
  }
@@ -187,8 +205,8 @@ if (process.stdout.isTTY /* Detect redirecting output to a file */ && (process.
187
205
  'tailwindcss [--input input.css] [--output output.css] [--watch] [options...]',
188
206
  'tailwindcss init [--full] [--postcss] [options...]',
189
207
  ],
190
- commands: Object.keys(commands).filter((command)=>command !== 'build'
191
- ).map((command)=>`${command} [options]`
208
+ commands: Object.keys(commands).filter((command2)=>command2 !== 'build'
209
+ ).map((command3)=>`${command3} [options]`
192
210
  ),
193
211
  options: {
194
212
  ...commands.build.args,
@@ -210,8 +228,8 @@ if (commands[command] === undefined) {
210
228
  usage: [
211
229
  'tailwindcss <command> [options]'
212
230
  ],
213
- commands: Object.keys(commands).filter((command)=>command !== 'build'
214
- ).map((command)=>`${command} [options]`
231
+ commands: Object.keys(commands).filter((command4)=>command4 !== 'build'
232
+ ).map((command5)=>`${command5} [options]`
215
233
  ),
216
234
  options: sharedFlags
217
235
  });
@@ -247,16 +265,16 @@ let args = (()=>{
247
265
  handler = flags[handler];
248
266
  }
249
267
  if (!handler) continue;
250
- let args = [];
268
+ let args1 = [];
251
269
  let offset = i + 1;
252
270
  // Parse args for current flag
253
271
  while(result['_'][offset] && !result['_'][offset].startsWith('-')){
254
- args.push(result['_'][offset++]);
272
+ args1.push(result['_'][offset++]);
255
273
  }
256
274
  // Cleanup manually parsed flags + args
257
- result['_'].splice(i, 1 + args.length);
275
+ result['_'].splice(i, 1 + args1.length);
258
276
  // Set the resolved value in the `result` object
259
- result[flagName] = handler.type(args.length === 0 ? undefined : args.length === 1 ? args[0] : args, flagName);
277
+ result[flagName] = handler.type(args1.length === 0 ? undefined : args1.length === 1 ? args1[0] : args1, flagName);
260
278
  }
261
279
  // Ensure that the `command` is always the first argument in the `args`.
262
280
  // This is important so that we don't have to check if a default command
@@ -336,7 +354,7 @@ async function build() {
336
354
  console.error('[deprecation] Running tailwindcss without -i, please provide an input file.');
337
355
  input = args['--input'] = args['_'][1];
338
356
  }
339
- if (input && !_fs.default.existsSync(input = _path.default.resolve(input))) {
357
+ if (input && input !== '-' && !_fs.default.existsSync(input = _path.default.resolve(input))) {
340
358
  console.error(`Specified input file ${args['--input']} does not exist.`);
341
359
  process.exit(9);
342
360
  }
@@ -351,13 +369,11 @@ async function build() {
351
369
  let { plugins: configPlugins } = customPostCssPath ? await (async ()=>{
352
370
  let file = _path.default.resolve(customPostCssPath);
353
371
  // Implementation, see: https://unpkg.com/browse/postcss-load-config@3.0.1/src/index.js
354
- let { config ={
355
- } } = await (0, _cosmiconfig).cosmiconfig('postcss').load(file);
372
+ let { config ={} } = await (0, _cosmiconfig).cosmiconfig('postcss').load(file);
356
373
  if (typeof config === 'function') {
357
374
  config = config();
358
375
  } else {
359
- config = Object.assign({
360
- }, config);
376
+ config = Object.assign({}, config);
361
377
  }
362
378
  if (!config.plugins) {
363
379
  config.plugins = [];
@@ -383,8 +399,7 @@ async function build() {
383
399
  ];
384
400
  }
385
401
  function resolveConfig() {
386
- let config = configPath ? require(configPath) : {
387
- };
402
+ let config = configPath ? require(configPath) : {};
388
403
  let resolvedConfig = (0, _resolveConfig).default(config);
389
404
  if (args['--purge']) {
390
405
  _log.default.warn('purge-flag-deprecated', [
@@ -396,7 +411,7 @@ async function build() {
396
411
  }
397
412
  }
398
413
  if (args['--content']) {
399
- resolvedConfig.content = args['--content'].split(/(?<!{[^}]+),/);
414
+ resolvedConfig.content.files = args['--content'].split(/(?<!{[^}]+),/);
400
415
  }
401
416
  return resolvedConfig;
402
417
  }
@@ -463,8 +478,7 @@ async function build() {
463
478
  // Try to load a local `autoprefixer` version first
464
479
  try {
465
480
  return require('autoprefixer');
466
- } catch {
467
- }
481
+ } catch {}
468
482
  return (0, _indexJs).lazyAutoprefixer();
469
483
  })(),
470
484
  args['--minify'] && (()=>{
@@ -479,8 +493,7 @@ async function build() {
479
493
  // Try to load a local `cssnano` version first
480
494
  try {
481
495
  return require('cssnano');
482
- } catch {
483
- }
496
+ } catch {}
484
497
  return (0, _indexJs).lazyCssnano()(options);
485
498
  })(),
486
499
  ].filter(Boolean);
@@ -499,10 +512,8 @@ async function build() {
499
512
  return process.stdout.write(result.css);
500
513
  }
501
514
  return Promise.all([
502
- _fs.default.promises.writeFile(output, result.css, ()=>true
503
- ),
504
- result.map && _fs.default.writeFile(output + '.map', result.map.toString(), ()=>true
505
- ),
515
+ outputFile(output, result.css),
516
+ result.map && outputFile(output + '.map', result.map.toString()),
506
517
  ].filter(Boolean));
507
518
  }).then(()=>{
508
519
  let end = process.hrtime.bigint();
@@ -510,8 +521,19 @@ async function build() {
510
521
  console.error('Done in', (end - start) / BigInt(1000000) + 'ms.');
511
522
  });
512
523
  }
513
- let css = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
514
- return processCSS(css);
524
+ let css1 = await (()=>{
525
+ // Piping in data, let's drain the stdin
526
+ if (input === '-') {
527
+ return drainStdin();
528
+ }
529
+ // Input file has been provided
530
+ if (input) {
531
+ return _fs.default.readFileSync(_path.default.resolve(input), 'utf8');
532
+ }
533
+ // No input file provided, fallback to default atrules
534
+ return '@tailwind base; @tailwind components; @tailwind utilities';
535
+ })();
536
+ return processCSS(css1);
515
537
  }
516
538
  let context = null;
517
539
  async function startWatcher() {
@@ -521,8 +543,8 @@ async function build() {
521
543
  let watcher = null;
522
544
  function refreshConfig() {
523
545
  env.DEBUG && console.time('Module dependencies');
524
- for (let file of configDependencies){
525
- delete require.cache[require.resolve(file)];
546
+ for (let file1 of configDependencies){
547
+ delete require.cache[require.resolve(file1)];
526
548
  }
527
549
  if (configPath) {
528
550
  configDependencies = (0, _getModuleDependencies).default(configPath).map(({ file })=>file
@@ -547,8 +569,7 @@ async function build() {
547
569
  // Try to load a local `autoprefixer` version first
548
570
  try {
549
571
  return require('autoprefixer');
550
- } catch {
551
- }
572
+ } catch {}
552
573
  return (0, _indexJs).lazyAutoprefixer();
553
574
  })(),
554
575
  args['--minify'] && (()=>{
@@ -563,8 +584,7 @@ async function build() {
563
584
  // Try to load a local `cssnano` version first
564
585
  try {
565
586
  return require('cssnano');
566
- } catch {
567
- }
587
+ } catch {}
568
588
  return (0, _indexJs).lazyCssnano()(options);
569
589
  })(),
570
590
  ].filter(Boolean);
@@ -619,11 +639,9 @@ async function build() {
619
639
  if (!output) {
620
640
  return process.stdout.write(result.css);
621
641
  }
622
- await Promise.all([
623
- _fs.default.promises.writeFile(output, result.css, ()=>true
624
- ),
625
- result.map && _fs.default.writeFile(output + '.map', result.map.toString(), ()=>true
626
- ),
642
+ return Promise.all([
643
+ outputFile(output, result.css),
644
+ result.map && outputFile(output + '.map', result.map.toString()),
627
645
  ].filter(Boolean));
628
646
  }).then(()=>{
629
647
  let end = process.hrtime.bigint();
@@ -636,36 +654,51 @@ async function build() {
636
654
  }
637
655
  });
638
656
  }
639
- let css = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
640
- let result1 = await processCSS(css);
657
+ let css2 = await (()=>{
658
+ // Piping in data, let's drain the stdin
659
+ if (input === '-') {
660
+ return drainStdin();
661
+ }
662
+ // Input file has been provided
663
+ if (input) {
664
+ return _fs.default.readFileSync(_path.default.resolve(input), 'utf8');
665
+ }
666
+ // No input file provided, fallback to default atrules
667
+ return '@tailwind base; @tailwind components; @tailwind utilities';
668
+ })();
669
+ let result1 = await processCSS(css2);
641
670
  env.DEBUG && console.timeEnd('Finished in');
642
671
  return result1;
643
672
  }
644
- let config = refreshConfig(configPath);
673
+ let config1 = refreshConfig(configPath);
645
674
  if (input) {
646
675
  contextDependencies.add(_path.default.resolve(input));
647
676
  }
648
677
  watcher = _chokidar.default.watch([
649
678
  ...contextDependencies,
650
- ...extractFileGlobs(config)
679
+ ...extractFileGlobs(config1)
651
680
  ], {
652
- ignoreInitial: true
681
+ ignoreInitial: true,
682
+ awaitWriteFinish: process.platform === 'win32' ? {
683
+ stabilityThreshold: 50,
684
+ pollInterval: 10
685
+ } : false
653
686
  });
654
687
  let chain = Promise.resolve();
655
688
  watcher.on('change', async (file)=>{
656
689
  if (contextDependencies.has(file)) {
657
690
  env.DEBUG && console.time('Resolve config');
658
691
  context = null;
659
- config = refreshConfig(configPath);
692
+ config1 = refreshConfig(configPath);
660
693
  env.DEBUG && console.timeEnd('Resolve config');
661
694
  env.DEBUG && console.time('Watch new files');
662
- let globs = extractFileGlobs(config);
695
+ let globs = extractFileGlobs(config1);
663
696
  watcher.add(configDependencies);
664
697
  watcher.add(globs);
665
698
  env.DEBUG && console.timeEnd('Watch new files');
666
699
  chain = chain.then(async ()=>{
667
- changedContent.push(...getChangedContent(config));
668
- await rebuild(config);
700
+ changedContent.push(...getChangedContent(config1));
701
+ await rebuild(config1);
669
702
  });
670
703
  } else {
671
704
  chain = chain.then(async ()=>{
@@ -673,7 +706,7 @@ async function build() {
673
706
  content: _fs.default.readFileSync(_path.default.resolve(file), 'utf8'),
674
707
  extension: _path.default.extname(file).slice(1)
675
708
  });
676
- await rebuild(config);
709
+ await rebuild(config1);
677
710
  });
678
711
  }
679
712
  });
@@ -683,12 +716,12 @@ async function build() {
683
716
  content: _fs.default.readFileSync(_path.default.resolve(file), 'utf8'),
684
717
  extension: _path.default.extname(file).slice(1)
685
718
  });
686
- await rebuild(config);
719
+ await rebuild(config1);
687
720
  });
688
721
  });
689
722
  chain = chain.then(()=>{
690
- changedContent.push(...getChangedContent(config));
691
- return rebuild(config);
723
+ changedContent.push(...getChangedContent(config1));
724
+ return rebuild(config1);
692
725
  });
693
726
  }
694
727
  if (shouldWatch) {
package/lib/constants.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.simpleConfigStubFile = exports.defaultPostCssConfigFile = exports.defaultConfigStubFile = exports.supportedPostCssConfigFile = exports.cjsConfigFile = exports.supportedConfigFiles = exports.defaultPostCssConfigStubFile = exports.cli = exports.cjsPostCssConfigFile = exports.defaultConfigFile = void 0;
5
+ exports.defaultPostCssConfigStubFile = exports.simpleConfigStubFile = exports.defaultConfigStubFile = exports.supportedPostCssConfigFile = exports.supportedConfigFiles = exports.cjsPostCssConfigFile = exports.cjsConfigFile = exports.defaultPostCssConfigFile = exports.defaultConfigFile = exports.cli = void 0;
6
6
  var _path = _interopRequireDefault(require("path"));
7
7
  function _interopRequireDefault(obj) {
8
8
  return obj && obj.__esModule ? obj : {
@@ -126,6 +126,9 @@ var _default = [
126
126
  "textOpacity",
127
127
  "textDecoration",
128
128
  "textDecorationColor",
129
+ "textDecorationStyle",
130
+ "textDecorationThickness",
131
+ "textUnderlineOffset",
129
132
  "fontSmoothing",
130
133
  "placeholderColor",
131
134
  "placeholderOpacity",
@@ -135,7 +138,11 @@ var _default = [
135
138
  "backgroundBlendMode",
136
139
  "mixBlendMode",
137
140
  "boxShadow",
138
- "outline",
141
+ "boxShadowColor",
142
+ "outlineStyle",
143
+ "outlineWidth",
144
+ "outlineOffset",
145
+ "outlineColor",
139
146
  "ringWidth",
140
147
  "ringColor",
141
148
  "ringOpacity",