Textarea
components/ui/textarea.tsx
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 }
No selection tags yet — empty means no evidence, not lack of support.