Bird
Raised Fist0
Tailwindmarkup~5 mins

Text overflow and truncation in Tailwind

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

Sometimes text is too long to fit in a small space. We use text overflow and truncation to cut the text nicely and show it with dots.

Showing a short preview of a long article title in a card.
Displaying usernames in a fixed-width menu without breaking layout.
Limiting product names in a list to keep the design clean.
Showing messages in a chat bubble without overflow.
Keeping table columns tidy when text is too long.
Syntax
Tailwind
class="truncate"

The truncate class in Tailwind applies overflow: hidden;, white-space: nowrap;, and text-overflow: ellipsis; to cut off text with dots.

Use it on block or inline-block elements with a fixed width or max-width.

Examples
This box is 12rem wide and the text will show dots if it is too long.
Tailwind
<div class="w-48 truncate">This is a very long text that will be cut off with dots.</div>
The paragraph will not grow beyond the max width and will truncate overflow text.
Tailwind
<p class="max-w-xs truncate">Another example with max width and truncation.</p>
Text fits inside the 8rem wide span, so no dots appear.
Tailwind
<span class="inline-block w-32 truncate">Short text that fits.</span>
Sample Program

This page shows three boxes with different widths. The first two have long text that gets cut off with dots. The last one has short text that fits fully.

We use Tailwind's truncate class and fixed widths to control the text overflow.

Tailwind
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>Text Overflow and Truncation</title>
  <script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="p-6">
  <h1 class="text-xl font-bold mb-4">Text Overflow and Truncation Example</h1>
  <div class="w-48 border border-gray-400 p-2 mb-4 truncate" aria-label="Truncated text example">
    This is a very long text that will not fit in the box and will be truncated with dots at the end.
  </div>
  <p class="max-w-xs border border-blue-400 p-2 truncate" aria-label="Another truncated text">
    Another example with a max width set and text that is too long to fit inside.
  </p>
  <span class="inline-block w-32 border border-green-400 p-2 truncate" aria-label="Short text example">
    Short text fits.
  </span>
</body>
</html>
OutputSuccess
Important Notes

Make sure the container has a fixed width or max-width for truncation to work.

Use aria-label to describe truncated text for screen readers.

Truncation only works on single-line text. For multi-line truncation, other techniques are needed.

Summary

Use Tailwind's truncate class to cut off long text with dots.

Set a fixed width or max-width on the container for truncation to work.

Always consider accessibility by labeling truncated text.

Practice

(1/5)
1. What does the Tailwind CSS class truncate do to text inside an element?
easy
A. It centers the text horizontally.
B. It cuts off overflowing text and adds an ellipsis (…) at the end.
C. It changes the text color to gray.
D. It makes the text bold and larger.

Solution

  1. Step 1: Understand the purpose of truncate

    The truncate class in Tailwind applies CSS rules to hide overflow text and show an ellipsis.
  2. Step 2: Recognize the visual effect

    This means long text that doesn't fit the container ends with dots (…) instead of wrapping or overflowing.
  3. Final Answer:

    It cuts off overflowing text and adds an ellipsis (…) at the end. -> Option B
  4. Quick Check:

    truncate = text cut off with dots [OK]
Hint: Remember: truncate means cut off with dots [OK]
Common Mistakes:
  • Thinking truncate changes text style like bold or color
  • Confusing truncate with text alignment classes
  • Assuming truncate wraps text instead of cutting it
2. Which Tailwind CSS class combination correctly truncates text inside a fixed-width box?
easy
A. truncate text-center
B. truncate max-w-full
C. overflow-visible truncate
D. truncate w-48

Solution

  1. Step 1: Identify required classes for truncation

    Truncation needs truncate plus a fixed width like w-48 to limit container size.
  2. Step 2: Check each option

    truncate w-48 uses truncate and a fixed width, so it works. Others either lack fixed width or have conflicting overflow.
  3. Final Answer:

    <code>truncate w-48</code> -> Option D
  4. Quick Check:

    truncate + fixed width = truncation works [OK]
Hint: Always add fixed width with truncate for effect [OK]
Common Mistakes:
  • Using truncate without fixed width or max-width
  • Setting overflow-visible which disables truncation
  • Confusing text alignment with truncation
3. Given this HTML snippet:
<div class="w-32 truncate">This is a very long text that should be cut off.</div>

What will the user see in the browser?
medium
A. "This is a very long text that shoul…" with an ellipsis at the end
B. "This is a very long text that should be cut off" wrapped on multiple lines
C. "This is a very long text that should be cut off." fully visible
D. An empty box with no text

Solution

  1. Step 1: Analyze container width and truncate class

    The container has fixed width w-32 and truncate which cuts off overflow text with ellipsis.
  2. Step 2: Predict visible text

    Text longer than container width is cut and ends with (…) showing partial text.
  3. Final Answer:

    "This is a very long text that shoul…" with an ellipsis at the end -> Option A
  4. Quick Check:

    Fixed width + truncate = partial text + dots [OK]
Hint: Fixed width + truncate = text ends with dots [OK]
Common Mistakes:
  • Expecting full text to show without wrapping
  • Thinking text wraps instead of truncates
  • Assuming empty box means truncation
4. You want to truncate text but it is not working. Which Tailwind class is likely missing or incorrect?
medium
A. Missing a fixed width or max-width class on the container
B. Using truncate without text-center
C. Adding overflow-visible to the container
D. Using font-bold on the text

Solution

  1. Step 1: Understand truncation requirements

    Truncation needs a fixed width or max-width to limit container size; otherwise text won't cut off.
  2. Step 2: Identify common mistakes

    Missing width means text expands fully. Options B, C, D do not affect truncation as directly.
  3. Final Answer:

    Missing a fixed width or max-width class on the container -> Option A
  4. Quick Check:

    Width needed for truncate to work [OK]
Hint: Check container width if truncate fails [OK]
Common Mistakes:
  • Forgetting to set container width or max-width
  • Adding overflow-visible which disables truncation
  • Confusing text alignment with truncation
5. You have a card with a title that might be very long. You want to truncate the title with an ellipsis but also ensure screen readers can read the full title. Which Tailwind and HTML approach is best?
hard
A. Wrap the title in a <marquee> tag with truncate
B. Use truncate and hide the full text with display:none
C. Use truncate on the title and add aria-label with full text on the same element
D. Use truncate and add a tooltip with the full text using title attribute

Solution

  1. Step 1: Understand accessibility needs

    Screen readers need full text, so use aria-label with full title on truncated element.
  2. Step 2: Evaluate options for best practice

    Use truncate on the title and add aria-label with full text on the same element uses truncate visually and aria-label for accessibility, which is correct. Use truncate and add a tooltip with the full text using title attribute is helpful but less reliable for screen readers.
  3. Final Answer:

    Use <code>truncate</code> on the title and add <code>aria-label</code> with full text on the same element -> Option C
  4. Quick Check:

    Truncate + aria-label = visible dots + accessible full text [OK]
Hint: Add aria-label with full text for accessibility [OK]
Common Mistakes:
  • Hiding full text with display:none removes it from screen readers
  • Using deprecated tags like marquee
  • Relying only on title attribute for accessibility