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.
Book a table online in seconds, or call us for groups of eight or more. Clear prices, honest advice and no surprises along the way.
<p class="text-truncate hp-tt mb-0" style="max-width:18rem">Book a table online in seconds, or call us for groups of eight or more. Clear prices, honest advice and no surprises along the way.</p>2Inline-block inside a sentence
Inline elements need d-inline-block plus a max width to truncate.
Last edited by Elena Lindqvist and Lea Silva 2 hours ago.
<p class="mb-0">Last edited by <span class="d-inline-block text-truncate align-bottom hp-tt" style="max-width:8rem">Elena Lindqvist and Lea Silva</span> 2 hours ago.</p>3Inbox preview
Subject and preview text cut to one line in an email list.
- Isla NguyenPlanning the perfect birthday dinner – Bread is baked every morning and pasta is rolled by hand in our kitchen. Our sommelier has paired each dish with wines from small family vineyards.
- Liam KimA beginner's guide to getting started – Order for pickup or delivery and enjoy the same dishes at home. Our team has done this many times, so you never have to guess.
- Nadia HarlowHow we make our sourdough every morning – Friendly people answer your questions quickly, by phone, chat or email. Start in minutes and get help from a real person whenever you need it.
<ul class="list-group">
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Isla Nguyen</strong><span class="text-truncate small"><span class="fw-semibold">Planning the perfect birthday dinner</span> – Bread is baked every morning and pasta is rolled by hand in our kitchen. Our sommelier has paired each dish with wines from small family vineyards.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Liam Kim</strong><span class="text-truncate small"><span class="fw-semibold">A beginner's guide to getting started</span> – Order for pickup or delivery and enjoy the same dishes at home. Our team has done this many times, so you never have to guess.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Nadia Harlow</strong><span class="text-truncate small"><span class="fw-semibold">How we make our sourdough every morning</span> – Friendly people answer your questions quickly, by phone, chat or email. Start in minutes and get help from a real person whenever you need it.</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-9686 | Vegan, vegetarian and gluten-free dishes are marked clearly on every menu. | $225.94 |
| #ORD-4661 | We measure success by how many guests come back and tell their friends. | $298.62 |
| #ORD-9456 | We have been feeding this neighbourhood for over a decade, and we still love it. | $173.28 |
<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-9686</td>
<td class="text-truncate" style="max-width:12rem">Vegan, vegetarian and gluten-free dishes are marked clearly on every menu.</td>
<td class="text-end">$225.94</td>
</tr>
<tr>
<td>#ORD-4661</td>
<td class="text-truncate" style="max-width:12rem">We measure success by how many guests come back and tell their friends.</td>
<td class="text-end">$298.62</td>
</tr>
<tr>
<td>#ORD-9456</td>
<td class="text-truncate" style="max-width:12rem">We have been feeding this neighbourhood for over a decade, and we still love it.</td>
<td class="text-end">$173.28</td>
</tr>
</tbody>
</table>
</div>5Long file names
File names shorten while the size stays visible at the end.
- our-chef's-guide-to-seasonal-autumn-produce-final-version-3.docx102 KB
- three-pasta-shapes-to-make-at-home-final-version-2.docx803 KB
- what-our-guests-asked-us-most-final-version-3.docx486 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-fill" aria-hidden="true"></i></span><span class="text-truncate">our-chef's-guide-to-seasonal-autumn-produce-final-version-3.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">102 KB</small></li>
<li class="d-flex align-items-center gap-2"><span class="text-primary"><i class="bi bi-file-earmark-text-fill" aria-hidden="true"></i></span><span class="text-truncate">three-pasta-shapes-to-make-at-home-final-version-2.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">803 KB</small></li>
<li class="d-flex align-items-center gap-2"><span class="text-primary"><i class="bi bi-file-earmark-text-fill" aria-hidden="true"></i></span><span class="text-truncate">what-our-guests-asked-us-most-final-version-3.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">486 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">Amara Tanaka replied: Every detail is handled by people who care about getting it right.</strong><small class="text-body-secondary">just now</small>
</div>
</div>8Equal card titles
Truncated titles keep a grid of cards the same height.
Vegan dishes worth crossing town for: Thousands of guests already trust us, and we work hard to keep it that way.
Jan 8, 2026
Looking back at a busy season: Cooking classes on Saturday mornings teach you our favourite recipes.
Apr 8, 2026
Our chocolate tart, step by step: Children are always welcome, with a menu made just for them.
Jan 12, 2026
<div class="row g-3">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Vegan dishes worth crossing town for: Thousands of guests already trust us, and we work hard to keep it that way.</h3>
<p class="small text-body-secondary mb-0">Jan 8, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Looking back at a busy season: Cooking classes on Saturday mornings teach you our favourite recipes.</h3>
<p class="small text-body-secondary mb-0">Apr 8, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Our chocolate tart, step by step: Children are always welcome, with a menu made just for them.</h3>
<p class="small text-body-secondary mb-0">Jan 12, 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-3.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">Arjun Moreau</strong><small class="ms-auto ps-2 text-body-secondary">17:45</small>
</div>
<div class="small text-body-secondary text-truncate">
Private dining rooms seat up to forty guests for birthdays and business dinners. We keep things simple, so you can focus on what matters to you.
</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-9.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">Chloe Carter</strong><small class="ms-auto ps-2 text-body-secondary">07:45</small>
</div>
<div class="small text-body-secondary text-truncate">
Our menu changes with the seasons and the best produce from nearby farms. Every dish is cooked to order, so tell us if you would like anything changed.
</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-6.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">Ravi Kowalski</strong><small class="ms-auto ps-2 text-body-secondary">13:00</small>
</div>
<div class="small text-body-secondary text-truncate">
Children are always welcome, with a menu made just for them. Every dish is cooked to order, so tell us if you would like anything changed.
</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/story/insights/getting-started-with-the-new-dashboard">example.com/journey/tutorial/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-10.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Seasonal soup Starters edition
</div>
<strong class="small">$9.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">$14.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-5.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Chocolate tart Desserts edition
</div>
<strong class="small">$8.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-3.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Garden salad Starters edition
</div>
<strong class="small">$13.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">What is new on our winter menu</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">Three pasta shapes to make at home</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">Planning the perfect birthday dinner</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">Lyraia</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-12.svg" alt="" width="24" height="24" class="rounded-circle"><span class="text-truncate">Ruby Haddad (Art Director)</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">
Our sommelier has paired each dish with wines from small family vineyards. Cooking classes on Saturday mornings teach you our favourite recipes.
</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">
We listen first, then build a plan around what you actually need. We measure success by how many guests come back and tell their friends.
</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-fill" aria-hidden="true"></i><span class="text-truncate">Cooking classes Honest idea bright</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-fill" aria-hidden="true"></i><span class="text-truncate">Cooking classes Simple experience secure</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-fill" aria-hidden="true"></i><span class="text-truncate">Catering Honest idea 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-fill" aria-hidden="true"></i><span class="text-truncate">Dine-in Calm project elegant</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">
Five wines to pair with a summer dinner
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
How to choose the right dish
</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">
Five things we learned this year
</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">
The small habits that make a big difference
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Our chef's guide to seasonal autumn produce
</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">Priya Brennan, 178 Riverside Drive, Vancouver 86807, 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-ui-toggle="dropdown" aria-expanded="false" style="max-width:14rem"> <span class="text-truncate">Cooking classes for guests</span> </button>
<ul class="dropdown-menu" aria-labelledby="hp-dd-1242">
<li><a class="dropdown-item" href="#">Takeaway</a></li>
<li><a class="dropdown-item" href="#">Takeaway</a></li>
</ul>
</div>19Playlist
Long episode or track titles truncate while the duration stays aligned.
- The neighbourhood kitchen everyone loves2:51
- A table for every occasion5:11
- Taste the city's favourite kitchen5:53
<ol class="list-group list-group-numbered">
<li class="list-group-item d-flex gap-2"><span class="text-truncate">The neighbourhood kitchen everyone loves</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">A table for every occasion</span><small class="ms-auto text-body-secondary">5:11</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:53</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-ui-toggle="tooltip" data-ui-title="Start in minutes and get help from a real person whenever you need it. Our menu changes with the seasons and the best produce from nearby farms.">Start in minutes and get help from a real person whenever you need it. Our menu changes with the seasons and the best produce from nearby farms.</span>