@teseor/css 1.10.0 → 1.10.1

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 (42) hide show
  1. package/dist/compiled.css +1 -1
  2. package/dist/index.css +31 -31
  3. package/package.json +1 -1
  4. package/src/components/actions/button/button.docs.json +62 -0
  5. package/src/components/actions/button/index.scss +4 -4
  6. package/src/components/content/divider/index.scss +1 -1
  7. package/src/components/data-display/card/index.scss +17 -15
  8. package/src/components/data-display/data-list/data-list-visual.png +0 -0
  9. package/src/components/data-display/data-list/data-list.api.json +3 -3
  10. package/src/components/data-display/data-list/index.scss +13 -6
  11. package/src/components/data-display/image/index.scss +1 -1
  12. package/src/components/data-display/status/index.scss +17 -17
  13. package/src/components/data-display/status/status.api.json +3 -3
  14. package/src/components/disclosure/accordion/index.scss +5 -2
  15. package/src/components/disclosure/disclosure/disclosure.api.json +2 -2
  16. package/src/components/disclosure/disclosure/index.scss +6 -2
  17. package/src/components/feedback/progress/index.scss +5 -5
  18. package/src/components/feedback/progress-circle/index.scss +10 -10
  19. package/src/components/feedback/spinner/index.scss +10 -10
  20. package/src/components/feedback/toast/index.scss +5 -5
  21. package/src/components/forms/form-error/index.scss +2 -2
  22. package/src/components/forms/form-helper/form-helper-visual.png +0 -0
  23. package/src/components/forms/form-helper/form-helper.docs.json +118 -0
  24. package/src/components/forms/form-helper/index.scss +2 -2
  25. package/src/components/forms/label/index.scss +1 -1
  26. package/src/components/forms/slider/index.scss +9 -9
  27. package/src/components/forms/toggle/index.scss +3 -3
  28. package/src/components/navigation/breadcrumb/index.scss +5 -5
  29. package/src/components/navigation/menu/index.scss +1 -1
  30. package/src/components/navigation/nav/index.scss +2 -2
  31. package/src/components/navigation/nav/nav.docs.json +62 -0
  32. package/src/components/navigation/pagination/index.scss +13 -13
  33. package/src/components/navigation/tabs/index.scss +2 -2
  34. package/src/components/overlays/drawer/index.scss +1 -1
  35. package/src/components/typography/link/index.scss +6 -6
  36. package/src/config/tokens/_variables.scss +8 -0
  37. package/src/layout/center/center-visual.png +0 -0
  38. package/src/layout/center/center.docs.json +40 -1
  39. package/src/layout/container/container.docs.json +85 -0
  40. package/src/layout/main/main.docs.json +87 -0
  41. package/src/utilities/display/display.docs.json +55 -0
  42. package/src/utilities/spacing/spacing.docs.json +92 -2
@@ -6,8 +6,8 @@
6
6
  @layer components.tokens {
7
7
  .toggle {
8
8
  --_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
9
- --_ease-default: var(--ui-ease-default, ease);
10
- --_color-focus: var(--ui-color-focus, var(--ui-color-primary));
9
+ --_ease-default: var(--ui-ease-default, #{t.$ease-default});
10
+ --_color-focus: var(--ui-color-focus, var(--ui-color-primary, #{t.$color-primary}));
11
11
  --_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
12
12
  // @desc Track width
13
13
  --_track-width: var(--ui-toggle-track-width, calc(#{t.$unit} * 5));
@@ -16,7 +16,7 @@
16
16
  // @desc Track background
17
17
  --_track-bg: var(--ui-toggle-track-bg, var(--ui-color-bg-subtle, #{t.$overlay-bg-subtle}));
18
18
  // @desc Track bg checked
19
- --_track-bg-checked: var(--ui-toggle-track-bg-checked, var(--ui-color-primary));
19
+ --_track-bg-checked: var(--ui-toggle-track-bg-checked, var(--ui-color-primary, #{t.$color-primary}));
20
20
  // @desc Track corner radius
21
21
  --_track-radius: var(--ui-toggle-track-radius, calc(#{t.$unit} * 1.5));
22
22
  // @desc Thumb control size
@@ -11,18 +11,18 @@
11
11
  // @desc Separator
12
12
  --_breadcrumb-separator: var(--ui-breadcrumb-separator, "/");
13
13
  --_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
14
- --_ease-default: var(--ui-ease-default, ease);
15
- --_color-primary: var(--ui-color-primary);
14
+ --_ease-default: var(--ui-ease-default, #{t.$ease-default});
15
+ --_color-primary: var(--ui-color-primary, #{t.$color-primary});
16
16
  // @desc Overall height
17
17
  --_height: var(--ui-breadcrumb-height, var(--ui-row-1, #{t.$row}));
18
18
  // @desc Gap between children
19
19
  --_gap: var(--ui-breadcrumb-gap, calc(#{t.$unit} * 1));
20
20
  // @desc Separator text color
21
- --_separator-color: var(--ui-breadcrumb-separator-color, var(--ui-color-text-muted));
21
+ --_separator-color: var(--ui-breadcrumb-separator-color, var(--ui-color-text-muted, #{t.$color-text-muted}));
22
22
  // @desc Link text color
23
- --_link-color: var(--ui-breadcrumb-link-color, var(--ui-color-text-muted));
23
+ --_link-color: var(--ui-breadcrumb-link-color, var(--ui-color-text-muted, #{t.$color-text-muted}));
24
24
  // @desc Current color
25
- --_current-color: var(--ui-breadcrumb-current-color, var(--ui-color-text));
25
+ --_current-color: var(--ui-breadcrumb-current-color, var(--ui-color-text, #{t.$color-text}));
26
26
  }
27
27
  }
28
28
 
@@ -32,7 +32,7 @@
32
32
  // @desc Border color
33
33
  --_border-color: var(--ui-menu-border-color, var(--ui-color-border, #{t.$color-border}));
34
34
  // @desc Box shadow
35
- --_shadow: var(--ui-menu-shadow, var(--ui-shadow-lg));
35
+ --_shadow: var(--ui-menu-shadow, var(--ui-shadow-lg, #{t.$shadow-lg}));
36
36
  // @desc Item padding on all sides
37
37
  --_item-padding: var(--ui-menu-item-padding, calc(#{t.$unit} * 1) calc(#{t.$unit} * 2));
38
38
  // @desc Item corner radius
@@ -8,8 +8,8 @@
8
8
  --_border-width-sm: var(--ui-border-width-sm, #{t.$border-width-sm});
9
9
  --_font-sans: var(--ui-font-sans, #{t.$font-sans});
10
10
  --_border-width-md: var(--ui-border-width-md, #{t.$border-width-md});
11
- --_duration-base: var(--ui-duration-base);
12
- --_ease-default: var(--ui-ease-default);
11
+ --_duration-base: var(--ui-duration-base, #{t.$duration-base});
12
+ --_ease-default: var(--ui-ease-default, #{t.$ease-default});
13
13
  --_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
14
14
  // @desc Gap between children
15
15
  --_gap: var(--ui-nav-gap, var(--ui-space-1, #{t.$space-1}));
@@ -238,5 +238,67 @@
238
238
  }
239
239
  ]
240
240
  }
241
+ ],
242
+ "customization": [
243
+ {
244
+ "token": "--ui-nav-gap",
245
+ "default": "var(--ui-space-1)",
246
+ "description": "Gap between children"
247
+ },
248
+ {
249
+ "token": "--ui-nav-item-height",
250
+ "default": "var(--ui-row-2)",
251
+ "description": "Item overall height"
252
+ },
253
+ {
254
+ "token": "--ui-nav-item-padding-x",
255
+ "default": "var(--ui-space-2)",
256
+ "description": "Item horizontal padding"
257
+ },
258
+ {
259
+ "token": "--ui-nav-item-font-size",
260
+ "default": "var(--ui-font-size-sm)",
261
+ "description": "Item font size"
262
+ },
263
+ {
264
+ "token": "--ui-nav-item-font-weight",
265
+ "default": "var(--ui-weight-medium)",
266
+ "description": "Item font weight"
267
+ },
268
+ {
269
+ "token": "--ui-nav-item-color",
270
+ "default": "var(--ui-color-text-muted)",
271
+ "description": "Item text color"
272
+ },
273
+ {
274
+ "token": "--ui-nav-item-color-hover",
275
+ "default": "var(--ui-color-text)",
276
+ "description": "Item color on hover"
277
+ },
278
+ {
279
+ "token": "--ui-nav-item-color-active",
280
+ "default": "var(--ui-color-primary)",
281
+ "description": "Item color when active"
282
+ },
283
+ {
284
+ "token": "--ui-nav-item-radius",
285
+ "default": "var(--ui-radius-sm)",
286
+ "description": "Item corner radius"
287
+ },
288
+ {
289
+ "token": "--ui-nav-border-color",
290
+ "default": "var(--ui-color-border)",
291
+ "description": "Border color"
292
+ },
293
+ {
294
+ "token": "--ui-nav-item-bg-hover",
295
+ "default": "var(--ui-color-bg-muted)",
296
+ "description": "Item background on hover"
297
+ },
298
+ {
299
+ "token": "--ui-nav-item-bg-active",
300
+ "default": "var(--ui-color-primary)",
301
+ "description": "Item background when active"
302
+ }
241
303
  ]
242
304
  }
@@ -23,12 +23,24 @@
23
23
  // @desc Item bg hover
24
24
  --_item-bg-hover: var(--ui-pagination-item-bg-hover, var(--ui-color-bg-subtle, #{t.$color-bg-subtle}));
25
25
  // @desc Item bg active
26
- --_item-bg-active: var(--ui-pagination-item-bg-active, var(--ui-color-primary));
26
+ --_item-bg-active: var(--ui-pagination-item-bg-active, var(--ui-color-primary, #{t.$color-primary}));
27
27
  // @desc Item text color
28
28
  --_item-color: var(--ui-pagination-item-color, var(--ui-color-text, #{t.$color-text}));
29
29
  // @desc Item color active
30
30
  --_item-color-active: var(--ui-pagination-item-color-active, var(--ui-color-text-inverse, #{t.$color-text-inverse}));
31
31
  }
32
+
33
+ // Size variants
34
+ // @modifier size
35
+ .pagination--sm {
36
+ --_item-size: calc(#{t.$unit} * 3);
37
+ --_gap: calc(#{t.$unit} * 0.25);
38
+ }
39
+
40
+ .pagination--lg {
41
+ --_item-size: calc(#{t.$unit} * 5);
42
+ --_gap: calc(#{t.$unit} * 0.75);
43
+ }
32
44
  }
33
45
 
34
46
  @layer components.styles {
@@ -115,16 +127,4 @@
115
127
 
116
128
  color: var(--_color-text-muted);
117
129
  }
118
-
119
- // Size variants
120
- // @modifier size
121
- .pagination--sm {
122
- --_item-size: calc(#{t.$unit} * 3);
123
- --_gap: calc(#{t.$unit} * 0.25);
124
- }
125
-
126
- .pagination--lg {
127
- --_item-size: calc(#{t.$unit} * 5);
128
- --_gap: calc(#{t.$unit} * 0.75);
129
- }
130
130
  }
@@ -11,8 +11,8 @@
11
11
  --_weight-medium: var(--ui-weight-medium, #{t.$weight-medium});
12
12
  --_color-text-muted: var(--ui-color-text-muted, #{t.$color-text-muted});
13
13
  --_border-width-md: var(--ui-border-width-md, #{t.$border-width-md});
14
- --_duration-base: var(--ui-duration-base);
15
- --_ease-default: var(--ui-ease-default);
14
+ --_duration-base: var(--ui-duration-base, #{t.$duration-base});
15
+ --_ease-default: var(--ui-ease-default, #{t.$ease-default});
16
16
  --_color-text: var(--ui-color-text, #{t.$color-text});
17
17
  --_color-primary: var(--ui-color-primary, #{t.$color-primary});
18
18
  --_row-1: var(--ui-row-1, #{t.$row});
@@ -27,7 +27,7 @@
27
27
  // @desc Background color
28
28
  --_bg: var(--ui-drawer-bg, var(--ui-color-bg, #{t.$color-bg}));
29
29
  // @desc Box shadow
30
- --_shadow: var(--ui-drawer-shadow, var(--ui-shadow-lg));
30
+ --_shadow: var(--ui-drawer-shadow, var(--ui-shadow-lg, #{t.$shadow-lg}));
31
31
  // @desc Header padding on all sides
32
32
  --_header-padding: var(--ui-drawer-header-padding, calc(#{t.$unit} * 2) calc(#{t.$unit} * 3));
33
33
  // @desc Body area padding on all sides
@@ -6,11 +6,11 @@
6
6
  @layer components.tokens {
7
7
  .link {
8
8
  --_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
9
- --_ease-default: var(--ui-ease-default, ease);
10
- --_color-focus: var(--ui-color-focus, var(--ui-color-primary));
11
- --_color-text-muted: var(--ui-color-text-muted);
9
+ --_ease-default: var(--ui-ease-default, #{t.$ease-default});
10
+ --_color-focus: var(--ui-color-focus, var(--ui-color-primary, #{t.$color-primary}));
11
+ --_color-text-muted: var(--ui-color-text-muted, #{t.$color-text-muted});
12
12
  // @desc Text color
13
- --_color: var(--ui-link-color, var(--ui-color-primary));
13
+ --_color: var(--ui-link-color, var(--ui-color-primary, #{t.$color-primary}));
14
14
  // @desc Color hover
15
15
  --_color-hover: var(--ui-link-color-hover, var(--ui-color-primary-hover, color-mix(in srgb, var(--_color) 85%, black)));
16
16
  // @desc Color visited
@@ -24,9 +24,9 @@
24
24
  // @modifier variant
25
25
  .link--muted {
26
26
  // @desc Color muted
27
- --_color: var(--ui-link-color-muted, var(--ui-color-text-muted));
27
+ --_color: var(--ui-link-color-muted, var(--ui-color-text-muted, #{t.$color-text-muted}));
28
28
  // @desc Color muted hover
29
- --_color-hover: var(--ui-link-color-muted-hover, var(--ui-color-text));
29
+ --_color-hover: var(--ui-link-color-muted-hover, var(--ui-color-text, #{t.$color-text}));
30
30
  }
31
31
 
32
32
  .link--subtle {
@@ -141,6 +141,14 @@ $duration-normal: 200ms;
141
141
  $duration-slow: 250ms;
142
142
  $duration-slower: 400ms;
143
143
 
144
+ // Motion - easing (matches config/tokens/motion)
145
+ $ease-default: cubic-bezier(0.4, 0, 0.2, 1);
146
+
147
+ // Shadows (matches config/tokens/shadows, static hue fallback)
148
+ $shadow-sm: 0 1px 2px hsl(220 10% 20% / 0.05);
149
+ $shadow-md: 0 4px 6px hsl(220 10% 20% / 0.1);
150
+ $shadow-lg: 0 10px 15px hsl(220 10% 20% / 0.15);
151
+
144
152
  // Z-index scale (matches config/tokens/zindex)
145
153
  $z-base: 0;
146
154
  $z-sticky: 100;
Binary file
@@ -7,6 +7,7 @@
7
7
  "sections": [
8
8
  {
9
9
  "title": "Basic",
10
+ "description": "Centers children both horizontally and vertically using flexbox.",
10
11
  "examples": [
11
12
  {
12
13
  "items": [
@@ -16,7 +17,45 @@
16
17
  "style": { "height": "var(--ui-row-4)", "background": "var(--ui-color-bg-muted)" },
17
18
  "children": [{ "tag": "span", "text": "Centered content" }]
18
19
  }
19
- ]
20
+ ],
21
+ "code": "<div class=\"ui-center\" style=\"height: var(--ui-row-4);\">\n <span>Centered content</span>\n</div>"
22
+ }
23
+ ]
24
+ },
25
+ {
26
+ "title": "Column Direction",
27
+ "description": "Stack centered children vertically.",
28
+ "examples": [
29
+ {
30
+ "items": [
31
+ {
32
+ "tag": "div",
33
+ "class": "ui-center ui-center--column",
34
+ "style": { "height": "var(--ui-row-6)", "background": "var(--ui-color-bg-muted)" },
35
+ "children": [
36
+ { "tag": "span", "text": "First line" },
37
+ { "tag": "span", "text": "Second line" }
38
+ ]
39
+ }
40
+ ],
41
+ "code": "<div class=\"ui-center ui-center--column\" style=\"height: var(--ui-row-6);\">\n <span>First line</span>\n <span>Second line</span>\n</div>"
42
+ }
43
+ ]
44
+ },
45
+ {
46
+ "title": "Full Page Center",
47
+ "description": "Center content within a full viewport area, useful for loading or empty states.",
48
+ "examples": [
49
+ {
50
+ "items": [
51
+ {
52
+ "tag": "div",
53
+ "class": "ui-center",
54
+ "style": { "height": "var(--ui-row-8)", "background": "var(--ui-color-bg-muted)" },
55
+ "children": [{ "tag": "p", "text": "No results found" }]
56
+ }
57
+ ],
58
+ "code": "<div class=\"ui-center\" style=\"height: 100vh;\">\n <p>No results found</p>\n</div>"
20
59
  }
21
60
  ]
22
61
  }
@@ -0,0 +1,85 @@
1
+ {
2
+ "id": "container",
3
+ "type": "primitive",
4
+ "title": "Container",
5
+ "description": "Content wrapper with max-width and inline padding. Centers page content with consistent margins.",
6
+ "api": "container.api.json",
7
+ "sections": [
8
+ {
9
+ "title": "Default",
10
+ "description": "Constrains content to a max width with horizontal padding.",
11
+ "examples": [
12
+ {
13
+ "items": [
14
+ {
15
+ "tag": "div",
16
+ "class": "ui-container",
17
+ "style": { "background": "var(--ui-color-bg-muted)" },
18
+ "children": [{ "tag": "p", "text": "Content within a container" }]
19
+ }
20
+ ],
21
+ "code": "<div class=\"ui-container\">Content within a container</div>"
22
+ }
23
+ ]
24
+ },
25
+ {
26
+ "title": "Centered",
27
+ "description": "Centers the container horizontally with auto margins.",
28
+ "examples": [
29
+ {
30
+ "items": [
31
+ {
32
+ "tag": "div",
33
+ "class": "ui-container ui-container--center",
34
+ "style": { "background": "var(--ui-color-bg-muted)" },
35
+ "children": [{ "tag": "p", "text": "Centered container" }]
36
+ }
37
+ ],
38
+ "code": "<div class=\"ui-container ui-container--center\">Centered container</div>"
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ "title": "Sizes",
44
+ "description": "Width presets for different layout needs.",
45
+ "examples": [
46
+ {
47
+ "layout": "column",
48
+ "items": [
49
+ {
50
+ "tag": "div",
51
+ "class": "ui-container ui-container--sm ui-container--center",
52
+ "style": { "background": "var(--ui-color-bg-muted)" },
53
+ "children": [{ "tag": "p", "text": "Small" }]
54
+ },
55
+ {
56
+ "tag": "div",
57
+ "class": "ui-container ui-container--md ui-container--center",
58
+ "style": { "background": "var(--ui-color-bg-muted)" },
59
+ "children": [{ "tag": "p", "text": "Medium" }]
60
+ },
61
+ {
62
+ "tag": "div",
63
+ "class": "ui-container ui-container--lg ui-container--center",
64
+ "style": { "background": "var(--ui-color-bg-muted)" },
65
+ "children": [{ "tag": "p", "text": "Large (default)" }]
66
+ },
67
+ {
68
+ "tag": "div",
69
+ "class": "ui-container ui-container--xl ui-container--center",
70
+ "style": { "background": "var(--ui-color-bg-muted)" },
71
+ "children": [{ "tag": "p", "text": "Extra large" }]
72
+ },
73
+ {
74
+ "tag": "div",
75
+ "class": "ui-container ui-container--full",
76
+ "style": { "background": "var(--ui-color-bg-muted)" },
77
+ "children": [{ "tag": "p", "text": "Full width" }]
78
+ }
79
+ ],
80
+ "code": "<div class=\"ui-container ui-container--sm\">Small</div>\n<div class=\"ui-container ui-container--md\">Medium</div>\n<div class=\"ui-container ui-container--lg\">Large</div>\n<div class=\"ui-container ui-container--xl\">Extra large</div>\n<div class=\"ui-container ui-container--full\">Full width</div>"
81
+ }
82
+ ]
83
+ }
84
+ ]
85
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "id": "main",
3
+ "type": "primitive",
4
+ "title": "Main",
5
+ "description": "Main content area that accounts for sidebar and topbar offsets in app layouts.",
6
+ "api": "main.api.json",
7
+ "sections": [
8
+ {
9
+ "title": "Default",
10
+ "description": "Offsets content for a start-side sidebar and optional topbar.",
11
+ "examples": [
12
+ {
13
+ "items": [
14
+ {
15
+ "tag": "div",
16
+ "style": { "position": "relative", "height": "var(--ui-row-4)" },
17
+ "children": [
18
+ {
19
+ "tag": "main",
20
+ "class": "ui-main",
21
+ "style": {
22
+ "background": "var(--ui-color-bg-muted)",
23
+ "padding": "var(--ui-space-2)"
24
+ },
25
+ "children": [{ "tag": "p", "text": "Main content area" }]
26
+ }
27
+ ]
28
+ }
29
+ ],
30
+ "code": "<main class=\"ui-main\">Main content area</main>"
31
+ }
32
+ ]
33
+ },
34
+ {
35
+ "title": "Sidebar End",
36
+ "description": "Offsets content for an end-side sidebar instead of start.",
37
+ "examples": [
38
+ {
39
+ "items": [
40
+ {
41
+ "tag": "div",
42
+ "style": { "position": "relative", "height": "var(--ui-row-4)" },
43
+ "children": [
44
+ {
45
+ "tag": "main",
46
+ "class": "ui-main ui-main--sidebar-end",
47
+ "style": {
48
+ "background": "var(--ui-color-bg-muted)",
49
+ "padding": "var(--ui-space-2)"
50
+ },
51
+ "children": [{ "tag": "p", "text": "Content with end sidebar" }]
52
+ }
53
+ ]
54
+ }
55
+ ],
56
+ "code": "<main class=\"ui-main ui-main--sidebar-end\">Content with end sidebar</main>"
57
+ }
58
+ ]
59
+ },
60
+ {
61
+ "title": "Full Width",
62
+ "description": "No sidebar offset. Use when there is no sidebar.",
63
+ "examples": [
64
+ {
65
+ "items": [
66
+ {
67
+ "tag": "div",
68
+ "style": { "position": "relative", "height": "var(--ui-row-4)" },
69
+ "children": [
70
+ {
71
+ "tag": "main",
72
+ "class": "ui-main ui-main--full",
73
+ "style": {
74
+ "background": "var(--ui-color-bg-muted)",
75
+ "padding": "var(--ui-space-2)"
76
+ },
77
+ "children": [{ "tag": "p", "text": "Full width content" }]
78
+ }
79
+ ]
80
+ }
81
+ ],
82
+ "code": "<main class=\"ui-main ui-main--full\">Full width content</main>"
83
+ }
84
+ ]
85
+ }
86
+ ]
87
+ }
@@ -6,6 +6,7 @@
6
6
  "api": "display.api.json",
7
7
  "sections": [
8
8
  {
9
+ "title": "Flex Layout",
9
10
  "examples": [
10
11
  {
11
12
  "items": [
@@ -23,6 +24,60 @@
23
24
  "code": "<div class=\"ui-flex ui-justify-between ui-items-center ui-gap-2\">\n <span>Start</span>\n <span>Center</span>\n <span>End</span>\n</div>"
24
25
  }
25
26
  ]
27
+ },
28
+ {
29
+ "title": "Flex Direction",
30
+ "examples": [
31
+ {
32
+ "layout": "row",
33
+ "items": [
34
+ {
35
+ "tag": "div",
36
+ "class": "ui-flex ui-flex-col ui-gap-1 ui-p-2",
37
+ "style": { "background": "var(--ui-color-bg-muted)" },
38
+ "children": [
39
+ { "tag": "span", "text": "Column 1" },
40
+ { "tag": "span", "text": "Column 2" },
41
+ { "tag": "span", "text": "Column 3" }
42
+ ]
43
+ },
44
+ {
45
+ "tag": "div",
46
+ "class": "ui-flex ui-flex-row ui-gap-1 ui-p-2",
47
+ "style": { "background": "var(--ui-color-bg-muted)" },
48
+ "children": [
49
+ { "tag": "span", "text": "Row 1" },
50
+ { "tag": "span", "text": "Row 2" },
51
+ { "tag": "span", "text": "Row 3" }
52
+ ]
53
+ }
54
+ ],
55
+ "code": "<div class=\"ui-flex ui-flex-col ui-gap-1\">...</div>\n<div class=\"ui-flex ui-flex-row ui-gap-1\">...</div>"
56
+ }
57
+ ]
58
+ },
59
+ {
60
+ "title": "Visibility",
61
+ "examples": [
62
+ {
63
+ "layout": "row",
64
+ "items": [
65
+ {
66
+ "tag": "span",
67
+ "class": "ui-visible ui-p-1",
68
+ "style": { "background": "var(--ui-color-bg-muted)" },
69
+ "text": "Visible"
70
+ },
71
+ {
72
+ "tag": "span",
73
+ "class": "ui-invisible ui-p-1",
74
+ "style": { "background": "var(--ui-color-bg-muted)" },
75
+ "text": "Invisible (hidden but occupies space)"
76
+ }
77
+ ],
78
+ "code": "<span class=\"ui-visible\">Visible</span>\n<span class=\"ui-invisible\">Invisible (hidden but occupies space)</span>"
79
+ }
80
+ ]
26
81
  }
27
82
  ]
28
83
  }
@@ -6,6 +6,7 @@
6
6
  "api": "spacing.api.json",
7
7
  "sections": [
8
8
  {
9
+ "title": "Padding",
9
10
  "examples": [
10
11
  {
11
12
  "layout": "column",
@@ -27,15 +28,104 @@
27
28
  "class": "ui-p-4",
28
29
  "text": "p-4 (32px padding)",
29
30
  "style": { "background": "var(--ui-color-bg-muted)" }
30
- },
31
+ }
32
+ ],
33
+ "code": "<div class=\"ui-p-1\">...</div>\n<div class=\"ui-p-2\">...</div>\n<div class=\"ui-p-4\">...</div>"
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ "title": "Directional Padding",
39
+ "examples": [
40
+ {
41
+ "layout": "column",
42
+ "items": [
31
43
  {
32
44
  "tag": "div",
33
45
  "class": "ui-px-4 ui-py-2",
34
46
  "text": "px-4 py-2 (horizontal 32px, vertical 16px)",
35
47
  "style": { "background": "var(--ui-color-bg-muted)" }
48
+ },
49
+ {
50
+ "tag": "div",
51
+ "class": "ui-pt-4 ui-pb-1",
52
+ "text": "pt-4 pb-1 (top 32px, bottom 8px)",
53
+ "style": { "background": "var(--ui-color-bg-muted)" }
54
+ },
55
+ {
56
+ "tag": "div",
57
+ "class": "ui-ps-4 ui-pe-1",
58
+ "text": "ps-4 pe-1 (start 32px, end 8px)",
59
+ "style": { "background": "var(--ui-color-bg-muted)" }
60
+ }
61
+ ],
62
+ "code": "<div class=\"ui-px-4 ui-py-2\">...</div>\n<div class=\"ui-pt-4 ui-pb-1\">...</div>\n<div class=\"ui-ps-4 ui-pe-1\">...</div>"
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "title": "Margin",
68
+ "examples": [
69
+ {
70
+ "layout": "column",
71
+ "items": [
72
+ {
73
+ "tag": "div",
74
+ "class": "ui-mb-2",
75
+ "text": "mb-2 (16px bottom margin)",
76
+ "style": { "background": "var(--ui-color-bg-muted)" }
77
+ },
78
+ {
79
+ "tag": "div",
80
+ "class": "ui-mt-4 ui-mb-2",
81
+ "text": "mt-4 mb-2 (top 32px, bottom 16px)",
82
+ "style": { "background": "var(--ui-color-bg-muted)" }
83
+ },
84
+ {
85
+ "tag": "div",
86
+ "class": "ui-mx-auto",
87
+ "text": "mx-auto (centered with auto margins)",
88
+ "style": {
89
+ "background": "var(--ui-color-bg-muted)",
90
+ "max-inline-size": "var(--ui-row-8)"
91
+ }
92
+ }
93
+ ],
94
+ "code": "<div class=\"ui-mb-2\">...</div>\n<div class=\"ui-mt-4 ui-mb-2\">...</div>\n<div class=\"ui-mx-auto\">...</div>"
95
+ }
96
+ ]
97
+ },
98
+ {
99
+ "title": "Gap",
100
+ "examples": [
101
+ {
102
+ "items": [
103
+ {
104
+ "tag": "div",
105
+ "class": "ui-flex ui-gap-2",
106
+ "children": [
107
+ {
108
+ "tag": "div",
109
+ "class": "ui-p-2",
110
+ "text": "Item",
111
+ "style": { "background": "var(--ui-color-bg-muted)" }
112
+ },
113
+ {
114
+ "tag": "div",
115
+ "class": "ui-p-2",
116
+ "text": "Item",
117
+ "style": { "background": "var(--ui-color-bg-muted)" }
118
+ },
119
+ {
120
+ "tag": "div",
121
+ "class": "ui-p-2",
122
+ "text": "Item",
123
+ "style": { "background": "var(--ui-color-bg-muted)" }
124
+ }
125
+ ]
36
126
  }
37
127
  ],
38
- "code": "<div class=\"ui-p-2\">...</div>\n<div class=\"ui-px-4 ui-py-2\">...</div>\n<div class=\"ui-mt-4 ui-mb-2\">...</div>"
128
+ "code": "<div class=\"ui-flex ui-gap-2\">\n <div>Item</div>\n <div>Item</div>\n <div>Item</div>\n</div>"
39
129
  }
40
130
  ]
41
131
  }