@slotted/styles 0.0.0-stage → 0.1.0-beta.1
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,88 @@
|
|
|
1
|
+
[
|
|
2
|
+
"--slotted-app-shell-aside-color",
|
|
3
|
+
"--slotted-app-shell-aside-extent",
|
|
4
|
+
"--slotted-app-shell-aside-size-lg",
|
|
5
|
+
"--slotted-app-shell-aside-size-md",
|
|
6
|
+
"--slotted-app-shell-aside-size-sm",
|
|
7
|
+
"--slotted-app-shell-aside-surface",
|
|
8
|
+
"--slotted-app-shell-banner-block-size",
|
|
9
|
+
"--slotted-app-shell-banner-color",
|
|
10
|
+
"--slotted-app-shell-banner-surface",
|
|
11
|
+
"--slotted-app-shell-border-color",
|
|
12
|
+
"--slotted-app-shell-brand-overflow",
|
|
13
|
+
"--slotted-app-shell-brand-wrap",
|
|
14
|
+
"--slotted-app-shell-canvas",
|
|
15
|
+
"--slotted-app-shell-color",
|
|
16
|
+
"--slotted-app-shell-elevation",
|
|
17
|
+
"--slotted-app-shell-footer-color",
|
|
18
|
+
"--slotted-app-shell-footer-surface",
|
|
19
|
+
"--slotted-app-shell-frame",
|
|
20
|
+
"--slotted-app-shell-frame-image",
|
|
21
|
+
"--slotted-app-shell-gutter",
|
|
22
|
+
"--slotted-app-shell-main-color",
|
|
23
|
+
"--slotted-app-shell-main-surface",
|
|
24
|
+
"--slotted-app-shell-nav-color",
|
|
25
|
+
"--slotted-app-shell-nav-overlay-size",
|
|
26
|
+
"--slotted-app-shell-nav-size-lg",
|
|
27
|
+
"--slotted-app-shell-nav-size-md",
|
|
28
|
+
"--slotted-app-shell-nav-size-sm",
|
|
29
|
+
"--slotted-app-shell-nav-surface",
|
|
30
|
+
"--slotted-app-shell-radius",
|
|
31
|
+
"--slotted-app-shell-rail-size",
|
|
32
|
+
"--slotted-app-shell-resizer-color",
|
|
33
|
+
"--slotted-app-shell-row-inset-size",
|
|
34
|
+
"--slotted-app-shell-row-mark-size",
|
|
35
|
+
"--slotted-app-shell-row-text-line-height",
|
|
36
|
+
"--slotted-app-shell-row-text-size",
|
|
37
|
+
"--slotted-app-shell-scrim",
|
|
38
|
+
"--slotted-app-shell-scrollbar-thumb-color",
|
|
39
|
+
"--slotted-app-shell-scrollbar-track-color",
|
|
40
|
+
"--slotted-app-shell-tone-surface",
|
|
41
|
+
"--slotted-border-strong",
|
|
42
|
+
"--slotted-border-subtle",
|
|
43
|
+
"--slotted-border-width-thick",
|
|
44
|
+
"--slotted-border-width-thin",
|
|
45
|
+
"--slotted-control-font-size-md",
|
|
46
|
+
"--slotted-control-font-size-sm",
|
|
47
|
+
"--slotted-control-gap-lg",
|
|
48
|
+
"--slotted-control-gap-md",
|
|
49
|
+
"--slotted-control-gap-sm",
|
|
50
|
+
"--slotted-control-height-lg",
|
|
51
|
+
"--slotted-control-height-md",
|
|
52
|
+
"--slotted-control-icon-size-md",
|
|
53
|
+
"--slotted-control-radius",
|
|
54
|
+
"--slotted-control-transition-duration",
|
|
55
|
+
"--slotted-control-transition-easing",
|
|
56
|
+
"--slotted-duration-medium",
|
|
57
|
+
"--slotted-easing-enter",
|
|
58
|
+
"--slotted-easing-exit",
|
|
59
|
+
"--slotted-easing-standard",
|
|
60
|
+
"--slotted-focus-ring-color",
|
|
61
|
+
"--slotted-focus-ring-offset",
|
|
62
|
+
"--slotted-focus-ring-width",
|
|
63
|
+
"--slotted-font-family-sans",
|
|
64
|
+
"--slotted-font-size-sm",
|
|
65
|
+
"--slotted-font-weight-medium",
|
|
66
|
+
"--slotted-font-weight-semibold",
|
|
67
|
+
"--slotted-line-height-sm",
|
|
68
|
+
"--slotted-radius-lg",
|
|
69
|
+
"--slotted-scrim",
|
|
70
|
+
"--slotted-shadow-lg",
|
|
71
|
+
"--slotted-shadow-md",
|
|
72
|
+
"--slotted-shadow-xs",
|
|
73
|
+
"--slotted-space-1",
|
|
74
|
+
"--slotted-space-2",
|
|
75
|
+
"--slotted-space-3",
|
|
76
|
+
"--slotted-space-4",
|
|
77
|
+
"--slotted-space-5",
|
|
78
|
+
"--slotted-space-6",
|
|
79
|
+
"--slotted-surface",
|
|
80
|
+
"--slotted-surface-sunken",
|
|
81
|
+
"--slotted-target-min",
|
|
82
|
+
"--slotted-text",
|
|
83
|
+
"--slotted-text-muted",
|
|
84
|
+
"--slotted-tone-secondary-subtle-active",
|
|
85
|
+
"--slotted-tone-secondary-subtle-hover",
|
|
86
|
+
"--slotted-z-index-overlay",
|
|
87
|
+
"--slotted-z-index-popover"
|
|
88
|
+
]
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
@layer slotted.components {
|
|
2
|
+
/**
|
|
3
|
+
* ── The frame ──────────────────────────────────────────────────────────
|
|
4
|
+
*
|
|
5
|
+
* A box that is a stated proportion of its own width before anything is in
|
|
6
|
+
* it, so a picture, a map or an embedded player arrives into room already
|
|
7
|
+
* held for it and moves nothing below. The ratio is the consumer's
|
|
8
|
+
* decision: there is no default, and the DOM says which one was taken.
|
|
9
|
+
*
|
|
10
|
+
* Two attributes on every selector, always. The frame holds whatever the
|
|
11
|
+
* consumer put in it, and the pair is what stops a rule meant for the box
|
|
12
|
+
* from reaching the thing inside.
|
|
13
|
+
*
|
|
14
|
+
* The ratio is the platform's `aspect-ratio`, not the padding hack Radix
|
|
15
|
+
* and Chakra v2 use, and the difference is what happens to content taller
|
|
16
|
+
* than the box. The hack positions the child absolutely, so a longer
|
|
17
|
+
* translation or a caption that wraps leaves the box and lands on whatever
|
|
18
|
+
* comes next. A box with `aspect-ratio` keeps the automatic minimum
|
|
19
|
+
* css-sizing-4 §5.2.1 gives it — its own min-content height — so it holds
|
|
20
|
+
* the ratio while the content fits and grows when it does not. Nothing is
|
|
21
|
+
* clipped and nothing escapes: the frame reserves, and it never crops. The
|
|
22
|
+
* crop is `image`'s decision, taken with `fit`.
|
|
23
|
+
*
|
|
24
|
+
* A replaced child contributes nothing to that minimum: css-sizing-3 §5.2.1
|
|
25
|
+
* resolves a cyclic percentage on a replaced element against zero for the
|
|
26
|
+
* min-content contribution, so a 4000-pixel photograph at `block-size: 100%`
|
|
27
|
+
* does not grow the frame to 4000 pixels. Only content with a height of its
|
|
28
|
+
* own — text, a control, a card — can.
|
|
29
|
+
*/
|
|
30
|
+
[data-ui='aspect-ratio'][data-part='root'] {
|
|
31
|
+
/**
|
|
32
|
+
* The proportion, as the public token. A named ratio writes it below; a
|
|
33
|
+
* number the consumer stated is written on the instance, as `w / h`, and
|
|
34
|
+
* the instance wins because a declaration on the element beats one from
|
|
35
|
+
* a stylesheet. `1 / 1` is the fallback for a frame that named nothing,
|
|
36
|
+
* which the bindings never produce: a square is the honest shape of a
|
|
37
|
+
* box nobody thought about.
|
|
38
|
+
*/
|
|
39
|
+
aspect-ratio: var(--slotted-aspect-ratio, 1 / 1);
|
|
40
|
+
/**
|
|
41
|
+
* A grid of one cell rather than a block, so every child lands in the
|
|
42
|
+
* same place and is stretched to the frame. A child that has a height of
|
|
43
|
+
* its own keeps it and the frame grows around it; a second child stacks
|
|
44
|
+
* on the first, which is how a caption sits over a map without the
|
|
45
|
+
* consumer positioning anything. The row is `1fr` and not `minmax(0, 1fr)`:
|
|
46
|
+
* a track with a zero minimum would have no content minimum to grow from.
|
|
47
|
+
*/
|
|
48
|
+
display: grid;
|
|
49
|
+
grid-template-columns: minmax(0, 1fr);
|
|
50
|
+
grid-template-rows: 1fr;
|
|
51
|
+
/* The width the container gives, and never more. */
|
|
52
|
+
max-inline-size: 100%;
|
|
53
|
+
min-inline-size: 0;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* ── The five named ratios ────────────────────────────────────────────── */
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Named for what they hold rather than for their numbers, so a product
|
|
60
|
+
* decides once that a thumbnail is `landscape` and a hero is `wide`, and
|
|
61
|
+
* the decision reads in the DOM. Written as the public token so a theme
|
|
62
|
+
* that disagrees about what `wide` means retunes it in one place.
|
|
63
|
+
*/
|
|
64
|
+
[data-ui='aspect-ratio'][data-part='root'][data-ratio='square'] {
|
|
65
|
+
--slotted-aspect-ratio: 1 / 1;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
[data-ui='aspect-ratio'][data-part='root'][data-ratio='landscape'] {
|
|
69
|
+
--slotted-aspect-ratio: 4 / 3;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
[data-ui='aspect-ratio'][data-part='root'][data-ratio='portrait'] {
|
|
73
|
+
--slotted-aspect-ratio: 3 / 4;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
[data-ui='aspect-ratio'][data-part='root'][data-ratio='video'] {
|
|
77
|
+
--slotted-aspect-ratio: 16 / 9;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
[data-ui='aspect-ratio'][data-part='root'][data-ratio='wide'] {
|
|
81
|
+
--slotted-aspect-ratio: 21 / 9;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/*
|
|
85
|
+
* `custom` has no rule: the base rule already reads the token the binding
|
|
86
|
+
* wrote on the instance, and a rule here would only restate the fallback.
|
|
87
|
+
*/
|
|
88
|
+
|
|
89
|
+
/* ── What is inside ───────────────────────────────────────────────────── */
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Every child takes the one cell and stretches to it. `min-inline-size: 0`
|
|
93
|
+
* is what lets an embedded player narrower than its own `width` attribute
|
|
94
|
+
* shrink with the frame; the block minimum is left alone on purpose, so a
|
|
95
|
+
* child taller than the ratio still grows the box.
|
|
96
|
+
*/
|
|
97
|
+
[data-ui='aspect-ratio'][data-part='root'] > * {
|
|
98
|
+
grid-area: 1 / 1;
|
|
99
|
+
min-inline-size: 0;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* A replaced element does not stretch in a grid — its ratio makes `normal`
|
|
104
|
+
* behave as `start` — so it is sized to the cell explicitly, and told to
|
|
105
|
+
* fit rather than to fill. `contain` is the one value that neither crops
|
|
106
|
+
* nor distorts: the frame reserves, and what it holds is shown whole. A
|
|
107
|
+
* consumer who wants the picture to cover the frame is asking for a crop,
|
|
108
|
+
* and `image` is the family that decides that.
|
|
109
|
+
*
|
|
110
|
+
* `picture` is in the list so its `img` sees a definite box to be 100 %
|
|
111
|
+
* of; an `iframe` and a `canvas` take the size and have no `object-fit`.
|
|
112
|
+
*
|
|
113
|
+
* `min-block-size: 0` is what keeps the frame at its ratio around a
|
|
114
|
+
* photograph. A grid item's automatic minimum is content-based, and while
|
|
115
|
+
* the row is being sized the percentage height is treated as `auto`, so
|
|
116
|
+
* the item asked for its natural height and a 4:3 photograph grew a 16:9
|
|
117
|
+
* frame to 4:3 (measured in the first capture of the `media` scene). A
|
|
118
|
+
* replaced element has nothing to say about the frame's height; the text
|
|
119
|
+
* child above keeps its automatic minimum, and the growth rule with it.
|
|
120
|
+
*/
|
|
121
|
+
[data-ui='aspect-ratio'][data-part='root'] > :is(img, video, canvas, svg, iframe, picture) {
|
|
122
|
+
block-size: 100%;
|
|
123
|
+
display: block;
|
|
124
|
+
inline-size: 100%;
|
|
125
|
+
min-block-size: 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
[data-ui='aspect-ratio'][data-part='root'] > :is(img, video) {
|
|
129
|
+
object-fit: contain;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
["--slotted-aspect-ratio"]
|