Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Estilização Responsiva e Baseada em Estado | Seção
Estilizando Aplicações React com Tailwind CSS

bookEstilização Responsiva e Baseada em Estado

Deslize para mostrar o menu

Ao desenvolver aplicações React com Tailwind CSS, é possível adaptar facilmente seus componentes para diferentes tamanhos de tela e interações do usuário utilizando prefixos responsivos e modificadores de estado. Prefixos responsivos como md: e lg: permitem aplicar estilos apenas em determinados breakpoints, tornando seus layouts flexíveis em vários dispositivos. Por exemplo, ao adicionar md:bg-blue-500 a uma div, a cor de fundo será azul apenas em telas médias e maiores, mantendo o fundo padrão em telas menores.

Modificadores de estado como hover: e focus: permitem alterar estilos com base em ações do usuário. Por exemplo, hover:bg-green-500 altera a cor de fundo quando o usuário passa o mouse sobre o elemento, e focus:ring-2 adiciona um anel quando o elemento está em foco, como ao clicar em um campo de entrada. É possível combinar esses modificadores com prefixos responsivos para ainda mais controle, como md:hover:text-red-500, que altera a cor do texto ao passar o mouse, mas apenas em telas médias e maiores.

Para visualizar como essas variantes funcionam na prática, considere um componente de botão em sua aplicação React. Pode ser interessante que o botão tenha um padding maior em telas grandes e mude de cor ao ser focado ou ao passar o mouse. Combinando classes responsivas e baseadas em estado, é possível alcançar esse resultado facilmente.

Suponha que você tenha um componente Button em React. Para torná-lo responsivo e interativo, você pode escrever:

<button
  className='px-4 py-2 bg-blue-500 text-white rounded 
              md:px-8 md:py-4 hover:bg-blue-700 
              focus:outline-none focus:ring-2 focus:ring-blue-300'
>
  Click me
</button>

Neste exemplo:

  • O botão possui padding padrão (px-4 py-2) e cor de fundo (bg-blue-500);
  • Em telas médias e maiores, o padding aumenta (md:px-8 md:py-4);
  • Ao passar o mouse, o fundo fica mais escuro (hover:bg-blue-700);
  • Ao focar, aparece um anel azul para acessibilidade (focus:outline-none focus:ring-2 focus:ring-blue-300).

Essa abordagem garante que seu botão tenha boa aparência e responda visualmente à interação do usuário em qualquer dispositivo.

Outro cenário pode envolver uma barra de navegação onde os links mudam de cor ao passar o mouse, mas só exibem sublinhado em telas grandes. Você pode usar:

<a
  className='text-gray-700 hover:text-blue-600 
          lg:underline lg:hover:no-underline'
>
  Home
</a>

Aqui, o texto do link muda de cor ao passar o mouse em todas as telas, mas o sublinhado aparece apenas em telas grandes e desaparece ao passar o mouse nessas telas. Essas combinações permitem ajustar detalhadamente sua interface tanto para o tamanho do dispositivo quanto para o comportamento do usuário, tudo dentro do seu JSX utilizando a sintaxe simples do Tailwind.

question mark

Qual das seguintes classes aplica corretamente uma cor de fundo apenas quando um botão está com o mouse sobre ele em telas médias e maiores?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 1. Capítulo 3
some-alt