@teseor/css 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/dist/compiled.css +1 -1
  2. package/dist/index.css +115 -115
  3. package/package.json +1 -1
  4. package/src/components/actions/button/button.api.json +29 -32
  5. package/src/components/actions/button/index.scss +36 -11
  6. package/src/components/actions/button-group/button-group.api.json +3 -1
  7. package/src/components/actions/button-group/index.scss +4 -0
  8. package/src/components/actions/close-button/close-button.api.json +31 -18
  9. package/src/components/actions/close-button/index.scss +26 -6
  10. package/src/components/content/divider/divider.api.json +12 -7
  11. package/src/components/content/divider/index.scss +11 -4
  12. package/src/components/content/scroll-area/index.scss +15 -1
  13. package/src/components/content/scroll-area/scroll-area-visual.png +0 -0
  14. package/src/components/content/scroll-area/scroll-area.api.json +33 -22
  15. package/src/components/content/scroll-area/scroll-area.docs.json +70 -1
  16. package/src/components/content/spacer/index.scss +6 -1
  17. package/src/components/content/spacer/spacer.api.json +8 -1
  18. package/src/components/data-display/avatar/avatar.api.json +36 -17
  19. package/src/components/data-display/avatar/index.scss +20 -2
  20. package/src/components/data-display/badge/badge.api.json +30 -48
  21. package/src/components/data-display/badge/index.scss +13 -0
  22. package/src/components/data-display/card/card.api.json +21 -23
  23. package/src/components/data-display/card/index.scss +19 -4
  24. package/src/components/data-display/data-list/data-list.api.json +9 -4
  25. package/src/components/data-display/data-list/index.scss +28 -11
  26. package/src/components/data-display/icon/icon.api.json +11 -22
  27. package/src/components/data-display/icon/index.scss +9 -4
  28. package/src/components/data-display/image/image.api.json +40 -26
  29. package/src/components/data-display/image/image.docs.json +1 -1
  30. package/src/components/data-display/image/index.scss +15 -1
  31. package/src/components/data-display/stat/index.scss +13 -1
  32. package/src/components/data-display/stat/stat.api.json +45 -7
  33. package/src/components/data-display/status/index.scss +8 -0
  34. package/src/components/data-display/status/status.api.json +10 -6
  35. package/src/components/data-display/table/index.scss +20 -6
  36. package/src/components/data-display/table/table.api.json +11 -5
  37. package/src/components/data-display/tag/index.scss +28 -3
  38. package/src/components/data-display/tag/tag.api.json +48 -22
  39. package/src/components/disclosure/accordion/accordion.api.json +7 -3
  40. package/src/components/disclosure/accordion/index.scss +8 -2
  41. package/src/components/disclosure/disclosure/disclosure.api.json +15 -8
  42. package/src/components/disclosure/disclosure/index.scss +21 -6
  43. package/src/components/feedback/alert/alert.api.json +40 -65
  44. package/src/components/feedback/alert/index.scss +26 -7
  45. package/src/components/feedback/progress/index.scss +16 -3
  46. package/src/components/feedback/progress/progress.api.json +13 -8
  47. package/src/components/feedback/progress-circle/index.scss +15 -2
  48. package/src/components/feedback/progress-circle/progress-circle.api.json +17 -8
  49. package/src/components/feedback/skeleton/index.scss +9 -2
  50. package/src/components/feedback/skeleton/skeleton.api.json +8 -4
  51. package/src/components/feedback/spinner/index.scss +14 -1
  52. package/src/components/feedback/spinner/spinner.api.json +27 -13
  53. package/src/components/feedback/toast/index.scss +39 -15
  54. package/src/components/feedback/toast/toast.api.json +39 -13
  55. package/src/components/forms/checkbox/checkbox.api.json +22 -11
  56. package/src/components/forms/checkbox/index.scss +27 -9
  57. package/src/components/forms/checkbox-group/checkbox-group.api.json +33 -14
  58. package/src/components/forms/checkbox-group/index.scss +22 -5
  59. package/src/components/forms/field/field.api.json +5 -3
  60. package/src/components/forms/field/index.scss +4 -0
  61. package/src/components/forms/fieldset/fieldset.api.json +29 -10
  62. package/src/components/forms/fieldset/index.scss +21 -4
  63. package/src/components/forms/form/form.api.json +15 -11
  64. package/src/components/forms/form/index.scss +10 -0
  65. package/src/components/forms/form-error/form-error.api.json +7 -3
  66. package/src/components/forms/form-error/index.scss +7 -1
  67. package/src/components/forms/form-helper/form-helper.api.json +7 -3
  68. package/src/components/forms/form-helper/index.scss +7 -1
  69. package/src/components/forms/input/index.scss +43 -12
  70. package/src/components/forms/input/input.api.json +36 -38
  71. package/src/components/forms/label/index.scss +14 -5
  72. package/src/components/forms/label/label.api.json +9 -4
  73. package/src/components/forms/number-input/index.scss +40 -15
  74. package/src/components/forms/number-input/number-input-visual.png +0 -0
  75. package/src/components/forms/number-input/number-input.api.json +48 -19
  76. package/src/components/forms/number-input/number-input.docs.json +49 -0
  77. package/src/components/forms/password-input/index.scss +44 -13
  78. package/src/components/forms/password-input/password-input-visual.png +0 -0
  79. package/src/components/forms/password-input/password-input.api.json +56 -25
  80. package/src/components/forms/password-input/password-input.docs.json +40 -0
  81. package/src/components/forms/radio/index.scss +27 -10
  82. package/src/components/forms/radio/radio.api.json +20 -10
  83. package/src/components/forms/radio-group/index.scss +22 -5
  84. package/src/components/forms/radio-group/radio-group.api.json +33 -14
  85. package/src/components/forms/search-input/index.scss +42 -11
  86. package/src/components/forms/search-input/search-input-visual.png +0 -0
  87. package/src/components/forms/search-input/search-input.api.json +66 -25
  88. package/src/components/forms/search-input/search-input.docs.json +36 -0
  89. package/src/components/forms/select/index.scss +40 -11
  90. package/src/components/forms/select/select.api.json +35 -17
  91. package/src/components/forms/slider/index.scss +28 -10
  92. package/src/components/forms/slider/slider.api.json +35 -20
  93. package/src/components/forms/textarea/index.scss +40 -9
  94. package/src/components/forms/textarea/textarea.api.json +40 -20
  95. package/src/components/forms/toggle/index.scss +18 -6
  96. package/src/components/forms/toggle/toggle.api.json +17 -8
  97. package/src/components/navigation/breadcrumb/breadcrumb.api.json +25 -11
  98. package/src/components/navigation/breadcrumb/index.scss +17 -4
  99. package/src/components/navigation/dropdown-menu/dropdown-menu-visual.png +0 -0
  100. package/src/components/navigation/dropdown-menu/dropdown-menu.api.json +7 -3
  101. package/src/components/navigation/dropdown-menu/dropdown-menu.docs.json +18 -0
  102. package/src/components/navigation/dropdown-menu/index.scss +15 -5
  103. package/src/components/navigation/menu/index.scss +41 -17
  104. package/src/components/navigation/menu/menu.api.json +24 -13
  105. package/src/components/navigation/nav/index.scss +30 -11
  106. package/src/components/navigation/nav/nav.api.json +42 -18
  107. package/src/components/navigation/pagination/index.scss +21 -5
  108. package/src/components/navigation/pagination/pagination.api.json +21 -12
  109. package/src/components/navigation/tabs/index.scss +43 -15
  110. package/src/components/navigation/tabs/tabs.api.json +49 -22
  111. package/src/components/overlays/dialog/dialog.api.json +9 -4
  112. package/src/components/overlays/dialog/index.scss +12 -3
  113. package/src/components/overlays/drawer/drawer-visual.png +0 -0
  114. package/src/components/overlays/drawer/drawer.api.json +26 -13
  115. package/src/components/overlays/drawer/index.scss +51 -26
  116. package/src/components/overlays/modal/index.scss +18 -3
  117. package/src/components/overlays/modal/modal.api.json +22 -12
  118. package/src/components/overlays/overlay/index.scss +17 -5
  119. package/src/components/overlays/overlay/overlay.api.json +11 -6
  120. package/src/components/overlays/popover/index.scss +26 -9
  121. package/src/components/overlays/popover/popover.api.json +18 -9
  122. package/src/components/overlays/tooltip/index.scss +17 -2
  123. package/src/components/overlays/tooltip/tooltip.api.json +19 -10
  124. package/src/components/typography/blockquote/blockquote.api.json +34 -7
  125. package/src/components/typography/blockquote/index.scss +17 -4
  126. package/src/components/typography/code/code.api.json +26 -11
  127. package/src/components/typography/code/index.scss +23 -6
  128. package/src/components/typography/code-block/code-block-visual.png +0 -0
  129. package/src/components/typography/code-block/code-block.api.json +31 -12
  130. package/src/components/typography/code-block/code-block.docs.json +18 -0
  131. package/src/components/typography/code-block/index.scss +26 -7
  132. package/src/components/typography/heading/heading.api.json +37 -18
  133. package/src/components/typography/heading/index.scss +18 -0
  134. package/src/components/typography/kbd/index.scss +14 -2
  135. package/src/components/typography/kbd/kbd.api.json +41 -8
  136. package/src/components/typography/link/index.scss +16 -3
  137. package/src/components/typography/link/link.api.json +17 -9
  138. package/src/components/typography/list/index.scss +7 -0
  139. package/src/components/typography/list/list.api.json +12 -7
  140. package/src/components/typography/list/list.docs.json +3 -0
  141. package/src/components/typography/mark/index.scss +7 -0
  142. package/src/components/typography/mark/mark.api.json +26 -5
  143. package/src/config/tokens/_variables.scss +44 -0
  144. package/src/config/tokens/motion/index.scss +2 -0
  145. package/src/config/tokens/zindex/index.scss +1 -0
  146. package/src/debug/grid-overlay.scss +4 -3
  147. package/src/layout/app-shell/app-shell-visual.png +0 -0
  148. package/src/layout/app-shell/app-shell.api.json +6 -26
  149. package/src/layout/app-shell/app-shell.docs.json +18 -0
  150. package/src/layout/app-shell/index.scss +4 -0
  151. package/src/layout/aspect-ratio/aspect-ratio.api.json +2 -7
  152. package/src/layout/aspect-ratio/index.scss +4 -0
  153. package/src/layout/box/box.api.json +25 -8
  154. package/src/layout/box/index.scss +26 -8
  155. package/src/layout/center/center.api.json +1 -0
  156. package/src/layout/center/index.scss +3 -0
  157. package/src/layout/column/column.api.json +2 -1
  158. package/src/layout/column/index.scss +15 -6
  159. package/src/layout/container/container.api.json +4 -3
  160. package/src/layout/container/index.scss +13 -6
  161. package/src/layout/content/content.api.json +7 -3
  162. package/src/layout/content/index.scss +10 -1
  163. package/src/layout/footer/footer-visual.png +0 -0
  164. package/src/layout/footer/footer.api.json +11 -5
  165. package/src/layout/footer/footer.docs.json +9 -0
  166. package/src/layout/footer/index.scss +21 -5
  167. package/src/layout/grid/grid.api.json +2 -1
  168. package/src/layout/grid/index.scss +6 -1
  169. package/src/layout/main/index.scss +8 -2
  170. package/src/layout/main/main.api.json +1 -0
  171. package/src/layout/nav-rail/index.scss +14 -3
  172. package/src/layout/nav-rail/nav-rail.api.json +11 -5
  173. package/src/layout/page-header/index.scss +21 -6
  174. package/src/layout/page-header/page-header.api.json +9 -4
  175. package/src/layout/row/index.scss +13 -5
  176. package/src/layout/row/row.api.json +2 -1
  177. package/src/layout/sidebar/index.scss +18 -8
  178. package/src/layout/sidebar/sidebar.api.json +1 -0
  179. package/src/layout/sidebar/sidebar.docs.json +2 -1
  180. package/src/layout/sidebar-nav/index.scss +56 -18
  181. package/src/layout/sidebar-nav/sidebar-nav.api.json +90 -11
  182. package/src/layout/topbar/index.scss +20 -5
  183. package/src/layout/topbar/topbar.api.json +11 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teseor/css",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "CSS library - reset, primitives, components, utilities",
5
5
  "license": "MIT",
6
6
  "author": "letanure",
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
2
3
  "name": "button",
3
4
  "element": "button",
4
5
  "modifiers": {
@@ -36,77 +37,73 @@
36
37
  "cssVars": [
37
38
  {
38
39
  "name": "--ui-button-accent",
39
- "description": "Primary accent color. All shades auto-generated via color-mix.",
40
- "default": "var(--ui-color-primary)"
40
+ "default": "var(--ui-color-primary)",
41
+ "description": "Primary accent color. All shades auto-generated via color-mix."
41
42
  },
42
43
  {
43
44
  "name": "--ui-button-height",
44
- "default": "var(--ui-row-2)"
45
+ "default": "var(--ui-row-2)",
46
+ "description": "Overall height"
45
47
  },
46
48
  {
47
49
  "name": "--ui-button-padding-x",
48
- "default": "var(--ui-space-2)"
50
+ "default": "var(--ui-space-2)",
51
+ "description": "Horizontal padding"
49
52
  },
50
53
  {
51
54
  "name": "--ui-button-font-size",
52
- "default": "var(--ui-font-size-sm)"
55
+ "default": "var(--ui-font-size-sm)",
56
+ "description": "Font size"
53
57
  },
54
58
  {
55
59
  "name": "--ui-button-font-weight",
56
- "default": "var(--ui-weight-medium)"
60
+ "default": "var(--ui-weight-medium)",
61
+ "description": "Font weight"
57
62
  },
58
63
  {
59
64
  "name": "--ui-button-radius",
60
- "default": "var(--ui-radius-md)"
65
+ "default": "var(--ui-radius-md)",
66
+ "description": "Corner radius"
61
67
  },
62
68
  {
63
69
  "name": "--ui-button-color",
64
- "default": "var(--ui-color-text-inverse)"
70
+ "default": "var(--ui-color-text-inverse)",
71
+ "description": "Text color"
65
72
  },
66
73
  {
67
74
  "name": "--ui-button-height-sm",
68
- "default": "calc(var(--ui-row) * 1.5)"
75
+ "default": "calc(var(--ui-row) * 1.5)",
76
+ "description": "Overall height at small size"
69
77
  },
70
78
  {
71
79
  "name": "--ui-button-font-size-sm",
72
- "default": "var(--ui-font-size-xs)"
80
+ "default": "var(--ui-font-size-xs)",
81
+ "description": "Font size at small size"
73
82
  },
74
83
  {
75
84
  "name": "--ui-button-height-md",
76
- "default": "var(--ui-row-2)"
85
+ "default": "var(--ui-row-2)",
86
+ "description": "Overall height at medium size"
77
87
  },
78
88
  {
79
89
  "name": "--ui-button-font-size-md",
80
- "default": "var(--ui-font-size-sm)"
90
+ "default": "var(--ui-font-size-sm)",
91
+ "description": "Font size at medium size"
81
92
  },
82
93
  {
83
94
  "name": "--ui-button-height-lg",
84
- "default": "calc(var(--ui-row) * 2.5)"
95
+ "default": "calc(var(--ui-row) * 2.5)",
96
+ "description": "Overall height at large size"
85
97
  },
86
98
  {
87
99
  "name": "--ui-button-padding-x-lg",
88
- "default": "var(--ui-space-3)"
100
+ "default": "var(--ui-space-3)",
101
+ "description": "Horizontal padding at large size"
89
102
  },
90
103
  {
91
104
  "name": "--ui-button-font-size-lg",
92
- "default": "var(--ui-font-size-md)"
93
- },
94
- {
95
- "name": "--ui-button-secondary-bg",
96
- "default": "var(--ui-color-bg-muted)"
97
- },
98
- {
99
- "name": "--ui-button-secondary-bg-hover",
100
- "default": "var(--ui-color-border-strong)"
101
- },
102
- {
103
- "name": "--ui-button-secondary-color",
104
- "default": "var(--ui-color-text)"
105
- },
106
- {
107
- "name": "--ui-color-danger",
108
- "description": "Used by --danger variant as accent color",
109
- "default": "var(--ui-color-danger)"
105
+ "default": "var(--ui-font-size-md)",
106
+ "description": "Font size at large size"
110
107
  }
111
108
  ]
112
109
  }
@@ -6,36 +6,60 @@
6
6
  // Token definitions - what makes each variant
7
7
  @layer components.tokens {
8
8
  .button {
9
+ --_space-1: var(--ui-space-1, #{t.$space-1});
10
+ --_font-sans: var(--ui-font-sans, #{t.$font-sans});
11
+ --_duration-base: var(--ui-duration-base);
12
+ --_ease-default: var(--ui-ease-default);
13
+ --_duration-fast: var(--ui-duration-fast);
14
+ --_border-width-md: var(--ui-border-width-md, #{t.$border-width-md});
15
+ --_color-focus: var(--ui-color-focus, #{t.$color-focus});
16
+ --_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
17
+ --_space-quarter: var(--ui-space-quarter);
18
+ --_opacity-loading: var(--ui-opacity-loading, #{t.$opacity-loading});
9
19
  // Single accent color - all shades derived via color-mix
20
+ // @desc Primary accent color. All shades auto-generated via color-mix.
10
21
  --_accent: var(--ui-button-accent, var(--ui-color-primary, #{t.$color-primary}));
11
22
 
23
+ // @desc Overall height
12
24
  --_height: var(--ui-button-height, var(--ui-row-2, #{t.$row-2}));
25
+ // @desc Horizontal padding
13
26
  --_padding-x: var(--ui-button-padding-x, var(--ui-space-2, #{t.$space-2}));
27
+ // @desc Font size
14
28
  --_font-size: var(--ui-button-font-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
29
+ // @desc Font weight
15
30
  --_font-weight: var(--ui-button-font-weight, var(--ui-weight-medium, #{t.$weight-medium}));
31
+ // @desc Corner radius
16
32
  --_radius: var(--ui-button-radius, var(--ui-radius-md, #{t.$radius-md}));
17
33
  --_bg: var(--_accent);
18
34
  --_bg-hover: color-mix(in oklch, var(--_accent) 80%, black);
35
+ // @desc Text color
19
36
  --_color: var(--ui-button-color, var(--ui-color-text-inverse, #{t.$color-text-inverse}));
20
37
  }
21
38
 
22
39
  // @modifier size
23
40
  .button--sm {
24
41
  --ui-ctx-size: var(--ui-size-sm, #{t.size(sm)});
42
+ // @desc Overall height at small size
25
43
  --_height: var(--ui-button-height-sm, calc(var(--ui-row, #{t.$row}) * 1.5));
44
+ // @desc Font size at small size
26
45
  --_font-size: var(--ui-button-font-size-sm, var(--ui-font-size-xs, #{t.$font-size-xs}));
27
46
  }
28
47
 
29
48
  .button--md {
30
49
  --ui-ctx-size: var(--ui-size-md, #{t.size(md)});
50
+ // @desc Overall height at medium size
31
51
  --_height: var(--ui-button-height-md, var(--ui-row-2, #{t.$row-2}));
52
+ // @desc Font size at medium size
32
53
  --_font-size: var(--ui-button-font-size-md, var(--ui-font-size-sm, #{t.$font-size-sm}));
33
54
  }
34
55
 
35
56
  .button--lg {
36
57
  --ui-ctx-size: var(--ui-size-lg, #{t.size(lg)});
58
+ // @desc Overall height at large size
37
59
  --_height: var(--ui-button-height-lg, calc(var(--ui-row, #{t.$row}) * 2.5));
60
+ // @desc Horizontal padding at large size
38
61
  --_padding-x: var(--ui-button-padding-x-lg, var(--ui-space-3, #{t.$space-3}));
62
+ // @desc Font size at large size
39
63
  --_font-size: var(--ui-button-font-size-lg, var(--ui-font-size-md, #{t.$font-size-md}));
40
64
  }
41
65
 
@@ -61,6 +85,7 @@
61
85
  }
62
86
 
63
87
  .button--danger {
88
+ // @desc Used by --danger variant as accent color
64
89
  --_accent: var(--ui-color-danger, #{t.$color-danger});
65
90
  }
66
91
 
@@ -107,7 +132,7 @@
107
132
  display: inline-flex;
108
133
  align-items: center;
109
134
  justify-content: center;
110
- gap: var(--ui-space-1, #{t.$space-1});
135
+ gap: var(--_space-1);
111
136
 
112
137
  // Size
113
138
  block-size: var(--_height);
@@ -117,7 +142,7 @@
117
142
  margin: 0;
118
143
 
119
144
  // Typography
120
- font-family: var(--ui-font-sans, #{t.$font-sans});
145
+ font-family: var(--_font-sans);
121
146
  font-size: var(--_font-size);
122
147
  font-weight: var(--_font-weight);
123
148
  line-height: 1;
@@ -132,9 +157,9 @@
132
157
 
133
158
  // Transitions
134
159
  transition:
135
- background-color var(--ui-duration-base) var(--ui-ease-default),
136
- color var(--ui-duration-base) var(--ui-ease-default),
137
- transform var(--ui-duration-fast) var(--ui-ease-default);
160
+ background-color var(--_duration-base) var(--_ease-default),
161
+ color var(--_duration-base) var(--_ease-default),
162
+ transform var(--_duration-fast) var(--_ease-default);
138
163
 
139
164
  // States - modifiers mirror pseudo-classes for testing/docs
140
165
  &:hover,
@@ -146,8 +171,8 @@
146
171
 
147
172
  &:focus-visible,
148
173
  &--focus {
149
- outline: var(--ui-border-width-md, #{t.$border-width-md}) solid var(--ui-color-focus, #{t.$color-focus});
150
- outline-offset: var(--ui-border-width-md, #{t.$border-width-md});
174
+ outline: var(--_border-width-md) solid var(--_color-focus);
175
+ outline-offset: var(--_border-width-md);
151
176
  }
152
177
 
153
178
  &:active,
@@ -156,7 +181,7 @@
156
181
  }
157
182
 
158
183
  &:disabled {
159
- opacity: var(--ui-opacity-disabled, 0.5);
184
+ opacity: var(--_opacity-disabled);
160
185
  cursor: not-allowed;
161
186
 
162
187
  &:hover {
@@ -178,10 +203,10 @@
178
203
  // Link variant underline
179
204
  &--link {
180
205
  text-decoration: underline;
181
- text-underline-offset: var(--ui-space-quarter);
206
+ text-underline-offset: var(--_space-quarter);
182
207
 
183
208
  &:hover {
184
- text-decoration-thickness: var(--ui-space-quarter);
209
+ text-decoration-thickness: var(--_space-quarter);
185
210
  }
186
211
  }
187
212
 
@@ -205,7 +230,7 @@
205
230
  &--loading {
206
231
  position: relative;
207
232
 
208
- opacity: var(--ui-opacity-loading, 0.7);
233
+ opacity: var(--_opacity-loading);
209
234
  pointer-events: none;
210
235
 
211
236
  &::after {
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
2
3
  "name": "button-group",
3
4
  "element": "div",
4
5
  "modifiers": {
@@ -9,7 +10,8 @@
9
10
  "cssVars": [
10
11
  {
11
12
  "name": "--ui-button-group-radius",
12
- "default": "var(--ui-radius-md)"
13
+ "default": "var(--ui-radius-md)",
14
+ "description": "Corner radius"
13
15
  }
14
16
  ]
15
17
  }
@@ -1,10 +1,13 @@
1
1
  @use '../../../config/tokens/variables' as t;
2
+ // @component button-group
3
+ // @element div
2
4
 
3
5
  // Button Group - container for grouped buttons
4
6
  // Joins buttons together with shared borders
5
7
 
6
8
  @layer components.tokens {
7
9
  .button-group {
10
+ // @desc Corner radius
8
11
  --_radius: var(--ui-button-group-radius, var(--ui-radius-md, calc(#{t.$unit} / 2)));
9
12
  }
10
13
  }
@@ -40,6 +43,7 @@
40
43
  }
41
44
 
42
45
  // Vertical orientation
46
+ // @modifier boolean vertical
43
47
  .button-group--vertical {
44
48
  flex-direction: column;
45
49
  }
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
2
3
  "name": "close-button",
3
4
  "element": "button",
4
5
  "modifiers": {
@@ -7,6 +8,12 @@
7
8
  },
8
9
  "subtle": {
9
10
  "type": "boolean"
11
+ },
12
+ "hover": {
13
+ "type": "boolean"
14
+ },
15
+ "focus": {
16
+ "type": "boolean"
10
17
  }
11
18
  },
12
19
  "elements": {
@@ -15,57 +22,63 @@
15
22
  "cssVars": [
16
23
  {
17
24
  "name": "--ui-close-button-size",
18
- "description": "Overall button size (width and height)",
19
- "default": "var(--ui-row-2)"
25
+ "default": "var(--ui-row-2)",
26
+ "description": "Overall button size (width and height)"
20
27
  },
21
28
  {
22
29
  "name": "--ui-close-button-icon-size",
23
- "description": "Size of the X icon",
24
- "default": "var(--ui-size-md)"
30
+ "default": "var(--ui-size-md)",
31
+ "description": "Size of the X icon"
25
32
  },
26
33
  {
27
34
  "name": "--ui-close-button-color",
28
- "description": "Icon color",
29
- "default": "var(--ui-color-text-muted)"
35
+ "default": "var(--ui-color-text-muted)",
36
+ "description": "Icon color"
30
37
  },
31
38
  {
32
39
  "name": "--ui-close-button-bg",
33
- "description": "Background color",
34
- "default": "transparent"
40
+ "default": "transparent",
41
+ "description": "Background color"
35
42
  },
36
43
  {
37
44
  "name": "--ui-close-button-hover-bg",
38
- "description": "Background color on hover",
39
- "default": "var(--ui-color-bg-muted)"
45
+ "default": "var(--ui-color-bg-muted)",
46
+ "description": "Background color on hover"
40
47
  },
41
48
  {
42
49
  "name": "--ui-close-button-radius",
43
- "description": "Border radius",
44
- "default": "var(--ui-radius-md)"
50
+ "default": "var(--ui-radius-md)",
51
+ "description": "Border radius"
45
52
  },
46
53
  {
47
54
  "name": "--ui-close-button-size-sm",
48
- "default": "calc(var(--ui-unit) * 3)"
55
+ "default": "calc(var(--ui-unit) * 3)",
56
+ "description": "Overall size at small size"
49
57
  },
50
58
  {
51
59
  "name": "--ui-close-button-icon-size-sm",
52
- "default": "var(--ui-size-sm)"
60
+ "default": "var(--ui-size-sm)",
61
+ "description": "Icon dimensions at small size"
53
62
  },
54
63
  {
55
64
  "name": "--ui-close-button-size-lg",
56
- "default": "var(--ui-row-3)"
65
+ "default": "var(--ui-row-3)",
66
+ "description": "Overall size at large size"
57
67
  },
58
68
  {
59
69
  "name": "--ui-close-button-icon-size-lg",
60
- "default": "var(--ui-size-lg)"
70
+ "default": "var(--ui-size-lg)",
71
+ "description": "Icon dimensions at large size"
61
72
  },
62
73
  {
63
74
  "name": "--ui-close-button-subtle-color",
64
- "default": "var(--ui-color-border-strong)"
75
+ "default": "var(--ui-color-border-strong)",
76
+ "description": "Subtle color"
65
77
  },
66
78
  {
67
79
  "name": "--ui-close-button-subtle-hover-bg",
68
- "default": "var(--ui-color-bg-subtle)"
80
+ "default": "var(--ui-color-bg-subtle)",
81
+ "description": "Subtle hover bg"
69
82
  }
70
83
  ]
71
84
  }
@@ -5,28 +5,46 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .close-button {
8
+ --_duration-base: var(--ui-duration-base, #{t.$duration-base});
9
+ --_ease-default: var(--ui-ease-default, ease);
10
+ --_color-text: var(--ui-color-text, #{t.$color-text});
11
+ --_border-width-md: var(--ui-border-width-md, #{t.$border-width-md});
12
+ --_color-focus: var(--ui-color-focus, #{t.$color-focus});
13
+ --_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
14
+ // @desc Overall button size (width and height)
8
15
  --_size: var(--ui-close-button-size, var(--ui-row-2, #{t.$row-2}));
16
+ // @desc Size of the X icon
9
17
  --_icon-size: var(--ui-close-button-icon-size, var(--ui-size-md, #{t.size(md)}));
18
+ // @desc Icon color
10
19
  --_color: var(--ui-close-button-color, var(--ui-color-text-muted, #{t.$color-text-muted}));
20
+ // @desc Background color
11
21
  --_bg: var(--ui-close-button-bg, transparent);
22
+ // @desc Background color on hover
12
23
  --_hover-bg: var(--ui-close-button-hover-bg, var(--ui-color-bg-muted, #{t.$color-bg-muted}));
24
+ // @desc Border radius
13
25
  --_radius: var(--ui-close-button-radius, var(--ui-radius-md, #{t.$radius-md}));
14
26
  }
15
27
 
16
28
  // @modifier size
17
29
  .close-button--sm {
30
+ // @desc Overall size at small size
18
31
  --_size: var(--ui-close-button-size-sm, calc(#{t.$unit} * 3));
32
+ // @desc Icon dimensions at small size
19
33
  --_icon-size: var(--ui-close-button-icon-size-sm, var(--ui-size-sm, #{t.size(sm)}));
20
34
  }
21
35
 
22
36
  .close-button--lg {
37
+ // @desc Overall size at large size
23
38
  --_size: var(--ui-close-button-size-lg, var(--ui-row-3, #{t.$row-3}));
39
+ // @desc Icon dimensions at large size
24
40
  --_icon-size: var(--ui-close-button-icon-size-lg, var(--ui-size-lg, #{t.size(lg)}));
25
41
  }
26
42
 
27
43
  // @modifier boolean subtle
28
44
  .close-button--subtle {
45
+ // @desc Subtle color
29
46
  --_color: var(--ui-close-button-subtle-color, var(--ui-color-border-strong, #{t.$color-border-strong}));
47
+ // @desc Subtle hover bg
30
48
  --_hover-bg: var(--ui-close-button-subtle-hover-bg, var(--ui-color-bg-subtle, #{t.$color-bg-subtle}));
31
49
  }
32
50
  }
@@ -52,20 +70,22 @@
52
70
  appearance: none;
53
71
 
54
72
  transition:
55
- background-color var(--ui-duration-base, 150ms) var(--ui-ease-default, ease),
56
- color var(--ui-duration-base, 150ms) var(--ui-ease-default, ease);
73
+ background-color var(--_duration-base) var(--_ease-default),
74
+ color var(--_duration-base) var(--_ease-default);
57
75
 
58
76
  &:hover,
77
+ // @modifier boolean hover
59
78
  &--hover {
60
- color: var(--ui-color-text, #{t.$color-text});
79
+ color: var(--_color-text);
61
80
 
62
81
  background: var(--_hover-bg);
63
82
  }
64
83
 
65
84
  &:focus-visible,
85
+ // @modifier boolean focus
66
86
  &--focus {
67
- outline: var(--ui-border-width-md, #{t.$border-width-md}) solid var(--ui-color-focus, #{t.$color-focus});
68
- outline-offset: var(--ui-border-width-md, #{t.$border-width-md});
87
+ outline: var(--_border-width-md) solid var(--_color-focus);
88
+ outline-offset: var(--_border-width-md);
69
89
  }
70
90
 
71
91
  &:active,
@@ -74,7 +94,7 @@
74
94
  }
75
95
 
76
96
  &:disabled {
77
- opacity: var(--ui-opacity-disabled, 0.5);
97
+ opacity: var(--_opacity-disabled);
78
98
  cursor: not-allowed;
79
99
 
80
100
  &:hover {
@@ -1,33 +1,38 @@
1
1
  {
2
+ "$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
2
3
  "name": "divider",
3
4
  "element": "div",
4
5
  "modifiers": {
5
6
  "vertical": {
6
7
  "type": "boolean"
7
8
  },
8
- "dashed": {
9
- "type": "boolean"
10
- },
11
9
  "position": {
12
10
  "values": ["start", "end"]
11
+ },
12
+ "dashed": {
13
+ "type": "boolean"
13
14
  }
14
15
  },
15
16
  "cssVars": [
16
17
  {
17
18
  "name": "--ui-divider-color",
18
- "default": "var(--ui-color-border)"
19
+ "default": "var(--ui-color-border)",
20
+ "description": "Text color"
19
21
  },
20
22
  {
21
23
  "name": "--ui-divider-line-size",
22
- "default": "1px"
24
+ "default": "var(--ui-border-width-sm)",
25
+ "description": "Line size"
23
26
  },
24
27
  {
25
28
  "name": "--ui-divider-height",
26
- "default": "var(--ui-unit)"
29
+ "default": "var(--ui-unit)",
30
+ "description": "Overall height"
27
31
  },
28
32
  {
29
33
  "name": "--ui-divider-gap",
30
- "default": "calc(var(--ui-unit) * 2"
34
+ "default": "calc(var(--ui-unit) * 2)",
35
+ "description": "Gap between children"
31
36
  }
32
37
  ]
33
38
  }
@@ -5,9 +5,15 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .divider {
8
- --_color: var(--ui-divider-color, var(--ui-color-border, rgb(0 0 0 / 0.1)));
9
- --_line-size: var(--ui-divider-line-size, 1px);
8
+ --_font-size-sm: var(--ui-font-size-sm, #{t.$font-size-sm});
9
+ --_color-text-muted: var(--ui-color-text-muted);
10
+ // @desc Text color
11
+ --_color: var(--ui-divider-color, var(--ui-color-border, #{t.$color-border}));
12
+ // @desc Line size
13
+ --_line-size: var(--ui-divider-line-size, #{t.$border-width-sm});
14
+ // @desc Overall height
10
15
  --_height: var(--ui-divider-height, #{t.$unit});
16
+ // @desc Gap between children
11
17
  --_gap: var(--ui-divider-gap, calc(#{t.$unit} * 2));
12
18
  }
13
19
  }
@@ -20,9 +26,9 @@
20
26
  block-size: var(--_height);
21
27
  margin: var(--_gap) 0;
22
28
 
23
- font-size: var(--ui-font-size-sm, #{t.$font-size-sm});
29
+ font-size: var(--_font-size-sm);
24
30
  line-height: 1;
25
- color: var(--ui-color-text-muted);
31
+ color: var(--_color-text-muted);
26
32
  }
27
33
 
28
34
  // Horizontal line (default)
@@ -74,6 +80,7 @@
74
80
  }
75
81
 
76
82
  // @modifier align
83
+ // @modifier position
77
84
  .divider--start::before {
78
85
  display: none;
79
86
  }
@@ -5,29 +5,41 @@
5
5
 
6
6
  @layer components.tokens {
7
7
  .scroll-area {
8
+ --_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
9
+ --_ease-default: var(--ui-ease-default, ease);
10
+ // @desc Maximum height
8
11
  --_max-height: var(--ui-scroll-area-max-height, calc(#{t.$row} * 10));
12
+ // @desc Scrollbar size
9
13
  --_scrollbar-size: var(--ui-scroll-area-scrollbar-size, calc(#{t.$unit} * 1));
14
+ // @desc Thumb control text color
10
15
  --_thumb-color: var(--ui-scroll-area-thumb-color, var(--ui-color-border-strong, #{t.$color-border-strong}));
16
+ // @desc Thumb hover color
11
17
  --_thumb-hover-color: var(--ui-scroll-area-thumb-hover-color, var(--ui-color-neutral-400, #{t.$color-neutral-400}));
18
+ // @desc Track text color
12
19
  --_track-color: var(--ui-scroll-area-track-color, transparent);
20
+ // @desc Thumb corner radius
13
21
  --_thumb-radius: var(--ui-scroll-area-thumb-radius, var(--ui-radius-full, #{t.$radius-full}));
14
22
  }
15
23
 
16
24
  // @modifier size
17
25
  .scroll-area--sm {
26
+ // @desc Maximum height at small size
18
27
  --_max-height: var(--ui-scroll-area-max-height-sm, calc(#{t.$row} * 5));
19
28
  }
20
29
 
21
30
  .scroll-area--lg {
31
+ // @desc Maximum height at large size
22
32
  --_max-height: var(--ui-scroll-area-max-height-lg, calc(#{t.$row} * 15));
23
33
  }
24
34
 
25
35
  .scroll-area--xl {
36
+ // @desc Maximum height at extra-large size
26
37
  --_max-height: var(--ui-scroll-area-max-height-xl, calc(#{t.$row} * 20));
27
38
  }
28
39
 
29
40
  // @modifier thin scrollbar
30
41
  .scroll-area--thin {
42
+ // @desc Scrollbar size thin
31
43
  --_scrollbar-size: var(--ui-scroll-area-scrollbar-size-thin, calc(#{t.$unit} * 0.5));
32
44
  }
33
45
  }
@@ -67,6 +79,7 @@
67
79
  }
68
80
 
69
81
  // Horizontal scrolling
82
+ // @modifier direction
70
83
  .scroll-area--horizontal > .scroll-area__viewport {
71
84
  max-block-size: none;
72
85
  overflow-x: auto;
@@ -80,10 +93,11 @@
80
93
  }
81
94
 
82
95
  // Auto-hide: fade scrollbar until hover
96
+ // @modifier boolean auto-hide
83
97
  .scroll-area--auto-hide > .scroll-area__viewport::-webkit-scrollbar-thumb {
84
98
  background: transparent;
85
99
 
86
- transition: background var(--ui-duration-fast, 150ms) var(--ui-ease-default, ease);
100
+ transition: background var(--_duration-fast) var(--_ease-default);
87
101
  }
88
102
 
89
103
  .scroll-area--auto-hide > .scroll-area__viewport:hover::-webkit-scrollbar-thumb {