@slotted/styles 0.0.0-stage → 0.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +10 -2
- package/package.json +276 -3
- package/src/accordion/accordion.css +96 -0
- package/src/accordion/accordion.tokens.json +14 -0
- package/src/action-bar/action-bar.css +455 -0
- package/src/action-bar/action-bar.tokens.json +50 -0
- package/src/action-sheet/action-sheet.css +462 -0
- package/src/action-sheet/action-sheet.tokens.json +59 -0
- package/src/alert/alert.css +764 -0
- package/src/alert/alert.tokens.json +77 -0
- package/src/app-shell/app-shell.css +1899 -0
- package/src/app-shell/app-shell.tokens.json +88 -0
- package/src/aspect-ratio/aspect-ratio.css +131 -0
- package/src/aspect-ratio/aspect-ratio.tokens.json +1 -0
- package/src/attachment/attachment.css +906 -0
- package/src/attachment/attachment.tokens.json +85 -0
- package/src/avatar/avatar.css +598 -0
- package/src/avatar/avatar.tokens.json +64 -0
- package/src/avatar-group/avatar-group.css +268 -0
- package/src/avatar-group/avatar-group.tokens.json +16 -0
- package/src/badge/badge.css +462 -0
- package/src/badge/badge.tokens.json +58 -0
- package/src/breadcrumb/breadcrumb.css +441 -0
- package/src/breadcrumb/breadcrumb.tokens.json +50 -0
- package/src/button/button.css +754 -0
- package/src/button/button.tokens.json +72 -0
- package/src/button-group/button-group.css +455 -0
- package/src/button-group/button-group.tokens.json +11 -0
- package/src/calendar/calendar.css +846 -0
- package/src/calendar/calendar.tokens.json +67 -0
- package/src/card/card.css +602 -0
- package/src/card/card.tokens.json +68 -0
- package/src/carousel/carousel.css +860 -0
- package/src/carousel/carousel.tokens.json +62 -0
- package/src/cascader/cascader.css +1320 -0
- package/src/cascader/cascader.tokens.json +103 -0
- package/src/chart/chart.css +1473 -0
- package/src/chart/chart.tokens.json +107 -0
- package/src/checkbox/checkbox.css +1011 -0
- package/src/checkbox/checkbox.tokens.json +102 -0
- package/src/checkbox-group/checkbox-group.css +70 -0
- package/src/checkbox-group/checkbox-group.tokens.json +6 -0
- package/src/code-block/code-block.css +555 -0
- package/src/code-block/code-block.tokens.json +69 -0
- package/src/collapsible/collapsible.css +546 -0
- package/src/collapsible/collapsible.tokens.json +55 -0
- package/src/color-picker/color-picker.css +607 -0
- package/src/color-picker/color-picker.tokens.json +58 -0
- package/src/column-manager/column-manager.css +452 -0
- package/src/column-manager/column-manager.tokens.json +43 -0
- package/src/combobox/combobox.css +1048 -0
- package/src/combobox/combobox.tokens.json +112 -0
- package/src/command-palette/command-palette.css +1000 -0
- package/src/command-palette/command-palette.tokens.json +75 -0
- package/src/container/container.css +198 -0
- package/src/container/container.tokens.json +18 -0
- package/src/context-menu/context-menu.css +104 -0
- package/src/context-menu/context-menu.tokens.json +11 -0
- package/src/currency-field/currency-field.css +787 -0
- package/src/currency-field/currency-field.tokens.json +80 -0
- package/src/dashboard-grid/dashboard-grid.css +748 -0
- package/src/dashboard-grid/dashboard-grid.tokens.json +67 -0
- package/src/data-grid/data-grid.css +2484 -0
- package/src/data-grid/data-grid.tokens.json +100 -0
- package/src/data-list/data-list.css +455 -0
- package/src/data-list/data-list.tokens.json +35 -0
- package/src/date-field/date-field.css +560 -0
- package/src/date-field/date-field.tokens.json +80 -0
- package/src/date-picker/date-picker.css +420 -0
- package/src/date-picker/date-picker.tokens.json +49 -0
- package/src/date-range-picker/date-range-picker.css +983 -0
- package/src/date-range-picker/date-range-picker.tokens.json +109 -0
- package/src/datetime-field/datetime-field.css +850 -0
- package/src/datetime-field/datetime-field.tokens.json +91 -0
- package/src/datetime-picker/datetime-picker.css +843 -0
- package/src/datetime-picker/datetime-picker.tokens.json +78 -0
- package/src/datetime-range-picker/datetime-range-picker.css +1375 -0
- package/src/datetime-range-picker/datetime-range-picker.tokens.json +135 -0
- package/src/description-list/description-list.css +675 -0
- package/src/description-list/description-list.tokens.json +66 -0
- package/src/detail-panel/detail-panel.css +329 -0
- package/src/detail-panel/detail-panel.tokens.json +33 -0
- package/src/dialog/dialog.css +968 -0
- package/src/dialog/dialog.tokens.json +66 -0
- package/src/divider/divider.css +131 -0
- package/src/divider/divider.tokens.json +18 -0
- package/src/drawer/drawer.css +1303 -0
- package/src/drawer/drawer.tokens.json +75 -0
- package/src/entity-picker/entity-picker.css +1367 -0
- package/src/entity-picker/entity-picker.tokens.json +118 -0
- package/src/event-calendar/event-calendar.css +2148 -0
- package/src/event-calendar/event-calendar.tokens.json +87 -0
- package/src/field/field.css +707 -0
- package/src/field/field.tokens.json +58 -0
- package/src/field-group/field-group.css +226 -0
- package/src/field-group/field-group.tokens.json +33 -0
- package/src/filter-bar/filter-bar.css +1306 -0
- package/src/filter-bar/filter-bar.tokens.json +78 -0
- package/src/form/form.css +218 -0
- package/src/form/form.tokens.json +32 -0
- package/src/fullscreen/fullscreen.css +376 -0
- package/src/fullscreen/fullscreen.tokens.json +50 -0
- package/src/grid/grid.css +173 -0
- package/src/grid/grid.tokens.json +20 -0
- package/src/highlight/highlight.css +135 -0
- package/src/highlight/highlight.tokens.json +16 -0
- package/src/hover-card/hover-card.css +93 -0
- package/src/hover-card/hover-card.tokens.json +17 -0
- package/src/icon/icon.css +136 -0
- package/src/icon/icon.tokens.json +14 -0
- package/src/image/image.css +449 -0
- package/src/image/image.tokens.json +27 -0
- package/src/import-export-center/import-export-center.css +1175 -0
- package/src/import-export-center/import-export-center.tokens.json +84 -0
- package/src/inline/inline.css +149 -0
- package/src/inline/inline.tokens.json +14 -0
- package/src/inline-message/inline-message.css +396 -0
- package/src/inline-message/inline-message.tokens.json +19 -0
- package/src/kbd/kbd.css +490 -0
- package/src/kbd/kbd.tokens.json +40 -0
- package/src/link/link.css +237 -0
- package/src/link/link.tokens.json +25 -0
- package/src/list/list.css +240 -0
- package/src/list/list.tokens.json +42 -0
- package/src/list-item/list-item.css +937 -0
- package/src/list-item/list-item.tokens.json +114 -0
- package/src/listbox/listbox.css +674 -0
- package/src/listbox/listbox.tokens.json +72 -0
- package/src/loading-overlay/loading-overlay.css +730 -0
- package/src/loading-overlay/loading-overlay.tokens.json +48 -0
- package/src/markdown/markdown.css +168 -0
- package/src/markdown/markdown.tokens.json +18 -0
- package/src/menu/menu.css +817 -0
- package/src/menu/menu.tokens.json +78 -0
- package/src/menubar/menubar.css +170 -0
- package/src/menubar/menubar.tokens.json +32 -0
- package/src/message/message.css +1453 -0
- package/src/message/message.tokens.json +85 -0
- package/src/message-scroller/message-scroller.css +371 -0
- package/src/message-scroller/message-scroller.tokens.json +47 -0
- package/src/multi-select/multi-select.css +1427 -0
- package/src/multi-select/multi-select.tokens.json +114 -0
- package/src/navigation-menu/navigation-menu.css +1029 -0
- package/src/navigation-menu/navigation-menu.tokens.json +70 -0
- package/src/notification-center/notification-center.css +856 -0
- package/src/notification-center/notification-center.tokens.json +84 -0
- package/src/number-field/number-field.css +794 -0
- package/src/number-field/number-field.tokens.json +80 -0
- package/src/otp-input/otp-input.css +525 -0
- package/src/otp-input/otp-input.tokens.json +69 -0
- package/src/page/page.css +179 -0
- package/src/page/page.tokens.json +20 -0
- package/src/page-header/page-header.css +1181 -0
- package/src/page-header/page-header.tokens.json +71 -0
- package/src/pagination/pagination.css +500 -0
- package/src/pagination/pagination.tokens.json +56 -0
- package/src/popover/popover.css +526 -0
- package/src/popover/popover.tokens.json +60 -0
- package/src/progress-indicator/progress-indicator.css +1584 -0
- package/src/progress-indicator/progress-indicator.tokens.json +50 -0
- package/src/prompt-composer/prompt-composer.css +680 -0
- package/src/prompt-composer/prompt-composer.tokens.json +99 -0
- package/src/prose/prose.css +733 -0
- package/src/prose/prose.tokens.json +79 -0
- package/src/radio-group/radio-group.css +778 -0
- package/src/radio-group/radio-group.tokens.json +103 -0
- package/src/rating/rating.css +1071 -0
- package/src/rating/rating.tokens.json +88 -0
- package/src/result-state/result-state.css +980 -0
- package/src/result-state/result-state.tokens.json +63 -0
- package/src/runtime-properties.mjs +321 -0
- package/src/saved-views/saved-views.css +394 -0
- package/src/saved-views/saved-views.tokens.json +41 -0
- package/src/scroll-area/scroll-area.css +481 -0
- package/src/scroll-area/scroll-area.tokens.json +15 -0
- package/src/section/section.css +177 -0
- package/src/section/section.tokens.json +39 -0
- package/src/segmented-control/segmented-control.css +564 -0
- package/src/segmented-control/segmented-control.tokens.json +67 -0
- package/src/select/select.css +1593 -0
- package/src/select/select.tokens.json +110 -0
- package/src/side-navigation/side-navigation.css +1096 -0
- package/src/side-navigation/side-navigation.tokens.json +87 -0
- package/src/skeleton/skeleton.css +431 -0
- package/src/skeleton/skeleton.tokens.json +29 -0
- package/src/slider/slider.css +792 -0
- package/src/slider/slider.tokens.json +75 -0
- package/src/sparkline/sparkline.css +282 -0
- package/src/sparkline/sparkline.tokens.json +45 -0
- package/src/spinner/spinner.css +224 -0
- package/src/spinner/spinner.tokens.json +8 -0
- package/src/split-button/split-button.css +253 -0
- package/src/split-button/split-button.tokens.json +12 -0
- package/src/splitter/splitter.css +336 -0
- package/src/splitter/splitter.tokens.json +24 -0
- package/src/stack/stack.css +128 -0
- package/src/stack/stack.tokens.json +14 -0
- package/src/stat-card/stat-card.css +641 -0
- package/src/stat-card/stat-card.tokens.json +95 -0
- package/src/status-indicator/status-indicator.css +481 -0
- package/src/status-indicator/status-indicator.tokens.json +38 -0
- package/src/stepper/stepper.css +629 -0
- package/src/stepper/stepper.tokens.json +72 -0
- package/src/switch/switch.css +703 -0
- package/src/switch/switch.tokens.json +75 -0
- package/src/table/table.css +1482 -0
- package/src/table/table.tokens.json +69 -0
- package/src/table-of-contents/table-of-contents.css +533 -0
- package/src/table-of-contents/table-of-contents.tokens.json +53 -0
- package/src/tabs/tabs.css +998 -0
- package/src/tabs/tabs.tokens.json +82 -0
- package/src/tag/tag.css +768 -0
- package/src/tag/tag.tokens.json +85 -0
- package/src/tags-input/tags-input.css +757 -0
- package/src/tags-input/tags-input.tokens.json +84 -0
- package/src/text-field/text-field.css +900 -0
- package/src/text-field/text-field.tokens.json +87 -0
- package/src/textarea/textarea.css +365 -0
- package/src/textarea/textarea.tokens.json +59 -0
- package/src/time-field/time-field.css +719 -0
- package/src/time-field/time-field.tokens.json +86 -0
- package/src/time-picker/time-picker.css +665 -0
- package/src/time-picker/time-picker.tokens.json +66 -0
- package/src/time-range-picker/time-range-picker.css +1287 -0
- package/src/time-range-picker/time-range-picker.tokens.json +134 -0
- package/src/timeline/timeline.css +1596 -0
- package/src/timeline/timeline.tokens.json +96 -0
- package/src/toast/toast.css +943 -0
- package/src/toast/toast.tokens.json +90 -0
- package/src/toggle/toggle.css +290 -0
- package/src/toggle/toggle.tokens.json +54 -0
- package/src/toggle-group/toggle-group.css +463 -0
- package/src/toggle-group/toggle-group.tokens.json +54 -0
- package/src/toolbar/toolbar.css +434 -0
- package/src/toolbar/toolbar.tokens.json +49 -0
- package/src/tooltip/tooltip.css +368 -0
- package/src/tooltip/tooltip.tokens.json +39 -0
- package/src/top-navigation/top-navigation.css +1287 -0
- package/src/top-navigation/top-navigation.tokens.json +91 -0
- package/src/tour/tour.css +680 -0
- package/src/tour/tour.tokens.json +67 -0
- package/src/transfer/transfer.css +571 -0
- package/src/transfer/transfer.tokens.json +49 -0
- package/src/tree/tree.css +1000 -0
- package/src/tree/tree.tokens.json +80 -0
- package/src/typography/typography.css +211 -0
- package/src/typography/typography.tokens.json +31 -0
- package/src/upload/upload.css +1706 -0
- package/src/upload/upload.tokens.json +123 -0
- package/src/visually-hidden/visually-hidden.css +52 -0
- package/src/visually-hidden/visually-hidden.tokens.json +1 -0
- package/src/wizard/wizard.css +740 -0
- package/src/wizard/wizard.tokens.json +63 -0
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
@layer slotted.components {
|
|
2
|
+
/**
|
|
3
|
+
* ── A region, and the control that gives it the whole screen ───────────
|
|
4
|
+
*
|
|
5
|
+
* At rest the region paints nothing: it is the container the consumer
|
|
6
|
+
* already had, and the family owes it no ground, no edge and no inset. The
|
|
7
|
+
* picture this sheet owns is the region while it is full screen, in either
|
|
8
|
+
* of the two ways `@slotted/core/fullscreen` answers with, and the control.
|
|
9
|
+
*
|
|
10
|
+
* `native` is the Fullscreen API. The agent's own sheet already makes the
|
|
11
|
+
* element fill the screen (`position: fixed`, `inset: 0`, `inline-size` and
|
|
12
|
+
* `block-size` at `100%`, `transform: none`, every one `!important`) and
|
|
13
|
+
* draws a black `::backdrop` behind it. What it does not draw is a ground:
|
|
14
|
+
* an element with none shows the black through it, so a region of text
|
|
15
|
+
* went full screen as text on black. The ground is the theme's page ground,
|
|
16
|
+
* and the backdrop takes the same colour so the edge of the region never
|
|
17
|
+
* shows.
|
|
18
|
+
*
|
|
19
|
+
* `layout` is the same picture drawn by this sheet, fixed over the viewport
|
|
20
|
+
* inside the page, for the page that may not ask the agent: a phone's
|
|
21
|
+
* browser, an iframe without `allow="fullscreen"`, a refused request. The
|
|
22
|
+
* two ways are one component; only `data-mode` tells them apart.
|
|
23
|
+
*/
|
|
24
|
+
[data-ui='fullscreen'][data-part='root'][data-fullscreen] {
|
|
25
|
+
/* The region is the viewport in full screen, so the viewport is what the
|
|
26
|
+
inset answers: the page step on a desktop, down to the small step on a
|
|
27
|
+
phone, where twenty-four pixels a side is an eighth of the width. */
|
|
28
|
+
--_inset: var(
|
|
29
|
+
--slotted-fullscreen-inset,
|
|
30
|
+
clamp(var(--slotted-space-5, 0.75rem), 5vw, var(--slotted-space-8, 1.5rem))
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
background-color: var(--slotted-fullscreen-surface, var(--slotted-surface, Canvas));
|
|
34
|
+
/* A full screen has no edge to round and no frame to draw. */
|
|
35
|
+
border: 0;
|
|
36
|
+
border-radius: 0;
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
color: var(--slotted-text, CanvasText);
|
|
39
|
+
/**
|
|
40
|
+
* The region scrolls by itself when its content is taller than the
|
|
41
|
+
* screen, and the scroll does not chain to the page underneath, which in
|
|
42
|
+
* `layout` is still there and locked.
|
|
43
|
+
*/
|
|
44
|
+
overflow: auto;
|
|
45
|
+
overscroll-behavior: contain;
|
|
46
|
+
/**
|
|
47
|
+
* The inset, and never less than the safe area: a phone held sideways
|
|
48
|
+
* puts its notch over the inline edges, and a home indicator over the
|
|
49
|
+
* block end. The safe area is physical and this sheet is logical, so the
|
|
50
|
+
* inline inset takes the larger of the two sides for both — a pixel of
|
|
51
|
+
* symmetry spent against a notch on the wrong side in right-to-left.
|
|
52
|
+
*/
|
|
53
|
+
padding-block-end: max(var(--_inset), env(safe-area-inset-bottom, 0px));
|
|
54
|
+
padding-block-start: max(var(--_inset), env(safe-area-inset-top, 0px));
|
|
55
|
+
padding-inline: max(
|
|
56
|
+
var(--_inset),
|
|
57
|
+
env(safe-area-inset-left, 0px),
|
|
58
|
+
env(safe-area-inset-right, 0px)
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* ── The height ────────────────────────────────────────────────────────
|
|
64
|
+
*
|
|
65
|
+
* The agent stretches the fullscreen element and none of its children, and
|
|
66
|
+
* so does `inset: 0` in the layout: the region filled the screen and its
|
|
67
|
+
* content kept its own height, a chart the size of a card at the top of an
|
|
68
|
+
* empty screen. The width never had the problem, because a block child
|
|
69
|
+
* stretches across its container; the height is the axis this sheet owes.
|
|
70
|
+
*
|
|
71
|
+
* The region becomes a column. It is written in the library's layer and
|
|
72
|
+
* not `!important`, unlike the geometry of the layout: a consumer who gave
|
|
73
|
+
* the region a grid or a flex of their own keeps it, and a grid of definite
|
|
74
|
+
* height already stretches its rows. A child keeps at least its own height
|
|
75
|
+
* (the automatic minimum of a flex item), so content taller than the screen
|
|
76
|
+
* still scrolls in the region.
|
|
77
|
+
*/
|
|
78
|
+
[data-ui='fullscreen'][data-part='root'][data-fullscreen] {
|
|
79
|
+
display: flex;
|
|
80
|
+
flex-direction: column;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* The content part takes the height the other children leave — a header
|
|
85
|
+
* above it, a footer under it — and is never shorter than what it holds.
|
|
86
|
+
* Its first child takes that height; any child after it keeps its own, so
|
|
87
|
+
* a caption under a chart stays a line rather than half the screen. Two
|
|
88
|
+
* things that share the height are a layout of the consumer's inside the
|
|
89
|
+
* first child. The grid exists only in full screen: at rest the part is
|
|
90
|
+
* whatever the consumer made it.
|
|
91
|
+
*
|
|
92
|
+
* A direct child carrying the family's own identifier, as the control
|
|
93
|
+
* does. `content` is also the name of the layer of `select`, `popover` and
|
|
94
|
+
* `dialog`, and the portal puts those layers inside the region while it is
|
|
95
|
+
* full screen; a descendant selector on the part alone turned an open list
|
|
96
|
+
* into a grid. A flex share only reaches a direct child in any case.
|
|
97
|
+
*/
|
|
98
|
+
[data-ui='fullscreen'][data-part='root'][data-fullscreen]
|
|
99
|
+
> [data-ui='fullscreen'][data-part='content'] {
|
|
100
|
+
display: grid;
|
|
101
|
+
flex: 1 0 auto;
|
|
102
|
+
grid-template-columns: minmax(0, 1fr);
|
|
103
|
+
grid-template-rows: minmax(min-content, 1fr);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* A region with one child and no content part gives that child the
|
|
108
|
+
* height: the panel or the card a region most often is. The control is
|
|
109
|
+
* never that child's stand-in — a region holding only its control has
|
|
110
|
+
* nothing to fill.
|
|
111
|
+
*
|
|
112
|
+
* One child, not counting the portal's root. In native full screen
|
|
113
|
+
* `@slotted/core/portal` appends its root to the region so a menu opened
|
|
114
|
+
* inside is painted; `:only-child` would stop matching the moment the
|
|
115
|
+
* menu opened, and the panel would drop to its own height under it. The
|
|
116
|
+
* root is always appended last.
|
|
117
|
+
*/
|
|
118
|
+
[data-ui='fullscreen'][data-part='root'][data-fullscreen]
|
|
119
|
+
> :first-child:is(:last-child, :has(+ [data-slotted-portal]:last-child)):not(
|
|
120
|
+
[data-part='trigger'],
|
|
121
|
+
img,
|
|
122
|
+
video,
|
|
123
|
+
canvas
|
|
124
|
+
) {
|
|
125
|
+
flex: 1 0 auto;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* A lone picture, film or canvas fills the height as well, and keeps its
|
|
130
|
+
* ratio inside it: `object-fit: contain`, the answer the agent's own sheet
|
|
131
|
+
* gives a video in full screen. It may shrink below its natural height,
|
|
132
|
+
* which a photograph taller than the screen has to.
|
|
133
|
+
*/
|
|
134
|
+
[data-ui='fullscreen'][data-part='root'][data-fullscreen]
|
|
135
|
+
> :is(img, video, canvas):first-child:is(
|
|
136
|
+
:last-child,
|
|
137
|
+
:has(+ [data-slotted-portal]:last-child)
|
|
138
|
+
) {
|
|
139
|
+
flex: 1 1 0;
|
|
140
|
+
inline-size: 100%;
|
|
141
|
+
min-block-size: 0;
|
|
142
|
+
object-fit: contain;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
[data-ui='fullscreen'][data-part='root']::backdrop {
|
|
146
|
+
background-color: var(--slotted-fullscreen-surface, var(--slotted-surface, Canvas));
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* ── In the layout ─────────────────────────────────────────────────────
|
|
151
|
+
*
|
|
152
|
+
* Fixed over the viewport at the overlay step plus the layer's depth in
|
|
153
|
+
* the one stack `dismissable-layer` keeps, the formula `dialog` reads: a
|
|
154
|
+
* menu or a select opened from inside the region registers after it and
|
|
155
|
+
* stands above it.
|
|
156
|
+
*
|
|
157
|
+
* The geometry is `!important`, as the agent's own sheet makes it for
|
|
158
|
+
* `native`. The root is the consumer's container, so the consumer's
|
|
159
|
+
* unlayered stylesheet styles it and beats this layer: a card written
|
|
160
|
+
* `position: relative` with a margin and a width stayed a card inside the
|
|
161
|
+
* page and never covered it. Nothing else here is `!important` — the ground,
|
|
162
|
+
* the edge and the inset stay the consumer's to change in full screen.
|
|
163
|
+
*/
|
|
164
|
+
[data-ui='fullscreen'][data-part='root'][data-mode='layout'] {
|
|
165
|
+
animation: slotted-fullscreen-enter var(--slotted-duration-short) var(--slotted-easing-enter);
|
|
166
|
+
block-size: auto !important;
|
|
167
|
+
inline-size: auto !important;
|
|
168
|
+
inset: 0 !important;
|
|
169
|
+
margin: 0 !important;
|
|
170
|
+
max-block-size: none !important;
|
|
171
|
+
max-inline-size: none !important;
|
|
172
|
+
min-block-size: 0 !important;
|
|
173
|
+
min-inline-size: 0 !important;
|
|
174
|
+
position: fixed !important;
|
|
175
|
+
transform: none !important;
|
|
176
|
+
z-index: calc(var(--slotted-z-index-overlay, 1000) + var(--slotted-layer-depth, 0)) !important;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* The ground arrives rather than the region jumping: a fade from the page
|
|
181
|
+
* to the region's own ground, over the short step. The agent does its own
|
|
182
|
+
* transition for `native`, so only `layout` animates. Nothing moves, so
|
|
183
|
+
* reduced motion keeps the step at the foundation's collapsed duration.
|
|
184
|
+
*/
|
|
185
|
+
@keyframes slotted-fullscreen-enter {
|
|
186
|
+
from {
|
|
187
|
+
opacity: 0;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* ── The control ───────────────────────────────────────────────────────
|
|
193
|
+
*
|
|
194
|
+
* A button whose words and mark say what the press does next: "Full
|
|
195
|
+
* screen" beside the four corners opening, "Exit full screen" beside the
|
|
196
|
+
* four corners closing. It is not a toggle: the Button pattern says a
|
|
197
|
+
* control whose label changes with its state is not announced as pressed,
|
|
198
|
+
* so it carries no `aria-pressed` and no "on" colour. The geometry is the
|
|
199
|
+
* control scale's, the same box `toggle` and `button` stand in, so the
|
|
200
|
+
* control sits in a toolbar beside them without a pixel of difference.
|
|
201
|
+
*/
|
|
202
|
+
[data-ui='fullscreen'][data-part='trigger'] {
|
|
203
|
+
--_height: var(--slotted-control-height-md, 34px);
|
|
204
|
+
--_padding-inline: var(--slotted-control-padding-inline-md, 13px);
|
|
205
|
+
--_font-size: var(--slotted-control-font-size-md, 13px);
|
|
206
|
+
--_icon-size: var(--slotted-control-icon-size-md, 16px);
|
|
207
|
+
--_gap: var(--slotted-control-gap-md, 8px);
|
|
208
|
+
|
|
209
|
+
align-items: center;
|
|
210
|
+
appearance: none;
|
|
211
|
+
background: transparent;
|
|
212
|
+
block-size: var(--_height);
|
|
213
|
+
/* Always a border, so the outline variant's edge never moves the label. */
|
|
214
|
+
border: var(--slotted-control-border-width, 1px) solid transparent;
|
|
215
|
+
border-radius: var(--slotted-fullscreen-trigger-radius, var(--slotted-control-radius, 4px));
|
|
216
|
+
box-sizing: border-box;
|
|
217
|
+
color: var(--slotted-fullscreen-trigger-color, var(--slotted-text, ButtonText));
|
|
218
|
+
cursor: pointer;
|
|
219
|
+
display: inline-flex;
|
|
220
|
+
/* It gives way beside a title in a narrow bar: the words clip, the mark and
|
|
221
|
+
the square the height sets stay. */
|
|
222
|
+
flex: 0 1 auto;
|
|
223
|
+
font-family: var(--slotted-control-font-family, ui-sans-serif, system-ui, sans-serif);
|
|
224
|
+
font-size: var(--_font-size);
|
|
225
|
+
font-weight: var(--slotted-control-font-weight, 600);
|
|
226
|
+
gap: var(--_gap);
|
|
227
|
+
justify-content: center;
|
|
228
|
+
letter-spacing: var(--slotted-control-letter-spacing, 0);
|
|
229
|
+
line-height: var(--slotted-control-line-height, 1);
|
|
230
|
+
margin: 0;
|
|
231
|
+
max-inline-size: 100%;
|
|
232
|
+
min-inline-size: var(--_height);
|
|
233
|
+
padding-block: 0;
|
|
234
|
+
padding-inline: var(--_padding-inline);
|
|
235
|
+
position: relative;
|
|
236
|
+
touch-action: manipulation;
|
|
237
|
+
transition:
|
|
238
|
+
background-color var(--slotted-control-transition-duration)
|
|
239
|
+
var(--slotted-control-transition-easing),
|
|
240
|
+
border-color var(--slotted-control-transition-duration)
|
|
241
|
+
var(--slotted-control-transition-easing),
|
|
242
|
+
color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);
|
|
243
|
+
user-select: none;
|
|
244
|
+
vertical-align: middle;
|
|
245
|
+
-webkit-tap-highlight-color: transparent;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/* ── Size ─────────────────────────────────────────────────────────────── */
|
|
249
|
+
|
|
250
|
+
[data-ui='fullscreen'][data-part='trigger'][data-size='sm'] {
|
|
251
|
+
--_height: var(--slotted-control-height-sm, 30px);
|
|
252
|
+
--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);
|
|
253
|
+
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
254
|
+
--_icon-size: var(--slotted-control-icon-size-sm, 14px);
|
|
255
|
+
--_gap: var(--slotted-control-gap-sm, 6px);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
[data-ui='fullscreen'][data-part='trigger'][data-size='lg'] {
|
|
259
|
+
--_height: var(--slotted-control-height-lg, 38px);
|
|
260
|
+
--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);
|
|
261
|
+
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
262
|
+
--_icon-size: var(--slotted-control-icon-size-lg, 18px);
|
|
263
|
+
--_gap: var(--slotted-control-gap-lg, 8px);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/* ── Content ──────────────────────────────────────────────────────────── */
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* The slot sizes what it holds: the family's own mark, an `Icon` the binding
|
|
270
|
+
* draws from the state (four corners opening, four corners closing), or a
|
|
271
|
+
* consumer's icon placed in its stead, each at the control's icon step and
|
|
272
|
+
* in the host's ink.
|
|
273
|
+
*/
|
|
274
|
+
[data-ui='fullscreen'] [data-part='icon'] {
|
|
275
|
+
--slotted-icon-size: var(--_icon-size);
|
|
276
|
+
|
|
277
|
+
block-size: var(--_icon-size);
|
|
278
|
+
display: inline-flex;
|
|
279
|
+
flex: none;
|
|
280
|
+
font-size: var(--_icon-size);
|
|
281
|
+
inline-size: var(--_icon-size);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
[data-ui='fullscreen'] [data-part='icon'] > * {
|
|
285
|
+
block-size: 100%;
|
|
286
|
+
display: block;
|
|
287
|
+
inline-size: 100%;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* The words stay on one line and clip with an ellipsis when a narrow
|
|
292
|
+
* container is shorter than a translated label; the string stays whole in
|
|
293
|
+
* the DOM and in the accessible name.
|
|
294
|
+
*/
|
|
295
|
+
[data-ui='fullscreen'] [data-part='label'] {
|
|
296
|
+
min-inline-size: 0;
|
|
297
|
+
overflow: hidden;
|
|
298
|
+
text-overflow: ellipsis;
|
|
299
|
+
white-space: nowrap;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Icon only: a square holding the mark, and the words kept for a screen
|
|
304
|
+
* reader. The label is visually hidden rather than removed, which keeps
|
|
305
|
+
* the accessible name the label the state gives it.
|
|
306
|
+
*/
|
|
307
|
+
[data-ui='fullscreen'][data-part='trigger'][data-icon-only] {
|
|
308
|
+
inline-size: var(--_height);
|
|
309
|
+
padding-inline: 0;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
[data-ui='fullscreen'][data-part='trigger'][data-icon-only] [data-part='label'] {
|
|
313
|
+
block-size: 1px;
|
|
314
|
+
clip-path: inset(50%);
|
|
315
|
+
inline-size: 1px;
|
|
316
|
+
margin: -1px;
|
|
317
|
+
overflow: hidden;
|
|
318
|
+
position: absolute;
|
|
319
|
+
white-space: nowrap;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/* ── The edge ─────────────────────────────────────────────────────────── */
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* An outline control over a region of photographs or a chart in full
|
|
326
|
+
* screen needs its own ground, or the edge is all that separates the words
|
|
327
|
+
* from what is behind them.
|
|
328
|
+
*/
|
|
329
|
+
[data-ui='fullscreen'][data-part='trigger'][data-variant='outline'] {
|
|
330
|
+
background-color: var(--slotted-control-surface, ButtonFace);
|
|
331
|
+
border-color: var(
|
|
332
|
+
--slotted-fullscreen-trigger-border-color,
|
|
333
|
+
var(--slotted-control-border-color, ButtonBorder)
|
|
334
|
+
);
|
|
335
|
+
box-shadow: var(--slotted-control-shadow, none);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/* ── Hover and press, held back for disabled ─────────────────────────── */
|
|
339
|
+
|
|
340
|
+
[data-ui='fullscreen'][data-part='trigger']:hover:not(:disabled):not([data-disabled]) {
|
|
341
|
+
background-color: var(
|
|
342
|
+
--slotted-fullscreen-trigger-hover-background,
|
|
343
|
+
var(--slotted-tone-secondary-subtle-hover, ButtonFace)
|
|
344
|
+
);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
[data-ui='fullscreen'][data-part='trigger']:active:not(:disabled):not([data-disabled]) {
|
|
348
|
+
background-color: var(
|
|
349
|
+
--slotted-fullscreen-trigger-active-background,
|
|
350
|
+
var(--slotted-tone-secondary-subtle-active, ButtonFace)
|
|
351
|
+
);
|
|
352
|
+
transition-duration: var(--slotted-duration-instant);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/* ── Focus ────────────────────────────────────────────────────────────── */
|
|
356
|
+
|
|
357
|
+
[data-ui='fullscreen'][data-part='trigger']:focus-visible {
|
|
358
|
+
outline: var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);
|
|
359
|
+
outline-offset: var(--slotted-focus-ring-offset, 2px);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/* ── Disabled ─────────────────────────────────────────────────────────── */
|
|
363
|
+
|
|
364
|
+
[data-ui='fullscreen'][data-part='trigger']:disabled,
|
|
365
|
+
[data-ui='fullscreen'][data-part='trigger'][data-disabled] {
|
|
366
|
+
background-color: transparent;
|
|
367
|
+
color: var(--slotted-disabled-foreground, GrayText);
|
|
368
|
+
cursor: not-allowed;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
[data-ui='fullscreen'][data-part='trigger'][data-variant='outline']:disabled,
|
|
372
|
+
[data-ui='fullscreen'][data-part='trigger'][data-variant='outline'][data-disabled] {
|
|
373
|
+
border-color: var(--slotted-disabled-border, GrayText);
|
|
374
|
+
box-shadow: none;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
[
|
|
2
|
+
"--slotted-control-border-color",
|
|
3
|
+
"--slotted-control-border-width",
|
|
4
|
+
"--slotted-control-font-family",
|
|
5
|
+
"--slotted-control-font-size-lg",
|
|
6
|
+
"--slotted-control-font-size-md",
|
|
7
|
+
"--slotted-control-font-size-sm",
|
|
8
|
+
"--slotted-control-font-weight",
|
|
9
|
+
"--slotted-control-gap-lg",
|
|
10
|
+
"--slotted-control-gap-md",
|
|
11
|
+
"--slotted-control-gap-sm",
|
|
12
|
+
"--slotted-control-height-lg",
|
|
13
|
+
"--slotted-control-height-md",
|
|
14
|
+
"--slotted-control-height-sm",
|
|
15
|
+
"--slotted-control-icon-size-lg",
|
|
16
|
+
"--slotted-control-icon-size-md",
|
|
17
|
+
"--slotted-control-icon-size-sm",
|
|
18
|
+
"--slotted-control-letter-spacing",
|
|
19
|
+
"--slotted-control-line-height",
|
|
20
|
+
"--slotted-control-padding-inline-lg",
|
|
21
|
+
"--slotted-control-padding-inline-md",
|
|
22
|
+
"--slotted-control-padding-inline-sm",
|
|
23
|
+
"--slotted-control-radius",
|
|
24
|
+
"--slotted-control-shadow",
|
|
25
|
+
"--slotted-control-surface",
|
|
26
|
+
"--slotted-control-transition-duration",
|
|
27
|
+
"--slotted-control-transition-easing",
|
|
28
|
+
"--slotted-disabled-border",
|
|
29
|
+
"--slotted-disabled-foreground",
|
|
30
|
+
"--slotted-duration-instant",
|
|
31
|
+
"--slotted-duration-short",
|
|
32
|
+
"--slotted-easing-enter",
|
|
33
|
+
"--slotted-focus-ring-color",
|
|
34
|
+
"--slotted-focus-ring-offset",
|
|
35
|
+
"--slotted-focus-ring-width",
|
|
36
|
+
"--slotted-fullscreen-inset",
|
|
37
|
+
"--slotted-fullscreen-surface",
|
|
38
|
+
"--slotted-fullscreen-trigger-active-background",
|
|
39
|
+
"--slotted-fullscreen-trigger-border-color",
|
|
40
|
+
"--slotted-fullscreen-trigger-color",
|
|
41
|
+
"--slotted-fullscreen-trigger-hover-background",
|
|
42
|
+
"--slotted-fullscreen-trigger-radius",
|
|
43
|
+
"--slotted-space-5",
|
|
44
|
+
"--slotted-space-8",
|
|
45
|
+
"--slotted-surface",
|
|
46
|
+
"--slotted-text",
|
|
47
|
+
"--slotted-tone-secondary-subtle-active",
|
|
48
|
+
"--slotted-tone-secondary-subtle-hover",
|
|
49
|
+
"--slotted-z-index-overlay"
|
|
50
|
+
]
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
@layer slotted.components {
|
|
2
|
+
/**
|
|
3
|
+
* Grid arranges its children across two axes and reflows by measuring itself,
|
|
4
|
+
* not the viewport. It paints nothing: a layout that carried a colour would be
|
|
5
|
+
* a surface, and a surface is another family's decision.
|
|
6
|
+
*
|
|
7
|
+
* Without a stated column count the track list is as many equal tracks as fit
|
|
8
|
+
* while each stays at or above `minItemWidth`. `min(100%, …)` is what keeps a
|
|
9
|
+
* minimum wider than the container from overflowing it: at 240 pixels the grid
|
|
10
|
+
* becomes one full-width track instead of one track hanging past the edge.
|
|
11
|
+
*
|
|
12
|
+
* `auto-fit` is used here so a single child fills the row rather than sitting
|
|
13
|
+
* alone at its minimum.
|
|
14
|
+
*/
|
|
15
|
+
[data-ui='grid'] {
|
|
16
|
+
--_gap: var(--slotted-space-6, 1rem);
|
|
17
|
+
--_min-item: var(--slotted-grid-min-item-width-md, 16rem);
|
|
18
|
+
|
|
19
|
+
display: grid;
|
|
20
|
+
gap: var(--_gap);
|
|
21
|
+
grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--_min-item)), 1fr));
|
|
22
|
+
/**
|
|
23
|
+
* A flex or grid item is at least as wide as its content unless it is told
|
|
24
|
+
* otherwise, so a grid nested in one would refuse to narrow below its widest
|
|
25
|
+
* child and push the layout past the edge instead of reflowing.
|
|
26
|
+
*/
|
|
27
|
+
min-inline-size: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* A stated count is a ceiling, not a promise: the track is the larger of the
|
|
32
|
+
* minimum and the share each column would take, so twelve columns become six
|
|
33
|
+
* and then one as the container narrows, with no breakpoint and no container
|
|
34
|
+
* query anywhere in the family. The count reaches CSS as a custom property
|
|
35
|
+
* because a track function cannot read an integer from an attribute.
|
|
36
|
+
*
|
|
37
|
+
* `auto-fill` is used here so two children in a three-column grid occupy two
|
|
38
|
+
* thirds of it rather than stretching across the whole row.
|
|
39
|
+
*/
|
|
40
|
+
[data-ui='grid'][data-columns] {
|
|
41
|
+
grid-template-columns: repeat(
|
|
42
|
+
auto-fill,
|
|
43
|
+
minmax(
|
|
44
|
+
min(
|
|
45
|
+
100%,
|
|
46
|
+
max(
|
|
47
|
+
var(--_min-item),
|
|
48
|
+
(100% - (var(--slotted-grid-columns, 1) - 1) * var(--_gap)) /
|
|
49
|
+
var(--slotted-grid-columns, 1)
|
|
50
|
+
)
|
|
51
|
+
),
|
|
52
|
+
1fr
|
|
53
|
+
)
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Separation is a step on the scale, never a length the consumer states. */
|
|
58
|
+
[data-ui='grid'][data-gap='0'] {
|
|
59
|
+
--_gap: 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
[data-ui='grid'][data-gap='1'] {
|
|
63
|
+
--_gap: var(--slotted-space-1, 0.125rem);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
[data-ui='grid'][data-gap='2'] {
|
|
67
|
+
--_gap: var(--slotted-space-2, 0.25rem);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
[data-ui='grid'][data-gap='3'] {
|
|
71
|
+
--_gap: var(--slotted-space-3, 0.375rem);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
[data-ui='grid'][data-gap='4'] {
|
|
75
|
+
--_gap: var(--slotted-space-4, 0.5rem);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
[data-ui='grid'][data-gap='5'] {
|
|
79
|
+
--_gap: var(--slotted-space-5, 0.75rem);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
[data-ui='grid'][data-gap='6'] {
|
|
83
|
+
--_gap: var(--slotted-space-6, 1rem);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
[data-ui='grid'][data-gap='7'] {
|
|
87
|
+
--_gap: var(--slotted-space-7, 1.25rem);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
[data-ui='grid'][data-gap='8'] {
|
|
91
|
+
--_gap: var(--slotted-space-8, 1.5rem);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
[data-ui='grid'][data-gap='9'] {
|
|
95
|
+
--_gap: var(--slotted-space-9, 2rem);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
[data-ui='grid'][data-gap='10'] {
|
|
99
|
+
--_gap: var(--slotted-space-10, 2.5rem);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
[data-ui='grid'][data-gap='11'] {
|
|
103
|
+
--_gap: var(--slotted-space-11, 3rem);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
[data-ui='grid'][data-gap='12'] {
|
|
107
|
+
--_gap: var(--slotted-space-12, 4rem);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* The narrowest a cell may become before the grid drops a column. The five
|
|
112
|
+
* steps state their lengths because the foundation holds no measure scale:
|
|
113
|
+
* these are cell minima rather than reading measure, which `container` owns.
|
|
114
|
+
* A theme retunes any of them through its token.
|
|
115
|
+
*/
|
|
116
|
+
[data-ui='grid'][data-min-item-width='xs'] {
|
|
117
|
+
--_min-item: var(--slotted-grid-min-item-width-xs, 8rem);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
[data-ui='grid'][data-min-item-width='sm'] {
|
|
121
|
+
--_min-item: var(--slotted-grid-min-item-width-sm, 12rem);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
[data-ui='grid'][data-min-item-width='md'] {
|
|
125
|
+
--_min-item: var(--slotted-grid-min-item-width-md, 16rem);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
[data-ui='grid'][data-min-item-width='lg'] {
|
|
129
|
+
--_min-item: var(--slotted-grid-min-item-width-lg, 20rem);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
[data-ui='grid'][data-min-item-width='xl'] {
|
|
133
|
+
--_min-item: var(--slotted-grid-min-item-width-xl, 24rem);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* `align` positions a child across the flow, inside its own cell, and
|
|
138
|
+
* `justify` positions it along the flow, inside the same cell. Neither
|
|
139
|
+
* distributes tracks: the tracks already fill the row, so there is nothing
|
|
140
|
+
* between them to distribute.
|
|
141
|
+
*/
|
|
142
|
+
[data-ui='grid'][data-align='start'] {
|
|
143
|
+
align-items: start;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
[data-ui='grid'][data-align='center'] {
|
|
147
|
+
align-items: center;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
[data-ui='grid'][data-align='end'] {
|
|
151
|
+
align-items: end;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
[data-ui='grid'][data-align='stretch'] {
|
|
155
|
+
align-items: stretch;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
[data-ui='grid'][data-justify='start'] {
|
|
159
|
+
justify-items: start;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
[data-ui='grid'][data-justify='center'] {
|
|
163
|
+
justify-items: center;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
[data-ui='grid'][data-justify='end'] {
|
|
167
|
+
justify-items: end;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
[data-ui='grid'][data-justify='stretch'] {
|
|
171
|
+
justify-items: stretch;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[
|
|
2
|
+
"--slotted-grid-columns",
|
|
3
|
+
"--slotted-grid-min-item-width-lg",
|
|
4
|
+
"--slotted-grid-min-item-width-md",
|
|
5
|
+
"--slotted-grid-min-item-width-sm",
|
|
6
|
+
"--slotted-grid-min-item-width-xl",
|
|
7
|
+
"--slotted-grid-min-item-width-xs",
|
|
8
|
+
"--slotted-space-1",
|
|
9
|
+
"--slotted-space-10",
|
|
10
|
+
"--slotted-space-11",
|
|
11
|
+
"--slotted-space-12",
|
|
12
|
+
"--slotted-space-2",
|
|
13
|
+
"--slotted-space-3",
|
|
14
|
+
"--slotted-space-4",
|
|
15
|
+
"--slotted-space-5",
|
|
16
|
+
"--slotted-space-6",
|
|
17
|
+
"--slotted-space-7",
|
|
18
|
+
"--slotted-space-8",
|
|
19
|
+
"--slotted-space-9"
|
|
20
|
+
]
|