Default
A basic text input.
Atoms
Text entry field supporting states, icons, and validation.
pnpm add @quinkit/uiimport { Input } from "@quinkit/ui";Live previews · code · themes · viewport · dark mode
A basic text input.
Associate a label and supporting text.
We'll never share your email.
Invalid styling with an error message.
Enter a valid email address.
A non-editable input.
Add affixes for context.
A search field with a leading icon.
Input 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/input/input.tsx.
Input 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/input.json