UNPKG

@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! ⚡

145 lines (125 loc) • 3.1 kB
.root { display: inline-flex; align-items: center; gap: var(--ac-space-1); min-height: var(--ac-size-default); padding: var(--ac-space-1); border: 1px solid var(--ac-border); border-radius: var(--ac-radius-md); background-color: var(--ac-background); box-shadow: 0 1px 2px rgb(0 0 0 / 0.04); } .trigger { display: inline-flex; align-items: center; justify-content: center; min-height: calc(var(--ac-size-default) - var(--ac-space-1)); padding: 0 var(--ac-space-3); border: none; border-radius: var(--ac-radius-sm); background: transparent; color: var(--ac-foreground); font-size: var(--ac-text-sm); font-weight: 500; cursor: default; outline: none; } .trigger[data-popup-open], .trigger:focus-visible { background-color: var(--ac-accent); color: var(--ac-accent-foreground); } .positioner { z-index: 50; } .content { min-width: 12rem; max-height: min(24rem, var(--available-height, 24rem)); overflow-x: hidden; overflow-y: auto; padding: var(--ac-space-1); 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); transition: opacity var(--ac-transition-normal), transform var(--ac-transition-normal); } .content[data-starting-style], .content[data-ending-style] { opacity: 0; transform: scale(0.96); } .item { position: relative; display: flex; align-items: center; gap: var(--ac-space-2); width: 100%; min-height: var(--ac-size-default); padding: var(--ac-space-1) var(--ac-space-2); border-radius: var(--ac-radius-sm); outline: none; font-size: var(--ac-text-sm); user-select: none; cursor: default; } .item[data-highlighted] { background-color: var(--ac-accent); color: var(--ac-accent-foreground); } .item[data-disabled] { opacity: 0.5; pointer-events: none; } .subTrigger { padding-right: var(--ac-space-3); } .subTrigger[data-popup-open] { background-color: var(--ac-accent); color: var(--ac-accent-foreground); } .subTriggerIcon { width: 1rem; height: 1rem; margin-left: auto; } .indicatorItem { padding-left: calc(var(--ac-space-2) + 1.25rem); } .indicatorSlot { position: absolute; left: var(--ac-space-2); display: inline-flex; align-items: center; justify-content: center; width: 1rem; height: 1rem; } .indicatorIcon, .radioIndicatorIcon { width: 0.875rem; height: 0.875rem; } .radioIndicatorIcon { fill: currentcolor; } .label { padding: var(--ac-space-1) var(--ac-space-2); font-size: var(--ac-text-sm); font-weight: 600; } .inset { padding-left: calc(var(--ac-space-2) + 1.25rem); } .separator { height: 1px; margin: var(--ac-space-1) calc(var(--ac-space-1) * -1); background-color: var(--ac-border); } .shortcut { margin-left: auto; color: var(--ac-muted-foreground); font-size: var(--ac-text-xs); letter-spacing: 0.08em; }