Basic Select
Single-select dropdown with a placeholder.
Atoms
Dropdown selection control with accessible keyboard support.
pnpm add @quinkit/uiimport { Select } from "@quinkit/ui";Live previews · code · themes · viewport · dark mode
Single-select dropdown with a placeholder.
Label groups of related options.
Prevent selecting specific options.
Controlled select input within an access role form.
Select dropdown with long region descriptions.
Select is a Week 3 atom in @quinkit/ui. It is implemented with strict TypeScript, design-token classes, dark-mode compatible colors, Storybook coverage, and unit tests.
aria-label for icon-only/unlabelled controls.focus-visible and the shared ring token.The component uses semantic tokens such as bg-background, text-foreground, border-input, bg-primary, and text-primary-foreground, so it adapts to .dark and theme palettes. Motion-sensitive styling uses motion-reduce:* or avoids required animation.
Public props are documented with JSDoc in packages/ui/src/components/atoms/select/select.tsx.
Select adheres to WAI-ARIA design patterns for accessible web components.
Keyboard Navigation
Tab / Shift + Tab — Focuses control and moves between interactive elements.Space / Enter — Triggers action or toggles selection.Escape — Closes open popovers, overlays, or dropdown menus.ARIA Standards
aria-* attributes.ring-ring) visible in both light & dark mode.Add a shadcn-compatible bridge file to your project that re-exports from @quinkit/ui.
npx shadcn@latest add https://quinkit-ui.vercel.app/r/select.json