Gerador de Botões CSS

Um gerador de botões CSS transforma definições visuais numa regra pronta a colar. Um botão só precisa de background-color, color, padding e border-radius; a borda é opcional e o padding escreve-se primeiro vertical e depois horizontal. Exemplo: padding: 12px 24px; border-radius: 8px; background-color: #2563eb; color: #ffffff dá um botão azul arredondado cujo rótulo passa o nível AA das WCAG com 5,17:1.

Pré-visualização

Verificação de acessibilidade

Contraste do texto

Tamanho renderizado
px de altura

Personalizar

Modelos Rápidos

Código Gerado

Incorporar esta ferramenta no seu site

× px

                        

💡 Dica de integração

Copie o código de incorporação e cole no HTML do seu site. A versão responsiva se adapta automaticamente a todos os tamanhos de tela.

0 avaliação
✓

Ferramentas populares

Não há mais ferramentas
Explorar todas as ferramentas

Como se faz um botão em CSS?

Escolha primeiro o tamanho da letra e derive tudo o resto a partir dele. O espaçamento vertical define a altura (altura = 2 x espaçamento vertical + 2 x espessura da borda + 1,2 x tamanho da letra, a entrelinha que este gerador escreve em cada regra que produz), o espaçamento horizontal define a largura e border-radius arredonda os cantos. As cinco receitas abaixo não têm borda, por isso o seu termo de borda é zero; com uma borda de 2px, cada altura da tabela cresce 4px. Estas cinco receitas cobrem quase todos os botões de uma página normal.

Tamanhos comuns de botão CSS, as declarações produzidas pelos controlos e a altura com que cada um é apresentado sem borda.
Receita font-size padding border-radius Altura Uso habitual
Pequeno 14px 6px 12px 6px 29 px Ações em linhas de tabela e barras de ferramentas densas
Médio (predefinido) 16px 12px 24px 8px 43 px Formulários, cartões e a maioria das ações de página
Grande 18px 16px 32px 10px 54 px Chamadas para ação de destaque e de página de preços
Pílula 16px 12px 28px 50px 43 px Chips de filtro e distintivos de marketing. Qualquer raio acima de metade da altura dá a mesma forma, daí o 999px escrito à mão.
Só ícone 16px 12px 12px 8px 43 px Controlo apenas com ícone: dê-lhe uma largura igual à altura para o manter quadrado, e um aria-label

As alturas mantêm-se porque a regra fixa line-height: 1.2; um botão que herde uma entrelinha maior da página em redor é apresentado mais alto do que a receita indica. O critério 2.5.8 Tamanho do alvo (mínimo) das WCAG 2.2 pede 24 x 24 pixels CSS, mas prevê cinco exceções - espaçamento suficiente à volta do alvo, um controlo equivalente de pelo menos 24 px noutro ponto da página, um alvo dentro de uma linha de texto, um tamanho imposto pelo navegador e um tamanho essencial para a informação - e o critério 2.5.5 eleva o alvo reforçado para 44 x 44. A receita Pequeno com 29 px é, portanto, o piso e não um valor seguro por omissão.

Como se estiliza um botão ao passar o rato, ao clicar ou desativado?

Um botão tem cinco estados que vale a pena pintar, e cada um é um seletor distinto sobre a mesma classe. As regras de repouso, hover e premido estão sempre na saída; deixe a caixa «Incluir os estados focus e disabled no código» marcada e o gerador acrescenta os outros dois por baixo.

Seletores CSS para cada estado do botão e as declarações que este gerador escreve para ele com as suas cores predefinidas. A linha de repouso lista apenas as duas declarações de cor; a regra .btn completa do código gerado acrescenta a letra, a altura de linha, o espaçamento, o raio, a borda, a sombra, display, cursor, transition e text-decoration.
Estado Seletor Declaração gerada Porquê
Repouso .btn background-color: #4f46e5; color: #ffffff A base sobre a qual todos os outros estados são construídos.
Hover .btn:hover opacity: 0.9; transform: translateY(-1px) Confirma que o ponteiro está sobre o alvo. O gerador levanta o botão um pixel e esbate-o ligeiramente. Ignorado em dispositivos táteis.
Premido .btn:active transform: translateY(0) Devolve o levantamento do hover à posição inicial enquanto o ponteiro está pressionado, para que o clique se leia como um toque.
Foco de teclado .btn:focus-visible outline: 3px solid #4f46e5; outline-offset: 2px Mostra a quem navega por teclado onde está. Nunca use outline: none sem uma substituição visível.
Desativado .btn:disabled opacity: 0.5; cursor: not-allowed; transform: none Assinala que a ação não está disponível. O atributo disabled num elemento button também bloqueia o clique.

Como se cria um botão clicável em HTML?

Use um elemento button quando o clique atua na página: <button type="button" class="btn">Guardar</button> para JavaScript, ou type="submit" dentro de um formulário. Use uma ligação quando o clique leva a outro lado: <a href="/precos" class="btn">Ver preços</a>, para que o clique do meio e «abrir num separador novo» continuem a funcionar. Só a ligação aceita uma URL, só o button aceita disabled, e um controlo apenas com ícone precisa de um aria-label porque um leitor de ecrã não tem mais nada para ler. Ambos partilham a mesma classe .btn, por isso o separador HTML + CSS produz um elemento button que pode converter em ligação com uma única edição.

Como se faz um botão CSS arredondado ou totalmente redondo?

É tudo border-radius. Quatro a oito pixels lêem-se como um retângulo suavizado, doze a dezasseis resultam mais acolhedores, e qualquer valor maior do que metade da altura do botão produz uma pílula, porque um raio demasiado grande para a caixa é reduzido até os dois cantos do mesmo lado se tocarem a custo — com um raio uniforme, metade do lado mais curto; 999px é o atalho habitual para «o mais redondo possível». Um círculo verdadeiro exige largura e altura iguais mais border-radius: 50%, por isso dê a um botão de ícone o mesmo espaçamento vertical e horizontal. Com a letra predefinida de 16px e 12px de espaçamento vertical o botão tem cerca de 43px, pelo que o controlo Raio da borda já desenha uma pílula a partir de 22.

Como se centra um botão CSS na página?

Um botão é inline-block, por isso text-align: center no elemento pai centra-o sem alterar nada no próprio botão. Para o centrar diretamente, use display: block com margin-inline: auto e uma largura, ou coloque-o num contentor com display: flex; justify-content: center. Dentro de uma linha flex existente, margin-inline-start: auto empurra um botão isolado para a margem direita. O rótulo centra-se sozinho desde que dimensione o botão com espaçamento em vez de uma altura fixa, que é exatamente o que o gerador emite.

Qual é o melhor gerador de botões CSS?

Avalie-o pelo que lhe entrega, não pelo número de temas que traz. Um gerador útil mostra o botão ao tamanho real, expõe espaçamento, raio, borda e sombra como controlos separados em vez de um tema fechado, emite CSS simples sem classes de framework para instalar, e diz-lhe se o par de cores é de facto legível. Esta página mede o rácio de contraste segundo as WCAG 2.2 e indica a altura apresentada enquanto arrasta os controlos, por isso uma falha aparece aqui e não numa auditoria de acessibilidade posterior.

O que produz este gerador de botões CSS?

Duas coisas: uma classe .btn reutilizável com as regras de hover, premido, foco e desativado para a sua folha de estilos, e as mesmas declarações em linha num elemento button para construtores de páginas, blocos de CMS e modelos de e-mail que removem o CSS externo. Ambas são CSS simples, sem classes de framework, e o painel de contraste acima diz-lhe se o par de cores passa as WCAG antes de o colar.

Sobre Gerador de Botões CSS

O Gerador de Botões CSS transforma um punhado de controlos e seletores de cor na única regra CSS de que um botão realmente precisa. Define o rótulo, as cores de fundo e de texto, o tamanho e a espessura da letra, o espaçamento horizontal e vertical, o raio dos cantos, a espessura e a cor da borda e uma de quatro profundidades de sombra; uma segunda cor opcional transforma o preenchimento liso num gradiente linear de 135 graus. A pré-visualização fica acima dos controlos e é um botão HTML verdadeiro com os seus valores, no tamanho com que será desenhado na sua página, por isso o que aprova é o que publica.

Duas coisas tornam a saída utilizável em vez de decorativa. Primeiro, o painel de código tem dois separadores: uma classe .btn reutilizável com regras :hover, :active, :focus-visible e :disabled para colocar numa folha de estilos, e o mesmo elemento button com tudo em linha num atributo style para construtores de páginas, blocos de CMS e modelos de e-mail que removem o CSS externo. Segundo, o painel de acessibilidade mede o par de cores segundo as WCAG 2.2 e indica o rácio de contraste com um veredito AAA, AA ou de falha, passando para os limiares de texto grande quando o tamanho e a espessura o justificam.

Indica ainda a altura apresentada - duas vezes o espaçamento vertical, mais duas vezes a borda, mais 1,2 vezes o tamanho da letra, a entrelinha que a regra fixa para que o botão no ecrã tenha exatamente a altura anunciada - face aos alvos de 24 x 24 e 44 x 44 pixels CSS dos critérios 2.5.8 e 2.5.5.

Um gradiente é verificado contra as suas duas paragens e é mostrado o pior dos dois rácios. Os oito modelos - Primário, Perigo, Sucesso, Contorno, Pílula, Gradiente, Discreto e Néon - são pontos de partida e não um destino: clique num e continue a afinar. Nenhuma cor, rótulo ou posição de controlo é enviada para lado nenhum; o cálculo do contraste, a pré-visualização e o código são feitos na própria página, e é por isso que o rácio se atualiza na mesma tecla que redesenha o botão. O que copia é uma única classe sem framework para instalar, sem passo de compilação e sem script em execução.

Casos de uso

Programadores front-end que precisam de uma regra de botão em CSS puro para um projeto sem design system: nada de Tailwind ou Bootstrap, apenas .btn e os seus estados.
Designers que entregam uma especificação à engenharia: arraste os controlos até a pré-visualização coincidir com a maqueta e passe valores exatos em pixels em vez de os descrever.
E-mails e páginas de destino que removem folhas de estilo externas e precisam de cada declaração em linha num atributo style, que é o que o separador HTML + CSS produz.
Revisores de acessibilidade que testam um par de cores de marca: o rácio de contraste e o veredito WCAG atualizam-se enquanto escreve os códigos hexadecimais.
Estudantes e professores que aprendem como padding, border-radius, box-shadow e font-weight interagem, com uma pré-visualização que reage a cada controlo isolado.

Como usar

1

Digite em Texto do Botão o texto que deve aparecer nele e defina as cores de Fundo e do texto nas amostras ou digitando os códigos hexadecimais ao lado.

2

Arraste os controles de tamanho da fonte, espaçamento horizontal, espaçamento vertical e Raio da Borda para moldar o botão e aumente a Espessura da Borda com uma Cor de Borda para um visual contornado.

3

Escolha um Peso da fonte entre Normal, Médio, Semi-negrito ou Negrito e uma Sombra entre Nenhum, Pequena, Média ou Grande.

4

Marque Gradiente e escolha a segunda cor para transformar o fundo em um gradiente diagonal de duas cores.

5

Clique em um cartão de Modelos Rápidos, como Primário, Contorno, Pílula, Gradiente, Discreto ou Néon, para carregar um estilo pronto que você ainda pode ajustar.

6

Confira o botão ao vivo no painel de Pré-visualização, mude a aba de saída para CSS ou HTML + CSS e clique no ícone de copiar na caixa de código.

Dicas Pro

  • Defina o tamanho da letra antes de tudo o resto. O espaçamento e o raio são muito mais fáceis de avaliar com o rótulo já no tamanho final, e a leitura da altura (2 x espaçamento vertical + 2 x espessura da borda + 1,2 x tamanho da letra) acompanha-o.
  • Carregue um modelo e depois ajuste. Contorno e Discreto já partem de uma espessura de borda acima de zero, que é o caminho mais rápido para um botão secundário.
  • Escreva os códigos hexadecimais no campo ao lado de cada amostra em vez de procurar dentro do seletor de cor; a pré-visualização e o rácio de contraste atualizam-se a cada tecla.
  • O nível AA aplica-se a qualquer tamanho de texto; só o limiar muda: 4,5:1 para texto normal e 3:1 quando o rótulo chega a 24px, ou a 18,66px em negrito. Um par a 3:1 pode parecer aceitável num monitor brilhante e ser ilegível ao ar livre, por isso trate o limiar mais baixo como um teto, não como um alvo.
  • Os gradientes são verificados contra as duas paragens e é indicado o pior rácio, por isso, se só uma ponta falha, mova essa paragem em vez de recolorir o botão inteiro.

Solução de problemas

Problema:

O CSS copiado não tem qualquer efeito visível na minha página.

Solução:

A classe está a ser sobreposta, ou nunca foi aplicada. Confirme que o elemento tem class="btn", carregue a sua folha de estilos depois do CSS do framework e abra o painel Estilos nas ferramentas de programação: uma declaração riscada significa que outro seletor ganha por especificidade ou por ordem.

Problema:

O gradiente parece liso ou não aparece de todo.

Solução:

Um gradiente é uma imagem de fundo, não uma cor de fundo. Marque Gradiente para que a ferramenta emita background: linear-gradient(...) em vez de background-color. Se mesmo assim não aparecer, procure uma propriedade abreviada background ou um background-image declarados mais à frente no mesmo elemento: a abreviada repõe background-image em none e apaga o gradiente. Um background-color posterior não o consegue tapar, porque o CSS Backgrounds 3 pinta a cor por baixo das imagens de fundo.

Problema:

O distintivo de contraste diz que as cores falham, mas o botão parece-me legível.

Solução:

O contraste mede-se pela luminância relativa, não pela vivacidade aparente de uma cor. Pares de meio-tom como #f59e0b com texto branco ficam perto de 2:1 apesar de parecerem vivos. Escureça o fundo ou passe o rótulo a quase preto; o rácio atualiza-se enquanto escreve.

Perguntas frequentes

Escreva uma única regra para a classe e defina seis declarações: background-color, color, font-size, font-weight, padding e border-radius. Acrescente box-shadow e uma borda apenas quando o desenho o exigir. O gerador escreve exatamente essa regra por si: arraste os controlos, veja a pré-visualização ao vivo e copie o bloco .btn do separador CSS para a sua folha de estilos.

O separador CSS dá uma classe .btn reutilizável com as suas regras de estado para colar numa folha de estilos, de modo que todos os botões do site mudam quando edita esse bloco. O separador HTML + CSS dá um único elemento button com as mesmas declarações em linha num atributo style, que é o que precisam os construtores de páginas, os blocos de CMS e os modelos de e-mail, porque removem folhas de estilo externas. Converta-o numa ligação com href quando o clique navega.

Suba o controlo Raio da borda. Perto de 8px obtém o retângulo suavizado que a maioria das interfaces usa, e acima de metade da altura do botão os cantos fundem-se numa pílula. Com a letra predefinida de 16px e 12px de espaçamento vertical o botão tem 43px, por isso qualquer raio acima de cerca de 22 já parece totalmente arredondado, e 999px em CSS escrito à mão significa o mesmo.

Sim. Sempre que muda a cor do texto ou do fundo, recalcula o rácio de contraste WCAG e mostra AAA, AA ou uma falha. Texto normal precisa de 4,5:1 para AA e 7:1 para AAA; texto de 24px, ou de 18,66px a negrito, conta como grande e precisa apenas de 3:1 e 4,5:1. Os gradientes são medidos contra as duas paragens de cor.

O painel de tamanho indica a altura apresentada como duas vezes o espaçamento vertical, mais duas vezes a espessura da borda, mais 1,2 vezes o tamanho da letra - a entrelinha que o gerador fixa na regra, para que o número corresponda ao botão desenhado por cima. O critério 2.5.8 das WCAG 2.2 pede um alvo de 24 x 24 pixels CSS e o 2.5.5 eleva-o para 44 x 44. A letra de 16px com 12px de espaçamento vertical dá 43px, bem acima do mínimo.

Use button quando o clique atua na página atual: submeter um formulário, abrir um diálogo, executar JavaScript. É focável por omissão, dispara com Enter e Espaço e suporta o atributo disabled. Use uma ligação com href quando o clique leva a outra URL, para que o clique do meio e «abrir num separador novo» continuem a funcionar. Ambos podem levar a mesma classe .btn.

O CSS gerado já traz .btn:hover e .btn:active. Deixe marcada a caixa «Incluir os estados focus e disabled no código» e obtém também .btn:focus-visible com um contorno de 3px afastado 2px, e .btn:disabled a meia opacidade com cursor: not-allowed. Nunca apague um contorno de foco sem o substituir por algo visível, ou quem navega por teclado perde qualquer noção de onde está.

Sim. A saída é CSS simples, sem licença, sem obrigação de atribuição e sem dependências em execução, e o comentário de crédito na primeira linha pode ser apagado. Nada do que escreve é enviado: a pré-visualização, o código gerado e o cálculo do contraste são feitos em JavaScript dentro desta página, por isso as suas cores e rótulos nunca chegam a um servidor.

Os estilos herdados são quase sempre a causa. Um reset de framework, uma font-family do elemento pai, uma regra global de button ou um seletor de maior especificidade podem sobrepor-se à classe colada. Carregue a sua folha de estilos depois do CSS do framework, mantenha .btn num único elemento e leia o painel Estilos nas ferramentas de programação: uma declaração riscada diz-lhe exatamente que seletor ganhou.

Normas e referências

FreeWebTools AI
Powered by free AI models · Full chat →