@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,78 @@
|
|
|
1
|
+
[
|
|
2
|
+
"--slotted-border-subtle",
|
|
3
|
+
"--slotted-border-width-thin",
|
|
4
|
+
"--slotted-control-font-size-lg",
|
|
5
|
+
"--slotted-control-font-size-md",
|
|
6
|
+
"--slotted-control-font-size-sm",
|
|
7
|
+
"--slotted-control-gap-lg",
|
|
8
|
+
"--slotted-control-gap-md",
|
|
9
|
+
"--slotted-control-gap-sm",
|
|
10
|
+
"--slotted-control-height-lg",
|
|
11
|
+
"--slotted-control-height-md",
|
|
12
|
+
"--slotted-control-height-sm",
|
|
13
|
+
"--slotted-control-icon-size-lg",
|
|
14
|
+
"--slotted-control-icon-size-md",
|
|
15
|
+
"--slotted-control-icon-size-sm",
|
|
16
|
+
"--slotted-control-padding-inline-lg",
|
|
17
|
+
"--slotted-control-padding-inline-md",
|
|
18
|
+
"--slotted-control-padding-inline-sm",
|
|
19
|
+
"--slotted-control-radius",
|
|
20
|
+
"--slotted-control-transition-duration",
|
|
21
|
+
"--slotted-control-transition-easing",
|
|
22
|
+
"--slotted-disabled-foreground",
|
|
23
|
+
"--slotted-duration-medium",
|
|
24
|
+
"--slotted-duration-short",
|
|
25
|
+
"--slotted-easing-enter",
|
|
26
|
+
"--slotted-easing-exit",
|
|
27
|
+
"--slotted-easing-standard",
|
|
28
|
+
"--slotted-focus-ring-color",
|
|
29
|
+
"--slotted-focus-ring-width",
|
|
30
|
+
"--slotted-font-family-sans",
|
|
31
|
+
"--slotted-font-size-xs",
|
|
32
|
+
"--slotted-font-weight-semibold",
|
|
33
|
+
"--slotted-line-height-md",
|
|
34
|
+
"--slotted-line-height-sm",
|
|
35
|
+
"--slotted-menu-border-color",
|
|
36
|
+
"--slotted-menu-gap",
|
|
37
|
+
"--slotted-menu-highlight",
|
|
38
|
+
"--slotted-menu-highlight-active",
|
|
39
|
+
"--slotted-menu-item-radius",
|
|
40
|
+
"--slotted-menu-measure",
|
|
41
|
+
"--slotted-menu-measure-lg",
|
|
42
|
+
"--slotted-menu-measure-sm",
|
|
43
|
+
"--slotted-menu-min-measure",
|
|
44
|
+
"--slotted-menu-padding-block",
|
|
45
|
+
"--slotted-menu-padding-inline",
|
|
46
|
+
"--slotted-menu-radius",
|
|
47
|
+
"--slotted-menu-separator-color",
|
|
48
|
+
"--slotted-menu-shadow",
|
|
49
|
+
"--slotted-menu-surface",
|
|
50
|
+
"--slotted-menu-text",
|
|
51
|
+
"--slotted-menu-text-muted",
|
|
52
|
+
"--slotted-radius-lg",
|
|
53
|
+
"--slotted-shadow-md",
|
|
54
|
+
"--slotted-space-1",
|
|
55
|
+
"--slotted-space-2",
|
|
56
|
+
"--slotted-space-5",
|
|
57
|
+
"--slotted-space-6",
|
|
58
|
+
"--slotted-surface-raised",
|
|
59
|
+
"--slotted-text",
|
|
60
|
+
"--slotted-text-muted",
|
|
61
|
+
"--slotted-tone-accent-subtle-active",
|
|
62
|
+
"--slotted-tone-accent-surface",
|
|
63
|
+
"--slotted-tone-accent-text",
|
|
64
|
+
"--slotted-tone-danger-subtle-active",
|
|
65
|
+
"--slotted-tone-danger-surface",
|
|
66
|
+
"--slotted-tone-danger-text",
|
|
67
|
+
"--slotted-tone-secondary-subtle-active",
|
|
68
|
+
"--slotted-tone-secondary-subtle-hover",
|
|
69
|
+
"--slotted-tone-secondary-surface",
|
|
70
|
+
"--slotted-tone-secondary-text",
|
|
71
|
+
"--slotted-tone-success-subtle-active",
|
|
72
|
+
"--slotted-tone-success-surface",
|
|
73
|
+
"--slotted-tone-success-text",
|
|
74
|
+
"--slotted-tone-warning-subtle-active",
|
|
75
|
+
"--slotted-tone-warning-surface",
|
|
76
|
+
"--slotted-tone-warning-text",
|
|
77
|
+
"--slotted-z-index-popover"
|
|
78
|
+
]
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
@layer slotted.components {
|
|
2
|
+
/**
|
|
3
|
+
* A row of triggers with one tab stop, each opening a `menu`.
|
|
4
|
+
*
|
|
5
|
+
* ┌─ root ─ role="menubar" ───────────────────────────────┐
|
|
6
|
+
* │ trigger trigger trigger trigger │
|
|
7
|
+
* └───────────────────────────────────────────────────────┘
|
|
8
|
+
*
|
|
9
|
+
* The bar holds two parts and no third, because everything a bar opens
|
|
10
|
+
* belongs to `menu` and is imported from it. Radix's menubar re-exports the
|
|
11
|
+
* sixteen parts its dropdown menu already has; two copies of one machine
|
|
12
|
+
* drift, and the second copy is where a capability added later goes missing.
|
|
13
|
+
*
|
|
14
|
+
* ── Why the bar paints no ground ─────────────────────────────────────
|
|
15
|
+
*
|
|
16
|
+
* A menubar sits in an application's own header, beside its logo and its
|
|
17
|
+
* account control, and that header owns the ground under all three. A bar
|
|
18
|
+
* that painted its own surface would either disagree with the header or
|
|
19
|
+
* force the header to match it. The weight is carried by the triggers, which
|
|
20
|
+
* is where a reader's pointer goes.
|
|
21
|
+
*/
|
|
22
|
+
[data-ui='menubar'] {
|
|
23
|
+
--_gap: var(--slotted-menubar-gap, var(--slotted-space-1, 0.125rem));
|
|
24
|
+
|
|
25
|
+
--_text: var(--slotted-menubar-text, var(--slotted-text, #0f172a));
|
|
26
|
+
--_trigger-radius: var(--slotted-menubar-trigger-radius, var(--slotted-control-radius));
|
|
27
|
+
--_trigger-height: var(--slotted-control-height-md, 34px);
|
|
28
|
+
--_trigger-inset: var(--slotted-control-padding-inline-md, 0.8125rem);
|
|
29
|
+
--_font-size: var(--slotted-control-font-size-md, 13px);
|
|
30
|
+
|
|
31
|
+
/* The same pair a menu item uses for its highlight, so a trigger and the
|
|
32
|
+
items under it belong to one control rather than to two. */
|
|
33
|
+
--_highlight: var(--slotted-menubar-highlight, var(--slotted-tone-secondary-subtle-hover));
|
|
34
|
+
--_highlight-active: var(
|
|
35
|
+
--slotted-menubar-highlight-active,
|
|
36
|
+
var(--slotted-tone-secondary-subtle-active)
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
align-items: center;
|
|
40
|
+
box-sizing: border-box;
|
|
41
|
+
color: var(--_text);
|
|
42
|
+
display: flex;
|
|
43
|
+
/**
|
|
44
|
+
* More triggers than room is the overflow question, and it belongs to
|
|
45
|
+
* `toolbar` at the end of this wave. Until then the bar wraps: at 240
|
|
46
|
+
* pixels a bar of four translated titles laid out on one line put its last
|
|
47
|
+
* trigger outside the header that holds it, where nothing could reach it —
|
|
48
|
+
* and a trigger a reader cannot see is worse than a bar two lines tall.
|
|
49
|
+
*/
|
|
50
|
+
flex-wrap: wrap;
|
|
51
|
+
font-family: var(--slotted-font-family-sans);
|
|
52
|
+
font-size: var(--_font-size);
|
|
53
|
+
gap: var(--_gap);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* A sidebar of commands is a vertical menubar, and the pattern defines the
|
|
58
|
+
* key swap for it. The triggers stretch rather than centring, because a
|
|
59
|
+
* column of labels reads from one edge.
|
|
60
|
+
*/
|
|
61
|
+
[data-ui='menubar'][data-orientation='vertical'] {
|
|
62
|
+
align-items: stretch;
|
|
63
|
+
flex-direction: column;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
[data-ui='menubar'][data-size='sm'] {
|
|
67
|
+
--_trigger-height: var(--slotted-control-height-sm, 30px);
|
|
68
|
+
--_trigger-inset: var(--slotted-control-padding-inline-sm, 0.625rem);
|
|
69
|
+
--_font-size: var(--slotted-control-font-size-sm, 12px);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
[data-ui='menubar'][data-size='lg'] {
|
|
73
|
+
--_trigger-height: var(--slotted-control-height-lg, 38px);
|
|
74
|
+
--_trigger-inset: var(--slotted-control-padding-inline-lg, 1rem);
|
|
75
|
+
--_font-size: var(--slotted-control-font-size-lg, 14px);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* ── The triggers ─────────────────────────────────────────────────────── */
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* A native `button` carrying `role="menuitem"`, for the reason a menu item
|
|
82
|
+
* is one: the platform gives the press and the two keys, and the role says
|
|
83
|
+
* what a reader has landed on.
|
|
84
|
+
*
|
|
85
|
+
* The trigger holds the consumer's own text and nothing the family imposes —
|
|
86
|
+
* no icon slot, no chevron, no shortcut. A menubar trigger is a word.
|
|
87
|
+
*/
|
|
88
|
+
[data-ui='menubar'] > [data-part='trigger'] {
|
|
89
|
+
appearance: none;
|
|
90
|
+
background: transparent;
|
|
91
|
+
border: 0;
|
|
92
|
+
border-radius: var(--_trigger-radius);
|
|
93
|
+
box-sizing: border-box;
|
|
94
|
+
color: inherit;
|
|
95
|
+
cursor: default;
|
|
96
|
+
font: inherit;
|
|
97
|
+
/* A trigger is a label a reader scans, not a call to action. Control
|
|
98
|
+
typography sets a control's own weight at semibold, which reads as five
|
|
99
|
+
buttons in a row where the field — and every desktop menu bar — sets a
|
|
100
|
+
menu title one step lighter. */
|
|
101
|
+
font-weight: var(--slotted-menubar-trigger-font-weight, var(--slotted-font-weight-medium, 500));
|
|
102
|
+
min-block-size: var(--_trigger-height);
|
|
103
|
+
padding-block: 0;
|
|
104
|
+
padding-inline: var(--_trigger-inset);
|
|
105
|
+
text-align: center;
|
|
106
|
+
transition:
|
|
107
|
+
background-color var(--slotted-control-transition-duration, var(--slotted-duration-short))
|
|
108
|
+
var(--slotted-control-transition-easing, var(--slotted-easing-standard)),
|
|
109
|
+
color var(--slotted-control-transition-duration, var(--slotted-duration-short))
|
|
110
|
+
var(--slotted-control-transition-easing, var(--slotted-easing-standard));
|
|
111
|
+
white-space: nowrap;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
[data-ui='menubar'][data-orientation='vertical'] > [data-part='trigger'] {
|
|
115
|
+
text-align: start;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Hover answers here and not on a menu item, and the difference is what the
|
|
120
|
+
* two are: a bar is a persistent row a pointer crosses on its way elsewhere,
|
|
121
|
+
* where a menu is a list the reader is already inside. The bar's own
|
|
122
|
+
* highlight follows the pointer; once a menu is open, entering another
|
|
123
|
+
* trigger opens it and focus moves, so hover and focus agree again.
|
|
124
|
+
*/
|
|
125
|
+
[data-ui='menubar'] > [data-part='trigger']:not([data-disabled]):hover {
|
|
126
|
+
background-color: var(--_highlight);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
[data-ui='menubar'] > [data-part='trigger']:not([data-disabled]):active {
|
|
130
|
+
background-color: var(--_highlight-active);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
[data-ui='menubar'] > [data-part='trigger'][data-open] {
|
|
134
|
+
background-color: var(--_highlight-active);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
[data-ui='menubar'] > [data-part='trigger']:focus-visible {
|
|
138
|
+
outline: var(--slotted-focus-ring-width, 2px) solid
|
|
139
|
+
var(--slotted-focus-ring-color, currentColor);
|
|
140
|
+
outline-offset: calc(-1 * var(--slotted-focus-ring-width, 2px));
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* A disabled trigger stays focusable and opens nothing, which is what the
|
|
145
|
+
* pattern asks of every item in a menubar. It answers focus quietly, as a
|
|
146
|
+
* disabled menu item does.
|
|
147
|
+
*/
|
|
148
|
+
[data-ui='menubar'] > [data-part='trigger'][data-disabled] {
|
|
149
|
+
color: var(--slotted-disabled-foreground, #64748b);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
[data-ui='menubar'] > [data-part='trigger'][data-disabled]:focus {
|
|
153
|
+
background-color: var(--slotted-disabled-background, #e2e8f0);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/* ── Forced colours ───────────────────────────────────────────────────── */
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* The tone surface the open and hovered states are painted with becomes
|
|
160
|
+
* `Canvas` under forced colours, and an open trigger is the one thing on the
|
|
161
|
+
* bar that has to stay distinguishable from the other three.
|
|
162
|
+
*/
|
|
163
|
+
@media (forced-colors: active) {
|
|
164
|
+
[data-ui='menubar'] > [data-part='trigger'][data-open] {
|
|
165
|
+
background-color: Highlight;
|
|
166
|
+
color: HighlightText;
|
|
167
|
+
forced-color-adjust: none;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
[
|
|
2
|
+
"--slotted-control-font-size-lg",
|
|
3
|
+
"--slotted-control-font-size-md",
|
|
4
|
+
"--slotted-control-font-size-sm",
|
|
5
|
+
"--slotted-control-height-lg",
|
|
6
|
+
"--slotted-control-height-md",
|
|
7
|
+
"--slotted-control-height-sm",
|
|
8
|
+
"--slotted-control-padding-inline-lg",
|
|
9
|
+
"--slotted-control-padding-inline-md",
|
|
10
|
+
"--slotted-control-padding-inline-sm",
|
|
11
|
+
"--slotted-control-radius",
|
|
12
|
+
"--slotted-control-transition-duration",
|
|
13
|
+
"--slotted-control-transition-easing",
|
|
14
|
+
"--slotted-disabled-background",
|
|
15
|
+
"--slotted-disabled-foreground",
|
|
16
|
+
"--slotted-duration-short",
|
|
17
|
+
"--slotted-easing-standard",
|
|
18
|
+
"--slotted-focus-ring-color",
|
|
19
|
+
"--slotted-focus-ring-width",
|
|
20
|
+
"--slotted-font-family-sans",
|
|
21
|
+
"--slotted-font-weight-medium",
|
|
22
|
+
"--slotted-menubar-gap",
|
|
23
|
+
"--slotted-menubar-highlight",
|
|
24
|
+
"--slotted-menubar-highlight-active",
|
|
25
|
+
"--slotted-menubar-text",
|
|
26
|
+
"--slotted-menubar-trigger-font-weight",
|
|
27
|
+
"--slotted-menubar-trigger-radius",
|
|
28
|
+
"--slotted-space-1",
|
|
29
|
+
"--slotted-text",
|
|
30
|
+
"--slotted-tone-secondary-subtle-active",
|
|
31
|
+
"--slotted-tone-secondary-subtle-hover"
|
|
32
|
+
]
|