@bookklik/senangstart-css 0.2.3 → 0.2.5

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 (135) hide show
  1. package/dist/senangstart-css.js +100 -6
  2. package/dist/senangstart-css.min.js +26 -22
  3. package/dist/senangstart-tw.js +537 -0
  4. package/dist/senangstart-tw.min.js +2 -0
  5. package/docs/.vitepress/config.js +6 -0
  6. package/docs/guide/cdn.md +1 -1
  7. package/docs/ms/guide/cdn.md +1 -1
  8. package/docs/ms/reference/layout/position.md +4 -4
  9. package/docs/ms/reference/layout/z-index.md +8 -8
  10. package/docs/ms/reference/space/gap.md +1 -1
  11. package/docs/ms/reference/space/height.md +1 -1
  12. package/docs/ms/reference/space/margin.md +1 -1
  13. package/docs/ms/reference/space/padding.md +1 -1
  14. package/docs/ms/reference/space/scale-reference.md +46 -17
  15. package/docs/ms/reference/space/width.md +1 -1
  16. package/docs/ms/reference/space.md +1 -1
  17. package/docs/ms/reference/spacing.md +103 -21
  18. package/docs/ms/reference/visual/animation-fill.md +8 -8
  19. package/docs/ms/reference/visual/backdrop-blur.md +4 -4
  20. package/docs/ms/reference/visual/backdrop-brightness.md +8 -8
  21. package/docs/ms/reference/visual/backdrop-grayscale.md +6 -6
  22. package/docs/ms/reference/visual/backdrop-sepia.md +6 -6
  23. package/docs/ms/reference/visual/background-clip.md +2 -2
  24. package/docs/ms/reference/visual/background-image.md +4 -4
  25. package/docs/ms/reference/visual/filter-brightness.md +4 -4
  26. package/docs/ms/reference/visual/filter-contrast.md +4 -4
  27. package/docs/ms/reference/visual/filter-drop-shadow.md +6 -6
  28. package/docs/ms/reference/visual/filter-grayscale.md +4 -4
  29. package/docs/ms/reference/visual/filter-hue-rotate.md +4 -4
  30. package/docs/ms/reference/visual/filter-invert.md +2 -2
  31. package/docs/ms/reference/visual/filter-saturate.md +4 -4
  32. package/docs/ms/reference/visual/filter-sepia.md +4 -4
  33. package/docs/ms/reference/visual/font-family.md +2 -2
  34. package/docs/ms/reference/visual/gradient-from.md +57 -0
  35. package/docs/ms/reference/visual/gradient-to.md +57 -0
  36. package/docs/ms/reference/visual/gradient-via.md +54 -0
  37. package/docs/ms/reference/visual/letter-spacing.md +2 -2
  38. package/docs/ms/reference/visual/line-clamp.md +2 -2
  39. package/docs/ms/reference/visual/line-height.md +2 -2
  40. package/docs/ms/reference/visual/outline.md +2 -2
  41. package/docs/ms/reference/visual/ring-color.md +29 -0
  42. package/docs/ms/reference/visual/ring-offset.md +30 -0
  43. package/docs/ms/reference/visual/ring.md +62 -0
  44. package/docs/ms/reference/visual/stroke-width.md +6 -6
  45. package/docs/ms/reference/visual/stroke.md +4 -4
  46. package/docs/ms/reference/visual/text-indent.md +2 -2
  47. package/docs/ms/reference/visual/text-overflow.md +2 -2
  48. package/docs/ms/reference/visual/text-size.md +84 -84
  49. package/docs/ms/reference/visual/text-wrap.md +2 -2
  50. package/docs/ms/reference/visual/transform-backface.md +4 -4
  51. package/docs/ms/reference/visual/transform-perspective-origin.md +6 -6
  52. package/docs/ms/reference/visual/transform-perspective.md +6 -6
  53. package/docs/ms/reference/visual/transform-rotate-3d.md +6 -6
  54. package/docs/ms/reference/visual/transform-style.md +4 -4
  55. package/docs/ms/reference/visual/transform-translate-z.md +6 -6
  56. package/docs/ms/reference/visual/transform-translate.md +2 -2
  57. package/docs/ms/reference/visual/whitespace.md +2 -2
  58. package/docs/ms/reference/visual/word-break.md +2 -2
  59. package/docs/public/assets/senangstart-css.min.js +213 -1545
  60. package/docs/public/llms.txt +1718 -0
  61. package/docs/reference/layout/position.md +4 -4
  62. package/docs/reference/layout/z-index.md +8 -8
  63. package/docs/reference/space/gap.md +1 -1
  64. package/docs/reference/space/height.md +1 -1
  65. package/docs/reference/space/margin.md +1 -1
  66. package/docs/reference/space/padding.md +1 -1
  67. package/docs/reference/space/scale-reference.md +46 -17
  68. package/docs/reference/space/width.md +1 -1
  69. package/docs/reference/space.md +1 -1
  70. package/docs/reference/spacing.md +103 -21
  71. package/docs/reference/visual/animation-fill.md +8 -8
  72. package/docs/reference/visual/backdrop-blur.md +4 -4
  73. package/docs/reference/visual/backdrop-brightness.md +8 -8
  74. package/docs/reference/visual/backdrop-grayscale.md +6 -6
  75. package/docs/reference/visual/backdrop-sepia.md +6 -6
  76. package/docs/reference/visual/background-clip.md +2 -2
  77. package/docs/reference/visual/background-image.md +4 -4
  78. package/docs/reference/visual/filter-brightness.md +4 -4
  79. package/docs/reference/visual/filter-contrast.md +4 -4
  80. package/docs/reference/visual/filter-drop-shadow.md +6 -6
  81. package/docs/reference/visual/filter-grayscale.md +4 -4
  82. package/docs/reference/visual/filter-hue-rotate.md +4 -4
  83. package/docs/reference/visual/filter-invert.md +2 -2
  84. package/docs/reference/visual/filter-saturate.md +4 -4
  85. package/docs/reference/visual/filter-sepia.md +4 -4
  86. package/docs/reference/visual/font-family.md +2 -2
  87. package/docs/reference/visual/gradient-from.md +57 -0
  88. package/docs/reference/visual/gradient-to.md +57 -0
  89. package/docs/reference/visual/gradient-via.md +54 -0
  90. package/docs/reference/visual/letter-spacing.md +2 -2
  91. package/docs/reference/visual/line-clamp.md +2 -2
  92. package/docs/reference/visual/line-height.md +2 -2
  93. package/docs/reference/visual/outline.md +2 -2
  94. package/docs/reference/visual/ring-color.md +29 -0
  95. package/docs/reference/visual/ring-offset.md +30 -0
  96. package/docs/reference/visual/ring.md +62 -0
  97. package/docs/reference/visual/stroke-width.md +6 -6
  98. package/docs/reference/visual/stroke.md +4 -4
  99. package/docs/reference/visual/text-indent.md +2 -2
  100. package/docs/reference/visual/text-overflow.md +2 -2
  101. package/docs/reference/visual/text-size.md +84 -84
  102. package/docs/reference/visual/text-wrap.md +2 -2
  103. package/docs/reference/visual/transform-backface.md +4 -4
  104. package/docs/reference/visual/transform-perspective-origin.md +6 -6
  105. package/docs/reference/visual/transform-perspective.md +6 -6
  106. package/docs/reference/visual/transform-rotate-3d.md +6 -6
  107. package/docs/reference/visual/transform-style.md +4 -4
  108. package/docs/reference/visual/transform-translate-z.md +6 -6
  109. package/docs/reference/visual/transform-translate.md +2 -2
  110. package/docs/reference/visual/whitespace.md +2 -2
  111. package/docs/reference/visual/word-break.md +2 -2
  112. package/package.json +4 -2
  113. package/playground/tw-convertor.html +103 -589
  114. package/scripts/build-dist.js +45 -3
  115. package/scripts/bundle-jit.js +3 -3
  116. package/scripts/convert-tailwind.js +180 -1
  117. package/scripts/generate-llms-txt.js +264 -0
  118. package/src/cdn/{jit.js → senangstart-engine.js} +97 -8
  119. package/src/cdn/tw-conversion-engine.js +632 -0
  120. package/src/compiler/generators/css.js +27 -0
  121. package/src/config/defaults.js +37 -11
  122. package/src/core/constants.js +37 -8
  123. package/src/definitions/layout-positioning.js +6 -6
  124. package/src/definitions/space.js +46 -5
  125. package/src/definitions/visual-backgrounds.js +113 -15
  126. package/src/definitions/visual-borders.js +81 -2
  127. package/src/definitions/visual-filters.js +16 -16
  128. package/src/definitions/visual-svg.js +5 -5
  129. package/src/definitions/visual-transform3d.js +16 -16
  130. package/src/definitions/visual-transforms.js +1 -1
  131. package/src/definitions/visual-transitions.js +4 -4
  132. package/src/definitions/visual-typography.js +6 -6
  133. package/src/definitions/visual.js +4 -4
  134. package/tests/unit/compiler/generators/css.test.js +192 -0
  135. package/tests/unit/convert-tailwind.test.js +8 -0
@@ -32,19 +32,45 @@ export const defaultConfig = {
32
32
  preflight: true,
33
33
 
34
34
  theme: {
35
- // 1. SPACING: The "Natural Object" Scale
35
+ // 1. SPACING: The "Natural Object" Scale with multiplier variants
36
36
  // Logic: How big is the object/gap physically?
37
37
  spacing: {
38
- 'none': '0px', // No space
39
- 'thin': '1px', // Hairline (for borders)
40
- 'regular': '2px', // Standard border
41
- 'thick': '3px', // Bold border
42
- 'tiny': '4px', // Pebble (Small offsets)
43
- 'small': '8px', // Matchbox (Grouping inside components)
44
- 'medium': '16px', // Smartphone (Standard default)
45
- 'big': '32px', // Laptop (Separation between groups)
46
- 'giant': '64px', // Door (Layout sections)
47
- 'vast': '128px' // House (Hero sections)
38
+ 'none': '0px', // No space
39
+ 'thin': '1px', // Hairline (for borders)
40
+ 'regular': '2px', // Standard border
41
+ 'thick': '3px', // Bold border
42
+ 'tiny': '4px', // Small offsets
43
+ 'tiny-2x': '6px', // Tiny multiplied
44
+ 'small': '8px', // Grouping inside components
45
+ 'small-2x': '10px', //
46
+ 'small-3x': '12px', //
47
+ 'small-4x': '14px', //
48
+ 'medium': '16px', // Standard default
49
+ 'medium-2x': '20px', //
50
+ 'medium-3x': '24px', //
51
+ 'medium-4x': '28px', //
52
+ 'large': '32px', // Separation between groups
53
+ 'large-2x': '36px', //
54
+ 'large-3x': '40px', //
55
+ 'large-4x': '44px', //
56
+ 'big': '48px', // Layout sections
57
+ 'big-2x': '56px', //
58
+ 'big-3x': '64px', //
59
+ 'big-4x': '80px', //
60
+ 'giant': '96px', // Hero sections
61
+ 'giant-2x': '112px', //
62
+ 'giant-3x': '128px', //
63
+ 'giant-4x': '144px', //
64
+ 'vast': '160px', // Page-level spacing
65
+ 'vast-2x': '176px', //
66
+ 'vast-3x': '192px', //
67
+ 'vast-4x': '208px', //
68
+ 'vast-5x': '224px', //
69
+ 'vast-6x': '240px', //
70
+ 'vast-7x': '256px', //
71
+ 'vast-8x': '288px', //
72
+ 'vast-9x': '320px', //
73
+ 'vast-10x': '384px', //
48
74
  },
49
75
 
50
76
  // 2. RADIUS: Tactile Feel
@@ -7,7 +7,7 @@
7
7
  export const BREAKPOINTS = ['mob', 'tab', 'lap', 'desk', 'tw-sm', 'tw-md', 'tw-lg', 'tw-xl', 'tw-2xl'];
8
8
 
9
9
  // State prefixes
10
- export const STATES = ['hover', 'focus', 'active', 'disabled', 'dark'];
10
+ export const STATES = ['hover', 'focus', 'focus-visible', 'active', 'disabled', 'dark'];
11
11
 
12
12
  // Layout keywords (no colon syntax)
13
13
  export const LAYOUT_KEYWORDS = [
@@ -204,13 +204,42 @@ export const TYPOGRAPHY_KEYWORDS = {
204
204
  // Default theme configuration
205
205
  export const DEFAULT_THEME = {
206
206
  spacing: {
207
- 'none': '0px',
208
- 'tiny': '4px',
209
- 'small': '8px',
210
- 'medium': '16px',
211
- 'big': '32px',
212
- 'giant': '64px',
213
- 'vast': '128px'
207
+ 'none': '0px',
208
+ 'thin': '1px',
209
+ 'regular': '2px',
210
+ 'thick': '3px',
211
+ 'tiny': '4px',
212
+ 'tiny-2x': '6px',
213
+ 'small': '8px',
214
+ 'small-2x': '10px',
215
+ 'small-3x': '12px',
216
+ 'small-4x': '14px',
217
+ 'medium': '16px',
218
+ 'medium-2x': '20px',
219
+ 'medium-3x': '24px',
220
+ 'medium-4x': '28px',
221
+ 'large': '32px',
222
+ 'large-2x': '36px',
223
+ 'large-3x': '40px',
224
+ 'large-4x': '44px',
225
+ 'big': '48px',
226
+ 'big-2x': '56px',
227
+ 'big-3x': '64px',
228
+ 'big-4x': '80px',
229
+ 'giant': '96px',
230
+ 'giant-2x': '112px',
231
+ 'giant-3x': '128px',
232
+ 'giant-4x': '144px',
233
+ 'vast': '160px',
234
+ 'vast-2x': '176px',
235
+ 'vast-3x': '192px',
236
+ 'vast-4x': '208px',
237
+ 'vast-5x': '224px',
238
+ 'vast-6x': '240px',
239
+ 'vast-7x': '256px',
240
+ 'vast-8x': '288px',
241
+ 'vast-9x': '320px',
242
+ 'vast-10x': '384px'
214
243
  },
215
244
  radius: {
216
245
  'none': '0px',
@@ -33,7 +33,7 @@ export const position = {
33
33
  descriptionMs: 'Elemen diletakkan relatif kepada aliran normal',
34
34
  html: `<div layout="relative" space="p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
35
35
  <span space="p:small" visual="bg:primary text:white rounded:small">Relative Container</span>
36
- <span layout="absolute" style="top: 0; right: 0;" space="p:tiny" visual="bg:danger text:white rounded:small">Abs</span>
36
+ <span layout="absolute top:0 right:0" space="p:tiny" visual="bg:danger text:white rounded:small">Abs</span>
37
37
  </div>`,
38
38
  highlightValue: 'relative'
39
39
  },
@@ -43,7 +43,7 @@ export const position = {
43
43
  description: 'Element sticks when scrolling past it',
44
44
  descriptionMs: 'Elemen melekat apabila skrol melepasi',
45
45
  html: `<div space="p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
46
- <span layout="sticky" style="top: 0;" space="p:small" visual="bg:primary text:white rounded:small">Sticky Header</span>
46
+ <span layout="sticky top:0" space="p:small" visual="bg:primary text:white rounded:small">Sticky Header</span>
47
47
  </div>`,
48
48
  highlightValue: 'sticky'
49
49
  }
@@ -133,10 +133,10 @@ export const zIndex = {
133
133
  description: 'Control stacking order of positioned elements',
134
134
  descriptionMs: 'Kawal susunan tindanan elemen yang diletakkan',
135
135
  html: `<div layout="relative" space="p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium" style="height: 80px;">
136
- <span layout="absolute z:base" style="left: 0; top: 10px;" space="p:small" visual="bg:neutral-400 text:white rounded:small">z:base</span>
137
- <span layout="absolute z:low" style="left: 30px; top: 20px;" space="p:small" visual="bg:neutral-500 text:white rounded:small">z:low</span>
138
- <span layout="absolute z:mid" style="left: 60px; top: 30px;" space="p:small" visual="bg:neutral-600 text:white rounded:small">z:mid</span>
139
- <span layout="absolute z:high" style="left: 90px; top: 40px;" space="p:small" visual="bg:primary text:white rounded:small">z:high</span>
136
+ <span layout="absolute z:base left:0 top:10px" space="p:small" visual="bg:neutral-400 text:white rounded:small">z:base</span>
137
+ <span layout="absolute z:low left:30px top:20px" space="p:small" visual="bg:neutral-500 text:white rounded:small">z:low</span>
138
+ <span layout="absolute z:mid left:60px top:30px" space="p:small" visual="bg:neutral-600 text:white rounded:small">z:mid</span>
139
+ <span layout="absolute z:high left:90px top:40px" space="p:small" visual="bg:primary text:white rounded:small">z:high</span>
140
140
  </div>`,
141
141
  highlightValue: 'z:high'
142
142
  }
@@ -24,7 +24,15 @@ export const padding = {
24
24
  { property: 'p-x', css: 'padding-left: var(--s-{value}); padding-right: var(--s-{value});', description: 'Horizontal', descriptionMs: 'Mendatar' },
25
25
  { property: 'p-y', css: 'padding-top: var(--s-{value}); padding-bottom: var(--s-{value});', description: 'Vertical', descriptionMs: 'Menegak' }
26
26
  ],
27
- scaleValues: ['none', 'tiny', 'small', 'medium', 'big', 'giant', 'vast'],
27
+ scaleValues: [
28
+ 'none', 'thin', 'regular', 'thick', 'tiny', 'tiny-2x',
29
+ 'small', 'small-2x', 'small-3x', 'small-4x',
30
+ 'medium', 'medium-2x', 'medium-3x', 'medium-4x',
31
+ 'large', 'large-2x', 'large-3x', 'large-4x',
32
+ 'big', 'big-2x', 'big-3x', 'big-4x',
33
+ 'giant', 'giant-2x', 'giant-3x', 'giant-4x',
34
+ 'vast', 'vast-2x', 'vast-3x', 'vast-4x', 'vast-5x', 'vast-6x', 'vast-7x', 'vast-8x', 'vast-9x', 'vast-10x'
35
+ ],
28
36
  supportsArbitrary: true,
29
37
  examples: [
30
38
  { code: '<div space="p:medium">Padding all sides</div>', description: 'Medium padding' },
@@ -89,7 +97,16 @@ export const margin = {
89
97
  { property: 'm-x', css: 'margin-left: var(--s-{value}); margin-right: var(--s-{value});', description: 'Horizontal', descriptionMs: 'Mendatar' },
90
98
  { property: 'm-y', css: 'margin-top: var(--s-{value}); margin-bottom: var(--s-{value});', description: 'Vertical', descriptionMs: 'Menegak' }
91
99
  ],
92
- scaleValues: ['none', 'tiny', 'small', 'medium', 'big', 'giant', 'vast', 'auto'],
100
+ scaleValues: [
101
+ 'none', 'thin', 'regular', 'thick', 'tiny', 'tiny-2x',
102
+ 'small', 'small-2x', 'small-3x', 'small-4x',
103
+ 'medium', 'medium-2x', 'medium-3x', 'medium-4x',
104
+ 'large', 'large-2x', 'large-3x', 'large-4x',
105
+ 'big', 'big-2x', 'big-3x', 'big-4x',
106
+ 'giant', 'giant-2x', 'giant-3x', 'giant-4x',
107
+ 'vast', 'vast-2x', 'vast-3x', 'vast-4x', 'vast-5x', 'vast-6x', 'vast-7x', 'vast-8x', 'vast-9x', 'vast-10x',
108
+ 'auto'
109
+ ],
93
110
  supportsArbitrary: true,
94
111
  examples: [
95
112
  { code: '<div space="m:medium">Margin all sides</div>', description: 'Medium margin' },
@@ -148,7 +165,15 @@ export const gap = {
148
165
  { property: 'g-x', css: 'column-gap: var(--s-{value});', description: 'Column gap', descriptionMs: 'Ruang lajur' },
149
166
  { property: 'g-y', css: 'row-gap: var(--s-{value});', description: 'Row gap', descriptionMs: 'Ruang baris' }
150
167
  ],
151
- scaleValues: ['none', 'tiny', 'small', 'medium', 'big', 'giant', 'vast'],
168
+ scaleValues: [
169
+ 'none', 'thin', 'regular', 'thick', 'tiny', 'tiny-2x',
170
+ 'small', 'small-2x', 'small-3x', 'small-4x',
171
+ 'medium', 'medium-2x', 'medium-3x', 'medium-4x',
172
+ 'large', 'large-2x', 'large-3x', 'large-4x',
173
+ 'big', 'big-2x', 'big-3x', 'big-4x',
174
+ 'giant', 'giant-2x', 'giant-3x', 'giant-4x',
175
+ 'vast', 'vast-2x', 'vast-3x', 'vast-4x', 'vast-5x', 'vast-6x', 'vast-7x', 'vast-8x', 'vast-9x', 'vast-10x'
176
+ ],
152
177
  supportsArbitrary: true,
153
178
  examples: [
154
179
  { code: '<div layout="flex" space="g:medium">Gap between items</div>', description: 'Flex gap' },
@@ -211,7 +236,15 @@ export const width = {
211
236
  { property: 'min-w', css: 'min-width: var(--s-{value});', description: 'Minimum width', descriptionMs: 'Lebar minimum' },
212
237
  { property: 'max-w', css: 'max-width: var(--s-{value});', description: 'Maximum width', descriptionMs: 'Lebar maksimum' }
213
238
  ],
214
- scaleValues: ['none', 'tiny', 'small', 'medium', 'big', 'giant', 'vast'],
239
+ scaleValues: [
240
+ 'none', 'thin', 'regular', 'thick', 'tiny', 'tiny-2x',
241
+ 'small', 'small-2x', 'small-3x', 'small-4x',
242
+ 'medium', 'medium-2x', 'medium-3x', 'medium-4x',
243
+ 'large', 'large-2x', 'large-3x', 'large-4x',
244
+ 'big', 'big-2x', 'big-3x', 'big-4x',
245
+ 'giant', 'giant-2x', 'giant-3x', 'giant-4x',
246
+ 'vast', 'vast-2x', 'vast-3x', 'vast-4x', 'vast-5x', 'vast-6x', 'vast-7x', 'vast-8x', 'vast-9x', 'vast-10x'
247
+ ],
215
248
  supportsArbitrary: true,
216
249
  examples: [
217
250
  { code: '<div space="w:[100%]">Full width</div>', description: 'Full width' },
@@ -270,7 +303,15 @@ export const height = {
270
303
  { property: 'min-h', css: 'min-height: var(--s-{value});', description: 'Minimum height', descriptionMs: 'Tinggi minimum' },
271
304
  { property: 'max-h', css: 'max-height: var(--s-{value});', description: 'Maximum height', descriptionMs: 'Tinggi maksimum' }
272
305
  ],
273
- scaleValues: ['none', 'tiny', 'small', 'medium', 'big', 'giant', 'vast'],
306
+ scaleValues: [
307
+ 'none', 'thin', 'regular', 'thick', 'tiny', 'tiny-2x',
308
+ 'small', 'small-2x', 'small-3x', 'small-4x',
309
+ 'medium', 'medium-2x', 'medium-3x', 'medium-4x',
310
+ 'large', 'large-2x', 'large-3x', 'large-4x',
311
+ 'big', 'big-2x', 'big-3x', 'big-4x',
312
+ 'giant', 'giant-2x', 'giant-3x', 'giant-4x',
313
+ 'vast', 'vast-2x', 'vast-3x', 'vast-4x', 'vast-5x', 'vast-6x', 'vast-7x', 'vast-8x', 'vast-9x', 'vast-10x'
314
+ ],
274
315
  supportsArbitrary: true,
275
316
  examples: [
276
317
  { code: '<div space="h:[100vh]">Full viewport height</div>', description: 'Full height' },
@@ -32,8 +32,8 @@ export const backgroundImage = {
32
32
  description: 'Apply gradient backgrounds',
33
33
  descriptionMs: 'Terapkan latar gradien',
34
34
  html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
35
- <div space="p:medium" visual="text:white rounded:small" style="background-image: linear-gradient(to right, #3b82f6, #8b5cf6);">gradient-to-r</div>
36
- <div space="p:medium" visual="text:white rounded:small" style="background-image: linear-gradient(to bottom, #10b981, #3b82f6);">gradient-to-b</div>
35
+ <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:violet-500 text:white rounded:small">gradient-to-r</div>
36
+ <div space="p:medium" visual="bg-image:gradient-to-b from:emerald-500 to:blue-500 text:white rounded:small">gradient-to-b</div>
37
37
  </div>`,
38
38
  highlightValue: 'bg-image:gradient-to-r'
39
39
  }
@@ -101,7 +101,7 @@ export const backgroundClip = {
101
101
  description: 'Clip background to text for gradient text effect',
102
102
  descriptionMs: 'Keratan latar kepada teks untuk kesan teks gradien',
103
103
  html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
104
- <span style="font-size: 1.5rem; font-weight: bold; background: linear-gradient(to right, #3b82f6, #8b5cf6); -webkit-background-clip: text; background-clip: text; color: transparent;">Gradient Text</span>
104
+ <span text="size:large weight:bold" visual="bg-image:gradient-to-r from:blue-500 to:violet-500 bg-clip:text text:transparent">Gradient Text</span>
105
105
  </div>`,
106
106
  highlightValue: 'bg-clip:text'
107
107
  }
@@ -327,8 +327,8 @@ export const backdropBlur = {
327
327
  titleMs: 'Kabur Latar Belakang',
328
328
  description: 'Creates a frosted glass effect on content behind the element',
329
329
  descriptionMs: 'Mencipta kesan kaca beku pada kandungan di belakang elemen',
330
- html: `<div layout="relative" space="p:medium" visual="rounded:medium" style="background: linear-gradient(135deg, #3b82f6, #8b5cf6); min-height: 100px;">
331
- <div layout="absolute" style="top: 50%; left: 50%; transform: translate(-50%, -50%); backdrop-filter: blur(8px); background: rgba(255,255,255,0.2); padding: 1rem; border-radius: 0.5rem;">
330
+ html: `<div layout="flex:center" space="p:large" visual="bg-image:gradient-to-br from:blue-500 to:violet-500 rounded:medium">
331
+ <div space="p:medium" visual="backdrop-blur:medium bg:[rgba(255,255,255,0.2)] rounded:small">
332
332
  <span visual="text:white">Frosted Glass</span>
333
333
  </div>
334
334
  </div>`,
@@ -365,10 +365,10 @@ export const backdropBrightness = {
365
365
  titleMs: 'Kecerahan Latar Belakang',
366
366
  description: 'Dim or brighten the backdrop behind an overlay',
367
367
  descriptionMs: 'Redupkan atau cerahkan latar belakang di sebalik tindanan',
368
- html: `<div layout="flex" space="g:medium p:medium" visual="rounded:medium" style="background: linear-gradient(135deg, #f97316, #ef4444);">
369
- <div space="p:small" visual="rounded:small text:white" style="backdrop-filter: brightness(0.5);">dim (50%)</div>
370
- <div space="p:small" visual="rounded:small text:white" style="backdrop-filter: brightness(1);">normal</div>
371
- <div space="p:small" visual="rounded:small text:white" style="backdrop-filter: brightness(1.5);">bright (150%)</div>
368
+ html: `<div layout="flex" space="g:medium p:medium" visual="bg-image:gradient-to-br from:orange-500 to:red-500 rounded:medium">
369
+ <div space="p:small" visual="backdrop-brightness:dim rounded:small text:white">dim (50%)</div>
370
+ <div space="p:small" visual="backdrop-brightness:normal rounded:small text:white">normal</div>
371
+ <div space="p:small" visual="backdrop-brightness:vivid rounded:small text:white">bright (150%)</div>
372
372
  </div>`,
373
373
  highlightValue: 'backdrop-brightness:dark'
374
374
  }
@@ -439,9 +439,9 @@ export const backdropGrayscale = {
439
439
  titleMs: 'Skala Kelabu Latar Belakang',
440
440
  description: 'Remove color from backdrop, creating a desaturated effect',
441
441
  descriptionMs: 'Alih keluar warna dari latar belakang, mencipta kesan tidak tepu',
442
- html: `<div layout="flex" space="g:medium" visual="rounded:medium">
443
- <div space="p:small" visual="rounded:small text:white" style="background: linear-gradient(135deg, #3b82f6, #10b981);">Original</div>
444
- <div space="p:small" visual="rounded:small text:white" style="background: linear-gradient(135deg, #3b82f6, #10b981); filter: grayscale(100%);">Grayscale</div>
442
+ html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
443
+ <div space="p:small" visual="bg-image:gradient-to-br from:blue-500 to:emerald-500 rounded:small text:white">Original</div>
444
+ <div space="p:small" visual="bg-image:gradient-to-br from:blue-500 to:emerald-500 filter-grayscale:full rounded:small text:white">Grayscale</div>
445
445
  </div>`,
446
446
  highlightValue: 'backdrop-grayscale:full'
447
447
  }
@@ -621,15 +621,110 @@ export const backdropSepia = {
621
621
  titleMs: 'Sepia Latar Belakang',
622
622
  description: 'Apply vintage sepia tone to the backdrop',
623
623
  descriptionMs: 'Terapkan ton sepia vintaj pada latar belakang',
624
- html: `<div layout="flex" space="g:medium" visual="rounded:medium">
625
- <div space="p:small" visual="rounded:small text:white" style="background: linear-gradient(135deg, #3b82f6, #10b981);">Original</div>
626
- <div space="p:small" visual="rounded:small text:white" style="background: linear-gradient(135deg, #3b82f6, #10b981); filter: sepia(100%);">Sepia</div>
624
+ html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
625
+ <div space="p:small" visual="bg-image:gradient-to-br from:blue-500 to:emerald-500 rounded:small text:white">Original</div>
626
+ <div space="p:small" visual="bg-image:gradient-to-br from:blue-500 to:emerald-500 filter-sepia:full rounded:small text:white">Sepia</div>
627
627
  </div>`,
628
628
  highlightValue: 'backdrop-sepia:full'
629
629
  }
630
630
  ]
631
631
  };
632
632
 
633
+ // ======================
634
+ // GRADIENT COLOR STOPS
635
+ // ======================
636
+
637
+ export const gradientFrom = {
638
+ name: 'gradient-from',
639
+ property: 'visual',
640
+ syntax: 'visual="from:[color]"',
641
+ description: 'Set gradient start color',
642
+ descriptionMs: 'Tetapkan warna mula gradien',
643
+ category: 'visual',
644
+ usesScale: 'colors',
645
+ supportsArbitrary: true,
646
+ values: [
647
+ { value: 'primary', css: '--tw-gradient-from: var(--c-primary); --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);', description: 'Start from primary', descriptionMs: 'Mula dari utama' },
648
+ { value: 'blue-500', css: '--tw-gradient-from: var(--c-blue-500); --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);', description: 'Start from blue', descriptionMs: 'Mula dari biru' }
649
+ ],
650
+ examples: [
651
+ { code: '<div visual="bg-image:gradient-to-r from:blue-500 to:purple-500">Gradient</div>', description: 'Blue to purple gradient' }
652
+ ],
653
+ preview: [
654
+ {
655
+ title: 'Gradient From',
656
+ titleMs: 'Mula Gradien',
657
+ description: 'Set the starting color of a gradient',
658
+ descriptionMs: 'Tetapkan warna permulaan gradien',
659
+ html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
660
+ <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>
661
+ <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>
662
+ </div>`,
663
+ highlightValue: 'from:blue-500'
664
+ }
665
+ ]
666
+ };
667
+
668
+ export const gradientVia = {
669
+ name: 'gradient-via',
670
+ property: 'visual',
671
+ syntax: 'visual="via:[color]"',
672
+ description: 'Set gradient middle color',
673
+ descriptionMs: 'Tetapkan warna tengah gradien',
674
+ category: 'visual',
675
+ usesScale: 'colors',
676
+ supportsArbitrary: true,
677
+ values: [
678
+ { value: 'purple-500', css: '--tw-gradient-via: var(--c-purple-500); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-via), var(--tw-gradient-to);', description: 'Via purple', descriptionMs: 'Melalui ungu' }
679
+ ],
680
+ examples: [
681
+ { code: '<div visual="bg-image:gradient-to-r from:blue-500 via:purple-500 to:pink-500">Three-color gradient</div>', description: 'Three-color gradient' }
682
+ ],
683
+ preview: [
684
+ {
685
+ title: 'Gradient Via',
686
+ titleMs: 'Pertengahan Gradien',
687
+ description: 'Add a middle color stop to gradients',
688
+ descriptionMs: 'Tambah hentian warna tengah pada gradien',
689
+ html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
690
+ <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>
691
+ </div>`,
692
+ highlightValue: 'via:purple-500'
693
+ }
694
+ ]
695
+ };
696
+
697
+ export const gradientTo = {
698
+ name: 'gradient-to',
699
+ property: 'visual',
700
+ syntax: 'visual="to:[color]"',
701
+ description: 'Set gradient end color',
702
+ descriptionMs: 'Tetapkan warna akhir gradien',
703
+ category: 'visual',
704
+ usesScale: 'colors',
705
+ supportsArbitrary: true,
706
+ values: [
707
+ { value: 'purple-500', css: '--tw-gradient-to: var(--c-purple-500);', description: 'End at purple', descriptionMs: 'Akhir di ungu' },
708
+ { value: 'pink-500', css: '--tw-gradient-to: var(--c-pink-500);', description: 'End at pink', descriptionMs: 'Akhir di merah jambu' }
709
+ ],
710
+ examples: [
711
+ { code: '<div visual="bg-image:gradient-to-r from:blue-500 to:purple-500">Blue to purple</div>', description: 'End color' }
712
+ ],
713
+ preview: [
714
+ {
715
+ title: 'Gradient To',
716
+ titleMs: 'Akhir Gradien',
717
+ description: 'Set the ending color of a gradient',
718
+ descriptionMs: 'Tetapkan warna pengakhiran gradien',
719
+ html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
720
+ <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:purple-500 text:white rounded:small">to:purple-500</div>
721
+ <div space="p:medium" visual="bg-image:gradient-to-r from:blue-500 to:pink-500 text:white rounded:small">to:pink-500</div>
722
+ </div>`,
723
+ highlightValue: 'to:purple-500'
724
+ }
725
+ ]
726
+ };
727
+
633
728
  // Export all background/backdrop definitions
634
729
  export const backgroundDefinitions = {
635
730
  backgroundImage,
@@ -640,6 +735,9 @@ export const backgroundDefinitions = {
640
735
  backgroundRepeat,
641
736
  backgroundSize,
642
737
  backgroundBlendMode,
738
+ gradientFrom,
739
+ gradientVia,
740
+ gradientTo,
643
741
  backdropBlur,
644
742
  backdropBrightness,
645
743
  backdropContrast,
@@ -159,19 +159,98 @@ export const outlineColor = {
159
159
  description: 'Outline does not affect layout',
160
160
  descriptionMs: 'Garis luar tidak mempengaruhi susun atur',
161
161
  html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
162
- <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>
162
+ <button space="p:small" visual="outline:primary bg:white dark:bg:neutral-800 rounded:small">outline:primary</button>
163
163
  </div>`,
164
164
  highlightValue: 'outline:primary'
165
165
  }
166
166
  ]
167
167
  };
168
168
 
169
+ // ======================
170
+ // RING (Focus Ring)
171
+ // ======================
172
+
173
+ export const ring = {
174
+ name: 'ring',
175
+ property: 'visual',
176
+ syntax: 'visual="ring:[size]"',
177
+ description: 'Add focus ring around element using box-shadow',
178
+ descriptionMs: 'Tambah cincin fokus pada elemen menggunakan box-shadow',
179
+ category: 'visual',
180
+ usesScale: 'ring',
181
+ supportsArbitrary: true,
182
+ values: [
183
+ { value: 'none', css: 'box-shadow: 0 0 0 0 transparent;', description: 'No ring', descriptionMs: 'Tiada cincin' },
184
+ { value: 'thin', css: 'box-shadow: 0 0 0 1px var(--ring-color);', description: 'Thin ring (1px)', descriptionMs: 'Cincin nipis (1px)' },
185
+ { value: 'regular', css: 'box-shadow: 0 0 0 2px var(--ring-color);', description: 'Regular ring (2px)', descriptionMs: 'Cincin biasa (2px)' },
186
+ { value: 'small', css: 'box-shadow: 0 0 0 4px var(--ring-color);', description: 'Small ring (4px)', descriptionMs: 'Cincin kecil (4px)' },
187
+ { value: 'medium', css: 'box-shadow: 0 0 0 6px var(--ring-color);', description: 'Medium ring (6px)', descriptionMs: 'Cincin sederhana (6px)' },
188
+ { value: 'big', css: 'box-shadow: 0 0 0 8px var(--ring-color);', description: 'Big ring (8px)', descriptionMs: 'Cincin besar (8px)' }
189
+ ],
190
+ examples: [
191
+ { code: '<button visual="focus-visible:ring:small ring-color:primary">Focus me</button>', description: 'Focus ring on keyboard focus' },
192
+ { code: '<input visual="focus:ring:regular ring-color:blue-500">', description: 'Input with focus ring' }
193
+ ],
194
+ preview: [
195
+ {
196
+ title: 'Focus Ring',
197
+ titleMs: 'Cincin Fokus',
198
+ description: 'Ring appears on keyboard focus (try Tab key)',
199
+ descriptionMs: 'Cincin muncul pada fokus papan kekunci (cuba kekunci Tab)',
200
+ html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
201
+ <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>
202
+ <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>
203
+ </div>`,
204
+ highlightValue: 'focus-visible:ring:small'
205
+ }
206
+ ]
207
+ };
208
+
209
+ export const ringColor = {
210
+ name: 'ring-color',
211
+ property: 'visual',
212
+ syntax: 'visual="ring-color:[color]"',
213
+ description: 'Set ring color',
214
+ descriptionMs: 'Tetapkan warna cincin',
215
+ category: 'visual',
216
+ usesScale: 'colors',
217
+ supportsArbitrary: true,
218
+ values: [
219
+ { value: 'primary', css: '--ring-color: var(--c-primary);', description: 'Primary ring color', descriptionMs: 'Warna cincin utama' },
220
+ { value: 'blue-500', css: '--ring-color: var(--c-blue-500);', description: 'Blue ring color', descriptionMs: 'Warna cincin biru' }
221
+ ],
222
+ examples: [
223
+ { code: '<button visual="ring:small ring-color:primary">Colored ring</button>', description: 'Ring with custom color' }
224
+ ]
225
+ };
226
+
227
+ export const ringOffset = {
228
+ name: 'ring-offset',
229
+ property: 'visual',
230
+ syntax: 'visual="ring-offset:[size]"',
231
+ description: 'Add gap between ring and element',
232
+ descriptionMs: 'Tambah ruang antara cincin dan elemen',
233
+ category: 'visual',
234
+ supportsArbitrary: true,
235
+ values: [
236
+ { value: '0', css: '--ring-offset: 0px;', description: 'No offset', descriptionMs: 'Tiada ruang' },
237
+ { value: '2', css: '--ring-offset: 2px;', description: '2px offset', descriptionMs: 'Ruang 2px' },
238
+ { value: '4', css: '--ring-offset: 4px;', description: '4px offset', descriptionMs: 'Ruang 4px' }
239
+ ],
240
+ examples: [
241
+ { code: '<button visual="ring:small ring-offset:2 ring-color:primary">With offset</button>', description: 'Ring with offset' }
242
+ ]
243
+ };
244
+
169
245
  // Export all border definitions
170
246
  export const borderDefinitions = {
171
247
  borderColor,
172
248
  borderWidth,
173
249
  borderStyle,
174
- outlineColor
250
+ outlineColor,
251
+ ring,
252
+ ringColor,
253
+ ringOffset
175
254
  };
176
255
 
177
256
  export default borderDefinitions;
@@ -32,9 +32,9 @@ export const filterBrightness = {
32
32
  description: 'Adjust element brightness',
33
33
  descriptionMs: 'Laraskan kecerahan elemen',
34
34
  html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
35
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: brightness(0.5);">dim</div>
35
+ <div space="p:small" visual="bg:primary text:white rounded:small brightness:dim">dim</div>
36
36
  <div space="p:small" visual="bg:primary text:white rounded:small">normal</div>
37
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: brightness(1.5);">vivid</div>
37
+ <div space="p:small" visual="bg:primary text:white rounded:small brightness:vivid">vivid</div>
38
38
  </div>`,
39
39
  highlightValue: 'brightness:bright'
40
40
  }
@@ -70,9 +70,9 @@ export const filterContrast = {
70
70
  description: 'Adjust element contrast',
71
71
  descriptionMs: 'Laraskan kontras elemen',
72
72
  html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
73
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: contrast(0.5);">low</div>
73
+ <div space="p:small" visual="bg:primary text:white rounded:small contrast:low">low</div>
74
74
  <div space="p:small" visual="bg:primary text:white rounded:small">normal</div>
75
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: contrast(1.5);">high</div>
75
+ <div space="p:small" visual="bg:primary text:white rounded:small contrast:max">high</div>
76
76
  </div>`,
77
77
  highlightValue: 'contrast:high'
78
78
  }
@@ -107,8 +107,8 @@ export const filterGrayscale = {
107
107
  descriptionMs: 'Tukar ke skala kelabu',
108
108
  html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
109
109
  <div space="p:small" visual="bg:primary text:white rounded:small">none</div>
110
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: grayscale(50%);">partial</div>
111
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: grayscale(100%);">full</div>
110
+ <div space="p:small" visual="bg:primary text:white rounded:small grayscale:partial">partial</div>
111
+ <div space="p:small" visual="bg:primary text:white rounded:small grayscale:full">full</div>
112
112
  </div>`,
113
113
  highlightValue: 'grayscale:full'
114
114
  }
@@ -144,8 +144,8 @@ export const filterHueRotate = {
144
144
  descriptionMs: 'Putar rona warna',
145
145
  html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
146
146
  <div space="p:small" visual="bg:primary text:white rounded:small">0°</div>
147
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: hue-rotate(90deg);">90°</div>
148
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: hue-rotate(180deg);">180°</div>
147
+ <div space="p:small" visual="bg:primary text:white rounded:small hue-rotate:90">90°</div>
148
+ <div space="p:small" visual="bg:primary text:white rounded:small hue-rotate:180">180°</div>
149
149
  </div>`,
150
150
  highlightValue: 'hue-rotate:90'
151
151
  }
@@ -180,7 +180,7 @@ export const filterInvert = {
180
180
  descriptionMs: 'Songsangkan warna elemen',
181
181
  html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
182
182
  <div space="p:small" visual="bg:primary text:white rounded:small">none</div>
183
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: invert(100%);">full</div>
183
+ <div space="p:small" visual="bg:primary text:white rounded:small invert:full">full</div>
184
184
  </div>`,
185
185
  highlightValue: 'invert:full'
186
186
  }
@@ -216,9 +216,9 @@ export const filterSaturate = {
216
216
  description: 'Adjust color saturation',
217
217
  descriptionMs: 'Laraskan ketepuan warna',
218
218
  html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
219
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: saturate(0);">none</div>
219
+ <div space="p:small" visual="bg:primary text:white rounded:small saturate:none">none</div>
220
220
  <div space="p:small" visual="bg:primary text:white rounded:small">normal</div>
221
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: saturate(2);">vivid</div>
221
+ <div space="p:small" visual="bg:primary text:white rounded:small saturate:vivid">vivid</div>
222
222
  </div>`,
223
223
  highlightValue: 'saturate:vivid'
224
224
  }
@@ -253,8 +253,8 @@ export const filterSepia = {
253
253
  descriptionMs: 'Terapkan ton sepia vintaj',
254
254
  html: `<div layout="flex" space="g:medium p:medium" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
255
255
  <div space="p:small" visual="bg:primary text:white rounded:small">none</div>
256
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: sepia(50%);">partial</div>
257
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: sepia(100%);">full</div>
256
+ <div space="p:small" visual="bg:primary text:white rounded:small sepia:partial">partial</div>
257
+ <div space="p:small" visual="bg:primary text:white rounded:small sepia:full">full</div>
258
258
  </div>`,
259
259
  highlightValue: 'sepia:full'
260
260
  }
@@ -291,9 +291,9 @@ export const filterDropShadow = {
291
291
  description: 'Add shadow to elements',
292
292
  descriptionMs: 'Tambah bayang pada elemen',
293
293
  html: `<div layout="flex" space="g:medium p:big" visual="bg:neutral-100 dark:bg:neutral-900 rounded:medium">
294
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3));">small</div>
295
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));">medium</div>
296
- <div space="p:small" visual="bg:primary text:white rounded:small" style="filter: drop-shadow(0 10px 15px rgba(0,0,0,0.3));">big</div>
294
+ <div space="p:small" visual="bg:primary text:white rounded:small drop-shadow:small">small</div>
295
+ <div space="p:small" visual="bg:primary text:white rounded:small drop-shadow:medium">medium</div>
296
+ <div space="p:small" visual="bg:primary text:white rounded:small drop-shadow:big">big</div>
297
297
  </div>`,
298
298
  highlightValue: 'drop-shadow:medium'
299
299
  }