# Unseen UI: full component reference Install: `npm install @stackunseen/ui`. Import `@stackunseen/ui/styles.css` once; optional entries name their own stylesheet (for example `@stackunseen/ui/chat.css`). React 19.3 is a peer. ## Field A shared label, description and validation message around a form control. - Group: Forms - Import: `import { Field } from '@stackunseen/ui';` - Page: https://unseenui.com/components/field/ - Inputs: label · description? · error? · required? · disabled? · invalid? · labelAs? · children - Host responsibility: The application owns the value and validation result. Field associates the visible label, description and error with its control; a rendered error is not server validation. - Keyboard: Tab focuses the native control. Labels are associated with their inputs; disabled controls leave the tab order. Error text remains available through aria-describedby. - Documented states: Default, Required, Invalid, Disabled ```tsx setName(event.target.value)} /> ``` ## Input A text input that works with Field and your own validation. - Group: Forms - Import: `import { Input } from '@stackunseen/ui';` - Page: https://unseenui.com/components/input/ - Inputs: Native input props/ref · value · onChange · disabled? · readOnly? - Host responsibility: The application owns the value and validation result. Field associates the visible label, description and error with its control; a rendered error is not server validation. - Keyboard: Tab focuses the native control. Labels are associated with their inputs; disabled controls leave the tab order. Error text remains available through aria-describedby. - Documented states: Default, Invalid, Disabled, Read-only, Long value ```tsx setName(event.target.value)} /> ``` ## Textarea A native multiline field for descriptions and longer written content. - Group: Forms - Import: `import { Textarea } from '@stackunseen/ui';` - Page: https://unseenui.com/components/textarea/ - Inputs: Native textarea props/ref · value · onChange · rows? · disabled? · readOnly? - Host responsibility: The application owns the value and validation result. Field associates the visible label, description and error with its control; a rendered error is not server validation. - Keyboard: Tab moves to the next control; Enter inserts a new line. Native selection, editing and resizing remain available. - Documented states: Default, Invalid, Disabled, Read-only, Long value ```tsx