Formulários
Dois desenhos de campo. No site, só o filete de baixo e o texto grande: tipografia no lugar da caixa. No produto, a caixa, mais densa. Rótulos em forma de pergunta, sempre visíveis, e mensagens de erro em português que aparecem na hora certa.
Campo com filete
O padrão do site e da captação. O filete tem 3:1 com o fundo; no foco, engrossa na cor do anel. O erro pinta o filete e mostra a mensagem com ícone, na cor de perigo do tema.
Texto, seleção e área de texto
.rq-campos · .rq-campo · __rotulo · __controle · __selecao · __ajuda · __erroConfira o e-mail: falta o domínio.
A máscara entra enquanto você digita.
- Quando usar
- Formulários do site: contato, captação, vaga. Poucos campos, um por linha.
- Acessibilidade
- Todo controle tem
<label for>. Ajuda e erro entram noaria-describedby; erro também marcaaria-invalid. O contador visível não é lido a cada tecla: o leitor de tela ouve quando faltam 20, 10 e 0. - Tokens
--rq-linha-forte(filete),--rq-anel(foco),--rq-perigo(erro),--rq-campo-gap.
Campo em caixa
Para painel, CRM e formulários longos. Mesmo HTML, com .rq-campos--caixa no grupo. Combina com a densidade compacta. Prefixo e sufixo ficam dentro do campo (.rq-campo__grupo).
Caixa, máscaras e prefixo
.rq-campos--caixa · .rq-campos__linha · __grupo · __prefixo · data-mascara- Máscaras
telefone,cpf,cnpj,cpf-cnpj,cep,dataemoeda(centavos a partir dos dígitos). O cursor não pula. A validação confere se o valor está completo.- Prefixo
- O "R$" é visual (
aria-hidden); o rótulo diz o que é o campo.
Escolhas
Checkbox e rádio
.rq-grupo-campos · .rq-escolha · __controle · __textoEscolha em cartão
.rq-escolha--cartao · __texto smallA opção inteira é a área de toque. Para quiz e para a escolha de serviço, com uma linha de apoio.
Interruptor
.rq-interruptor · role="switch" · .rq-escolha--entreLiga e desliga algo que vale na hora, sem botão de salvar.
Faixa e número
Faixa com valor ao vivo
.rq-faixa · data-rq="faixa" · data-formatoO módulo preenche a trilha até o valor e escreve o valor formatado no <output> e no aria-valuetext. Formatos: moeda, numero, porcentagem, ou data-sufixo.
Número com passo
.rq-numero · data-rq="numero"Os botões param no mínimo e no máximo. Sem JS, ficam escondidos e o campo nativo continua.
Upload, data e busca
Upload
.rq-upload · __area · __lista · data-rq="upload" · data-max-mbArraste ou clique. A lista mostra nome e tamanho, com botão para remover. Tipo e tamanho fora do permitido viram mensagem de erro do campo.
Data com calendário
.rq-data · .rq-calendario · data-rq="data" · data-min · data-maxDigitar continua valendo (máscara dd/mm/aaaa). O calendário abre num popover: setas mudam o dia, Page Up e Page Down o mês, Home e End a semana, Enter escolhe, Esc fecha.
Busca
.rq-busca · __limpar · data-rq="busca"Validação e formulário em etapas
A validação usa as regras nativas (required, type, minlength, pattern) e as máscaras, com mensagens em português. Nada aparece enquanto a pessoa digita pela primeira vez; ao sair do campo ou ao seguir, sim. A etapa só avança se estiver certa. Experimente avançar com os campos vazios.
Três etapas
.rq-form-etapas · data-rq="formulario-etapas validacao"Recebemos seus dados.
- Sem JavaScript
- As três etapas aparecem uma embaixo da outra e o formulário envia normalmente, com a validação do navegador.
- Foco e leitura
- Ao avançar, o foco vai para o título da etapa e a contagem ("Etapa 2 de 3") é anunciada. Ao errar, o foco vai para o primeiro campo errado.
- Evento
- Formulário válido dispara
rq:validocom oFormData. Comdata-validacao-envia, segue o envio nativo.