# Input

A native input with semantic styling and independent visual sizing.

Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.

## Example

```tsx
"use client";

import { FloodRoot, Field, Input } from "@flood-md/react";
import "@flood-md/react/styles.css";

export function Example() {
  return (
    <FloodRoot>
      <Field label="Workspace name">
        {(control) => <Input {...control} defaultValue="My project" />}
      </Field>
    </FloodRoot>
  );
}
```

## Design notes

- Use Field or a native associated label; placeholder text is not a label.
- controlSize changes appearance. The native numeric size attribute keeps its HTML meaning.
- Default outlines use the quiet field.border role. field.boundary is a stronger opt-in; preserve the independent focus indicator when customizing colors.

## API reference

| Prop | Values | Default |
| --- | --- | --- |
| `status` | `"error" \| "warning" \| "success" \| "info"` | `—` |
| `invalid` | `boolean` | `—` |
| `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `"md"` |
| `Native HTML props` | `InputHTMLAttributes<HTMLInputElement>` | `Forwarded` |
