@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
@@ -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": "content",
3
4
  "element": "div",
4
5
  "modifiers": {
@@ -12,15 +13,18 @@
12
13
  "cssVars": [
13
14
  {
14
15
  "name": "--ui-content-padding-block",
15
- "default": "var(--ui-space-4)"
16
+ "default": "var(--ui-space-4)",
17
+ "description": "Vertical padding"
16
18
  },
17
19
  {
18
20
  "name": "--ui-content-padding-inline",
19
- "default": "var(--ui-space-4)"
21
+ "default": "var(--ui-space-4)",
22
+ "description": "Horizontal padding"
20
23
  },
21
24
  {
22
25
  "name": "--ui-content-gap",
23
- "default": "var(--ui-space-3)"
26
+ "default": "var(--ui-space-3)",
27
+ "description": "Gap between children"
24
28
  }
25
29
  ]
26
30
  }
@@ -1,7 +1,14 @@
1
+ // @component content
2
+ // @element div
3
+
1
4
  @layer primitives {
2
5
  .content {
6
+ --_unit: var(--ui-unit);
7
+ // @desc Vertical padding
3
8
  --_padding-block: var(--ui-content-padding-block, var(--ui-space-4));
9
+ // @desc Horizontal padding
4
10
  --_padding-inline: var(--ui-content-padding-inline, var(--ui-space-4));
11
+ // @desc Gap between children
5
12
  --_gap: var(--ui-content-gap, var(--ui-space-3));
6
13
 
7
14
  display: flex;
@@ -13,11 +20,13 @@
13
20
  }
14
21
 
15
22
  // Prose-friendly: narrower max-width for readability
23
+ // @modifier boolean prose
16
24
  .content--prose {
17
- max-inline-size: calc(var(--ui-unit) * 80);
25
+ max-inline-size: calc(var(--_unit) * 80);
18
26
  }
19
27
 
20
28
  // Flush: no padding, just gap
29
+ // @modifier boolean flush
21
30
  .content--flush {
22
31
  padding-block: 0;
23
32
  padding-inline: 0;
Binary file
@@ -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": "footer",
3
4
  "element": "footer",
4
5
  "modifiers": {
@@ -23,23 +24,28 @@
23
24
  "cssVars": [
24
25
  {
25
26
  "name": "--ui-footer-height",
26
- "default": "var(--ui-row-3)"
27
+ "default": "var(--ui-row-3)",
28
+ "description": "Overall height"
27
29
  },
28
30
  {
29
31
  "name": "--ui-footer-bg",
30
- "default": "var(--ui-color-bg)"
32
+ "default": "var(--ui-color-bg)",
33
+ "description": "Background color"
31
34
  },
32
35
  {
33
36
  "name": "--ui-footer-padding-inline",
34
- "default": "var(--ui-space-3)"
37
+ "default": "var(--ui-space-3)",
38
+ "description": "Horizontal padding"
35
39
  },
36
40
  {
37
41
  "name": "--ui-footer-border-color",
38
- "default": "var(--ui-color-border)"
42
+ "default": "var(--ui-color-border)",
43
+ "description": "Border color"
39
44
  },
40
45
  {
41
46
  "name": "--ui-footer-z",
42
- "default": "var(--ui-z-sticky)"
47
+ "default": "var(--ui-z-sticky)",
48
+ "description": "Z-index stacking order"
43
49
  }
44
50
  ]
45
51
  }
@@ -97,6 +97,15 @@
97
97
  }
98
98
  ]
99
99
  },
100
+ {
101
+ "title": "Fixed",
102
+ "description": "Fixed to viewport bottom, always visible.",
103
+ "examples": [
104
+ {
105
+ "code": "<footer class=\"ui-footer ui-footer--fixed ui-footer--bordered\">\n <div class=\"ui-footer__start\"><small>Brand</small></div>\n <div class=\"ui-footer__end\"><small>v1.0.0</small></div>\n</footer>"
106
+ }
107
+ ]
108
+ },
100
109
  {
101
110
  "title": "Full Layout",
102
111
  "description": "Footer inside an app-shell with topbar and sidebar.",
@@ -1,9 +1,21 @@
1
+ @use '../../config/tokens/variables' as t;
2
+ // @component footer
3
+ // @element footer
4
+
1
5
  @layer primitives {
2
6
  .footer {
7
+ --_space-2: var(--ui-space-2);
8
+ --_border-width-sm: var(--ui-border-width-sm);
9
+ --_hue-primary: var(--ui-hue-primary, #{t.$hue-primary});
10
+ // @desc Overall height
3
11
  --_height: var(--ui-footer-height, var(--ui-row-3));
12
+ // @desc Background color
4
13
  --_bg: var(--ui-footer-bg, var(--ui-color-bg));
14
+ // @desc Horizontal padding
5
15
  --_padding-inline: var(--ui-footer-padding-inline, var(--ui-space-3));
16
+ // @desc Border color
6
17
  --_border-color: var(--ui-footer-border-color, var(--ui-color-border));
18
+ // @desc Z-index stacking order
7
19
  --_z: var(--ui-footer-z, var(--ui-z-sticky));
8
20
 
9
21
  display: flex;
@@ -21,7 +33,7 @@
21
33
  display: flex;
22
34
  flex-shrink: 0;
23
35
  align-items: center;
24
- gap: var(--ui-space-2);
36
+ gap: var(--_space-2);
25
37
  }
26
38
 
27
39
  .footer__center {
@@ -29,22 +41,24 @@
29
41
  flex: 1;
30
42
  align-items: center;
31
43
  justify-content: center;
32
- gap: var(--ui-space-2);
44
+ gap: var(--_space-2);
33
45
  }
34
46
 
35
47
  .footer__end {
36
48
  display: flex;
37
49
  flex-shrink: 0;
38
50
  align-items: center;
39
- gap: var(--ui-space-2);
51
+ gap: var(--_space-2);
40
52
  }
41
53
 
42
54
  // Position modifiers
55
+ // @modifier boolean sticky
43
56
  .footer--sticky {
44
57
  position: sticky;
45
58
  inset-block-end: 0;
46
59
  }
47
60
 
61
+ // @modifier boolean fixed
48
62
  .footer--fixed {
49
63
  position: fixed;
50
64
  inset-block-end: 0;
@@ -52,11 +66,13 @@
52
66
  }
53
67
 
54
68
  // Visual modifiers
69
+ // @modifier boolean bordered
55
70
  .footer--bordered {
56
- box-shadow: inset 0 var(--ui-border-width-sm) 0 0 var(--_border-color);
71
+ box-shadow: inset 0 var(--_border-width-sm) 0 0 var(--_border-color);
57
72
  }
58
73
 
74
+ // @modifier boolean raised
59
75
  .footer--raised {
60
- box-shadow: 0 calc(var(--ui-border-width-sm) * -1) 6px hsl(var(--ui-hue-primary, 220) 10% 20% / 0.08);
76
+ box-shadow: 0 calc(var(--_border-width-sm) * -1) 6px hsl(var(--_hue-primary) 10% 20% / 0.08);
61
77
  }
62
78
  }
@@ -1,9 +1,10 @@
1
1
  {
2
+ "$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
2
3
  "name": "grid",
3
4
  "element": "div",
4
5
  "modifiers": {
5
6
  "columns": {
6
- "values": ["2", "3", "4"]
7
+ "values": ["2", "3", "4", "auto"]
7
8
  }
8
9
  },
9
10
  "cssVars": []
@@ -1,10 +1,15 @@
1
+ // @component grid
2
+ // @element div
3
+
1
4
  @layer primitives {
2
5
  .grid {
6
+ --_space-4: var(--ui-space-4);
3
7
  display: grid;
4
- gap: var(--grid-gap, var(--ui-space-4));
8
+ gap: var(--grid-gap, var(--_space-4));
5
9
  grid-template-columns: repeat(var(--grid-cols, 1), minmax(0, 1fr));
6
10
  }
7
11
 
12
+ // @modifier columns
8
13
  .grid--2 { --grid-cols: 2; }
9
14
  .grid--3 { --grid-cols: 3; }
10
15
  .grid--4 { --grid-cols: 4; }
@@ -1,16 +1,22 @@
1
+ // @component main
2
+ // @element main
3
+
1
4
  @layer primitives {
2
5
  .main {
6
+ --_unit: var(--ui-unit);
3
7
  padding-block-start: var(--topbar-height, 0);
4
- margin-inline-start: var(--sidebar-width, calc(var(--ui-unit) * 30));
8
+ margin-inline-start: var(--sidebar-width, calc(var(--_unit) * 30));
5
9
  }
6
10
 
7
11
  // When sidebar is on the end
12
+ // @modifier boolean sidebar-end
8
13
  .main--sidebar-end {
9
14
  margin-inline-start: 0;
10
- margin-inline-end: var(--sidebar-width, calc(var(--ui-unit) * 30));
15
+ margin-inline-end: var(--sidebar-width, calc(var(--_unit) * 30));
11
16
  }
12
17
 
13
18
  // No sidebar
19
+ // @modifier boolean full
14
20
  .main--full {
15
21
  margin-inline-start: 0;
16
22
  margin-inline-end: 0;
@@ -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": "main",
3
4
  "element": "main",
4
5
  "modifiers": {
@@ -1,9 +1,19 @@
1
+ // @component nav-rail
2
+ // @element nav
3
+
1
4
  @layer primitives {
2
5
  .nav-rail {
6
+ --_space-2: var(--ui-space-2);
7
+ --_border-width-sm: var(--ui-border-width-sm);
8
+ // @desc Overall width
3
9
  --_width: var(--ui-nav-rail-width, var(--ui-row-4));
10
+ // @desc Background color
4
11
  --_bg: var(--ui-nav-rail-bg, var(--ui-color-bg-subtle));
12
+ // @desc Border color
5
13
  --_border-color: var(--ui-nav-rail-border-color, var(--ui-color-border));
14
+ // @desc Gap between children
6
15
  --_gap: var(--ui-nav-rail-gap, var(--ui-space-1));
16
+ // @desc Z-index stacking order
7
17
  --_z: var(--ui-nav-rail-z, var(--ui-z-sticky));
8
18
 
9
19
  display: flex;
@@ -15,10 +25,10 @@
15
25
  z-index: var(--_z);
16
26
 
17
27
  inline-size: var(--_width);
18
- padding-block: var(--ui-space-2);
28
+ padding-block: var(--_space-2);
19
29
 
20
30
  background: var(--_bg);
21
- box-shadow: inset calc(var(--ui-border-width-sm) * -1) 0 0 0 var(--_border-color);
31
+ box-shadow: inset calc(var(--_border-width-sm) * -1) 0 0 0 var(--_border-color);
22
32
  }
23
33
 
24
34
  // Navigation items area
@@ -41,10 +51,11 @@
41
51
  }
42
52
 
43
53
  // Position on end side
54
+ // @modifier boolean end
44
55
  .nav-rail--end {
45
56
  inset-inline-start: auto;
46
57
  inset-inline-end: 0;
47
58
 
48
- box-shadow: inset var(--ui-border-width-sm) 0 0 0 var(--_border-color);
59
+ box-shadow: inset var(--_border-width-sm) 0 0 0 var(--_border-color);
49
60
  }
50
61
  }
@@ -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": "nav-rail",
3
4
  "element": "nav",
4
5
  "modifiers": {
@@ -13,23 +14,28 @@
13
14
  "cssVars": [
14
15
  {
15
16
  "name": "--ui-nav-rail-width",
16
- "default": "var(--ui-row-4)"
17
+ "default": "var(--ui-row-4)",
18
+ "description": "Overall width"
17
19
  },
18
20
  {
19
21
  "name": "--ui-nav-rail-bg",
20
- "default": "var(--ui-color-bg-subtle)"
22
+ "default": "var(--ui-color-bg-subtle)",
23
+ "description": "Background color"
21
24
  },
22
25
  {
23
26
  "name": "--ui-nav-rail-border-color",
24
- "default": "var(--ui-color-border)"
27
+ "default": "var(--ui-color-border)",
28
+ "description": "Border color"
25
29
  },
26
30
  {
27
31
  "name": "--ui-nav-rail-gap",
28
- "default": "var(--ui-space-1)"
32
+ "default": "var(--ui-space-1)",
33
+ "description": "Gap between children"
29
34
  },
30
35
  {
31
36
  "name": "--ui-nav-rail-z",
32
- "default": "var(--ui-z-sticky)"
37
+ "default": "var(--ui-z-sticky)",
38
+ "description": "Z-index stacking order"
33
39
  }
34
40
  ]
35
41
  }
@@ -1,8 +1,21 @@
1
+ // @component page-header
2
+ // @element header
3
+
1
4
  @layer primitives {
2
5
  .page-header {
6
+ --_body-line-height: var(--ui-body-line-height);
7
+ --_space-1: var(--ui-space-1);
8
+ --_space-2: var(--ui-space-2);
9
+ --_border-width-sm: var(--ui-border-width-sm);
10
+ --_z-sticky: var(--ui-z-sticky);
11
+ --_color-bg: var(--ui-color-bg);
12
+ // @desc Vertical padding
3
13
  --_padding-block: var(--ui-page-header-padding-block, var(--ui-space-3));
14
+ // @desc Horizontal padding
4
15
  --_padding-inline: var(--ui-page-header-padding-inline, 0);
16
+ // @desc Gap between children
5
17
  --_gap: var(--ui-page-header-gap, var(--ui-space-2));
18
+ // @desc Border color
6
19
  --_border-color: var(--ui-page-header-border-color, var(--ui-color-border));
7
20
 
8
21
  display: flex;
@@ -13,7 +26,7 @@
13
26
  padding-block: var(--_padding-block);
14
27
  padding-inline: var(--_padding-inline);
15
28
 
16
- line-height: var(--ui-body-line-height);
29
+ line-height: var(--_body-line-height);
17
30
  }
18
31
 
19
32
  // Title area: stacks title + description vertically
@@ -21,7 +34,7 @@
21
34
  display: flex;
22
35
  flex: 1;
23
36
  flex-direction: column;
24
- gap: var(--ui-space-1);
37
+ gap: var(--_space-1);
25
38
  }
26
39
 
27
40
  // Actions slot: right-aligned buttons/controls
@@ -29,7 +42,7 @@
29
42
  display: flex;
30
43
  flex-shrink: 0;
31
44
  align-items: center;
32
- gap: var(--ui-space-2);
45
+ gap: var(--_space-2);
33
46
  }
34
47
 
35
48
  // Breadcrumb slot: full-width above title row
@@ -38,15 +51,17 @@
38
51
  }
39
52
 
40
53
  // Modifiers
54
+ // @modifier boolean bordered
41
55
  .page-header--bordered {
42
- box-shadow: inset 0 calc(var(--ui-border-width-sm) * -1) 0 0 var(--_border-color);
56
+ box-shadow: inset 0 calc(var(--_border-width-sm) * -1) 0 0 var(--_border-color);
43
57
  }
44
58
 
59
+ // @modifier boolean sticky
45
60
  .page-header--sticky {
46
61
  position: sticky;
47
62
  inset-block-start: 0;
48
- z-index: var(--ui-z-sticky);
63
+ z-index: var(--_z-sticky);
49
64
 
50
- background: var(--ui-color-bg);
65
+ background: var(--_color-bg);
51
66
  }
52
67
  }
@@ -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": "page-header",
3
4
  "element": "header",
4
5
  "modifiers": {
@@ -17,19 +18,23 @@
17
18
  "cssVars": [
18
19
  {
19
20
  "name": "--ui-page-header-padding-block",
20
- "default": "var(--ui-space-3)"
21
+ "default": "var(--ui-space-3)",
22
+ "description": "Vertical padding"
21
23
  },
22
24
  {
23
25
  "name": "--ui-page-header-padding-inline",
24
- "default": "0"
26
+ "default": "0",
27
+ "description": "Horizontal padding"
25
28
  },
26
29
  {
27
30
  "name": "--ui-page-header-gap",
28
- "default": "var(--ui-space-2)"
31
+ "default": "var(--ui-space-2)",
32
+ "description": "Gap between children"
29
33
  },
30
34
  {
31
35
  "name": "--ui-page-header-border-color",
32
- "default": "var(--ui-color-border)"
36
+ "default": "var(--ui-color-border)",
37
+ "description": "Border color"
33
38
  }
34
39
  ]
35
40
  }
@@ -1,15 +1,23 @@
1
+ // @component row
2
+ // @element div
3
+
1
4
  @layer primitives {
2
5
  .row {
6
+ --_space-2: var(--ui-space-2);
7
+ --_space-1: var(--ui-space-1);
8
+ --_space-4: var(--ui-space-4);
9
+ --_space-6: var(--ui-space-6);
3
10
  display: flex;
4
11
  flex-wrap: wrap;
5
12
  align-items: center;
6
- gap: var(--row-gap, var(--ui-space-2));
13
+ gap: var(--row-gap, var(--_space-2));
7
14
  }
8
15
 
9
- .row--xs { --row-gap: var(--ui-space-1); }
10
- .row--sm { --row-gap: var(--ui-space-2); }
11
- .row--md { --row-gap: var(--ui-space-4); }
12
- .row--lg { --row-gap: var(--ui-space-6); }
16
+ // @modifier size
17
+ .row--xs { --row-gap: var(--_space-1); }
18
+ .row--sm { --row-gap: var(--_space-2); }
19
+ .row--md { --row-gap: var(--_space-4); }
20
+ .row--lg { --row-gap: var(--_space-6); }
13
21
 
14
22
  .row--start { justify-content: flex-start; }
15
23
  .row--center { justify-content: center; }
@@ -1,9 +1,10 @@
1
1
  {
2
+ "$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
2
3
  "name": "row",
3
4
  "element": "div",
4
5
  "modifiers": {
5
6
  "size": {
6
- "values": ["xs", "md", "lg"]
7
+ "values": ["xs", "sm", "md", "lg", "start", "center", "end", "between"]
7
8
  }
8
9
  },
9
10
  "cssVars": []
@@ -1,30 +1,40 @@
1
+ // @component sidebar
2
+ // @element aside
3
+
1
4
  @layer primitives {
2
5
  .sidebar {
6
+ --_z-sticky: var(--ui-z-sticky);
7
+ --_unit: var(--ui-unit);
8
+ --_color-bg-subtle: var(--ui-color-bg-subtle);
9
+ --_border-width-sm: var(--ui-border-width-sm);
10
+ --_color-border: var(--ui-color-border);
3
11
  display: flex;
4
12
  flex-direction: column;
5
13
  position: fixed;
6
14
  inset-block-start: var(--topbar-height, 0);
7
15
  inset-inline-start: 0;
8
- z-index: var(--ui-z-sticky);
16
+ z-index: var(--_z-sticky);
9
17
 
10
18
  block-size: calc(100vh - var(--topbar-height, 0px));
11
- inline-size: var(--sidebar-width, calc(var(--ui-unit) * 30));
19
+ inline-size: var(--sidebar-width, calc(var(--_unit) * 30));
12
20
  overflow-y: auto;
13
21
 
14
- background: var(--ui-color-bg-subtle);
15
- box-shadow: inset calc(var(--ui-border-width-sm) * -1) 0 0 0 var(--ui-color-border);
22
+ background: var(--_color-bg-subtle);
23
+ box-shadow: inset calc(var(--_border-width-sm) * -1) 0 0 0 var(--_color-border);
16
24
  }
17
25
 
18
26
  // Width modifiers
19
- .sidebar--sm { --sidebar-width: calc(var(--ui-unit) * 24); }
20
- .sidebar--md { --sidebar-width: calc(var(--ui-unit) * 30); }
21
- .sidebar--lg { --sidebar-width: calc(var(--ui-unit) * 40); }
27
+ // @modifier size
28
+ .sidebar--sm { --sidebar-width: calc(var(--_unit) * 24); }
29
+ .sidebar--md { --sidebar-width: calc(var(--_unit) * 30); }
30
+ .sidebar--lg { --sidebar-width: calc(var(--_unit) * 40); }
22
31
 
23
32
  // Position modifier - sidebar on end (right in LTR)
33
+ // @modifier boolean end
24
34
  .sidebar--end {
25
35
  inset-inline-start: auto;
26
36
  inset-inline-end: 0;
27
37
 
28
- box-shadow: inset var(--ui-border-width-sm) 0 0 0 var(--ui-color-border);
38
+ box-shadow: inset var(--_border-width-sm) 0 0 0 var(--_color-border);
29
39
  }
30
40
  }
@@ -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": "sidebar",
3
4
  "element": "aside",
4
5
  "modifiers": {
@@ -45,7 +45,8 @@
45
45
  { "tag": "span", "text": "320px (40 units)" }
46
46
  ]
47
47
  }
48
- ]
48
+ ],
49
+ "code": "<aside class=\"ui-sidebar ui-sidebar--sm\">192px</aside>\n<aside class=\"ui-sidebar ui-sidebar--md\">240px (default)</aside>\n<aside class=\"ui-sidebar ui-sidebar--lg\">320px</aside>"
49
50
  }
50
51
  ]
51
52
  },