Basic Textarea
A labelled multi-line text input.
Atoms
Multi-line text input field with auto-resizing and validation.
pnpm add @quinkit/uiimport { Textarea } from "@quinkit/ui";Live previews · code · themes · viewport · dark mode
A labelled multi-line text input.
Textarea paired with explanatory guidance text.
Brief description for your public team directory.
Invalid validation styling with error message.
Please provide some feedback.
Track remaining character allowance against max length.
0/180
Realistic product feedback form with submission validation.
Describe your feature request or bug report.
Textarea 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/textarea/textarea.tsx.
Textarea 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/textarea.json