Skip to main content

FormControl

Apresentação

O componente FormControl é responsável por criar um container para elementos de formulário, fornecendo uma estrutura consistente para labels, inputs e mensagens de erro. Ele é ideal para organizar e estilizar campos de formulário de forma padronizada.

Quando usar

  • Para organizar campos de formulário
  • Para agrupar labels e inputs
  • Para estruturar mensagens de erro
  • Para criar layouts de formulário
  • Para agrupar campos relacionados
  • Para manter consistência visual
  • Para melhorar a acessibilidade
  • Para organizar validações
  • Para estruturar formulários complexos
  • Para manter o alinhamento de elementos

Forma básica de uso

import { FormControl } from 'eitri-luminus';

// FormControl básico
<FormControl>
<label className="label">
<span className="label-text">Nome</span>
</label>
<input type="text" className="input input-bordered" />
</FormControl>

// FormControl com foco no filho
<FormControl sendFocusToChild>
<span className="label-text">Lembrar-me</span>
<input type="checkbox" className="checkbox" />
</FormControl>

// FormControl com classes personalizadas
<FormControl className="w-full max-w-xs">
<label className="label">
<span className="label-text">Email</span>
</label>
<input type="email" className="input input-bordered" />
</FormControl>

// FormControl com mensagem de erro
<FormControl>
<label className="label">
<span className="label-text">Senha</span>
</label>
<input type="password" className="input input-bordered input-error" />
<label className="label">
<span className="label-text-alt text-error">Senha muito curta</span>
</label>
</FormControl>

// FormControl com múltiplos campos
<FormControl>
<label className="label">
<span className="label-text">Endereço</span>
</label>
<input type="text" className="input input-bordered" placeholder="Rua" />
<input type="text" className="input input-bordered mt-2" placeholder="Número" />
<input type="text" className="input input-bordered mt-2" placeholder="Complemento" />
</FormControl>

// FormControl com checkbox e label
<FormControl sendFocusToChild>
<div className="flex items-center gap-2">
<input type="checkbox" className="checkbox" />
<span className="label-text">Aceito os termos</span>
</div>
</FormControl>

Propriedades

PropriedadeTipoDescrição
sendFocusToChildbooleanEnvia o foco para o elemento filho
classNamestringClasses CSS adicionais
idstringIdentificador único do componente

Heranças

O componente FormControl herda todas as propriedades comuns da biblioteca através da interface CommonProps, que inclui:

  • Propriedades de estilo (margin, padding, etc)
  • Propriedades de layout (flex, grid, etc)
  • Propriedades de posicionamento
  • Propriedades de acessibilidade
  • Propriedades de identificação (id, data-e)

Observações

  • O componente usa a classe 'form-control' para estilização base
  • É possível personalizar a aparência usando classes do Tailwind
  • O componente é responsivo por padrão
  • Mantém a semântica HTML apropriada
  • Pode conter qualquer tipo de elemento de formulário
  • É especialmente útil para organização de formulários
  • Pode ser combinado com outros componentes
  • Suporta diferentes layouts e estilos
  • Melhora a acessibilidade dos formulários
  • Pode ser usado para agrupar campos relacionados
  • Suporta mensagens de erro e validação
  • Pode ser usado em formulários complexos
  • Mantém o alinhamento consistente dos elementos
  • Suporta diferentes tamanhos e estilos
  • Pode ser usado com qualquer tipo de input