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. We keep things simple, so you can focus on what matters to you.
<p class="truncate hp-tt mb-0" style="max-width:18rem">We measure success by how many guests come back and tell their friends. We keep things simple, so you can focus on what matters to you.</p>2Inline-block inside a sentence
Inline elements need d-inline-block plus a max width to truncate.
Last edited by Jonah Ortega and Amara Quinn 3 days ago.
<p class="mb-0">Last edited by <span class="inline-block truncate align-bottom hp-tt" style="max-width:8rem">Jonah Ortega and Amara Quinn</span> 3 days ago.</p>3Inbox preview
Subject and preview text cut to one line in an email list.
- Ella CarterOur chocolate tart, step by step – Every detail is handled by people who care about getting it right. Children are always welcome, with a menu made just for them.
- Lea MorganFive things we learned this year – Cooking classes on Saturday mornings teach you our favourite recipes. Thousands of guests already trust us, and we work hard to keep it that way.
- Tariq BrennanVegan dishes worth crossing town for – Every dish is cooked to order, so tell us if you would like anything changed. Clear prices, honest advice and no surprises along the way.
<ul class="list-group">
<li class="list-group-item flex gap-4"><strong class="shrink-0 small" style="width:7rem">Ella Carter</strong><span class="truncate small"><span class="font-semibold">Our chocolate tart, step by step</span> – Every detail is handled by people who care about getting it right. Children are always welcome, with a menu made just for them.</span></li>
<li class="list-group-item flex gap-4"><strong class="shrink-0 small" style="width:7rem">Lea Morgan</strong><span class="truncate small"><span class="font-semibold">Five things we learned this year</span> – Cooking classes on Saturday mornings teach you our favourite recipes. Thousands of guests already trust us, and we work hard to keep it that way.</span></li>
<li class="list-group-item flex gap-4"><strong class="shrink-0 small" style="width:7rem">Tariq Brennan</strong><span class="truncate small"><span class="font-semibold">Vegan dishes worth crossing town for</span> – Every dish is cooked to order, so tell us if you would like anything changed. Clear prices, honest advice and no surprises along the way.</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-9343 | Start in minutes and get help from a real person whenever you need it. | $337.19 |
| #INV-3119 | Vegan, vegetarian and gluten-free dishes are marked clearly on every menu. | $109.97 |
| #TX-2482 | Our menu changes with the seasons and the best produce from nearby farms. | $224.57 |
<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-9343</td>
<td class="truncate" style="max-width:12rem">Start in minutes and get help from a real person whenever you need it.</td>
<td class="text-end">$337.19</td>
</tr>
<tr>
<td>#INV-3119</td>
<td class="truncate" style="max-width:12rem">Vegan, vegetarian and gluten-free dishes are marked clearly on every menu.</td>
<td class="text-end">$109.97</td>
</tr>
<tr>
<td>#TX-2482</td>
<td class="truncate" style="max-width:12rem">Our menu changes with the seasons and the best produce from nearby farms.</td>
<td class="text-end">$224.57</td>
</tr>
</tbody>
</table>
</div>5Long file names
File names shorten while the size stays visible at the end.
- what-is-new-on-our-winter-menu-final-version-8.docx375 KB
- planning-the-perfect-birthday-dinner-final-version-3.docx784 KB
- our-favourite-tips-for-busy-weeks-final-version-8.docx458 KB
<ul class="list-unstyled vstack gap-2 mb-0" style="max-width:20rem">
<li class="flex items-center gap-2"><span class="text-primary-ink"><i class="bi bi-file-earmark-text-fill" aria-hidden="true"></i></span><span class="truncate">what-is-new-on-our-winter-menu-final-version-8.docx</span><small class="ms-auto text-muted shrink-0">375 KB</small></li>
<li class="flex items-center gap-2"><span class="text-primary-ink"><i class="bi bi-file-earmark-text-fill" aria-hidden="true"></i></span><span class="truncate">planning-the-perfect-birthday-dinner-final-version-3.docx</span><small class="ms-auto text-muted shrink-0">784 KB</small></li>
<li class="flex items-center gap-2"><span class="text-primary-ink"><i class="bi bi-file-earmark-text-fill" aria-hidden="true"></i></span><span class="truncate">our-favourite-tips-for-busy-weeks-final-version-8.docx</span><small class="ms-auto text-muted shrink-0">458 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="#">Specials</a></li>
<li class="breadcrumb-item active truncate" aria-current="page">Every detail is handled by people who care about getting it right.</li>
</ol>
</nav>7Notification preview
A toast-like card where the message preview stays on one line.
<div class="flex items-center gap-4 border rounded-md p-2" style="max-width:24rem">
<span class="text-xl text-primary-ink"><i class="bi bi-bell-fill" aria-hidden="true"></i></span>
<div class="truncate">
<strong class="small block truncate">Chloe Nguyen replied: Book a table online in seconds, or call us for groups of eight or more.</strong><small class="text-muted">6 days ago</small>
</div>
</div>8Equal card titles
Truncated titles keep a grid of cards the same height.
Planning the perfect birthday dinner: Friendly people answer your questions quickly, by phone, chat or email.
Jan 11, 2026
A beginner's guide to getting started: Order for pickup or delivery and enjoy the same dishes at home.
Sep 11, 2026
The story of our wood-fired oven: Our terrace is open from spring to autumn, with heaters for cooler evenings.
Apr 7, 2026
<div class="row g-3">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 truncate">Planning the perfect birthday dinner: Friendly people answer your questions quickly, by phone, chat or email.</h3>
<p class="small text-muted mb-0">Jan 11, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 truncate">A beginner's guide to getting started: Order for pickup or delivery and enjoy the same dishes at home.</h3>
<p class="small text-muted mb-0">Sep 11, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 truncate">The story of our wood-fired oven: Our terrace is open from spring to autumn, with heaters for cooler evenings.</h3>
<p class="small text-muted mb-0">Apr 7, 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 flex gap-2 items-center"><img src="../assets/img/avatar-12.svg" alt="" width="40" height="40" class="rounded-full">
<div style="min-width:0" class="grow">
<div class="flex">
<strong class="small truncate">Liam Delgado</strong><small class="ms-auto ps-2 text-muted">19:15</small>
</div>
<div class="small text-muted truncate">
Children are always welcome, with a menu made just for them. Our sommelier has paired each dish with wines from small family vineyards.
</div>
</div>
</a><a href="#" class="list-group-item list-group-item-action flex gap-2 items-center"><img src="../assets/img/avatar-2.svg" alt="" width="40" height="40" class="rounded-full">
<div style="min-width:0" class="grow">
<div class="flex">
<strong class="small truncate">Isla Hughes</strong><small class="ms-auto ps-2 text-muted">12:30</small>
</div>
<div class="small text-muted truncate">
We measure success by how many guests come back and tell their friends. We have been feeding this neighbourhood for over a decade, and we still love it.
</div>
</div>
</a><a href="#" class="list-group-item list-group-item-action flex gap-2 items-center"><img src="../assets/img/avatar-2.svg" alt="" width="40" height="40" class="rounded-full">
<div style="min-width:0" class="grow">
<div class="flex">
<strong class="small truncate">Maya Tanaka</strong><small class="ms-auto ps-2 text-muted">14:30</small>
</div>
<div class="small text-muted truncate">
Our team has done this many times, so you never have to guess. We keep things simple, so you can focus on what matters to you.
</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="block truncate" title="example.com/update/tutorial/getting-started-with-the-new-dashboard">example.com/dashboard/product/getting-started-with-the-new-dashboard</a></li>
<li><a href="#" class="block 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-md p-2">
<img src="../assets/img/product-5.svg" alt="" class="img-fluid rounded-md mb-1">
<div class="small truncate">
Chocolate tart Desserts edition
</div>
<strong class="small">$10.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded-md p-2">
<img src="../assets/img/product-3.svg" alt="" class="img-fluid rounded-md mb-1">
<div class="small truncate">
Garden salad Starters edition
</div>
<strong class="small">$11.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded-md p-2">
<img src="../assets/img/product-11.svg" alt="" class="img-fluid rounded-md mb-1">
<div class="small truncate">
Espresso martini Drinks edition
</div>
<strong class="small">$13.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded-md p-2">
<img src="../assets/img/product-1.svg" alt="" class="img-fluid rounded-md mb-1">
<div class="small truncate">
Truffle pasta Mains edition
</div>
<strong class="small">$24.00</strong>
</div>
</div>
</div>12Truncated chips
Badges with a max width so long labels never break the row.
<div class="flex flex-wrap gap-2">
<span class="badge rounded-full text-bg-light border inline-block truncate" style="max-width:9rem">What our guests asked us most</span><span class="badge rounded-full text-bg-light border inline-block truncate" style="max-width:9rem">How to choose the right dish</span><span class="badge rounded-full text-bg-light border inline-block truncate" style="max-width:9rem">Five wines to pair with a summer dinner</span><span class="badge rounded-full text-bg-light border inline-block truncate" style="max-width:9rem">What is new on our winter menu</span>
</div>13User menu name
A long account name truncates inside the navbar button.
<nav class="navbar bg-surface-3 rounded-md px-4">
<span class="navbar-brand mb-0 h6">Yaraly Labs</span>
<button type="button" class="btn btn-light btn-sm flex items-center gap-2" style="max-width:12rem"> <img src="../assets/img/avatar-3.svg" alt="" width="24" height="24" class="rounded-full"><span class="truncate">Sofia Harlow (Content Writer)</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 font-semibold mb-1">Without min-width</p>
<div class="flex border rounded-md p-2 overflow-hidden">
<div class="grow">
<div class="truncate">
Bread is baked every morning and pasta is rolled by hand in our kitchen. Private dining rooms seat up to forty guests for birthdays and business dinners.
</div>
</div>
<span class="badge text-bg-secondary ms-2">New</span>
</div>
</div>
<div class="col-sm-6">
<p class="small font-semibold mb-1">With min-width: 0</p>
<div class="flex border rounded-md p-2">
<div class="grow" style="min-width:0">
<div class="truncate">
We listen first, then build a plan around what you actually need. Our team has done this many times, so you never have to guess.
</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-md p-2" style="max-width:14rem" aria-label="Projects">
<ul class="nav flex-col">
<li class="nav-item"><a class="nav-link flex gap-2 py-1 px-2" href="#"><i class="bi bi-folder-fill" aria-hidden="true"></i><span class="truncate">Wine pairing Smart story smart</span></a></li>
<li class="nav-item"><a class="nav-link flex gap-2 py-1 px-2" href="#"><i class="bi bi-folder-fill" aria-hidden="true"></i><span class="truncate">Takeaway Fast process friendly</span></a></li>
<li class="nav-item"><a class="nav-link flex gap-2 py-1 px-2" href="#"><i class="bi bi-folder-fill" aria-hidden="true"></i><span class="truncate">Wine pairing Powerful dashboard focused</span></a></li>
<li class="nav-item"><a class="nav-link flex gap-2 py-1 px-2" href="#"><i class="bi bi-folder-fill" aria-hidden="true"></i><span class="truncate">Cooking classes Calm process flexible</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-surface-3 rounded-md p-2">
<small class="font-semibold">To do</small>
<div class="bg-page border rounded-md p-2 mt-2 small truncate">
Vegan dishes worth crossing town for
</div>
<div class="bg-page border rounded-md p-2 mt-2 small truncate">
Looking back at a busy season
</div>
</div>
</div>
<div class="col-4">
<div class="bg-surface-3 rounded-md p-2">
<small class="font-semibold">Doing</small>
<div class="bg-page border rounded-md p-2 mt-2 small truncate">
How we make our sourdough every morning
</div>
<div class="bg-page border rounded-md p-2 mt-2 small truncate">
Meet the farmers behind our menu
</div>
</div>
</div>
<div class="col-4">
<div class="bg-surface-3 rounded-md p-2">
<small class="font-semibold">Done</small>
<div class="bg-page border rounded-md p-2 mt-2 small truncate">
Five things we learned this year
</div>
<div class="bg-page border rounded-md p-2 mt-2 small truncate">
Our favourite tips for busy weeks
</div>
</div>
</div>
</div>17Order summary address
A long shipping address truncated in a summary line, with an edit link.
<div class="flex items-center gap-2 border rounded-md p-2">
<span class="text-muted"><i class="bi bi-truck" aria-hidden="true"></i></span> <span class="truncate small">Zoe Moreau, 335 Harbour Road, Prague 82934, Czechia</span> <a href="#" class="ms-auto small 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 inline-flex items-center" type="button" id="hp-dd-1242" data-ui-toggle="dropdown" aria-expanded="false" style="max-width:14rem"> <span class="truncate">Wine pairing for guests</span> </button>
<ul class="dropdown-menu" aria-labelledby="hp-dd-1242">
<li><a class="dropdown-item" href="#">Dine-in</a></li>
<li><a class="dropdown-item" href="#">Cooking classes</a></li>
</ul>
</div>19Playlist
Long episode or track titles truncate while the duration stays aligned.
- Good food brings people together3:17
- Seasonal menus from local farms2:49
- Dinner worth getting dressed up for3:19
<ol class="list-group list-group-numbered">
<li class="list-group-item flex gap-2"><span class="truncate">Good food brings people together</span><small class="ms-auto text-muted">3:17</small></li>
<li class="list-group-item flex gap-2"><span class="truncate">Seasonal menus from local farms</span><small class="ms-auto text-muted">2:49</small></li>
<li class="list-group-item flex gap-2"><span class="truncate">Dinner worth getting dressed up for</span><small class="ms-auto text-muted">3:19</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="inline-block truncate hp-tt" style="max-width:16rem" tabindex="0" data-ui-toggle="tooltip" data-ui-title="We listen first, then build a plan around what you actually need. We keep things simple, so you can focus on what matters to you.">We listen first, then build a plan around what you actually need. We keep things simple, so you can focus on what matters to you.</span>