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 customers already trust us, and we work hard to keep it that way. We keep things simple, so you can focus on what matters to you.
<p class="text-truncate hp-tt mb-0" style="max-width:18rem">Thousands of customers already trust us, and we work hard to keep it that way. We keep things simple, so you can focus on what matters to you.</p>2Inline-block inside a sentence
Inline elements need d-inline-block plus a max width to truncate.
Last edited by Lucas Kim and Samir Tanaka yesterday.
<p class="mb-0">Last edited by <span class="d-inline-block text-truncate align-bottom hp-tt" style="max-width:8rem">Lucas Kim and Samir Tanaka</span> yesterday.</p>3Inbox preview
Subject and preview text cut to one line in an email list.
- Noah KowalskiPlanning a product launch in six weeks – Granular roles keep sensitive work private while everyone else stays informed. Clear reports turn weekly numbers into decisions in minutes, not days.
- Mia AshfordThe real cost of switching between tools – Teams report saving around five hours a week after the first month. Plan projects, track progress and share updates without another status meeting.
- Leo BrennanHow one support team cut first replies to 20 minutes – We listen first, then build a plan around what you actually need. Our team has done this many times, so you never have to guess.
<ul class="list-group">
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Noah Kowalski</strong><span class="text-truncate small"><span class="fw-semibold">Planning a product launch in six weeks</span> – Granular roles keep sensitive work private while everyone else stays informed. Clear reports turn weekly numbers into decisions in minutes, not days.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Mia Ashford</strong><span class="text-truncate small"><span class="fw-semibold">The real cost of switching between tools</span> – Teams report saving around five hours a week after the first month. Plan projects, track progress and share updates without another status meeting.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Leo Brennan</strong><span class="text-truncate small"><span class="fw-semibold">How one support team cut first replies to 20 minutes</span> – We listen first, then build a plan around what you actually need. Our team has done this many times, so you never have to guess.</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-9345 | Start free, upgrade when you grow and cancel any time with one click. | $62.36 |
| #TX-1839 | Every detail is handled by people who care about getting it right. | $57.47 |
| #TX-3542 | We measure success by how many customers come back and tell their friends. | $349.90 |
<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-9345</td>
<td class="text-truncate" style="max-width:12rem">Start free, upgrade when you grow and cancel any time with one click.</td>
<td class="text-end">$62.36</td>
</tr>
<tr>
<td>#TX-1839</td>
<td class="text-truncate" style="max-width:12rem">Every detail is handled by people who care about getting it right.</td>
<td class="text-end">$57.47</td>
</tr>
<tr>
<td>#TX-3542</td>
<td class="text-truncate" style="max-width:12rem">We measure success by how many customers come back and tell their friends.</td>
<td class="text-end">$349.90</td>
</tr>
</tbody>
</table>
</div>5Long file names
File names shorten while the size stays visible at the end.
- writing-status-updates-people-actually-read-final-version-8.docx29 KB
- what-we-learned-shipping-200-releases-final-version-4.docx694 KB
- the-small-habits-that-make-a-big-difference-final-version-5.docx237 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">writing-status-updates-people-actually-read-final-version-8.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">29 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-we-learned-shipping-200-releases-final-version-4.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">694 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">the-small-habits-that-make-a-big-difference-final-version-5.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">237 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">Maya Mensah replied: We listen first, then build a plan around what you actually need.</strong><small class="text-body-secondary">just now</small>
</div>
</div>8Equal card titles
Truncated titles keep a grid of cards the same height.
Inside our product roadmap for next year: Thousands of customers already trust us, and we work hard to keep it that way.
Jan 12, 2026
The real cost of switching between tools: Clear reports turn weekly numbers into decisions in minutes, not days.
Mar 29, 2026
Our favourite tips for busy weeks: Every update lands in one place, so nothing gets lost in email threads.
Nov 4, 2025
<div class="row g-3">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Inside our product roadmap for next year: Thousands of customers already trust us, and we work hard to keep it that way.</h3>
<p class="small text-body-secondary mb-0">Jan 12, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">The real cost of switching between tools: Clear reports turn weekly numbers into decisions in minutes, not days.</h3>
<p class="small text-body-secondary mb-0">Mar 29, 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: Every update lands in one place, so nothing gets lost in email threads.</h3>
<p class="small text-body-secondary mb-0">Nov 4, 2025</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-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">Freya Nguyen</strong><small class="ms-auto ps-2 text-body-secondary">07:45</small>
</div>
<div class="small text-body-secondary text-truncate">
Teams report saving around five hours a week after the first month. Start in minutes and get help from a real person whenever you need it.
</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">Finn Silva</strong><small class="ms-auto ps-2 text-body-secondary">12:15</small>
</div>
<div class="small text-body-secondary text-truncate">
Our team has done this many times, so you never have to guess. Set up in an afternoon, connect the tools you use and invite your team.
</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">Ivy Larsen</strong><small class="ms-auto ps-2 text-body-secondary">14:30</small>
</div>
<div class="small text-body-secondary text-truncate">
Plan projects, track progress and share updates without another status meeting. Onboarding guides and live chat help new colleagues get going on day one.
</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/plan/community/getting-started-with-the-new-dashboard">example.com/story/tips/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-2.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Team plan Product edition
</div>
<strong class="small">$21.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">$19.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">
Enterprise suite Sales edition
</div>
<strong class="small">$181.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">$8.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 we cut our release cycle in half</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">Planning a product launch in six weeks</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 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">Vela</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-1.svg" alt="" width="24" height="24" class="rounded-circle"><span class="text-truncate">Theo Moreau (Marketing Lead)</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">
Automations take care of the repetitive steps, so people can focus on real work. Our open API and ready-made integrations fit into the stack you already have.
</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">
Start free, upgrade when you grow and cancel any time with one click. Friendly people answer your questions quickly, by phone, chat or email.
</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">API integrations Focused project 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">Smart reporting Friendly process 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">Workflow automation Honest team 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-fill" aria-hidden="true"></i><span class="text-truncate">API integrations Secure journey honest</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">
What our customers asked us most
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
How one support team cut first replies to 20 minutes
</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">
The small habits that make a big difference
</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">Done</small>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
What we learned shipping 200 releases
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
How to choose the right plan
</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">Isla Harlow, 187 Market Square, Kyoto 89823, 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-bs-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="#">Smart reporting</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.
- Turn scattered tasks into a clear plan5:32
- From idea to release, without the chaos2:12
- The workspace your team will actually love4:05
<ol class="list-group list-group-numbered">
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Turn scattered tasks into a clear plan</span><small class="ms-auto text-body-secondary">5:32</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">From idea to release, without the chaos</span><small class="ms-auto text-body-secondary">2:12</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">4:05</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-bs-toggle="tooltip" data-bs-title="Every detail is handled by people who care about getting it right. Clear prices, honest advice and no surprises along the way.">Every detail is handled by people who care about getting it right. Clear prices, honest advice and no surprises along the way.</span>