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.
- package/AGENTS_TEMPLATE.md +5 -0
- package/LICENSE +21 -0
- package/README.md +166 -0
- package/TAILWINDCSS-MIT-LICENSE +21 -0
- package/css/builtin-metadata/sw-motion-properties.css +186 -0
- package/css/builtin-metadata/tw-legacy-metadata.css +36 -0
- package/css/builtin-metadata/tw-properties.css +944 -0
- package/css/builtin-metadata/tw-registry-metadata.css +52 -0
- package/css/builtin-metadata/tw-relationship-metadata.css +10 -0
- package/css/builtin-utilities/sw-motion-contexts.css +1043 -0
- package/css/builtin-utilities/tw-backgrounds.css +606 -0
- package/css/builtin-utilities/tw-borders.css +954 -0
- package/css/builtin-utilities/tw-effects.css +1209 -0
- package/css/builtin-utilities/tw-flex-grid.css +749 -0
- package/css/builtin-utilities/tw-interactivity.css +680 -0
- package/css/builtin-utilities/tw-layout.css +943 -0
- package/css/builtin-utilities/tw-masks.css +1268 -0
- package/css/builtin-utilities/tw-motion.css +142 -0
- package/css/builtin-utilities/tw-spacing-sizing.css +621 -0
- package/css/builtin-utilities/tw-svg.css +50 -0
- package/css/builtin-utilities/tw-transforms.css +652 -0
- package/css/builtin-utilities/tw-typography.css +720 -0
- package/css/builtin-variants/sw-conditional.css +5 -0
- package/css/builtin-variants/sw-document.css +13 -0
- package/css/builtin-variants/tw-conditional.css +187 -0
- package/css/builtin-variants/tw-dynamic-selector.css +49 -0
- package/css/builtin-variants/tw-relationship.css +41 -0
- package/css/builtin-variants/tw-state.css +159 -0
- package/css/builtin-variants/tw-structural.css +121 -0
- package/css/builtins.css +111 -0
- package/css/preflight.css +401 -0
- package/css/templates.css +40 -0
- package/css/theme.css +546 -0
- package/css/utilities.css +9 -0
- package/dist/class-object-D24FFYqO.js +6 -0
- package/dist/class-object-D24FFYqO.js.map +1 -0
- package/dist/class-object-D7ZGJOf_.d.ts +9 -0
- package/dist/class-string-CQHnc9GN.d.ts +9 -0
- package/dist/class-string-Db8-oI4q.js +6 -0
- package/dist/class-string-Db8-oI4q.js.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.js +2 -0
- package/dist/css.d.ts +100 -0
- package/dist/css.js +143 -0
- package/dist/css.js.map +1 -0
- package/dist/cva-BwX07CFw.js +204 -0
- package/dist/cva-BwX07CFw.js.map +1 -0
- package/dist/cva-DSpDNBYi.d.ts +9 -0
- package/dist/development-DttPQc71.d.ts +27 -0
- package/dist/development-J-JCSIm0.js +111 -0
- package/dist/development-J-JCSIm0.js.map +1 -0
- package/dist/frameworks/alpine.d.ts +20 -0
- package/dist/frameworks/alpine.js +18 -0
- package/dist/frameworks/alpine.js.map +1 -0
- package/dist/frameworks/astro.d.ts +3 -0
- package/dist/frameworks/astro.js +1 -0
- package/dist/frameworks/lit.d.ts +21 -0
- package/dist/frameworks/lit.js +38 -0
- package/dist/frameworks/lit.js.map +1 -0
- package/dist/frameworks/preact.d.ts +3 -0
- package/dist/frameworks/preact.js +1 -0
- package/dist/frameworks/qwik.d.ts +3 -0
- package/dist/frameworks/qwik.js +1 -0
- package/dist/frameworks/react.d.ts +10 -0
- package/dist/frameworks/react.js +6 -0
- package/dist/frameworks/react.js.map +1 -0
- package/dist/frameworks/solid.d.ts +3 -0
- package/dist/frameworks/solid.js +1 -0
- package/dist/frameworks/svelte.d.ts +3 -0
- package/dist/frameworks/svelte.js +1 -0
- package/dist/frameworks/vanilla.d.ts +27 -0
- package/dist/frameworks/vanilla.js +3 -0
- package/dist/frameworks/vue.d.ts +3 -0
- package/dist/frameworks/vue.js +1 -0
- package/dist/index-RwVFpxhE.d.ts +815 -0
- package/dist/macro/index.d.ts +2 -0
- package/dist/macro/index.js +1 -0
- package/dist/module-css.d.ts +30 -0
- package/dist/module-css.js +23 -0
- package/dist/module-css.js.map +1 -0
- package/dist/runtime/class-name-object-development.d.ts +10 -0
- package/dist/runtime/class-name-object-development.js +18 -0
- package/dist/runtime/class-name-object-development.js.map +1 -0
- package/dist/runtime/class-name-object.d.ts +16 -0
- package/dist/runtime/class-name-object.js +31 -0
- package/dist/runtime/class-name-object.js.map +1 -0
- package/dist/runtime/class-object-development.d.ts +10 -0
- package/dist/runtime/class-object-development.js +18 -0
- package/dist/runtime/class-object-development.js.map +1 -0
- package/dist/runtime/class-object.d.ts +16 -0
- package/dist/runtime/class-object.js +31 -0
- package/dist/runtime/class-object.js.map +1 -0
- package/dist/runtime/class-string-development.d.ts +10 -0
- package/dist/runtime/class-string-development.js +18 -0
- package/dist/runtime/class-string-development.js.map +1 -0
- package/dist/runtime/class-string.d.ts +16 -0
- package/dist/runtime/class-string.js +31 -0
- package/dist/runtime/class-string.js.map +1 -0
- package/dist/shared-B9IQXU6P.d.ts +32 -0
- package/dist/style-BV4ctkni.js +78 -0
- package/dist/style-BV4ctkni.js.map +1 -0
- package/dist/style-fTQbsVWZ.js +41 -0
- package/dist/style-fTQbsVWZ.js.map +1 -0
- package/docs/agents.md +76 -0
- package/docs/at-rules/apply.md +93 -0
- package/docs/at-rules/custom-variant.md +127 -0
- package/docs/at-rules/index.md +75 -0
- package/docs/at-rules/plugin.md +71 -0
- package/docs/at-rules/registry-directives.md +181 -0
- package/docs/at-rules/slot.md +58 -0
- package/docs/at-rules/stillwind-css-template.md +126 -0
- package/docs/at-rules/stillwind-property.md +133 -0
- package/docs/at-rules/stillwind-registry.md +115 -0
- package/docs/at-rules/stillwind-require-properties.md +91 -0
- package/docs/at-rules/stillwind-slot.md +85 -0
- package/docs/at-rules/stillwind-undef-arbitrary-property.md +75 -0
- package/docs/at-rules/stillwind-undef-utility.md +87 -0
- package/docs/at-rules/stillwind-undef-variant.md +55 -0
- package/docs/at-rules/theme.md +304 -0
- package/docs/at-rules/utility.md +286 -0
- package/docs/at-rules/variant.md +91 -0
- package/docs/concepts/css-ordering.md +245 -0
- package/docs/concepts/how-styles-compile.md +132 -0
- package/docs/configuration.md +298 -0
- package/docs/errors/SW01001.md +51 -0
- package/docs/errors/SW01002.md +52 -0
- package/docs/errors/SW01003.md +69 -0
- package/docs/errors/SW02001.md +23 -0
- package/docs/errors/SW02002.md +51 -0
- package/docs/errors/SW03001.md +71 -0
- package/docs/errors/SW03002.md +79 -0
- package/docs/errors/SW03003.md +36 -0
- package/docs/errors/SW10001.md +34 -0
- package/docs/errors/SW10002.md +36 -0
- package/docs/errors/SW10003.md +30 -0
- package/docs/errors/SW10004.md +39 -0
- package/docs/errors/SW10005.md +35 -0
- package/docs/errors/SW11001.md +37 -0
- package/docs/errors/SW11002.md +65 -0
- package/docs/errors/SW11003.md +20 -0
- package/docs/errors/SW12001.md +43 -0
- package/docs/errors/SW12002.md +42 -0
- package/docs/errors/SW13001.md +35 -0
- package/docs/errors/SW13002.md +33 -0
- package/docs/errors/SW13003.md +18 -0
- package/docs/errors/SW13004.md +45 -0
- package/docs/errors/SW14001.md +44 -0
- package/docs/errors/SW14002.md +47 -0
- package/docs/errors/SW14003.md +38 -0
- package/docs/errors/SW14004.md +48 -0
- package/docs/errors/SW14005.md +51 -0
- package/docs/errors/SW14006.md +19 -0
- package/docs/errors/SW14007.md +35 -0
- package/docs/errors/SW14008.md +41 -0
- package/docs/errors/SW15001.md +18 -0
- package/docs/errors/SW15002.md +19 -0
- package/docs/errors/SW15003.md +16 -0
- package/docs/errors/SW30001.md +21 -0
- package/docs/errors/SW30002.md +18 -0
- package/docs/errors/SW30003.md +17 -0
- package/docs/errors/SW30004.md +18 -0
- package/docs/errors/SW31001.md +20 -0
- package/docs/errors/SW31002.md +17 -0
- package/docs/errors/SW31003.md +18 -0
- package/docs/errors/SW31004.md +20 -0
- package/docs/errors/SW31005.md +18 -0
- package/docs/errors/SW31006.md +17 -0
- package/docs/errors/SW31007.md +18 -0
- package/docs/errors/SW31008.md +16 -0
- package/docs/errors/SW31009.md +18 -0
- package/docs/errors/SW31010.md +16 -0
- package/docs/errors/SW31011.md +17 -0
- package/docs/errors/SW32001.md +18 -0
- package/docs/errors/SW32002.md +45 -0
- package/docs/errors/SW32003.md +43 -0
- package/docs/errors/SW32004.md +17 -0
- package/docs/errors/SW32005.md +40 -0
- package/docs/errors/SW32006.md +18 -0
- package/docs/errors/SW32007.md +20 -0
- package/docs/errors/SW33001.md +17 -0
- package/docs/errors/SW33002.md +17 -0
- package/docs/errors/SW33003.md +17 -0
- package/docs/errors/SW33004.md +17 -0
- package/docs/errors/SW33005.md +20 -0
- package/docs/errors/SW34001.md +18 -0
- package/docs/errors/SW34002.md +17 -0
- package/docs/errors/SW34003.md +18 -0
- package/docs/errors/SW90001.md +17 -0
- package/docs/errors/SW90002.md +18 -0
- package/docs/errors/SW90003.md +17 -0
- package/docs/errors/SW90004.md +17 -0
- package/docs/errors/SW90005.md +16 -0
- package/docs/errors/SW90006.md +17 -0
- package/docs/errors/SW90007.md +17 -0
- package/docs/errors/SW90008.md +17 -0
- package/docs/errors/index.md +125 -0
- package/docs/guides/animations.md +73 -0
- package/docs/guides/design-systems.md +119 -0
- package/docs/guides/element-relationships.md +136 -0
- package/docs/guides/lint-adoption.md +128 -0
- package/docs/guides/migrating-from-css.md +126 -0
- package/docs/guides/migrating-from-tailwind.md +179 -0
- package/docs/guides/recommended-practices.md +338 -0
- package/docs/guides/responsive-styles.md +103 -0
- package/docs/guides/reusable-styles.md +110 -0
- package/docs/guides/style.md +181 -0
- package/docs/guides/tailwind-compatibility.md +126 -0
- package/docs/guides/view-transitions.md +84 -0
- package/docs/guides/web-components.md +216 -0
- package/docs/index.md +136 -0
- package/docs/integrations.md +190 -0
- package/docs/lints/ambiguous-style-base-order.md +50 -0
- package/docs/lints/bypassed-undefinition.md +50 -0
- package/docs/lints/clamped-value.md +44 -0
- package/docs/lints/conflicting-provider-properties.md +47 -0
- package/docs/lints/conflicting-utilities.md +55 -0
- package/docs/lints/document-scoped-selector.md +45 -0
- package/docs/lints/duplicate-definition.md +44 -0
- package/docs/lints/duplicate-utility.md +44 -0
- package/docs/lints/duplicate-view-transition-name.md +45 -0
- package/docs/lints/ignored-definition-condition.md +51 -0
- package/docs/lints/ignored-tailwind-feature.md +62 -0
- package/docs/lints/incompatible-property-value.md +60 -0
- package/docs/lints/incompatible-theme-value.md +46 -0
- package/docs/lints/index.md +140 -0
- package/docs/lints/ineffective-anchor-scope.md +46 -0
- package/docs/lints/interfering-imported-style-base.md +57 -0
- package/docs/lints/invalid-animation-option.md +47 -0
- package/docs/lints/invalid-css-directive.md +43 -0
- package/docs/lints/invalid-css-import.md +43 -0
- package/docs/lints/invalid-css-input.md +45 -0
- package/docs/lints/invalid-cva-config.md +46 -0
- package/docs/lints/invalid-cva-input.md +50 -0
- package/docs/lints/invalid-keyframes-definition.md +47 -0
- package/docs/lints/invalid-keyframes-use.md +47 -0
- package/docs/lints/invalid-keyframes-variant.md +48 -0
- package/docs/lints/invalid-lint-suppression.md +47 -0
- package/docs/lints/invalid-marker-use.md +53 -0
- package/docs/lints/invalid-media-query.md +52 -0
- package/docs/lints/invalid-ref-input.md +49 -0
- package/docs/lints/invalid-rule-group-input.md +58 -0
- package/docs/lints/invalid-runtime-condition.md +67 -0
- package/docs/lints/invalid-style-composition.md +52 -0
- package/docs/lints/invalid-style-input.md +47 -0
- package/docs/lints/invalid-theme-reference.md +52 -0
- package/docs/lints/invalid-utility.md +44 -0
- package/docs/lints/invalid-variant.md +45 -0
- package/docs/lints/invalid-view-transition-definition.md +46 -0
- package/docs/lints/invalid-view-transition-use.md +46 -0
- package/docs/lints/invalid-view-transition-variant.md +51 -0
- package/docs/lints/mismatched-framework-import.md +47 -0
- package/docs/lints/missing-document-target.md +44 -0
- package/docs/lints/missing-ref-attachment.md +44 -0
- package/docs/lints/missing-view-transition-name.md +46 -0
- package/docs/lints/mutating-macro-argument.md +48 -0
- package/docs/lints/no-arbitrary-breakpoints.md +50 -0
- package/docs/lints/no-arbitrary-colors.md +51 -0
- package/docs/lints/no-arbitrary-spacing.md +57 -0
- package/docs/lints/no-class-property.md +58 -0
- package/docs/lints/no-important.md +50 -0
- package/docs/lints/no-restricted-declarations.md +76 -0
- package/docs/lints/no-restricted-length-units.md +73 -0
- package/docs/lints/no-restricted-theme-tokens.md +73 -0
- package/docs/lints/no-restricted-utilities.md +73 -0
- package/docs/lints/prefer-canonical-utilities.md +69 -0
- package/docs/lints/prefer-direct-styling.md +47 -0
- package/docs/lints/prefer-explicit-nesting-selector.md +42 -0
- package/docs/lints/prefer-logical-properties.md +49 -0
- package/docs/lints/prefer-sorted-utilities.md +46 -0
- package/docs/lints/prefer-typed-relationships.md +48 -0
- package/docs/lints/prefer-typed-variables.md +43 -0
- package/docs/lints/prefer-variant-directive.md +59 -0
- package/docs/lints/redundant-variant.md +50 -0
- package/docs/lints/repeated-nesting-selector.md +59 -0
- package/docs/lints/runtime-condition-requires-css-if.md +59 -0
- package/docs/lints/split-view-transition-class.md +47 -0
- package/docs/lints/suspending-macro-argument.md +46 -0
- package/docs/lints/unknown-utility.md +47 -0
- package/docs/lints/unknown-variant.md +42 -0
- package/docs/lints/unsatisfiable-variants.md +42 -0
- package/docs/lints/unused-lint-suppression.md +57 -0
- package/docs/lints/unverified-style-base.md +64 -0
- package/docs/macros/anchor-scope.md +90 -0
- package/docs/macros/css.md +68 -0
- package/docs/macros/cva.md +153 -0
- package/docs/macros/index.md +30 -0
- package/docs/macros/keyframes.md +98 -0
- package/docs/macros/media.md +65 -0
- package/docs/macros/ref/as-anchor.md +70 -0
- package/docs/macros/ref/as-container.md +64 -0
- package/docs/macros/ref/at.md +68 -0
- package/docs/macros/ref/condition.md +86 -0
- package/docs/macros/ref/in.md +81 -0
- package/docs/macros/ref/index.md +115 -0
- package/docs/macros/ref/position-anchor.md +64 -0
- package/docs/macros/style.md +185 -0
- package/docs/macros/view-transition.md +159 -0
- package/docs/utilities.md +35 -0
- package/docs/why.md +144 -0
- package/index.css +7 -0
- package/package.json +135 -8
- package/skills/migrate-to-stillwind/SKILL.md +81 -0
- package/skills/setup-stillwind/SKILL.md +51 -0
- package/skills/stillwind/SKILL.md +54 -0
- 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).
|