Components
Textarea
Displays a form textarea or a component that looks like a textarea.
Loading...
Installation
CLI
npx shadcn@latest add https://exawizards.com/exabase/design/registry/textarea.jsonManual
Copy and paste the following code into your project.
import * as React from "react"
import { cva, VariantProps } from "class-variance-authority"
import { cn } from "@/lib/utils"
const textareaVariants = cva(
"flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-background text-base text-foreground transition-colors placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
{
variants: {
size: {
default: "px-2.5 py-1.75 md:text-sm",
sm: "rounded-[min(var(--radius-md),12px)] px-2.5 py-1.5 pb-1 md:text-[0.8rem]",
},
},
defaultVariants: {
size: "default",
},
}
)
function Textarea({
className,
size = "default",
...props
}: React.ComponentProps<"textarea"> & VariantProps<typeof textareaVariants>) {
return (
<textarea
data-slot="textarea"
data-size={size}
className={cn(textareaVariants({ size }), className)}
{...props}
/>
)
}
export { Textarea }
Usage
import { Textarea } from "@/components/ui/textarea"<Textarea />Examples
Size
Loading...
Disabled
Loading...
Invalid
Loading...
API
<Textarea> renders as a <textarea> element.