@bookklik/senangstart-css 0.2.4 → 0.2.6

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 (154) hide show
  1. package/.agent/skills/add-utility/scripts/scaffold-utility.js +209 -0
  2. package/.agent/skills/compiler-development/SKILL.md +272 -0
  3. package/.agent/skills/jit-engine/SKILL.md +241 -0
  4. package/.agent/skills/jit-engine/examples/add-visual-utility.js +117 -0
  5. package/.agent/skills/jit-engine/examples/scale-based-utilities.js +130 -0
  6. package/.agent/skills/jit-engine/examples/state-responsive-handling.js +177 -0
  7. package/.agent/skills/senangstart-architecture/SKILL.md +163 -0
  8. package/.agent/skills/tailwind-conversion/SKILL.md +264 -0
  9. package/.agent/workflows/add-utility.md +155 -0
  10. package/.agent/workflows/build.md +97 -0
  11. package/.agent/workflows/dev.md +58 -0
  12. package/.agent/workflows/docs.md +113 -0
  13. package/.agent/workflows/test.md +103 -0
  14. package/dist/senangstart-css.js +165 -20
  15. package/dist/senangstart-css.min.js +39 -26
  16. package/dist/senangstart-tw.js +262 -52
  17. package/dist/senangstart-tw.min.js +1 -1
  18. package/docs/.vitepress/config.js +10 -2
  19. package/docs/guide/cdn.md +1 -1
  20. package/docs/ms/guide/cdn.md +1 -1
  21. package/docs/ms/reference/layout/position.md +4 -4
  22. package/docs/ms/reference/layout/z-index.md +8 -8
  23. package/docs/ms/reference/space/gap.md +1 -1
  24. package/docs/ms/reference/space/height.md +42 -7
  25. package/docs/ms/reference/space/margin.md +1 -1
  26. package/docs/ms/reference/space/padding.md +1 -1
  27. package/docs/ms/reference/space/scale-reference.md +46 -17
  28. package/docs/ms/reference/space/width.md +40 -5
  29. package/docs/ms/reference/space.md +1 -1
  30. package/docs/ms/reference/spacing.md +103 -21
  31. package/docs/ms/reference/visual/animation-fill.md +8 -8
  32. package/docs/ms/reference/visual/backdrop-blur.md +4 -4
  33. package/docs/ms/reference/visual/backdrop-brightness.md +8 -8
  34. package/docs/ms/reference/visual/backdrop-grayscale.md +6 -6
  35. package/docs/ms/reference/visual/backdrop-sepia.md +6 -6
  36. package/docs/ms/reference/visual/background-clip.md +2 -2
  37. package/docs/ms/reference/visual/background-image.md +4 -4
  38. package/docs/ms/reference/visual/divide-reverse.md +66 -0
  39. package/docs/ms/reference/visual/divide-style.md +80 -0
  40. package/docs/ms/reference/visual/divide-width.md +89 -0
  41. package/docs/ms/reference/visual/divide.md +115 -0
  42. package/docs/ms/reference/visual/filter-brightness.md +4 -4
  43. package/docs/ms/reference/visual/filter-contrast.md +4 -4
  44. package/docs/ms/reference/visual/filter-drop-shadow.md +6 -6
  45. package/docs/ms/reference/visual/filter-grayscale.md +4 -4
  46. package/docs/ms/reference/visual/filter-hue-rotate.md +4 -4
  47. package/docs/ms/reference/visual/filter-invert.md +2 -2
  48. package/docs/ms/reference/visual/filter-saturate.md +4 -4
  49. package/docs/ms/reference/visual/filter-sepia.md +4 -4
  50. package/docs/ms/reference/visual/font-family.md +2 -2
  51. package/docs/ms/reference/visual/gradient-from.md +57 -57
  52. package/docs/ms/reference/visual/gradient-to.md +57 -57
  53. package/docs/ms/reference/visual/gradient-via.md +54 -54
  54. package/docs/ms/reference/visual/letter-spacing.md +2 -2
  55. package/docs/ms/reference/visual/line-clamp.md +2 -2
  56. package/docs/ms/reference/visual/line-height.md +2 -2
  57. package/docs/ms/reference/visual/outline.md +2 -2
  58. package/docs/ms/reference/visual/ring-color.md +29 -0
  59. package/docs/ms/reference/visual/ring-offset.md +30 -0
  60. package/docs/ms/reference/visual/ring.md +62 -0
  61. package/docs/ms/reference/visual/stroke-width.md +6 -6
  62. package/docs/ms/reference/visual/stroke.md +4 -4
  63. package/docs/ms/reference/visual/text-indent.md +2 -2
  64. package/docs/ms/reference/visual/text-overflow.md +2 -2
  65. package/docs/ms/reference/visual/text-size.md +2 -2
  66. package/docs/ms/reference/visual/text-wrap.md +2 -2
  67. package/docs/ms/reference/visual/transform-backface.md +4 -4
  68. package/docs/ms/reference/visual/transform-perspective-origin.md +6 -6
  69. package/docs/ms/reference/visual/transform-perspective.md +6 -6
  70. package/docs/ms/reference/visual/transform-rotate-3d.md +6 -6
  71. package/docs/ms/reference/visual/transform-style.md +4 -4
  72. package/docs/ms/reference/visual/transform-translate-z.md +6 -6
  73. package/docs/ms/reference/visual/transform-translate.md +2 -2
  74. package/docs/ms/reference/visual/whitespace.md +2 -2
  75. package/docs/ms/reference/visual/word-break.md +2 -2
  76. package/docs/public/assets/senangstart-css.min.js +39 -26
  77. package/docs/public/llms.txt +1756 -0
  78. package/docs/reference/layout/position.md +4 -4
  79. package/docs/reference/layout/z-index.md +8 -8
  80. package/docs/reference/space/gap.md +1 -1
  81. package/docs/reference/space/height.md +42 -7
  82. package/docs/reference/space/margin.md +1 -1
  83. package/docs/reference/space/padding.md +1 -1
  84. package/docs/reference/space/scale-reference.md +46 -17
  85. package/docs/reference/space/width.md +40 -5
  86. package/docs/reference/space.md +1 -1
  87. package/docs/reference/spacing.md +103 -21
  88. package/docs/reference/visual/animation-fill.md +8 -8
  89. package/docs/reference/visual/backdrop-blur.md +4 -4
  90. package/docs/reference/visual/backdrop-brightness.md +8 -8
  91. package/docs/reference/visual/backdrop-grayscale.md +6 -6
  92. package/docs/reference/visual/backdrop-sepia.md +6 -6
  93. package/docs/reference/visual/background-clip.md +2 -2
  94. package/docs/reference/visual/background-image.md +4 -4
  95. package/docs/reference/visual/divide-reverse.md +66 -0
  96. package/docs/reference/visual/divide-style.md +80 -0
  97. package/docs/reference/visual/divide-width.md +89 -0
  98. package/docs/reference/visual/divide.md +115 -0
  99. package/docs/reference/visual/filter-brightness.md +4 -4
  100. package/docs/reference/visual/filter-contrast.md +4 -4
  101. package/docs/reference/visual/filter-drop-shadow.md +6 -6
  102. package/docs/reference/visual/filter-grayscale.md +4 -4
  103. package/docs/reference/visual/filter-hue-rotate.md +4 -4
  104. package/docs/reference/visual/filter-invert.md +2 -2
  105. package/docs/reference/visual/filter-saturate.md +4 -4
  106. package/docs/reference/visual/filter-sepia.md +4 -4
  107. package/docs/reference/visual/font-family.md +2 -2
  108. package/docs/reference/visual/gradient-from.md +57 -57
  109. package/docs/reference/visual/gradient-to.md +57 -57
  110. package/docs/reference/visual/gradient-via.md +54 -54
  111. package/docs/reference/visual/letter-spacing.md +2 -2
  112. package/docs/reference/visual/line-clamp.md +2 -2
  113. package/docs/reference/visual/line-height.md +2 -2
  114. package/docs/reference/visual/outline.md +2 -2
  115. package/docs/reference/visual/ring-color.md +29 -0
  116. package/docs/reference/visual/ring-offset.md +30 -0
  117. package/docs/reference/visual/ring.md +62 -0
  118. package/docs/reference/visual/stroke-width.md +6 -6
  119. package/docs/reference/visual/stroke.md +4 -4
  120. package/docs/reference/visual/text-indent.md +2 -2
  121. package/docs/reference/visual/text-overflow.md +2 -2
  122. package/docs/reference/visual/text-size.md +2 -2
  123. package/docs/reference/visual/text-wrap.md +2 -2
  124. package/docs/reference/visual/transform-backface.md +4 -4
  125. package/docs/reference/visual/transform-perspective-origin.md +6 -6
  126. package/docs/reference/visual/transform-perspective.md +6 -6
  127. package/docs/reference/visual/transform-rotate-3d.md +6 -6
  128. package/docs/reference/visual/transform-style.md +4 -4
  129. package/docs/reference/visual/transform-translate-z.md +6 -6
  130. package/docs/reference/visual/transform-translate.md +2 -2
  131. package/docs/reference/visual/whitespace.md +2 -2
  132. package/docs/reference/visual/word-break.md +2 -2
  133. package/docs/reference/visual.md +8 -2
  134. package/package.json +4 -2
  135. package/scripts/build-dist.js +2 -2
  136. package/scripts/bundle-jit.js +3 -3
  137. package/scripts/convert-tailwind.js +250 -2
  138. package/scripts/generate-llms-txt.js +264 -0
  139. package/src/cdn/{jit.js → senangstart-engine.js} +184 -38
  140. package/src/cdn/tw-conversion-engine.js +282 -68
  141. package/src/compiler/generators/css.js +115 -2
  142. package/src/config/defaults.js +37 -11
  143. package/src/core/constants.js +37 -8
  144. package/src/definitions/index.js +3 -0
  145. package/src/definitions/space.js +97 -20
  146. package/src/definitions/visual-borders.js +80 -1
  147. package/src/definitions/visual-divide.js +225 -0
  148. package/src/definitions/visual-transform3d.js +16 -16
  149. package/src/definitions/visual-transforms.js +1 -1
  150. package/src/definitions/visual-transitions.js +4 -4
  151. package/src/definitions/visual-typography.js +6 -6
  152. package/src/definitions/visual.js +4 -4
  153. package/tests/unit/compiler/generators/css.test.js +267 -3
  154. package/tests/unit/convert-tailwind.test.js +59 -1
@@ -31,8 +31,8 @@ visual="sepia:[value]"
31
31
  <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="sepia:full"</code> - Apply vintage sepia tone</p>
32
32
  <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
33
33
  <div space="p:small" visual="bg:primary text:white rounded:small">none</div>
34
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: sepia(50%);">partial</div>
35
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: sepia(100%);">full</div>
34
+ <div space="p:small" visual="bg:primary text:white rounded:small sepia:partial">partial</div>
35
+ <div space="p:small" visual="bg:primary text:white rounded:small sepia:full">full</div>
36
36
  </div>
37
37
  </div>
38
38
 
@@ -42,8 +42,8 @@ visual="sepia:[value]"
42
42
  ```html
43
43
  <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
44
44
  <div space="p:small" visual="bg:primary text:white rounded:small">none</div>
45
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: sepia(50%);">partial</div>
46
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: sepia(100%);">full</div>
45
+ <div space="p:small" visual="bg:primary text:white rounded:small sepia:partial">partial</div>
46
+ <div space="p:small" visual="bg:primary text:white rounded:small sepia:full">full</div>
47
47
  </div>
48
48
  ```
49
49
 
@@ -29,7 +29,7 @@ visual="font:[family]"
29
29
 
30
30
  <div layout="flex col" space="g:medium">
31
31
  <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="font:sans"</code> - Choose between sans, serif, or mono</p>
32
- <div layout="flex:col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
32
+ <div layout="flex col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
33
33
  <span visual="font:sans">Sans-serif font</span>
34
34
  <span visual="font:serif">Serif font</span>
35
35
  <span visual="font:mono">Monospace font</span>
@@ -40,7 +40,7 @@ visual="font:[family]"
40
40
  <summary>View Code</summary>
41
41
 
42
42
  ```html
43
- <div layout="flex:col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
43
+ <div layout="flex col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
44
44
  <span visual="font:sans">Sans-serif font</span>
45
45
  <span visual="font:serif">Serif font</span>
46
46
  <span visual="font:mono">Monospace font</span>
@@ -1,57 +1,57 @@
1
- # Gradient From
2
-
3
- Set gradient start color
4
-
5
- ## Syntax
6
- ```
7
- visual="from:[color]"
8
- ```
9
-
10
- ## Values
11
-
12
- | Value | CSS Output | Description |
13
- |-------|------------|-------------|
14
- | `primary` | `--tw-gradient-from: var(--c-primary); --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)` | Start from primary |
15
- | `blue-500` | `--tw-gradient-from: var(--c-blue-500); --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)` | Start from blue |
16
-
17
- ## Examples
18
-
19
- ```html
20
- <div visual="bg-image:gradient-to-r from:blue-500 to:purple-500">Gradient</div>
21
- ```
22
-
23
- ## Preview
24
-
25
- <div space="p-x:big p-b:medium m-t:medium" visual="border-w:thin border:neutral-100 dark:border:neutral-800 rounded:medium">
26
-
27
- ### Gradient From
28
-
29
- <div layout="flex col" space="g:medium">
30
- <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="from:blue-500"</code> - Set the starting color of a gradient</p>
31
- <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
32
- <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:purple-500 text:white rounded:small">from:blue-500 to:purple-500</div>
33
- <div space="p:medium" visual="bg-image:gradient-to-r from:emerald-500 to:blue-500 text:white rounded:small">from:emerald-500 to:blue-500</div>
34
- </div>
35
- </div>
36
-
37
- <details>
38
- <summary>View Code</summary>
39
-
40
- ```html
41
- <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
42
- <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:purple-500 text:white rounded:small">from:blue-500 to:purple-500</div>
43
- <div space="p:medium" visual="bg-image:gradient-to-r from:emerald-500 to:blue-500 text:white rounded:small">from:emerald-500 to:blue-500</div>
44
- </div>
45
- ```
46
-
47
- </details>
48
-
49
- </div>
50
-
51
- ## Arbitrary Values
52
-
53
- Supports custom values using bracket syntax:
54
-
55
- ```html
56
- <div visual="gradient:[custom-value]">Custom</div>
57
- ```
1
+ # Gradient From
2
+
3
+ Set gradient start color
4
+
5
+ ## Syntax
6
+ ```
7
+ visual="from:[color]"
8
+ ```
9
+
10
+ ## Values
11
+
12
+ | Value | CSS Output | Description |
13
+ |-------|------------|-------------|
14
+ | `primary` | `--tw-gradient-from: var(--c-primary); --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)` | Start from primary |
15
+ | `blue-500` | `--tw-gradient-from: var(--c-blue-500); --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)` | Start from blue |
16
+
17
+ ## Examples
18
+
19
+ ```html
20
+ <div visual="bg-image:gradient-to-r from:blue-500 to:purple-500">Gradient</div>
21
+ ```
22
+
23
+ ## Preview
24
+
25
+ <div space="p-x:big p-b:medium m-t:medium" visual="border-w:thin border:neutral-100 dark:border:neutral-800 rounded:medium">
26
+
27
+ ### Gradient From
28
+
29
+ <div layout="flex col" space="g:medium">
30
+ <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="from:blue-500"</code> - Set the starting color of a gradient</p>
31
+ <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
32
+ <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:purple-500 text:white rounded:small">from:blue-500 to:purple-500</div>
33
+ <div space="p:medium" visual="bg-image:gradient-to-r from:emerald-500 to:blue-500 text:white rounded:small">from:emerald-500 to:blue-500</div>
34
+ </div>
35
+ </div>
36
+
37
+ <details>
38
+ <summary>View Code</summary>
39
+
40
+ ```html
41
+ <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
42
+ <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:purple-500 text:white rounded:small">from:blue-500 to:purple-500</div>
43
+ <div space="p:medium" visual="bg-image:gradient-to-r from:emerald-500 to:blue-500 text:white rounded:small">from:emerald-500 to:blue-500</div>
44
+ </div>
45
+ ```
46
+
47
+ </details>
48
+
49
+ </div>
50
+
51
+ ## Arbitrary Values
52
+
53
+ Supports custom values using bracket syntax:
54
+
55
+ ```html
56
+ <div visual="gradient:[custom-value]">Custom</div>
57
+ ```
@@ -1,57 +1,57 @@
1
- # Gradient To
2
-
3
- Set gradient end color
4
-
5
- ## Syntax
6
- ```
7
- visual="to:[color]"
8
- ```
9
-
10
- ## Values
11
-
12
- | Value | CSS Output | Description |
13
- |-------|------------|-------------|
14
- | `purple-500` | `--tw-gradient-to: var(--c-purple-500)` | End at purple |
15
- | `pink-500` | `--tw-gradient-to: var(--c-pink-500)` | End at pink |
16
-
17
- ## Examples
18
-
19
- ```html
20
- <div visual="bg-image:gradient-to-r from:blue-500 to:purple-500">Blue to purple</div>
21
- ```
22
-
23
- ## Preview
24
-
25
- <div space="p-x:big p-b:medium m-t:medium" visual="border-w:thin border:neutral-100 dark:border:neutral-800 rounded:medium">
26
-
27
- ### Gradient To
28
-
29
- <div layout="flex col" space="g:medium">
30
- <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="to:purple-500"</code> - Set the ending color of a gradient</p>
31
- <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
32
- <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:purple-500 text:white rounded:small">to:purple-500</div>
33
- <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:pink-500 text:white rounded:small">to:pink-500</div>
34
- </div>
35
- </div>
36
-
37
- <details>
38
- <summary>View Code</summary>
39
-
40
- ```html
41
- <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
42
- <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:purple-500 text:white rounded:small">to:purple-500</div>
43
- <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:pink-500 text:white rounded:small">to:pink-500</div>
44
- </div>
45
- ```
46
-
47
- </details>
48
-
49
- </div>
50
-
51
- ## Arbitrary Values
52
-
53
- Supports custom values using bracket syntax:
54
-
55
- ```html
56
- <div visual="gradient:[custom-value]">Custom</div>
57
- ```
1
+ # Gradient To
2
+
3
+ Set gradient end color
4
+
5
+ ## Syntax
6
+ ```
7
+ visual="to:[color]"
8
+ ```
9
+
10
+ ## Values
11
+
12
+ | Value | CSS Output | Description |
13
+ |-------|------------|-------------|
14
+ | `purple-500` | `--tw-gradient-to: var(--c-purple-500)` | End at purple |
15
+ | `pink-500` | `--tw-gradient-to: var(--c-pink-500)` | End at pink |
16
+
17
+ ## Examples
18
+
19
+ ```html
20
+ <div visual="bg-image:gradient-to-r from:blue-500 to:purple-500">Blue to purple</div>
21
+ ```
22
+
23
+ ## Preview
24
+
25
+ <div space="p-x:big p-b:medium m-t:medium" visual="border-w:thin border:neutral-100 dark:border:neutral-800 rounded:medium">
26
+
27
+ ### Gradient To
28
+
29
+ <div layout="flex col" space="g:medium">
30
+ <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="to:purple-500"</code> - Set the ending color of a gradient</p>
31
+ <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
32
+ <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:purple-500 text:white rounded:small">to:purple-500</div>
33
+ <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:pink-500 text:white rounded:small">to:pink-500</div>
34
+ </div>
35
+ </div>
36
+
37
+ <details>
38
+ <summary>View Code</summary>
39
+
40
+ ```html
41
+ <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
42
+ <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:purple-500 text:white rounded:small">to:purple-500</div>
43
+ <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:pink-500 text:white rounded:small">to:pink-500</div>
44
+ </div>
45
+ ```
46
+
47
+ </details>
48
+
49
+ </div>
50
+
51
+ ## Arbitrary Values
52
+
53
+ Supports custom values using bracket syntax:
54
+
55
+ ```html
56
+ <div visual="gradient:[custom-value]">Custom</div>
57
+ ```
@@ -1,54 +1,54 @@
1
- # Gradient Via
2
-
3
- Set gradient middle color
4
-
5
- ## Syntax
6
- ```
7
- visual="via:[color]"
8
- ```
9
-
10
- ## Values
11
-
12
- | Value | CSS Output | Description |
13
- |-------|------------|-------------|
14
- | `purple-500` | `--tw-gradient-via: var(--c-purple-500); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-via), var(--tw-gradient-to)` | Via purple |
15
-
16
- ## Examples
17
-
18
- ```html
19
- <div visual="bg-image:gradient-to-r from:blue-500 via:purple-500 to:pink-500">Three-color gradient</div>
20
- ```
21
-
22
- ## Preview
23
-
24
- <div space="p-x:big p-b:medium m-t:medium" visual="border-w:thin border:neutral-100 dark:border:neutral-800 rounded:medium">
25
-
26
- ### Gradient Via
27
-
28
- <div layout="flex col" space="g:medium">
29
- <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="via:purple-500"</code> - Add a middle color stop to gradients</p>
30
- <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
31
- <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 via:purple-500 to:pink-500 text:white rounded:small">from:blue via:purple to:pink</div>
32
- </div>
33
- </div>
34
-
35
- <details>
36
- <summary>View Code</summary>
37
-
38
- ```html
39
- <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
40
- <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 via:purple-500 to:pink-500 text:white rounded:small">from:blue via:purple to:pink</div>
41
- </div>
42
- ```
43
-
44
- </details>
45
-
46
- </div>
47
-
48
- ## Arbitrary Values
49
-
50
- Supports custom values using bracket syntax:
51
-
52
- ```html
53
- <div visual="gradient:[custom-value]">Custom</div>
54
- ```
1
+ # Gradient Via
2
+
3
+ Set gradient middle color
4
+
5
+ ## Syntax
6
+ ```
7
+ visual="via:[color]"
8
+ ```
9
+
10
+ ## Values
11
+
12
+ | Value | CSS Output | Description |
13
+ |-------|------------|-------------|
14
+ | `purple-500` | `--tw-gradient-via: var(--c-purple-500); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-via), var(--tw-gradient-to)` | Via purple |
15
+
16
+ ## Examples
17
+
18
+ ```html
19
+ <div visual="bg-image:gradient-to-r from:blue-500 via:purple-500 to:pink-500">Three-color gradient</div>
20
+ ```
21
+
22
+ ## Preview
23
+
24
+ <div space="p-x:big p-b:medium m-t:medium" visual="border-w:thin border:neutral-100 dark:border:neutral-800 rounded:medium">
25
+
26
+ ### Gradient Via
27
+
28
+ <div layout="flex col" space="g:medium">
29
+ <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="via:purple-500"</code> - Add a middle color stop to gradients</p>
30
+ <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
31
+ <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 via:purple-500 to:pink-500 text:white rounded:small">from:blue via:purple to:pink</div>
32
+ </div>
33
+ </div>
34
+
35
+ <details>
36
+ <summary>View Code</summary>
37
+
38
+ ```html
39
+ <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
40
+ <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 via:purple-500 to:pink-500 text:white rounded:small">from:blue via:purple to:pink</div>
41
+ </div>
42
+ ```
43
+
44
+ </details>
45
+
46
+ </div>
47
+
48
+ ## Arbitrary Values
49
+
50
+ Supports custom values using bracket syntax:
51
+
52
+ ```html
53
+ <div visual="gradient:[custom-value]">Custom</div>
54
+ ```
@@ -32,7 +32,7 @@ visual="tracking:[value]"
32
32
 
33
33
  <div layout="flex col" space="g:medium">
34
34
  <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="tracking:wide"</code> - Adjust spacing between characters</p>
35
- <div layout="flex:col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
35
+ <div layout="flex col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
36
36
  <span visual="tracking:tighter">tighter spacing</span>
37
37
  <span visual="tracking:normal">normal spacing</span>
38
38
  <span visual="tracking:widest">widest spacing</span>
@@ -43,7 +43,7 @@ visual="tracking:[value]"
43
43
  <summary>View Code</summary>
44
44
 
45
45
  ```html
46
- <div layout="flex:col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
46
+ <div layout="flex col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
47
47
  <span visual="tracking:tighter">tighter spacing</span>
48
48
  <span visual="tracking:normal">normal spacing</span>
49
49
  <span visual="tracking:widest">widest spacing</span>
@@ -30,7 +30,7 @@ visual="line-clamp:[value]"
30
30
 
31
31
  <div layout="flex col" space="g:medium">
32
32
  <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="line-clamp:2"</code> - Limit text to specific lines</p>
33
- <div layout="flex:col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
33
+ <div layout="flex col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
34
34
  <div space="p:small w:[200px]" visual="bg:primary text:white rounded:small line-clamp:1">This is a very long text that will be clamped to just one single line with ellipsis.</div>
35
35
  <div space="p:small w:[200px]" visual="bg:success text:white rounded:small line-clamp:2">This is a very long text that will be clamped to exactly two lines with ellipsis at the end.</div>
36
36
  <div space="p:small w:[200px]" visual="bg:warning text:black rounded:small line-clamp:3">This is a very long text that will be clamped to exactly three lines with ellipsis shown at the end of the third line.</div>
@@ -41,7 +41,7 @@ visual="line-clamp:[value]"
41
41
  <summary>View Code</summary>
42
42
 
43
43
  ```html
44
- <div layout="flex:col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
44
+ <div layout="flex col" space="g:small p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
45
45
  <div space="p:small w:[200px]" visual="bg:primary text:white rounded:small line-clamp:1">This is a very long text that will be clamped to just one single line with ellipsis.</div>
46
46
  <div space="p:small w:[200px]" visual="bg:success text:white rounded:small line-clamp:2">This is a very long text that will be clamped to exactly two lines with ellipsis at the end.</div>
47
47
  <div space="p:small w:[200px]" visual="bg:warning text:black rounded:small line-clamp:3">This is a very long text that will be clamped to exactly three lines with ellipsis shown at the end of the third line.</div>
@@ -32,7 +32,7 @@ visual="leading:[value]"
32
32
 
33
33
  <div layout="flex col" space="g:medium">
34
34
  <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="leading:relaxed"</code> - Control vertical spacing between lines</p>
35
- <div layout="flex:col" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
35
+ <div layout="flex col" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
36
36
  <p space="m:0" visual="leading:tight">Tight leading<br>for headings</p>
37
37
  <p space="m:0" visual="leading:normal">Normal leading<br>for body text</p>
38
38
  <p space="m:0" visual="leading:loose">Loose leading<br>for readability</p>
@@ -43,7 +43,7 @@ visual="leading:[value]"
43
43
  <summary>View Code</summary>
44
44
 
45
45
  ```html
46
- <div layout="flex:col" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
46
+ <div layout="flex col" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
47
47
  <p space="m:0" visual="leading:tight">Tight leading<br>for headings</p>
48
48
  <p space="m:0" visual="leading:normal">Normal leading<br>for body text</p>
49
49
  <p space="m:0" visual="leading:loose">Loose leading<br>for readability</p>
@@ -22,7 +22,7 @@ visual="outline:[color]"
22
22
  <div layout="flex col" space="g:medium">
23
23
  <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="outline:primary"</code> - Outline does not affect layout</p>
24
24
  <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
25
- <button space="p:small" visual="outline:primary bg:white dark:bg:neutral-800 rounded:small" style="outline-width: 2px; outline-style: solid;">outline:primary</button>
25
+ <button space="p:small" visual="outline:primary bg:white dark:bg:neutral-800 rounded:small">outline:primary</button>
26
26
  </div>
27
27
  </div>
28
28
 
@@ -31,7 +31,7 @@ visual="outline:[color]"
31
31
 
32
32
  ```html
33
33
  <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
34
- <button space="p:small" visual="outline:primary bg:white dark:bg:neutral-800 rounded:small" style="outline-width: 2px; outline-style: solid;">outline:primary</button>
34
+ <button space="p:small" visual="outline:primary bg:white dark:bg:neutral-800 rounded:small">outline:primary</button>
35
35
  </div>
36
36
  ```
37
37
 
@@ -0,0 +1,29 @@
1
+ # Ring Color
2
+
3
+ Set ring color
4
+
5
+ ## Syntax
6
+ ```
7
+ visual="ring-color:[color]"
8
+ ```
9
+
10
+ ## Values
11
+
12
+ | Value | CSS Output | Description |
13
+ |-------|------------|-------------|
14
+ | `primary` | `--ring-color: var(--c-primary)` | Primary ring color |
15
+ | `blue-500` | `--ring-color: var(--c-blue-500)` | Blue ring color |
16
+
17
+ ## Examples
18
+
19
+ ```html
20
+ <button visual="ring:small ring-color:primary">Colored ring</button>
21
+ ```
22
+
23
+ ## Arbitrary Values
24
+
25
+ Supports custom values using bracket syntax:
26
+
27
+ ```html
28
+ <div visual="ring:[custom-value]">Custom</div>
29
+ ```
@@ -0,0 +1,30 @@
1
+ # Ring Offset
2
+
3
+ Add gap between ring and element
4
+
5
+ ## Syntax
6
+ ```
7
+ visual="ring-offset:[size]"
8
+ ```
9
+
10
+ ## Values
11
+
12
+ | Value | CSS Output | Description |
13
+ |-------|------------|-------------|
14
+ | `0` | `--ring-offset: 0px` | No offset |
15
+ | `2` | `--ring-offset: 2px` | 2px offset |
16
+ | `4` | `--ring-offset: 4px` | 4px offset |
17
+
18
+ ## Examples
19
+
20
+ ```html
21
+ <button visual="ring:small ring-offset:2 ring-color:primary">With offset</button>
22
+ ```
23
+
24
+ ## Arbitrary Values
25
+
26
+ Supports custom values using bracket syntax:
27
+
28
+ ```html
29
+ <div visual="ring:[custom-value]">Custom</div>
30
+ ```
@@ -0,0 +1,62 @@
1
+ # Ring
2
+
3
+ Add focus ring around element using box-shadow
4
+
5
+ ## Syntax
6
+ ```
7
+ visual="ring:[size]"
8
+ ```
9
+
10
+ ## Values
11
+
12
+ | Value | CSS Output | Description |
13
+ |-------|------------|-------------|
14
+ | `none` | `box-shadow: 0 0 0 0 transparent` | No ring |
15
+ | `thin` | `box-shadow: 0 0 0 1px var(--ring-color)` | Thin ring (1px) |
16
+ | `regular` | `box-shadow: 0 0 0 2px var(--ring-color)` | Regular ring (2px) |
17
+ | `small` | `box-shadow: 0 0 0 4px var(--ring-color)` | Small ring (4px) |
18
+ | `medium` | `box-shadow: 0 0 0 6px var(--ring-color)` | Medium ring (6px) |
19
+ | `big` | `box-shadow: 0 0 0 8px var(--ring-color)` | Big ring (8px) |
20
+
21
+ ## Examples
22
+
23
+ ```html
24
+ <button visual="focus-visible:ring:small ring-color:primary">Focus me</button>
25
+ <input visual="focus:ring:regular ring-color:blue-500">
26
+ ```
27
+
28
+ ## Preview
29
+
30
+ <div space="p-x:big p-b:medium m-t:medium" visual="border-w:thin border:neutral-100 dark:border:neutral-800 rounded:medium">
31
+
32
+ ### Focus Ring
33
+
34
+ <div layout="flex col" space="g:medium">
35
+ <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="focus-visible:ring:small"</code> - Ring appears on keyboard focus (try Tab key)</p>
36
+ <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
37
+ <button space="p:small p-x:medium" visual="bg:primary text:white rounded:small focus-visible:ring:small ring-color:blue-300">Tab to me</button>
38
+ <button space="p:small p-x:medium" visual="bg:white dark:bg:neutral-800 border:neutral-300 border-w:thin rounded:small focus-visible:ring:small ring-color:primary">Or me</button>
39
+ </div>
40
+ </div>
41
+
42
+ <details>
43
+ <summary>View Code</summary>
44
+
45
+ ```html
46
+ <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
47
+ <button space="p:small p-x:medium" visual="bg:primary text:white rounded:small focus-visible:ring:small ring-color:blue-300">Tab to me</button>
48
+ <button space="p:small p-x:medium" visual="bg:white dark:bg:neutral-800 border:neutral-300 border-w:thin rounded:small focus-visible:ring:small ring-color:primary">Or me</button>
49
+ </div>
50
+ ```
51
+
52
+ </details>
53
+
54
+ </div>
55
+
56
+ ## Arbitrary Values
57
+
58
+ Supports custom values using bracket syntax:
59
+
60
+ ```html
61
+ <div visual="ring:[custom-value]">Custom</div>
62
+ ```
@@ -30,9 +30,9 @@ visual="stroke-w:[value]"
30
30
  <div layout="flex col" space="g:medium">
31
31
  <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="stroke-w:2"</code> - Control SVG stroke thickness</p>
32
32
  <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
33
- <svg visual="stroke:primary fill:none" width="40" height="40" viewBox="0 0 24 24" style="stroke-width: 1px;"><circle cx="12" cy="12" r="10"/></svg>
34
- <svg visual="stroke:primary fill:none" width="40" height="40" viewBox="0 0 24 24" style="stroke-width: 2px;"><circle cx="12" cy="12" r="10"/></svg>
35
- <svg visual="stroke:primary fill:none" width="40" height="40" viewBox="0 0 24 24" style="stroke-width: 3px;"><circle cx="12" cy="12" r="10"/></svg>
33
+ <svg visual="stroke:primary fill:none stroke-w:1" width="40" height="40" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
34
+ <svg visual="stroke:primary fill:none stroke-w:2" width="40" height="40" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
35
+ <svg visual="stroke:primary fill:none stroke-w:3" width="40" height="40" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
36
36
  </div>
37
37
  </div>
38
38
 
@@ -41,9 +41,9 @@ visual="stroke-w:[value]"
41
41
 
42
42
  ```html
43
43
  <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
44
- <svg visual="stroke:primary fill:none" width="40" height="40" viewBox="0 0 24 24" style="stroke-width: 1px;"><circle cx="12" cy="12" r="10"/></svg>
45
- <svg visual="stroke:primary fill:none" width="40" height="40" viewBox="0 0 24 24" style="stroke-width: 2px;"><circle cx="12" cy="12" r="10"/></svg>
46
- <svg visual="stroke:primary fill:none" width="40" height="40" viewBox="0 0 24 24" style="stroke-width: 3px;"><circle cx="12" cy="12" r="10"/></svg>
44
+ <svg visual="stroke:primary fill:none stroke-w:1" width="40" height="40" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
45
+ <svg visual="stroke:primary fill:none stroke-w:2" width="40" height="40" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
46
+ <svg visual="stroke:primary fill:none stroke-w:3" width="40" height="40" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
47
47
  </div>
48
48
  ```
49
49
 
@@ -29,8 +29,8 @@ visual="stroke:[color]"
29
29
  <div layout="flex col" space="g:medium">
30
30
  <p space="m:none" visual="text:neutral-600 dark:text:neutral-400 text-sm"><code>visual="stroke:primary"</code> - Stroke SVG elements with color</p>
31
31
  <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
32
- <svg visual="stroke:primary fill:none" width="40" height="40" viewBox="0 0 24 24" style="stroke-width: 2px;"><circle cx="12" cy="12" r="10"/></svg>
33
- <svg visual="stroke:danger fill:none" width="40" height="40" viewBox="0 0 24 24" style="stroke-width: 2px;"><circle cx="12" cy="12" r="10"/></svg>
32
+ <svg visual="stroke:primary fill:none stroke-w:2" width="40" height="40" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
33
+ <svg visual="stroke:danger fill:none stroke-w:2" width="40" height="40" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
34
34
  </div>
35
35
  </div>
36
36
 
@@ -39,8 +39,8 @@ visual="stroke:[color]"
39
39
 
40
40
  ```html
41
41
  <div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
42
- <svg visual="stroke:primary fill:none" width="40" height="40" viewBox="0 0 24 24" style="stroke-width: 2px;"><circle cx="12" cy="12" r="10"/></svg>
43
- <svg visual="stroke:danger fill:none" width="40" height="40" viewBox="0 0 24 24" style="stroke-width: 2px;"><circle cx="12" cy="12" r="10"/></svg>
42
+ <svg visual="stroke:primary fill:none stroke-w:2" width="40" height="40" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
43
+ <svg visual="stroke:danger fill:none stroke-w:2" width="40" height="40" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
44
44
  </div>
45
45
  ```
46
46