Makuco UI
ComponentesData Entry & Selection

Textarea

Campo de texto multilinha para captura de conteúdo extenso, com suporte a validação, contador de caracteres e integração nativa com formulários. Usa a tag `mk-textarea`.

O mk-textarea é o campo de texto multilinha do Makuco UI. Suporta texto de suporte, mensagem de erro, contador de caracteres, número de linhas visíveis e integração nativa com formulários via ElementInternals.

Integração com Angular Forms

Para usar com ngModel ou FormControl, importe MkTextareaModule em vez de MkTextareaComponent. Veja Formulários com Angular.

Padrão

import { MkTextarea } from '@db1/makuco-ui-react';

<MkTextarea label="Mensagem" placeholder="Digite sua mensagem..." />
<mk-textarea label="Mensagem" placeholder="Digite sua mensagem..."></mk-textarea>

Texto de suporte

Use supportText para exibir uma dica abaixo do campo quando não há erro.

<MkTextarea label="Bio" supportText="Máximo 200 caracteres." placeholder="Conte algo sobre você..." />
<mk-textarea label="Bio" support-text="Máximo 200 caracteres." placeholder="Conte algo sobre você..."></mk-textarea>

Estado de erro

Defina errorMessage para ativar o estado inválido e exibir a mensagem abaixo do campo.

<MkTextarea label="Descrição" errorMessage="Campo obrigatório." />
<mk-textarea label="Descrição" error-message="Campo obrigatório."></mk-textarea>

Obrigatório

<MkTextarea label="Observações" required />
<mk-textarea label="Observações" required></mk-textarea>

Desabilitado e somente leitura

<MkTextarea label="Desabilitado" disabled value="Conteúdo não editável" />
<MkTextarea label="Somente leitura" readonly value="Apenas visualização" />
<mk-textarea label="Desabilitado" [disabled]="true" value="Conteúdo não editável"></mk-textarea>
<mk-textarea label="Somente leitura" [readonly]="true" value="Apenas visualização"></mk-textarea>

Contador de caracteres

Defina maxLength para habilitar o contador atual/máximo abaixo do campo.

<MkTextarea label="Bio" maxLength={200} placeholder="Conte algo sobre você..." />
<mk-textarea label="Bio" [max-length]="200" placeholder="Conte algo sobre você..."></mk-textarea>

Número de linhas

Use rows para controlar a altura inicial do campo em linhas de texto visíveis.

<MkTextarea label="Resumo" rows={4} />
<MkTextarea label="Detalhes" rows={8} />
<mk-textarea label="Resumo" [rows]="4"></mk-textarea>
<mk-textarea label="Detalhes" [rows]="8"></mk-textarea>

Formulários

O mk-textarea é form-associated e integra com <form> nativo via ElementInternals.

<form onSubmit={handleSubmit}>
  <MkTextarea label="Mensagem" name="mensagem" required />
  <MkButton type="submit">Enviar</MkButton>
</form>
<form (ngSubmit)="handleSubmit()">
  <mk-textarea label="Mensagem" name="mensagem" required></mk-textarea>
  <mk-button type="submit">Enviar</mk-button>
</form>

Autofill do navegador

Defina autocomplete com um token do HTML para habilitar o autofill do navegador.

<MkTextarea label="Endereço completo" name="street-address" autocomplete="street-address" rows={2} />
<mk-textarea label="Endereço completo" name="street-address" autocomplete="street-address" rows="2"></mk-textarea>

Modo código

variant="code" aplica a família --db1-typography-family-code (Fira Code, com fallback monoespaçado do sistema) no mesmo tamanho do texto padrão, e desliga o corretor ortográfico, a autocapitalização e a autocorreção do navegador. Use para editar JSON, código ou identificadores.

<MkTextarea label="Payload" variant="code" rows={4} />
<mk-textarea label="Payload" variant="code" rows="4"></mk-textarea>

Corretor e autocapitalização

spellcheck e autocapitalize são repassados ao textarea nativo. Sem valor, valem os padrões do navegador; com variant="code", spellcheck é false e autocapitalize é "off". Valores definidos no componente prevalecem sobre os da variante.

<MkTextarea label="Comentário" spellcheck={false} autocapitalize="off" rows={2} />
<mk-textarea label="Comentário" [spellcheck]="false" autocapitalize="off" rows="2"></mk-textarea>

Props

PropTipoPadrãoDescrição
labelstring—Texto do rótulo exibido acima do campo. Obrigatório.
valuestring—Valor controlado do textarea.
placeholderstring—Placeholder exibido quando o campo está vazio.
supportTextstring—Texto auxiliar abaixo do campo, visível quando não há erro.
helperTextstring—Texto exibido no ícone de ajuda ao lado do rótulo. Quando omitido, o ícone não é exibido.
errorMessagestring—Mensagem de erro. Quando definida, ativa o estado inválido.
maxLengthnumber—Limite de caracteres. Habilita o contador atual/máximo abaixo do campo.
rowsnumber1Número de linhas de texto visíveis — controla a altura inicial do campo.
requiredbooleanfalseMarca o campo como obrigatório com asterisco no rótulo.
disabledbooleanfalseDesabilita o campo, impedindo qualquer interação.
readonlybooleanfalseTorna o campo somente leitura — foco permitido, mas valor não pode ser alterado.
namestring—Atributo name para envio em formulários.
requiredMessagestring"This field is required"Mensagem do tooltip de validação nativa quando required e vazio. Substitua para i18n.
autocompletestring—Token autocomplete do HTML repassado ao textarea nativo, para habilitar o autofill do navegador.
variant"code"—"code" usa fonte monoespaçada e desliga, por padrão, corretor, autocapitalização e autocorreção.
spellcheckboolean—Corretor ortográfico do navegador, repassado ao textarea nativo. Sem valor, vale o padrão do navegador (ou false com variant="code").
autocapitalizestring—Autocapitalização dos teclados virtuais ("off", "none", "on", "sentences", "words", "characters"), repassada ao textarea nativo. Sem valor, vale o padrão do navegador (ou "off" com variant="code").

Eventos

EventoPayloadDescrição
mkInputstringEmitido a cada tecla digitada com o valor atual do campo.
mkChangestringEmitido quando o campo perde o foco e o valor foi alterado.
mkFocusvoidEmitido quando o campo recebe foco.
mkBlurvoidEmitido quando o campo perde foco.

Acessibilidade

  • Usa <textarea> nativo internamente — foco e navegação por teclado estão inclusos.
  • aria-invalid="true" aplicado automaticamente quando errorMessage está definida.
  • aria-describedby aponta para o texto de suporte ou mensagem de erro.
  • O asterisco de campo obrigatório tem aria-hidden="true" — a semântica de obrigatoriedade é transmitida pelo atributo required nativo.
  • Com delegatesFocus: true, o foco é delegado ao <textarea> interno ao clicar no host.
  • Com variant="code", o corretor ortográfico fica desligado e o leitor de tela não anuncia erros de ortografia no conteúdo.

On this page