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.
Plan projects, track progress and share updates without another status meeting. Thousands of customers already trust us, and we work hard to keep it that way.
<p class="text-truncate hp-tt mb-0" style="max-width:18rem">Plan projects, track progress and share updates without another status meeting. Thousands of customers 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 Kenji Rossi and Jonah Novak 2 days ago.
<p class="mb-0">Last edited by <span class="d-inline-block text-truncate align-bottom hp-tt" style="max-width:8rem">Kenji Rossi and Jonah Novak</span> 2 days ago.</p>3Inbox preview
Subject and preview text cut to one line in an email list.
- Priya OkaforHow we cut our release cycle in half – We measure success by how many customers come back and tell their friends. We listen first, then build a plan around what you actually need.
- Elena TanakaInside our product roadmap for next year – Friendly people answer your questions quickly, by phone, chat or email. Set up in an afternoon, connect the tools you use and invite your team.
- Ava MensahHow remote teams keep projects on track – Granular roles keep sensitive work private while everyone else stays informed. Start free, upgrade when you grow and cancel any time with one click.
<ul class="list-group">
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Priya Okafor</strong><span class="text-truncate small"><span class="fw-semibold">How we cut our release cycle in half</span> – We measure success by how many customers come back and tell their friends. We listen first, then build a plan around what you actually need.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Elena Tanaka</strong><span class="text-truncate small"><span class="fw-semibold">Inside our product roadmap for next year</span> – Friendly people answer your questions quickly, by phone, chat or email. Set up in an afternoon, connect the tools you use and invite your team.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Ava Mensah</strong><span class="text-truncate small"><span class="fw-semibold">How remote teams keep projects on track</span> – Granular roles keep sensitive work private while everyone else stays informed. Start free, upgrade when you grow and cancel any time with one click.</span></li>
</ul>4Table cell notes
A long note column truncated with text-truncate and a max width on the cell.
| Order | Note | Total |
|---|---|---|
| #TX-3024 | Clear prices, honest advice and no surprises along the way. | $52.12 |
| #INV-5927 | Your data is encrypted, backed up daily and hosted in the region you choose. | $191.32 |
| #TX-9757 | Onboarding guides and live chat help new colleagues get going on day one. | $302.53 |
<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>#TX-3024</td>
<td class="text-truncate" style="max-width:12rem">Clear prices, honest advice and no surprises along the way.</td>
<td class="text-end">$52.12</td>
</tr>
<tr>
<td>#INV-5927</td>
<td class="text-truncate" style="max-width:12rem">Your data is encrypted, backed up daily and hosted in the region you choose.</td>
<td class="text-end">$191.32</td>
</tr>
<tr>
<td>#TX-9757</td>
<td class="text-truncate" style="max-width:12rem">Onboarding guides and live chat help new colleagues get going on day one.</td>
<td class="text-end">$302.53</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-7.docx166 KB
- what-our-customers-asked-us-most-final-version-4.docx780 KB
- a-beginner's-guide-to-getting-started-final-version-8.docx86 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" aria-hidden="true"></i></span><span class="text-truncate">seven-automations-every-team-should-set-up-final-version-7.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">166 KB</small></li>
<li class="d-flex align-items-center gap-2"><span class="text-primary"><i class="bi bi-file-earmark-text" aria-hidden="true"></i></span><span class="text-truncate">what-our-customers-asked-us-most-final-version-4.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">780 KB</small></li>
<li class="d-flex align-items-center gap-2"><span class="text-primary"><i class="bi bi-file-earmark-text" aria-hidden="true"></i></span><span class="text-truncate">a-beginner's-guide-to-getting-started-final-version-8.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">86 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 text-truncate" aria-current="page">Real-time dashboards show what is on track and what needs attention.</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">Finn Sato replied: Every update lands in one place, so nothing gets lost in email threads.</strong><small class="text-body-secondary">yesterday</small>
</div>
</div>8Equal card titles
Truncated titles keep a grid of cards the same height.
Our favourite tips for busy weeks: Clear reports turn weekly numbers into decisions in minutes, not days.
Mar 1, 2026
The small habits that make a big difference: We listen first, then build a plan around what you actually need.
Aug 18, 2026
Planning a product launch in six weeks: Thousands of customers already trust us, and we work hard to keep it that way.
Apr 30, 2026
<div class="row g-3">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Our favourite tips for busy weeks: Clear reports turn weekly numbers into decisions in minutes, not days.</h3>
<p class="small text-body-secondary mb-0">Mar 1, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">The small habits that make a big difference: We listen first, then build a plan around what you actually need.</h3>
<p class="small text-body-secondary mb-0">Aug 18, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Planning a product launch in six weeks: Thousands of customers already trust us, and we work hard to keep it that way.</h3>
<p class="small text-body-secondary mb-0">Apr 30, 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-7.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">Diego Carter</strong><small class="ms-auto ps-2 text-body-secondary">20:30</small>
</div>
<div class="small text-body-secondary text-truncate">
Friendly people answer your questions quickly, by phone, chat or email. We measure success by how many customers come back and tell their friends.
</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-11.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 Patel</strong><small class="ms-auto ps-2 text-body-secondary">08:15</small>
</div>
<div class="small text-body-secondary text-truncate">
Set up in an afternoon, connect the tools you use and invite your team. Every detail is handled by people who care about getting it right.
</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">Luna Delgado</strong><small class="ms-auto ps-2 text-body-secondary">12:30</small>
</div>
<div class="small text-body-secondary text-truncate">
Our team has done this many times, so you never have to guess. Automations take care of the repetitive steps, so people can focus on real work.
</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/experience/how-to/getting-started-with-the-new-dashboard">example.com/release/insights/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">
Starter plan Product edition
</div>
<strong class="small">Free</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">
Automation pack Engineering 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-12.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Storage pack Product edition
</div>
<strong class="small">$10.00</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">
Sales pipeline add-on Sales edition
</div>
<strong class="small">$18.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">Seven automations every team should set up</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">A beginner's guide to getting started</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">How one support team cut first replies to 20 minutes</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">How remote teams keep projects on track</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">Yaraly Works</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-4.svg" alt="" width="24" height="24" class="rounded-circle"><span class="text-truncate">Lucas Nguyen (Project Manager)</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 open API and ready-made integrations fit into the stack you already have. Teams report saving around five hours a week after the first month.
</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">
Plan projects, track progress and share updates without another status meeting. We keep things simple, so you can focus on what matters to you.
</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" aria-hidden="true"></i><span class="text-truncate">Single sign-on Simple journey friendly</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" aria-hidden="true"></i><span class="text-truncate">Secure file sharing Elegant experience 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" aria-hidden="true"></i><span class="text-truncate">Workflow automation Friendly routine focused</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" aria-hidden="true"></i><span class="text-truncate">Workflow automation Bright workflow powerful</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 cut our release cycle in half
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Five things we learned this year
</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 practical guide to async work
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
How to choose the right plan
</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 real cost of switching between tools
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Writing status updates people actually read
</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">Omar Larsen, 419 Riverside Drive, Cape Town 47204, South Africa</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">API integrations for customers</span> </button>
<ul class="dropdown-menu" aria-labelledby="hp-dd-1242">
<li><a class="dropdown-item" href="#">Single sign-on</a></li>
<li><a class="dropdown-item" href="#">Team analytics</a></li>
</ul>
</div>19Playlist
Long episode or track titles truncate while the duration stays aligned.
- Know what is happening, without asking3:30
- The calm way to run a busy team5:42
- The workspace your team will actually love2:50
<ol class="list-group list-group-numbered">
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Know what is happening, without asking</span><small class="ms-auto text-body-secondary">3:30</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">The calm way to run a busy team</span><small class="ms-auto text-body-secondary">5:42</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">The workspace your team will actually love</span><small class="ms-auto text-body-secondary">2:50</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. Granular roles keep sensitive work private while everyone else stays informed.">Start in minutes and get help from a real person whenever you need it. Granular roles keep sensitive work private while everyone else stays informed.</span>