Text behavior within containers is fundamental for well-structured interfaces. Tailwind provides utilities for controlling text wrapping and truncation.
Controlling Text Wrapping
Tailwind offers utilities for controlling how text flows and breaks across lines.
Word Breaks (word-break)
The word-break property controls how words break to prevent overflow.
break-normal: Default behavior, breaks only at normal word break pointsbreak-all: Breaks anywhere necessary, even within wordsbreak-keep: Prevents breaks in Chinese, Japanese, or Korean (CJK) text. For non-CJK text, behaves likebreak-normal
Apply conditionally with breakpoints:
<p class="break-all md:break-normal">Thisisasuperlongwordthatwillbreakanywherenecessary.</p>Overflow Wrapping (overflow-wrap)
The overflow-wrap property specifies whether browsers should break lines within words to prevent overflow.
wrap-normal: Default behavior, breaks only at natural wrapping points like spaces and hyphenswrap-break-word: Allows line breaks between letters if needed to prevent overflowwrap-anywhere: Similar towrap-break-wordbut factors mid-word breaks when calculating intrinsic size. Useful for flex containers where you’d otherwise needmin-width: 0
<div class="flex w-32">
<p class="wrap-anywhere">Anotherlongwordtobreakanywhere.</p>
</div>Whitespace Control (white-space)
The white-space property controls how whitespace and line breaks are handled.
whitespace-normal: Text wraps normally, newlines and spaces are collapsedwhitespace-nowrap: Prevents wrapping, text overflows if necessary. Newlines and spaces are collapsedwhitespace-pre: Preserves newlines and spaces exactly as written. Text doesn’t wrapwhitespace-pre-line: Preserves newlines but collapses spaces. Text wraps normallywhitespace-pre-wrap: Preserves newlines and spaces. Text wraps normallywhitespace-break-spaces: Preserves newlines and spaces, including at line ends
<p class="overflow-hidden text-ellipsis whitespace-nowrap">
This text will not wrap and will be truncated with an ellipsis if it overflows.
</p>
<p class="whitespace-pre-wrap">This text preserves newlines and spaces, and wraps normally.</p>Controlling Breaks in Columns and Pages
Control where content breaks in multi-column layouts or print styles.
Break After (break-after)
Controls column or page breaks after an element.
Available utilities: break-after-auto, break-after-avoid, break-after-all, break-after-avoid-page, break-after-page, break-after-left, break-after-right, break-after-column.
<div class="columns-2">
<p>Content before break...</p>
<div class="break-after-column"></div>
<p>Content after break...</p>
</div>Break Before (break-before)
Controls column or page breaks before an element.
Available utilities: break-before-auto, break-before-avoid, break-before-all, break-before-avoid-page, break-before-page, break-before-left, break-before-right, break-before-column.
<div class="columns-2">
<p>Content before break...</p>
<p class="break-before-column">Content after break...</p>
</div>Break Inside (break-inside)
Controls column or page breaks within an element.
Available utilities: break-inside-auto, break-inside-avoid, break-inside-avoid-page, break-inside-avoid-column.
<div class="columns-2">
<div class="break-inside-avoid">
<p>This block of text should ideally not be broken across columns or pages.</p>
</div>
</div>Hyphenation (hyphens)
The hyphens property controls whether words should be hyphenated when text wraps.
hyphens-none: Prevents hyphenation, even with line break suggestions ()hyphens-manual: Only hyphenates at specified break points (). Browser defaulthyphens-auto: Allows browser to automatically choose hyphenation points based on language. Manual suggestions are preferred
<p class="hyphens-auto">This word-processing example demonstrates automatic hyphenation.</p>General Text Wrapping (text-wrap)
The text-wrap property offers modern control over text wrapping.
text-wrap: Allows text to wrap normally at logical pointstext-nowrap: Prevents text from wrappingtext-balance: Distributes text evenly across lines. Browsers often limit this to ~6 lines for performance, making it ideal for headingstext-pretty: Attempts to prevent orphans (single words on the last line)
<h1 class="text-balance">A title that looks good across multiple lines.</h1>
<p class="text-pretty">
A longer paragraph that avoids having a single word orphaned on the last line.
</p>Managing Text Truncation
Constrain text to specific spaces and indicate when content is cut off.
Single-line Truncation (text-overflow)
Prevent text from wrapping and indicate overflow.
truncate: Composite utility that setsoverflow: hidden,text-overflow: ellipsis, andwhite-space: nowrap. Prevents wrapping and truncates with ellipsis (…)
<p class="w-32 truncate">This text is too long and will be truncated.</p>text-ellipsis: Setstext-overflow: ellipsis. Use withoverflow: hiddenandwhite-space: nowrapto add ellipsis (…) to overflowing texttext-clip: Setstext-overflow: clip. Truncates text at content area limit without indicator. Browser default
Multi-line Clamping (line-clamp)
Truncate multi-line text after a specific number of lines.
line-clamp-<number>: Limits text to specified lines (line-clamp-2,line-clamp-3). Setsoverflow: hidden,display: -webkit-box,-webkit-box-orient: vertical, and-webkit-line-clamp: <number>
<div class="w-48">
<p class="line-clamp-3">
This is a longer block of text that will be limited to a maximum of three lines before being
truncated with an ellipsis.
</p>
</div>line-clamp-none: Removes previously applied line clamp- Custom Values: Use
line-clamp-[<value>]for custom line counts
Apply responsively:
<p class="line-clamp-2 md:line-clamp-4">
This text will show 2 lines on small screens and 4 on medium screens and up.
</p>
<p class="line-clamp-[5] lg:line-clamp-[8]">This text uses arbitrary line counts.</p>Tailwind’s text wrapping and truncation utilities provide comprehensive control over text flow directly in HTML, making it easy to manage complex layouts and handle overflow scenarios consistently.