# TextField

A precise, labelled input with native validation and clear error feedback.

- Family: Forms, imported from `mizu-ui` or `mizu-ui/forms`
- Docs: https://mizu.user64bit.world/components/text-field
- Source: https://github.com/0xuser64bit/mizu/blob/main/packages/mizu/src/forms/Fields.tsx

## Usage

```tsx
import { TextField } from "mizu-ui";

export function Example() {
  return (
    <TextField
      label="Project name"
      name="project"
      required
      placeholder="Untitled project"
      hint="Visible to your collaborators."
    />
  );
}
```

## Copy it with the shadcn CLI

```sh
npx shadcn@latest init 0xuser64bit/mizu/preset # once, where there is no components.json
npx shadcn@latest add 0xuser64bit/mizu/text-field
```

## Props

- `label`: `string`. Visible input label.
- `hint / error`: `ReactNode / string`. Linked help and validation.
- `...input`: `InputHTMLAttributes`. Native value, onChange, type, required, ref and validation.

## Accessibility

A real labelled input; descriptions and errors use aria-describedby. Supports native input types and autocomplete.

## Motion

CSS transitions explain state changes. Reduced motion removes travel.
