The text-truncate helper shortens long text to a single line and ends it with an ellipsis. It needs a block or inline-block element with a width limit; in flex layouts give the flexible item min-width: 0.
1Block level truncation
A block element with a max width; the dashed outline shows the limit.
We measure success by how many guests come back and tell their friends. Our sommelier has paired each dish with wines from small family vineyards.
<p class="text-truncate hp-tt mb-0" style="max-width:18rem">We measure success by how many guests come back and tell their friends. Our sommelier has paired each dish with wines from small family vineyards.</p>2Inline-block inside a sentence
Inline elements need d-inline-block plus a max width to truncate.
Last edited by Kai Ibrahim and Arjun Mensah just now.
<p class="mb-0">Last edited by <span class="d-inline-block text-truncate align-bottom hp-tt" style="max-width:8rem">Kai Ibrahim and Arjun Mensah</span> just now.</p>3Inbox preview
Subject and preview text cut to one line in an email list.
- Amara NguyenOur favourite tips for busy weeks – Order for pickup or delivery and enjoy the same dishes at home. Clear prices, honest advice and no surprises along the way.
- Hana QuinnHow we make our sourdough every morning – Cooking classes on Saturday mornings teach you our favourite recipes. Friendly people answer your questions quickly, by phone, chat or email.
- Ruby NovakFive wines to pair with a summer dinner – Private dining rooms seat up to forty guests for birthdays and business dinners. Our team has done this many times, so you never have to guess.
<ul class="list-group">
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Amara Nguyen</strong><span class="text-truncate small"><span class="fw-semibold">Our favourite tips for busy weeks</span> – Order for pickup or delivery and enjoy the same dishes at home. Clear prices, honest advice and no surprises along the way.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Hana Quinn</strong><span class="text-truncate small"><span class="fw-semibold">How we make our sourdough every morning</span> – Cooking classes on Saturday mornings teach you our favourite recipes. Friendly people answer your questions quickly, by phone, chat or email.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Ruby Novak</strong><span class="text-truncate small"><span class="fw-semibold">Five wines to pair with a summer dinner</span> – Private dining rooms seat up to forty guests for birthdays and business dinners. Our team has done this many times, so you never have to guess.</span></li>
</ul>4Table cell notes
A long note column truncated with text-truncate and a max width on the cell.
| Order | Note | Total |
|---|---|---|
| #PO-5424 | Book a table online in seconds, or call us for groups of eight or more. | $51.60 |
| #TX-9373 | Every dish is cooked to order, so tell us if you would like anything changed. | $324.04 |
| #INV-3261 | Children are always welcome, with a menu made just for them. | $354.38 |
<div class="table-responsive">
<table class="table mb-0">
<thead>
<tr>
<th scope="col">Order</th>
<th scope="col">Note</th>
<th scope="col" class="text-end">Total</th>
</tr>
</thead>
<tbody>
<tr>
<td>#PO-5424</td>
<td class="text-truncate" style="max-width:12rem">Book a table online in seconds, or call us for groups of eight or more.</td>
<td class="text-end">$51.60</td>
</tr>
<tr>
<td>#TX-9373</td>
<td class="text-truncate" style="max-width:12rem">Every dish is cooked to order, so tell us if you would like anything changed.</td>
<td class="text-end">$324.04</td>
</tr>
<tr>
<td>#INV-3261</td>
<td class="text-truncate" style="max-width:12rem">Children are always welcome, with a menu made just for them.</td>
<td class="text-end">$354.38</td>
</tr>
</tbody>
</table>
</div>5Long file names
File names shorten while the size stays visible at the end.
- what-our-guests-asked-us-most-final-version-4.docx753 KB
- the-small-habits-that-make-a-big-difference-final-version-8.docx730 KB
- meet-the-farmers-behind-our-menu-final-version-2.docx518 KB
<ul class="list-unstyled vstack gap-2 mb-0" style="max-width:20rem">
<li class="d-flex align-items-center gap-2"><span class="text-primary"><i class="bi bi-file-earmark-text" aria-hidden="true"></i></span><span class="text-truncate">what-our-guests-asked-us-most-final-version-4.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">753 KB</small></li>
<li class="d-flex align-items-center gap-2"><span class="text-primary"><i class="bi bi-file-earmark-text" aria-hidden="true"></i></span><span class="text-truncate">the-small-habits-that-make-a-big-difference-final-version-8.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">730 KB</small></li>
<li class="d-flex align-items-center gap-2"><span class="text-primary"><i class="bi bi-file-earmark-text" aria-hidden="true"></i></span><span class="text-truncate">meet-the-farmers-behind-our-menu-final-version-2.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">518 KB</small></li>
</ul>6Breadcrumb with a long last item
The current page title truncates so the breadcrumb stays on one line.
<nav aria-label="breadcrumb">
<ol class="breadcrumb flex-nowrap mb-0">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item"><a href="#">Mains</a></li>
<li class="breadcrumb-item active text-truncate" aria-current="page">Our terrace is open from spring to autumn, with heaters for cooler evenings.</li>
</ol>
</nav>7Notification preview
A toast-like card where the message preview stays on one line.
<div class="d-flex align-items-center gap-3 border rounded p-2" style="max-width:24rem">
<span class="fs-4 text-primary"><i class="bi bi-bell-fill" aria-hidden="true"></i></span>
<div class="text-truncate">
<strong class="small d-block text-truncate">Jonah Ortega replied: Order for pickup or delivery and enjoy the same dishes at home.</strong><small class="text-body-secondary">4 days ago</small>
</div>
</div>8Equal card titles
Truncated titles keep a grid of cards the same height.
Planning the perfect birthday dinner: Private dining rooms seat up to forty guests for birthdays and business dinners.
Aug 23, 2026
Five things we learned this year: Vegan, vegetarian and gluten-free dishes are marked clearly on every menu.
Jul 4, 2026
The story of our wood-fired oven: Bread is baked every morning and pasta is rolled by hand in our kitchen.
Sep 27, 2026
<div class="row g-3">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Planning the perfect birthday dinner: Private dining rooms seat up to forty guests for birthdays and business dinners.</h3>
<p class="small text-body-secondary mb-0">Aug 23, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Five things we learned this year: Vegan, vegetarian and gluten-free dishes are marked clearly on every menu.</h3>
<p class="small text-body-secondary mb-0">Jul 4, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">The story of our wood-fired oven: Bread is baked every morning and pasta is rolled by hand in our kitchen.</h3>
<p class="small text-body-secondary mb-0">Sep 27, 2026</p>
</div>
</div>
</div>
</div>9Chat list
In a flex row the text column needs min-width: 0 so text-truncate can shrink it.
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action d-flex gap-2 align-items-center"><img src="../assets/img/avatar-10.svg" alt="" width="40" height="40" class="rounded-circle">
<div style="min-width:0" class="flex-grow-1">
<div class="d-flex">
<strong class="small text-truncate">Mia Moreau</strong><small class="ms-auto ps-2 text-body-secondary">10:30</small>
</div>
<div class="small text-body-secondary text-truncate">
Thousands of guests already trust us, and we work hard to keep it that way. We listen first, then build a plan around what you actually need.
</div>
</div>
</a><a href="#" class="list-group-item list-group-item-action d-flex gap-2 align-items-center"><img src="../assets/img/avatar-10.svg" alt="" width="40" height="40" class="rounded-circle">
<div style="min-width:0" class="flex-grow-1">
<div class="d-flex">
<strong class="small text-truncate">Noah Varga</strong><small class="ms-auto ps-2 text-body-secondary">08:00</small>
</div>
<div class="small text-body-secondary text-truncate">
We have been feeding this neighbourhood for over a decade, and we still love it. Our team has done this many times, so you never have to guess.
</div>
</div>
</a><a href="#" class="list-group-item list-group-item-action d-flex gap-2 align-items-center"><img src="../assets/img/avatar-2.svg" alt="" width="40" height="40" class="rounded-circle">
<div style="min-width:0" class="flex-grow-1">
<div class="d-flex">
<strong class="small text-truncate">Leo Larsen</strong><small class="ms-auto ps-2 text-body-secondary">08:45</small>
</div>
<div class="small text-body-secondary text-truncate">
We measure success by how many guests come back and tell their friends. Our sommelier has paired each dish with wines from small family vineyards.
</div>
</div>
</a>
</div>10Long web addresses
Page addresses truncate in a link list; the full address is kept in the title attribute.
<ul class="list-unstyled vstack gap-1 mb-0" style="max-width:20rem">
<li><a href="#" class="d-block text-truncate" title="example.com/process/update/getting-started-with-the-new-dashboard">example.com/team/guide/getting-started-with-the-new-dashboard</a></li>
<li><a href="#" class="d-block text-truncate" title="example.com/help/articles/how-to-reset-your-password-and-security-keys">example.com/help/articles/how-to-reset-your-password-and-security-keys</a></li>
</ul>11Product grid names
Product names cut to one line under each image in a compact grid.
<div class="row g-2">
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-8.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Lemon tiramisu Desserts edition
</div>
<strong class="small">$11.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-6.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
House lemonade Drinks edition
</div>
<strong class="small">$5.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-7.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Burrata with tomatoes Starters edition
</div>
<strong class="small">$15.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-9.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Slow-cooked lamb Specials edition
</div>
<strong class="small">$32.00</strong>
</div>
</div>
</div>12Truncated chips
Badges with a max width so long labels never break the row.
<div class="d-flex flex-wrap gap-2">
<span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">Our favourite tips for busy weeks</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">Our chef's guide to seasonal autumn produce</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">A beginner's guide to getting started</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">The small habits that make a big difference</span>
</div>13User menu name
A long account name truncates inside the navbar button.
<nav class="navbar bg-body-tertiary rounded px-3">
<span class="navbar-brand mb-0 h6">Iris Hub</span>
<button type="button" class="btn btn-light btn-sm d-flex align-items-center gap-2" style="max-width:12rem"> <img src="../assets/img/avatar-5.svg" alt="" width="24" height="24" class="rounded-circle"><span class="text-truncate">Theo Carter (Product Designer)</span><i class="bi bi-chevron-down" aria-hidden="true"></i> </button>
</nav>14Why min-width: 0 matters
Left: a flex child without min-width overflows. Right: with min-width: 0 the text truncates.
Without min-width
With min-width: 0
<div class="row g-3">
<div class="col-sm-6">
<p class="small fw-semibold mb-1">Without min-width</p>
<div class="d-flex border rounded p-2 overflow-hidden">
<div class="flex-grow-1">
<div class="text-truncate">
Cooking classes on Saturday mornings teach you our favourite recipes. Clear prices, honest advice and no surprises along the way.
</div>
</div>
<span class="badge text-bg-secondary ms-2">New</span>
</div>
</div>
<div class="col-sm-6">
<p class="small fw-semibold mb-1">With min-width: 0</p>
<div class="d-flex border rounded p-2">
<div class="flex-grow-1" style="min-width:0">
<div class="text-truncate">
Our menu changes with the seasons and the best produce from nearby farms. Friendly people answer your questions quickly, by phone, chat or email.
</div>
</div>
<span class="badge text-bg-primary ms-2">New</span>
</div>
</div>
</div>15Sidebar menu
Project names in a narrow sidebar stay on one line each.
<nav class="border rounded p-2" style="max-width:14rem" aria-label="Projects">
<ul class="nav flex-column">
<li class="nav-item"><a class="nav-link d-flex gap-2 py-1 px-2" href="#"><i class="bi bi-folder" aria-hidden="true"></i><span class="text-truncate">Cooking classes Focused project powerful</span></a></li>
<li class="nav-item"><a class="nav-link d-flex gap-2 py-1 px-2" href="#"><i class="bi bi-folder" aria-hidden="true"></i><span class="text-truncate">Catering Powerful plan practical</span></a></li>
<li class="nav-item"><a class="nav-link d-flex gap-2 py-1 px-2" href="#"><i class="bi bi-folder" aria-hidden="true"></i><span class="text-truncate">Takeaway Calm plan reliable</span></a></li>
<li class="nav-item"><a class="nav-link d-flex gap-2 py-1 px-2" href="#"><i class="bi bi-folder" aria-hidden="true"></i><span class="text-truncate">Private events Reliable team friendly</span></a></li>
</ul>
</nav>16Kanban card titles
Narrow board columns keep task titles tidy with truncation.
<div class="row g-2">
<div class="col-4">
<div class="bg-body-tertiary rounded p-2">
<small class="fw-semibold">To do</small>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Vegan dishes worth crossing town for
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Our chocolate tart, step by step
</div>
</div>
</div>
<div class="col-4">
<div class="bg-body-tertiary rounded p-2">
<small class="fw-semibold">Doing</small>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
What our guests asked us most
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Meet the farmers behind our menu
</div>
</div>
</div>
<div class="col-4">
<div class="bg-body-tertiary rounded p-2">
<small class="fw-semibold">Done</small>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Five wines to pair with a summer dinner
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
How we make our sourdough every morning
</div>
</div>
</div>
</div>17Order summary address
A long shipping address truncated in a summary line, with an edit link.
<div class="d-flex align-items-center gap-2 border rounded p-2">
<span class="text-body-secondary"><i class="bi bi-truck" aria-hidden="true"></i></span> <span class="text-truncate small">Omar Haddad, 55 Harbour Road, Montreal 62156, Canada</span> <a href="#" class="ms-auto small flex-shrink-0">Change</a>
</div>18Dropdown with a long value
The selected option truncates inside a fixed width dropdown button.
<div class="dropdown">
<button class="btn btn-outline-secondary dropdown-toggle d-inline-flex align-items-center" type="button" id="hp-dd-1242" data-bs-toggle="dropdown" aria-expanded="false" style="max-width:14rem"> <span class="text-truncate">Wine pairing for guests</span> </button>
<ul class="dropdown-menu" aria-labelledby="hp-dd-1242">
<li><a class="dropdown-item" href="#">Cooking classes</a></li>
<li><a class="dropdown-item" href="#">Dine-in</a></li>
</ul>
</div>19Playlist
Long episode or track titles truncate while the duration stays aligned.
- Come hungry, leave happy5:27
- A table for every occasion2:51
- Taste the city's favourite kitchen5:46
<ol class="list-group list-group-numbered">
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Come hungry, leave happy</span><small class="ms-auto text-body-secondary">5:27</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">A table for every occasion</span><small class="ms-auto text-body-secondary">2:51</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Taste the city's favourite kitchen</span><small class="ms-auto text-body-secondary">5:46</small></li>
</ol>20Full text in a tooltip
Offer the complete text in a tooltip so nothing is lost when it is truncated.
<span class="d-inline-block text-truncate hp-tt" style="max-width:16rem" tabindex="0" data-bs-toggle="tooltip" data-bs-title="We keep things simple, so you can focus on what matters to you. Start in minutes and get help from a real person whenever you need it.">We keep things simple, so you can focus on what matters to you. Start in minutes and get help from a real person whenever you need it.</span>