@sylwellsoftware/fray 0.5.0 → 0.7.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 (75) hide show
  1. package/README.md +198 -30
  2. package/colors/README.md +28 -13
  3. package/colors/gray/colors.css +54 -26
  4. package/colors/green/colors.css +54 -26
  5. package/colors/iceblue/colors.css +54 -26
  6. package/colors/ocean/colors.css +54 -26
  7. package/colors/orange/colors.css +54 -26
  8. package/colors/purple/colors.css +54 -26
  9. package/colors/red/colors.css +54 -26
  10. package/colors/yellow/colors.css +54 -26
  11. package/dist/Components/component.d.ts.map +1 -1
  12. package/dist/Components/data/descriptionList.d.ts.map +1 -1
  13. package/dist/Components/data/listview/listview.d.ts.map +1 -1
  14. package/dist/Components/data/table/DataTable.d.ts.map +1 -1
  15. package/dist/Components/data/table/FilterPanel.d.ts.map +1 -1
  16. package/dist/Components/data/table/TableHeaderCell.d.ts.map +1 -1
  17. package/dist/Components/data/treeview/treeview.d.ts.map +1 -1
  18. package/dist/Components/dialog/dialog.d.ts.map +1 -1
  19. package/dist/Components/layout/panel.d.ts +0 -1
  20. package/dist/Components/layout/panel.d.ts.map +1 -1
  21. package/dist/Components/layout/sidebar.d.ts +0 -1
  22. package/dist/Components/layout/sidebar.d.ts.map +1 -1
  23. package/dist/Components/layout/tabpanel/tab.d.ts +2 -0
  24. package/dist/Components/layout/tabpanel/tab.d.ts.map +1 -1
  25. package/dist/Components/layout/tabpanel/tabline.d.ts.map +1 -1
  26. package/dist/Components/layout/tabpanel/tabpanel.d.ts +9 -1
  27. package/dist/Components/layout/tabpanel/tabpanel.d.ts.map +1 -1
  28. package/dist/Components/lineinputs/checkbox/Checkbox.d.ts +0 -1
  29. package/dist/Components/lineinputs/checkbox/Checkbox.d.ts.map +1 -1
  30. package/dist/Components/lineinputs/dropdown.d.ts.map +1 -1
  31. package/dist/Components/lineinputs/radio.d.ts +51 -0
  32. package/dist/Components/lineinputs/radio.d.ts.map +1 -0
  33. package/dist/Components/lineinputs/textbox.d.ts.map +1 -1
  34. package/dist/Components/lineinputs/toggle.d.ts.map +1 -1
  35. package/dist/Components/menu/toolbar.d.ts +0 -1
  36. package/dist/Components/menu/toolbar.d.ts.map +1 -1
  37. package/dist/Components/status/progressBar.d.ts.map +1 -1
  38. package/dist/Components/theme/stylesheetPicker.d.ts.map +1 -1
  39. package/dist/index.d.ts +8 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +2485 -1456
  42. package/dist/index.js.map +1 -1
  43. package/dist/{jsx-dev-runtime-pzseD2Sz.js → jsx-dev-runtime-Kf1Dhu-y.js} +412 -469
  44. package/dist/jsx-dev-runtime-Kf1Dhu-y.js.map +1 -0
  45. package/dist/jsx-dev-runtime.js +1 -1
  46. package/dist/jsx-runtime.js +1 -1
  47. package/dist/routing/RouteLink.d.ts +17 -0
  48. package/dist/routing/RouteLink.d.ts.map +1 -0
  49. package/dist/routing/RouteQuery.d.ts +18 -0
  50. package/dist/routing/RouteQuery.d.ts.map +1 -0
  51. package/dist/routing/RouteScope.d.ts +17 -0
  52. package/dist/routing/RouteScope.d.ts.map +1 -0
  53. package/dist/routing/RouteValue.d.ts +18 -0
  54. package/dist/routing/RouteValue.d.ts.map +1 -0
  55. package/dist/routing/navigationAdapter.d.ts +33 -0
  56. package/dist/routing/navigationAdapter.d.ts.map +1 -0
  57. package/dist/routing/route.d.ts +64 -0
  58. package/dist/routing/route.d.ts.map +1 -0
  59. package/dist/routing/router.d.ts +109 -0
  60. package/dist/routing/router.d.ts.map +1 -0
  61. package/dist/runtime.d.ts +5 -0
  62. package/dist/runtime.d.ts.map +1 -1
  63. package/dist/styling/baseStyleDefinitions.d.ts +0 -82
  64. package/dist/styling/baseStyleDefinitions.d.ts.map +1 -1
  65. package/dist/styling/theme.d.ts +3 -3
  66. package/dist/styling/theme.d.ts.map +1 -1
  67. package/package.json +3 -3
  68. package/styles/structural.css +220 -429
  69. package/themes/README.md +68 -66
  70. package/themes/dark.css +60 -1
  71. package/themes/java/theme.css +422 -135
  72. package/themes/light.css +60 -1
  73. package/themes/minimal/theme.css +420 -125
  74. package/themes/shiny/theme.css +492 -294
  75. package/dist/jsx-dev-runtime-pzseD2Sz.js.map +0 -1
@@ -1,128 +1,423 @@
1
1
  @charset "utf-8";
2
2
 
3
- :where(:root), [data-fray-theme="minimal"] {
4
- color-scheme: light;
5
- --fray-font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
6
- --fray-font-size: 0.875rem;
7
- --fray-line-height: 1.25;
8
- --fray-control-min-height: 2rem;
9
- --fray-space-xs: 0.25rem;
10
- --fray-space-sm: 0.5rem;
11
- --fray-space-md: 1rem;
12
- --fray-space-lg: 1.5rem;
13
- --fray-radius-sm: 0.2rem;
14
- --fray-radius-md: 0.375rem;
15
- --fray-radius-lg: 0.5rem;
16
- --fray-motion-fast: 120ms;
17
-
18
- --fray-ui-background: var(--fray-color-surface);
19
- --fray-ui-color: var(--fray-color-text);
20
- --fray-ui-border: 1px solid var(--fray-color-border);
21
- --fray-ui-shadow: none;
22
- --fray-focus-ring: 0 0 0 2px var(--fray-color-focus);
23
-
24
- --fray-panel-background: var(--fray-color-surface);
25
- --fray-panel-color: var(--fray-color-text);
26
- --fray-panel-border: 1px solid var(--fray-color-border);
27
- --fray-panel-shadow: none;
28
- --fray-panel-radius: var(--fray-radius-md);
29
- --fray-dialog-shadow: 0 1.25rem 4rem color-mix(in srgb, var(--fray-color-shadow) 35%, transparent);
30
- --fray-dialog-backdrop-background: color-mix(in srgb, var(--fray-color-shadow) 55%, transparent);
31
-
32
- --fray-header-background: var(--fray-color-surface-muted);
33
- --fray-header-color: var(--fray-color-text);
34
- --fray-header-border: 0 solid transparent;
35
- --fray-header-shadow: none;
36
- --fray-table-header-background: var(--fray-color-surface-muted);
37
-
38
- --fray-button-background: var(--fray-color-surface-muted);
39
- --fray-button-background-hover: var(--fray-color-primary-soft);
40
- --fray-button-background-active: var(--fray-color-primary);
41
- --fray-button-background-disabled: var(--fray-color-disabled);
42
- --fray-button-color: var(--fray-color-text);
43
- --fray-button-border: 1px solid var(--fray-color-border-strong);
44
- --fray-button-shadow: none;
45
- --fray-button-shadow-active: none;
46
-
47
- --fray-input-background: var(--fray-color-surface-raised);
48
- --fray-input-color: var(--fray-color-text);
49
- --fray-input-border: 1px solid var(--fray-color-border-strong);
50
- --fray-input-shadow: none;
51
- --fray-input-background-disabled: var(--fray-color-disabled);
52
- --fray-input-color-disabled: var(--fray-color-on-disabled);
53
-
54
- --fray-selection-background: var(--fray-color-selection);
55
- --fray-selection-color: var(--fray-color-on-selection);
56
- --fray-row-hover-background: var(--fray-color-primary-soft);
57
- --fray-table-row-background: var(--fray-color-surface);
58
- --fray-table-row-alt-background: var(--fray-color-surface-muted);
59
-
60
- --fray-checkbox-box-background: var(--fray-color-surface-raised);
61
- --fray-checkbox-box-background-checked: var(--fray-color-selection);
62
- --fray-checkbox-box-border: 1px solid var(--fray-color-border-strong);
63
- --fray-checkbox-symbol-color: var(--fray-color-on-selection);
64
- --fray-radio-background: var(--fray-button-background);
65
- --fray-radio-background-checked: var(--fray-selection-background);
66
-
67
- --fray-toolbar-background: var(--fray-color-surface-muted);
68
- --fray-toolbar-color: var(--fray-color-text);
69
- --fray-toolbar-border: 0 solid transparent;
70
- --fray-toolbar-shadow: none;
71
- --fray-tabline-background: var(--fray-color-surface-muted);
72
- --fray-tab-active-background: var(--fray-color-surface);
73
- --fray-progress-track-background: var(--fray-color-surface-inset);
74
- --fray-progress-value-background: var(--fray-color-primary);
75
- --fray-working-background-image: linear-gradient(-45deg, transparent 25%, color-mix(in srgb, var(--fray-color-highlight) 35%, transparent) 25% 50%, transparent 50% 75%, color-mix(in srgb, var(--fray-color-highlight) 35%, transparent) 75%);
76
-
77
- /* Legacy compatibility aliases; new components should use --fray-* names. */
78
- --base-font-size: var(--fray-font-size);
79
- --ui-font-size: var(--fray-font-size);
80
- --ui-padding: var(--fray-space-sm);
81
- --ui-padding-h: var(--fray-space-sm);
82
- --ui-padding-v: var(--fray-space-xs);
83
- --ui-border-radius: var(--fray-radius-md);
84
- --ui-text-color: var(--fray-ui-color);
85
- --ui-muted-text-color: var(--fray-color-text-muted);
86
- --ui-border-color: var(--fray-color-border);
87
- --ui-input-bg: var(--fray-input-background);
88
- --ui-input-border: var(--fray-input-border);
89
- --ui-input-bg-disabled: var(--fray-input-background-disabled);
90
- --ui-input-border-disabled: 1px solid var(--fray-color-border);
91
- --ui-input-text-color-disabled: var(--fray-input-color-disabled);
92
- --ui-accent-color: var(--fray-color-primary);
93
- --ui-accent-color-highlight: var(--fray-color-primary-soft);
94
- --input-width: 15rem;
95
- --input-shadow: var(--fray-input-shadow);
96
- --button-background: var(--fray-button-background);
97
- --button-background-hover: var(--fray-button-background-hover);
98
- --button-background-disabled: var(--fray-button-background-disabled);
99
- --button-border: var(--fray-button-border);
100
- --button-border-disabled: 1px solid var(--fray-color-border);
101
- --button-shadow: var(--fray-button-shadow);
102
- --button-color: var(--fray-button-color);
103
- --toggle-selected-bg: var(--fray-selection-background);
104
- --toggle-selected-text: var(--fray-selection-color);
105
- --panel-bg: var(--fray-panel-background);
106
- --panel-border: var(--fray-panel-border);
107
- --panel-radius: var(--fray-panel-radius);
108
- --panel-shadow: var(--fray-panel-shadow);
109
- --panel-color: var(--fray-panel-color);
110
- --panel-padding: var(--fray-space-md);
111
- --toolbar-bg: var(--fray-toolbar-background);
112
- --toolbar-border: var(--fray-toolbar-border);
113
- --toolbar-radius: var(--fray-radius-md);
114
- --toolbar-shadow: var(--fray-toolbar-shadow);
115
- --toolbar-color: var(--fray-toolbar-color);
116
- --sectionheader-bg: var(--fray-section-header-background, var(--fray-header-background));
117
- --sectionheader-shadow: var(--fray-header-shadow);
118
- --sectionheader-color: var(--fray-header-color);
119
- --tabline-bg: var(--fray-tabline-background);
120
- --tab-bg-active: var(--fray-tab-active-background);
121
- --error-color: var(--fray-color-error);
122
- --cbx-o-border: var(--fray-checkbox-box-border);
123
- --cbx-border-radius: var(--fray-radius-sm);
124
- --spacing-small: var(--fray-space-sm);
125
- --spacing-medium: var(--fray-space-md);
126
- --noselect-user-select: none;
127
- --noselect-cursor: default;
3
+ @layer theme {
4
+ :where(:root:not([data-theme]), [data-theme="minimal"]) {
5
+ color-scheme: light;
6
+ --font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
7
+ --font-size: 0.875rem;
8
+ --line-height: 1.25;
9
+ --control-min-height: 2rem;
10
+ --space-xs: 0.25rem;
11
+ --space-sm: 0.5rem;
12
+ --space-md: 1rem;
13
+ --space-lg: 1.5rem;
14
+ --radius-sm: 0.2rem;
15
+ --radius-md: 0.375rem;
16
+ --radius-lg: 0.5rem;
17
+ --motion-fast: 120ms;
18
+
19
+ --ui-background: var(--palette-neutral-50);
20
+ --ui-color: var(--palette-neutral-950);
21
+ --ui-border: 1px solid var(--palette-neutral-300);
22
+ --ui-shadow: none;
23
+ --focus-ring: 0 0 0 2px var(--palette-primary-400);
24
+ --focus-color: var(--palette-primary);
25
+ --error-color: var(--palette-red);
26
+ --error-contrast: var(--palette-contrast-light);
27
+ --success-color: var(--palette-green);
28
+
29
+ --panel-background: var(--palette-neutral-50);
30
+ --panel-color: var(--palette-neutral-950);
31
+ --panel-border: 1px solid var(--palette-neutral-300);
32
+ --panel-shadow: none;
33
+ --panel-radius: var(--radius-md);
34
+ --dialog-shadow: 0 1.25rem 4rem color-mix(in oklch, var(--palette-dark) 35%, transparent);
35
+ --dialog-backdrop-background: color-mix(in oklch, var(--palette-dark) 55%, transparent);
36
+
37
+ --header-background: var(--palette-neutral-100);
38
+ --header-color: var(--palette-neutral-950);
39
+ --header-border: 0 solid transparent;
40
+ --header-shadow: none;
41
+ --section-header-background: var(--header-background);
42
+ --section-header-color: var(--header-color);
43
+ --section-header-border: var(--header-border);
44
+ --section-header-shadow: var(--header-shadow);
45
+ --panel-header-background: var(--section-header-background);
46
+ --panel-header-color: var(--section-header-color);
47
+ --table-header-background: var(--palette-neutral-100);
48
+ --table-header-color: var(--header-color);
49
+ --dialog-header-background: var(--section-header-background);
50
+ --dialog-header-color: var(--section-header-color);
51
+
52
+ --button-background: var(--palette-neutral-100);
53
+ --button-background-hover: var(--palette-primary-100);
54
+ --button-background-active: var(--palette-primary);
55
+ --button-background-disabled: var(--palette-neutral-200);
56
+ --button-color: var(--palette-neutral-950);
57
+ --button-border: 1px solid var(--palette-neutral-500);
58
+ --button-shadow: none;
59
+ --button-shadow-active: none;
60
+ --toggle-button-background: var(--button-background);
61
+ --toggle-button-background-checked: var(--selection-background);
62
+ --tab-button-background: var(--button-background);
63
+ --tab-button-background-active: var(--tab-active-background);
64
+ --menu-button-background: var(--button-background);
65
+ --dropdown-trigger-background: var(--button-background);
66
+ --table-header-button-background: var(--button-background);
67
+
68
+ --input-background: var(--palette-light);
69
+ --input-color: var(--palette-neutral-950);
70
+ --input-border: 1px solid var(--palette-neutral-500);
71
+ --input-shadow: none;
72
+ --input-background-disabled: var(--palette-neutral-200);
73
+ --input-color-disabled: var(--palette-neutral-700);
74
+
75
+ --selection-background: var(--palette-primary);
76
+ --selection-color: var(--palette-contrast-light);
77
+ --row-hover-background: var(--palette-primary-100);
78
+ --table-row-background: var(--palette-neutral-50);
79
+ --table-row-alt-background: var(--palette-neutral-100);
80
+ --checkbox-box-background: var(--input-background);
81
+ --checkbox-box-background-checked: var(--selection-background);
82
+ --checkbox-box-border: var(--input-border);
83
+ --checkbox-symbol-color: var(--selection-color);
84
+ --radio-background: var(--button-background);
85
+ --radio-background-checked: var(--selection-background);
86
+ --toolbar-background: var(--palette-neutral-100);
87
+ --toolbar-color: var(--palette-neutral-950);
88
+ --toolbar-border: 0 solid transparent;
89
+ --toolbar-shadow: none;
90
+ --tabline-background: var(--palette-neutral-100);
91
+ --tab-active-background: var(--palette-neutral-50);
92
+ --progress-track-background: var(--palette-neutral-200);
93
+ --progress-value-background: var(--palette-primary);
94
+ --working-background-image: linear-gradient(-45deg, transparent 25%, color-mix(in oklch, var(--palette-light) 35%, transparent) 25% 50%, transparent 50% 75%, color-mix(in oklch, var(--palette-light) 35%, transparent) 75%);
95
+
96
+ --colored-base: var(--palette-primary);
97
+ --colored-light: var(--palette-primary-light);
98
+ --colored-dark: var(--palette-primary-dark);
99
+ --colored-contrast: var(--palette-contrast-light);
100
+
101
+ --base-font-size: var(--font-size);
102
+ --ui-font-size: var(--font-size);
103
+ --ui-padding: var(--space-sm);
104
+ --ui-padding-h: var(--space-sm);
105
+ --ui-padding-v: var(--space-xs);
106
+ --ui-border-radius: var(--radius-md);
107
+ --ui-text-color: var(--ui-color);
108
+ --ui-muted-text-color: var(--palette-neutral-700);
109
+ --ui-border-color: var(--palette-neutral-300);
110
+ --ui-input-bg: var(--input-background);
111
+ --ui-input-border: var(--input-border);
112
+ --ui-input-bg-disabled: var(--input-background-disabled);
113
+ --ui-input-border-disabled: 1px solid var(--palette-neutral-300);
114
+ --ui-input-text-color-disabled: var(--input-color-disabled);
115
+ --ui-accent-color: var(--palette-primary);
116
+ --ui-accent-color-highlight: var(--palette-primary-100);
117
+ --input-width: 15rem;
118
+ --button-border-disabled: 1px solid var(--palette-neutral-300);
119
+ --toggle-selected-bg: var(--selection-background);
120
+ --toggle-selected-text: var(--selection-color);
121
+ --panel-bg: var(--panel-background);
122
+ --panel-padding: var(--space-md);
123
+ --toolbar-bg: var(--toolbar-background);
124
+ --toolbar-radius: var(--radius-md);
125
+ --sectionheader-bg: var(--section-header-background);
126
+ --sectionheader-shadow: var(--section-header-shadow);
127
+ --sectionheader-color: var(--section-header-color);
128
+ --tabline-bg: var(--tabline-background);
129
+ --tab-bg-active: var(--tab-active-background);
130
+ --cbx-o-border: var(--checkbox-box-border);
131
+ --cbx-border-radius: var(--radius-sm);
132
+ --spacing-small: var(--space-sm);
133
+ --spacing-medium: var(--space-md);
134
+ --noselect-user-select: none;
135
+ --noselect-cursor: default;
136
+
137
+ font-family: var(--font-family);
138
+ font-size: var(--font-size);
139
+ line-height: var(--line-height);
140
+ color: var(--ui-color);
141
+ background: var(--ui-background);
142
+ }
143
+
144
+ @scope (:root:not([data-theme]), [data-theme="minimal"]) to ([data-theme], [data-theme-exclude]) {
145
+
146
+ :where(button, .buttonlike) {
147
+ min-height: var(--control-min-height);
148
+ padding: var(--space-xs) var(--space-sm);
149
+ color: var(--button-color);
150
+ background: var(--button-background);
151
+ border: var(--button-border);
152
+ border-radius: var(--radius-md);
153
+ box-shadow: var(--button-shadow);
154
+ font: inherit;
155
+ cursor: default;
156
+ user-select: none;
157
+ }
158
+
159
+ :where(button, .buttonlike):hover:not(:disabled, [aria-disabled="true"]) {
160
+ background: var(--button-background-hover);
161
+ }
162
+
163
+ :where(button, .buttonlike):active:not(:disabled, [aria-disabled="true"]) {
164
+ background: var(--button-background-active);
165
+ box-shadow: var(--button-shadow-active);
166
+ }
167
+
168
+ :where(button, .buttonlike):focus-visible,
169
+ :where(input, select, textarea, .inputlike):focus-visible {
170
+ outline: 2px solid transparent;
171
+ outline-offset: 1px;
172
+ box-shadow: var(--focus-ring);
173
+ }
174
+
175
+ :where(button, .buttonlike):disabled,
176
+ :where(.buttonlike[aria-disabled="true"]) {
177
+ color: var(--input-color-disabled);
178
+ background: var(--button-background-disabled);
179
+ cursor: not-allowed;
180
+ pointer-events: none;
181
+ }
182
+
183
+ :where(.buttonshell) {
184
+ border: var(--button-border);
185
+ border-radius: var(--radius-md);
186
+ box-shadow: var(--button-shadow);
187
+ }
188
+
189
+ :where(.buttoninner) {
190
+ padding: var(--space-xs) var(--space-sm);
191
+ color: var(--button-color);
192
+ background: var(--button-background);
193
+ }
194
+
195
+ :where(input:not([type="checkbox"]), select, textarea, .inputlike) {
196
+ min-height: var(--control-min-height);
197
+ padding: var(--space-xs) var(--space-sm);
198
+ color: var(--input-color);
199
+ background: var(--input-background);
200
+ border: var(--input-border);
201
+ border-radius: var(--radius-md);
202
+ box-shadow: var(--input-shadow);
203
+ box-sizing: border-box;
204
+ font: inherit;
205
+ }
206
+
207
+ :where(input:not([type="checkbox"]), select, textarea, .inputlike):disabled,
208
+ :where(.inputlike[aria-disabled="true"]) {
209
+ color: var(--input-color-disabled);
210
+ background: var(--input-background-disabled);
211
+ cursor: not-allowed;
212
+ }
213
+
214
+ :where(.inputshell) {
215
+ color: var(--input-color);
216
+ background: var(--input-background);
217
+ border: var(--input-border);
218
+ border-radius: var(--radius-sm);
219
+ box-shadow: var(--input-shadow);
220
+ }
221
+
222
+ :where(.checkboxshell) {
223
+ color: var(--input-color);
224
+ background: var(--checkbox-box-background);
225
+ border: var(--checkbox-box-border);
226
+ border-radius: var(--radius-sm);
227
+ }
228
+
229
+ :where(input[type="checkbox"]:checked + .checkboxshell) {
230
+ color: var(--checkbox-symbol-color);
231
+ background: var(--checkbox-box-background-checked);
232
+ }
233
+
234
+ :where([role="checkbox"][aria-checked="true"] .inputshell) {
235
+ color: var(--checkbox-symbol-color);
236
+ background: var(--checkbox-box-background-checked);
237
+ }
238
+
239
+ :where(.inputinner) {
240
+ padding: var(--space-xs) var(--space-sm);
241
+ color: var(--input-color);
242
+ background: var(--input-background);
243
+ }
244
+
245
+ :where(.selectshell) { position: relative; }
246
+
247
+ :where(table, textarea, [role="tree"], [role="listbox"], .datacomponentlike) {
248
+ color: var(--ui-color);
249
+ background: var(--ui-background);
250
+ border-color: var(--palette-neutral-300);
251
+ }
252
+
253
+ :where(.datacomponentshell) {
254
+ border: var(--ui-border);
255
+ border-radius: var(--panel-radius);
256
+ box-shadow: var(--ui-shadow);
257
+ }
258
+
259
+ :where(.datacomponentinner) {
260
+ padding: var(--space-sm);
261
+ color: var(--ui-color);
262
+ background: var(--ui-background);
263
+ }
264
+
265
+ :where(header, th, .headerlike) {
266
+ color: var(--header-color);
267
+ background: var(--header-background);
268
+ border: var(--header-border);
269
+ box-shadow: var(--header-shadow);
270
+ }
271
+
272
+ :where(th > button) {
273
+ color: var(--table-header-color);
274
+ background: var(--table-header-button-background);
275
+ }
276
+
277
+ :where(th) {
278
+ color: var(--table-header-color);
279
+ background: var(--table-header-background);
280
+ }
281
+
282
+ :where(dialog > header) {
283
+ color: var(--dialog-header-color);
284
+ background: var(--dialog-header-background);
285
+ }
286
+
287
+ :where(dl > div) { border-block-end: 1px solid var(--ui-border-color); }
288
+ :where(dt) {
289
+ color: var(--ui-muted-text-color);
290
+ font-weight: 600;
291
+ }
292
+
293
+ :where(.headershell) {
294
+ border: var(--header-border);
295
+ box-shadow: var(--header-shadow);
296
+ }
297
+
298
+ :where(.headerinner) {
299
+ padding: var(--space-sm);
300
+ color: var(--header-color);
301
+ background: var(--header-background);
302
+ }
303
+
304
+ :where(.panellike, aside, dialog) {
305
+ color: var(--panel-color);
306
+ background: var(--panel-background);
307
+ border: var(--panel-border);
308
+ border-radius: var(--panel-radius);
309
+ box-shadow: var(--panel-shadow);
310
+ }
311
+
312
+ :where(.panelshell) {
313
+ border: var(--panel-border);
314
+ border-radius: var(--panel-radius);
315
+ box-shadow: var(--panel-shadow);
316
+ }
317
+
318
+ :where(.panelinner) {
319
+ padding: var(--space-md);
320
+ color: var(--panel-color);
321
+ background: var(--panel-background);
322
+ }
323
+
324
+ :where(dialog)::backdrop { background: var(--dialog-backdrop-background); }
325
+ :where(dialog > footer) { border-block-start: 1px solid var(--ui-border-color); }
326
+
327
+ :where([role="toolbar"], .toolbarlike) {
328
+ color: var(--toolbar-color);
329
+ background: var(--toolbar-background);
330
+ border: var(--toolbar-border);
331
+ box-shadow: var(--toolbar-shadow);
332
+ }
333
+
334
+ :where(.toolbarshell) {
335
+ border: var(--toolbar-border);
336
+ border-radius: var(--radius-md);
337
+ box-shadow: var(--toolbar-shadow);
338
+ }
339
+
340
+ :where(.toolbarinner) {
341
+ padding: var(--space-sm);
342
+ color: var(--toolbar-color);
343
+ background: var(--toolbar-background);
344
+ }
345
+
346
+ :where(.coloredlike, .coloredshell) {
347
+ --colored-base: var(--palette-primary);
348
+ --colored-light: var(--palette-primary-light);
349
+ --colored-dark: var(--palette-primary-dark);
350
+ --colored-contrast: var(--palette-contrast-light);
351
+ color: var(--colored-contrast);
352
+ background: var(--colored-base);
353
+ border-color: color-mix(in oklch, var(--colored-dark) 72%, currentColor);
354
+ }
355
+
356
+ :where(.coloredinner) {
357
+ color: var(--colored-contrast);
358
+ background: var(--colored-base);
359
+ }
360
+
361
+ :where([aria-selected="true"], [aria-pressed="true"]) {
362
+ color: var(--selection-color);
363
+ background: var(--selection-background);
364
+ }
365
+
366
+ :where([role="tab"]) {
367
+ background: var(--tab-button-background);
368
+ border-radius: var(--radius-md) var(--radius-md) 0 0;
369
+ }
370
+ :where([role="tab"][aria-selected="true"]) {
371
+ color: var(--button-color);
372
+ background: var(--tab-button-background-active);
373
+ }
374
+ :where([role="radio"]) { background: var(--toggle-button-background); }
375
+ :where([role="radio"][aria-checked="true"]) {
376
+ color: var(--selection-color);
377
+ background: var(--toggle-button-background-checked);
378
+ }
379
+ :where([role="radiogroup"] > [role="radio"]) { border-radius: 0; }
380
+ :where([role="radiogroup"] > [role="radio"]:first-child) {
381
+ border-radius: var(--radius-md) 0 0 var(--radius-md);
382
+ }
383
+ :where([role="radiogroup"] > [role="radio"]:last-child) {
384
+ border-radius: 0 var(--radius-md) var(--radius-md) 0;
385
+ }
386
+
387
+ :where([role="option"], [role="treeitem"], tbody tr[tabindex]):hover {
388
+ background: var(--row-hover-background);
389
+ }
390
+
391
+ :where([role="option"], [role="treeitem"], tbody tr[tabindex]):focus-visible {
392
+ outline: 2px solid var(--focus-color);
393
+ outline-offset: -2px;
394
+ }
395
+
396
+ :where(tbody tr:nth-child(odd)) { background: var(--table-row-background); }
397
+ :where(tbody tr:nth-child(even)) { background: var(--table-row-alt-background); }
398
+ :where([role="alert"]) { color: var(--error-color); }
399
+
400
+ :where(progress) {
401
+ color: var(--progress-value-background);
402
+ background: var(--progress-track-background);
403
+ accent-color: var(--palette-primary);
404
+ }
405
+
406
+ @media (prefers-reduced-motion: no-preference) {
407
+ :where(dialog[open]) { animation: theme-dialog-enter var(--motion-fast) ease-out; }
408
+ }
409
+
410
+ @keyframes theme-dialog-enter {
411
+ from { transform: translateY(0.4rem); }
412
+ }
413
+
414
+ @media (forced-colors: active) {
415
+ :where(.coloredlike, .coloredshell, .coloredinner) {
416
+ color: CanvasText;
417
+ background: Canvas;
418
+ border-color: CanvasText;
419
+ forced-color-adjust: auto;
420
+ }
421
+ }
422
+ }
128
423
  }