Skip to content

Input

A field for collecting user input.

---
import { Input } from '@bejamas/registry/ui/input';
---
<Input type="text" placeholder="Enter your name" />
Terminal window
bunx bejamas add input
---
import { Input } from '@bejamas/registry/ui/input';
---
<Input type="email" placeholder="Enter your email" />
Prop Type Default
size InputUiSize | NativeInputSize
nativeSize NativeInputSize
---
import { Input } from '@bejamas/registry/ui/input';
---
<Input type="email" placeholder="Enter your email" />
---
import { Input } from '@bejamas/registry/ui/input';
---
<Input type="email" placeholder="Enter your email" disabled />

Set aria-invalid="true" to show the error state. Wrap the input in a Field with a FieldError to describe the problem.

---
import { Field, FieldError, FieldLabel } from '@bejamas/registry/ui/field';
import { Input } from '@bejamas/registry/ui/input';
---
<Field data-invalid="true" class="w-full max-w-sm">
<FieldLabel for="email-invalid">Email</FieldLabel>
<Input
id="email-invalid"
type="email"
value="hello@"
aria-invalid="true"
aria-describedby="email-invalid-error"
/>
<FieldError id="email-invalid-error">Enter a valid email address.</FieldError>
</Field>
---
import { Button } from '@bejamas/registry/ui/button';
import { Input } from '@bejamas/registry/ui/input';
---
<div class="grid w-full max-w-sm gap-3">
<div class="flex items-center gap-2">
<Input size="sm" placeholder="Small input (h-8)" />
<Button size="sm" variant="outline">
Small
</Button>
</div>
<div class="flex items-center gap-2">
<Input placeholder="Default input (h-9)" />
<Button variant="outline">Default</Button>
</div>
<div class="flex items-center gap-2">
<Input size="lg" placeholder="Large input (h-10)" />
<Button size="lg" variant="outline">
Large
</Button>
</div>
</div>
---
import { Input } from '@bejamas/registry/ui/input';
import { Label } from '@bejamas/registry/ui/label';
---
<div class="grid w-full max-w-sm items-center gap-3">
<Label htmlFor="picture">Picture</Label>
<Input id="picture" type="file" />
</div>
---
import { Input } from '@bejamas/registry/ui/input';
import { Label } from '@bejamas/registry/ui/label';
---
<div class="grid w-full max-w-sm items-center gap-3">
<Label htmlFor="email">Email</Label>
<Input id="email" type="email" placeholder="Enter your email" />
</div>
---
import { Button } from '@bejamas/registry/ui/button';
import { Input } from '@bejamas/registry/ui/input';
---
<div class="flex w-full max-w-sm items-center gap-2">
<Input type="email" placeholder="Email" />
<Button type="submit" variant="outline">
Subscribe
</Button>
</div>