[data-rs-menu] {
background: var(--menu-bg);
padding: var(--menu-padding);
display: flex;
flex-direction: column;
gap: var(--menu-gap);
}
[data-rs-menu-item] {
display: flex;
align-items: center;
width: 100%;
height: var(--menu-item-height);
padding: var(--menu-item-padding);
border-radius: var(--menu-item-radius);
color: var(--menu-item-fg);
font-size: var(--menu-item-font-size);
cursor: pointer;
background: transparent;
border: none;
text-align: left;
will-change: background;
transition:
background var(--menu-item-transition-duration) var(--menu-item-transition-ease),
color var(--menu-item-transition-duration) var(--menu-item-transition-ease);
}
[data-rs-menu-item][data-rs-state~="hover"] {
background: var(--menu-item-hover-bg);
}
[data-rs-menu-item][data-rs-state~="active"] {
background: var(--menu-item-hover-bg);
}
[data-rs-menu-item][data-rs-state~="selected"] {
background: var(--menu-item-active-bg);
color: var(--menu-item-active-fg);
}
[data-rs-menu-item]:focus-visible { outline: none; }
[data-rs-menu-item][data-rs-state~='focused']:focus-visible { outline: var(--focus-ring-width) solid var(--theme-action-focus-ring); outline-offset: var(--focus-ring-offset); }
[data-rs-menu-item][data-rs-state~="focused"] {
outline: var(--focus-ring-width) solid var(--theme-action-focus-ring);
outline-offset: var(--focus-ring-offset);
}
[data-rs-menu-item]:active {
transform: scale(0.98);
}
[data-rs-menu-item][data-rs-disabled="true"] {
opacity: var(--opacity-disabled);
pointer-events: none;
cursor: not-allowed;
}
[data-rs-menu-group] {
display: flex;
flex-direction: column;
gap: var(--menu-gap);
}
[data-rs-menu-label] {
font-size: var(--font-size-sm);
font-weight: var(--font-weight-semibold);
color: var(--menu-item-fg);
opacity: 0.7;
text-transform: uppercase;
letter-spacing: 0.04em;
padding: var(--space-xs) var(--space-sm);
}
[data-rs-menu-separator] {
height: var(--border-thin);
background: var(--theme-surface-border);
margin: var(--menu-separator-margin);
}