@slotted/styles 0.1.0-beta.7 → 0.1.0-beta.9
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 +1 -1
- package/src/accordion/accordion.css +10 -10
- package/src/action-bar/action-bar.css +31 -32
- package/src/action-sheet/action-sheet.css +36 -36
- package/src/alert/alert.css +35 -35
- package/src/app-shell/app-shell.css +280 -299
- package/src/aspect-ratio/aspect-ratio.css +9 -9
- package/src/attachment/attachment.css +91 -99
- package/src/avatar/avatar.css +41 -41
- package/src/avatar-group/avatar-group.css +21 -22
- package/src/badge/badge.css +37 -37
- package/src/breadcrumb/breadcrumb.css +37 -37
- package/src/button/button.css +88 -69
- package/src/button-group/button-group.css +69 -73
- package/src/calendar/calendar.css +93 -103
- package/src/card/card.css +54 -61
- package/src/carousel/carousel.css +150 -161
- package/src/cascader/cascader.css +147 -151
- package/src/chart/chart.css +225 -240
- package/src/checkbox/checkbox.css +119 -124
- package/src/checkbox-group/checkbox-group.css +7 -7
- package/src/code-block/code-block.css +81 -85
- package/src/collapsible/collapsible.css +69 -76
- package/src/color-picker/color-picker.css +83 -91
- package/src/column-manager/column-manager.css +106 -114
- package/src/combobox/combobox.css +99 -101
- package/src/command-palette/command-palette.css +84 -90
- package/src/container/container.css +24 -24
- package/src/context-menu/context-menu.css +8 -8
- package/src/currency-field/currency-field.css +99 -104
- package/src/dashboard-grid/dashboard-grid.css +104 -107
- package/src/data-grid/data-grid.css +458 -456
- package/src/data-grid/data-grid.tokens.json +2 -0
- package/src/data-list/data-list.css +67 -69
- package/src/date-field/date-field.css +50 -50
- package/src/date-picker/date-picker.css +40 -42
- package/src/date-range-picker/date-range-picker.css +114 -118
- package/src/datetime-field/datetime-field.css +73 -78
- package/src/datetime-picker/datetime-picker.css +61 -63
- package/src/datetime-range-picker/datetime-range-picker.css +149 -156
- package/src/description-list/description-list.css +61 -64
- package/src/detail-panel/detail-panel.css +70 -70
- package/src/dialog/dialog.css +312 -148
- package/src/divider/divider.css +18 -18
- package/src/drawer/drawer.css +186 -209
- package/src/entity-picker/entity-picker.css +220 -239
- package/src/event-calendar/event-calendar.css +343 -385
- package/src/field/field.css +74 -78
- package/src/field-group/field-group.css +22 -25
- package/src/filter-bar/filter-bar.css +193 -209
- package/src/form/form.css +21 -24
- package/src/fullscreen/fullscreen.css +24 -25
- package/src/grid/grid.css +28 -28
- package/src/highlight/highlight.css +6 -6
- package/src/hover-card/hover-card.css +6 -6
- package/src/icon/icon.css +15 -15
- package/src/image/image.css +39 -39
- package/src/import-export-center/import-export-center.css +135 -156
- package/src/inline/inline.css +27 -27
- package/src/inline-message/inline-message.css +28 -28
- package/src/kbd/kbd.css +26 -26
- package/src/link/link.css +15 -15
- package/src/list/list.css +20 -20
- package/src/list-item/list-item.css +66 -66
- package/src/listbox/listbox.css +56 -59
- package/src/loading-overlay/loading-overlay.css +75 -92
- package/src/markdown/markdown.css +17 -17
- package/src/menu/menu.css +63 -65
- package/src/menubar/menubar.css +13 -13
- package/src/message/message.css +174 -202
- package/src/message-scroller/message-scroller.css +41 -42
- package/src/multi-select/multi-select.css +131 -137
- package/src/navigation-menu/navigation-menu.css +167 -188
- package/src/notification-center/notification-center.css +134 -148
- package/src/number-field/number-field.css +76 -81
- package/src/otp-input/otp-input.css +48 -48
- package/src/page/page.css +23 -23
- package/src/page-header/page-header.css +219 -280
- package/src/pagination/pagination.css +68 -72
- package/src/popover/popover.css +40 -49
- package/src/progress-indicator/progress-indicator.css +85 -90
- package/src/prompt-composer/prompt-composer.css +94 -99
- package/src/prose/prose.css +71 -75
- package/src/radio-group/radio-group.css +98 -103
- package/src/rating/rating.css +132 -132
- package/src/result-state/result-state.css +74 -77
- package/src/saved-views/saved-views.css +41 -47
- package/src/scroll-area/scroll-area.css +32 -35
- package/src/section/section.css +16 -16
- package/src/segmented-control/segmented-control.css +77 -79
- package/src/select/select.css +113 -115
- package/src/side-navigation/side-navigation.css +170 -180
- package/src/skeleton/skeleton.css +47 -48
- package/src/slider/slider.css +86 -88
- package/src/sparkline/sparkline.css +32 -32
- package/src/spinner/spinner.css +4 -4
- package/src/split-button/split-button.css +26 -31
- package/src/splitter/splitter.css +35 -35
- package/src/stack/stack.css +24 -24
- package/src/stat-card/stat-card.css +102 -103
- package/src/status-indicator/status-indicator.css +28 -28
- package/src/stepper/stepper.css +58 -62
- package/src/switch/switch.css +86 -92
- package/src/table/table.css +189 -198
- package/src/table-of-contents/table-of-contents.css +51 -54
- package/src/tabs/tabs.css +157 -172
- package/src/tag/tag.css +67 -71
- package/src/tags-input/tags-input.css +124 -74
- package/src/tags-input/tags-input.tokens.json +6 -1
- package/src/text-field/text-field.css +108 -126
- package/src/textarea/textarea.css +26 -26
- package/src/time-field/time-field.css +67 -67
- package/src/time-picker/time-picker.css +56 -58
- package/src/time-range-picker/time-range-picker.css +126 -133
- package/src/timeline/timeline.css +244 -266
- package/src/toast/toast.css +81 -90
- package/src/toggle/toggle.css +29 -33
- package/src/toggle-group/toggle-group.css +67 -71
- package/src/toolbar/toolbar.css +30 -35
- package/src/tooltip/tooltip.css +26 -26
- package/src/top-navigation/top-navigation.css +243 -259
- package/src/tour/tour.css +51 -60
- package/src/transfer/transfer.css +160 -164
- package/src/tree/tree.css +103 -111
- package/src/typography/typography.css +36 -36
- package/src/upload/upload.css +224 -224
- package/src/visually-hidden/visually-hidden.css +1 -1
- package/src/wizard/wizard.css +185 -197
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* sunken surface, with each widget a raised card on it; the page decides
|
|
16
16
|
* that ground, and every mark below is drawn to read on it.
|
|
17
17
|
*/
|
|
18
|
-
[data-ui
|
|
18
|
+
[data-ui-dashboard-grid] {
|
|
19
19
|
--_gap: var(--slotted-dashboard-grid-gap, var(--slotted-space-6, 1rem));
|
|
20
20
|
--_row: var(--slotted-dashboard-grid-row-size, 4.5rem);
|
|
21
21
|
--_cols: var(--_dg-columns-expanded, 12);
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
min-inline-size: 0;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
[data-ui
|
|
32
|
+
[data-ui-dashboard-grid] > [data-part-grid] {
|
|
33
33
|
display: grid;
|
|
34
34
|
gap: var(--_gap);
|
|
35
35
|
grid-auto-rows: var(--_row);
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
/* `display: grid` above would otherwise override the attribute. */
|
|
46
|
-
[data-ui
|
|
47
|
-
[data-ui
|
|
46
|
+
[data-ui-dashboard-grid] [data-part-grid][hidden],
|
|
47
|
+
[data-ui-dashboard-grid] [data-part-widget][hidden] {
|
|
48
48
|
display: none;
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -52,14 +52,14 @@
|
|
|
52
52
|
* In the expanded class every widget stands at its own cell. The DOM holds
|
|
53
53
|
* them by row, then column, so the order a reader walks is the picture's.
|
|
54
54
|
*/
|
|
55
|
-
[data-ui
|
|
55
|
+
[data-ui-dashboard-grid] :is([data-part-widget], [data-part-placeholder]) {
|
|
56
56
|
grid-column: var(--_dg-x, auto) / span var(--_dg-w, 4);
|
|
57
57
|
grid-row: var(--_dg-y, auto) / span var(--_dg-h, 2);
|
|
58
58
|
min-block-size: 0;
|
|
59
59
|
min-inline-size: 0;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
[data-ui
|
|
62
|
+
[data-ui-dashboard-grid] [data-part-widget] {
|
|
63
63
|
display: flex;
|
|
64
64
|
position: relative;
|
|
65
65
|
}
|
|
@@ -72,29 +72,29 @@
|
|
|
72
72
|
* CSS refuses a custom property in a container condition.
|
|
73
73
|
*/
|
|
74
74
|
@container dashboard-grid (width < 1024px) {
|
|
75
|
-
[data-ui
|
|
75
|
+
[data-ui-dashboard-grid] > [data-part-grid] {
|
|
76
76
|
--_cols: var(--_dg-columns-medium, 6);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
[data-ui
|
|
79
|
+
[data-ui-dashboard-grid] :is([data-part-widget], [data-part-placeholder]) {
|
|
80
80
|
grid-column: auto / span var(--_dg-span-medium, 3);
|
|
81
81
|
grid-row: auto / span var(--_dg-h, 2);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
@container dashboard-grid (width < 600px) {
|
|
86
|
-
[data-ui
|
|
86
|
+
[data-ui-dashboard-grid] > [data-part-grid] {
|
|
87
87
|
--_cols: var(--_dg-columns-compact, 1);
|
|
88
88
|
|
|
89
89
|
grid-auto-rows: auto;
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
[data-ui
|
|
92
|
+
[data-ui-dashboard-grid] :is([data-part-widget], [data-part-placeholder]) {
|
|
93
93
|
grid-column: 1 / -1;
|
|
94
94
|
grid-row: auto;
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
[data-ui
|
|
97
|
+
[data-ui-dashboard-grid] [data-part-placeholder] {
|
|
98
98
|
min-block-size: calc(var(--_row) * 2);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
@@ -107,14 +107,14 @@
|
|
|
107
107
|
* than the cell grows into it, so a chart or a figure uses the height the
|
|
108
108
|
* reader gave the widget rather than stopping at its own size step.
|
|
109
109
|
*/
|
|
110
|
-
[data-ui
|
|
110
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-ui-card] {
|
|
111
111
|
flex: 1 1 auto;
|
|
112
112
|
min-block-size: 0;
|
|
113
113
|
min-inline-size: 0;
|
|
114
114
|
transition: box-shadow var(--slotted-duration-medium) var(--slotted-easing-standard);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
[data-ui
|
|
117
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-ui-card] > [data-part-body] {
|
|
118
118
|
/* A chart's plot takes whatever height the widget leaves it, down to a
|
|
119
119
|
floor of one and a half rows, instead of its own size step. */
|
|
120
120
|
--slotted-chart-plot-block-size: calc(var(--_row) * 1.5);
|
|
@@ -128,11 +128,11 @@
|
|
|
128
128
|
/* The content grows into a taller cell and never shrinks under its own
|
|
129
129
|
height: shrunk, it overflowed its own box, and the body scrolled only that
|
|
130
130
|
overflow, so its last rows and the end padding stayed out of reach. */
|
|
131
|
-
[data-ui
|
|
132
|
-
[data-part
|
|
133
|
-
> [data-ui
|
|
134
|
-
> [data-part
|
|
135
|
-
> :not([data-part
|
|
131
|
+
[data-ui-dashboard-grid]
|
|
132
|
+
[data-part-widget]
|
|
133
|
+
> [data-ui-card]
|
|
134
|
+
> [data-part-body]
|
|
135
|
+
> :not([data-part-busy-indicator]) {
|
|
136
136
|
flex: 1 0 auto;
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
* medium step, semibold, two lines and then an ellipsis. The clamp never
|
|
142
142
|
* removes a word from the DOM, and the article is named by the whole of it.
|
|
143
143
|
*/
|
|
144
|
-
[data-ui
|
|
144
|
+
[data-ui-dashboard-grid] [data-part-widget] [data-part-title] {
|
|
145
145
|
-webkit-box-orient: vertical;
|
|
146
146
|
color: var(--slotted-dashboard-grid-title-color, var(--slotted-text, CanvasText));
|
|
147
147
|
display: -webkit-box;
|
|
@@ -165,7 +165,7 @@
|
|
|
165
165
|
overflow-wrap: anywhere;
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
[data-ui
|
|
168
|
+
[data-ui-dashboard-grid] [data-part-widget] [data-part-description] {
|
|
169
169
|
color: var(--slotted-dashboard-grid-description-color, var(--slotted-text-muted, GrayText));
|
|
170
170
|
font-size: var(--slotted-font-size-sm, 0.75rem);
|
|
171
171
|
line-height: var(--slotted-line-height-sm, 1.5);
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
|
|
176
176
|
/* The corner of the header: the consumer's actions, then the way to the
|
|
177
177
|
widget's own page, on the title's row without adding to its height. */
|
|
178
|
-
[data-ui
|
|
178
|
+
[data-ui-dashboard-grid] [data-part-widget] [data-part-actions] {
|
|
179
179
|
flex-wrap: nowrap;
|
|
180
180
|
gap: var(--slotted-space-1, 0.125rem);
|
|
181
181
|
margin-block: calc(
|
|
@@ -199,19 +199,19 @@
|
|
|
199
199
|
* its own: the family does not know what the body holds, but does know its
|
|
200
200
|
* box — the grid fixed it.
|
|
201
201
|
*/
|
|
202
|
-
[data-ui
|
|
202
|
+
[data-ui-dashboard-grid] [data-part-widget] [data-part-skeleton] {
|
|
203
203
|
display: flex;
|
|
204
204
|
flex-direction: column;
|
|
205
205
|
min-block-size: var(--slotted-space-12, 4rem);
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
[data-ui
|
|
208
|
+
[data-ui-dashboard-grid] [data-part-widget] [data-part-skeleton] > [data-ui-skeleton] {
|
|
209
209
|
block-size: auto;
|
|
210
210
|
flex: 1 1 auto;
|
|
211
211
|
inline-size: 100%;
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
[data-ui
|
|
214
|
+
[data-ui-dashboard-grid] [data-part-widget] [data-part-message] {
|
|
215
215
|
align-content: center;
|
|
216
216
|
display: grid;
|
|
217
217
|
justify-items: center;
|
|
@@ -222,7 +222,7 @@
|
|
|
222
222
|
* the body, where Grafana draws its panel's. It is aria-hidden: the article
|
|
223
223
|
* carries `aria-busy`, which is the fact, and the line is only its picture.
|
|
224
224
|
*/
|
|
225
|
-
[data-ui
|
|
225
|
+
[data-ui-dashboard-grid] [data-part-widget] [data-part-busy-indicator] {
|
|
226
226
|
background-color: var(--_accent);
|
|
227
227
|
block-size: var(--slotted-border-width-medium, 2px);
|
|
228
228
|
inset-block-start: 0;
|
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
}
|
|
234
234
|
|
|
235
235
|
@media (prefers-reduced-motion: no-preference) {
|
|
236
|
-
[data-ui
|
|
236
|
+
[data-ui-dashboard-grid] [data-part-widget] [data-part-busy-indicator] {
|
|
237
237
|
animation: slotted-dashboard-grid-busy var(--slotted-duration-loop-slow) linear infinite;
|
|
238
238
|
background-color: transparent;
|
|
239
239
|
background-image: linear-gradient(to right, transparent, var(--_accent) 50%, transparent);
|
|
@@ -244,7 +244,7 @@
|
|
|
244
244
|
}
|
|
245
245
|
|
|
246
246
|
@media (prefers-reduced-motion: reduce) {
|
|
247
|
-
[data-ui
|
|
247
|
+
[data-ui-dashboard-grid] [data-part-widget] [data-part-busy-indicator] {
|
|
248
248
|
animation: none;
|
|
249
249
|
}
|
|
250
250
|
}
|
|
@@ -266,7 +266,7 @@
|
|
|
266
266
|
* the card's hairline and the smallest lift — so on the sunken page it reads
|
|
267
267
|
* as a tool laid over the dashboard rather than a stripe cut into it.
|
|
268
268
|
*/
|
|
269
|
-
[data-ui
|
|
269
|
+
[data-ui-dashboard-grid] > [data-part-edit-bar] {
|
|
270
270
|
align-items: center;
|
|
271
271
|
background-color: var(
|
|
272
272
|
--slotted-dashboard-grid-edit-bar-background,
|
|
@@ -284,19 +284,19 @@
|
|
|
284
284
|
}
|
|
285
285
|
|
|
286
286
|
@starting-style {
|
|
287
|
-
[data-ui
|
|
287
|
+
[data-ui-dashboard-grid] > [data-part-edit-bar] {
|
|
288
288
|
opacity: 0;
|
|
289
289
|
translate: 0 calc(var(--slotted-space-4, 0.5rem) * -1);
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
-
[data-ui
|
|
293
|
+
[data-ui-dashboard-grid] > [data-part-edit-bar] {
|
|
294
294
|
transition:
|
|
295
295
|
opacity var(--slotted-duration-medium) var(--slotted-easing-enter),
|
|
296
296
|
translate var(--slotted-duration-medium) var(--slotted-easing-enter);
|
|
297
297
|
}
|
|
298
298
|
|
|
299
|
-
[data-ui
|
|
299
|
+
[data-ui-dashboard-grid] > [data-part-edit-bar] > [data-part-edit-status] {
|
|
300
300
|
color: var(--slotted-text-muted, GrayText);
|
|
301
301
|
flex: 1 1 20rem;
|
|
302
302
|
font-size: var(--slotted-font-size-sm, 0.75rem);
|
|
@@ -305,7 +305,7 @@
|
|
|
305
305
|
min-inline-size: 0;
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
-
[data-ui
|
|
308
|
+
[data-ui-dashboard-grid] > [data-part-edit-bar] > [data-part-edit-actions] {
|
|
309
309
|
align-items: center;
|
|
310
310
|
display: flex;
|
|
311
311
|
flex-wrap: wrap;
|
|
@@ -325,7 +325,7 @@
|
|
|
325
325
|
* dot that shows marks a free cell; a dot on the crossing of two gaps
|
|
326
326
|
* showed between cards and under them, where no widget can land.
|
|
327
327
|
*/
|
|
328
|
-
[data-ui
|
|
328
|
+
[data-ui-dashboard-grid] > [data-part-grid]::before {
|
|
329
329
|
background-image: radial-gradient(
|
|
330
330
|
circle at calc((100% - var(--_gap)) / 2) calc((100% - var(--_gap)) / 2),
|
|
331
331
|
var(--slotted-dashboard-grid-lattice-color, var(--slotted-border-strong, currentColor))
|
|
@@ -341,27 +341,27 @@
|
|
|
341
341
|
transition: opacity var(--slotted-duration-medium) var(--slotted-easing-standard);
|
|
342
342
|
}
|
|
343
343
|
|
|
344
|
-
[data-ui
|
|
344
|
+
[data-ui-dashboard-grid][data-editing] > [data-part-grid] {
|
|
345
345
|
min-block-size: calc(var(--_row) * 2 + var(--_gap));
|
|
346
346
|
}
|
|
347
347
|
|
|
348
|
-
[data-ui
|
|
348
|
+
[data-ui-dashboard-grid][data-editing] > [data-part-grid]::before {
|
|
349
349
|
opacity: 0.7;
|
|
350
350
|
}
|
|
351
351
|
|
|
352
352
|
/* While a widget is carried or pulled the lattice is what it snaps to, so
|
|
353
353
|
it comes forward. The attribute is on the grid, in the compound it styles:
|
|
354
354
|
a browser invalidates by attribute name, and on the root ahead of
|
|
355
|
-
`> [data-part
|
|
355
|
+
`> [data-part-grid]` it restyled every element with a `data-part`
|
|
356
356
|
under the root as a widget was picked up and as it was dropped. */
|
|
357
|
-
[data-ui
|
|
357
|
+
[data-ui-dashboard-grid] > [data-part-grid][data-gesture]::before {
|
|
358
358
|
opacity: 1;
|
|
359
359
|
}
|
|
360
360
|
|
|
361
361
|
/* Below the expanded class the widgets flow, so no cell is a place to drop
|
|
362
362
|
on and the lattice would be specks in the gaps. */
|
|
363
363
|
@container dashboard-grid (width < 1024px) {
|
|
364
|
-
[data-ui
|
|
364
|
+
[data-ui-dashboard-grid] > [data-part-grid]::before {
|
|
365
365
|
display: none;
|
|
366
366
|
}
|
|
367
367
|
}
|
|
@@ -370,20 +370,20 @@
|
|
|
370
370
|
|
|
371
371
|
/* The whole card is a place to pick the widget up from; its controls keep
|
|
372
372
|
their own cursor because each is its own target. */
|
|
373
|
-
[data-ui
|
|
373
|
+
[data-ui-dashboard-grid][data-editing] [data-part-widget][data-movable] > [data-ui-card] {
|
|
374
374
|
cursor: grab;
|
|
375
375
|
}
|
|
376
376
|
|
|
377
|
-
[data-ui
|
|
378
|
-
[data-part
|
|
379
|
-
> [data-ui
|
|
377
|
+
[data-ui-dashboard-grid][data-editing]
|
|
378
|
+
[data-part-widget][data-movable]
|
|
379
|
+
> [data-ui-card]
|
|
380
380
|
:is(a, button, input, select, textarea, [tabindex]) {
|
|
381
381
|
cursor: auto;
|
|
382
382
|
}
|
|
383
383
|
|
|
384
|
-
[data-ui
|
|
385
|
-
[data-part
|
|
386
|
-
> [data-ui
|
|
384
|
+
[data-ui-dashboard-grid][data-editing]
|
|
385
|
+
[data-part-widget]:not([data-loading]):hover
|
|
386
|
+
> [data-ui-card] {
|
|
387
387
|
box-shadow: var(--slotted-shadow-sm);
|
|
388
388
|
}
|
|
389
389
|
|
|
@@ -395,7 +395,7 @@
|
|
|
395
395
|
* pill is drawn on the raised surface with the control's own edge, so it
|
|
396
396
|
* reads as part of the card rather than as a button beside it.
|
|
397
397
|
*/
|
|
398
|
-
[data-ui
|
|
398
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-handle] {
|
|
399
399
|
--_pill-inline: var(--slotted-dashboard-grid-handle-inline-size, 2.25rem);
|
|
400
400
|
--_pill-block: var(--slotted-dashboard-grid-handle-block-size, 1rem);
|
|
401
401
|
|
|
@@ -430,7 +430,7 @@
|
|
|
430
430
|
}
|
|
431
431
|
|
|
432
432
|
@starting-style {
|
|
433
|
-
[data-ui
|
|
433
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-handle] {
|
|
434
434
|
opacity: 0;
|
|
435
435
|
translate: 0 var(--slotted-space-3, 0.375rem);
|
|
436
436
|
}
|
|
@@ -438,7 +438,7 @@
|
|
|
438
438
|
|
|
439
439
|
/* The pill is small to the eye and not to the hand: the hit area reaches
|
|
440
440
|
the target floor on both axes. */
|
|
441
|
-
[data-ui
|
|
441
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-handle]::before {
|
|
442
442
|
content: '';
|
|
443
443
|
inset: calc((var(--slotted-target-min, 24px) - var(--_pill-block)) / -2)
|
|
444
444
|
calc(var(--slotted-space-4, 0.5rem) * -1);
|
|
@@ -446,28 +446,28 @@
|
|
|
446
446
|
}
|
|
447
447
|
|
|
448
448
|
/* The grip is an `icon` the binding draws; the pill gives it its size. */
|
|
449
|
-
[data-ui
|
|
449
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-handle] > [data-ui-icon] {
|
|
450
450
|
--slotted-icon-size: var(--slotted-dashboard-grid-handle-glyph-size, 0.875rem);
|
|
451
451
|
}
|
|
452
452
|
|
|
453
|
-
[data-ui
|
|
454
|
-
[data-part
|
|
455
|
-
> [data-part
|
|
453
|
+
[data-ui-dashboard-grid][data-editing]
|
|
454
|
+
[data-part-widget]:not([data-loading]):hover
|
|
455
|
+
> [data-part-handle] {
|
|
456
456
|
border-color: var(--slotted-border-strong, ButtonBorder);
|
|
457
457
|
color: var(--slotted-text, CanvasText);
|
|
458
458
|
}
|
|
459
459
|
|
|
460
|
-
[data-ui
|
|
460
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-handle]:focus-visible {
|
|
461
461
|
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
462
462
|
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
463
463
|
}
|
|
464
464
|
|
|
465
465
|
/* Carried, or its menu open: the pill takes the accent, the one mark on the
|
|
466
466
|
page that says which widget the reader has in hand. */
|
|
467
|
-
[data-ui
|
|
468
|
-
[data-part
|
|
469
|
-
> [data-part
|
|
470
|
-
[data-ui
|
|
467
|
+
[data-ui-dashboard-grid]
|
|
468
|
+
[data-part-widget]:is([data-dragging], [data-resizing])
|
|
469
|
+
> [data-part-handle],
|
|
470
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-handle][aria-expanded='true'] {
|
|
471
471
|
background-color: var(--_accent);
|
|
472
472
|
border-color: var(--_accent);
|
|
473
473
|
color: var(--slotted-tone-accent-on-solid, HighlightText);
|
|
@@ -482,7 +482,7 @@
|
|
|
482
482
|
* are quiet until the widget is under the pointer, and always shown to a
|
|
483
483
|
* finger, which has no hover.
|
|
484
484
|
*/
|
|
485
|
-
[data-ui
|
|
485
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-resize-handle] {
|
|
486
486
|
--_hit: var(--slotted-dashboard-grid-resize-hit, 0.75rem);
|
|
487
487
|
--_mark: var(--slotted-border-strong, currentColor);
|
|
488
488
|
|
|
@@ -493,30 +493,30 @@
|
|
|
493
493
|
z-index: 2;
|
|
494
494
|
}
|
|
495
495
|
|
|
496
|
-
[data-ui
|
|
497
|
-
[data-part
|
|
498
|
-
> [data-part
|
|
499
|
-
[data-ui
|
|
500
|
-
[data-part
|
|
501
|
-
> [data-part
|
|
502
|
-
[data-ui
|
|
496
|
+
[data-ui-dashboard-grid][data-editing]
|
|
497
|
+
[data-part-widget]:not([data-loading]):hover
|
|
498
|
+
> [data-part-resize-handle],
|
|
499
|
+
[data-ui-dashboard-grid][data-editing]
|
|
500
|
+
[data-part-widget]:focus-within
|
|
501
|
+
> [data-part-resize-handle],
|
|
502
|
+
[data-ui-dashboard-grid] [data-part-widget][data-resizing] > [data-part-resize-handle] {
|
|
503
503
|
opacity: 1;
|
|
504
504
|
}
|
|
505
505
|
|
|
506
506
|
@media (pointer: coarse) {
|
|
507
|
-
[data-ui
|
|
507
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-resize-handle] {
|
|
508
508
|
--_hit: var(--slotted-target-comfortable, 44px);
|
|
509
509
|
|
|
510
510
|
opacity: 1;
|
|
511
511
|
}
|
|
512
512
|
|
|
513
|
-
[data-ui
|
|
513
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-handle] {
|
|
514
514
|
--_pill-inline: var(--slotted-dashboard-grid-handle-inline-size-coarse, 2.75rem);
|
|
515
515
|
--_pill-block: var(--slotted-dashboard-grid-handle-block-size-coarse, 1.25rem);
|
|
516
516
|
}
|
|
517
517
|
}
|
|
518
518
|
|
|
519
|
-
[data-ui
|
|
519
|
+
[data-ui-dashboard-grid] [data-part-resize-handle]::before {
|
|
520
520
|
background-color: var(--_mark);
|
|
521
521
|
border-radius: var(--slotted-radius-full, 9999px);
|
|
522
522
|
content: '';
|
|
@@ -529,68 +529,67 @@
|
|
|
529
529
|
inline-size var(--slotted-duration-short) var(--slotted-easing-standard);
|
|
530
530
|
}
|
|
531
531
|
|
|
532
|
-
[data-ui
|
|
533
|
-
[data-part='resize-handle']:is([data-edge='start'], [data-edge='end']) {
|
|
532
|
+
[data-ui-dashboard-grid] [data-part-resize-handle]:is([data-edge='start'], [data-edge='end']) {
|
|
534
533
|
cursor: ew-resize;
|
|
535
534
|
inline-size: var(--_hit);
|
|
536
535
|
inset-block: calc(var(--_radius) + var(--_hit) / 2);
|
|
537
536
|
}
|
|
538
537
|
|
|
539
|
-
[data-ui
|
|
538
|
+
[data-ui-dashboard-grid] [data-part-resize-handle][data-edge='start'] {
|
|
540
539
|
inset-inline-start: calc(var(--_hit) / -2);
|
|
541
540
|
}
|
|
542
541
|
|
|
543
|
-
[data-ui
|
|
542
|
+
[data-ui-dashboard-grid] [data-part-resize-handle][data-edge='end'] {
|
|
544
543
|
inset-inline-end: calc(var(--_hit) / -2);
|
|
545
544
|
}
|
|
546
545
|
|
|
547
|
-
[data-ui
|
|
548
|
-
[data-part
|
|
546
|
+
[data-ui-dashboard-grid]
|
|
547
|
+
[data-part-resize-handle]:is([data-edge='start'], [data-edge='end'])::before {
|
|
549
548
|
block-size: var(--slotted-dashboard-grid-resize-pill, 1.75rem);
|
|
550
549
|
inline-size: var(--slotted-border-width-thick, 3px);
|
|
551
550
|
}
|
|
552
551
|
|
|
553
|
-
[data-ui
|
|
552
|
+
[data-ui-dashboard-grid] [data-part-resize-handle][data-edge='bottom'] {
|
|
554
553
|
block-size: var(--_hit);
|
|
555
554
|
cursor: ns-resize;
|
|
556
555
|
inset-block-end: calc(var(--_hit) / -2);
|
|
557
556
|
inset-inline: calc(var(--_radius) + var(--_hit) / 2);
|
|
558
557
|
}
|
|
559
558
|
|
|
560
|
-
[data-ui
|
|
559
|
+
[data-ui-dashboard-grid] [data-part-resize-handle][data-edge='bottom']::before {
|
|
561
560
|
block-size: var(--slotted-border-width-thick, 3px);
|
|
562
561
|
inline-size: var(--slotted-dashboard-grid-resize-pill, 1.75rem);
|
|
563
562
|
}
|
|
564
563
|
|
|
565
|
-
[data-ui
|
|
566
|
-
[data-part
|
|
564
|
+
[data-ui-dashboard-grid]
|
|
565
|
+
[data-part-resize-handle]:is([data-edge='bottom-start'], [data-edge='bottom-end']) {
|
|
567
566
|
block-size: calc(var(--_hit) * 1.5);
|
|
568
567
|
inline-size: calc(var(--_hit) * 1.5);
|
|
569
568
|
inset-block-end: calc(var(--_hit) / -2);
|
|
570
569
|
}
|
|
571
570
|
|
|
572
|
-
[data-ui
|
|
571
|
+
[data-ui-dashboard-grid] [data-part-resize-handle][data-edge='bottom-end'] {
|
|
573
572
|
cursor: nwse-resize;
|
|
574
573
|
inset-inline-end: calc(var(--_hit) / -2);
|
|
575
574
|
}
|
|
576
575
|
|
|
577
|
-
[data-ui
|
|
576
|
+
[data-ui-dashboard-grid] [data-part-resize-handle][data-edge='bottom-start'] {
|
|
578
577
|
cursor: nesw-resize;
|
|
579
578
|
inset-inline-start: calc(var(--_hit) / -2);
|
|
580
579
|
}
|
|
581
580
|
|
|
582
|
-
[data-ui
|
|
581
|
+
[data-ui-dashboard-grid] [data-part-resize-handle][data-edge='bottom-end']:dir(rtl) {
|
|
583
582
|
cursor: nesw-resize;
|
|
584
583
|
}
|
|
585
584
|
|
|
586
|
-
[data-ui
|
|
585
|
+
[data-ui-dashboard-grid] [data-part-resize-handle][data-edge='bottom-start']:dir(rtl) {
|
|
587
586
|
cursor: nwse-resize;
|
|
588
587
|
}
|
|
589
588
|
|
|
590
589
|
/* The corner mark is an arc on the card's own corner: a quarter of a ring
|
|
591
590
|
whose radius is the card's, drawn over the card's edge. */
|
|
592
|
-
[data-ui
|
|
593
|
-
[data-part
|
|
591
|
+
[data-ui-dashboard-grid]
|
|
592
|
+
[data-part-resize-handle]:is([data-edge='bottom-start'], [data-edge='bottom-end'])::before {
|
|
594
593
|
background-color: transparent;
|
|
595
594
|
block-size: var(--_radius);
|
|
596
595
|
border-block-end: var(--slotted-border-width-thick, 3px) solid var(--_mark);
|
|
@@ -601,13 +600,13 @@
|
|
|
601
600
|
margin: 0;
|
|
602
601
|
}
|
|
603
602
|
|
|
604
|
-
[data-ui
|
|
603
|
+
[data-ui-dashboard-grid] [data-part-resize-handle][data-edge='bottom-end']::before {
|
|
605
604
|
border-end-end-radius: var(--_radius);
|
|
606
605
|
border-inline-end: var(--slotted-border-width-thick, 3px) solid var(--_mark);
|
|
607
606
|
inset-inline-end: calc(var(--_hit) / 2 - var(--slotted-border-width-thin, 1px));
|
|
608
607
|
}
|
|
609
608
|
|
|
610
|
-
[data-ui
|
|
609
|
+
[data-ui-dashboard-grid] [data-part-resize-handle][data-edge='bottom-start']::before {
|
|
611
610
|
border-end-start-radius: var(--_radius);
|
|
612
611
|
border-inline-start: var(--slotted-border-width-thick, 3px) solid var(--_mark);
|
|
613
612
|
inset-inline-start: calc(var(--_hit) / 2 - var(--slotted-border-width-thin, 1px));
|
|
@@ -615,21 +614,21 @@
|
|
|
615
614
|
|
|
616
615
|
/* Under the pointer, and while it is pulled, the mark takes the accent and
|
|
617
616
|
the edge pill grows, so the reader sees which side answers. */
|
|
618
|
-
[data-ui
|
|
619
|
-
[data-ui
|
|
617
|
+
[data-ui-dashboard-grid] [data-part-resize-handle]:not([data-disabled]):hover,
|
|
618
|
+
[data-ui-dashboard-grid] [data-part-resize-handle][data-active] {
|
|
620
619
|
--_mark: var(--_accent);
|
|
621
620
|
}
|
|
622
621
|
|
|
623
|
-
[data-ui
|
|
624
|
-
[data-part
|
|
622
|
+
[data-ui-dashboard-grid]
|
|
623
|
+
[data-part-resize-handle]:is([data-edge='start'], [data-edge='end']):is(
|
|
625
624
|
:not([data-disabled]):hover,
|
|
626
625
|
[data-active]
|
|
627
626
|
)::before {
|
|
628
627
|
block-size: var(--slotted-dashboard-grid-resize-pill-active, 2.75rem);
|
|
629
628
|
}
|
|
630
629
|
|
|
631
|
-
[data-ui
|
|
632
|
-
[data-part
|
|
630
|
+
[data-ui-dashboard-grid]
|
|
631
|
+
[data-part-resize-handle][data-edge='bottom']:is(
|
|
633
632
|
:not([data-disabled]):hover,
|
|
634
633
|
[data-active]
|
|
635
634
|
)::before {
|
|
@@ -639,9 +638,9 @@
|
|
|
639
638
|
/* The medium class flows the widgets, so a widget's start is where the one
|
|
640
639
|
before it ends: there is no start edge to pull. */
|
|
641
640
|
@container dashboard-grid (width < 1024px) {
|
|
642
|
-
[data-ui
|
|
643
|
-
[data-part
|
|
644
|
-
> [data-part
|
|
641
|
+
[data-ui-dashboard-grid]
|
|
642
|
+
[data-part-widget]
|
|
643
|
+
> [data-part-resize-handle]:is([data-edge='start'], [data-edge='bottom-start']) {
|
|
645
644
|
display: none;
|
|
646
645
|
}
|
|
647
646
|
}
|
|
@@ -649,7 +648,7 @@
|
|
|
649
648
|
/* A phone reads a dashboard as one column as tall as its content: there is
|
|
650
649
|
no size to pull, only an order to change. */
|
|
651
650
|
@container dashboard-grid (width < 600px) {
|
|
652
|
-
[data-ui
|
|
651
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-resize-handle] {
|
|
653
652
|
display: none;
|
|
654
653
|
}
|
|
655
654
|
}
|
|
@@ -665,7 +664,7 @@
|
|
|
665
664
|
* would land in is the placeholder, and the widgets around it make room as
|
|
666
665
|
* the placeholder moves.
|
|
667
666
|
*/
|
|
668
|
-
[data-ui
|
|
667
|
+
[data-ui-dashboard-grid] [data-part-widget]:is([data-dragging], [data-resizing]) {
|
|
669
668
|
grid-column: auto;
|
|
670
669
|
grid-row: auto;
|
|
671
670
|
position: absolute;
|
|
@@ -674,14 +673,14 @@
|
|
|
674
673
|
|
|
675
674
|
/* Picked up: lifted by the largest shadow on the scale. It is not scaled —
|
|
676
675
|
a card of text grown by two per cent is two per cent blurred (R7). */
|
|
677
|
-
[data-ui
|
|
676
|
+
[data-ui-dashboard-grid] [data-part-widget][data-dragging] {
|
|
678
677
|
cursor: grabbing;
|
|
679
678
|
}
|
|
680
679
|
|
|
681
680
|
/* A shadow is dark on a dark page, so the widget in hand also takes a
|
|
682
681
|
hairline of the accent: in the dark scheme it is what lifts the card, and
|
|
683
682
|
in the light one it says which card is held. */
|
|
684
|
-
[data-ui
|
|
683
|
+
[data-ui-dashboard-grid] [data-part-widget][data-dragging] > [data-ui-card] {
|
|
685
684
|
box-shadow:
|
|
686
685
|
var(--slotted-shadow-lg),
|
|
687
686
|
0 0 0 var(--slotted-border-width-thin, 1px)
|
|
@@ -689,7 +688,7 @@
|
|
|
689
688
|
}
|
|
690
689
|
|
|
691
690
|
/* Pulled: the card follows the pointer at any size, lifted a step less. */
|
|
692
|
-
[data-ui
|
|
691
|
+
[data-ui-dashboard-grid] [data-part-widget][data-resizing] > [data-ui-card] {
|
|
693
692
|
box-shadow:
|
|
694
693
|
var(--slotted-shadow-md),
|
|
695
694
|
0 0 0 var(--slotted-border-width-thin, 1px)
|
|
@@ -702,7 +701,7 @@
|
|
|
702
701
|
* No dashes and no fill that competes with the widget over it — it is a
|
|
703
702
|
* shape the reader aims at, not a second object.
|
|
704
703
|
*/
|
|
705
|
-
[data-ui
|
|
704
|
+
[data-ui-dashboard-grid] > [data-part-grid] > [data-part-placeholder] {
|
|
706
705
|
background-color: color-mix(in oklab, var(--_accent) 10%, transparent);
|
|
707
706
|
border: var(--slotted-border-width-thin, 1px) solid
|
|
708
707
|
color-mix(in oklab, var(--_accent) 55%, transparent);
|
|
@@ -716,7 +715,7 @@
|
|
|
716
715
|
* corner the reader is pulling: the only text on screen during the gesture,
|
|
717
716
|
* where the eye already is.
|
|
718
717
|
*/
|
|
719
|
-
[data-ui
|
|
718
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-size-readout] {
|
|
720
719
|
background-color: var(--_accent);
|
|
721
720
|
border-radius: var(--slotted-radius-full, 9999px);
|
|
722
721
|
box-shadow: var(--slotted-shadow-sm);
|
|
@@ -735,15 +734,13 @@
|
|
|
735
734
|
z-index: 4;
|
|
736
735
|
}
|
|
737
736
|
|
|
738
|
-
[data-ui
|
|
739
|
-
[data-ui
|
|
740
|
-
[data-part='widget']
|
|
741
|
-
> [data-part='size-readout'][data-edge='bottom-start'] {
|
|
737
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-size-readout][data-edge='start'],
|
|
738
|
+
[data-ui-dashboard-grid] [data-part-widget] > [data-part-size-readout][data-edge='bottom-start'] {
|
|
742
739
|
inset-inline: var(--slotted-space-5, 0.75rem) auto;
|
|
743
740
|
}
|
|
744
741
|
|
|
745
742
|
/* A grid with nothing visible. */
|
|
746
|
-
[data-ui
|
|
743
|
+
[data-ui-dashboard-grid] > [data-part-empty] {
|
|
747
744
|
min-block-size: calc(var(--_row) * 2 + var(--_gap));
|
|
748
745
|
}
|
|
749
746
|
}
|