SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
31.12.2024

Como Alterar a Cor dos Botões de Rádio em CSS: Técnicas e Exemplos

Resposta Rápida

Se você deseja alterar rapidamente a cor de um botão de rádio, use CSS personalizado com o pseudo-elemento :before para criar uma aparência atraente.

HTML:

<input type="radio" id="radioExemplo" name="grupo" hidden>
<label for="radioExemplo" class="estilo-radio"></label>

CSS:

.estilo-radio {
  display: inline-block;
  width: 20px;
  height: 20px;
  border-radius: 50%; /* Cria uma forma circular. */
  background: #eee; /* Cor de fundo para o botão inativo. */
  border: 2px solid #ccc; /* Borda para contraste. */
}

.estilo-radio::before {
  content: '';
  display: inline-block;
  width: 100%;
  height: 100%;
  border-radius: 50%; /* Mantém a forma circular. */
  background: green; /* Define a cor para indicar o botão ativo. */
  opacity: 0; /* Inicialmente oculta o botão. */
  transition: opacity 0.3s; /* Define uma mudança de opacidade suave. */
}

#radioExemplo:checked + .estilo-radio::before {
  opacity: 1; /* Torna a cor visível quando o botão é ativado. */
}

Neste exemplo, alteramos a opacidade no pseudo-elemento ::before para exibir a cor quando o botão de rádio é ativado.

Modifique a propriedade background na classe .estilo-radio para a cor do botão de rádio inativo e dentro de ::before para definir a cor do estado ativo.

Lidando com Recursos de Navegadores

Navegadores Modernos e Cor de Destaque

A nova propriedade CSS accent-color permite que você altere as cores dos elementos da interface do usuário, incluindo botões de rádio. No entanto, em navegadores mais antigos, lidar com essa propriedade pode ser complicado:

input[type='radio'] {
  accent-color: #ff4500; /* Define a cor desejada. */
}

Esse código funcionará em Chrome/Edge 93+, Firefox 92+, e Safari 15.4+. Problemas de compatibilidade podem surgir em versões de navegadores mais antigas ao usar novas propriedades CSS!

Controlando Posicionamento e Tamanho

Definindo position: relative para o elemento pai e position: absolute para o pseudo-elemento :after, você obtém controle preciso sobre os parâmetros de exibição:

.estilo-radio {
  position: relative; /* Define o posicionamento do pai. */
}

.estilo-radio::after {
  position: absolute; /* Posicionamento para o elemento filho. */
  top: 5px;
  left: 5px;
}

Use a função transform: scale() para variar os tamanhos dos botões de rádio em diferentes designs sem a necessidade de JavaScript ou imagens adicionais.

Alinhamento e Interação

Aperfeiçoando Estilos

Ao integrar botões de rádio personalizados em sistemas de grid, utilize flexbox ou layouts de grid para aprimorar a exibição:

.container {
  display: flex;
  align-items: center; /* Garante o alinhamento vertical. */
  justify-content: center; /* Centraliza os elementos. */
}

Não se esqueça dos estados :hover, :focus, e :active para atrair e manter a atenção do usuário.

Visualização

Transforme os padrão botões de rádio em elementos coloridos:

Antes: 🌼🌼🌼

Adicione um pouco de mágica com CSS:

input[type='radio']:checked {
  accent-color: #f00; /* Use vermelho para o elemento ativo. */
}
input[type='radio']:not(:checked) {
  accent-color: #00f; /* Escolha azul para o elemento inativo. */
}

E agora nossa aparência fica assim:

Depois: 🌹🌼🌼

Sua interface ganha vida e personalidade graças aos botões de rádio!

Criando Alternativas para Limitações

Para personalizações mais detalhadas, você pode usar imagens personalizadas ou bibliotecas JavaScript como a de Ryan Fait. Quando as capacidades do CSS não são suficientes, essas ferramentas se tornam inestimáveis:

  • Imagens personalizadas podem agir como máscaras para botões de rádio, alterando sua visibilidade conforme necessário.
  • Use JavaScript para animar o processo de seleção, adicionando dinamismo com som ou feedback tátil.

Truque do Checkbox: Fazendo Sem JavaScript

Com o Truque do Checkbox, você pode fazer alterações de estilo sem usar JavaScript. Este método emprega checkboxes, rótulos e a pseudo-classe :checked. É como usar uma porta oculta para desbloquear inúmeras possibilidades:

<input type="checkbox" id="toggle" hidden>
<label for="toggle" class="botao">Alternar</label>

Utilizando o combinador de irmãos adjacentes (+) e a pseudo-classe :checked, implemente as mudanças de estilo:

#toggle:checked + .botao {
  background-color: #4CAF50; /* O elemento recebe uma cor verde quando ativado. */
}

Acessibilidade dos Botões de Rádio

Um fator primordial na estilização de botões de rádio é a sua acessibilidade. Garanta que os botões sejam corretamente percebidos por leitores de tela, que a estrutura dos elementos seja semanticamente correta e que os estados de foco estejam configurados. Isso torna o mundo mais amigável!

Recursos Úteis

  1. Use Imagens para Botões de Rádio - Stack Overflow — Botões de rádio podem ser estilosos!
  2. ::before - CSS: Folhas de Estilo em Cascata | MDN — Pseudo-elementos abrem novas possibilidades na estilização.
  3. Truque do Checkbox e seu Potencial | CSS-Tricks — A chave para um mundo ilimitado de técnicas CSS.
  4. Can I use... Tabelas de suporte para HTML5, CSS3, etc — Seu guia para suporte de tecnologias web.
  5. :checked | CSS-Tricks — Não se esqueça que o controle selecionado requer atenção especial.
  6. Elementos Ocultos de Forma Inclusiva | scottohara.me — Segredos de interatividade estilosa e acessível.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!