@sylwellsoftware/fray 0.4.0 → 0.6.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 (50) hide show
  1. package/README.md +51 -27
  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/data/descriptionList.d.ts.map +1 -1
  12. package/dist/Components/data/listview/listview.d.ts.map +1 -1
  13. package/dist/Components/data/table/DataTable.d.ts.map +1 -1
  14. package/dist/Components/data/table/FilterPanel.d.ts.map +1 -1
  15. package/dist/Components/data/table/TableHeaderCell.d.ts.map +1 -1
  16. package/dist/Components/data/treeview/treeview.d.ts.map +1 -1
  17. package/dist/Components/dialog/dialog.d.ts.map +1 -1
  18. package/dist/Components/layout/panel.d.ts +0 -1
  19. package/dist/Components/layout/panel.d.ts.map +1 -1
  20. package/dist/Components/layout/sidebar.d.ts +0 -1
  21. package/dist/Components/layout/sidebar.d.ts.map +1 -1
  22. package/dist/Components/layout/tabpanel/tabline.d.ts.map +1 -1
  23. package/dist/Components/layout/tabpanel/tabpanel.d.ts.map +1 -1
  24. package/dist/Components/lineinputs/checkbox/Checkbox.d.ts.map +1 -1
  25. package/dist/Components/lineinputs/dropdown.d.ts.map +1 -1
  26. package/dist/Components/lineinputs/textbox.d.ts.map +1 -1
  27. package/dist/Components/lineinputs/toggle.d.ts.map +1 -1
  28. package/dist/Components/menu/toolbar.d.ts +0 -1
  29. package/dist/Components/menu/toolbar.d.ts.map +1 -1
  30. package/dist/Components/status/progressBar.d.ts.map +1 -1
  31. package/dist/Components/theme/stylesheetPicker.d.ts.map +1 -1
  32. package/dist/index.js +1226 -1421
  33. package/dist/index.js.map +1 -1
  34. package/dist/{jsx-dev-runtime-pzseD2Sz.js → jsx-dev-runtime-CqunwZ8j.js} +404 -486
  35. package/dist/jsx-dev-runtime-CqunwZ8j.js.map +1 -0
  36. package/dist/jsx-dev-runtime.js +1 -1
  37. package/dist/jsx-runtime.js +1 -1
  38. package/dist/styling/baseStyleDefinitions.d.ts +0 -82
  39. package/dist/styling/baseStyleDefinitions.d.ts.map +1 -1
  40. package/dist/styling/theme.d.ts +3 -3
  41. package/dist/styling/theme.d.ts.map +1 -1
  42. package/package.json +3 -3
  43. package/styles/structural.css +72 -413
  44. package/themes/README.md +68 -66
  45. package/themes/dark.css +48 -1
  46. package/themes/java/theme.css +410 -135
  47. package/themes/light.css +48 -1
  48. package/themes/minimal/theme.css +408 -125
  49. package/themes/shiny/theme.css +484 -294
  50. package/dist/jsx-dev-runtime-pzseD2Sz.js.map +0 -1
@@ -1,140 +1,415 @@
1
1
  @charset "utf-8";
2
2
 
3
- :where(:root), [data-fray-theme="java"] {
4
- color-scheme: light;
5
- --fray-font-family: Arial, Helvetica, sans-serif;
6
- --fray-font-size: 0.875rem;
7
- --fray-line-height: 1.15;
8
- --fray-control-min-height: 1.75rem;
9
- --fray-space-xs: 2px;
10
- --fray-space-sm: 4px;
11
- --fray-space-md: 8px;
12
- --fray-space-lg: 12px;
13
- --fray-radius-sm: 0;
14
- --fray-radius-md: 0;
15
- --fray-radius-lg: 3px;
16
- --fray-motion-fast: 0ms;
17
-
18
- --fray-ui-background: var(--fray-color-surface-muted);
19
- --fray-ui-color: var(--fray-color-text);
20
- --fray-ui-border: 1px solid var(--fray-color-border-strong);
21
- --fray-ui-shadow: none;
22
- --fray-focus-ring: 0 0 0 1px var(--fray-color-focus);
23
-
24
- --fray-panel-background: var(--fray-color-surface-muted);
25
- --fray-panel-color: var(--fray-color-text);
26
- --fray-panel-border: 2px groove var(--fray-color-highlight);
27
- --fray-panel-shadow: none;
28
- --fray-panel-radius: 0;
29
- --fray-dialog-shadow: 3px 3px 0 color-mix(in srgb, var(--fray-color-shadow) 45%, transparent);
30
- --fray-dialog-backdrop-background: color-mix(in srgb, var(--fray-color-shadow) 45%, transparent);
31
-
32
- --fray-header-background: transparent;
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-raised);
37
- --fray-dialog-header-background: linear-gradient(to bottom, var(--fray-color-primary-active), var(--fray-color-primary));
38
-
39
- --fray-button-background: var(--fray-color-surface-muted);
40
- --fray-button-background-hover: var(--fray-color-primary-soft);
41
- --fray-button-background-active: var(--fray-color-surface-inset);
42
- --fray-button-background-disabled: var(--fray-color-disabled);
43
- --fray-button-color: var(--fray-color-text);
44
- --fray-button-border: 2px outset var(--fray-color-highlight);
45
- --fray-button-shadow: none;
46
- --fray-button-shadow-active: none;
47
-
48
- --fray-input-background: var(--fray-color-surface-raised);
49
- --fray-input-color: var(--fray-color-text);
50
- --fray-input-border: 1px solid var(--fray-color-border-strong);
51
- --fray-input-shadow: inset 1px 1px 1px color-mix(in srgb, var(--fray-color-shadow) 30%, transparent);
52
- --fray-input-background-disabled: var(--fray-color-disabled);
53
- --fray-input-color-disabled: var(--fray-color-on-disabled);
54
-
55
- --fray-selection-background: var(--fray-color-selection);
56
- --fray-selection-color: var(--fray-color-on-selection);
57
- --fray-row-hover-background: var(--fray-color-primary-soft);
58
- --fray-table-row-background: var(--fray-color-surface-raised);
59
- --fray-table-row-alt-background: var(--fray-color-surface-raised);
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: 2px inset var(--fray-color-highlight);
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
- --fray-toolbar-background: var(--fray-color-surface-muted);
67
- --fray-toolbar-color: var(--fray-color-text);
68
- --fray-toolbar-border: 2px outset var(--fray-color-highlight);
69
- --fray-toolbar-shadow: none;
70
- --fray-tabline-background: var(--fray-color-surface-muted);
71
- --fray-tab-active-background: var(--fray-panel-background);
72
- --fray-tab-button-background: var(--fray-color-surface-muted);
73
- --fray-progress-track-background: var(--fray-color-surface-inset);
74
- --fray-progress-value-background: var(--fray-color-primary);
75
- --fray-working-background-image: repeating-linear-gradient(135deg, transparent 0 4px, color-mix(in srgb, var(--fray-color-text) 12%, transparent) 4px 8px);
76
-
77
- --base-font-size: var(--fray-font-size);
78
- --ui-font-size: var(--fray-font-size);
79
- --ui-padding: var(--fray-space-sm);
80
- --ui-padding-h: var(--fray-space-sm);
81
- --ui-padding-v: var(--fray-space-xs);
82
- --ui-border-radius: var(--fray-radius-md);
83
- --ui-text-color: var(--fray-ui-color);
84
- --ui-muted-text-color: var(--fray-color-text-muted);
85
- --ui-border-color: var(--fray-color-border);
86
- --ui-input-bg: var(--fray-input-background);
87
- --ui-input-border: var(--fray-input-border);
88
- --ui-input-bg-disabled: var(--fray-input-background-disabled);
89
- --ui-input-border-disabled: 1px solid var(--fray-color-border);
90
- --ui-input-text-color-disabled: var(--fray-input-color-disabled);
91
- --ui-accent-color: var(--fray-color-primary);
92
- --ui-accent-color-highlight: var(--fray-color-primary-soft);
93
- --input-width: 15rem;
94
- --input-shadow: var(--fray-input-shadow);
95
- --button-background: var(--fray-button-background);
96
- --button-background-hover: var(--fray-button-background-hover);
97
- --button-background-disabled: var(--fray-button-background-disabled);
98
- --button-border: var(--fray-button-border);
99
- --button-border-disabled: 1px solid var(--fray-color-border);
100
- --button-shadow: var(--fray-button-shadow);
101
- --button-color: var(--fray-button-color);
102
- --toggle-selected-bg: var(--fray-selection-background);
103
- --toggle-selected-text: var(--fray-selection-color);
104
- --panel-bg: var(--fray-panel-background);
105
- --panel-border: var(--fray-panel-border);
106
- --panel-radius: var(--fray-panel-radius);
107
- --panel-shadow: var(--fray-panel-shadow);
108
- --panel-color: var(--fray-panel-color);
109
- --panel-padding: var(--fray-space-md);
110
- --toolbar-bg: var(--fray-toolbar-background);
111
- --toolbar-border: var(--fray-toolbar-border);
112
- --toolbar-radius: var(--fray-radius-lg);
113
- --toolbar-shadow: var(--fray-toolbar-shadow);
114
- --toolbar-color: var(--fray-toolbar-color);
115
- --sectionheader-bg: var(--fray-section-header-background, var(--fray-header-background));
116
- --sectionheader-shadow: var(--fray-header-shadow);
117
- --sectionheader-color: var(--fray-header-color);
118
- --tabline-bg: var(--fray-tabline-background);
119
- --tab-bg-active: var(--fray-tab-active-background);
120
- --error-color: var(--fray-color-error);
121
- --cbx-o-border: var(--fray-checkbox-box-border);
122
- --cbx-border-radius: 0;
123
- --spacing-small: var(--fray-space-sm);
124
- --spacing-medium: var(--fray-space-md);
125
- --noselect-user-select: none;
126
- --noselect-cursor: default;
127
- }
3
+ @layer theme {
4
+ :where(:root:not([data-theme]), [data-theme="java"]) {
5
+ color-scheme: light;
6
+ --font-family: Arial, Helvetica, sans-serif;
7
+ --font-size: 0.875rem;
8
+ --line-height: 1.25;
9
+ --control-min-height: 1.75rem;
10
+ --space-xs: 0.25rem;
11
+ --space-sm: 0.5rem;
12
+ --space-md: 1rem;
13
+ --space-lg: 1.5rem;
14
+ --radius-sm: 0;
15
+ --radius-md: 0;
16
+ --radius-lg: 3px;
17
+ --motion-fast: 0ms;
128
18
 
129
- :where(:root:not([data-fray-theme]), [data-fray-theme="java"]) :where(
130
- button[data-fray-component="button"],
131
- [role="tab"],
132
- [role="radio"],
133
- [role="checkbox"]
134
- ):active {
135
- border-style: inset;
136
- }
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: 2px groove var(--palette-light);
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: 2px outset var(--palette-light);
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: inset 1px 1px 1px color-mix(in oklch, var(--palette-dark) 30%, transparent);
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: 2px outset var(--palette-light);
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: repeating-linear-gradient(135deg, transparent 0 4px, color-mix(in oklch, var(--palette-dark) 12%, transparent) 4px 8px);
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="java"]) 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, 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, 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([role="checkbox"][aria-checked="true"] .inputshell) {
223
+ color: var(--checkbox-symbol-color);
224
+ background: var(--checkbox-box-background-checked);
225
+ }
226
+
227
+ :where(.inputinner) {
228
+ padding: var(--space-xs) var(--space-sm);
229
+ color: var(--input-color);
230
+ background: var(--input-background);
231
+ }
232
+
233
+ :where(.selectshell) { position: relative; }
234
+
235
+ :where(table, textarea, [role="tree"], [role="listbox"], .datacomponentlike) {
236
+ color: var(--ui-color);
237
+ background: var(--ui-background);
238
+ border-color: var(--palette-neutral-300);
239
+ }
240
+
241
+ :where(.datacomponentshell) {
242
+ border: var(--ui-border);
243
+ border-radius: var(--panel-radius);
244
+ box-shadow: var(--ui-shadow);
245
+ }
246
+
247
+ :where(.datacomponentinner) {
248
+ padding: var(--space-sm);
249
+ color: var(--ui-color);
250
+ background: var(--ui-background);
251
+ }
252
+
253
+ :where(header, th, .headerlike) {
254
+ color: var(--header-color);
255
+ background: var(--header-background);
256
+ border: var(--header-border);
257
+ box-shadow: var(--header-shadow);
258
+ }
259
+
260
+ :where(th > button) {
261
+ color: var(--table-header-color);
262
+ background: var(--table-header-button-background);
263
+ }
264
+
265
+ :where(th) {
266
+ color: var(--table-header-color);
267
+ background: var(--table-header-background);
268
+ }
269
+
270
+ :where(dialog > header) {
271
+ color: var(--dialog-header-color);
272
+ background: var(--dialog-header-background);
273
+ }
274
+
275
+ :where(dl > div) { border-block-end: 1px solid var(--ui-border-color); }
276
+ :where(dt) {
277
+ color: var(--ui-muted-text-color);
278
+ font-weight: 600;
279
+ }
280
+
281
+ :where(.headershell) {
282
+ border: var(--header-border);
283
+ box-shadow: var(--header-shadow);
284
+ }
285
+
286
+ :where(.headerinner) {
287
+ padding: var(--space-sm);
288
+ color: var(--header-color);
289
+ background: var(--header-background);
290
+ }
291
+
292
+ :where(.panellike, aside, dialog) {
293
+ color: var(--panel-color);
294
+ background: var(--panel-background);
295
+ border: var(--panel-border);
296
+ border-radius: var(--panel-radius);
297
+ box-shadow: var(--panel-shadow);
298
+ }
299
+
300
+ :where(.panelshell) {
301
+ border: var(--panel-border);
302
+ border-radius: var(--panel-radius);
303
+ box-shadow: var(--panel-shadow);
304
+ }
305
+
306
+ :where(.panelinner) {
307
+ padding: var(--space-md);
308
+ color: var(--panel-color);
309
+ background: var(--panel-background);
310
+ }
311
+
312
+ :where(dialog)::backdrop { background: var(--dialog-backdrop-background); }
313
+ :where(dialog > footer) { border-block-start: 1px solid var(--ui-border-color); }
314
+
315
+ :where([role="toolbar"], .toolbarlike) {
316
+ color: var(--toolbar-color);
317
+ background: var(--toolbar-background);
318
+ border: var(--toolbar-border);
319
+ box-shadow: var(--toolbar-shadow);
320
+ }
321
+
322
+ :where(.toolbarshell) {
323
+ border: var(--toolbar-border);
324
+ border-radius: var(--radius-md);
325
+ box-shadow: var(--toolbar-shadow);
326
+ }
327
+
328
+ :where(.toolbarinner) {
329
+ padding: var(--space-sm);
330
+ color: var(--toolbar-color);
331
+ background: var(--toolbar-background);
332
+ }
333
+
334
+ :where(.coloredlike, .coloredshell) {
335
+ --colored-base: var(--palette-primary);
336
+ --colored-light: var(--palette-primary-light);
337
+ --colored-dark: var(--palette-primary-dark);
338
+ --colored-contrast: var(--palette-contrast-light);
339
+ color: var(--colored-contrast);
340
+ background: var(--colored-base);
341
+ border-color: color-mix(in oklch, var(--colored-dark) 72%, currentColor);
342
+ }
343
+
344
+ :where(.coloredinner) {
345
+ color: var(--colored-contrast);
346
+ background: var(--colored-base);
347
+ }
348
+
349
+ :where([aria-selected="true"], [aria-pressed="true"]) {
350
+ color: var(--selection-color);
351
+ background: var(--selection-background);
352
+ }
353
+
354
+ :where([role="tab"]) {
355
+ background: var(--tab-button-background);
356
+ border-radius: var(--radius-md) var(--radius-md) 0 0;
357
+ }
358
+ :where([role="tab"][aria-selected="true"]) {
359
+ color: var(--button-color);
360
+ background: var(--tab-button-background-active);
361
+ }
362
+ :where([role="radio"]) { background: var(--toggle-button-background); }
363
+ :where([role="radio"][aria-checked="true"]) {
364
+ color: var(--selection-color);
365
+ background: var(--toggle-button-background-checked);
366
+ }
367
+ :where([role="radiogroup"] > [role="radio"]) { border-radius: 0; }
368
+ :where([role="radiogroup"] > [role="radio"]:first-child) {
369
+ border-radius: var(--radius-md) 0 0 var(--radius-md);
370
+ }
371
+ :where([role="radiogroup"] > [role="radio"]:last-child) {
372
+ border-radius: 0 var(--radius-md) var(--radius-md) 0;
373
+ }
374
+
375
+ :where([role="option"], [role="treeitem"], tbody tr[tabindex]):hover {
376
+ background: var(--row-hover-background);
377
+ }
378
+
379
+ :where([role="option"], [role="treeitem"], tbody tr[tabindex]):focus-visible {
380
+ outline: 2px solid var(--focus-color);
381
+ outline-offset: -2px;
382
+ }
383
+
384
+ :where(tbody tr:nth-child(odd)) { background: var(--table-row-background); }
385
+ :where(tbody tr:nth-child(even)) { background: var(--table-row-alt-background); }
386
+ :where([role="alert"]) { color: var(--error-color); }
387
+
388
+ :where(progress) {
389
+ color: var(--progress-value-background);
390
+ background: var(--progress-track-background);
391
+ accent-color: var(--palette-primary);
392
+ }
393
+
394
+ @media (prefers-reduced-motion: no-preference) {
395
+ :where(dialog[open]) { animation: theme-dialog-enter var(--motion-fast) ease-out; }
396
+ }
397
+
398
+ @keyframes theme-dialog-enter {
399
+ from { transform: translateY(0.4rem); }
400
+ }
401
+
402
+ @media (forced-colors: active) {
403
+ :where(.coloredlike, .coloredshell, .coloredinner) {
404
+ color: CanvasText;
405
+ background: Canvas;
406
+ border-color: CanvasText;
407
+ forced-color-adjust: auto;
408
+ }
409
+ }
137
410
 
138
- :where(:root:not([data-fray-theme]), [data-fray-theme="java"]) [data-fray-component="tab-line"] > [role="tab"][aria-selected="true"] {
139
- border-bottom-color: var(--fray-tab-active-background);
411
+ :where(button, .buttonlike, [role="tab"], [role="radio"], [role="checkbox"]):active {
412
+ border-style: inset;
413
+ }
414
+ }
140
415
  }
package/themes/light.css CHANGED
@@ -1,4 +1,7 @@
1
- :where(:root), [data-fray-theme="light"] {
1
+ @charset "utf-8";
2
+
3
+ @layer theme {
4
+ :where(:root:not([data-theme]), [data-theme="light"]) {
2
5
  color-scheme: light;
3
6
  --ui-text-color: #18212b;
4
7
  --ui-input-bg: #ffffff;
@@ -36,4 +39,48 @@
36
39
  --error-color: #b00020;
37
40
  --cbx-o-border: 1px solid #647180;
38
41
  --cbx-border-radius: 0.2rem;
42
+ }
43
+
44
+ @scope (:root:not([data-theme]), [data-theme="light"]) to ([data-theme], [data-theme-exclude]) {
45
+
46
+ :where(button) {
47
+ min-height: 2rem;
48
+ padding: 0.25rem 0.5rem;
49
+ color: var(--button-color);
50
+ background: var(--button-background);
51
+ border: var(--button-border);
52
+ border-radius: var(--ui-border-radius, 0.375rem);
53
+ box-shadow: var(--button-shadow);
54
+ font: inherit;
55
+ font-size: var(--ui-font-size, inherit);
56
+ }
57
+
58
+ :where(button):hover:not(:disabled) {
59
+ background: var(--button-background-hover);
60
+ }
61
+
62
+ :where(button):disabled {
63
+ color: var(--ui-input-text-color-disabled);
64
+ background: var(--button-background-disabled);
65
+ border: var(--button-border-disabled);
66
+ }
67
+
68
+ :where(input, select, textarea) {
69
+ min-height: 2rem;
70
+ padding: 0.25rem 0.5rem;
71
+ color: var(--ui-text-color);
72
+ background: var(--ui-input-bg);
73
+ border: var(--ui-input-border);
74
+ border-radius: var(--ui-border-radius, 0.375rem);
75
+ box-shadow: var(--input-shadow);
76
+ box-sizing: border-box;
77
+ font: inherit;
78
+ font-size: var(--ui-font-size, inherit);
79
+ }
80
+
81
+ :where(button, input, select, textarea):focus-visible {
82
+ outline: 2px solid var(--ui-accent-color);
83
+ outline-offset: 1px;
84
+ }
85
+ }
39
86
  }