Tipografia – Truncation in TailwindCSS

GCGiuseppe Crescitelli

La truncation del testo è una tecnica fondamentale per gestire contenuti troppo lunghi all’interno di layout limitati. TailwindCSS fornisce utility semplici e potenti per troncare il testo su una o più righe, mantenendo controllo totale su comportamento, responsività e accessibilità.

Concetto di truncation del testo

La truncation consiste nel tagliare il testo che supera lo spazio disponibile e sostituirlo con un’ellissi visiva. In ambito UI è essenziale per titoli, card, tabelle, breadcrumb e liste, dove la lunghezza del testo non è prevedibile.

Utility truncate per una singola riga

L’utility principale per la truncation su una sola riga è truncate.

<p class="truncate">
  Questo è un testo molto lungo che verrà troncato automaticamente
</p>

La classe truncate è una scorciatoia che applica contemporaneamente:

  • overflow-hidden
  • text-ellipsis
  • whitespace-nowrap

Questa combinazione forza il testo su una sola riga e mostra i tre puntini quando lo spazio non è sufficiente.

Requisiti di larghezza per il funzionamento

La truncation funziona solo se l’elemento ha una larghezza limitata.

<p class="w-48 truncate">Testo lungo con larghezza fissa</p>

Oppure all’interno di un contenitore con larghezza definita:

<div class="max-w-sm">
  <p class="truncate">Testo lungo</p>
</div>

Senza un vincolo di larghezza, l’ellissi non verrà mai applicata.

Utility text-ellipsis e overflow-hidden

Per un controllo più granulare è possibile usare le utility singole.

<p class="overflow-hidden text-ellipsis whitespace-nowrap">
  Testo troncato manualmente
</p>

Questo approccio è utile quando si vogliono modificare solo alcune parti del comportamento predefinito di truncate.

Truncation multilinea con line-clamp

Per troncare il testo su più righe si utilizza il plugin ufficiale line-clamp.

npm install @tailwindcss/line-clamp

Configurazione nel file tailwind.config.js:

plugins: [require("@tailwindcss/line-clamp")];

Esempio di utilizzo:

<p class="line-clamp-3">
  Testo molto lungo che verrà limitato a tre righe con ellissi finale
</p>

Le classi disponibili vanno da line-clamp-1 a line-clamp-6, oltre a valori arbitrari.

Rimozione del line clamp

Per ripristinare il comportamento normale del testo:

<p class="line-clamp-none">Testo senza limitazioni di righe</p>

Questo è utile in combinazione con stati hover o breakpoint responsivi.

Truncation responsiva

Le utility di truncation supportano tutte le varianti responsive.

<p class="truncate md:whitespace-normal md:overflow-visible md:text-clip">
  Testo troncato su mobile, completo su desktop
</p>

In questo modo il testo viene abbreviato su schermi piccoli e mostrato interamente su schermi più grandi.

Truncation in flexbox e grid

Quando si lavora con flex o grid, è fondamentale permettere agli elementi di ridursi.

<div class="flex">
  <p class="min-w-0 truncate">Testo lungo in un layout flex</p>
</div>

Senza min-w-0, l’elemento potrebbe non ridursi correttamente, impedendo la truncation.

Truncation all’interno di tabelle

Nelle tabelle è consigliabile fissare la larghezza delle colonne.

<td class="max-w-xs truncate">Contenuto molto lungo</td>

Questo migliora la leggibilità e mantiene la struttura della tabella stabile.

Valori arbitrari per casi avanzati

È possibile usare valori arbitrari per line clamp.

<p class="line-clamp-[8]">Testo limitato a otto righe</p>

Questo approccio è utile per design complessi o contenuti editoriali.

Accessibilità e usabilità

La truncation è puramente visiva e non modifica il contenuto reale. Per migliorare l’accessibilità:

  • usare l’attributo title per mostrare il testo completo
  • fornire tooltip o modali di approfondimento
  • evitare la truncation su contenuti critici
<p class="truncate" title="Testo completo visibile al focus">Testo troncato</p>

Truncation e lingue RTL

TailwindCSS gestisce correttamente l’ellissi anche in contesti RTL, purché la direzione del testo sia impostata correttamente con dir="rtl".

<p dir="rtl" class="truncate">نص طويل سيتم اقتطاعه</p>

Errori comuni da evitare

  • Usare truncate senza una larghezza definita
  • Dimenticare min-w-0 in layout flex
  • Troncare testi essenziali per la comprensione
  • Usare line clamp senza includere il plugin

Quando usare la truncation

La truncation è ideale per:

  • titoli di card
  • anteprime di articoli
  • nomi file
  • celle di tabelle
  • liste compatte

Non è consigliata per testi lunghi destinati alla lettura continua.

Riepilogo delle utility principali

  • truncate per una riga
  • overflow-hidden, text-ellipsis, whitespace-nowrap per controllo manuale
  • line-clamp-* per truncation multilinea
  • min-w-0 per layout flex
  • max-w-_ e w-_ per vincolare la larghezza

La truncation in TailwindCSS è semplice da applicare ma richiede attenzione al contesto di layout per ottenere risultati affidabili e accessibili.