Forms

Textarea

Multi-line text input.

Install

Install
npx shadcn@latest add http://localhost:3000/r/textarea.json

Usage

textarea-example.tsx
"use client"

import { Textarea } from "@/components/ui/textarea"

export function Example() {
  return (
    <Textarea className="max-w-xs" placeholder="Add a short description…" />
  )
}

API

Textarea
TypeScript
function Textarea(props: React.ComponentProps<"textarea">)
Source code +
components/ui/textarea.tsx
import * as React from "react"
import { cn } from "cn"

function Textarea({ className, ...props }: React.ComponentProps<"textarea">) {
  return (
    <textarea
      data-slot="textarea"
      className={cn(
        "flex field-sizing-content min-h-16 w-full resize-none rounded-2xl border border-transparent bg-input/50 px-2.5 py-2 text-base transition-[color,box-shadow] duration-200 outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/30 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
        className
      )}
      {...props}
    />
  )
}

export { Textarea }

Registry JSON ↗