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.
Send and receive money in more than 30 currencies at fair exchange rates. We measure success by how many members come back and tell their friends.
<p class="text-truncate hp-tt mb-0" style="max-width:18rem">Send and receive money in more than 30 currencies at fair exchange rates. We measure success by how many members come back and tell their friends.</p>2Inline-block inside a sentence
Inline elements need d-inline-block plus a max width to truncate.
Last edited by Jonah Hughes and Elena Harlow 5 days ago.
<p class="mb-0">Last edited by <span class="d-inline-block text-truncate align-bottom hp-tt" style="max-width:8rem">Jonah Hughes and Elena Harlow</span> 5 days ago.</p>3Inbox preview
Subject and preview text cut to one line in an email list.
- Chloe HaddadThe small habits that make a big difference – Clear prices, honest advice and no surprises along the way. No monthly fees on the basic plan and no hidden charges on transfers.
- Aria LarsenHow we keep your money safe – Every detail is handled by people who care about getting it right. Set approval rules for large payments and see who spent what, and why.
- Tariq CarterWhat our members asked us most – We listen first, then build a plan around what you actually need. Friendly people answer your questions quickly, by phone, chat or email.
<ul class="list-group">
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Chloe Haddad</strong><span class="text-truncate small"><span class="fw-semibold">The small habits that make a big difference</span> – Clear prices, honest advice and no surprises along the way. No monthly fees on the basic plan and no hidden charges on transfers.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Aria Larsen</strong><span class="text-truncate small"><span class="fw-semibold">How we keep your money safe</span> – Every detail is handled by people who care about getting it right. Set approval rules for large payments and see who spent what, and why.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Tariq Carter</strong><span class="text-truncate small"><span class="fw-semibold">What our members asked us most</span> – We listen first, then build a plan around what you actually need. Friendly people answer your questions quickly, by phone, chat or email.</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-9774 | Invoices go out with a payment link, so customers can pay you in one click. | $21.01 |
| #INV-7527 | Accounting sync keeps your books up to date without manual exports. | $71.91 |
| #TX-7661 | Open a business account online in about ten minutes, with no branch visit. | $348.70 |
<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-9774</td>
<td class="text-truncate" style="max-width:12rem">Invoices go out with a payment link, so customers can pay you in one click.</td>
<td class="text-end">$21.01</td>
</tr>
<tr>
<td>#INV-7527</td>
<td class="text-truncate" style="max-width:12rem">Accounting sync keeps your books up to date without manual exports.</td>
<td class="text-end">$71.91</td>
</tr>
<tr>
<td>#TX-7661</td>
<td class="text-truncate" style="max-width:12rem">Open a business account online in about ten minutes, with no branch visit.</td>
<td class="text-end">$348.70</td>
</tr>
</tbody>
</table>
</div>5Long file names
File names shorten while the size stays visible at the end.
- our-favourite-tips-for-busy-weeks-final-version-4.docx561 KB
- five-things-we-learned-this-year-final-version-3.docx219 KB
- how-a-coffee-roaster-cut-card-fees-by-a-third-final-version-2.docx825 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">our-favourite-tips-for-busy-weeks-final-version-4.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">561 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">five-things-we-learned-this-year-final-version-3.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">219 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">how-a-coffee-roaster-cut-card-fees-by-a-third-final-version-2.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">825 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="#">Payroll</a></li>
<li class="breadcrumb-item active text-truncate" aria-current="page">Every payment appears instantly, with receipts matched automatically.</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">Noah Delgado replied: Thousands of members already trust us, and we work hard to keep it that way.</strong><small class="text-body-secondary">just now</small>
</div>
</div>8Equal card titles
Truncated titles keep a grid of cards the same height.
How to close your books faster every month: Your money is protected by bank-grade security and regulated partners.
Nov 1, 2025
How we keep your money safe: Cash flow forecasts show where you will be next month, not just today.
Sep 26, 2025
What our members asked us most: Our team has done this many times, so you never have to guess.
Oct 3, 2026
<div class="row g-3">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">How to close your books faster every month: Your money is protected by bank-grade security and regulated partners.</h3>
<p class="small text-body-secondary mb-0">Nov 1, 2025</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">How we keep your money safe: Cash flow forecasts show where you will be next month, not just today.</h3>
<p class="small text-body-secondary mb-0">Sep 26, 2025</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">What our members asked us most: Our team has done this many times, so you never have to guess.</h3>
<p class="small text-body-secondary mb-0">Oct 3, 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-9.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 Ibrahim</strong><small class="ms-auto ps-2 text-body-secondary">20:15</small>
</div>
<div class="small text-body-secondary text-truncate">
Payroll runs on time, with tax and pension payments handled for you. We keep things simple, so you can focus on what matters to you.
</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-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">Sofia Morgan</strong><small class="ms-auto ps-2 text-body-secondary">08:00</small>
</div>
<div class="small text-body-secondary text-truncate">
Real people answer your questions around the clock, every day of the year. 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-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">Mason Quinn</strong><small class="ms-auto ps-2 text-body-secondary">14:30</small>
</div>
<div class="small text-body-secondary text-truncate">
Issue virtual and physical cards to your team with limits you control. Accounting sync keeps your books up to date without manual exports.
</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/tips/getting-started-with-the-new-dashboard">example.com/idea/product/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-4.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Metal card Cards edition
</div>
<strong class="small">$8.00</strong>
</div>
</div>
<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">
Expense add-on Cards edition
</div>
<strong class="small">$6.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-8.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Invoice pack Invoices edition
</div>
<strong class="small">$9.00</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-7.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
FX transfer Payments edition
</div>
<strong class="small">$2.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">Running payroll for your first five hires</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">Five ways to improve your cash flow</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">Budgeting basics for small teams</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">Paying international suppliers without high fees</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">Cora HQ</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-10.svg" alt="" width="24" height="24" class="rounded-circle"><span class="text-truncate">Samir Mensah (Product Designer)</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 keep things simple, so you can focus on what matters to you. Friendly people answer your questions quickly, by phone, chat or email.
</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">
Thousands of members already trust us, and we work hard to keep it that way. Start in minutes and get help from a real person whenever you need it.
</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">Business accounts Secure launch 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">Multi-currency wallets Clear plan 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">Expense tracking Simple workflow 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">Invoicing Powerful routine elegant</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">
A simple guide to business spending policies
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
A beginner's guide to getting started
</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">
Looking back at a busy season
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
What to look for in a business account
</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">Finn Rossi, 224 Hillcrest Road, Prague 60061, 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">Invoicing for members</span> </button>
<ul class="dropdown-menu" aria-labelledby="hp-dd-1242">
<li><a class="dropdown-item" href="#">Payroll</a></li>
<li><a class="dropdown-item" href="#">Invoicing</a></li>
</ul>
</div>19Playlist
Long episode or track titles truncate while the duration stays aligned.
- Get paid faster, pay out with ease2:46
- Smarter payments for growing companies2:34
- Corporate cards with built-in controls4:36
<ol class="list-group list-group-numbered">
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Get paid faster, pay out with ease</span><small class="ms-auto text-body-secondary">2:46</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Smarter payments for growing companies</span><small class="ms-auto text-body-secondary">2:34</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Corporate cards with built-in controls</span><small class="ms-auto text-body-secondary">4:36</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="We listen first, then build a plan around what you actually need. Real people answer your questions around the clock, every day of the year.">We listen first, then build a plan around what you actually need. Real people answer your questions around the clock, every day of the year.</span>