@rokkit/themes 1.1.8 → 1.1.10

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 (55) hide show
  1. package/package.json +3 -3
  2. package/src/base/button.css +6 -6
  3. package/src/base/density.css +9 -0
  4. package/src/base/dropdown.css +3 -3
  5. package/src/base/grid.css +0 -35
  6. package/src/base/input.css +9 -0
  7. package/src/base/menu.css +3 -3
  8. package/src/base/palette-manager.css +30 -77
  9. package/src/base/pill.css +3 -4
  10. package/src/base/progress.css +0 -2
  11. package/src/base/range.css +2 -1
  12. package/src/base/rating.css +0 -8
  13. package/src/base/select.css +3 -3
  14. package/src/base/switch.css +16 -0
  15. package/src/base/table.css +0 -15
  16. package/src/base/toggle.css +9 -9
  17. package/src/base/tooltip.css +0 -12
  18. package/src/frosted/grid.css +26 -0
  19. package/src/frosted/index.css +6 -0
  20. package/src/frosted/palette-manager.css +97 -0
  21. package/src/frosted/pill.css +17 -0
  22. package/src/frosted/progress.css +13 -0
  23. package/src/frosted/rating.css +13 -0
  24. package/src/frosted/table.css +10 -0
  25. package/src/frosted/tooltip.css +7 -0
  26. package/src/material/grid.css +26 -0
  27. package/src/material/index.css +6 -0
  28. package/src/material/palette-manager.css +97 -0
  29. package/src/material/pill.css +17 -0
  30. package/src/material/progress.css +13 -0
  31. package/src/material/rating.css +13 -0
  32. package/src/material/table.css +10 -0
  33. package/src/material/tooltip.css +7 -0
  34. package/src/minimal/grid.css +26 -0
  35. package/src/minimal/index.css +6 -0
  36. package/src/minimal/palette-manager.css +97 -0
  37. package/src/minimal/pill.css +17 -0
  38. package/src/minimal/progress.css +13 -0
  39. package/src/minimal/rating.css +13 -0
  40. package/src/minimal/table.css +10 -0
  41. package/src/minimal/tooltip.css +7 -0
  42. package/src/rokkit/index.css +4 -0
  43. package/src/rokkit/palette-manager.css +97 -0
  44. package/src/rokkit/pill.css +17 -0
  45. package/src/rokkit/progress.css +13 -0
  46. package/src/rokkit/rating.css +13 -0
  47. package/src/rokkit/table.css +10 -0
  48. package/src/zen-sumi/grid.css +26 -0
  49. package/src/zen-sumi/index.css +6 -0
  50. package/src/zen-sumi/palette-manager.css +97 -0
  51. package/src/zen-sumi/pill.css +17 -0
  52. package/src/zen-sumi/progress.css +13 -0
  53. package/src/zen-sumi/rating.css +13 -0
  54. package/src/zen-sumi/table.css +10 -0
  55. package/src/zen-sumi/tooltip.css +7 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rokkit/themes",
3
- "version": "1.1.8",
3
+ "version": "1.1.10",
4
4
  "description": "Theme styles for @rokkit/ui components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -103,10 +103,10 @@
103
103
  "build": "bun run build.mjs"
104
104
  },
105
105
  "dependencies": {
106
- "@rokkit/core": "1.1.8"
106
+ "@rokkit/core": "1.1.10"
107
107
  },
108
108
  "devDependencies": {
109
- "@rokkit/unocss": "1.1.8",
109
+ "@rokkit/unocss": "1.1.10",
110
110
  "magic-string": "^0.30.21",
111
111
  "unocss": "^66.5.1"
112
112
  },
@@ -67,14 +67,14 @@
67
67
 
68
68
  /* Small */
69
69
  [data-button][data-size='sm'] {
70
- height: 1.75rem;
70
+ height: var(--control-h-sm);
71
71
  padding-inline: 0.625rem;
72
72
  font-size: 0.75rem;
73
73
  gap: 0.375rem;
74
74
  }
75
75
 
76
76
  [data-button][data-size='sm'][data-icon-only] {
77
- width: 1.75rem;
77
+ width: var(--control-h-sm);
78
78
  }
79
79
 
80
80
  [data-button][data-size='sm'] [data-item-icon],
@@ -85,7 +85,7 @@
85
85
  /* Medium (default) — responds to density */
86
86
  [data-button][data-size='md'],
87
87
  [data-button]:not([data-size]) {
88
- height: calc(var(--density-icon-size) + var(--density-spacing-sm) * 2);
88
+ height: var(--control-h-md);
89
89
  padding-inline: var(--density-spacing-lg);
90
90
  font-size: 0.875rem;
91
91
  gap: var(--density-spacing-sm);
@@ -93,7 +93,7 @@
93
93
 
94
94
  [data-button][data-size='md'][data-icon-only],
95
95
  [data-button]:not([data-size])[data-icon-only] {
96
- width: calc(var(--density-icon-size) + var(--density-spacing-sm) * 2);
96
+ width: var(--control-h-md);
97
97
  }
98
98
 
99
99
  [data-button][data-size='md'] [data-item-icon],
@@ -105,14 +105,14 @@
105
105
 
106
106
  /* Large */
107
107
  [data-button][data-size='lg'] {
108
- height: 2.75rem;
108
+ height: var(--control-h-lg);
109
109
  padding-inline: 1.5rem;
110
110
  font-size: 1rem;
111
111
  gap: 0.625rem;
112
112
  }
113
113
 
114
114
  [data-button][data-size='lg'][data-icon-only] {
115
- width: 2.75rem;
115
+ width: var(--control-h-lg);
116
116
  }
117
117
 
118
118
  [data-button][data-size='lg'] [data-item-icon],
@@ -7,6 +7,15 @@
7
7
  * Axes: compact → comfortable (default) → cozy
8
8
  */
9
9
 
10
+ /* Control heights — fixed scale (rem, so they track font-size). Density drives
11
+ internal spacing/padding/typography, NOT the control height, so same-size
12
+ controls (button, select, dropdown, menu, toggle, input) always align. */
13
+ :root {
14
+ --control-h-sm: 1.75rem;
15
+ --control-h-md: 2.25rem;
16
+ --control-h-lg: 2.75rem;
17
+ }
18
+
10
19
  :root,
11
20
  [data-density='comfortable'] {
12
21
  --density-spacing-base: 1rem;
@@ -47,20 +47,20 @@
47
47
 
48
48
  /* Size variants */
49
49
  [data-dropdown][data-size='sm'] [data-dropdown-trigger] {
50
- height: 1.5rem;
50
+ height: var(--control-h-sm);
51
51
  padding-inline: 0.5rem;
52
52
  font-size: 0.75rem;
53
53
  }
54
54
 
55
55
  [data-dropdown][data-size='md'] [data-dropdown-trigger],
56
56
  [data-dropdown]:not([data-size]) [data-dropdown-trigger] {
57
- height: calc(var(--density-icon-size) + var(--density-spacing-xs) * 2);
57
+ height: var(--control-h-md);
58
58
  padding-inline: var(--density-spacing-md);
59
59
  font-size: 0.875rem;
60
60
  }
61
61
 
62
62
  [data-dropdown][data-size='lg'] [data-dropdown-trigger] {
63
- height: 2.5rem;
63
+ height: var(--control-h-lg);
64
64
  padding-inline: 0.75rem;
65
65
  font-size: 1rem;
66
66
  }
package/src/base/grid.css CHANGED
@@ -91,38 +91,3 @@
91
91
  [data-grid][data-size='lg'] [data-grid-item] [data-item-icon] {
92
92
  font-size: 2rem;
93
93
  }
94
-
95
- /* =============================================================================
96
- Default Colors (flipping named tokens — applies to every style)
97
- Mirrors rokkit/grid.css using raw var(--token) so non-rokkit styles
98
- inherit tile borders, hover/focus, active selection, and icon tinting.
99
- ============================================================================= */
100
-
101
- [data-grid-item] {
102
- border-color: var(--paper-edge);
103
- color: var(--ink-mute);
104
- }
105
-
106
- [data-grid-item]:hover:not(:disabled):not([data-disabled]),
107
- [data-grid-item]:focus:not(:disabled):not([data-disabled]) {
108
- border-color: var(--ink-soft);
109
- background: var(--paper-mute);
110
- color: var(--ink);
111
- }
112
-
113
- [data-grid-item][data-active] {
114
- border-color: var(--primary);
115
- color: var(--primary);
116
- }
117
-
118
- [data-grid-item] [data-item-icon] {
119
- color: var(--ink-soft);
120
- }
121
-
122
- [data-grid-item]:hover:not(:disabled):not([data-disabled]) [data-item-icon] {
123
- color: var(--ink-mute);
124
- }
125
-
126
- [data-grid-item][data-active] [data-item-icon] {
127
- color: var(--primary);
128
- }
@@ -169,6 +169,11 @@ button[data-form-reset]:disabled {
169
169
  [data-input-root] [data-select] [data-select-trigger] {
170
170
  @apply flex-1 self-stretch;
171
171
  min-width: 0;
172
+ /* Fill the field (via self-stretch) instead of imposing the standalone control
173
+ height — so a control embedded in a form field is the same height as a plain
174
+ field (the wrapper owns the height). Any control embedded in [data-input-root]
175
+ should follow this contract. */
176
+ height: auto;
172
177
  }
173
178
 
174
179
  /* Checkbox icon */
@@ -201,6 +206,10 @@ button[data-form-reset]:disabled {
201
206
  /* Input wrapper: horizontal for input + icon */
202
207
  [data-input-root] {
203
208
  @apply flex flex-row items-center;
209
+ /* Align to the shared control-height scale so a text field lines up with
210
+ buttons/selects/etc. at the default (md) size. min-height (not height) so
211
+ a textarea still grows past one line. */
212
+ min-height: var(--control-h-md);
204
213
  }
205
214
 
206
215
  /* Input elements fill available width */
package/src/base/menu.css CHANGED
@@ -48,20 +48,20 @@
48
48
 
49
49
  /* Size variants */
50
50
  [data-menu][data-size='sm'] [data-menu-trigger] {
51
- height: 1.5rem;
51
+ height: var(--control-h-sm);
52
52
  padding-inline: 0.5rem;
53
53
  font-size: 0.75rem;
54
54
  }
55
55
 
56
56
  [data-menu][data-size='md'] [data-menu-trigger],
57
57
  [data-menu]:not([data-size]) [data-menu-trigger] {
58
- height: calc(var(--density-icon-size) + var(--density-spacing-xs) * 2);
58
+ height: var(--control-h-md);
59
59
  padding-inline: var(--density-spacing-md);
60
60
  font-size: 0.875rem;
61
61
  }
62
62
 
63
63
  [data-menu][data-size='lg'] [data-menu-trigger] {
64
- height: 2.5rem;
64
+ height: var(--control-h-lg);
65
65
  padding-inline: 0.75rem;
66
66
  font-size: 1rem;
67
67
  }
@@ -1,9 +1,15 @@
1
1
  /**
2
- * PaletteManager — Base structural styles + flipping default colors.
2
+ * PaletteManager — Base STRUCTURAL styles only.
3
3
  *
4
- * Uses raw var(--token) named tokens (complete colors that flip under
5
- * [data-mode="dark"]) so the component is usable in every theme without a
6
- * dedicated theme layer. Structure first, readable colors second.
4
+ * Headless base: this file owns layout/structure (display, flex/grid, gap,
5
+ * padding, sizing, border-width/style, border-radius, font metrics, cursor,
6
+ * transition, overflow, etc.). All COLOR (background/text/border-color, focus
7
+ * ring color, placeholder color) lives in the per-style theme layers
8
+ * (rokkit / minimal / material / frosted / zen-sumi) via @apply token classes.
9
+ *
10
+ * The shade-swatch background uses the component-supplied inline
11
+ * `--preset-color` variable — that is component-driven, not a theme token, so
12
+ * it stays here.
7
13
  *
8
14
  * Parts (from PaletteManager.svelte):
9
15
  * data-palette-manager / data-compact — root container
@@ -28,10 +34,9 @@
28
34
  flex-direction: column;
29
35
  gap: 1rem;
30
36
  padding: 1rem;
31
- border: 1px solid var(--paper-edge);
37
+ border-width: 1px;
38
+ border-style: solid;
32
39
  border-radius: var(--radius-md, 0.375rem);
33
- background-color: var(--paper);
34
- color: var(--ink);
35
40
  font-size: 0.875rem;
36
41
  }
37
42
 
@@ -52,7 +57,6 @@
52
57
  font-weight: 600;
53
58
  text-transform: uppercase;
54
59
  letter-spacing: 0.05em;
55
- color: var(--ink-mute);
56
60
  }
57
61
 
58
62
  /* =============================================================================
@@ -70,10 +74,9 @@
70
74
  align-items: center;
71
75
  gap: 0.5rem;
72
76
  padding: 0.375rem 0.625rem;
73
- border: 1px solid var(--paper-edge);
77
+ border-width: 1px;
78
+ border-style: solid;
74
79
  border-radius: var(--radius-md, 0.375rem);
75
- background-color: var(--paper-soft);
76
- color: var(--ink);
77
80
  font-size: 0.8125rem;
78
81
  cursor: pointer;
79
82
  transition:
@@ -82,21 +85,13 @@
82
85
  color 150ms ease;
83
86
  }
84
87
 
85
- [data-palette-preset]:hover {
86
- background-color: var(--paper-mute);
87
- }
88
-
89
- [data-palette-preset][data-active] {
90
- border-color: var(--primary);
91
- color: var(--primary);
92
- }
93
-
94
88
  [data-palette-preset-swatch] {
95
89
  width: 1rem;
96
90
  height: 1rem;
97
91
  flex-shrink: 0;
98
92
  border-radius: 9999px;
99
- border: 1px solid var(--paper-edge);
93
+ border-width: 1px;
94
+ border-style: solid;
100
95
  background-color: var(--preset-color, var(--primary));
101
96
  }
102
97
 
@@ -116,10 +111,9 @@
116
111
 
117
112
  [data-palette-custom-item] {
118
113
  padding: 0.375rem 0.625rem;
119
- border: 1px solid var(--paper-edge);
114
+ border-width: 1px;
115
+ border-style: solid;
120
116
  border-radius: var(--radius-md, 0.375rem);
121
- background-color: var(--paper-soft);
122
- color: var(--ink-mute);
123
117
  font-size: 0.8125rem;
124
118
  cursor: pointer;
125
119
  transition:
@@ -128,16 +122,6 @@
128
122
  color 150ms ease;
129
123
  }
130
124
 
131
- [data-palette-custom-item]:hover {
132
- background-color: var(--paper-mute);
133
- color: var(--ink);
134
- }
135
-
136
- [data-palette-custom-item][data-active] {
137
- border-color: var(--primary);
138
- color: var(--primary);
139
- }
140
-
141
125
  /* =============================================================================
142
126
  Editor / role rows
143
127
  ============================================================================= */
@@ -158,7 +142,6 @@
158
142
  flex: 0 0 6rem;
159
143
  font-size: 0.8125rem;
160
144
  font-weight: 500;
161
- color: var(--ink);
162
145
  }
163
146
 
164
147
  [data-palette-role-controls] {
@@ -174,23 +157,18 @@
174
157
  [data-palette-color-select],
175
158
  [data-palette-color-input] {
176
159
  padding: 0.3125rem 0.5rem;
177
- border: 1px solid var(--paper-edge);
160
+ border-width: 1px;
161
+ border-style: solid;
178
162
  border-radius: var(--radius-md, 0.375rem);
179
- background-color: var(--paper-soft);
180
- color: var(--ink);
181
163
  font-size: 0.8125rem;
182
164
  line-height: 1.2;
183
165
  }
184
166
 
185
- [data-palette-color-input]::placeholder {
186
- color: var(--ink-faint);
187
- }
188
-
189
167
  [data-palette-color-select]:focus-visible,
190
168
  [data-palette-color-input]:focus-visible {
191
- outline: 2px solid var(--primary);
169
+ outline-width: 2px;
170
+ outline-style: solid;
192
171
  outline-offset: 1px;
193
- border-color: var(--primary);
194
172
  }
195
173
 
196
174
  [data-palette-hex-toggle] {
@@ -200,21 +178,15 @@
200
178
  width: 1.75rem;
201
179
  height: 1.75rem;
202
180
  padding: 0;
203
- border: 1px solid var(--paper-edge);
181
+ border-width: 1px;
182
+ border-style: solid;
204
183
  border-radius: var(--radius-md, 0.375rem);
205
- background-color: var(--paper-soft);
206
- color: var(--ink-mute);
207
184
  cursor: pointer;
208
185
  transition:
209
186
  background-color 150ms ease,
210
187
  color 150ms ease;
211
188
  }
212
189
 
213
- [data-palette-hex-toggle]:hover {
214
- background-color: var(--paper-mute);
215
- color: var(--ink);
216
- }
217
-
218
190
  /* =============================================================================
219
191
  Shade ramp
220
192
  ============================================================================= */
@@ -224,7 +196,8 @@
224
196
  margin-left: auto;
225
197
  border-radius: var(--radius-md, 0.375rem);
226
198
  overflow: hidden;
227
- border: 1px solid var(--paper-edge);
199
+ border-width: 1px;
200
+ border-style: solid;
228
201
  }
229
202
 
230
203
  [data-palette-shade] {
@@ -260,32 +233,12 @@
260
233
 
261
234
  /* Save = secondary / outlined */
262
235
  [data-palette-save] {
263
- border: 1px solid var(--paper-edge);
264
- background-color: var(--paper-soft);
265
- color: var(--ink-mute);
266
- }
267
-
268
- [data-palette-save]:hover {
269
- background-color: var(--paper-mute);
270
- color: var(--ink);
236
+ border-width: 1px;
237
+ border-style: solid;
271
238
  }
272
239
 
273
240
  /* Apply = primary action */
274
241
  [data-palette-apply] {
275
- border: 1px solid var(--primary);
276
- background-color: var(--primary);
277
- color: var(--on-primary);
278
- }
279
-
280
- [data-palette-apply]:hover {
281
- background-color: var(--primary-soft);
282
- border-color: var(--primary-soft);
283
- }
284
-
285
- /* Icon glyphs follow their button's text color */
286
- [data-palette-presets-icon],
287
- [data-palette-hex-icon],
288
- [data-palette-save-icon],
289
- [data-palette-check-icon] {
290
- color: inherit;
242
+ border-width: 1px;
243
+ border-style: solid;
291
244
  }
package/src/base/pill.css CHANGED
@@ -11,8 +11,9 @@
11
11
  white-space: nowrap;
12
12
  outline: none;
13
13
  vertical-align: middle;
14
- background: var(--paper-mute);
15
- color: var(--ink);
14
+ /* Align to the smallest control rung (pills are the compact end of the family);
15
+ min-height so content can still grow. */
16
+ min-height: var(--control-h-sm);
16
17
  }
17
18
 
18
19
  [data-pill-icon] {
@@ -37,7 +38,6 @@
37
38
  border-radius: 9999px;
38
39
  cursor: pointer;
39
40
  background: transparent;
40
- color: var(--ink-soft);
41
41
  opacity: 0.6;
42
42
  transition:
43
43
  opacity 0.15s ease,
@@ -48,7 +48,6 @@
48
48
 
49
49
  [data-pill-remove]:hover {
50
50
  opacity: 1;
51
- color: var(--ink);
52
51
  }
53
52
 
54
53
  [data-pill-remove]:disabled {
@@ -6,14 +6,12 @@
6
6
  height: 0.5rem;
7
7
  border-radius: 9999px;
8
8
  overflow: hidden;
9
- background: var(--paper-mute);
10
9
  }
11
10
 
12
11
  [data-progress-bar] {
13
12
  height: 100%;
14
13
  border-radius: 9999px;
15
14
  transition: width 0.3s ease;
16
- background: var(--primary);
17
15
  }
18
16
 
19
17
  [data-progress][data-indeterminate] [data-progress-bar] {
@@ -13,7 +13,8 @@
13
13
  position: relative;
14
14
  display: grid;
15
15
  grid-template-rows: auto auto;
16
- height: 2.5rem;
16
+ /* Align to the shared control-height scale (no size prop → md). */
17
+ height: var(--control-h-md);
17
18
  user-select: none;
18
19
  }
19
20
 
@@ -40,11 +40,3 @@
40
40
  [data-rating-item][data-filled] {
41
41
  opacity: 1;
42
42
  }
43
-
44
- [data-rating-icon] {
45
- color: var(--ink-faint);
46
- }
47
-
48
- [data-rating-item][data-filled] [data-rating-icon] {
49
- color: var(--warning);
50
- }
@@ -49,20 +49,20 @@
49
49
 
50
50
  /* Size variants */
51
51
  [data-select][data-size='sm'] [data-select-trigger] {
52
- height: 1.75rem;
52
+ height: var(--control-h-sm);
53
53
  padding-inline: 0.5rem;
54
54
  font-size: 0.75rem;
55
55
  }
56
56
 
57
57
  [data-select][data-size='md'] [data-select-trigger],
58
58
  [data-select]:not([data-size]) [data-select-trigger] {
59
- height: 2.25rem;
59
+ height: var(--control-h-md);
60
60
  padding-inline: 0.75rem;
61
61
  font-size: 0.875rem;
62
62
  }
63
63
 
64
64
  [data-select][data-size='lg'] [data-select-trigger] {
65
- height: 2.75rem;
65
+ height: var(--control-h-lg);
66
66
  padding-inline: 1rem;
67
67
  font-size: 1rem;
68
68
  }
@@ -30,6 +30,22 @@
30
30
  cursor: not-allowed;
31
31
  }
32
32
 
33
+ /* Bounding height aligns to the shared control scale (so a switch lines up with
34
+ buttons/inputs/etc. in a row); the track/thumb keep their geometry, centered
35
+ via align-items: center. */
36
+ [data-switch][data-switch-size='sm'] {
37
+ min-height: var(--control-h-sm);
38
+ }
39
+
40
+ [data-switch][data-switch-size='md'],
41
+ [data-switch]:not([data-switch-size]) {
42
+ min-height: var(--control-h-md);
43
+ }
44
+
45
+ [data-switch][data-switch-size='lg'] {
46
+ min-height: var(--control-h-lg);
47
+ }
48
+
33
49
  /* =============================================================================
34
50
  Track
35
51
  ============================================================================= */
@@ -92,21 +92,6 @@
92
92
  outline: none;
93
93
  }
94
94
 
95
- /* Default state colors (flipping named tokens — applies to every style).
96
- data-focused = keyboard-focused row (Table + TreeTable emit it as a bare
97
- attribute). data-group = synthesised group row in TreeTable. Scoped under
98
- [data-table] so the bare attribute selectors don't bleed into other
99
- components. Selected/hover remain owned by per-style theme CSS. */
100
- [data-table] tr[data-table-row][data-focused] {
101
- background: var(--paper-mute);
102
- }
103
-
104
- [data-table] tr[data-table-row][data-group] {
105
- background: var(--paper-soft);
106
- color: var(--ink);
107
- font-weight: 500;
108
- }
109
-
110
95
  /* =============================================================================
111
96
  Cells
112
97
  ============================================================================= */
@@ -65,7 +65,7 @@
65
65
 
66
66
  /* Small */
67
67
  [data-toggle][data-toggle-size='sm'] [data-toggle-option] {
68
- height: 1.5rem;
68
+ height: var(--control-h-sm);
69
69
  font-size: 0.75rem;
70
70
  gap: 0.25rem;
71
71
  }
@@ -85,7 +85,7 @@
85
85
  /* Medium (default) */
86
86
  [data-toggle][data-toggle-size='md'] [data-toggle-option],
87
87
  [data-toggle]:not([data-toggle-size]) [data-toggle-option] {
88
- height: 2rem;
88
+ height: var(--control-h-md);
89
89
  font-size: 0.875rem;
90
90
  gap: 0.375rem;
91
91
  }
@@ -107,7 +107,7 @@
107
107
 
108
108
  /* Large */
109
109
  [data-toggle][data-toggle-size='lg'] [data-toggle-option] {
110
- height: 2.5rem;
110
+ height: var(--control-h-lg);
111
111
  font-size: 1rem;
112
112
  gap: 0.5rem;
113
113
  }
@@ -169,17 +169,17 @@
169
169
 
170
170
  /* Square control sized to match the option height scale */
171
171
  [data-toggle][data-toggle-variant='button'][data-toggle-size='sm'] {
172
- height: 1.5rem;
173
- min-width: 1.5rem;
172
+ height: var(--control-h-sm);
173
+ min-width: var(--control-h-sm);
174
174
  }
175
175
 
176
176
  [data-toggle][data-toggle-variant='button'][data-toggle-size='md'],
177
177
  [data-toggle][data-toggle-variant='button']:not([data-toggle-size]) {
178
- height: 2rem;
179
- min-width: 2rem;
178
+ height: var(--control-h-md);
179
+ min-width: var(--control-h-md);
180
180
  }
181
181
 
182
182
  [data-toggle][data-toggle-variant='button'][data-toggle-size='lg'] {
183
- height: 2.5rem;
184
- min-width: 2.5rem;
183
+ height: var(--control-h-lg);
184
+ min-width: var(--control-h-lg);
185
185
  }
@@ -62,15 +62,3 @@
62
62
  visibility: visible;
63
63
  opacity: 1;
64
64
  }
65
-
66
- /* =============================================================================
67
- Default Colors (flipping named tokens — applies to every style)
68
- Tooltips are inverse: dark bubble on light text. Mirrors rokkit/tooltip.css
69
- using raw var(--token). The component renders no arrow element, so only the
70
- bubble (data-tooltip-content) is colored.
71
- ============================================================================= */
72
-
73
- [data-tooltip-content] {
74
- background: var(--ink);
75
- color: var(--paper);
76
- }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Grid - Glass Theme Styles
3
+ *
4
+ * Tile borders, hover/focus effects, selection highlight.
5
+ */
6
+
7
+ [data-style='frosted'] [data-grid-item] {
8
+ @apply border-paper-edge text-ink-mute;
9
+ }
10
+
11
+ [data-style='frosted'] [data-grid-item]:hover:not(:disabled):not([data-disabled]),
12
+ [data-style='frosted'] [data-grid-item]:focus:not(:disabled):not([data-disabled]) {
13
+ @apply border-ink-soft bg-paper-mute text-ink;
14
+ }
15
+
16
+ [data-style='frosted'] [data-grid-item][data-active] {
17
+ @apply border-primary text-primary;
18
+ }
19
+
20
+ [data-style='frosted'] [data-grid-item] [data-item-icon] {
21
+ @apply text-ink-soft;
22
+ }
23
+
24
+ [data-style='frosted'] [data-grid-item][data-active] [data-item-icon] {
25
+ @apply text-primary;
26
+ }
@@ -18,6 +18,8 @@
18
18
  @import './dropdown.css';
19
19
  @import './floating-action.css';
20
20
  @import './table.css';
21
+ @import './grid.css';
22
+ @import './tooltip.css';
21
23
  @import './search-filter.css';
22
24
  @import './range.css';
23
25
  @import './timeline.css';
@@ -31,3 +33,7 @@
31
33
  @import './step-indicator.css';
32
34
  @import './chart.css';
33
35
  @import './swatch.css';
36
+ @import './palette-manager.css';
37
+ @import './progress.css';
38
+ @import './pill.css';
39
+ @import './rating.css';