@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
@@ -0,0 +1,1756 @@
1
+ # @bookklik/senangstart-css
2
+ > Fluent Style Utilities for Humans and AI
3
+
4
+ ## Docs
5
+ - [Documentation](https://bookklik-technologies.github.io/senangstart-css/guide)
6
+
7
+ ## Source
8
+ - [Repository](https://github.com/bookklik-technologies/senangstart-css)
9
+
10
+
11
+ # Documentation Guides
12
+
13
+ # Framework Overview
14
+
15
+ SenangStart CSS is a utility-first framework that uses **Natural Adjectives** instead of abstract numbers.
16
+
17
+ ## Core Philosophy
18
+ - **Natural Scale**: Sizes map to physical mental models (e.g., `tiny` = pebble/4px, `medium` = smartphone/16px, `giant` = door/64px).
19
+ - **Intent-First**: Describe *what* you want ("give it air" -> scale up), not pixels.
20
+ - **Tri-Attribute Syntax**: Separation of concerns into three attributes:
21
+ 1. `layout`: Structure & position (flex, grid, block, sticky).
22
+ 2. `space`: Sizing, padding, margin, gap.
23
+ 3. `visual`: Colors, typography, borders, shadows, effects.
24
+
25
+ ## Syntax Reference
26
+
27
+ ### 1. Layout Attribute
28
+ Controls internal flow and external positioning.
29
+ - **Flex**: `layout="flex col center"` (Flexbox, column direction, centered).
30
+ - **Grid**: `layout="grid"`
31
+ - **Position**: `layout="absolute z:top"`
32
+
33
+ ### 2. Space Attribute
34
+ Controls dimensions and spacing using the Natural Scale.
35
+ - **Syntax**: `[breakpoint]:[property]:[scale]`
36
+ - **Properties**: `p` (padding), `m` (margin), `g` (gap), `w` (width), `h` (height).
37
+ - **Values**:
38
+ - `none` (0px)
39
+ - `thin` (1px), `regular` (2px), `thick` (3px)
40
+ - `tiny` (4px), `tiny-2x` (6px)
41
+ - `small` (8px), `small-2x` (10px), `small-3x` (12px), `small-4x` (14px)
42
+ - `medium` (16px), `medium-2x` (20px), `medium-3x` (24px), `medium-4x` (28px)
43
+ - `large` (32px), `large-2x` (36px), `large-3x` (40px), `large-4x` (44px)
44
+ - `big` (48px), `big-2x` (56px), `big-3x` (64px), `big-4x` (80px)
45
+ - `giant` (96px), `giant-2x` (112px), `giant-3x` (128px), `giant-4x` (144px)
46
+ - `vast` (160px), `vast-2x` (176px), `vast-3x` (192px), `vast-4x` (208px)
47
+ - `vast-5x` (224px), `vast-6x` (240px), `vast-7x` (256px), `vast-8x` (288px)
48
+ - `vast-9x` (320px), `vast-10x` (384px)
49
+ - **Arbitrary**: `space="w:[350px]"`
50
+
51
+ ### 3. Visual Attribute
52
+ Controls appearance.
53
+ - **Colors**: `bg:primary`, `text:white`, `border:grey`.
54
+ - **Typography**: `font:bold`, `text-size:big`.
55
+ - **Effects**: `rounded:medium`, `shadow:big`, `opacity:[0.5]`.
56
+
57
+ ## Modifiers
58
+
59
+ ### Responsive Prefixes
60
+ Mobile-first breakpoints:
61
+ - (default): 0px+
62
+ - `mob:`: 480px+ ("Large Mobile")
63
+ - `tab:`: 768px+ ("Tablet")
64
+ - `lap:`: 1024px+ ("Laptop")
65
+ - `desk:`: 1280px+ ("Desktop")
66
+
67
+ Example: `space="p:small tab:p:medium lap:p:big"`
68
+
69
+ ### State Prefixes
70
+ - `hover:`: `visual="bg:primary hover:bg:primary-dark"`
71
+ - `focus:`: `visual="border:grey focus:border:brand"`
72
+ - `active:`, `disabled:`, `group-hover:`
73
+ - `dark:`: `visual="bg:white dark:bg:slate-900"`
74
+
75
+ ## Configuration
76
+ Use `senangstart.config.js` to override defaults.
77
+ ```js
78
+ export default {
79
+ theme: {
80
+ colors: { brand: '#8B5CF6' },
81
+ spacing: { huge: '256px' }
82
+ }
83
+ }
84
+ ```
85
+
86
+ # Utility Definitions
87
+
88
+ ## accent-color
89
+ > Set accent color for form controls
90
+
91
+ **Syntax:** `visual="accent:[color]"`
92
+
93
+
94
+ ## align-content
95
+ > Align content rows in multi-line flex container
96
+
97
+ **Syntax:** `layout="content:[value]"`
98
+
99
+ * `start`: Align to start (`align-content: flex-start;`)
100
+ * `end`: Align to end (`align-content: flex-end;`)
101
+ * `center`: Center content (`align-content: center;`)
102
+ * `between`: Space between rows (`align-content: space-between;`)
103
+ * `around`: Space around rows (`align-content: space-around;`)
104
+ * `evenly`: Even spacing (`align-content: space-evenly;`)
105
+ * `stretch`: Stretch rows (`align-content: stretch;`)
106
+
107
+ ## align-items
108
+ > Align items along the cross axis
109
+
110
+ **Syntax:** `layout="items:[value]"`
111
+
112
+ * `start`: Align to start (`align-items: flex-start;`)
113
+ * `end`: Align to end (`align-items: flex-end;`)
114
+ * `center`: Center items (`align-items: center;`)
115
+ * `baseline`: Align to baseline (`align-items: baseline;`)
116
+ * `stretch`: Stretch items (`align-items: stretch;`)
117
+
118
+ ## align-self
119
+ > Override alignment for a single item
120
+
121
+ **Syntax:** `layout="self:[value]"`
122
+
123
+ * `auto`: Use parent alignment (`align-self: auto;`)
124
+ * `start`: Align to start (`align-self: flex-start;`)
125
+ * `end`: Align to end (`align-self: flex-end;`)
126
+ * `center`: Center item (`align-self: center;`)
127
+ * `baseline`: Align to baseline (`align-self: baseline;`)
128
+ * `stretch`: Stretch item (`align-self: stretch;`)
129
+
130
+ ## animation-builtin
131
+ > Apply built-in animations
132
+
133
+ **Syntax:** `visual="animate:[value]"`
134
+
135
+ * `none`: No animation (`animation: none;`)
136
+ * `spin`: Spinning (`animation: spin 1s linear infinite;`)
137
+ * `ping`: Ping effect
138
+ * `pulse`: Pulsing
139
+ * `bounce`: Bouncing (`animation: bounce 1s infinite;`)
140
+
141
+ ## animation-delay
142
+ > Set animation delay
143
+
144
+ **Syntax:** `visual="animation-delay:[value]"`
145
+
146
+ * `instant`: 75ms delay (`animation-delay: 75ms;`)
147
+ * `quick`: 100ms delay (`animation-delay: 100ms;`)
148
+ * `fast`: 150ms delay (`animation-delay: 150ms;`)
149
+ * `normal`: 200ms delay (`animation-delay: 200ms;`)
150
+ * `slow`: 300ms delay (`animation-delay: 300ms;`)
151
+
152
+ ## animation-direction
153
+ > Set animation direction
154
+
155
+ **Syntax:** `visual="animation-direction:[value]"`
156
+
157
+ * `normal`: Normal direction (`animation-direction: normal;`)
158
+ * `reverse`: Reverse direction (`animation-direction: reverse;`)
159
+ * `alternate`: Alternate direction (`animation-direction: alternate;`)
160
+ * `alternate-reverse`: Alternate reverse (`animation-direction: alternate-reverse;`)
161
+
162
+ ## animation-duration
163
+ > Set animation duration
164
+
165
+ **Syntax:** `visual="animation-duration:[value]"`
166
+
167
+ * `instant`: 75ms (`animation-duration: 75ms;`)
168
+ * `quick`: 100ms (`animation-duration: 100ms;`)
169
+ * `fast`: 150ms (`animation-duration: 150ms;`)
170
+ * `normal`: 200ms (`animation-duration: 200ms;`)
171
+ * `slow`: 300ms (`animation-duration: 300ms;`)
172
+ * `slower`: 500ms (`animation-duration: 500ms;`)
173
+ * `lazy`: 700ms (`animation-duration: 700ms;`)
174
+
175
+ ## animation-fill
176
+ > Set animation fill mode
177
+
178
+ **Syntax:** `visual="animation-fill:[value]"`
179
+
180
+ * `none`: No fill (`animation-fill-mode: none;`)
181
+ * `forwards`: Keep end state (`animation-fill-mode: forwards;`)
182
+ * `backwards`: Apply start state (`animation-fill-mode: backwards;`)
183
+ * `both`: Both directions (`animation-fill-mode: both;`)
184
+
185
+ ## animation-iteration
186
+ > Set animation iteration count
187
+
188
+ **Syntax:** `visual="animation-iteration:[value]"`
189
+
190
+ * `1`: Once (`animation-iteration-count: 1;`)
191
+ * `infinite`: Forever (`animation-iteration-count: infinite;`)
192
+
193
+ ## animation-play
194
+ > Control animation play state
195
+
196
+ **Syntax:** `visual="animation-play:[value]"`
197
+
198
+ * `running`: Animation running (`animation-play-state: running;`)
199
+ * `paused`: Animation paused (`animation-play-state: paused;`)
200
+
201
+ ## appearance
202
+ > Control native appearance
203
+
204
+ **Syntax:** `visual="appearance:[value]"`
205
+
206
+ * `none`: Remove native styling (`appearance: none;`)
207
+ * `auto`: Default appearance (`appearance: auto;`)
208
+
209
+ ## aspect-ratio
210
+ > Set element aspect ratio
211
+
212
+ **Syntax:** `layout="aspect:[value]"`
213
+
214
+ * `auto`: Natural aspect ratio (`aspect-ratio: auto;`)
215
+ * `square`: 1:1 square (`aspect-ratio: 1 / 1;`)
216
+ * `video`: 16:9 video (`aspect-ratio: 16 / 9;`)
217
+
218
+ ## backdrop-blur
219
+ > Blur backdrop
220
+
221
+ **Syntax:** `visual="backdrop-blur:[value]"`
222
+
223
+ * `none`: No blur (`backdrop-filter: blur(0);`)
224
+ * `tiny`: Tiny blur (`backdrop-filter: blur(2px);`)
225
+ * `small`: Small blur (`backdrop-filter: blur(4px);`)
226
+ * `medium`: Medium blur (`backdrop-filter: blur(8px);`)
227
+ * `big`: Large blur (`backdrop-filter: blur(12px);`)
228
+ * `giant`: Giant blur (`backdrop-filter: blur(24px);`)
229
+ * `vast`: Vast blur (`backdrop-filter: blur(48px);`)
230
+
231
+ ## backdrop-brightness
232
+ > Adjust backdrop brightness
233
+
234
+ **Syntax:** `visual="backdrop-brightness:[value]"`
235
+
236
+ * `dim`: 50% brightness (`backdrop-filter: brightness(0.5);`)
237
+ * `dark`: 75% brightness (`backdrop-filter: brightness(0.75);`)
238
+ * `normal`: Normal brightness (`backdrop-filter: brightness(1);`)
239
+ * `bright`: 125% brightness (`backdrop-filter: brightness(1.25);`)
240
+ * `vivid`: 150% brightness (`backdrop-filter: brightness(1.5);`)
241
+
242
+ ## backdrop-contrast
243
+ > Adjust backdrop contrast
244
+
245
+ **Syntax:** `visual="backdrop-contrast:[value]"`
246
+
247
+ * `low`: Low contrast (`backdrop-filter: contrast(0.5);`)
248
+ * `reduced`: Reduced contrast (`backdrop-filter: contrast(0.75);`)
249
+ * `normal`: Normal contrast (`backdrop-filter: contrast(1);`)
250
+ * `high`: High contrast (`backdrop-filter: contrast(1.25);`)
251
+ * `max`: Maximum contrast (`backdrop-filter: contrast(1.5);`)
252
+
253
+ ## backdrop-grayscale
254
+ > Apply grayscale to backdrop
255
+
256
+ **Syntax:** `visual="backdrop-grayscale:[value]"`
257
+
258
+ * `none`: No grayscale (`backdrop-filter: grayscale(0%);`)
259
+ * `partial`: 50% grayscale (`backdrop-filter: grayscale(50%);`)
260
+ * `full`: Full grayscale (`backdrop-filter: grayscale(100%);`)
261
+
262
+ ## backdrop-hue-rotate
263
+ > Rotate backdrop hue
264
+
265
+ **Syntax:** `visual="backdrop-hue-rotate:[degrees]"`
266
+
267
+ * `0`: No rotation (`backdrop-filter: hue-rotate(0deg);`)
268
+ * `90`: 90° rotation (`backdrop-filter: hue-rotate(90deg);`)
269
+ * `180`: 180° rotation (`backdrop-filter: hue-rotate(180deg);`)
270
+
271
+ ## backdrop-invert
272
+ > Invert backdrop colors
273
+
274
+ **Syntax:** `visual="backdrop-invert:[value]"`
275
+
276
+ * `none`: No inversion (`backdrop-filter: invert(0%);`)
277
+ * `partial`: 50% inversion (`backdrop-filter: invert(50%);`)
278
+ * `full`: Full inversion (`backdrop-filter: invert(100%);`)
279
+
280
+ ## backdrop-opacity
281
+ > Set backdrop opacity
282
+
283
+ **Syntax:** `visual="backdrop-opacity:[value]"`
284
+
285
+ * `0`: Transparent (`backdrop-filter: opacity(0);`)
286
+ * `50`: 50% opacity (`backdrop-filter: opacity(0.5);`)
287
+ * `100`: Fully opaque (`backdrop-filter: opacity(1);`)
288
+
289
+ ## backdrop-saturate
290
+ > Adjust backdrop saturation
291
+
292
+ **Syntax:** `visual="backdrop-saturate:[value]"`
293
+
294
+ * `none`: Desaturated (`backdrop-filter: saturate(0);`)
295
+ * `low`: Low saturation (`backdrop-filter: saturate(0.5);`)
296
+ * `normal`: Normal saturation (`backdrop-filter: saturate(1);`)
297
+ * `high`: High saturation (`backdrop-filter: saturate(1.5);`)
298
+ * `vivid`: Very saturated (`backdrop-filter: saturate(2);`)
299
+
300
+ ## backdrop-sepia
301
+ > Apply sepia to backdrop
302
+
303
+ **Syntax:** `visual="backdrop-sepia:[value]"`
304
+
305
+ * `none`: No sepia (`backdrop-filter: sepia(0%);`)
306
+ * `partial`: 50% sepia (`backdrop-filter: sepia(50%);`)
307
+ * `full`: Full sepia (`backdrop-filter: sepia(100%);`)
308
+
309
+ ## background-attachment
310
+ > Set background attachment behavior
311
+
312
+ **Syntax:** `visual="bg-attachment:[value]"`
313
+
314
+ * `fixed`: Fixed background (`background-attachment: fixed;`)
315
+ * `local`: Local scroll (`background-attachment: local;`)
316
+ * `scroll`: Scroll with page (`background-attachment: scroll;`)
317
+
318
+ ## background-blend-mode
319
+ > Set background blend mode
320
+
321
+ **Syntax:** `visual="bg-blend:[value]"`
322
+
323
+ * `normal`: Normal blend (`background-blend-mode: normal;`)
324
+ * `multiply`: Multiply blend (`background-blend-mode: multiply;`)
325
+ * `screen`: Screen blend (`background-blend-mode: screen;`)
326
+ * `overlay`: Overlay blend (`background-blend-mode: overlay;`)
327
+ * `darken`: Darken blend (`background-blend-mode: darken;`)
328
+ * `lighten`: Lighten blend (`background-blend-mode: lighten;`)
329
+
330
+ ## background-clip
331
+ > Set background clipping area
332
+
333
+ **Syntax:** `visual="bg-clip:[value]"`
334
+
335
+ * `border`: Clip to border (`background-clip: border-box;`)
336
+ * `padding`: Clip to padding (`background-clip: padding-box;`)
337
+ * `content`: Clip to content (`background-clip: content-box;`)
338
+ * `text`: Clip to text
339
+
340
+ ## background-color
341
+ > Set background color
342
+
343
+ **Syntax:** `visual="bg:[color]"`
344
+
345
+
346
+ ## background-image
347
+ > Set background image or gradient
348
+
349
+ **Syntax:** `visual="bg-image:[value]"`
350
+
351
+ * `none`: No background image (`background-image: none;`)
352
+ * `gradient-to-t`: Gradient to top
353
+ * `gradient-to-b`: Gradient to bottom
354
+ * `gradient-to-l`: Gradient to left
355
+ * `gradient-to-r`: Gradient to right
356
+
357
+ ## background-origin
358
+ > Set background positioning origin
359
+
360
+ **Syntax:** `visual="bg-origin:[value]"`
361
+
362
+ * `border`: Origin at border (`background-origin: border-box;`)
363
+ * `padding`: Origin at padding (`background-origin: padding-box;`)
364
+ * `content`: Origin at content (`background-origin: content-box;`)
365
+
366
+ ## background-position
367
+ > Set background position
368
+
369
+ **Syntax:** `visual="bg-pos:[value]"`
370
+
371
+ * `center`: Center position (`background-position: center;`)
372
+ * `top`: Top position (`background-position: top;`)
373
+ * `bottom`: Bottom position (`background-position: bottom;`)
374
+ * `left`: Left position (`background-position: left;`)
375
+ * `right`: Right position (`background-position: right;`)
376
+ * `top-left`: Top left (`background-position: top left;`)
377
+ * `top-right`: Top right (`background-position: top right;`)
378
+ * `bottom-left`: Bottom left (`background-position: bottom left;`)
379
+ * `bottom-right`: Bottom right (`background-position: bottom right;`)
380
+
381
+ ## background-repeat
382
+ > Set background repeat behavior
383
+
384
+ **Syntax:** `visual="bg-repeat:[value]"`
385
+
386
+ * `repeat`: Repeat both axes (`background-repeat: repeat;`)
387
+ * `no-repeat`: No repeat (`background-repeat: no-repeat;`)
388
+ * `repeat-x`: Repeat horizontally (`background-repeat: repeat-x;`)
389
+ * `repeat-y`: Repeat vertically (`background-repeat: repeat-y;`)
390
+ * `round`: Round repeat (`background-repeat: round;`)
391
+ * `space`: Spaced repeat (`background-repeat: space;`)
392
+
393
+ ## background-size
394
+ > Set background size
395
+
396
+ **Syntax:** `visual="bg-size:[value]"`
397
+
398
+ * `auto`: Original size (`background-size: auto;`)
399
+ * `cover`: Cover container (`background-size: cover;`)
400
+ * `contain`: Contain in container (`background-size: contain;`)
401
+
402
+ ## blend-modes
403
+ > Set mix blend mode
404
+
405
+ **Syntax:** `visual="mix-blend:[value]"`
406
+
407
+ * `normal`: Normal blend (`mix-blend-mode: normal;`)
408
+ * `multiply`: Multiply blend (`mix-blend-mode: multiply;`)
409
+ * `screen`: Screen blend (`mix-blend-mode: screen;`)
410
+ * `overlay`: Overlay blend (`mix-blend-mode: overlay;`)
411
+ * `darken`: Darken blend (`mix-blend-mode: darken;`)
412
+ * `lighten`: Lighten blend (`mix-blend-mode: lighten;`)
413
+
414
+ ## border
415
+ > Set border color for all sides or specific sides
416
+
417
+ **Syntax:** `visual="border:[color]" | visual="border-{t|b|l|r|x|y}:[color]"`
418
+
419
+ * `primary`: Primary color border
420
+ * `gray-300`: Light gray border
421
+ * `danger`: Danger/error border
422
+
423
+ ## border-collapse
424
+ > Control table border collapse
425
+
426
+ **Syntax:** `layout="border:[value]"`
427
+
428
+ * `collapse`: Collapse borders (`border-collapse: collapse;`)
429
+ * `separate`: Separate borders (`border-collapse: separate;`)
430
+
431
+ ## border-radius
432
+ > Set border radius
433
+
434
+ **Syntax:** `visual="rounded:[value]"`
435
+
436
+ * `none`: No rounding (`border-radius: var(--r-none);`)
437
+ * `small`: Small radius (`border-radius: var(--r-small);`)
438
+ * `medium`: Medium radius (`border-radius: var(--r-medium);`)
439
+ * `big`: Large radius (`border-radius: var(--r-big);`)
440
+ * `round`: Fully round (`border-radius: var(--r-round);`)
441
+
442
+ ## border-spacing
443
+ > Control spacing between table borders
444
+
445
+ **Syntax:** `layout="border-spacing:[value]"`
446
+
447
+ * `border-spacing`: All spacing (`border-spacing: {value};`)
448
+ * `border-spacing-x`: Horizontal spacing (`border-spacing: {value} 0;`)
449
+ * `border-spacing-y`: Vertical spacing (`border-spacing: 0 {value};`)
450
+
451
+ ## border-style
452
+ > Set border style
453
+
454
+ **Syntax:** `visual="border-style:[value]"`
455
+
456
+ * `solid`: Solid border (`border-style: solid;`)
457
+ * `dashed`: Dashed border (`border-style: dashed;`)
458
+ * `dotted`: Dotted border (`border-style: dotted;`)
459
+ * `double`: Double border (`border-style: double;`)
460
+ * `none`: No border (`border-style: none;`)
461
+
462
+ ## border-width
463
+ > Set border width for all sides or specific sides
464
+
465
+ **Syntax:** `visual="border-w:[value]" | visual="border-{t|b|l|r|x|y}-w:[value]"`
466
+
467
+ * `none`: No border (0px) (`border-width: var(--s-none);`)
468
+ * `thin`: Thin border (1px) (`border-width: var(--s-thin);`)
469
+ * `regular`: Standard border (2px) (`border-width: var(--s-regular);`)
470
+ * `thick`: Thick border (3px) (`border-width: var(--s-thick);`)
471
+
472
+ ## box-shadow
473
+ > Add box shadow
474
+
475
+ **Syntax:** `visual="shadow:[value]"`
476
+
477
+ * `none`: No shadow (`box-shadow: var(--shadow-none);`)
478
+ * `small`: Small shadow (`box-shadow: var(--shadow-small);`)
479
+ * `medium`: Medium shadow (`box-shadow: var(--shadow-medium);`)
480
+ * `big`: Large shadow (`box-shadow: var(--shadow-big);`)
481
+ * `giant`: Giant shadow (`box-shadow: var(--shadow-giant);`)
482
+
483
+ ## box-sizing
484
+ > Control how width and height are calculated
485
+
486
+ **Syntax:** `layout="box:[value]"`
487
+
488
+ * `border`: Include padding and border in size (`box-sizing: border-box;`)
489
+ * `content`: Exclude padding and border (`box-sizing: content-box;`)
490
+
491
+ ## caption-side
492
+ > Control table caption position
493
+
494
+ **Syntax:** `layout="caption:[value]"`
495
+
496
+ * `top`: Caption on top (`caption-side: top;`)
497
+ * `bottom`: Caption on bottom (`caption-side: bottom;`)
498
+
499
+ ## caret-color
500
+ > Set text input caret color
501
+
502
+ **Syntax:** `visual="caret:[color]"`
503
+
504
+
505
+ ## color-scheme
506
+ > Set preferred color scheme
507
+
508
+ **Syntax:** `visual="color-scheme:[value]"`
509
+
510
+ * `light`: Light mode (`color-scheme: light;`)
511
+ * `dark`: Dark mode (`color-scheme: dark;`)
512
+ * `normal`: System default (`color-scheme: normal;`)
513
+
514
+ ## columns
515
+ > Create multi-column layouts
516
+
517
+ **Syntax:** `layout="cols:[value]"`
518
+
519
+ * `1-12`: N columns (`columns: {n};`)
520
+ * `auto`: Auto columns (`columns: auto;`)
521
+
522
+ ## container
523
+ > Create a centered container with max-width
524
+
525
+ **Syntax:** `layout="container"`
526
+
527
+ * `container`: Centered container
528
+
529
+ ## cursor
530
+ > Set cursor style
531
+
532
+ **Syntax:** `visual="cursor:[value]"`
533
+
534
+ * `auto`: Auto cursor (`cursor: auto;`)
535
+ * `default`: Default cursor (`cursor: default;`)
536
+ * `pointer`: Pointer cursor (`cursor: pointer;`)
537
+ * `wait`: Wait cursor (`cursor: wait;`)
538
+ * `text`: Text cursor (`cursor: text;`)
539
+ * `move`: Move cursor (`cursor: move;`)
540
+ * `not-allowed`: Not allowed (`cursor: not-allowed;`)
541
+ * `grab`: Grab cursor (`cursor: grab;`)
542
+ * `grabbing`: Grabbing cursor (`cursor: grabbing;`)
543
+
544
+ ## display
545
+ > Control the display type of elements
546
+
547
+ **Syntax:** `layout="[display-value]"`
548
+
549
+ * `flex`: Flexbox container (`display: flex;`)
550
+ * `inline-flex`: Inline flexbox container (`display: inline-flex;`)
551
+ * `grid`: Grid container (`display: grid;`)
552
+ * `inline-grid`: Inline grid container (`display: inline-grid;`)
553
+ * `block`: Block element (`display: block;`)
554
+ * `inline`: Inline block element (`display: inline-block;`)
555
+ * `hidden`: Hidden element (`display: none;`)
556
+
557
+ ## divide
558
+ > Add borders between child elements
559
+
560
+ **Syntax:** `visual="divide:[color]" | visual="divide-{x|y}:[color]" | visual="divide-{x|y}:reverse"`
561
+
562
+ * `primary`: Primary color divider
563
+ * `gray-300`: Light gray divider
564
+ * `danger`: Danger/error divider
565
+
566
+ ## divide-reverse
567
+ > Reverse border side for flex-reverse
568
+
569
+ **Syntax:** `visual="divide-{x|y}:reverse"`
570
+
571
+ * `divide-x:reverse`: Reverse X-axis divider (`--ss-divide-x-reverse: 1;`)
572
+ * `divide-y:reverse`: Reverse Y-axis divider (`--ss-divide-y-reverse: 1;`)
573
+
574
+ ## divide-style
575
+ > Set divider style
576
+
577
+ **Syntax:** `visual="divide-style:[value]"`
578
+
579
+ * `solid`: Solid divider (`border-style: solid;`)
580
+ * `dashed`: Dashed divider (`border-style: dashed;`)
581
+ * `dotted`: Dotted divider (`border-style: dotted;`)
582
+ * `double`: Double divider (`border-style: double;`)
583
+ * `none`: No divider (`border-style: none;`)
584
+
585
+ ## divide-width
586
+ > Set divider width
587
+
588
+ **Syntax:** `visual="divide-w:[value]" | visual="divide-{x|y}-w:[value]"`
589
+
590
+ * `none`: No divider (0px) (`border-width: var(--s-none);`)
591
+ * `thin`: Thin divider (1px) (`border-width: var(--s-thin);`)
592
+ * `regular`: Standard divider (2px) (`border-width: var(--s-regular);`)
593
+ * `thick`: Thick divider (3px) (`border-width: var(--s-thick);`)
594
+
595
+ ## field-sizing
596
+ > Control form field sizing
597
+
598
+ **Syntax:** `visual="field-sizing:[value]"`
599
+
600
+ * `fixed`: Fixed size (`field-sizing: fixed;`)
601
+ * `content`: Size to content (`field-sizing: content;`)
602
+
603
+ ## fill
604
+ > Set SVG fill color
605
+
606
+ **Syntax:** `visual="fill:[color]"`
607
+
608
+ * `none`: No fill (`fill: none;`)
609
+ * `current`: Current color (`fill: currentColor;`)
610
+
611
+ ## filter-blur
612
+ > Apply blur filter
613
+
614
+ **Syntax:** `visual="blur:[value]"`
615
+
616
+ * `none`: No blur (`filter: blur(0);`)
617
+ * `tiny`: Tiny blur (`filter: blur(2px);`)
618
+ * `small`: Small blur (`filter: blur(4px);`)
619
+ * `medium`: Medium blur (`filter: blur(8px);`)
620
+ * `big`: Large blur (`filter: blur(12px);`)
621
+ * `giant`: Giant blur (`filter: blur(24px);`)
622
+ * `vast`: Vast blur (`filter: blur(48px);`)
623
+
624
+ ## filter-brightness
625
+ > Adjust brightness
626
+
627
+ **Syntax:** `visual="brightness:[value]"`
628
+
629
+ * `dim`: 50% brightness (`filter: brightness(0.5);`)
630
+ * `dark`: 75% brightness (`filter: brightness(0.75);`)
631
+ * `normal`: Normal brightness (`filter: brightness(1);`)
632
+ * `bright`: 125% brightness (`filter: brightness(1.25);`)
633
+ * `vivid`: 150% brightness (`filter: brightness(1.5);`)
634
+
635
+ ## filter-contrast
636
+ > Adjust contrast
637
+
638
+ **Syntax:** `visual="contrast:[value]"`
639
+
640
+ * `low`: Low contrast (`filter: contrast(0.5);`)
641
+ * `reduced`: Reduced contrast (`filter: contrast(0.75);`)
642
+ * `normal`: Normal contrast (`filter: contrast(1);`)
643
+ * `high`: High contrast (`filter: contrast(1.25);`)
644
+ * `max`: Maximum contrast (`filter: contrast(1.5);`)
645
+
646
+ ## filter-drop-shadow
647
+ > Add drop shadow
648
+
649
+ **Syntax:** `visual="drop-shadow:[value]"`
650
+
651
+ * `none`: No shadow (`filter: drop-shadow(none);`)
652
+ * `tiny`: Tiny shadow (`filter: drop-shadow(0 1px 1px rgba(0,0,0,0.05));`)
653
+ * `small`: Small shadow (`filter: drop-shadow(0 1px 2px rgba(0,0,0,0.1));`)
654
+ * `medium`: Medium shadow (`filter: drop-shadow(0 4px 3px rgba(0,0,0,0.07));`)
655
+ * `big`: Large shadow (`filter: drop-shadow(0 10px 8px rgba(0,0,0,0.04));`)
656
+ * `giant`: Giant shadow
657
+
658
+ ## filter-grayscale
659
+ > Apply grayscale filter
660
+
661
+ **Syntax:** `visual="grayscale:[value]"`
662
+
663
+ * `none`: No grayscale (`filter: grayscale(0%);`)
664
+ * `partial`: 50% grayscale (`filter: grayscale(50%);`)
665
+ * `full`: Full grayscale (`filter: grayscale(100%);`)
666
+
667
+ ## filter-hue-rotate
668
+ > Rotate hue colors
669
+
670
+ **Syntax:** `visual="hue-rotate:[degrees]"`
671
+
672
+ * `0`: No rotation (`filter: hue-rotate(0deg);`)
673
+ * `90`: 90° rotation (`filter: hue-rotate(90deg);`)
674
+ * `180`: 180° rotation (`filter: hue-rotate(180deg);`)
675
+
676
+ ## filter-invert
677
+ > Invert colors
678
+
679
+ **Syntax:** `visual="invert:[value]"`
680
+
681
+ * `none`: No inversion (`filter: invert(0%);`)
682
+ * `partial`: 50% inversion (`filter: invert(50%);`)
683
+ * `full`: Full inversion (`filter: invert(100%);`)
684
+
685
+ ## filter-saturate
686
+ > Adjust saturation
687
+
688
+ **Syntax:** `visual="saturate:[value]"`
689
+
690
+ * `none`: Desaturated (`filter: saturate(0);`)
691
+ * `low`: Low saturation (`filter: saturate(0.5);`)
692
+ * `normal`: Normal saturation (`filter: saturate(1);`)
693
+ * `high`: High saturation (`filter: saturate(1.5);`)
694
+ * `vivid`: Very saturated (`filter: saturate(2);`)
695
+
696
+ ## filter-sepia
697
+ > Apply sepia filter
698
+
699
+ **Syntax:** `visual="sepia:[value]"`
700
+
701
+ * `none`: No sepia (`filter: sepia(0%);`)
702
+ * `partial`: 50% sepia (`filter: sepia(50%);`)
703
+ * `full`: Full sepia (`filter: sepia(100%);`)
704
+
705
+ ## flex
706
+ > Flex shorthand property
707
+
708
+ **Syntax:** `layout="flex:[value]"`
709
+
710
+ * `1`: Flex 1 (`flex: 1 1 0%;`)
711
+ * `auto`: Flex auto (`flex: 1 1 auto;`)
712
+ * `initial`: Initial flex (`flex: 0 1 auto;`)
713
+ * `none`: No flex (`flex: none;`)
714
+
715
+ ## flex-basis
716
+ > Set initial size of flex item
717
+
718
+ **Syntax:** `layout="basis:[value]"`
719
+
720
+ * `auto`: Auto basis (`flex-basis: auto;`)
721
+ * `0`: Zero basis (`flex-basis: 0;`)
722
+
723
+ ## flex-direction
724
+ > Set the direction of flex items
725
+
726
+ **Syntax:** `layout="[direction]"`
727
+
728
+ * `row`: Horizontal (default) (`flex-direction: row;`)
729
+ * `col`: Vertical (`flex-direction: column;`)
730
+ * `row-reverse`: Horizontal reversed (`flex-direction: row-reverse;`)
731
+ * `col-reverse`: Vertical reversed (`flex-direction: column-reverse;`)
732
+
733
+ ## flex-items
734
+ > Control flex grow and shrink behavior
735
+
736
+ **Syntax:** `layout="[flex-item-value]"`
737
+
738
+ * `grow`: Allow item to grow (`flex-grow: 1;`)
739
+ * `grow-0`: Prevent growing (`flex-grow: 0;`)
740
+ * `shrink`: Allow item to shrink (`flex-shrink: 1;`)
741
+ * `shrink-0`: Prevent shrinking (`flex-shrink: 0;`)
742
+
743
+ ## flex-wrap
744
+ > Control how flex items wrap
745
+
746
+ **Syntax:** `layout="[wrap-value]"`
747
+
748
+ * `wrap`: Allow wrapping (`flex-wrap: wrap;`)
749
+ * `nowrap`: Prevent wrapping (`flex-wrap: nowrap;`)
750
+ * `wrap-reverse`: Wrap in reverse (`flex-wrap: wrap-reverse;`)
751
+
752
+ ## float-clear
753
+ > Control element floating and clearing
754
+
755
+ **Syntax:** `layout="float:[value]" or layout="clear:[value]"`
756
+
757
+ * `left`: Float left (`float: left;`)
758
+ * `right`: Float right (`float: right;`)
759
+ * `none`: No float (`float: none;`)
760
+
761
+ ## font-family
762
+ > Set font family
763
+
764
+ **Syntax:** `visual="font:[family]"`
765
+
766
+ * `sans`: Sans-serif
767
+ * `serif`: Serif (`font-family: ui-serif, Georgia, serif;`)
768
+ * `mono`: Monospace (`font-family: ui-monospace, monospace;`)
769
+
770
+ ## font-smoothing
771
+ > Control font smoothing
772
+
773
+ **Syntax:** `visual="[smoothing-value]"`
774
+
775
+ * `antialiased`: Antialiased
776
+ * `subpixel-antialiased`: Subpixel antialiased
777
+
778
+ ## font-style
779
+ > Set font style
780
+
781
+ **Syntax:** `visual="[style-value]"`
782
+
783
+ * `italic`: Italic text (`font-style: italic;`)
784
+ * `not-italic`: Normal style (`font-style: normal;`)
785
+
786
+ ## font-variant-numeric
787
+ > Control numeric font variants
788
+
789
+ **Syntax:** `visual="[variant-value]"`
790
+
791
+ * `normal-nums`: Normal numbers (`font-variant-numeric: normal;`)
792
+ * `ordinal`: Ordinal markers (`font-variant-numeric: ordinal;`)
793
+ * `slashed-zero`: Slashed zero (`font-variant-numeric: slashed-zero;`)
794
+ * `lining-nums`: Lining numbers (`font-variant-numeric: lining-nums;`)
795
+ * `oldstyle-nums`: Oldstyle numbers (`font-variant-numeric: oldstyle-nums;`)
796
+ * `proportional-nums`: Proportional numbers (`font-variant-numeric: proportional-nums;`)
797
+ * `tabular-nums`: Tabular numbers (`font-variant-numeric: tabular-nums;`)
798
+
799
+ ## font-weight
800
+ > Set font weight
801
+
802
+ **Syntax:** `visual="font:[weight]"`
803
+
804
+ * `normal`: Normal weight (`font-weight: var(--fw-normal);`)
805
+ * `medium`: Medium weight (`font-weight: var(--fw-medium);`)
806
+ * `bold`: Bold weight (`font-weight: var(--fw-bold);`)
807
+
808
+ ## forced-color-adjust
809
+ > Control forced colors mode behavior
810
+
811
+ **Syntax:** `visual="forced-color:[value]"`
812
+
813
+ * `auto`: Auto adjust (`forced-color-adjust: auto;`)
814
+ * `none`: No adjustment (`forced-color-adjust: none;`)
815
+
816
+ ## gap
817
+ > Add gap between flex/grid items
818
+
819
+ **Syntax:** `space="g:[value]" or space="g-{axis}:[value]"`
820
+
821
+ * `undefined`: All gaps (`gap: var(--s-{value});`)
822
+ * `undefined`: Column gap (`column-gap: var(--s-{value});`)
823
+ * `undefined`: Row gap (`row-gap: var(--s-{value});`)
824
+
825
+ ## gradient-from
826
+ > Set gradient start color
827
+
828
+ **Syntax:** `visual="from:[color]"`
829
+
830
+ * `primary`: Start from primary
831
+ * `blue-500`: Start from blue
832
+
833
+ ## gradient-to
834
+ > Set gradient end color
835
+
836
+ **Syntax:** `visual="to:[color]"`
837
+
838
+ * `purple-500`: End at purple (`--tw-gradient-to: var(--c-purple-500);`)
839
+ * `pink-500`: End at pink (`--tw-gradient-to: var(--c-pink-500);`)
840
+
841
+ ## gradient-via
842
+ > Set gradient middle color
843
+
844
+ **Syntax:** `visual="via:[color]"`
845
+
846
+ * `purple-500`: Via purple
847
+
848
+ ## grid-auto-flow
849
+ > Control how auto-placed items flow in grid
850
+
851
+ **Syntax:** `layout="grid-flow:[value]"`
852
+
853
+ * `row`: Place by row (`grid-auto-flow: row;`)
854
+ * `col`: Place by column (`grid-auto-flow: column;`)
855
+ * `dense`: Dense packing (`grid-auto-flow: dense;`)
856
+ * `row-dense`: Row with dense (`grid-auto-flow: row dense;`)
857
+ * `col-dense`: Column with dense (`grid-auto-flow: column dense;`)
858
+
859
+ ## grid-auto-sizing
860
+ > Control size of auto-generated grid tracks
861
+
862
+ **Syntax:** `layout="auto-cols:[value]" or layout="auto-rows:[value]"`
863
+
864
+ * `auto`: Auto size (`auto`)
865
+ * `min`: Minimum content (`min-content`)
866
+ * `max`: Maximum content (`max-content`)
867
+ * `fr`: Fractional unit (`minmax(0, 1fr)`)
868
+
869
+ ## grid-column-span
870
+ > Span across grid columns
871
+
872
+ **Syntax:** `layout="col-span:[value]"`
873
+
874
+ * `1-12`: Span N columns (`grid-column: span {n} / span {n};`)
875
+ * `full`: Span all columns (`grid-column: 1 / -1;`)
876
+
877
+ ## grid-columns
878
+ > Define grid template columns
879
+
880
+ **Syntax:** `layout="grid-cols:[value]"`
881
+
882
+ * `1-12`: N equal columns
883
+ * `none`: No columns defined (`grid-template-columns: none;`)
884
+ * `subgrid`: Use parent grid (`grid-template-columns: subgrid;`)
885
+
886
+ ## grid-row-span
887
+ > Span across grid rows
888
+
889
+ **Syntax:** `layout="row-span:[value]"`
890
+
891
+ * `1-12`: Span N rows (`grid-row: span {n} / span {n};`)
892
+ * `full`: Span all rows (`grid-row: 1 / -1;`)
893
+
894
+ ## grid-rows
895
+ > Define grid template rows
896
+
897
+ **Syntax:** `layout="grid-rows:[value]"`
898
+
899
+ * `1-12`: N equal rows (`grid-template-rows: repeat({n}, minmax(0, 1fr));`)
900
+ * `none`: No rows defined (`grid-template-rows: none;`)
901
+ * `subgrid`: Use parent grid (`grid-template-rows: subgrid;`)
902
+
903
+ ## height
904
+ > Set element height
905
+
906
+ **Syntax:** `space="h:[value]"`
907
+
908
+ * `undefined`: Height (`height: var(--s-{value});`)
909
+ * `undefined`: Minimum height (`min-height: var(--s-{value});`)
910
+ * `undefined`: Maximum height (`max-height: var(--s-{value});`)
911
+
912
+ ## hyphens
913
+ > Control hyphenation
914
+
915
+ **Syntax:** `visual="hyphens:[value]"`
916
+
917
+ * `none`: No hyphens (`hyphens: none;`)
918
+ * `manual`: Manual hyphens (`hyphens: manual;`)
919
+ * `auto`: Auto hyphens (`hyphens: auto;`)
920
+
921
+ ## inset
922
+ > Control positioning offsets
923
+
924
+ **Syntax:** `layout="inset:[value]" or layout="top:[value]"`
925
+
926
+ * `inset`: All sides (`inset: {value};`)
927
+ * `inset-x`: Left and right (`left: {value}; right: {value};`)
928
+ * `inset-y`: Top and bottom (`top: {value}; bottom: {value};`)
929
+ * `top`: Top offset (`top: {value};`)
930
+ * `right`: Right offset (`right: {value};`)
931
+ * `bottom`: Bottom offset (`bottom: {value};`)
932
+ * `left`: Left offset (`left: {value};`)
933
+
934
+ ## isolation
935
+ > Create new stacking context
936
+
937
+ **Syntax:** `layout="isolation:[value]"`
938
+
939
+ * `isolate`: Create stacking context (`isolation: isolate;`)
940
+ * `auto`: Auto isolation (`isolation: auto;`)
941
+
942
+ ## justify-content
943
+ > Align items along the main axis
944
+
945
+ **Syntax:** `layout="justify:[value]"`
946
+
947
+ * `start`: Align to start (`justify-content: flex-start;`)
948
+ * `end`: Align to end (`justify-content: flex-end;`)
949
+ * `center`: Center items (`justify-content: center;`)
950
+ * `between`: Space between items (`justify-content: space-between;`)
951
+ * `around`: Space around items (`justify-content: space-around;`)
952
+ * `evenly`: Even spacing (`justify-content: space-evenly;`)
953
+ * `stretch`: Stretch items (`justify-content: stretch;`)
954
+
955
+ ## justify-items
956
+ > Align grid items on inline axis
957
+
958
+ **Syntax:** `layout="justify-items:[value]"`
959
+
960
+ * `start`: Start alignment (`justify-items: start;`)
961
+ * `end`: End alignment (`justify-items: end;`)
962
+ * `center`: Center alignment (`justify-items: center;`)
963
+ * `stretch`: Stretch items (`justify-items: stretch;`)
964
+
965
+ ## justify-self
966
+ > Align single grid item on inline axis
967
+
968
+ **Syntax:** `layout="justify-self:[value]"`
969
+
970
+ * `auto`: Auto alignment (`justify-self: auto;`)
971
+ * `start`: Start alignment (`justify-self: start;`)
972
+ * `end`: End alignment (`justify-self: end;`)
973
+ * `center`: Center alignment (`justify-self: center;`)
974
+ * `stretch`: Stretch item (`justify-self: stretch;`)
975
+
976
+ ## letter-spacing
977
+ > Set letter spacing
978
+
979
+ **Syntax:** `visual="tracking:[value]"`
980
+
981
+ * `tighter`: Tighter spacing (`letter-spacing: -0.05em;`)
982
+ * `tight`: Tight spacing (`letter-spacing: -0.025em;`)
983
+ * `normal`: Normal spacing (`letter-spacing: 0;`)
984
+ * `wide`: Wide spacing (`letter-spacing: 0.025em;`)
985
+ * `wider`: Wider spacing (`letter-spacing: 0.05em;`)
986
+ * `widest`: Widest spacing (`letter-spacing: 0.1em;`)
987
+
988
+ ## line-clamp
989
+ > Limit text to specific lines
990
+
991
+ **Syntax:** `visual="line-clamp:[value]"`
992
+
993
+ * `1`: Single line
994
+ * `2`: Two lines
995
+ * `3`: Three lines
996
+ * `none`: No clamp
997
+
998
+ ## line-height
999
+ > Set line height
1000
+
1001
+ **Syntax:** `visual="leading:[value]"`
1002
+
1003
+ * `none`: No extra height (`line-height: 1;`)
1004
+ * `tight`: Tight leading (`line-height: 1.25;`)
1005
+ * `snug`: Snug leading (`line-height: 1.375;`)
1006
+ * `normal`: Normal leading (`line-height: 1.5;`)
1007
+ * `relaxed`: Relaxed leading (`line-height: 1.625;`)
1008
+ * `loose`: Loose leading (`line-height: 2;`)
1009
+
1010
+ ## list-style
1011
+ > Set list style
1012
+
1013
+ **Syntax:** `visual="list:[value]"`
1014
+
1015
+ * `none`: No bullets (`list-style-type: none;`)
1016
+ * `disc`: Disc bullets (`list-style-type: disc;`)
1017
+ * `decimal`: Numbers (`list-style-type: decimal;`)
1018
+ * `square`: Square bullets (`list-style-type: square;`)
1019
+ * `inside`: Inside position (`list-style-position: inside;`)
1020
+ * `outside`: Outside position (`list-style-position: outside;`)
1021
+
1022
+ ## margin
1023
+ > Add margin to elements
1024
+
1025
+ **Syntax:** `space="m:[value]" or space="m-{side}:[value]"`
1026
+
1027
+ * `undefined`: All sides (`margin: var(--s-{value});`)
1028
+ * `undefined`: Top (`margin-top: var(--s-{value});`)
1029
+ * `undefined`: Right (`margin-right: var(--s-{value});`)
1030
+ * `undefined`: Bottom (`margin-bottom: var(--s-{value});`)
1031
+ * `undefined`: Left (`margin-left: var(--s-{value});`)
1032
+ * `undefined`: Horizontal
1033
+ * `undefined`: Vertical
1034
+
1035
+ ## mask
1036
+ > Apply mask to element
1037
+
1038
+ **Syntax:** `visual="mask:[value]"`
1039
+
1040
+ * `none`: No mask (`mask-image: none;`)
1041
+ * `fade-y`: Vertical fade
1042
+ * `fade-x`: Horizontal fade
1043
+
1044
+ ## object-fit
1045
+ > Control how media content fits its container
1046
+
1047
+ **Syntax:** `layout="object:[value]"`
1048
+
1049
+ * `contain`: Scale to fit, preserve ratio (`object-fit: contain;`)
1050
+ * `cover`: Cover container, may crop (`object-fit: cover;`)
1051
+ * `fill`: Stretch to fill (`object-fit: fill;`)
1052
+ * `none`: No scaling (`object-fit: none;`)
1053
+ * `scale-down`: Smaller of none or contain (`object-fit: scale-down;`)
1054
+
1055
+ ## object-position
1056
+ > Position replaced element content within container
1057
+
1058
+ **Syntax:** `layout="object-pos:[value]"`
1059
+
1060
+ * `center`: Center position (`object-position: center;`)
1061
+ * `top`: Top position (`object-position: top;`)
1062
+ * `bottom`: Bottom position (`object-position: bottom;`)
1063
+ * `left`: Left position (`object-position: left;`)
1064
+ * `right`: Right position (`object-position: right;`)
1065
+ * `top-left`: Top left (`object-position: top left;`)
1066
+ * `top-right`: Top right (`object-position: top right;`)
1067
+ * `bottom-left`: Bottom left (`object-position: bottom left;`)
1068
+ * `bottom-right`: Bottom right (`object-position: bottom right;`)
1069
+
1070
+ ## opacity
1071
+ > Set element opacity (0-100)
1072
+
1073
+ **Syntax:** `visual="opacity:[value]"`
1074
+
1075
+ * `0`: Invisible (`opacity: 0;`)
1076
+ * `25`: 25% visible (`opacity: 0.25;`)
1077
+ * `50`: 50% visible (`opacity: 0.5;`)
1078
+ * `75`: 75% visible (`opacity: 0.75;`)
1079
+ * `100`: Fully visible (`opacity: 1;`)
1080
+
1081
+ ## order
1082
+ > Control flex/grid item order
1083
+
1084
+ **Syntax:** `layout="order:[value]"`
1085
+
1086
+ * `first`: Move to first (`order: -9999;`)
1087
+ * `last`: Move to last (`order: 9999;`)
1088
+ * `none`: Default order (`order: 0;`)
1089
+ * `1-12`: Specific order (`order: {n};`)
1090
+
1091
+ ## outline
1092
+ > Set outline color
1093
+
1094
+ **Syntax:** `visual="outline:[color]"`
1095
+
1096
+
1097
+ ## overflow
1098
+ > Control content overflow behavior
1099
+
1100
+ **Syntax:** `layout="overflow:[value]"`
1101
+
1102
+ * `auto`: Scrollbar when needed (`overflow: auto;`)
1103
+ * `hidden`: Hide overflow (`overflow: hidden;`)
1104
+ * `visible`: Show overflow (`overflow: visible;`)
1105
+ * `scroll`: Always show scrollbar (`overflow: scroll;`)
1106
+ * `clip`: Clip overflow (`overflow: clip;`)
1107
+
1108
+ ## overscroll
1109
+ > Control scroll chaining behavior
1110
+
1111
+ **Syntax:** `layout="overscroll:[value]"`
1112
+
1113
+ * `auto`: Default behavior (`overscroll-behavior: auto;`)
1114
+ * `contain`: Contain scroll (`overscroll-behavior: contain;`)
1115
+ * `none`: No scroll chaining (`overscroll-behavior: none;`)
1116
+
1117
+ ## padding
1118
+ > Add padding to elements
1119
+
1120
+ **Syntax:** `space="p:[value]" or space="p-{side}:[value]"`
1121
+
1122
+ * `undefined`: All sides (`padding: var(--s-{value});`)
1123
+ * `undefined`: Top (`padding-top: var(--s-{value});`)
1124
+ * `undefined`: Right (`padding-right: var(--s-{value});`)
1125
+ * `undefined`: Bottom (`padding-bottom: var(--s-{value});`)
1126
+ * `undefined`: Left (`padding-left: var(--s-{value});`)
1127
+ * `undefined`: Horizontal
1128
+ * `undefined`: Vertical
1129
+
1130
+ ## place-content
1131
+ > Shorthand for align-content and justify-content
1132
+
1133
+ **Syntax:** `layout="place-content:[value]"`
1134
+
1135
+ * `start`: Start alignment (`place-content: start;`)
1136
+ * `end`: End alignment (`place-content: end;`)
1137
+ * `center`: Center alignment (`place-content: center;`)
1138
+ * `between`: Space between (`place-content: space-between;`)
1139
+ * `around`: Space around (`place-content: space-around;`)
1140
+ * `evenly`: Even spacing (`place-content: space-evenly;`)
1141
+ * `stretch`: Stretch content (`place-content: stretch;`)
1142
+
1143
+ ## place-items
1144
+ > Shorthand for align-items and justify-items
1145
+
1146
+ **Syntax:** `layout="place-items:[value]"`
1147
+
1148
+ * `start`: Start alignment (`place-items: start;`)
1149
+ * `end`: End alignment (`place-items: end;`)
1150
+ * `center`: Center alignment (`place-items: center;`)
1151
+ * `stretch`: Stretch items (`place-items: stretch;`)
1152
+
1153
+ ## place-self
1154
+ > Shorthand for align-self and justify-self
1155
+
1156
+ **Syntax:** `layout="place-self:[value]"`
1157
+
1158
+ * `auto`: Auto alignment (`place-self: auto;`)
1159
+ * `start`: Start alignment (`place-self: start;`)
1160
+ * `end`: End alignment (`place-self: end;`)
1161
+ * `center`: Center alignment (`place-self: center;`)
1162
+ * `stretch`: Stretch item (`place-self: stretch;`)
1163
+
1164
+ ## pointer-events
1165
+ > Control pointer events
1166
+
1167
+ **Syntax:** `visual="pointer-events:[value]"`
1168
+
1169
+ * `none`: Ignore pointer events (`pointer-events: none;`)
1170
+ * `auto`: Normal pointer events (`pointer-events: auto;`)
1171
+
1172
+ ## position
1173
+ > Set the positioning method
1174
+
1175
+ **Syntax:** `layout="[position-value]"`
1176
+
1177
+ * `static`: Default positioning (`position: static;`)
1178
+ * `relative`: Relative to normal position (`position: relative;`)
1179
+ * `absolute`: Absolute within container (`position: absolute;`)
1180
+ * `fixed`: Fixed to viewport (`position: fixed;`)
1181
+ * `sticky`: Sticky positioning (`position: sticky;`)
1182
+
1183
+ ## resize
1184
+ > Control element resizing
1185
+
1186
+ **Syntax:** `visual="resize:[value]"`
1187
+
1188
+ * `none`: No resize (`resize: none;`)
1189
+ * `both`: Resize both (`resize: both;`)
1190
+ * `x`: Resize horizontal (`resize: horizontal;`)
1191
+ * `y`: Resize vertical (`resize: vertical;`)
1192
+
1193
+ ## ring
1194
+ > Add focus ring around element using box-shadow
1195
+
1196
+ **Syntax:** `visual="ring:[size]"`
1197
+
1198
+ * `none`: No ring (`box-shadow: 0 0 0 0 transparent;`)
1199
+ * `thin`: Thin ring (1px) (`box-shadow: 0 0 0 1px var(--ring-color);`)
1200
+ * `regular`: Regular ring (2px) (`box-shadow: 0 0 0 2px var(--ring-color);`)
1201
+ * `small`: Small ring (4px) (`box-shadow: 0 0 0 4px var(--ring-color);`)
1202
+ * `medium`: Medium ring (6px) (`box-shadow: 0 0 0 6px var(--ring-color);`)
1203
+ * `big`: Big ring (8px) (`box-shadow: 0 0 0 8px var(--ring-color);`)
1204
+
1205
+ ## ring-color
1206
+ > Set ring color
1207
+
1208
+ **Syntax:** `visual="ring-color:[color]"`
1209
+
1210
+ * `primary`: Primary ring color (`--ring-color: var(--c-primary);`)
1211
+ * `blue-500`: Blue ring color (`--ring-color: var(--c-blue-500);`)
1212
+
1213
+ ## ring-offset
1214
+ > Add gap between ring and element
1215
+
1216
+ **Syntax:** `visual="ring-offset:[size]"`
1217
+
1218
+ * `0`: No offset (`--ring-offset: 0px;`)
1219
+ * `2`: 2px offset (`--ring-offset: 2px;`)
1220
+ * `4`: 4px offset (`--ring-offset: 4px;`)
1221
+
1222
+ ## scroll-behavior
1223
+ > Set scroll behavior
1224
+
1225
+ **Syntax:** `visual="scroll-behavior:[value]"`
1226
+
1227
+ * `auto`: Instant scroll (`scroll-behavior: auto;`)
1228
+ * `smooth`: Smooth scroll (`scroll-behavior: smooth;`)
1229
+
1230
+ ## scroll-margin
1231
+ > Set scroll margin for snap
1232
+
1233
+ **Syntax:** `visual="scroll-m:[value]"`
1234
+
1235
+ * `scroll-m`: All sides (`scroll-margin: {value};`)
1236
+ * `scroll-m-t`: Top margin (`scroll-margin-top: {value};`)
1237
+ * `scroll-m-r`: Right margin (`scroll-margin-right: {value};`)
1238
+ * `scroll-m-b`: Bottom margin (`scroll-margin-bottom: {value};`)
1239
+ * `scroll-m-l`: Left margin (`scroll-margin-left: {value};`)
1240
+
1241
+ ## scroll-padding
1242
+ > Set scroll padding for snap
1243
+
1244
+ **Syntax:** `visual="scroll-p:[value]"`
1245
+
1246
+ * `scroll-p`: All sides (`scroll-padding: {value};`)
1247
+ * `scroll-p-t`: Top padding (`scroll-padding-top: {value};`)
1248
+ * `scroll-p-r`: Right padding (`scroll-padding-right: {value};`)
1249
+ * `scroll-p-b`: Bottom padding (`scroll-padding-bottom: {value};`)
1250
+ * `scroll-p-l`: Left padding (`scroll-padding-left: {value};`)
1251
+
1252
+ ## scroll-snap-align
1253
+ > Set scroll snap alignment
1254
+
1255
+ **Syntax:** `visual="snap-align:[value]"`
1256
+
1257
+ * `start`: Snap to start (`scroll-snap-align: start;`)
1258
+ * `end`: Snap to end (`scroll-snap-align: end;`)
1259
+ * `center`: Snap to center (`scroll-snap-align: center;`)
1260
+ * `none`: No snap (`scroll-snap-align: none;`)
1261
+
1262
+ ## scroll-snap-stop
1263
+ > Control scroll snap stop behavior
1264
+
1265
+ **Syntax:** `visual="snap-stop:[value]"`
1266
+
1267
+ * `normal`: Normal stop (`scroll-snap-stop: normal;`)
1268
+ * `always`: Always stop (`scroll-snap-stop: always;`)
1269
+
1270
+ ## scroll-snap-type
1271
+ > Set scroll snap type
1272
+
1273
+ **Syntax:** `visual="snap-type:[value]"`
1274
+
1275
+ * `none`: No snapping (`scroll-snap-type: none;`)
1276
+ * `x`: Horizontal snap (`scroll-snap-type: x mandatory;`)
1277
+ * `y`: Vertical snap (`scroll-snap-type: y mandatory;`)
1278
+ * `both`: Both axes (`scroll-snap-type: both mandatory;`)
1279
+ * `x-proximity`: Horizontal proximity (`scroll-snap-type: x proximity;`)
1280
+ * `y-proximity`: Vertical proximity (`scroll-snap-type: y proximity;`)
1281
+
1282
+ ## shorthand-alignment
1283
+ > Quick alignment shortcuts
1284
+
1285
+ **Syntax:** `layout="[alignment]"`
1286
+
1287
+ * `center`: Center both axes (`justify-content: center; align-items: center;`)
1288
+ * `start`: Align to start
1289
+ * `end`: Align to end (`justify-content: flex-end; align-items: flex-end;`)
1290
+ * `between`: Space between (`justify-content: space-between;`)
1291
+ * `around`: Space around (`justify-content: space-around;`)
1292
+ * `evenly`: Even spacing (`justify-content: space-evenly;`)
1293
+
1294
+ ## state-prefixes
1295
+ > Apply styles on specific states
1296
+
1297
+ **Syntax:** `visual="hover:... focus:... active:..."`
1298
+
1299
+ * `hover:`: On hover (`:hover`)
1300
+ * `focus:`: On focus (`:focus`)
1301
+ * `active:`: On active (`:active`)
1302
+ * `disabled:`: When disabled (`:disabled`)
1303
+ * `visited:`: When visited (`:visited`)
1304
+ * `first:`: First child (`:first-child`)
1305
+ * `last:`: Last child (`:last-child`)
1306
+ * `odd:`: Odd children (`:nth-child(odd)`)
1307
+ * `even:`: Even children (`:nth-child(even)`)
1308
+
1309
+ ## stroke
1310
+ > Set SVG stroke color
1311
+
1312
+ **Syntax:** `visual="stroke:[color]"`
1313
+
1314
+ * `none`: No stroke (`stroke: none;`)
1315
+ * `current`: Current color (`stroke: currentColor;`)
1316
+
1317
+ ## stroke-width
1318
+ > Set SVG stroke width
1319
+
1320
+ **Syntax:** `visual="stroke-w:[value]"`
1321
+
1322
+ * `0`: No stroke (`stroke-width: 0;`)
1323
+ * `1`: 1px stroke (`stroke-width: 1px;`)
1324
+ * `2`: 2px stroke (`stroke-width: 2px;`)
1325
+
1326
+ ## table-layout
1327
+ > Control table layout algorithm
1328
+
1329
+ **Syntax:** `layout="table:[value]"`
1330
+
1331
+ * `auto`: Auto layout (`table-layout: auto;`)
1332
+ * `fixed`: Fixed layout (`table-layout: fixed;`)
1333
+
1334
+ ## text-alignment
1335
+ > Set text alignment
1336
+
1337
+ **Syntax:** `visual="text:[alignment]"`
1338
+
1339
+ * `left`: Left align (`text-align: left;`)
1340
+ * `center`: Center align (`text-align: center;`)
1341
+ * `right`: Right align (`text-align: right;`)
1342
+ * `justify`: Justify (`text-align: justify;`)
1343
+
1344
+ ## text-color
1345
+ > Set text color
1346
+
1347
+ **Syntax:** `visual="text:[color]"`
1348
+
1349
+ * `left`: Align left (`text-align: left;`)
1350
+ * `center`: Align center (`text-align: center;`)
1351
+ * `right`: Align right (`text-align: right;`)
1352
+ * `justify`: Justify text (`text-align: justify;`)
1353
+
1354
+ ## text-decoration
1355
+ > Set text decoration
1356
+
1357
+ **Syntax:** `visual="[decoration-value]"`
1358
+
1359
+ * `underline`: Underline (`text-decoration-line: underline;`)
1360
+ * `overline`: Overline (`text-decoration-line: overline;`)
1361
+ * `line-through`: Strikethrough (`text-decoration-line: line-through;`)
1362
+ * `no-underline`: No decoration (`text-decoration-line: none;`)
1363
+
1364
+ ## text-indent
1365
+ > Set text indentation
1366
+
1367
+ **Syntax:** `visual="indent:[value]"`
1368
+
1369
+ * `0`: No indent (`text-indent: 0;`)
1370
+
1371
+ ## text-overflow
1372
+ > Handle text overflow
1373
+
1374
+ **Syntax:** `visual="[overflow-value]"`
1375
+
1376
+ * `truncate`: Truncate with ellipsis
1377
+ * `text-ellipsis`: Ellipsis overflow (`text-overflow: ellipsis;`)
1378
+ * `text-clip`: Clip overflow (`text-overflow: clip;`)
1379
+
1380
+ ## text-shadow
1381
+ > Add text shadow
1382
+
1383
+ **Syntax:** `visual="text-shadow:[value]"`
1384
+
1385
+ * `none`: No shadow (`text-shadow: none;`)
1386
+ * `small`: Small shadow (`text-shadow: 0 1px 2px rgba(0,0,0,0.1);`)
1387
+ * `medium`: Medium shadow (`text-shadow: 0 2px 4px rgba(0,0,0,0.1);`)
1388
+ * `big`: Large shadow (`text-shadow: 0 4px 8px rgba(0,0,0,0.1);`)
1389
+
1390
+ ## text-size
1391
+ > Set font size
1392
+
1393
+ **Syntax:** `visual="text-size:[value]"`
1394
+
1395
+ * `mini`: Mini size (0.75rem / 1rem)
1396
+ * `small`: Small size (0.875rem / 1.25rem)
1397
+ * `base`: Base size (1rem / 1.5rem)
1398
+ * `large`: Large size (1.125rem / 1.75rem)
1399
+ * `big`: Big size (1.25rem / 1.75rem)
1400
+ * `huge`: Huge size (1.5rem / 2rem)
1401
+ * `grand`: Grand size (1.875rem / 2.25rem)
1402
+ * `giant`: Giant size (2.25rem / 2.5rem)
1403
+ * `mount`: Mount size (3rem / 1)
1404
+ * `mega`: Mega size (3.75rem / 1)
1405
+ * `giga`: Giga size (4.5rem / 1)
1406
+ * `tera`: Tera size (6rem / 1)
1407
+ * `hero`: Hero size (8rem / 1)
1408
+
1409
+ ## text-transform
1410
+ > Transform text case
1411
+
1412
+ **Syntax:** `visual="[transform-value]"`
1413
+
1414
+ * `uppercase`: All uppercase (`text-transform: uppercase;`)
1415
+ * `lowercase`: All lowercase (`text-transform: lowercase;`)
1416
+ * `capitalize`: Capitalize words (`text-transform: capitalize;`)
1417
+ * `normal-case`: Normal case (`text-transform: none;`)
1418
+
1419
+ ## text-wrap
1420
+ > Control text wrapping
1421
+
1422
+ **Syntax:** `visual="[wrap-value]"`
1423
+
1424
+ * `text-wrap`: Wrap text (`text-wrap: wrap;`)
1425
+ * `text-nowrap`: No wrap (`text-wrap: nowrap;`)
1426
+ * `text-balance`: Balanced wrap (`text-wrap: balance;`)
1427
+ * `text-pretty`: Pretty wrap (`text-wrap: pretty;`)
1428
+
1429
+ ## touch-action
1430
+ > Control touch interactions
1431
+
1432
+ **Syntax:** `visual="touch:[value]"`
1433
+
1434
+ * `auto`: Default touch (`touch-action: auto;`)
1435
+ * `none`: Disable touch (`touch-action: none;`)
1436
+ * `pan-x`: Pan horizontally (`touch-action: pan-x;`)
1437
+ * `pan-y`: Pan vertically (`touch-action: pan-y;`)
1438
+ * `pan-left`: Pan left (`touch-action: pan-left;`)
1439
+ * `pan-right`: Pan right (`touch-action: pan-right;`)
1440
+ * `pinch-zoom`: Pinch to zoom (`touch-action: pinch-zoom;`)
1441
+ * `manipulation`: Pan and pinch only (`touch-action: manipulation;`)
1442
+
1443
+ ## transform-backface
1444
+ > Control visibility of element back side when rotated in 3D
1445
+
1446
+ **Syntax:** `visual="backface:[value]"`
1447
+
1448
+ * `visible`: Backface visible (`backface-visibility: visible;`)
1449
+ * `hidden`: Backface hidden (`backface-visibility: hidden;`)
1450
+
1451
+ ## transform-origin
1452
+ > Set transform origin point
1453
+
1454
+ **Syntax:** `visual="origin:[value]"`
1455
+
1456
+ * `center`: Center origin (`transform-origin: center;`)
1457
+ * `top`: Top origin (`transform-origin: top;`)
1458
+ * `top-right`: Top right (`transform-origin: top right;`)
1459
+ * `right`: Right origin (`transform-origin: right;`)
1460
+ * `bottom-right`: Bottom right (`transform-origin: bottom right;`)
1461
+ * `bottom`: Bottom origin (`transform-origin: bottom;`)
1462
+ * `bottom-left`: Bottom left (`transform-origin: bottom left;`)
1463
+ * `left`: Left origin (`transform-origin: left;`)
1464
+ * `top-left`: Top left (`transform-origin: top left;`)
1465
+
1466
+ ## transform-perspective
1467
+ > Set 3D perspective on container (apply to parent of transformed elements)
1468
+
1469
+ **Syntax:** `visual="perspective:[value]"`
1470
+
1471
+ * `none`: No perspective (`perspective: none;`)
1472
+ * `dramatic`: Dramatic perspective (`perspective: 100px;`)
1473
+ * `near`: Near perspective (`perspective: 300px;`)
1474
+ * `normal`: Normal perspective (`perspective: 500px;`)
1475
+ * `midrange`: Midrange perspective (`perspective: 800px;`)
1476
+ * `far`: Far perspective (`perspective: 1000px;`)
1477
+ * `distant`: Distant perspective (`perspective: 1200px;`)
1478
+
1479
+ ## transform-perspective-origin
1480
+ > Set perspective vanishing point location
1481
+
1482
+ **Syntax:** `visual="perspective-origin:[value]"`
1483
+
1484
+ * `center`: Center origin (`perspective-origin: center;`)
1485
+ * `top`: Top origin (`perspective-origin: top;`)
1486
+ * `bottom`: Bottom origin (`perspective-origin: bottom;`)
1487
+ * `left`: Left origin (`perspective-origin: left;`)
1488
+ * `right`: Right origin (`perspective-origin: right;`)
1489
+ * `top-left`: Top left (`perspective-origin: top left;`)
1490
+ * `top-right`: Top right (`perspective-origin: top right;`)
1491
+ * `bottom-left`: Bottom left (`perspective-origin: bottom left;`)
1492
+ * `bottom-right`: Bottom right (`perspective-origin: bottom right;`)
1493
+
1494
+ ## transform-rotate
1495
+ > Rotate element
1496
+
1497
+ **Syntax:** `visual="rotate:[degrees]"`
1498
+
1499
+ * `0`: No rotation (`transform: rotate(0deg);`)
1500
+ * `45`: 45° rotation (`transform: rotate(45deg);`)
1501
+ * `90`: 90° rotation (`transform: rotate(90deg);`)
1502
+ * `180`: 180° rotation (`transform: rotate(180deg);`)
1503
+
1504
+ ## transform-rotate-3d
1505
+ > Rotate element in 3D space along X, Y, or Z axis
1506
+
1507
+ **Syntax:** `visual="rotate-x:[degrees]" or visual="rotate-y:[degrees]" or visual="rotate-z:[degrees]"`
1508
+
1509
+ * `0`: No rotation (`transform: rotateX(0deg);`)
1510
+ * `45`: 45° rotation (`transform: rotateX(45deg);`)
1511
+ * `90`: 90° rotation (`transform: rotateX(90deg);`)
1512
+ * `180`: 180° rotation (`transform: rotateX(180deg);`)
1513
+
1514
+ ## transform-scale
1515
+ > Scale element
1516
+
1517
+ **Syntax:** `visual="scale:[value]"`
1518
+
1519
+ * `0`: Scale to 0 (`transform: scale(0);`)
1520
+ * `50`: Scale to 50% (`transform: scale(0.5);`)
1521
+ * `75`: Scale to 75% (`transform: scale(0.75);`)
1522
+ * `100`: Normal scale (`transform: scale(1);`)
1523
+ * `110`: Scale to 110% (`transform: scale(1.1);`)
1524
+ * `125`: Scale to 125% (`transform: scale(1.25);`)
1525
+ * `150`: Scale to 150% (`transform: scale(1.5);`)
1526
+
1527
+ ## transform-skew
1528
+ > Skew element
1529
+
1530
+ **Syntax:** `visual="skew-x:[degrees]" or visual="skew-y:[degrees]"`
1531
+
1532
+ * `0`: No skew (`transform: skewX(0deg);`)
1533
+ * `3`: 3° skew (`transform: skewX(3deg);`)
1534
+ * `6`: 6° skew (`transform: skewX(6deg);`)
1535
+ * `12`: 12° skew (`transform: skewX(12deg);`)
1536
+
1537
+ ## transform-style
1538
+ > Preserve 3D space for nested transformed elements
1539
+
1540
+ **Syntax:** `visual="transform-style:[value]"`
1541
+
1542
+ * `flat`: Flatten 3D children (`transform-style: flat;`)
1543
+ * `preserve-3d`: Preserve 3D depth (`transform-style: preserve-3d;`)
1544
+
1545
+ ## transform-translate
1546
+ > Translate element position along X, Y, or Z axis
1547
+
1548
+ **Syntax:** `visual="translate-x:[value]" or visual="translate-y:[value]" or visual="translate-z:[value]"`
1549
+
1550
+ * `0`: No translation (`transform: translateX(0);`)
1551
+ * `tiny`: Tiny offset (`transform: translateX(var(--sp-tiny));`)
1552
+ * `small`: Small offset (`transform: translateX(var(--sp-small));`)
1553
+ * `medium`: Medium offset (`transform: translateX(var(--sp-medium));`)
1554
+ * `big`: Big offset (`transform: translateX(var(--sp-big));`)
1555
+ * `full`: Full width/height (`transform: translateX(100%);`)
1556
+ * `1/2`: Half width/height (`transform: translateX(50%);`)
1557
+ * `-full`: Negative full (`transform: translateX(-100%);`)
1558
+ * `-1/2`: Negative half (`transform: translateX(-50%);`)
1559
+
1560
+ ## transform-translate-z
1561
+ > Translate element along Z axis (depth) in 3D space
1562
+
1563
+ **Syntax:** `visual="translate-z:[value]"`
1564
+
1565
+ * `0`: No Z translation (`transform: translateZ(0);`)
1566
+ * `near`: Move near (forward) (`transform: translateZ(50px);`)
1567
+ * `far`: Move far (backward) (`transform: translateZ(-50px);`)
1568
+
1569
+ ## transition-delay
1570
+ > Set transition delay
1571
+
1572
+ **Syntax:** `visual="delay:[value]"`
1573
+
1574
+ * `instant`: 75ms delay (`transition-delay: 75ms;`)
1575
+ * `quick`: 100ms delay (`transition-delay: 100ms;`)
1576
+ * `fast`: 150ms delay (`transition-delay: 150ms;`)
1577
+ * `normal`: 200ms delay (`transition-delay: 200ms;`)
1578
+ * `slow`: 300ms delay (`transition-delay: 300ms;`)
1579
+
1580
+ ## transition-duration
1581
+ > Set transition duration
1582
+
1583
+ **Syntax:** `visual="duration:[value]"`
1584
+
1585
+ * `instant`: 75ms (`transition-duration: 75ms;`)
1586
+ * `quick`: 100ms (`transition-duration: 100ms;`)
1587
+ * `fast`: 150ms (`transition-duration: 150ms;`)
1588
+ * `normal`: 200ms (`transition-duration: 200ms;`)
1589
+ * `slow`: 300ms (`transition-duration: 300ms;`)
1590
+ * `slower`: 500ms (`transition-duration: 500ms;`)
1591
+ * `lazy`: 700ms (`transition-duration: 700ms;`)
1592
+
1593
+ ## transition-property
1594
+ > Set transition properties
1595
+
1596
+ **Syntax:** `visual="transition:[value]"`
1597
+
1598
+ * `none`: No transition (`transition-property: none;`)
1599
+ * `all`: All properties
1600
+ * `colors`: Color properties
1601
+ * `opacity`: Opacity only
1602
+ * `shadow`: Shadow only
1603
+ * `transform`: Transform only
1604
+
1605
+ ## transition-timing
1606
+ > Set transition timing function
1607
+
1608
+ **Syntax:** `visual="ease:[value]"`
1609
+
1610
+ * `linear`: Linear timing (`transition-timing-function: linear;`)
1611
+ * `in`: Ease in
1612
+ * `out`: Ease out
1613
+ * `in-out`: Ease in-out
1614
+
1615
+ ## typography-keywords
1616
+ > Typography utility keywords
1617
+
1618
+ **Syntax:** `visual="[keyword]"`
1619
+
1620
+ * `italic`: Italic text (`font-style: italic;`)
1621
+ * `not-italic`: Normal style (`font-style: normal;`)
1622
+ * `antialiased`: Antialiased text
1623
+ * `subpixel-antialiased`: Subpixel antialiasing
1624
+ * `uppercase`: Uppercase text (`text-transform: uppercase;`)
1625
+ * `lowercase`: Lowercase text (`text-transform: lowercase;`)
1626
+ * `capitalize`: Capitalize words (`text-transform: capitalize;`)
1627
+ * `normal-case`: Normal case (`text-transform: none;`)
1628
+ * `underline`: Underline text (`text-decoration-line: underline;`)
1629
+ * `overline`: Overline text (`text-decoration-line: overline;`)
1630
+ * `line-through`: Strikethrough (`text-decoration-line: line-through;`)
1631
+ * `no-underline`: No decoration (`text-decoration-line: none;`)
1632
+ * `decoration-solid`: Solid line (`text-decoration-style: solid;`)
1633
+ * `decoration-double`: Double line (`text-decoration-style: double;`)
1634
+ * `decoration-dotted`: Dotted line (`text-decoration-style: dotted;`)
1635
+ * `decoration-dashed`: Dashed line (`text-decoration-style: dashed;`)
1636
+ * `decoration-wavy`: Wavy line (`text-decoration-style: wavy;`)
1637
+ * `truncate`: Truncate with ellipsis
1638
+ * `text-ellipsis`: Ellipsis overflow (`text-overflow: ellipsis;`)
1639
+ * `text-clip`: Clip overflow (`text-overflow: clip;`)
1640
+ * `text-wrap`: Wrap text (`text-wrap: wrap;`)
1641
+ * `text-nowrap`: No wrap (`text-wrap: nowrap;`)
1642
+ * `text-balance`: Balanced wrapping (`text-wrap: balance;`)
1643
+ * `text-pretty`: Pretty wrapping (`text-wrap: pretty;`)
1644
+ * `whitespace-normal`: Normal whitespace (`white-space: normal;`)
1645
+ * `whitespace-nowrap`: No wrap whitespace (`white-space: nowrap;`)
1646
+ * `whitespace-pre`: Preserve whitespace (`white-space: pre;`)
1647
+ * `whitespace-pre-line`: Pre-line whitespace (`white-space: pre-line;`)
1648
+ * `whitespace-pre-wrap`: Pre-wrap whitespace (`white-space: pre-wrap;`)
1649
+ * `whitespace-break-spaces`: Break spaces (`white-space: break-spaces;`)
1650
+ * `break-normal`: Normal word break (`overflow-wrap: normal; word-break: normal;`)
1651
+ * `break-words`: Break words (`overflow-wrap: break-word;`)
1652
+ * `break-all`: Break all (`word-break: break-all;`)
1653
+ * `break-keep`: Keep all (`word-break: keep-all;`)
1654
+ * `hyphens-none`: No hyphens (`hyphens: none;`)
1655
+ * `hyphens-manual`: Manual hyphens (`hyphens: manual;`)
1656
+ * `hyphens-auto`: Auto hyphens (`hyphens: auto;`)
1657
+ * `align-baseline`: Baseline align (`vertical-align: baseline;`)
1658
+ * `align-top`: Top align (`vertical-align: top;`)
1659
+ * `align-middle`: Middle align (`vertical-align: middle;`)
1660
+ * `align-bottom`: Bottom align (`vertical-align: bottom;`)
1661
+ * `align-text-top`: Text top align (`vertical-align: text-top;`)
1662
+ * `align-text-bottom`: Text bottom align (`vertical-align: text-bottom;`)
1663
+ * `align-sub`: Subscript align (`vertical-align: sub;`)
1664
+ * `align-super`: Superscript align (`vertical-align: super;`)
1665
+ * `list-none`: No list style (`list-style-type: none;`)
1666
+ * `list-disc`: Disc bullets (`list-style-type: disc;`)
1667
+ * `list-decimal`: Decimal numbers (`list-style-type: decimal;`)
1668
+ * `list-square`: Square bullets (`list-style-type: square;`)
1669
+ * `list-inside`: Inside position (`list-style-position: inside;`)
1670
+ * `list-outside`: Outside position (`list-style-position: outside;`)
1671
+
1672
+ ## user-select
1673
+ > Control text selection
1674
+
1675
+ **Syntax:** `visual="select:[value]"`
1676
+
1677
+ * `none`: Prevent selection (`user-select: none;`)
1678
+ * `text`: Allow text selection (`user-select: text;`)
1679
+ * `all`: Select all on click (`user-select: all;`)
1680
+ * `auto`: Default behavior (`user-select: auto;`)
1681
+
1682
+ ## vertical-align
1683
+ > Set vertical alignment
1684
+
1685
+ **Syntax:** `visual="align:[value]"`
1686
+
1687
+ * `baseline`: Baseline (`vertical-align: baseline;`)
1688
+ * `top`: Top (`vertical-align: top;`)
1689
+ * `middle`: Middle (`vertical-align: middle;`)
1690
+ * `bottom`: Bottom (`vertical-align: bottom;`)
1691
+ * `text-top`: Text top (`vertical-align: text-top;`)
1692
+ * `text-bottom`: Text bottom (`vertical-align: text-bottom;`)
1693
+ * `sub`: Subscript (`vertical-align: sub;`)
1694
+ * `super`: Superscript (`vertical-align: super;`)
1695
+
1696
+ ## visibility
1697
+ > Control element visibility
1698
+
1699
+ **Syntax:** `layout="[visibility-value]"`
1700
+
1701
+ * `visible`: Element is visible (`visibility: visible;`)
1702
+ * `invisible`: Element is invisible but takes space (`visibility: hidden;`)
1703
+
1704
+ ## whitespace
1705
+ > Control whitespace handling
1706
+
1707
+ **Syntax:** `visual="whitespace:[value]"`
1708
+
1709
+ * `normal`: Normal whitespace (`white-space: normal;`)
1710
+ * `nowrap`: No wrap (`white-space: nowrap;`)
1711
+ * `pre`: Preserve whitespace (`white-space: pre;`)
1712
+ * `pre-line`: Pre-line (`white-space: pre-line;`)
1713
+ * `pre-wrap`: Pre-wrap (`white-space: pre-wrap;`)
1714
+ * `break-spaces`: Break spaces (`white-space: break-spaces;`)
1715
+
1716
+ ## width
1717
+ > Set element width
1718
+
1719
+ **Syntax:** `space="w:[value]"`
1720
+
1721
+ * `undefined`: Width (`width: var(--s-{value});`)
1722
+ * `undefined`: Minimum width (`min-width: var(--s-{value});`)
1723
+ * `undefined`: Maximum width (`max-width: var(--s-{value});`)
1724
+
1725
+ ## will-change
1726
+ > Hint browser about upcoming changes
1727
+
1728
+ **Syntax:** `visual="will-change:[value]"`
1729
+
1730
+ * `auto`: Auto optimization (`will-change: auto;`)
1731
+ * `scroll`: Scroll changes (`will-change: scroll-position;`)
1732
+ * `contents`: Content changes (`will-change: contents;`)
1733
+ * `transform`: Transform changes (`will-change: transform;`)
1734
+ * `opacity`: Opacity changes (`will-change: opacity;`)
1735
+
1736
+ ## word-break
1737
+ > Control word breaking
1738
+
1739
+ **Syntax:** `visual="[break-value]"`
1740
+
1741
+ * `break-normal`: Normal break (`overflow-wrap: normal; word-break: normal;`)
1742
+ * `break-words`: Break words (`overflow-wrap: break-word;`)
1743
+ * `break-all`: Break all (`word-break: break-all;`)
1744
+ * `break-keep`: Keep all (`word-break: keep-all;`)
1745
+
1746
+ ## z-index
1747
+ > Control stacking order
1748
+
1749
+ **Syntax:** `layout="z:[value]"`
1750
+
1751
+ * `base`: Base layer (0) (`z-index: var(--z-base);`)
1752
+ * `low`: Low layer (10) (`z-index: var(--z-low);`)
1753
+ * `mid`: Middle layer (50) (`z-index: var(--z-mid);`)
1754
+ * `high`: High layer (100) (`z-index: var(--z-high);`)
1755
+ * `top`: Top layer (9999) (`z-index: var(--z-top);`)
1756
+