UNPKG

@radix-ui/themes

Version:

[![Radix Themes Logo](https://radix-ui.com/social/themes.png)](https://radix-ui.com/themes)

246 lines (212 loc) 7.37 kB
.rt-BaseMenuContent { --scrollarea-scrollbar-vertical-margin-top: var(--base-menu-content-padding); --scrollarea-scrollbar-vertical-margin-bottom: var(--base-menu-content-padding); --scrollarea-scrollbar-horizontal-margin-left: var(--base-menu-content-padding); --scrollarea-scrollbar-horizontal-margin-right: var(--base-menu-content-padding); display: flex; flex-direction: column; box-sizing: border-box; overflow: hidden; background-color: var(--base-menu-bg); } .rt-BaseMenuViewport { flex: 1 1 0%; display: flex; flex-direction: column; overflow: auto; padding: var(--base-menu-content-padding); box-sizing: border-box; :where(.rt-BaseMenuContent:has(.rt-ScrollAreaScrollbar[data-orientation='vertical'])) & { padding-right: var(--space-3); } } .rt-BaseMenuItem { display: flex; align-items: center; gap: var(--space-2); height: var(--base-menu-item-height); padding-left: var(--base-menu-item-padding-left); padding-right: var(--base-menu-item-padding-right); box-sizing: border-box; position: relative; outline: none; scroll-margin: var(--base-menu-content-padding) 0; /* Fix sticky text highlighting after selection in Firefox */ user-select: none; /* Cursors */ cursor: var(--cursor-menu-item); &:where([data-disabled]) { cursor: default; } } .rt-BaseMenuShortcut { display: flex; align-items: center; margin-left: auto; padding-left: var(--space-4); } .rt-BaseMenuSubTriggerIcon { color: var(--gray-12); margin-right: calc(-2px * var(--scaling)); } .rt-BaseMenuItemIndicator { position: absolute; left: 0; width: var(--base-menu-item-padding-left); display: inline-flex; align-items: center; justify-content: center; } .rt-BaseMenuSeparator { height: 1px; margin-top: var(--space-2); margin-bottom: var(--space-2); margin-left: var(--base-menu-item-padding-left); margin-right: var(--base-menu-item-padding-right); } .rt-BaseMenuLabel { display: flex; align-items: center; height: var(--base-menu-item-height); padding-left: var(--base-menu-item-padding-left); padding-right: var(--base-menu-item-padding-right); box-sizing: border-box; color: var(--gray-a10); user-select: none; cursor: default; :where(.rt-BaseMenuItem) + & { margin-top: var(--space-2); } } .rt-BaseMenuArrow { fill: var(--base-menu-bg); } /*************************************************************************************************** * * * SIZES * * * ***************************************************************************************************/ @breakpoints { .rt-BaseMenuContent { &:where(.rt-r-size-1) { --base-menu-content-padding: var(--space-1); --base-menu-item-padding-left: calc(var(--space-5) / 1.2); --base-menu-item-padding-right: var(--space-2); --base-menu-item-height: var(--space-5); border-radius: var(--radius-3); & :where(.rt-BaseMenuItem) { font-size: var(--font-size-1); line-height: var(--line-height-1); letter-spacing: var(--letter-spacing-1); border-radius: var(--radius-1); } & :where(.rt-BaseMenuLabel) { font-size: var(--font-size-1); line-height: var(--line-height-1); letter-spacing: var(--letter-spacing-1); } & :where(.rt-BaseMenuItemIndicatorIcon, .rt-BaseMenuSubTriggerIcon) { width: calc(8px * var(--scaling)); height: calc(8px * var(--scaling)); } /* reset with :not:has so we still support browsers without :has */ &:where(:not(:has(.rt-BaseMenuCheckboxItem, .rt-BaseMenuRadioItem))) { --base-menu-item-padding-left: var(--space-2); } &:where(:has(.rt-BaseMenuCheckboxItem, .rt-BaseMenuRadioItem)) { --base-menu-item-padding-left: calc(var(--space-5) / 1.2); } } &:where(.rt-r-size-2) { --base-menu-content-padding: var(--space-2); --base-menu-item-padding-left: var(--space-3); --base-menu-item-padding-right: var(--space-3); --base-menu-item-height: var(--space-6); border-radius: var(--radius-4); & :where(.rt-BaseMenuItem) { font-size: var(--font-size-2); line-height: var(--line-height-2); letter-spacing: var(--letter-spacing-2); border-radius: var(--radius-2); } & :where(.rt-BaseMenuLabel) { font-size: var(--font-size-2); line-height: var(--line-height-2); letter-spacing: var(--letter-spacing-2); } & :where(.rt-BaseMenuItemIndicatorIcon, .rt-BaseMenuSubTriggerIcon) { width: calc(10px * var(--scaling)); height: calc(10px * var(--scaling)); } /* reset with :not:has so we still support browsers without :has */ &:where(:not(:has(.rt-BaseMenuCheckboxItem, .rt-BaseMenuRadioItem))) { --base-menu-item-padding-left: var(--space-3); } &:where(:has(.rt-BaseMenuCheckboxItem, .rt-BaseMenuRadioItem)) { --base-menu-item-padding-left: var(--space-5); } } } } /*************************************************************************************************** * * * VARIANTS * * * ***************************************************************************************************/ .rt-BaseMenuContent { --base-menu-bg: var(--color-panel-solid); box-shadow: var(--shadow-5); } .rt-BaseMenuItem:where([data-accent-color]) { color: var(--accent-a11); } .rt-BaseMenuItem:where([data-disabled]) { color: var(--gray-a8); } .rt-BaseMenuShortcut { color: var(--gray-a11); } .rt-BaseMenuItem:where([data-disabled], [data-highlighted]), .rt-BaseMenuSubTrigger:where([data-state='open']) { & :where(.rt-BaseMenuShortcut) { color: inherit; } } .rt-BaseMenuSeparator { background-color: var(--gray-a6); } /* solid */ .rt-BaseMenuContent:where(.rt-variant-solid) { & :where(.rt-BaseMenuSubTrigger[data-state='open']) { background-color: var(--gray-a3); } & :where(.rt-BaseMenuItem[data-highlighted]) { background-color: var(--accent-9); color: var(--accent-contrast); & :where(.rt-BaseMenuSubTriggerIcon) { color: var(--accent-contrast); } } &:where(.rt-high-contrast) { & :where(.rt-BaseMenuItem[data-highlighted]) { background-color: var(--accent-12); color: var(--accent-1); & :where(.rt-BaseMenuSubTriggerIcon) { color: var(--accent-1); } &:where([data-accent-color]) { background-color: var(--accent-9); color: var(--accent-contrast); } } } } /* soft */ .rt-BaseMenuContent:where(.rt-variant-soft) { & :where(.rt-BaseMenuSubTrigger[data-state='open']) { background-color: var(--accent-a3); } & :where(.rt-BaseMenuItem[data-highlighted]) { background-color: var(--accent-a4); } }