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.
We measure success by how many customers come back and tell their friends. Set up in an afternoon, connect the tools you use and invite your team.
<p class="truncate hp-tt mb-0" style="max-width:18rem">We measure success by how many customers come back and tell their friends. Set up in an afternoon, connect the tools you use and invite your team.</p>2Inline-block inside a sentence
Inline elements need d-inline-block plus a max width to truncate.
Last edited by Ivy Mensah and Freya Ortega 50 min ago.
<p class="mb-0">Last edited by <span class="inline-block truncate align-bottom hp-tt" style="max-width:8rem">Ivy Mensah and Freya Ortega</span> 50 min ago.</p>3Inbox preview
Subject and preview text cut to one line in an email list.
- Nadia SilvaWhat our customers asked us most – Plan projects, track progress and share updates without another status meeting. Start free, upgrade when you grow and cancel any time with one click.
- Tariq PatelLooking back at a busy season – 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.
- Ella KowalskiThe real cost of switching between tools – Friendly people answer your questions quickly, by phone, chat or email. Real-time dashboards show what is on track and what needs attention.
<ul class="list-group">
<li class="list-group-item flex gap-4"><strong class="shrink-0 small" style="width:7rem">Nadia Silva</strong><span class="truncate small"><span class="font-semibold">What our customers asked us most</span> – Plan projects, track progress and share updates without another status meeting. Start free, upgrade when you grow and cancel any time with one click.</span></li>
<li class="list-group-item flex gap-4"><strong class="shrink-0 small" style="width:7rem">Tariq Patel</strong><span class="truncate small"><span class="font-semibold">Looking back at a busy season</span> – 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></li>
<li class="list-group-item flex gap-4"><strong class="shrink-0 small" style="width:7rem">Ella Kowalski</strong><span class="truncate small"><span class="font-semibold">The real cost of switching between tools</span> – Friendly people answer your questions quickly, by phone, chat or email. Real-time dashboards show what is on track and what needs attention.</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-5866 | Start in minutes and get help from a real person whenever you need it. | $298.54 |
| #TX-5857 | Teams report saving around five hours a week after the first month. | $359.68 |
| #TX-6616 | Our team has done this many times, so you never have to guess. | $295.58 |
<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-5866</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">$298.54</td>
</tr>
<tr>
<td>#TX-5857</td>
<td class="truncate" style="max-width:12rem">Teams report saving around five hours a week after the first month.</td>
<td class="text-end">$359.68</td>
</tr>
<tr>
<td>#TX-6616</td>
<td class="truncate" style="max-width:12rem">Our team has done this many times, so you never have to guess.</td>
<td class="text-end">$295.58</td>
</tr>
</tbody>
</table>
</div>5Long file names
File names shorten while the size stays visible at the end.
- seven-automations-every-team-should-set-up-final-version-4.docx760 KB
- a-practical-guide-to-async-work-final-version-8.docx59 KB
- planning-a-product-launch-in-six-weeks-final-version-8.docx23 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" aria-hidden="true"></i></span><span class="truncate">seven-automations-every-team-should-set-up-final-version-4.docx</span><small class="ms-auto text-muted shrink-0">760 KB</small></li>
<li class="flex items-center gap-2"><span class="text-primary-ink"><i class="bi bi-file-earmark-text" aria-hidden="true"></i></span><span class="truncate">a-practical-guide-to-async-work-final-version-8.docx</span><small class="ms-auto text-muted shrink-0">59 KB</small></li>
<li class="flex items-center gap-2"><span class="text-primary-ink"><i class="bi bi-file-earmark-text" aria-hidden="true"></i></span><span class="truncate">planning-a-product-launch-in-six-weeks-final-version-8.docx</span><small class="ms-auto text-muted shrink-0">23 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="#">Engineering</a></li>
<li class="breadcrumb-item active truncate" aria-current="page">Onboarding guides and live chat help new colleagues get going on day one.</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">Lea Lindqvist replied: Every update lands in one place, so nothing gets lost in email threads.</strong><small class="text-muted">2 hours ago</small>
</div>
</div>8Equal card titles
Truncated titles keep a grid of cards the same height.
What our customers asked us most: Granular roles keep sensitive work private while everyone else stays informed.
Jan 18, 2026
Seven automations every team should set up: Thousands of customers already trust us, and we work hard to keep it that way.
Dec 25, 2025
How to choose the right plan: Onboarding guides and live chat help new colleagues get going on day one.
Feb 2, 2026
<div class="row g-3">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 truncate">What our customers asked us most: Granular roles keep sensitive work private while everyone else stays informed.</h3>
<p class="small text-muted mb-0">Jan 18, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 truncate">Seven automations every team should set up: Thousands of customers already trust us, and we work hard to keep it that way.</h3>
<p class="small text-muted mb-0">Dec 25, 2025</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 truncate">How to choose the right plan: Onboarding guides and live chat help new colleagues get going on day one.</h3>
<p class="small text-muted mb-0">Feb 2, 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-8.svg" alt="" width="40" height="40" class="rounded-full">
<div style="min-width:0" class="grow">
<div class="flex">
<strong class="small truncate">Isla Moreau</strong><small class="ms-auto ps-2 text-muted">18:45</small>
</div>
<div class="small text-muted truncate">
Granular roles keep sensitive work private while everyone else stays informed. 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 flex gap-2 items-center"><img src="../assets/img/avatar-10.svg" alt="" width="40" height="40" class="rounded-full">
<div style="min-width:0" class="grow">
<div class="flex">
<strong class="small truncate">Amara Delgado</strong><small class="ms-auto ps-2 text-muted">11:15</small>
</div>
<div class="small text-muted truncate">
We keep things simple, so you can focus on what matters to you. Plan projects, track progress and share updates without another status meeting.
</div>
</div>
</a><a href="#" class="list-group-item list-group-item-action flex gap-2 items-center"><img src="../assets/img/avatar-3.svg" alt="" width="40" height="40" class="rounded-full">
<div style="min-width:0" class="grow">
<div class="flex">
<strong class="small truncate">Ravi Rossi</strong><small class="ms-auto ps-2 text-muted">12:15</small>
</div>
<div class="small text-muted truncate">
Start in minutes and get help from a real person whenever you need it. Clear reports turn weekly numbers into decisions in minutes, not days.
</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/release/product/getting-started-with-the-new-dashboard">example.com/story/release/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-2.svg" alt="" class="img-fluid rounded-md mb-1">
<div class="small truncate">
Team plan Product edition
</div>
<strong class="small">$20.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded-md p-2">
<img src="../assets/img/product-7.svg" alt="" class="img-fluid rounded-md mb-1">
<div class="small truncate">
Priority support Support edition
</div>
<strong class="small">$30.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded-md p-2">
<img src="../assets/img/product-8.svg" alt="" class="img-fluid rounded-md mb-1">
<div class="small truncate">
Onboarding workshop Support edition
</div>
<strong class="small">$424.99</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">
Starter plan Product edition
</div>
<strong class="small">Free</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">Five things we learned this year</span><span class="badge rounded-full text-bg-light border inline-block truncate" style="max-width:9rem">Our favourite tips for busy weeks</span><span class="badge rounded-full text-bg-light border inline-block truncate" style="max-width:9rem">A beginner's guide to getting started</span><span class="badge rounded-full text-bg-light border inline-block truncate" style="max-width:9rem">What we learned shipping 200 releases</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">Halo Works</span>
<button type="button" class="btn btn-light btn-sm flex items-center gap-2" style="max-width:12rem"> <img src="../assets/img/avatar-7.svg" alt="" width="24" height="24" class="rounded-full"><span class="truncate">Ava Harlow (Backend Engineer)</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">
Our team has done this many times, so you never have to guess. Start free, upgrade when you grow and cancel any time with one click.
</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">
Teams report saving around five hours a week after the first month. 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-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" aria-hidden="true"></i><span class="truncate">Workflow automation Focused release fast</span></a></li>
<li class="nav-item"><a class="nav-link flex gap-2 py-1 px-2" href="#"><i class="bi bi-folder" aria-hidden="true"></i><span class="truncate">Secure file sharing Smart plan 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" aria-hidden="true"></i><span class="truncate">Workflow automation Flexible community 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" aria-hidden="true"></i><span class="truncate">Secure file sharing Modern story bright</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">
How remote teams keep projects on track
</div>
<div class="bg-page border rounded-md p-2 mt-2 small truncate">
The small habits that make a big difference
</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">
Planning a product launch in six weeks
</div>
<div class="bg-page border rounded-md p-2 mt-2 small truncate">
How we cut our release cycle in half
</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">
Writing status updates people actually read
</div>
<div class="bg-page border rounded-md p-2 mt-2 small truncate">
Inside our product roadmap for next year
</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">Maya Morgan, 51 Market Square, Cape Town 70325, South Africa</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">Team analytics for customers</span> </button>
<ul class="dropdown-menu" aria-labelledby="hp-dd-1242">
<li><a class="dropdown-item" href="#">Team analytics</a></li>
<li><a class="dropdown-item" href="#">Secure file sharing</a></li>
</ul>
</div>19Playlist
Long episode or track titles truncate while the duration stays aligned.
- The calm way to run a busy team2:23
- From idea to release, without the chaos5:23
- Your whole team, finally in sync2:54
<ol class="list-group list-group-numbered">
<li class="list-group-item flex gap-2"><span class="truncate">The calm way to run a busy team</span><small class="ms-auto text-muted">2:23</small></li>
<li class="list-group-item flex gap-2"><span class="truncate">From idea to release, without the chaos</span><small class="ms-auto text-muted">5:23</small></li>
<li class="list-group-item flex gap-2"><span class="truncate">Your whole team, finally in sync</span><small class="ms-auto text-muted">2:54</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="Real-time dashboards show what is on track and what needs attention. Set up in an afternoon, connect the tools you use and invite your team.">Real-time dashboards show what is on track and what needs attention. Set up in an afternoon, connect the tools you use and invite your team.</span>