feat(ui): Select, dropdown, popover styles & transitions (#11675)

This commit is contained in:
Aaron Iker
2026-02-02 01:17:14 +01:00
committed by GitHub
parent b39c1f158f
commit 377bf7ff21
19 changed files with 631 additions and 165 deletions

View File

@@ -2,26 +2,29 @@
[data-component="dropdown-menu-sub-content"] {
min-width: 8rem;
overflow: hidden;
border: none;
border-radius: var(--radius-md);
border: 1px solid color-mix(in oklch, var(--border-base) 50%, transparent);
box-shadow: var(--shadow-xs-border);
background-clip: padding-box;
background-color: var(--surface-raised-stronger-non-alpha);
padding: 4px;
box-shadow: var(--shadow-md);
z-index: 50;
z-index: 100;
transform-origin: var(--kb-menu-content-transform-origin);
&:focus,
&:focus-visible {
&:focus-within,
&:focus {
outline: none;
}
&[data-closed] {
animation: dropdown-menu-close 0.15s ease-out;
animation: dropdownMenuContentHide var(--transition-duration) var(--transition-easing) forwards;
@starting-style {
animation: none;
}
&[data-expanded] {
animation: dropdown-menu-open 0.15s ease-out;
pointer-events: auto;
animation: dropdownMenuContentShow var(--transition-duration) var(--transition-easing) forwards;
}
}
@@ -38,18 +41,22 @@
padding: 4px 8px;
border-radius: var(--radius-sm);
cursor: default;
user-select: none;
outline: none;
font-family: var(--font-family-sans);
font-size: var(--font-size-small);
font-size: var(--font-size-base);
font-weight: var(--font-weight-medium);
line-height: var(--line-height-large);
letter-spacing: var(--letter-spacing-normal);
color: var(--text-strong);
&[data-highlighted] {
background: var(--surface-raised-base-hover);
transition-property: background-color, color;
transition-duration: var(--transition-duration);
transition-timing-function: var(--transition-easing);
user-select: none;
&:hover {
background-color: var(--surface-raised-base-hover);
}
&[data-disabled] {
@@ -61,6 +68,8 @@
[data-slot="dropdown-menu-sub-trigger"] {
&[data-expanded] {
background: var(--surface-raised-base-hover);
outline: none;
border: none;
}
}
@@ -102,24 +111,24 @@
}
}
@keyframes dropdown-menu-open {
@keyframes dropdownMenuContentShow {
from {
opacity: 0;
transform: scale(0.96);
transform: scaleY(0.95);
}
to {
opacity: 1;
transform: scale(1);
transform: scaleY(1);
}
}
@keyframes dropdown-menu-close {
@keyframes dropdownMenuContentHide {
from {
opacity: 1;
transform: scale(1);
transform: scaleY(1);
}
to {
opacity: 0;
transform: scale(0.96);
transform: scaleY(0.95);
}
}