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

90 lines (79 loc) • 1.81 kB
.root { /* Minimal default — consumers can add borders/background via className */ } .list { display: flex; position: relative; z-index: 0; padding-inline: 0; gap: 0; border-bottom: 1px solid var(--ac-border); background-color: transparent; } .tab { display: flex; align-items: center; justify-content: center; border: 0; margin: 0; outline: none; background: none; appearance: none; color: var(--ac-muted-foreground); font-family: inherit; font-size: var(--ac-text-sm); font-weight: 500; user-select: none; white-space: nowrap; word-break: keep-all; padding-inline: var(--ac-space-3); padding-block: 0; height: 2.25rem; cursor: pointer; transition: color var(--ac-transition-fast); &[data-active] { color: var(--ac-foreground); } @media (hover: hover) { &:hover { color: var(--ac-foreground); } } &:focus-visible { position: relative; &::before { content: ""; position: absolute; inset: var(--ac-space-1) 0; border-radius: var(--ac-radius-xs); outline: 2px solid var(--ac-ring); outline-offset: -1px; } } } .indicator { position: absolute; z-index: 0; left: 0; bottom: -1px; translate: var(--active-tab-left) 0; width: var(--active-tab-width); height: 2px; background-color: var(--ac-foreground); transition-property: translate, width; transition-duration: 200ms; transition-timing-function: ease-in-out; } .panel { position: relative; outline: none; padding-top: var(--ac-space-4); &:focus-visible { outline: 2px solid var(--ac-ring); outline-offset: -1px; border-radius: var(--ac-radius-md); } &[hidden] { display: none; } }