stillwind 0.0.0 → 0.1.0-rc.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.
Files changed (305) hide show
  1. package/AGENTS_TEMPLATE.md +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +166 -0
  4. package/TAILWINDCSS-MIT-LICENSE +21 -0
  5. package/css/builtin-metadata/sw-motion-properties.css +186 -0
  6. package/css/builtin-metadata/tw-legacy-metadata.css +36 -0
  7. package/css/builtin-metadata/tw-properties.css +944 -0
  8. package/css/builtin-metadata/tw-registry-metadata.css +52 -0
  9. package/css/builtin-metadata/tw-relationship-metadata.css +10 -0
  10. package/css/builtin-utilities/sw-motion-contexts.css +1043 -0
  11. package/css/builtin-utilities/tw-backgrounds.css +606 -0
  12. package/css/builtin-utilities/tw-borders.css +954 -0
  13. package/css/builtin-utilities/tw-effects.css +1209 -0
  14. package/css/builtin-utilities/tw-flex-grid.css +749 -0
  15. package/css/builtin-utilities/tw-interactivity.css +680 -0
  16. package/css/builtin-utilities/tw-layout.css +943 -0
  17. package/css/builtin-utilities/tw-masks.css +1268 -0
  18. package/css/builtin-utilities/tw-motion.css +142 -0
  19. package/css/builtin-utilities/tw-spacing-sizing.css +621 -0
  20. package/css/builtin-utilities/tw-svg.css +50 -0
  21. package/css/builtin-utilities/tw-transforms.css +652 -0
  22. package/css/builtin-utilities/tw-typography.css +720 -0
  23. package/css/builtin-variants/sw-conditional.css +5 -0
  24. package/css/builtin-variants/sw-document.css +13 -0
  25. package/css/builtin-variants/tw-conditional.css +187 -0
  26. package/css/builtin-variants/tw-dynamic-selector.css +49 -0
  27. package/css/builtin-variants/tw-relationship.css +41 -0
  28. package/css/builtin-variants/tw-state.css +159 -0
  29. package/css/builtin-variants/tw-structural.css +121 -0
  30. package/css/builtins.css +111 -0
  31. package/css/preflight.css +401 -0
  32. package/css/templates.css +40 -0
  33. package/css/theme.css +546 -0
  34. package/css/utilities.css +9 -0
  35. package/dist/class-object-D24FFYqO.js +6 -0
  36. package/dist/class-object-D24FFYqO.js.map +1 -0
  37. package/dist/class-object-D7ZGJOf_.d.ts +9 -0
  38. package/dist/class-string-CQHnc9GN.d.ts +9 -0
  39. package/dist/class-string-Db8-oI4q.js +6 -0
  40. package/dist/class-string-Db8-oI4q.js.map +1 -0
  41. package/dist/config.d.ts +1 -0
  42. package/dist/config.js +2 -0
  43. package/dist/css.d.ts +100 -0
  44. package/dist/css.js +143 -0
  45. package/dist/css.js.map +1 -0
  46. package/dist/cva-BwX07CFw.js +204 -0
  47. package/dist/cva-BwX07CFw.js.map +1 -0
  48. package/dist/cva-DSpDNBYi.d.ts +9 -0
  49. package/dist/development-DttPQc71.d.ts +27 -0
  50. package/dist/development-J-JCSIm0.js +111 -0
  51. package/dist/development-J-JCSIm0.js.map +1 -0
  52. package/dist/frameworks/alpine.d.ts +20 -0
  53. package/dist/frameworks/alpine.js +18 -0
  54. package/dist/frameworks/alpine.js.map +1 -0
  55. package/dist/frameworks/astro.d.ts +3 -0
  56. package/dist/frameworks/astro.js +1 -0
  57. package/dist/frameworks/lit.d.ts +21 -0
  58. package/dist/frameworks/lit.js +38 -0
  59. package/dist/frameworks/lit.js.map +1 -0
  60. package/dist/frameworks/preact.d.ts +3 -0
  61. package/dist/frameworks/preact.js +1 -0
  62. package/dist/frameworks/qwik.d.ts +3 -0
  63. package/dist/frameworks/qwik.js +1 -0
  64. package/dist/frameworks/react.d.ts +10 -0
  65. package/dist/frameworks/react.js +6 -0
  66. package/dist/frameworks/react.js.map +1 -0
  67. package/dist/frameworks/solid.d.ts +3 -0
  68. package/dist/frameworks/solid.js +1 -0
  69. package/dist/frameworks/svelte.d.ts +3 -0
  70. package/dist/frameworks/svelte.js +1 -0
  71. package/dist/frameworks/vanilla.d.ts +27 -0
  72. package/dist/frameworks/vanilla.js +3 -0
  73. package/dist/frameworks/vue.d.ts +3 -0
  74. package/dist/frameworks/vue.js +1 -0
  75. package/dist/index-RwVFpxhE.d.ts +815 -0
  76. package/dist/macro/index.d.ts +2 -0
  77. package/dist/macro/index.js +1 -0
  78. package/dist/module-css.d.ts +30 -0
  79. package/dist/module-css.js +23 -0
  80. package/dist/module-css.js.map +1 -0
  81. package/dist/runtime/class-name-object-development.d.ts +10 -0
  82. package/dist/runtime/class-name-object-development.js +18 -0
  83. package/dist/runtime/class-name-object-development.js.map +1 -0
  84. package/dist/runtime/class-name-object.d.ts +16 -0
  85. package/dist/runtime/class-name-object.js +31 -0
  86. package/dist/runtime/class-name-object.js.map +1 -0
  87. package/dist/runtime/class-object-development.d.ts +10 -0
  88. package/dist/runtime/class-object-development.js +18 -0
  89. package/dist/runtime/class-object-development.js.map +1 -0
  90. package/dist/runtime/class-object.d.ts +16 -0
  91. package/dist/runtime/class-object.js +31 -0
  92. package/dist/runtime/class-object.js.map +1 -0
  93. package/dist/runtime/class-string-development.d.ts +10 -0
  94. package/dist/runtime/class-string-development.js +18 -0
  95. package/dist/runtime/class-string-development.js.map +1 -0
  96. package/dist/runtime/class-string.d.ts +16 -0
  97. package/dist/runtime/class-string.js +31 -0
  98. package/dist/runtime/class-string.js.map +1 -0
  99. package/dist/shared-B9IQXU6P.d.ts +32 -0
  100. package/dist/style-BV4ctkni.js +78 -0
  101. package/dist/style-BV4ctkni.js.map +1 -0
  102. package/dist/style-fTQbsVWZ.js +41 -0
  103. package/dist/style-fTQbsVWZ.js.map +1 -0
  104. package/docs/agents.md +76 -0
  105. package/docs/at-rules/apply.md +93 -0
  106. package/docs/at-rules/custom-variant.md +127 -0
  107. package/docs/at-rules/index.md +75 -0
  108. package/docs/at-rules/plugin.md +71 -0
  109. package/docs/at-rules/registry-directives.md +181 -0
  110. package/docs/at-rules/slot.md +58 -0
  111. package/docs/at-rules/stillwind-css-template.md +126 -0
  112. package/docs/at-rules/stillwind-property.md +133 -0
  113. package/docs/at-rules/stillwind-registry.md +115 -0
  114. package/docs/at-rules/stillwind-require-properties.md +91 -0
  115. package/docs/at-rules/stillwind-slot.md +85 -0
  116. package/docs/at-rules/stillwind-undef-arbitrary-property.md +75 -0
  117. package/docs/at-rules/stillwind-undef-utility.md +87 -0
  118. package/docs/at-rules/stillwind-undef-variant.md +55 -0
  119. package/docs/at-rules/theme.md +304 -0
  120. package/docs/at-rules/utility.md +286 -0
  121. package/docs/at-rules/variant.md +91 -0
  122. package/docs/concepts/css-ordering.md +245 -0
  123. package/docs/concepts/how-styles-compile.md +132 -0
  124. package/docs/configuration.md +298 -0
  125. package/docs/errors/SW01001.md +51 -0
  126. package/docs/errors/SW01002.md +52 -0
  127. package/docs/errors/SW01003.md +69 -0
  128. package/docs/errors/SW02001.md +23 -0
  129. package/docs/errors/SW02002.md +51 -0
  130. package/docs/errors/SW03001.md +71 -0
  131. package/docs/errors/SW03002.md +79 -0
  132. package/docs/errors/SW03003.md +36 -0
  133. package/docs/errors/SW10001.md +34 -0
  134. package/docs/errors/SW10002.md +36 -0
  135. package/docs/errors/SW10003.md +30 -0
  136. package/docs/errors/SW10004.md +39 -0
  137. package/docs/errors/SW10005.md +35 -0
  138. package/docs/errors/SW11001.md +37 -0
  139. package/docs/errors/SW11002.md +65 -0
  140. package/docs/errors/SW11003.md +20 -0
  141. package/docs/errors/SW12001.md +43 -0
  142. package/docs/errors/SW12002.md +42 -0
  143. package/docs/errors/SW13001.md +35 -0
  144. package/docs/errors/SW13002.md +33 -0
  145. package/docs/errors/SW13003.md +18 -0
  146. package/docs/errors/SW13004.md +45 -0
  147. package/docs/errors/SW14001.md +44 -0
  148. package/docs/errors/SW14002.md +47 -0
  149. package/docs/errors/SW14003.md +38 -0
  150. package/docs/errors/SW14004.md +48 -0
  151. package/docs/errors/SW14005.md +51 -0
  152. package/docs/errors/SW14006.md +19 -0
  153. package/docs/errors/SW14007.md +35 -0
  154. package/docs/errors/SW14008.md +41 -0
  155. package/docs/errors/SW15001.md +18 -0
  156. package/docs/errors/SW15002.md +19 -0
  157. package/docs/errors/SW15003.md +16 -0
  158. package/docs/errors/SW30001.md +21 -0
  159. package/docs/errors/SW30002.md +18 -0
  160. package/docs/errors/SW30003.md +17 -0
  161. package/docs/errors/SW30004.md +18 -0
  162. package/docs/errors/SW31001.md +20 -0
  163. package/docs/errors/SW31002.md +17 -0
  164. package/docs/errors/SW31003.md +18 -0
  165. package/docs/errors/SW31004.md +20 -0
  166. package/docs/errors/SW31005.md +18 -0
  167. package/docs/errors/SW31006.md +17 -0
  168. package/docs/errors/SW31007.md +18 -0
  169. package/docs/errors/SW31008.md +16 -0
  170. package/docs/errors/SW31009.md +18 -0
  171. package/docs/errors/SW31010.md +16 -0
  172. package/docs/errors/SW31011.md +17 -0
  173. package/docs/errors/SW32001.md +18 -0
  174. package/docs/errors/SW32002.md +45 -0
  175. package/docs/errors/SW32003.md +43 -0
  176. package/docs/errors/SW32004.md +17 -0
  177. package/docs/errors/SW32005.md +40 -0
  178. package/docs/errors/SW32006.md +18 -0
  179. package/docs/errors/SW32007.md +20 -0
  180. package/docs/errors/SW33001.md +17 -0
  181. package/docs/errors/SW33002.md +17 -0
  182. package/docs/errors/SW33003.md +17 -0
  183. package/docs/errors/SW33004.md +17 -0
  184. package/docs/errors/SW33005.md +20 -0
  185. package/docs/errors/SW34001.md +18 -0
  186. package/docs/errors/SW34002.md +17 -0
  187. package/docs/errors/SW34003.md +18 -0
  188. package/docs/errors/SW90001.md +17 -0
  189. package/docs/errors/SW90002.md +18 -0
  190. package/docs/errors/SW90003.md +17 -0
  191. package/docs/errors/SW90004.md +17 -0
  192. package/docs/errors/SW90005.md +16 -0
  193. package/docs/errors/SW90006.md +17 -0
  194. package/docs/errors/SW90007.md +17 -0
  195. package/docs/errors/SW90008.md +17 -0
  196. package/docs/errors/index.md +125 -0
  197. package/docs/guides/animations.md +73 -0
  198. package/docs/guides/design-systems.md +119 -0
  199. package/docs/guides/element-relationships.md +136 -0
  200. package/docs/guides/lint-adoption.md +128 -0
  201. package/docs/guides/migrating-from-css.md +126 -0
  202. package/docs/guides/migrating-from-tailwind.md +179 -0
  203. package/docs/guides/recommended-practices.md +338 -0
  204. package/docs/guides/responsive-styles.md +103 -0
  205. package/docs/guides/reusable-styles.md +110 -0
  206. package/docs/guides/style.md +181 -0
  207. package/docs/guides/tailwind-compatibility.md +126 -0
  208. package/docs/guides/view-transitions.md +84 -0
  209. package/docs/guides/web-components.md +216 -0
  210. package/docs/index.md +136 -0
  211. package/docs/integrations.md +190 -0
  212. package/docs/lints/ambiguous-style-base-order.md +50 -0
  213. package/docs/lints/bypassed-undefinition.md +50 -0
  214. package/docs/lints/clamped-value.md +44 -0
  215. package/docs/lints/conflicting-provider-properties.md +47 -0
  216. package/docs/lints/conflicting-utilities.md +55 -0
  217. package/docs/lints/document-scoped-selector.md +45 -0
  218. package/docs/lints/duplicate-definition.md +44 -0
  219. package/docs/lints/duplicate-utility.md +44 -0
  220. package/docs/lints/duplicate-view-transition-name.md +45 -0
  221. package/docs/lints/ignored-definition-condition.md +51 -0
  222. package/docs/lints/ignored-tailwind-feature.md +62 -0
  223. package/docs/lints/incompatible-property-value.md +60 -0
  224. package/docs/lints/incompatible-theme-value.md +46 -0
  225. package/docs/lints/index.md +140 -0
  226. package/docs/lints/ineffective-anchor-scope.md +46 -0
  227. package/docs/lints/interfering-imported-style-base.md +57 -0
  228. package/docs/lints/invalid-animation-option.md +47 -0
  229. package/docs/lints/invalid-css-directive.md +43 -0
  230. package/docs/lints/invalid-css-import.md +43 -0
  231. package/docs/lints/invalid-css-input.md +45 -0
  232. package/docs/lints/invalid-cva-config.md +46 -0
  233. package/docs/lints/invalid-cva-input.md +50 -0
  234. package/docs/lints/invalid-keyframes-definition.md +47 -0
  235. package/docs/lints/invalid-keyframes-use.md +47 -0
  236. package/docs/lints/invalid-keyframes-variant.md +48 -0
  237. package/docs/lints/invalid-lint-suppression.md +47 -0
  238. package/docs/lints/invalid-marker-use.md +53 -0
  239. package/docs/lints/invalid-media-query.md +52 -0
  240. package/docs/lints/invalid-ref-input.md +49 -0
  241. package/docs/lints/invalid-rule-group-input.md +58 -0
  242. package/docs/lints/invalid-runtime-condition.md +67 -0
  243. package/docs/lints/invalid-style-composition.md +52 -0
  244. package/docs/lints/invalid-style-input.md +47 -0
  245. package/docs/lints/invalid-theme-reference.md +52 -0
  246. package/docs/lints/invalid-utility.md +44 -0
  247. package/docs/lints/invalid-variant.md +45 -0
  248. package/docs/lints/invalid-view-transition-definition.md +46 -0
  249. package/docs/lints/invalid-view-transition-use.md +46 -0
  250. package/docs/lints/invalid-view-transition-variant.md +51 -0
  251. package/docs/lints/mismatched-framework-import.md +47 -0
  252. package/docs/lints/missing-document-target.md +44 -0
  253. package/docs/lints/missing-ref-attachment.md +44 -0
  254. package/docs/lints/missing-view-transition-name.md +46 -0
  255. package/docs/lints/mutating-macro-argument.md +48 -0
  256. package/docs/lints/no-arbitrary-breakpoints.md +50 -0
  257. package/docs/lints/no-arbitrary-colors.md +51 -0
  258. package/docs/lints/no-arbitrary-spacing.md +57 -0
  259. package/docs/lints/no-class-property.md +58 -0
  260. package/docs/lints/no-important.md +50 -0
  261. package/docs/lints/no-restricted-declarations.md +76 -0
  262. package/docs/lints/no-restricted-length-units.md +73 -0
  263. package/docs/lints/no-restricted-theme-tokens.md +73 -0
  264. package/docs/lints/no-restricted-utilities.md +73 -0
  265. package/docs/lints/prefer-canonical-utilities.md +69 -0
  266. package/docs/lints/prefer-direct-styling.md +47 -0
  267. package/docs/lints/prefer-explicit-nesting-selector.md +42 -0
  268. package/docs/lints/prefer-logical-properties.md +49 -0
  269. package/docs/lints/prefer-sorted-utilities.md +46 -0
  270. package/docs/lints/prefer-typed-relationships.md +48 -0
  271. package/docs/lints/prefer-typed-variables.md +43 -0
  272. package/docs/lints/prefer-variant-directive.md +59 -0
  273. package/docs/lints/redundant-variant.md +50 -0
  274. package/docs/lints/repeated-nesting-selector.md +59 -0
  275. package/docs/lints/runtime-condition-requires-css-if.md +59 -0
  276. package/docs/lints/split-view-transition-class.md +47 -0
  277. package/docs/lints/suspending-macro-argument.md +46 -0
  278. package/docs/lints/unknown-utility.md +47 -0
  279. package/docs/lints/unknown-variant.md +42 -0
  280. package/docs/lints/unsatisfiable-variants.md +42 -0
  281. package/docs/lints/unused-lint-suppression.md +57 -0
  282. package/docs/lints/unverified-style-base.md +64 -0
  283. package/docs/macros/anchor-scope.md +90 -0
  284. package/docs/macros/css.md +68 -0
  285. package/docs/macros/cva.md +153 -0
  286. package/docs/macros/index.md +30 -0
  287. package/docs/macros/keyframes.md +98 -0
  288. package/docs/macros/media.md +65 -0
  289. package/docs/macros/ref/as-anchor.md +70 -0
  290. package/docs/macros/ref/as-container.md +64 -0
  291. package/docs/macros/ref/at.md +68 -0
  292. package/docs/macros/ref/condition.md +86 -0
  293. package/docs/macros/ref/in.md +81 -0
  294. package/docs/macros/ref/index.md +115 -0
  295. package/docs/macros/ref/position-anchor.md +64 -0
  296. package/docs/macros/style.md +185 -0
  297. package/docs/macros/view-transition.md +159 -0
  298. package/docs/utilities.md +35 -0
  299. package/docs/why.md +144 -0
  300. package/index.css +7 -0
  301. package/package.json +135 -8
  302. package/skills/migrate-to-stillwind/SKILL.md +81 -0
  303. package/skills/setup-stillwind/SKILL.md +51 -0
  304. package/skills/stillwind/SKILL.md +54 -0
  305. package/index.js +0 -1
@@ -0,0 +1,71 @@
1
+ ---
2
+ title: "SW03001: Generated identifier collision"
3
+ description: "Two different styles would receive the same generated name."
4
+ ---
5
+
6
+ # SW03001: Generated identifier collision
7
+
8
+ This error occurs when two different styles, refs, or animations would receive
9
+ the same generated name. The usual cause is a custom `naming` function that
10
+ returns the same name for different requests. A very short `hashLength` can also
11
+ cause it.
12
+
13
+ ## Reported
14
+
15
+ **stillwind.config.ts**
16
+
17
+ ```ts
18
+ import { defineConfig } from "stillwind/config";
19
+
20
+ export default defineConfig({
21
+ projects: [
22
+ {
23
+ css: "./src/stillwind.css",
24
+ files: ["src/**/*.tsx"],
25
+ namingRevision: "1",
26
+ naming: {
27
+ utilityClass: () => "button",
28
+ },
29
+ },
30
+ ],
31
+ });
32
+ ```
33
+
34
+ ```tsx
35
+ style("p-4");
36
+ style("p-8");
37
+ ```
38
+
39
+ > SW03001: generated identifier collision: button
40
+
41
+ ## Fixed
42
+
43
+ ```ts title="stillwind.config.ts"
44
+ import { defineConfig } from "stillwind/config";
45
+
46
+ export default defineConfig({
47
+ projects: [
48
+ {
49
+ css: "./src/stillwind.css",
50
+ files: ["src/**/*.tsx"],
51
+ namingRevision: "2",
52
+ naming: {
53
+ utilityClass: (_context, hash) => `button_${hash.toString("hex")}`,
54
+ },
55
+ },
56
+ ],
57
+ });
58
+ ```
59
+
60
+ ```tsx
61
+ style("p-4");
62
+ style("p-8");
63
+ ```
64
+
65
+ ## How to fix
66
+
67
+ - Include the hash passed as the callback's second argument in the name, as in
68
+ the example. This keeps the `button` prefix while distinguishing requests.
69
+ Return `null` to use the default name for a request.
70
+ - If you use the default names, raise `hashLength`.
71
+ - Change `namingRevision` whenever you change a `naming` function.
@@ -0,0 +1,79 @@
1
+ ---
2
+ title: "SW03002: Identifier generator failed"
3
+ description: "A custom naming function threw an error or returned an invalid name."
4
+ ---
5
+
6
+ # SW03002: Identifier generator failed
7
+
8
+ This error occurs when a custom `naming` function fails while it generates a
9
+ name. The message shows which kind of name it was generating and the error from
10
+ the function. The compiler does not invent a name in its place.
11
+
12
+ ## Reported
13
+
14
+ **stillwind.config.ts**
15
+
16
+ ```ts
17
+ import { defineConfig } from "stillwind/config";
18
+
19
+ export default defineConfig({
20
+ projects: [
21
+ {
22
+ css: "./src/stillwind.css",
23
+ files: ["src/**/*.tsx"],
24
+ namingRevision: "1",
25
+ naming: {
26
+ utilityClass(context, hash) {
27
+ if (!context.module.endsWith("Button.tsx")) {
28
+ throw new Error("Only Button.tsx is supported");
29
+ }
30
+ return `button_${hash.toString("hex")}`;
31
+ },
32
+ },
33
+ },
34
+ ],
35
+ });
36
+ ```
37
+
38
+ ```tsx
39
+ style("p-4");
40
+ ```
41
+
42
+ > SW03002: identifier generation failed for class: Error: Only Button.tsx is supported
43
+
44
+ ## Fixed
45
+
46
+ ```ts title="stillwind.config.ts"
47
+ import { defineConfig } from "stillwind/config";
48
+
49
+ export default defineConfig({
50
+ projects: [
51
+ {
52
+ css: "./src/stillwind.css",
53
+ files: ["src/**/*.tsx"],
54
+ namingRevision: "2",
55
+ naming: {
56
+ utilityClass(context, hash) {
57
+ if (!context.module.endsWith("Button.tsx")) {
58
+ return null;
59
+ }
60
+ return `button_${hash.toString("hex")}`;
61
+ },
62
+ },
63
+ },
64
+ ],
65
+ });
66
+ ```
67
+
68
+ ```tsx
69
+ style("p-4");
70
+ ```
71
+
72
+ The custom name still applies to `Button.tsx`. Other modules use default names.
73
+
74
+ ## How to fix
75
+
76
+ - Reproduce the request from the message, and fix the function so that it returns
77
+ a name or `null` to keep the default name.
78
+ - Keep the function pure: the same request must always produce the same name.
79
+ - Change `namingRevision` whenever you change the function.
@@ -0,0 +1,36 @@
1
+ ---
2
+ title: "SW03003: Theme variable collision"
3
+ description: "A theme variable takes the name of a custom property that Stillwind uses internally after themePrefix applies."
4
+ ---
5
+
6
+ # SW03003: Theme variable collision
7
+
8
+ This error occurs when `themePrefix` gives a theme variable the same name as a
9
+ custom property that Stillwind registers for its utilities. The two values would
10
+ replace each other, so the utilities that use them would break.
11
+
12
+ ## Reported
13
+
14
+ With `themePrefix: "--tw-"`, the token below becomes `--tw-blur`. The `blur`
15
+ utility already uses that property for its own value.
16
+
17
+ ```css
18
+ @theme {
19
+ --blur: 3px;
20
+ }
21
+ ```
22
+
23
+ ## Fixed
24
+
25
+ ```css
26
+ @theme {
27
+ --blur-card: 3px;
28
+ }
29
+ ```
30
+
31
+ ## How to fix
32
+
33
+ - Rename the token so that its output name is free, as in the example.
34
+ - Or set `tailwindPrefix` to another value, so that the internal properties
35
+ move out of the theme prefix. Plugins that write `--tw-` directly can stop
36
+ working when the two prefixes differ, so test them.
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: "SW10001: JavaScript parse error"
3
+ description: "The JavaScript or TypeScript of a file has a syntax error."
4
+ ---
5
+
6
+ # SW10001: JavaScript parse error
7
+
8
+ This error occurs when the compiler cannot parse the JavaScript or TypeScript of
9
+ a file. The message shows the location and the explanation from the parser.
10
+
11
+ ## Reported
12
+
13
+ ```tsx
14
+ export const props = style("p-4";
15
+ ```
16
+
17
+ > SW10001: JavaScript parse error
18
+ >
19
+ > Expected `,` or `)` but found `;`
20
+
21
+ ## Fixed
22
+
23
+ ```tsx
24
+ export const props = style("p-4");
25
+ ```
26
+
27
+ ## How to fix
28
+
29
+ - Fix the syntax at the location in the message, as in the example.
30
+ - If the file parses in your editor, check that the integration treats it as the
31
+ right language, such as TypeScript with JSX for a `.tsx` file.
32
+
33
+ Errors in code that a Vue, Svelte, or Astro converter generated are reported as
34
+ [SW31004](SW31004.md) instead.
@@ -0,0 +1,36 @@
1
+ ---
2
+ title: "SW10002: Invalid component syntax"
3
+ description: "A Vue, Svelte, or Astro component has a syntax error."
4
+ ---
5
+
6
+ # SW10002: Invalid component syntax
7
+
8
+ This error occurs when the parser of the framework cannot read a Vue, Svelte, or
9
+ Astro component. The message shows the location and the explanation from that
10
+ parser.
11
+
12
+ ## Reported
13
+
14
+ ```html
15
+ <template><button></template>
16
+ ```
17
+
18
+ > SW10002: invalid component syntax: SyntaxError: Element is missing end tag.
19
+ >
20
+ > Source format: Vue
21
+ >
22
+ > Converter: @vue/language-core@3.3.13
23
+
24
+ ## Fixed
25
+
26
+ ```html
27
+ <template><button></button></template>
28
+ ```
29
+
30
+ ## How to fix
31
+
32
+ Fix the syntax at the location in the message, as in the example, where the
33
+ `<button>` element was not closed.
34
+
35
+ If the component is valid but its converted script is not, the error is
36
+ [SW31004](SW31004.md) instead.
@@ -0,0 +1,30 @@
1
+ ---
2
+ title: "SW10003: Invalid Unicode string"
3
+ description: "A string used to generate CSS or resolve a module contains a lone Unicode surrogate."
4
+ ---
5
+
6
+ # SW10003: Invalid Unicode string
7
+
8
+ This error occurs when a static string contains an unpaired UTF-16 surrogate.
9
+ Stillwind requires well-formed Unicode in strings that it compiles, including
10
+ utility strings, declaration labels, and module specifiers.
11
+
12
+ ## Reported
13
+
14
+ ```tsx
15
+ export const props = style("content-['\uD800']");
16
+ ```
17
+
18
+ > SW10003: string contains invalid Unicode
19
+
20
+ ## Fixed
21
+
22
+ ```tsx
23
+ export const props = style("content-['\u{1F600}']");
24
+ ```
25
+
26
+ ## How to fix
27
+
28
+ Complete the surrogate pair, use a valid code point with `\u{...}`, or remove the
29
+ invalid escape. Strings that Stillwind leaves for runtime evaluation can still
30
+ contain lone surrogates.
@@ -0,0 +1,39 @@
1
+ ---
2
+ title: "SW10004: Unconsumed macro use"
3
+ description: "A ref method, ref condition, or animation call is stored or passed somewhere other than directly in style()."
4
+ ---
5
+
6
+ # SW10004: Unconsumed macro use
7
+
8
+ Some calls have no value of their own. The compiler turns them into CSS at the
9
+ place where `style()` uses them. This error occurs when such a call is stored in
10
+ a variable or passed to another function instead.
11
+
12
+ ## Reported
13
+
14
+ ```tsx
15
+ const card = style.ref("card");
16
+ const container = card.asContainer("inline-size");
17
+ ```
18
+
19
+ > SW10004: asContainer(...) must be consumed at its supported input position within style(); it cannot be materialized independently
20
+
21
+ ## Fixed
22
+
23
+ ```tsx
24
+ const card = style.ref("card");
25
+ const props = style(card, card.asContainer("inline-size"));
26
+ ```
27
+
28
+ ## How to fix
29
+
30
+ Write the call directly where `style()` uses it:
31
+
32
+ | Call | Where to write it |
33
+ | --------------------------------------------------------------------------------------- | ------------------------------------- |
34
+ | `card.asContainer()`, `card.asAnchor()`, `card.positionAnchor()`, `style.anchorScope()` | An argument of `style()` |
35
+ | An animation such as `fade("duration-300")`, and `transition.for(key)` | An argument of `style()` |
36
+ | `card()`, `card("hover")`, `.in()`, and `card.at()` | A computed key, or a utility template |
37
+
38
+ You can still store and pass the definitions themselves, such as the result of
39
+ `style.ref()` or `style.keyframes()`, and the result of `style()`.
@@ -0,0 +1,35 @@
1
+ ---
2
+ title: "SW10005: Untransformed macro reference"
3
+ description: "The style function is used as a value instead of being called."
4
+ ---
5
+
6
+ # SW10005: Untransformed macro reference
7
+
8
+ This error occurs when the code uses `style` or another macro as a value, such as
9
+ by storing it in a variable or passing it to a function. The compiler replaces
10
+ macro calls at build time and removes the import, so the function does not exist
11
+ at runtime.
12
+
13
+ ## Reported
14
+
15
+ ```tsx
16
+ import { style } from "stillwind/react";
17
+
18
+ const macro = style;
19
+ macro("p-4");
20
+ ```
21
+
22
+ > SW10005: macro binding `style` has a reference that was not transformed at Span { file: FileId(2147483680), start: BytePos(56), end: BytePos(61) }
23
+
24
+ ## Fixed
25
+
26
+ ```tsx
27
+ import { style as macro } from "stillwind/react";
28
+
29
+ const props = macro("p-4");
30
+ ```
31
+
32
+ ## How to fix
33
+
34
+ - Call `style()` directly, as in the example.
35
+ - To share a style, store and pass the result of `style()`, not the function.
@@ -0,0 +1,37 @@
1
+ ---
2
+ title: "SW11001: Style composition cycle"
3
+ description: "Two styles use each other as a base."
4
+ ---
5
+
6
+ # SW11001: Style composition cycle
7
+
8
+ This error occurs when styles use each other as a base, directly or through other
9
+ styles. The CSS of a base comes before the CSS of the styles built on it, so a
10
+ cycle has no valid order.
11
+
12
+ ## Reported
13
+
14
+ ```tsx
15
+ const first = style(second, "rounded-md");
16
+ const second = style(first, "p-4");
17
+ ```
18
+
19
+ > SW11001: style composition dependency cycle
20
+
21
+ ## Fixed
22
+
23
+ ```tsx
24
+ const base = style("rounded-md p-4");
25
+ const first = style(base);
26
+ const second = style(base);
27
+ ```
28
+
29
+ ## How to fix
30
+
31
+ - If both styles need the same utilities, move those utilities into a third
32
+ base, as in the example.
33
+ - If only one style extends the other, keep that dependency and remove the one
34
+ in the opposite direction.
35
+
36
+ A cycle between whole modules is reported as [SW11002](SW11002.md)
37
+ instead.
@@ -0,0 +1,65 @@
1
+ ---
2
+ title: "SW11002: CSS module ordering cycle"
3
+ description: "Two modules each build styles on a base from the other module."
4
+ ---
5
+
6
+ # SW11002: CSS module ordering cycle
7
+
8
+ This error occurs when two modules each build a style on a base from the other
9
+ module. The CSS of each module must come after the CSS of the modules that it
10
+ builds on, so the two modules have no valid order, even when the individual
11
+ styles do not form a cycle.
12
+
13
+ ## Reported
14
+
15
+ **entry.ts**
16
+
17
+ ```ts
18
+ import { style } from "stillwind/react";
19
+ import { middle } from "./middle";
20
+
21
+ export const base = style("p-4");
22
+ export const derived = style(middle, "rounded-md");
23
+ ```
24
+
25
+ **middle.ts**
26
+
27
+ ```ts
28
+ import { style } from "stillwind/react";
29
+ import { base } from "./entry";
30
+
31
+ export const middle = style(base, "text-blue-600");
32
+ ```
33
+
34
+ > SW11002: style composition requires cyclic CSS module ordering
35
+
36
+ ## Fixed
37
+
38
+ ```ts title="base.ts"
39
+ import { style } from "stillwind/react";
40
+
41
+ export const base = style("p-4");
42
+ ```
43
+
44
+ ```ts title="entry.ts"
45
+ import { style } from "stillwind/react";
46
+ import { middle } from "./middle";
47
+
48
+ export { base } from "./base";
49
+ export const derived = style(middle, "rounded-md");
50
+ ```
51
+
52
+ ```ts title="middle.ts"
53
+ import { style } from "stillwind/react";
54
+ import { base } from "./base";
55
+
56
+ export const middle = style(base, "text-blue-600");
57
+ ```
58
+
59
+ ## How to fix
60
+
61
+ - Move the shared bases into a module that both modules import, as in the
62
+ example.
63
+ - Or put the styles that depend on each other in the same module.
64
+
65
+ Changing the order of the imports does not fix it.
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: "SW11003: Unavailable style base"
3
+ description: "The compiled CSS of a base style is missing from the build."
4
+ ---
5
+
6
+ # SW11003: Unavailable style base
7
+
8
+ This error occurs when a style uses a base whose compiled CSS is not part of the
9
+ build. The compiler must place the CSS of the base before the style, so it cannot
10
+ continue without it.
11
+
12
+ ## How to fix
13
+
14
+ - Import the base from its source module with a path that the bundler can
15
+ resolve.
16
+ - If you write your own integration, keep the compiled results of all modules of
17
+ the same build together.
18
+
19
+ A base whose type does not show its source is reported by
20
+ [unverified-style-base](../lints/unverified-style-base.md).
@@ -0,0 +1,43 @@
1
+ ---
2
+ title: "SW12001: Incompatible declaration assignment"
3
+ description: "A variable that holds one ref or animation is assigned a different one."
4
+ ---
5
+
6
+ # SW12001: Incompatible declaration assignment
7
+
8
+ This error occurs when a variable that holds one ref, keyframes, or view
9
+ transition definition is later assigned a different one. The compiler tracks
10
+ which definitions a variable can hold, and the assignment breaks that record.
11
+ The message includes the explanation from TypeScript.
12
+
13
+ ## Reported
14
+
15
+ ```ts
16
+ let current = style.ref("card");
17
+ current = style.ref("panel");
18
+ style({ [current("hover")]: "underline" });
19
+ ```
20
+
21
+ > SW12001: incompatible declaration identities: TS2322: Type 'StyleRef<string>' is not assignable to type 'StyleRef<"stillwind-identity/v1:eyJraW5kIjoicmVmIiwibW9kdWxlSWQiOiJSZWZlcmVuY2UudHN4Iiwic3RhcnQiOjQ2LCJlbmQiOjUzLCJiaW5kaW5nTmFtZSI6ImN1cnJlbnQifQ">'.
22
+ > Type 'string' is not assignable to type '"stillwind-identity/v1:eyJraW5kIjoicmVmIiwibW9kdWxlSWQiOiJSZWZlcmVuY2UudHN4Iiwic3RhcnQiOjQ2LCJlbmQiOjUzLCJiaW5kaW5nTmFtZSI6ImN1cnJlbnQifQ"'. Preserve declaration candidates with an explicit union or a generic parameter.
23
+ >
24
+ > Source format: Jsx
25
+
26
+ ## Fixed
27
+
28
+ ```ts
29
+ const card = style.ref("card");
30
+ const panel = style.ref("panel");
31
+ let current: typeof card | typeof panel = card;
32
+ current = panel;
33
+ style({ [current("hover")]: "underline" });
34
+ ```
35
+
36
+ ## How to fix
37
+
38
+ - Declare each definition in its own `const`, and give the variable an explicit
39
+ union of their types, as in the example.
40
+ - In a function that accepts several definitions, use a generic parameter instead
41
+ of a wider type.
42
+ - Keep the types that TypeScript infers when you pass definitions through
43
+ exports.
@@ -0,0 +1,42 @@
1
+ ---
2
+ title: "SW12002: Declaration identities unavailable"
3
+ description: "The compiler cannot tell which refs or animations a value can hold."
4
+ ---
5
+
6
+ # SW12002: Declaration identities unavailable
7
+
8
+ This error occurs when the compiler cannot tell which refs, keyframes, or view
9
+ transitions a value can hold. When a ref is chosen at runtime, the compiler must
10
+ generate CSS for every ref that it can be. A type annotation that widens the type
11
+ hides that list.
12
+
13
+ ## Reported
14
+
15
+ ```ts
16
+ const card = style.ref("card");
17
+ const current: ReturnType<typeof style.ref> = card;
18
+ style({ [current("hover")]: "underline" });
19
+ ```
20
+
21
+ > SW12002: cannot determine finite declaration identities: Cannot determine a finite set of declaration identities. Preserve the value's inferred type, use an explicit union, or use a generic parameter.
22
+ >
23
+ > Source format: Jsx
24
+
25
+ ## Fixed
26
+
27
+ ```ts
28
+ const card = style.ref("card");
29
+ const current = card;
30
+ style({ [current("hover")]: "underline" });
31
+ ```
32
+
33
+ ## How to fix
34
+
35
+ - Remove the type annotation, and keep the type that TypeScript infers, as in the
36
+ example.
37
+ - When a value can hold several refs, use an explicit union of their types, such
38
+ as `typeof card | typeof panel`, or a generic parameter.
39
+ - Make the source modules of the definitions reachable through imports.
40
+
41
+ If the integration did not provide type information at all, the error is
42
+ [SW30001](SW30001.md) instead.
@@ -0,0 +1,35 @@
1
+ ---
2
+ title: "SW13001: Authored CSS parse error"
3
+ description: "Your stylesheet has a CSS syntax error."
4
+ ---
5
+
6
+ # SW13001: Authored CSS parse error
7
+
8
+ This error occurs when the compiler cannot parse a CSS rule in your stylesheet.
9
+ The message explains what the parser expected.
10
+
11
+ ## Reported
12
+
13
+ ```css
14
+ .card {
15
+ color blue;
16
+ }
17
+ ```
18
+
19
+ > SW13001: CSS parse error: Unexpected token Ident("blue") at :2:8
20
+
21
+ ## Fixed
22
+
23
+ ```css
24
+ .card {
25
+ color: blue;
26
+ }
27
+ ```
28
+
29
+ ## How to fix
30
+
31
+ Fix the syntax that the message points to. In the example, the declaration needs
32
+ a colon after `color`.
33
+
34
+ A syntax error that the compiler finds while it collects custom properties is
35
+ reported as [SW14006](SW14006.md) instead.
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: "SW13002: Unterminated CSS block"
3
+ description: "A CSS block in your stylesheet is not closed."
4
+ ---
5
+
6
+ # SW13002: Unterminated CSS block
7
+
8
+ This error occurs when a block in your stylesheet opens but does not close before
9
+ the end of the file. The message gives the position as a byte offset from the
10
+ start of the parsed text, counting from zero.
11
+
12
+ ## Reported
13
+
14
+ ```css
15
+ .card {
16
+ color: blue;
17
+ ```
18
+
19
+ > SW13002: unterminated CSS block at byte 27
20
+
21
+ ## Fixed
22
+
23
+ ```css
24
+ .card {
25
+ color: blue;
26
+ }
27
+ ```
28
+
29
+ ## How to fix
30
+
31
+ - Add the missing `}`, `)`, or `]`.
32
+ - Also check for an unclosed string or comment before that position. An unclosed
33
+ string can make the rest of the file look like one block.
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: "SW13003: Invalid CSS block"
3
+ description: "The compiler cannot read a balanced CSS block."
4
+ ---
5
+
6
+ # SW13003: Invalid CSS block
7
+
8
+ This error occurs when the compiler cannot consume a CSS block while it reads
9
+ the stylesheet, imports, or plugin options. The message gives the position as a
10
+ byte offset.
11
+
12
+ ## How to fix
13
+
14
+ Check the delimiters around that position and any strings or comments inside the
15
+ block. If the stylesheet is valid, report the source and the Stillwind version.
16
+
17
+ An unclosed block normally produces [SW13002](SW13002.md). Other CSS
18
+ syntax errors can produce [SW13001](SW13001.md).