@teseor/css 2.2.2 → 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teseor/css",
3
- "version": "2.2.2",
3
+ "version": "2.3.0",
4
4
  "description": "CSS library - reset, primitives, components, utilities",
5
5
  "license": "MIT",
6
6
  "author": "letanure",
@@ -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
  }
@@ -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
@@ -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
  {
@@ -15,7 +15,7 @@
15
15
  // @desc Track height
16
16
  --_track-height: var(--ui-toggle-track-height, calc(#{t.$unit} * 3));
17
17
  // @desc Track background
18
- --_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}));
19
19
  // @desc Track bg checked
20
20
  --_track-bg-checked: var(--ui-toggle-track-bg-checked, var(--ui-color-primary, #{t.$color-primary}));
21
21
  // @desc Track corner radius
@@ -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 {