Negocios

Textarea

Campo de texto multilinha. Usa field-sizing-content para se ajustar automaticamente ao conteúdo.

Visão geral

O Textarea cresce automaticamente com o conteúdo via field-sizing-content. Use dentro de Field para label e erro.

Estados básicos

Escreva sua mensagem aqui.

Import

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

Auto-resize

O Textarea usa field-sizing-content que faz o campo crescer conforme o usuário digita. Para altura mínima fixa, use rows ou min-h-*.

Variações

Exemplos com altura controlada e resize desabilitado.

Padrão de implementação

Snippets para uso do Textarea.

Textarea com Field

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

<Field label="Descrição" htmlFor="desc" required>
  <Textarea
    id="desc"
    placeholder="Descreva o problema..."
    rows={4}
  />
</Field>

Textarea controlado

"use client"
import { useState } from "react"

export function TextareaDemo() {
  const [value, setValue] = useState("")

  return (
    <div className="flex flex-col gap-1">
      <Textarea
        value={value}
        onChange={(e) => setValue(e.target.value)}
        placeholder="Escreva aqui..."
        maxLength={500}
      />
      <span className="text-xs text-muted-foreground text-right">
        {value.length}/500
      </span>
    </div>
  )
}

Props e uso

API do Textarea.

Props principais

rows

number

Altura mínima em linhas.

placeholder

string

Texto de placeholder.

disabled

boolean

Desabilita o campo.

aria-invalid

boolean

Ativa o visual de erro.

className

string

Use resize-none para bloquear redimensionamento manual.

MN Design System · Primary #5FC318 · Brand Green #AFF000 · Font: Inter