@arolariu/components
Version:
🎨 70+ beautiful, accessible React components built on Base UI. TypeScript-first, CSS Modules styling, tree-shakeable, SSR-ready. Perfect for modern web apps, design systems & rapid prototyping. Zero config, maximum flexibility! ⚡
132 lines (114 loc) • 2.88 kB
CSS
.trigger {
display: inline-flex;
align-items: center;
justify-content: space-between;
gap: var(--ac-space-2);
width: 100%;
min-height: var(--ac-size-default);
padding: 0 var(--ac-space-3);
border: 1px solid var(--ac-input);
border-radius: var(--ac-radius-md);
background-color: var(--ac-background);
color: var(--ac-foreground);
font-size: var(--ac-text-sm);
box-shadow: 0 1px 2px rgb(0 0 0 / 0.04);
outline: none;
cursor: pointer;
transition: border-color var(--ac-transition-fast), box-shadow var(--ac-transition-fast);
}
.trigger:focus-visible {
outline: 2px solid var(--ac-ring);
outline-offset: 2px;
}
.trigger[data-disabled] {
cursor: not-allowed;
opacity: 0.5;
}
.trigger[data-popup-open] {
border-color: var(--ac-ring);
}
.icon {
display: inline-flex;
color: var(--ac-muted-foreground);
}
.iconSvg,
.scrollIcon,
.itemIndicatorIcon {
width: 1rem;
height: 1rem;
}
.positioner {
z-index: 50;
}
.popup {
min-width: min(12rem, var(--anchor-width, 12rem));
max-height: var(--available-height);
overflow: hidden;
border: 1px solid var(--ac-border);
border-radius: var(--ac-radius-md);
background-color: var(--ac-popover);
color: var(--ac-popover-foreground);
box-shadow: 0 16px 40px -16px rgb(0 0 0 / 0.35);
transform-origin: var(--transform-origin);
transition: opacity var(--ac-transition-normal), transform var(--ac-transition-normal);
}
.popup[data-starting-style],
.popup[data-ending-style] {
opacity: 0;
transform: scale(0.96);
}
.list {
max-height: var(--available-height);
padding: var(--ac-space-1);
overflow-y: auto;
}
.scrollButton {
display: flex;
align-items: center;
justify-content: center;
height: var(--ac-size-md);
color: var(--ac-muted-foreground);
}
.label {
padding: var(--ac-space-1) var(--ac-space-2);
font-size: var(--ac-text-sm);
font-weight: 600;
}
.item {
position: relative;
display: flex;
align-items: center;
width: 100%;
min-height: var(--ac-size-default);
padding: var(--ac-space-1) calc(var(--ac-space-2) + 1.5rem) var(--ac-space-1) var(--ac-space-2);
border-radius: var(--ac-radius-sm);
outline: none;
cursor: default;
font-size: var(--ac-text-sm);
user-select: none;
}
.item[data-highlighted] {
background-color: var(--ac-accent);
color: var(--ac-accent-foreground);
}
.item[data-disabled] {
opacity: 0.5;
pointer-events: none;
}
.itemIndicatorSlot {
position: absolute;
right: var(--ac-space-2);
display: inline-flex;
align-items: center;
justify-content: center;
width: 1rem;
height: 1rem;
}
.itemText {
line-height: 1.4;
}
.separator {
height: 1px;
margin: var(--ac-space-1) calc(var(--ac-space-1) * -1);
background-color: var(--ac-border);
}