Testi perfetti grazie alla funzione CSS Clamp

Ciao!

Oggi vedremo come fare per avere dei testi perfetti sulle nostre pagine web.

Parleremo della funzione CSS clamp, che ci permette di stabilire la grandezza dei nostri contenitori ed elementi compresi i font. Ed è proprio sui font che applicheremo la funzione. La proprietà clamp per essere impostata necessita di 3 parametri, per far si che il testo sia sempre della grandezza ideale indipendentemente dal dispositivo con cui viene visualizzata la nostra pagine web.

La funzione CSS clamp, può essere utilizzata ovunque, e consente di selezionare un valore medio all’interno di un intervallo di valori compreso tra un valore minimo e un valore massimo. 

Richiede quindi tre parametri: valore minimo, valore preferito, valore massimo consentito.

Il valore minimo è il valore più piccolo, il limite inferiore nell’intervallo di valori consentiti. Questo valore verrà utilizzato solo se il valore preferito è inferiore.

Il valore preferito verrà utilizzato solo se è maggiore del valore minimo e minore del valore massimo.

Il valore massimo verrà assegnato alla proprietà solo se il valore preferito è maggiore di questo limite superiore.

Facciamo subito un esempio per chiarire il concetto:

Inseriamo all’interno del body, un h1 e un h2. Nel foglio di stile, utilizziamo il selettore universale asterisco, per assegnare ad ogni elemento della nostra pagina 22px come grandezza del font.

font-size:22px;

Attiviamo la funzione ispeziona del browser, proviamo a ridimensionare la pagina e vediamo cosa succede.

Naturalmente i due titoli ereditano la grandezza del font impostata con il selettore universale, di 22px, e anche ridimensionando la pagina, restano sempre a 22 px. In una pagina responsive, che deve adattarsi alle dimensioni dei dispositivi con cui viene visualizzata, direi che non è la soluzione migliore.

A questo punto abbiamo 2 possibilità, o andiamo ad inserire delle media query per i diversi dispositivi (tablet e smartphone) e per le diverse risoluzioni, oppure utilizzare la funzione clamp, che è lo scopo di questo articolo.

Come abbiamo detto, clamp prevede 3 valori:

  • valore minimo: 1.8rem
  • valore preferito: 3.4vw
  • valore massimo: 2.1rem

Rem, a differenza di px, è un’unità di misura flessibile, ideale per le pagine responsive, così come lo è vw o em.

Sia rem che em sono unità flessibili, scalabili, che vengono tradotte dal browser in pixel, a seconda delle impostazioni di dimensione del carattere nel nostro design.

Come le unità rem vengono tradotte in Pixel

Quando si utilizzano unità rem, la dimensione in pixel in cui vengono tradotte dipende dalla dimensione del carattere dell’elemento principale della pagina, ovvero l’elemento html. Nel nostro caso è 22px. Questa dimensione di carattere viene moltiplicata per qualsiasi numero stiate usando con le unità rem.

Ad esempio, con una dimensione di carattere dell’elemento principale di 22px, 1.8rem sarebbe pari a 39.6px, cioè 22 x 1.8 = 39.6.

Di conseguenza secondo le nostre impostazioni, al minimo del ridimensionamento della pagina, il titolo h1, avrà una dimensione di font pari a 39.6px.

Lo stesso discorso vale per il valore massimo: 22 x 2.1 = 46,2px

Per quanto riguarda invece l’unità di misura vw, che sta per viewport-width, larghezza del viewport cioè della finestra del browser, essa è pari all’1% della larghezza della viewport.

Quindi per sapere a quanti px corrisponde la nostra dimensione di font-size per l’h1 impostata a 3.4vw sulla funzione clamp, come valore preferito, dobbiamo effettuare la seguente operazione:

3.4 x larghezza-finestra-browser / 100

Come possiamo vedere nella dimensione massima, il browser attribuisce al font-size del titolo h1 la dimensione massima traducendola in 46.2px


Nella dimensione minima, il browser attribuisce al font-size del titolo h1 la dimensione minima traducendola in 39.6px


Finestra-browser ridimensionata a 1216px in larghezza

Infine ad un valore intermedio della finestra, il browser applica il valore intermedio che abbiamo assegnato alla proprietà font-size di h1, con la funzione clamp, in questo esempio 41.34px.

Calcolandola come abbiamo detto, in questo modo: 3.4 x 1216(larghezza-finestra), / 100

Bene! con questo abbiamo concluso. Spero che questo articolo ti sia stato utile per comprendere il funzionamento di clamp, e soprattutto di come i browser calcolano e interpretano le dimensioni flessibili come rem e vw.

Se conosci altre tecniche o vuoi aggiungere qualche nozione al mio articolo, puoi utilizzare i commenti sotto.

Se vuoi invece scaricare i file completi utilizzati durante l’articolo, clicca sul tasto Download e decomprimi il file ZIP.

Ciao alla prossima! 🙂


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *