Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Stile Reattivo e Basato sullo Stato | Sezione
Stilizzazione di Applicazioni React con Tailwind CSS

bookStile Reattivo e Basato sullo Stato

Scorri per mostrare il menu

Quando si sviluppano applicazioni React con Tailwind CSS, è possibile adattare facilmente i componenti a diverse dimensioni dello schermo e interazioni dell'utente utilizzando prefissi responsivi e modificatori di stato. I prefissi responsivi come md: e lg: permettono di applicare stili solo a determinati breakpoint, rendendo i layout flessibili su vari dispositivi. Ad esempio, aggiungendo md:bg-blue-500 a un div, il colore di sfondo diventa blu solo su schermi medi e superiori, mantenendo lo sfondo predefinito su schermi più piccoli.

I modificatori di stato come hover: e focus: consentono di cambiare gli stili in base alle azioni dell'utente. Ad esempio, hover:bg-green-500 cambia il colore di sfondo quando l'utente passa il mouse sopra un elemento, mentre focus:ring-2 aggiunge un bordo evidenziato quando l'elemento è in focus, come quando si clicca su un campo di input. È possibile combinare questi modificatori con i prefissi responsivi per un controllo ancora maggiore, ad esempio md:hover:text-red-500, che cambia il colore del testo al passaggio del mouse ma solo su schermi medi e superiori.

Per vedere come queste varianti si combinano nella pratica, considera un componente pulsante nella tua applicazione React. Potresti voler che il pulsante abbia un padding maggiore su schermi più grandi e cambi colore quando è in hover o focus. Combinando classi responsivi e basate sullo stato, puoi ottenere facilmente questo risultato.

Supponiamo di avere un componente Button in React. Per renderlo responsivo e interattivo, potresti scrivere:

<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>

In questo esempio:

  • Il pulsante ha un padding predefinito (px-4 py-2) e un colore di sfondo (bg-blue-500);
  • Su schermi medi e superiori, il padding aumenta (md:px-8 md:py-4);
  • Al passaggio del mouse, lo sfondo diventa più scuro (hover:bg-blue-700);
  • Quando è in focus, appare un bordo blu per l'accessibilità (focus:outline-none focus:ring-2 focus:ring-blue-300).

Questo approccio garantisce che il pulsante abbia un aspetto gradevole e risponda visivamente alle interazioni dell'utente su qualsiasi dispositivo.

Un altro scenario potrebbe riguardare una barra di navigazione in cui i link si evidenziano al passaggio del mouse, ma mostrano la sottolineatura solo su schermi grandi. Potresti usare:

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

Qui, il testo del link cambia colore al passaggio del mouse su tutti gli schermi, ma la sottolineatura appare solo su schermi grandi e scompare al passaggio del mouse su quegli schermi. Queste combinazioni permettono di regolare finemente la UI sia per la dimensione del dispositivo sia per il comportamento dell'utente, tutto all'interno del JSX utilizzando la sintassi semplice di Tailwind.

question mark

Quale dei seguenti nomi di classe applica correttamente un colore di sfondo solo quando un pulsante è in hover su schermi medi e superiori?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 1. Capitolo 3
some-alt