Text Truncation
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.
Clear prices, honest advice and no surprises along the way. Thousands of shoppers already trust us, and we work hard to keep it that way.
<p class="text-truncate hp-tt mb-0" style="max-width:18rem">Clear prices, honest advice and no surprises along the way. Thousands of shoppers already trust us, and we work hard to keep it that way.</p>2Inline-block inside a sentence
Inline elements need d-inline-block plus a max width to truncate.
Last edited by Arjun Hughes and Ivy Nguyen 46 min ago.
<p class="mb-0">Last edited by <span class="d-inline-block text-truncate align-bottom hp-tt" style="max-width:8rem">Arjun Hughes and Ivy Nguyen</span> 46 min ago.</p>3Inbox preview
Subject and preview text cut to one line in an email list.
- Theo TanakaFive pieces for a capsule wardrobe – We listen first, then build a plan around what you actually need. We measure success by how many shoppers come back and tell their friends.
- Amara DelgadoA beginner's guide to getting started – Clear prices, honest advice and no surprises along the way. Free shipping on orders over $50 and easy returns within 30 days.
- Owen SilvaFive things we learned this year – Friendly people answer your questions quickly, by phone, chat or email. Thousands of shoppers already trust us, and we work hard to keep it that way.
<ul class="list-group">
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Theo Tanaka</strong><span class="text-truncate small"><span class="fw-semibold">Five pieces for a capsule wardrobe</span> – We listen first, then build a plan around what you actually need. We measure success by how many shoppers come back and tell their friends.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Amara Delgado</strong><span class="text-truncate small"><span class="fw-semibold">A beginner's guide to getting started</span> – Clear prices, honest advice and no surprises along the way. Free shipping on orders over $50 and easy returns within 30 days.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Owen Silva</strong><span class="text-truncate small"><span class="fw-semibold">Five things we learned this year</span> – Friendly people answer your questions quickly, by phone, chat or email. Thousands of shoppers already trust us, and we work hard to keep it that 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 |
|---|---|---|
| #INV-2059 | Gift wrapping and a handwritten note are free on every order. | $274.34 |
| #TX-3544 | Our team has done this many times, so you never have to guess. | $138.78 |
| #PO-4821 | Not sure about the size? Our fit guide and live chat help you choose. | $26.62 |
<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>#INV-2059</td>
<td class="text-truncate" style="max-width:12rem">Gift wrapping and a handwritten note are free on every order.</td>
<td class="text-end">$274.34</td>
</tr>
<tr>
<td>#TX-3544</td>
<td class="text-truncate" style="max-width:12rem">Our team has done this many times, so you never have to guess.</td>
<td class="text-end">$138.78</td>
</tr>
<tr>
<td>#PO-4821</td>
<td class="text-truncate" style="max-width:12rem">Not sure about the size? Our fit guide and live chat help you choose.</td>
<td class="text-end">$26.62</td>
</tr>
</tbody>
</table>
</div>5Long file names
File names shorten while the size stays visible at the end.
- how-to-care-for-linen-so-it-lasts-for-years-final-version-3.docx792 KB
- our-favourite-tips-for-busy-weeks-final-version-6.docx296 KB
- styling-one-piece-three-different-ways-final-version-2.docx70 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">how-to-care-for-linen-so-it-lasts-for-years-final-version-3.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">792 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">our-favourite-tips-for-busy-weeks-final-version-6.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">296 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">styling-one-piece-three-different-ways-final-version-2.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">70 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="#">Accessories</a></li>
<li class="breadcrumb-item active text-truncate" aria-current="page">Members get early access to new drops and prices only they can see.</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">Ethan Sato replied: Our packaging is plastic-free and every delivery is carbon-neutral.</strong><small class="text-body-secondary">yesterday</small>
</div>
</div>8Equal card titles
Truncated titles keep a grid of cards the same height.
Five things we learned this year: Each product is checked by hand before it goes into the box.
Sep 12, 2025
A beginner's guide to getting started: Start in minutes and get help from a real person whenever you need it.
Aug 25, 2026
What to pack for a rainy weekend outdoors: We keep things simple, so you can focus on what matters to you.
Aug 21, 2026
<div class="row g-3">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Five things we learned this year: Each product is checked by hand before it goes into the box.</h3>
<p class="small text-body-secondary mb-0">Sep 12, 2025</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">A beginner's guide to getting started: Start in minutes and get help from a real person whenever you need it.</h3>
<p class="small text-body-secondary mb-0">Aug 25, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">What to pack for a rainy weekend outdoors: We keep things simple, so you can focus on what matters to you.</h3>
<p class="small text-body-secondary mb-0">Aug 21, 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-8.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">Priya Ashford</strong><small class="ms-auto ps-2 text-body-secondary">18:30</small>
</div>
<div class="small text-body-secondary text-truncate">
Thousands of five-star reviews from customers who came back for more. New pieces arrive every month, and the best ones sell out fast.
</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">Nora Mensah</strong><small class="ms-auto ps-2 text-body-secondary">07:00</small>
</div>
<div class="small text-body-secondary text-truncate">
Every detail is handled by people who care about getting it right. We work directly with makers, so prices stay fair for everyone.
</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">Kenji Varga</strong><small class="ms-auto ps-2 text-body-secondary">07:45</small>
</div>
<div class="small text-body-secondary text-truncate">
Pay securely with card, wallet or in three interest-free instalments. Order before 2 pm and most items leave our warehouse the same day.
</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/community/community/getting-started-with-the-new-dashboard">example.com/experience/community/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-9.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Cotton throw Home edition
</div>
<strong class="small">$82.99</strong>
</div>
</div>
<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">
Face oil Beauty edition
</div>
<strong class="small">$38.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-2.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Canvas tote Accessories edition
</div>
<strong class="small">$34.99</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-11.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Hand cream Beauty edition
</div>
<strong class="small">$16.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">How to care for linen so it lasts for years</span><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">Five pieces for a capsule wardrobe</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">Our guide to gifts under $50</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">Novao 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-7.svg" alt="" width="24" height="24" class="rounded-circle"><span class="text-truncate">Jonah Lindqvist (Customer Success)</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">
Every piece is made in small batches from materials we test ourselves. We work directly with makers, so prices stay fair for everyone.
</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">
Not sure about the size? Our fit guide and live chat help you choose. New pieces arrive every month, and the best ones sell out fast.
</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">Loyalty rewards Honest release elegant</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">Live order tracking Elegant process elegant</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">30-day returns Practical update 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-fill" aria-hidden="true"></i><span class="text-truncate">Live order tracking Reliable team 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-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">
How we choose sustainable materials
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Looking back at a busy season
</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">
Inside our new autumn collection
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Meet the makers behind our ceramics
</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">
Styling one piece three different ways
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
What our shoppers asked us most
</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">Tariq Kim, 115 Harbour Road, Prague 93627, Czechia</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">Secure checkout for shoppers</span> </button>
<ul class="dropdown-menu" aria-labelledby="hp-dd-1242">
<li><a class="dropdown-item" href="#">Loyalty rewards</a></li>
<li><a class="dropdown-item" href="#">Gift wrapping</a></li>
</ul>
</div>19Playlist
Long episode or track titles truncate while the duration stays aligned.
- Quality goods delivered to your door4:33
- The new collection has landed5:54
- Gifts they will actually keep3:52
<ol class="list-group list-group-numbered">
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Quality goods delivered to your door</span><small class="ms-auto text-body-secondary">4:33</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">The new collection has landed</span><small class="ms-auto text-body-secondary">5:54</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Gifts they will actually keep</span><small class="ms-auto text-body-secondary">3:52</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="Every piece is made in small batches from materials we test ourselves. Our packaging is plastic-free and every delivery is carbon-neutral.">Every piece is made in small batches from materials we test ourselves. Our packaging is plastic-free and every delivery is carbon-neutral.</span>