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.
Thousands of patients already trust us, and we work hard to keep it that way. Our specialists take time to listen and explain every step of your treatment.
<p class="text-truncate hp-tt mb-0" style="max-width:18rem">Thousands of patients already trust us, and we work hard to keep it that way. Our specialists take time to listen and explain every step of your treatment.</p>2Inline-block inside a sentence
Inline elements need d-inline-block plus a max width to truncate.
Last edited by Finn Nguyen and Aria Morgan just now.
<p class="mb-0">Last edited by <span class="d-inline-block text-truncate align-bottom hp-tt" style="max-width:8rem">Finn Nguyen and Aria Morgan</span> just now.</p>3Inbox preview
Subject and preview text cut to one line in an email list.
- Mateo DelgadoUnderstanding your blood test results – We work with most insurance providers and explain any costs upfront. Our clinic is fully accessible, with free parking right outside.
- Nadia KimSimple habits for a healthier back – Your records are private, secure and always available when you need them. Family plans cover check-ups and vaccinations for everyone under one roof.
- Diego WhitakerWhen to choose a video consultation – We measure success by how many patients come back and tell their friends. Video consultations let you speak with a doctor from the comfort of home.
<ul class="list-group">
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Mateo Delgado</strong><span class="text-truncate small"><span class="fw-semibold">Understanding your blood test results</span> – We work with most insurance providers and explain any costs upfront. Our clinic is fully accessible, with free parking right outside.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Nadia Kim</strong><span class="text-truncate small"><span class="fw-semibold">Simple habits for a healthier back</span> – Your records are private, secure and always available when you need them. Family plans cover check-ups and vaccinations for everyone under one roof.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Diego Whitaker</strong><span class="text-truncate small"><span class="fw-semibold">When to choose a video consultation</span> – We measure success by how many patients come back and tell their friends. Video consultations let you speak with a doctor from the comfort of home.</span></li>
</ul>4Table cell notes
A long note column truncated with text-truncate and a max width on the cell.
| Order | Note | Total |
|---|---|---|
| #ORD-8203 | We listen first, then build a plan around what you actually need. | $108.74 |
| #PO-3730 | Lab results arrive in your patient portal, usually within 48 hours. | $130.73 |
| #INV-3130 | Friendly people answer your questions quickly, by phone, chat or email. | $333.20 |
<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>#ORD-8203</td>
<td class="text-truncate" style="max-width:12rem">We listen first, then build a plan around what you actually need.</td>
<td class="text-end">$108.74</td>
</tr>
<tr>
<td>#PO-3730</td>
<td class="text-truncate" style="max-width:12rem">Lab results arrive in your patient portal, usually within 48 hours.</td>
<td class="text-end">$130.73</td>
</tr>
<tr>
<td>#INV-3130</td>
<td class="text-truncate" style="max-width:12rem">Friendly people answer your questions quickly, by phone, chat or email.</td>
<td class="text-end">$333.20</td>
</tr>
</tbody>
</table>
</div>5Long file names
File names shorten while the size stays visible at the end.
- a-beginner's-guide-to-getting-started-final-version-4.docx194 KB
- inside-our-new-heart-screening-clinic-final-version-5.docx127 KB
- what-to-expect-at-your-first-dental-visit-final-version-8.docx708 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">a-beginner's-guide-to-getting-started-final-version-4.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">194 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">inside-our-new-heart-screening-clinic-final-version-5.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">127 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-to-expect-at-your-first-dental-visit-final-version-8.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">708 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="#">Dental</a></li>
<li class="breadcrumb-item active text-truncate" aria-current="page">Start in minutes and get help from a real person whenever you need it.</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">Leo Ibrahim replied: Clear prices, honest advice and no surprises along the way.</strong><small class="text-body-secondary">1 hours ago</small>
</div>
</div>8Equal card titles
Truncated titles keep a grid of cards the same height.
Inside our new heart screening clinic: Thousands of patients already trust us, and we work hard to keep it that way.
Jul 13, 2026
When to choose a video consultation: Our team has done this many times, so you never have to guess.
Sep 15, 2026
Our favourite tips for busy weeks: Your records are private, secure and always available when you need them.
Jul 10, 2026
<div class="row g-3">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Inside our new heart screening clinic: Thousands of patients already trust us, and we work hard to keep it that way.</h3>
<p class="small text-body-secondary mb-0">Jul 13, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">When to choose a video consultation: Our team has done this many times, so you never have to guess.</h3>
<p class="small text-body-secondary mb-0">Sep 15, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Our favourite tips for busy weeks: Your records are private, secure and always available when you need them.</h3>
<p class="small text-body-secondary mb-0">Jul 10, 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 Kowalski</strong><small class="ms-auto ps-2 text-body-secondary">18:00</small>
</div>
<div class="small text-body-secondary text-truncate">
Friendly reminders make sure you never miss a check-up or a dose. Our clinic is fully accessible, with free parking right outside.
</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-12.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">Omar Rossi</strong><small class="ms-auto ps-2 text-body-secondary">11:15</small>
</div>
<div class="small text-body-secondary text-truncate">
Book online in two minutes and see a doctor as soon as today. Modern equipment means faster diagnoses and more comfortable treatment.
</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-1.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 Quinn</strong><small class="ms-auto ps-2 text-body-secondary">13:15</small>
</div>
<div class="small text-body-secondary text-truncate">
Children are welcome, and our paediatric team knows how to make them smile. Same-day appointments are available for urgent needs on weekdays.
</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/idea/guide/getting-started-with-the-new-dashboard">example.com/experience/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-1.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Annual check-up Cardiology edition
</div>
<strong class="small">$139.99</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">
Video consult Dermatology edition
</div>
<strong class="small">$41.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">
Physio session Orthopedics edition
</div>
<strong class="small">$68.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-4.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Blood test Cardiology edition
</div>
<strong class="small">$44.99</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">What to expect at your first dental visit</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">How to choose the right service</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">Five things we learned this year</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">What our patients asked us most</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">Bloom</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-9.svg" alt="" width="24" height="24" class="rounded-circle"><span class="text-truncate">Owen Carter (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">
We measure success by how many patients come back and tell their friends. Family plans cover check-ups and vaccinations for everyone under one roof.
</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 keep things simple, so you can focus on what matters to you. Every detail is handled by people who care about getting it right.
</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">Physiotherapy Flexible journey 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-fill" aria-hidden="true"></i><span class="text-truncate">Telehealth Simple community 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">Dental care Practical story 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">Dental care Flexible plan 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">
Looking back at a busy season
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
A parent's guide to childhood vaccinations
</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">
A beginner's guide to getting started
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Understanding your blood test results
</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">
How often should you have a health check-up?
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Staying active after an injury
</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">Hana Okafor, 154 Willow Way, Kyoto 42957, Japan</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">Health check-ups for patients</span> </button>
<ul class="dropdown-menu" aria-labelledby="hp-dd-1242">
<li><a class="dropdown-item" href="#">Health check-ups</a></li>
<li><a class="dropdown-item" href="#">Health check-ups</a></li>
</ul>
</div>19Playlist
Long episode or track titles truncate while the duration stays aligned.
- Personal care from people who listen3:18
- Expert doctors, gentle care4:42
- Care for the whole family3:15
<ol class="list-group list-group-numbered">
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Personal care from people who listen</span><small class="ms-auto text-body-secondary">3:18</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Expert doctors, gentle care</span><small class="ms-auto text-body-secondary">4:42</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Care for the whole family</span><small class="ms-auto text-body-secondary">3:15</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="Video consultations let you speak with a doctor from the comfort of home. We work with most insurance providers and explain any costs upfront.">Video consultations let you speak with a doctor from the comfort of home. We work with most insurance providers and explain any costs upfront.</span>