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.
Clear prices, honest advice and no surprises along the way. Thousands of attendees already trust us, and we work hard to keep it that way.
<p class="text-truncate hp-tt mb-0" style="max-width:18rem">Clear prices, honest advice and no surprises along the way. Thousands of attendees 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 Amara Whitaker and Noah Mensah 7 hours ago.
<p class="mb-0">Last edited by <span class="d-inline-block text-truncate align-bottom hp-tt" style="max-width:8rem">Amara Whitaker and Noah Mensah</span> 7 hours ago.</p>3Inbox preview
Subject and preview text cut to one line in an email list.
- Kenji MorganA beginner's guide to getting started – More than eighty speakers share what they have learned the hard way. Workshops are limited to thirty seats, so everyone gets hands-on time.
- Nora PatelBehind the scenes: building the stage – Every session is recorded, so you can catch up on anything you missed. Our team has done this many times, so you never have to guess.
- Mason RossiHow to choose the right ticket – Group tickets include a private meeting room for your team. Start in minutes and get help from a real person whenever you need it.
<ul class="list-group">
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Kenji Morgan</strong><span class="text-truncate small"><span class="fw-semibold">A beginner's guide to getting started</span> – More than eighty speakers share what they have learned the hard way. Workshops are limited to thirty seats, so everyone gets hands-on time.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Nora Patel</strong><span class="text-truncate small"><span class="fw-semibold">Behind the scenes: building the stage</span> – Every session is recorded, so you can catch up on anything you missed. Our team has done this many times, so you never have to guess.</span></li>
<li class="list-group-item d-flex gap-3"><strong class="flex-shrink-0 small" style="width:7rem">Mason Rossi</strong><span class="text-truncate small"><span class="fw-semibold">How to choose the right ticket</span> – Group tickets include a private meeting room for your team. Start in minutes and get help from a real person whenever you need it.</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-3354 | Three days of keynotes, hands-on workshops and evening meetups. | $327.65 |
| #PO-6351 | The venue is a short walk from the station and fully accessible. | $224.13 |
| #INV-7952 | More than eighty speakers share what they have learned the hard way. | $381.72 |
<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-3354</td>
<td class="text-truncate" style="max-width:12rem">Three days of keynotes, hands-on workshops and evening meetups.</td>
<td class="text-end">$327.65</td>
</tr>
<tr>
<td>#PO-6351</td>
<td class="text-truncate" style="max-width:12rem">The venue is a short walk from the station and fully accessible.</td>
<td class="text-end">$224.13</td>
</tr>
<tr>
<td>#INV-7952</td>
<td class="text-truncate" style="max-width:12rem">More than eighty speakers share what they have learned the hard way.</td>
<td class="text-end">$381.72</td>
</tr>
</tbody>
</table>
</div>5Long file names
File names shorten while the size stays visible at the end.
- looking-back-at-a-busy-season-final-version-9.docx88 KB
- what-makes-a-panel-worth-watching-final-version-2.docx346 KB
- our-favourite-tips-for-busy-weeks-final-version-7.docx26 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">looking-back-at-a-busy-season-final-version-9.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">88 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-makes-a-panel-worth-watching-final-version-2.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">346 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">our-favourite-tips-for-busy-weeks-final-version-7.docx</span><small class="ms-auto text-body-secondary flex-shrink-0">26 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="#">Meetup</a></li>
<li class="breadcrumb-item active text-truncate" aria-current="page">Early bird tickets save you up to forty percent until the end of the month.</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">Samir Alvarez replied: The venue is a short walk from the station and fully accessible.</strong><small class="text-body-secondary">22 hours ago</small>
</div>
</div>8Equal card titles
Truncated titles keep a grid of cards the same height.
What we learned from last year's feedback: Thousands of attendees already trust us, and we work hard to keep it that way.
Dec 1, 2025
Joining online: how the virtual pass works: Workshops are limited to thirty seats, so everyone gets hands-on time.
Sep 8, 2026
Five things we learned this year: Our evening party is the best place to turn talks into friendships.
Mar 31, 2026
<div class="row g-3">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">What we learned from last year's feedback: Thousands of attendees already trust us, and we work hard to keep it that way.</h3>
<p class="small text-body-secondary mb-0">Dec 1, 2025</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Joining online: how the virtual pass works: Workshops are limited to thirty seats, so everyone gets hands-on time.</h3>
<p class="small text-body-secondary mb-0">Sep 8, 2026</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h3 class="h6 text-truncate">Five things we learned this year: Our evening party is the best place to turn talks into friendships.</h3>
<p class="small text-body-secondary mb-0">Mar 31, 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-4.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">Ava Kim</strong><small class="ms-auto ps-2 text-body-secondary">07:30</small>
</div>
<div class="small text-body-secondary text-truncate">
Every attendee receives a certificate of participation. Group tickets include a private meeting room for 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-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">Ella Delgado</strong><small class="ms-auto ps-2 text-body-secondary">12:45</small>
</div>
<div class="small text-body-secondary text-truncate">
Clear prices, honest advice and no surprises along the way. 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-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">Felix Nguyen</strong><small class="ms-auto ps-2 text-body-secondary">19:00</small>
</div>
<div class="small text-body-secondary text-truncate">
The networking app helps you meet the right people before you arrive. Every detail is handled by people who care about getting it right.
</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/case study/getting-started-with-the-new-dashboard">example.com/experience/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-3.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Workshop ticket Workshop edition
</div>
<strong class="small">$134.00</strong>
</div>
</div>
<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">
Early bird pass Keynote edition
</div>
<strong class="small">$304.99</strong>
</div>
</div>
<div class="col-6 col-md-3">
<div class="border rounded p-2">
<img src="../assets/img/product-11.svg" alt="" class="img-fluid rounded mb-1">
<div class="small text-truncate">
Panel day ticket Panel edition
</div>
<strong class="small">$201.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">
Student pass Keynote edition
</div>
<strong class="small">$141.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">Announcing our first keynote speakers</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">How to pitch a talk that gets accepted</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">Ten talks you should not miss this year</span><span class="badge rounded-pill text-bg-light border d-inline-block text-truncate" style="max-width:9rem">How to get the most out of a conference</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">Solais Labs</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-8.svg" alt="" width="24" height="24" class="rounded-circle"><span class="text-truncate">Leo Varga (Content Writer)</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">
Friendly people answer your questions quickly, by phone, chat or email. Sponsors meet decision-makers in a relaxed, friendly setting.
</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">
Every session is recorded, so you can catch up on anything you missed. Our team has done this many times, so you never have to guess.
</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">Ticketing Fast story practical</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">Live streaming Smart 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" aria-hidden="true"></i><span class="text-truncate">Sponsorship Smart workflow 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" aria-hidden="true"></i><span class="text-truncate">Networking app Flexible process 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">
Our favourite tips for busy weeks
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
Looking back at a busy season
</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">
Behind the scenes: building the stage
</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 our attendees asked us most
</div>
<div class="bg-body border rounded p-2 mt-2 small text-truncate">
The small habits that make a big difference
</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 Sato, 312 Station Street, Porto 34101, Portugal</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">Sponsorship for attendees</span> </button>
<ul class="dropdown-menu" aria-labelledby="hp-dd-1242">
<li><a class="dropdown-item" href="#">Ticketing</a></li>
<li><a class="dropdown-item" href="#">Ticketing</a></li>
</ul>
</div>19Playlist
Long episode or track titles truncate while the duration stays aligned.
- Join the conference of the year2:53
- Meet the people shaping the future4:24
- Three days that change how you work4:39
<ol class="list-group list-group-numbered">
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Join the conference of the year</span><small class="ms-auto text-body-secondary">2:53</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Meet the people shaping the future</span><small class="ms-auto text-body-secondary">4:24</small></li>
<li class="list-group-item d-flex gap-2"><span class="text-truncate">Three days that change how you work</span><small class="ms-auto text-body-secondary">4:39</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. Three days of keynotes, hands-on workshops and evening meetups.">We listen first, then build a plan around what you actually need. Three days of keynotes, hands-on workshops and evening meetups.</span>