@teseor/css 2.2.1 → 2.3.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 (28) hide show
  1. package/dist/compiled.css +1 -1
  2. package/dist/index.css +6 -6
  3. package/package.json +1 -1
  4. package/src/components/actions/button-group/api.json +5 -0
  5. package/src/components/actions/button-group/index.scss +3 -1
  6. package/src/components/actions/close-button/index.scss +1 -1
  7. package/src/components/data-display/badge/api.json +2 -2
  8. package/src/components/data-display/badge/index.scss +2 -2
  9. package/src/components/data-display/table/index.scss +2 -3
  10. package/src/components/disclosure/accordion/index.scss +3 -3
  11. package/src/components/feedback/progress/api.json +1 -1
  12. package/src/components/feedback/progress/index.scss +1 -1
  13. package/src/components/feedback/skeleton/api.json +1 -1
  14. package/src/components/feedback/skeleton/index.scss +1 -1
  15. package/src/components/forms/number-input/index.scss +2 -2
  16. package/src/components/forms/password-input/index.scss +2 -2
  17. package/src/components/forms/search-input/index.scss +3 -3
  18. package/src/components/forms/slider/api.json +6 -1
  19. package/src/components/forms/slider/index.scss +5 -3
  20. package/src/components/forms/toggle/api.json +1 -1
  21. package/src/components/forms/toggle/index.scss +3 -2
  22. package/src/components/overlays/dialog/api.json +5 -0
  23. package/src/components/overlays/dialog/index.scss +4 -2
  24. package/src/components/typography/link/index.scss +2 -1
  25. package/src/config/guides/theming.docs.html +33 -12
  26. package/src/config/tokens/_variables.scss +1 -0
  27. package/src/config/tokens/semantic-colors.scss +1 -0
  28. package/src/debug/index.scss +6 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teseor/css",
3
- "version": "2.2.1",
3
+ "version": "2.3.0",
4
4
  "description": "CSS library - reset, primitives, components, utilities",
5
5
  "license": "MIT",
6
6
  "author": "letanure",
@@ -12,6 +12,11 @@
12
12
  "name": "--ui-button-group-radius",
13
13
  "default": "var(--ui-radius-md)",
14
14
  "description": "Corner radius"
15
+ },
16
+ {
17
+ "name": "--ui-button-group-border-width",
18
+ "default": "var(--ui-border-width-sm)",
19
+ "description": "Border thickness"
15
20
  }
16
21
  ]
17
22
  }
@@ -9,6 +9,8 @@
9
9
  .button-group {
10
10
  // @desc Corner radius
11
11
  --_radius: var(--ui-button-group-radius, var(--ui-radius-md, calc(#{t.$unit} / 2)));
12
+ // @desc Border thickness
13
+ --_border-width: var(--ui-button-group-border-width, var(--ui-border-width-sm, #{t.$border-width-sm}));
12
14
  }
13
15
  }
14
16
 
@@ -75,7 +77,7 @@
75
77
  }
76
78
 
77
79
  .button-group--attached > .button:last-child {
78
- border-inline-end-width: 1px;
80
+ border-inline-end-width: var(--_border-width);
79
81
  }
80
82
 
81
83
  .button-group--attached > .button + .button {
@@ -114,7 +114,7 @@
114
114
 
115
115
  fill: none;
116
116
  stroke: currentcolor;
117
- stroke-width: 2;
117
+ stroke-width: #{t.$icon-stroke};
118
118
  stroke-linecap: round;
119
119
  stroke-linejoin: round;
120
120
  }
@@ -18,7 +18,7 @@
18
18
  },
19
19
  {
20
20
  "name": "--ui-badge-height",
21
- "default": "calc(var(--ui-row) * 1.25)",
21
+ "default": "calc(var(--ui-row) * 1.5)",
22
22
  "description": "Overall height"
23
23
  },
24
24
  {
@@ -63,7 +63,7 @@
63
63
  },
64
64
  {
65
65
  "name": "--ui-badge-height-lg",
66
- "default": "calc(var(--ui-row) * 1.5)",
66
+ "default": "var(--ui-row-2)",
67
67
  "description": "Overall height at large size"
68
68
  },
69
69
  {
@@ -10,7 +10,7 @@
10
10
  --_accent: var(--ui-badge-accent, var(--ui-color-bg-muted, #{t.$color-bg-muted}));
11
11
 
12
12
  // @desc Overall height
13
- --_height: var(--ui-badge-height, calc(var(--ui-row, #{t.$row}) * 1.25));
13
+ --_height: var(--ui-badge-height, calc(var(--ui-row, #{t.$row}) * 1.5));
14
14
  // @desc Horizontal padding
15
15
  --_padding-x: var(--ui-badge-padding-x, var(--ui-space-1, #{t.$space-1}));
16
16
  // @desc Font size
@@ -36,7 +36,7 @@
36
36
 
37
37
  .badge--lg {
38
38
  // @desc Overall height at large size
39
- --_height: var(--ui-badge-height-lg, calc(var(--ui-row, #{t.$row}) * 1.5));
39
+ --_height: var(--ui-badge-height-lg, var(--ui-row-2, #{t.$row-2}));
40
40
  // @desc Horizontal padding at large size
41
41
  --_padding-x: var(--ui-badge-padding-x-lg, var(--ui-space-2, #{t.$space-2}));
42
42
  // @desc Font size at large size
@@ -8,7 +8,6 @@
8
8
  --_border-width-sm: var(--ui-border-width-sm, #{t.$border-width-sm});
9
9
  --_unit: var(--ui-unit, #{t.$unit});
10
10
  --_weight-medium: var(--ui-font-weight-medium, #{t.$font-weight-medium});
11
- --_color-bg-subtle: var(--ui-color-bg-subtle, #{t.$color-bg-subtle});
12
11
  --_color-bg-muted: var(--ui-color-bg-muted, #{t.$color-bg-muted});
13
12
  // @desc Font size
14
13
  --_font-size: var(--ui-table-font-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
@@ -63,11 +62,11 @@
63
62
  // @modifier boolean striped
64
63
  &--striped {
65
64
  tbody tr:nth-child(odd) {
66
- background: var(--_color-bg-subtle);
65
+ background: var(--_color-bg-muted);
67
66
  }
68
67
 
69
68
  th {
70
- background: var(--_color-bg-muted);
69
+ background: var(--_header-bg);
71
70
  }
72
71
  }
73
72
  }
@@ -37,7 +37,7 @@
37
37
 
38
38
  // Add dividers between items
39
39
  .accordion > .disclosure + .disclosure {
40
- border-block-start: 1px solid var(--_border-color);
40
+ border-block-start: var(--_border-width) solid var(--_border-color);
41
41
  }
42
42
 
43
43
  // Round first and last items
@@ -77,11 +77,11 @@
77
77
  }
78
78
 
79
79
  .accordion--separated > .disclosure {
80
- border: 1px solid var(--_border-color);
80
+ border: var(--_border-width) solid var(--_border-color);
81
81
  border-radius: var(--_radius);
82
82
  }
83
83
 
84
84
  .accordion--separated > .disclosure + .disclosure {
85
- border-block-start: 1px solid var(--_border-color);
85
+ border-block-start: var(--_border-width) solid var(--_border-color);
86
86
  }
87
87
  }
@@ -30,7 +30,7 @@
30
30
  },
31
31
  {
32
32
  "name": "--ui-progress-bg",
33
- "default": "var(--ui-color-bg-subtle)",
33
+ "default": "var(--ui-color-bg-inset)",
34
34
  "description": "Background color"
35
35
  },
36
36
  {
@@ -21,7 +21,7 @@
21
21
  // @desc Overall height
22
22
  --_height: var(--ui-progress-height, calc(#{t.$unit} * 1));
23
23
  // @desc Background color
24
- --_bg: var(--ui-progress-bg, var(--ui-color-bg-subtle, #{t.$color-bg-subtle}));
24
+ --_bg: var(--ui-progress-bg, var(--ui-color-bg-inset, #{t.$color-bg-inset}));
25
25
  // @desc Fill
26
26
  --_fill: var(--ui-progress-fill, var(--ui-color-primary, #{t.$color-primary}));
27
27
  // @desc Corner radius
@@ -13,7 +13,7 @@
13
13
  "cssVars": [
14
14
  {
15
15
  "name": "--ui-skeleton-bg",
16
- "default": "var(--ui-color-bg-subtle)",
16
+ "default": "var(--ui-color-bg-inset)",
17
17
  "description": "Background color"
18
18
  },
19
19
  {
@@ -8,7 +8,7 @@
8
8
  @layer components.tokens {
9
9
  .skeleton {
10
10
  // @desc Background color
11
- --_bg: var(--ui-skeleton-bg, var(--ui-color-bg-subtle, #{t.$color-bg-subtle}));
11
+ --_bg: var(--ui-skeleton-bg, var(--ui-color-bg-inset, #{t.$color-bg-inset}));
12
12
  // @desc Shimmer
13
13
  --_shimmer: var(--ui-skeleton-shimmer, #{t.$skeleton-shimmer});
14
14
  // @desc Corner radius
@@ -142,7 +142,7 @@
142
142
  }
143
143
 
144
144
  &:focus-visible {
145
- outline: 2px solid var(--_color-focus);
145
+ outline: var(--_border-width-md) solid var(--_color-focus);
146
146
  outline-offset: #{t.$focus-ring-offset};
147
147
  }
148
148
 
@@ -156,7 +156,7 @@
156
156
 
157
157
  fill: none;
158
158
  stroke: currentcolor;
159
- stroke-width: 2;
159
+ stroke-width: #{t.$icon-stroke};
160
160
  stroke-linecap: round;
161
161
  stroke-linejoin: round;
162
162
  }
@@ -151,7 +151,7 @@
151
151
  }
152
152
 
153
153
  &:focus-visible {
154
- outline: 2px solid var(--_color-focus);
154
+ outline: var(--_border-width-md) solid var(--_color-focus);
155
155
  outline-offset: #{t.$focus-ring-offset};
156
156
  }
157
157
 
@@ -161,7 +161,7 @@
161
161
 
162
162
  fill: none;
163
163
  stroke: currentcolor;
164
- stroke-width: 2;
164
+ stroke-width: #{t.$icon-stroke};
165
165
  stroke-linecap: round;
166
166
  stroke-linejoin: round;
167
167
  }
@@ -119,7 +119,7 @@
119
119
 
120
120
  fill: none;
121
121
  stroke: currentcolor;
122
- stroke-width: 2;
122
+ stroke-width: #{t.$icon-stroke};
123
123
  stroke-linecap: round;
124
124
  stroke-linejoin: round;
125
125
  }
@@ -185,7 +185,7 @@
185
185
  }
186
186
 
187
187
  &:focus-visible {
188
- outline: 2px solid var(--_color-focus);
188
+ outline: var(--_border-width-md) solid var(--_color-focus);
189
189
  outline-offset: #{t.$focus-ring-offset};
190
190
  }
191
191
 
@@ -195,7 +195,7 @@
195
195
 
196
196
  fill: none;
197
197
  stroke: currentcolor;
198
- stroke-width: 2;
198
+ stroke-width: #{t.$icon-stroke};
199
199
  stroke-linecap: round;
200
200
  stroke-linejoin: round;
201
201
  }
@@ -23,7 +23,7 @@
23
23
  },
24
24
  {
25
25
  "name": "--ui-slider-track-bg",
26
- "default": "var(--ui-color-bg-subtle)",
26
+ "default": "var(--ui-color-bg-inset)",
27
27
  "description": "Track background"
28
28
  },
29
29
  {
@@ -71,6 +71,11 @@
71
71
  "default": "var(--ui-color-focus)",
72
72
  "description": "Focus ring"
73
73
  },
74
+ {
75
+ "name": "--ui-slider-fill-pct",
76
+ "default": "50%",
77
+ "description": "Fill percentage (set via JS for Webkit track fill)"
78
+ },
74
79
  {
75
80
  "name": "--ui-slider-height-sm",
76
81
  "default": "calc(var(--ui-row) * 1.5)",
@@ -14,7 +14,7 @@
14
14
  // @desc Track height
15
15
  --_track-height: var(--ui-slider-track-height, var(--ui-unit, #{t.$unit}));
16
16
  // @desc Track background
17
- --_track-bg: var(--ui-slider-track-bg, var(--ui-color-bg-subtle, #{t.$color-bg-subtle}));
17
+ --_track-bg: var(--ui-slider-track-bg, var(--ui-color-bg-inset, #{t.$color-bg-inset}));
18
18
  // @desc Track fill
19
19
  --_track-fill: var(--ui-slider-track-fill, var(--ui-color-primary, #{t.$color-primary}));
20
20
  // @desc Track corner radius
@@ -33,6 +33,8 @@
33
33
  --_thumb-shadow: var(--ui-slider-thumb-shadow, #{t.$slider-thumb-shadow});
34
34
  // @desc Focus ring
35
35
  --_focus-ring: var(--ui-slider-focus-ring, var(--ui-color-focus, #{t.$color-focus}));
36
+ // @desc Fill percentage (set via JS for Webkit track fill)
37
+ --_fill-pct: var(--ui-slider-fill-pct, 50%);
36
38
  }
37
39
 
38
40
  // @modifier size
@@ -81,11 +83,11 @@
81
83
  cursor: pointer;
82
84
  appearance: none;
83
85
 
84
- // Webkit track
86
+ // Webkit track — gradient simulates fill (no ::-webkit-range-progress)
85
87
  &::-webkit-slider-runnable-track {
86
88
  block-size: var(--_track-height);
87
89
 
88
- background: var(--_track-bg);
90
+ background: linear-gradient(to right, var(--_track-fill) var(--_fill-pct, 50%), var(--_track-bg) var(--_fill-pct, 50%));
89
91
  border-radius: var(--_track-radius);
90
92
  }
91
93
 
@@ -25,7 +25,7 @@
25
25
  },
26
26
  {
27
27
  "name": "--ui-toggle-track-bg",
28
- "default": "var(--ui-color-bg-subtle)",
28
+ "default": "var(--ui-color-bg-inset)",
29
29
  "description": "Track background"
30
30
  },
31
31
  {
@@ -8,13 +8,14 @@
8
8
  --_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
9
9
  --_ease-default: var(--ui-ease-default, #{t.$ease-default});
10
10
  --_color-focus: var(--ui-color-focus, var(--ui-color-primary, #{t.$color-primary}));
11
+ --_border-width-md: var(--ui-border-width-md, #{t.$border-width-md});
11
12
  --_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
12
13
  // @desc Track width
13
14
  --_track-width: var(--ui-toggle-track-width, calc(#{t.$unit} * 5));
14
15
  // @desc Track height
15
16
  --_track-height: var(--ui-toggle-track-height, calc(#{t.$unit} * 3));
16
17
  // @desc Track background
17
- --_track-bg: var(--ui-toggle-track-bg, var(--ui-color-bg-subtle, #{t.$color-bg-subtle}));
18
+ --_track-bg: var(--ui-toggle-track-bg, var(--ui-color-bg-inset, #{t.$color-bg-inset}));
18
19
  // @desc Track bg checked
19
20
  --_track-bg-checked: var(--ui-toggle-track-bg-checked, var(--ui-color-primary, #{t.$color-primary}));
20
21
  // @desc Track corner radius
@@ -112,7 +113,7 @@
112
113
 
113
114
  // Focus state
114
115
  .toggle__input:focus-visible ~ .toggle__track {
115
- outline: 2px solid var(--_color-focus);
116
+ outline: var(--_border-width-md) solid var(--_color-focus);
116
117
  outline-offset: calc(#{t.$unit} / 4);
117
118
  }
118
119
 
@@ -34,6 +34,11 @@
34
34
  "name": "--ui-dialog-border-color",
35
35
  "default": "var(--ui-color-border)",
36
36
  "description": "Border color"
37
+ },
38
+ {
39
+ "name": "--ui-dialog-border-width",
40
+ "default": "var(--ui-border-width-sm)",
41
+ "description": "Border thickness"
37
42
  }
38
43
  ]
39
44
  }
@@ -17,6 +17,8 @@
17
17
  --_footer-padding: var(--ui-dialog-footer-padding, calc(#{t.$unit} * 2) calc(#{t.$unit} * 3));
18
18
  // @desc Border color
19
19
  --_border-color: var(--ui-dialog-border-color, var(--ui-color-border, #{t.$color-border}));
20
+ // @desc Border thickness
21
+ --_border-width: var(--ui-dialog-border-width, var(--ui-border-width-sm, #{t.$border-width-sm}));
20
22
  }
21
23
  }
22
24
 
@@ -35,7 +37,7 @@
35
37
 
36
38
  padding: var(--_header-padding);
37
39
 
38
- border-block-end: 1px solid var(--_border-color);
40
+ border-block-end: var(--_border-width) solid var(--_border-color);
39
41
  }
40
42
 
41
43
  .dialog__title {
@@ -68,7 +70,7 @@
68
70
 
69
71
  padding: var(--_footer-padding);
70
72
 
71
- border-block-start: 1px solid var(--_border-color);
73
+ border-block-start: var(--_border-width) solid var(--_border-color);
72
74
  }
73
75
 
74
76
  // Variant without borders
@@ -8,6 +8,7 @@
8
8
  --_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
9
9
  --_ease-default: var(--ui-ease-default, #{t.$ease-default});
10
10
  --_color-focus: var(--ui-color-focus, var(--ui-color-primary, #{t.$color-primary}));
11
+ --_border-width-md: var(--ui-border-width-md, #{t.$border-width-md});
11
12
  --_color-text-muted: var(--ui-color-text-muted, #{t.$color-text-muted});
12
13
  // @desc Text color
13
14
  --_color: var(--ui-link-color, var(--ui-color-primary, #{t.$color-primary}));
@@ -52,7 +53,7 @@
52
53
 
53
54
  &:focus-visible {
54
55
  border-radius: calc(#{t.$unit} / 4);
55
- outline: 2px solid var(--_color-focus);
56
+ outline: var(--_border-width-md) solid var(--_color-focus);
56
57
  outline-offset: calc(#{t.$unit} / 4);
57
58
  }
58
59
 
@@ -11,47 +11,47 @@ weight: 2
11
11
  <div class="demo-playground">
12
12
  <div class="demo-playground__row">
13
13
  <label>scale</label>
14
- <input type="range" min="0.75" max="1.25" step="0.025" value="1" data-token="--ui-scale" data-suffix="">
14
+ <input class="ui-slider ui-slider--sm" type="range" min="0.75" max="1.25" step="0.025" value="1" data-token="--ui-scale" data-suffix="">
15
15
  <output>1</output>
16
16
  </div>
17
17
  <div class="demo-playground__row">
18
18
  <label>primary hue</label>
19
- <input type="range" min="0" max="360" step="1" value="250" data-token="--ui-color-primary" data-template="oklch(55% 0.22 {value})" data-suffix="">
19
+ <input class="ui-slider ui-slider--sm" type="range" min="0" max="360" step="1" value="250" data-token="--ui-color-primary" data-template="oklch(55% 0.22 {value})" data-suffix="">
20
20
  <output>250</output>
21
21
  </div>
22
22
  <div class="demo-playground__row">
23
23
  <label>success hue</label>
24
- <input type="range" min="0" max="360" step="1" value="145" data-token="--ui-color-success" data-template="oklch(60% 0.18 {value})" data-suffix="">
24
+ <input class="ui-slider ui-slider--sm" type="range" min="0" max="360" step="1" value="145" data-token="--ui-color-success" data-template="oklch(60% 0.18 {value})" data-suffix="">
25
25
  <output>145</output>
26
26
  </div>
27
27
  <div class="demo-playground__row">
28
28
  <label>warning hue</label>
29
- <input type="range" min="0" max="360" step="1" value="70" data-token="--ui-color-warning" data-template="oklch(75% 0.18 {value})" data-suffix="">
29
+ <input class="ui-slider ui-slider--sm" type="range" min="0" max="360" step="1" value="70" data-token="--ui-color-warning" data-template="oklch(75% 0.18 {value})" data-suffix="">
30
30
  <output>70</output>
31
31
  </div>
32
32
  <div class="demo-playground__row">
33
33
  <label>danger hue</label>
34
- <input type="range" min="0" max="360" step="1" value="25" data-token="--ui-color-danger" data-template="oklch(60% 0.22 {value})" data-suffix="">
34
+ <input class="ui-slider ui-slider--sm" type="range" min="0" max="360" step="1" value="25" data-token="--ui-color-danger" data-template="oklch(60% 0.22 {value})" data-suffix="">
35
35
  <output>25</output>
36
36
  </div>
37
37
  <div class="demo-playground__row">
38
38
  <label>neutral hue</label>
39
- <input type="range" min="0" max="360" step="1" value="250" data-token="--ui-color-neutral" data-param="hue" data-template="oklch(50% {chroma} {hue})" data-suffix="">
39
+ <input class="ui-slider ui-slider--sm" type="range" min="0" max="360" step="1" value="250" data-token="--ui-color-neutral" data-param="hue" data-template="oklch(50% {chroma} {hue})" data-suffix="">
40
40
  <output>250</output>
41
41
  </div>
42
42
  <div class="demo-playground__row">
43
43
  <label>neutral chroma</label>
44
- <input type="range" min="0" max="0.08" step="0.005" value="0.02" data-token="--ui-color-neutral" data-param="chroma" data-template="oklch(50% {chroma} {hue})" data-suffix="">
44
+ <input class="ui-slider ui-slider--sm" type="range" min="0" max="0.08" step="0.005" value="0.02" data-token="--ui-color-neutral" data-param="chroma" data-template="oklch(50% {chroma} {hue})" data-suffix="">
45
45
  <output>0.02</output>
46
46
  </div>
47
47
  <div class="demo-playground__row">
48
48
  <label>font size</label>
49
- <input type="range" min="0.75" max="1.25" step="0.05" value="1" data-token="--ui-font-size-base" data-suffix="rem">
49
+ <input class="ui-slider ui-slider--sm" type="range" min="0.75" max="1.25" step="0.05" value="1" data-token="--ui-font-size-base" data-suffix="rem">
50
50
  <output>1rem</output>
51
51
  </div>
52
52
  <div class="demo-playground__row">
53
53
  <label>font family</label>
54
- <select data-token="--ui-font-sans">
54
+ <select class="ui-select ui-select--sm" data-token="--ui-font-sans">
55
55
  <option value="system-ui, -apple-system, sans-serif">System</option>
56
56
  <option value="'Georgia', 'Times New Roman', serif">Serif</option>
57
57
  <option value="ui-monospace, sfmono-regular, monospace">Mono</option>
@@ -59,19 +59,28 @@ weight: 2
59
59
  </select>
60
60
  <output></output>
61
61
  </div>
62
+ <div class="demo-playground__row">
63
+ <label>mono font</label>
64
+ <select class="ui-select ui-select--sm" data-token="--ui-font-mono">
65
+ <option value="ui-monospace, sfmono-regular, monospace">System</option>
66
+ <option value="'Courier New', courier, monospace">Courier</option>
67
+ <option value="'Fira Code', ui-monospace, monospace">Fira Code</option>
68
+ </select>
69
+ <output></output>
70
+ </div>
62
71
  <div class="demo-playground__row">
63
72
  <label>radius</label>
64
- <input type="range" min="0" max="24" step="1" value="8" data-token="--ui-radius-base" data-suffix="px">
73
+ <input class="ui-slider ui-slider--sm" type="range" min="0" max="24" step="1" value="8" data-token="--ui-radius-base" data-suffix="px">
65
74
  <output>8px</output>
66
75
  </div>
67
76
  <div class="demo-playground__row">
68
77
  <label>shadow strength</label>
69
- <input type="range" min="0" max="40" step="1" value="20" data-token="--ui-shadow-strength" data-suffix="%">
78
+ <input class="ui-slider ui-slider--sm" type="range" min="0" max="40" step="1" value="20" data-token="--ui-shadow-strength" data-suffix="%">
70
79
  <output>20%</output>
71
80
  </div>
72
81
  <div class="demo-playground__row">
73
82
  <label>border width</label>
74
- <input type="range" min="0" max="4" step="0.5" value="1" data-token="--ui-border-width-base" data-suffix="px">
83
+ <input class="ui-slider ui-slider--sm" type="range" min="0" max="4" step="0.5" value="1" data-token="--ui-border-width-base" data-suffix="px">
75
84
  <output>1px</output>
76
85
  </div>
77
86
  <div class="ui-row ui-row--xs">
@@ -111,6 +120,18 @@ weight: 2
111
120
  <span class="ui-tag">{{ t('tag', 'Tag') }}</span>
112
121
  </div>
113
122
  </div>
123
+ <div class="ui-row ui-row--xs">
124
+ <input class="ui-slider" type="range" min="0" max="100" value="60">
125
+ <div class="ui-toggle">
126
+ <input class="ui-toggle__input" type="checkbox" checked>
127
+ <span class="ui-toggle__track"></span>
128
+ <span class="ui-toggle__thumb"></span>
129
+ </div>
130
+ </div>
131
+ <div class="ui-progress" role="progressbar" aria-valuenow="65" aria-valuemin="0" aria-valuemax="100" style="--ui-progress-value: 65%">
132
+ <div class="ui-progress__bar"></div>
133
+ </div>
134
+ <code class="ui-code">{{ t('mono_preview', 'const theme = "custom"') }}</code>
114
135
  <div class="ui-column ui-column--xs">
115
136
  <div class="ui-alert ui-alert--info">{{ t('alert_info', 'Info alert') }}</div>
116
137
  <div class="ui-alert ui-alert--success">{{ t('alert_success', 'Success alert') }}</div>
@@ -211,6 +211,7 @@ $color-text-inverse: $color-neutral-50;
211
211
  $color-bg: $color-neutral-50;
212
212
  $color-bg-subtle: $color-neutral-100;
213
213
  $color-bg-muted: $color-neutral-200;
214
+ $color-bg-inset: $color-neutral-300;
214
215
 
215
216
  $color-border: $color-neutral-200;
216
217
  $color-border-strong: $color-neutral-300;
@@ -9,6 +9,7 @@
9
9
  --ui-color-bg: light-dark(var(--ui-color-neutral-50), var(--ui-color-neutral-900));
10
10
  --ui-color-bg-subtle: light-dark(var(--ui-color-neutral-100), var(--ui-color-neutral-800));
11
11
  --ui-color-bg-muted: light-dark(var(--ui-color-neutral-200), var(--ui-color-neutral-700));
12
+ --ui-color-bg-inset: light-dark(var(--ui-color-neutral-300), var(--ui-color-neutral-600));
12
13
 
13
14
  --ui-color-border: light-dark(var(--ui-color-neutral-200), var(--ui-color-neutral-700));
14
15
  --ui-color-border-strong: light-dark(var(--ui-color-neutral-300), var(--ui-color-neutral-600));
@@ -7,7 +7,7 @@
7
7
  }
8
8
 
9
9
  .debug-grid {
10
- --debug-color: color-mix(in oklch, var(--ui-color-primary, #{t.$color-primary}) 15%, transparent);
10
+ --debug-color: color-mix(in oklch, var(--ui-color-primary, #{t.$color-primary}) 20%, transparent);
11
11
  }
12
12
 
13
13
  .debug-grid::after {
@@ -28,10 +28,10 @@
28
28
  background-position: 0 0;
29
29
  }
30
30
 
31
- // Stronger grid at row intervals
31
+ // Stronger grid at row intervals — green to contrast with blue unit grid
32
32
  .debug-grid-rows {
33
- --debug-color: color-mix(in oklch, var(--ui-color-primary, #{t.$color-primary}) 10%, transparent);
34
- --debug-color-strong: color-mix(in oklch, var(--ui-color-primary, #{t.$color-primary}) 25%, transparent);
33
+ --debug-color: color-mix(in oklch, var(--ui-color-success, #{t.$color-success}) 15%, transparent);
34
+ --debug-color-strong: color-mix(in oklch, var(--ui-color-success, #{t.$color-success}) 30%, transparent);
35
35
  }
36
36
 
37
37
  .debug-grid-rows::after {
@@ -53,9 +53,9 @@
53
53
  background-position: 0 0;
54
54
  }
55
55
 
56
- // Baseline grid only (horizontal lines)
56
+ // Baseline grid only (horizontal lines) — red to contrast with blue/green grids
57
57
  .debug-baseline {
58
- --debug-color: color-mix(in oklch, var(--ui-color-danger, #{t.$color-danger}) 20%, transparent);
58
+ --debug-color: color-mix(in oklch, var(--ui-color-danger, #{t.$color-danger}) 25%, transparent);
59
59
  }
60
60
 
61
61
  .debug-baseline::after {