List groups display a series of items: plain lists, menus of links, option pickers, inboxes and settings screens. Make items actionable, colour or number them, lay them out horizontally, or switch content panes with data-bs-toggle="list".
1Basic list
An unordered list with .list-group and .list-group-item.
- API integrations
- Smart reporting
- Team analytics
- Secure file sharing
<ul class="list-group" style="max-width: 360px;">
<li class="list-group-item">API integrations</li>
<li class="list-group-item">Smart reporting</li>
<li class="list-group-item">Team analytics</li>
<li class="list-group-item">Secure file sharing</li>
</ul>2Active and disabled
Highlight the current item and dim unavailable ones.
- Current plan
- Upgrade options
- Enterprise (contact sales)
- Billing history
<ul class="list-group" style="max-width: 360px;">
<li class="list-group-item active" aria-current="true">Current plan</li>
<li class="list-group-item">Upgrade options</li>
<li class="list-group-item disabled" aria-disabled="true">Enterprise (contact sales)</li>
<li class="list-group-item">Billing history</li>
</ul>3Links and buttons
list-group-item-action adds hover and focus states to links and buttons.
<div class="list-group" style="max-width: 360px;">
<a href="#" class="list-group-item list-group-item-action active" aria-current="true">Overview</a><a href="#" class="list-group-item list-group-item-action">Members</a>
<button type="button" class="list-group-item list-group-item-action">Integrations</button>
<button type="button" class="list-group-item list-group-item-action" disabled>Audit log</button>
</div>4Flush list
list-group-flush removes outer borders so the list sits flush in a parent.
- Dark mode
- Real-time collaboration
- Open API
<ul class="list-group list-group-flush border-top border-bottom">
<li class="list-group-item">Dark mode</li>
<li class="list-group-item">Real-time collaboration</li>
<li class="list-group-item">Open API</li>
</ul>5Numbered list
list-group-numbered on an ol adds counters, here with extra content per item.
- 8How one support team cut first replies to 20 minutesJan 5, 2026
- 8Seven automations every team should set upNov 17, 2025
- 29Our favourite tips for busy weeksOct 16, 2026
<ol class="list-group list-group-numbered" style="max-width: 420px;">
<li class="list-group-item d-flex justify-content-between align-items-start"><div class="ms-2 me-auto"><div class="fw-semibold">How one support team cut first replies to 20 minutes</div><span class="small text-body-secondary">Jan 5, 2026</span></div><span class="badge text-bg-primary rounded-pill">8</span></li>
<li class="list-group-item d-flex justify-content-between align-items-start"><div class="ms-2 me-auto"><div class="fw-semibold">Seven automations every team should set up</div><span class="small text-body-secondary">Nov 17, 2025</span></div><span class="badge text-bg-primary rounded-pill">8</span></li>
<li class="list-group-item d-flex justify-content-between align-items-start"><div class="ms-2 me-auto"><div class="fw-semibold">Our favourite tips for busy weeks</div><span class="small text-body-secondary">Oct 16, 2026</span></div><span class="badge text-bg-primary rounded-pill">29</span></li>
</ol>6Horizontal list
list-group-horizontal lays items in a row; -md makes it responsive.
- 33.0kVisitors
- 658Sign-ups
- 10%Conversion
<ul class="list-group list-group-horizontal-md">
<li class="list-group-item flex-fill text-center"><div class="fw-bold">33.0k</div><small class="text-body-secondary">Visitors</small></li>
<li class="list-group-item flex-fill text-center"><div class="fw-bold">658</div><small class="text-body-secondary">Sign-ups</small></li>
<li class="list-group-item flex-fill text-center"><div class="fw-bold">10%</div><small class="text-body-secondary">Conversion</small></li>
</ul>7Contextual colours
list-group-item-* colours individual items.
<div class="list-group" style="max-width: 360px;">
<a href="#" class="list-group-item list-group-item-action list-group-item-primary">Primary item</a><a href="#" class="list-group-item list-group-item-action list-group-item-secondary">Secondary item</a><a href="#" class="list-group-item list-group-item-action list-group-item-success">Success item</a><a href="#" class="list-group-item list-group-item-action list-group-item-danger">Danger item</a><a href="#" class="list-group-item list-group-item-action list-group-item-warning">Warning item</a><a href="#" class="list-group-item list-group-item-action list-group-item-info">Info item</a><a href="#" class="list-group-item list-group-item-action list-group-item-light">Light item</a><a href="#" class="list-group-item list-group-item-action list-group-item-dark">Dark item</a>
</div>8With badges
Pill badges at the end of each item show counts.
- Projects28
- Tasks36
- Issues9
<ul class="list-group" style="max-width: 360px;">
<li class="list-group-item d-flex justify-content-between align-items-center"><span><i class="bi bi-folder-fill" aria-hidden="true"></i> Projects</span><span class="badge text-bg-primary rounded-pill">28</span></li>
<li class="list-group-item d-flex justify-content-between align-items-center"><span><i class="bi bi-check2-square" aria-hidden="true"></i> Tasks</span><span class="badge text-bg-success rounded-pill">36</span></li>
<li class="list-group-item d-flex justify-content-between align-items-center"><span><i class="bi bi-exclamation-circle-fill" aria-hidden="true"></i> Issues</span><span class="badge text-bg-danger rounded-pill">9</span></li>
</ul>9Custom content
Headings, text and meta inside each item, like a list of articles.
A beginner's guide to getting started
3 days agoClear reports turn weekly numbers into decisions in minutes, not days.
Zoe DuarteThe real cost of switching between tools
2 days agoEvery update lands in one place, so nothing gets lost in email threads.
Mateo MensahPlanning a product launch in six weeks
yesterdayClear prices, honest advice and no surprises along the way.
Diego Ortega<div class="list-group" style="max-width: 520px;">
<a href="#" class="list-group-item list-group-item-action active" aria-current="true">
<div class="d-flex w-100 justify-content-between">
<h6 class="mb-1">A beginner's guide to getting started</h6>
<small>3 days ago</small>
</div>
<p class="mb-1 small">Clear reports turn weekly numbers into decisions in minutes, not days.</p>
<small class="">Zoe Duarte</small></a><a href="#" class="list-group-item list-group-item-action">
<div class="d-flex w-100 justify-content-between">
<h6 class="mb-1">The real cost of switching between tools</h6>
<small>2 days ago</small>
</div>
<p class="mb-1 small">Every update lands in one place, so nothing gets lost in email threads.</p>
<small class="text-body-secondary">Mateo Mensah</small></a><a href="#" class="list-group-item list-group-item-action">
<div class="d-flex w-100 justify-content-between">
<h6 class="mb-1">Planning a product launch in six weeks</h6>
<small>yesterday</small>
</div>
<p class="mb-1 small">Clear prices, honest advice and no surprises along the way.</p>
<small class="text-body-secondary">Diego Ortega</small></a>
</div>10Checkbox list
Checkboxes and labels in items make a simple to-do list.
<ul class="list-group" style="max-width: 360px;">
<li class="list-group-item"><input class="form-check-input me-2" type="checkbox" id="lg-chk-982" checked><label class="form-check-label text-decoration-line-through text-body-secondary" for="lg-chk-982">Clear routine clear</label></li>
<li class="list-group-item"><input class="form-check-input me-2" type="checkbox" id="lg-chk-983" checked><label class="form-check-label text-decoration-line-through text-body-secondary" for="lg-chk-983">Elegant workflow friendly</label></li>
<li class="list-group-item"><input class="form-check-input me-2" type="checkbox" id="lg-chk-984"><label class="form-check-label" for="lg-chk-984">Secure update powerful</label></li>
<li class="list-group-item"><input class="form-check-input me-2" type="checkbox" id="lg-chk-985"><label class="form-check-label" for="lg-chk-985">Simple release honest</label></li>
</ul>11Radio option list
Whole list items as labels for radio buttons, e.g. a plan picker.
<div class="list-group" style="max-width: 420px;">
<label class="list-group-item d-flex gap-3" for="lg-radio-opt-987"><input class="form-check-input flex-shrink-0" type="radio" name="lg-radio-986" id="lg-radio-opt-987"><span><span class="d-block fw-semibold">Starter</span><small class="text-body-secondary">$9 / month</small></span></label>
<label class="list-group-item d-flex gap-3" for="lg-radio-opt-988"><input class="form-check-input flex-shrink-0" type="radio" name="lg-radio-986" id="lg-radio-opt-988" checked><span><span class="d-block fw-semibold">Team</span><small class="text-body-secondary">$29 / month</small></span></label>
<label class="list-group-item d-flex gap-3" for="lg-radio-opt-989"><input class="form-check-input flex-shrink-0" type="radio" name="lg-radio-986" id="lg-radio-opt-989"><span><span class="d-block fw-semibold">Business</span><small class="text-body-secondary">$79 / month</small></span></label>
</div>12List as tabs
data-bs-toggle="list" turns the list into tab navigation for panes next to it.
Automations take care of the repetitive steps, so people can focus on real work.
Two-step verification is on.
Granular roles keep sensitive work private while everyone else stays informed.
<div class="row g-3">
<div class="col-sm-4">
<div class="list-group" role="tablist">
<a class="list-group-item list-group-item-action active" id="lg-tab-990-tab" data-bs-toggle="list" href="#lg-tab-990" role="tab" aria-controls="lg-tab-990" aria-selected="true">Profile</a><a class="list-group-item list-group-item-action" id="lg-tab-991-tab" data-bs-toggle="list" href="#lg-tab-991" role="tab" aria-controls="lg-tab-991" aria-selected="false">Security</a><a class="list-group-item list-group-item-action" id="lg-tab-992-tab" data-bs-toggle="list" href="#lg-tab-992" role="tab" aria-controls="lg-tab-992" aria-selected="false">Notifications</a>
</div>
</div>
<div class="col-sm-8">
<div class="tab-content border rounded p-3 h-100">
<div class="tab-pane fade show active" id="lg-tab-990" role="tabpanel" aria-labelledby="lg-tab-990-tab">
<p class="mb-0">Automations take care of the repetitive steps, so people can focus on real work.</p>
</div>
<div class="tab-pane fade" id="lg-tab-991" role="tabpanel" aria-labelledby="lg-tab-991-tab">
<p class="mb-0"><i class="bi bi-shield-lock-fill" aria-hidden="true"></i> Two-step verification is on.</p>
</div>
<div class="tab-pane fade" id="lg-tab-992" role="tabpanel" aria-labelledby="lg-tab-992-tab">
<p class="mb-0">Granular roles keep sensitive work private while everyone else stays informed.</p>
</div>
</div>
</div>
</div>13Notification list
Avatars, message and time, with a dot for unread items.
<div class="list-group" style="max-width: 440px;">
<a href="#" class="list-group-item list-group-item-action d-flex gap-3 py-3"><img src="../assets/img/avatar-9.svg" alt="Amara Haddad" class="rounded-circle flex-shrink-0" width="40" height="40">
<div class="flex-grow-1">
<div class="d-flex justify-content-between">
<strong class="small">Amara Haddad</strong><small class="text-body-secondary text-nowrap ms-2">just now</small>
</div>
<div class="small text-body-secondary">
Your data is encrypted, backed up daily and hosted in the region you choose.
</div>
</div>
<span class="p-1 bg-primary rounded-circle align-self-center"><span class="visually-hidden">Unread</span></span></a><a href="#" class="list-group-item list-group-item-action d-flex gap-3 py-3"><img src="../assets/img/avatar-2.svg" alt="Aria Okafor" class="rounded-circle flex-shrink-0" width="40" height="40">
<div class="flex-grow-1">
<div class="d-flex justify-content-between">
<strong class="small">Aria Okafor</strong><small class="text-body-secondary text-nowrap ms-2">16 hours ago</small>
</div>
<div class="small text-body-secondary">
Teams report saving around five hours a week after the first month.
</div>
</div>
</a><a href="#" class="list-group-item list-group-item-action d-flex gap-3 py-3"><img src="../assets/img/avatar-7.svg" alt="Ravi Nguyen" class="rounded-circle flex-shrink-0" width="40" height="40">
<div class="flex-grow-1">
<div class="d-flex justify-content-between">
<strong class="small">Ravi Nguyen</strong><small class="text-body-secondary text-nowrap ms-2">8 hours ago</small>
</div>
<div class="small text-body-secondary">
Every update lands in one place, so nothing gets lost in email threads.
</div>
</div>
</a>
</div>14File list
File type icons, sizes and a download button per file.
- how-to-choose-the-right-plan.pdf737 KB · Oct 17, 2025
- a-practical-guide-to-async-work.png16 KB · May 27, 2026
- what-we-learned-shipping-200-releases.xlsx746 KB · Nov 7, 2025
- how-remote-teams-keep-projects-on-track.zip228 KB · Feb 12, 2026
<ul class="list-group" style="max-width: 480px;">
<li class="list-group-item d-flex align-items-center gap-3"><span class="fs-4 text-danger"><i class="bi bi-file-earmark-pdf-fill" aria-hidden="true"></i></span><div class="flex-grow-1 text-truncate"><div class="small fw-semibold text-truncate">how-to-choose-the-right-plan.pdf</div><div class="small text-body-secondary">737 KB · Oct 17, 2025</div></div><button type="button" class="btn btn-sm btn-light border" aria-label="Download"><i class="bi bi-download" aria-hidden="true"></i></button></li>
<li class="list-group-item d-flex align-items-center gap-3"><span class="fs-4 text-success"><i class="bi bi-file-earmark-image-fill" aria-hidden="true"></i></span><div class="flex-grow-1 text-truncate"><div class="small fw-semibold text-truncate">a-practical-guide-to-async-work.png</div><div class="small text-body-secondary">16 KB · May 27, 2026</div></div><button type="button" class="btn btn-sm btn-light border" aria-label="Download"><i class="bi bi-download" aria-hidden="true"></i></button></li>
<li class="list-group-item d-flex align-items-center gap-3"><span class="fs-4 text-primary"><i class="bi bi-file-earmark-spreadsheet-fill" aria-hidden="true"></i></span><div class="flex-grow-1 text-truncate"><div class="small fw-semibold text-truncate">what-we-learned-shipping-200-releases.xlsx</div><div class="small text-body-secondary">746 KB · Nov 7, 2025</div></div><button type="button" class="btn btn-sm btn-light border" aria-label="Download"><i class="bi bi-download" aria-hidden="true"></i></button></li>
<li class="list-group-item d-flex align-items-center gap-3"><span class="fs-4 text-warning"><i class="bi bi-file-earmark-zip-fill" aria-hidden="true"></i></span><div class="flex-grow-1 text-truncate"><div class="small fw-semibold text-truncate">how-remote-teams-keep-projects-on-track.zip</div><div class="small text-body-secondary">228 KB · Feb 12, 2026</div></div><button type="button" class="btn btn-sm btn-light border" aria-label="Download"><i class="bi bi-download" aria-hidden="true"></i></button></li>
</ul>15Contact list
People with role and quick call and email actions.
- Mia CarterBackend Engineer
- Isla FischerSales Executive
- Felix WhitakerFinance Lead
<ul class="list-group" style="max-width: 480px;">
<li class="list-group-item d-flex align-items-center gap-3"><img src="../assets/img/avatar-7.svg" alt="Mia Carter" class="rounded-circle flex-shrink-0" width="40" height="40"><div class="flex-grow-1"><div class="fw-semibold small">Mia Carter</div><div class="small text-body-secondary">Backend Engineer</div></div><div class="btn-group btn-group-sm" role="group" aria-label="Contact Mia"><button type="button" class="btn btn-outline-secondary" aria-label="Call"><i class="bi bi-telephone-fill" aria-hidden="true"></i></button><button type="button" class="btn btn-outline-secondary" aria-label="Email"><i class="bi bi-envelope-fill" aria-hidden="true"></i></button></div></li>
<li class="list-group-item d-flex align-items-center gap-3"><img src="../assets/img/avatar-3.svg" alt="Isla Fischer" class="rounded-circle flex-shrink-0" width="40" height="40"><div class="flex-grow-1"><div class="fw-semibold small">Isla Fischer</div><div class="small text-body-secondary">Sales Executive</div></div><div class="btn-group btn-group-sm" role="group" aria-label="Contact Isla"><button type="button" class="btn btn-outline-secondary" aria-label="Call"><i class="bi bi-telephone-fill" aria-hidden="true"></i></button><button type="button" class="btn btn-outline-secondary" aria-label="Email"><i class="bi bi-envelope-fill" aria-hidden="true"></i></button></div></li>
<li class="list-group-item d-flex align-items-center gap-3"><img src="../assets/img/avatar-4.svg" alt="Felix Whitaker" class="rounded-circle flex-shrink-0" width="40" height="40"><div class="flex-grow-1"><div class="fw-semibold small">Felix Whitaker</div><div class="small text-body-secondary">Finance Lead</div></div><div class="btn-group btn-group-sm" role="group" aria-label="Contact Felix"><button type="button" class="btn btn-outline-secondary" aria-label="Call"><i class="bi bi-telephone-fill" aria-hidden="true"></i></button><button type="button" class="btn btn-outline-secondary" aria-label="Email"><i class="bi bi-envelope-fill" aria-hidden="true"></i></button></div></li>
</ul>16Settings with switches
Each setting has an icon, a description and a switch on the right.
<ul class="list-group" style="max-width: 480px;">
<li class="list-group-item d-flex align-items-center gap-3 py-3"><span class="fs-5 text-primary"><i class="bi bi-bell-fill" aria-hidden="true"></i></span><label class="flex-grow-1" for="lg-switch-993"><span class="d-block fw-semibold small">Push notifications</span><span class="small text-body-secondary">Get alerts on your phone</span></label><div class="form-check form-switch m-0"><input class="form-check-input" type="checkbox" role="switch" id="lg-switch-993" checked></div></li>
<li class="list-group-item d-flex align-items-center gap-3 py-3"><span class="fs-5 text-primary"><i class="bi bi-envelope-fill" aria-hidden="true"></i></span><label class="flex-grow-1" for="lg-switch-994"><span class="d-block fw-semibold small">Weekly digest</span><span class="small text-body-secondary">A summary every Monday</span></label><div class="form-check form-switch m-0"><input class="form-check-input" type="checkbox" role="switch" id="lg-switch-994" checked></div></li>
<li class="list-group-item d-flex align-items-center gap-3 py-3"><span class="fs-5 text-primary"><i class="bi bi-moon-fill" aria-hidden="true"></i></span><label class="flex-grow-1" for="lg-switch-995"><span class="d-block fw-semibold small">Dark mode</span><span class="small text-body-secondary">Easier on the eyes at night</span></label><div class="form-check form-switch m-0"><input class="form-check-input" type="checkbox" role="switch" id="lg-switch-995"></div></li>
</ul>17Task progress list
Progress bars inside items track several jobs at once.
- Reliable goal100%
- Reliable release22%
- Flexible plan28%
<ul class="list-group" style="max-width: 480px;">
<li class="list-group-item"><div class="d-flex justify-content-between small mb-1"><span class="fw-semibold">Reliable goal</span><span class="text-body-secondary">100%</span></div><div class="progress" role="progressbar" aria-label="Task progress" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="height: 6px;"><div class="progress-bar bg-success" style="width: 100%;"></div></div></li>
<li class="list-group-item"><div class="d-flex justify-content-between small mb-1"><span class="fw-semibold">Reliable release</span><span class="text-body-secondary">22%</span></div><div class="progress" role="progressbar" aria-label="Task progress" aria-valuenow="22" aria-valuemin="0" aria-valuemax="100" style="height: 6px;"><div class="progress-bar bg-warning" style="width: 22%;"></div></div></li>
<li class="list-group-item"><div class="d-flex justify-content-between small mb-1"><span class="fw-semibold">Flexible plan</span><span class="text-body-secondary">28%</span></div><div class="progress" role="progressbar" aria-label="Task progress" aria-valuenow="28" aria-valuemin="0" aria-valuemax="100" style="height: 6px;"><div class="progress-bar bg-warning" style="width: 28%;"></div></div></li>
</ul>18Inbox list
Unread messages in bold with a tinted edge; long lines are truncated.
<div class="list-group" style="max-width: 560px;">
<a href="#" class="list-group-item list-group-item-action d-flex gap-3 align-items-start ca-unread"><span class="pt-1 text-warning"><i class="bi bi-star-fill" aria-hidden="true"></i></span>
<div class="flex-grow-1 text-truncate">
<div class="d-flex justify-content-between">
<span class="fw-bold">Jonah Larsen</span><small class="text-body-secondary ms-2 text-nowrap">15:00</small>
</div>
<div class="small text-truncate fw-semibold">
A practical guide to async work
</div>
<div class="small text-body-secondary text-truncate">
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 d-flex gap-3 align-items-start ca-unread"><span class="pt-1 text-warning"><i class="bi bi-star-fill" aria-hidden="true"></i></span>
<div class="flex-grow-1 text-truncate">
<div class="d-flex justify-content-between">
<span class="fw-bold">Tariq Quinn</span><small class="text-body-secondary ms-2 text-nowrap">08:45</small>
</div>
<div class="small text-truncate fw-semibold">
Seven automations every team should set up
</div>
<div class="small text-body-secondary text-truncate">
Onboarding guides and live chat help new colleagues get going on day one.
</div>
</div>
</a><a href="#" class="list-group-item list-group-item-action d-flex gap-3 align-items-start"><span class="pt-1 text-warning"><i class="bi bi-star-fill" aria-hidden="true"></i></span>
<div class="flex-grow-1 text-truncate">
<div class="d-flex justify-content-between">
<span class="">Finn Lindqvist</span><small class="text-body-secondary ms-2 text-nowrap">11:45</small>
</div>
<div class="small text-truncate text-body-secondary">
How to choose the right plan
</div>
<div class="small text-body-secondary text-truncate">
Our open API and ready-made integrations fit into the stack you already have.
</div>
</div>
</a><a href="#" class="list-group-item list-group-item-action d-flex gap-3 align-items-start"><span class="pt-1 text-warning"><i class="bi bi-star-fill" aria-hidden="true"></i></span>
<div class="flex-grow-1 text-truncate">
<div class="d-flex justify-content-between">
<span class="">Freya Hughes</span><small class="text-body-secondary ms-2 text-nowrap">10:00</small>
</div>
<div class="small text-truncate text-body-secondary">
Five things we learned this year
</div>
<div class="small text-body-secondary text-truncate">
Every detail is handled by people who care about getting it right.
</div>
</div>
</a>
</div>19Leaderboard
Ranked people with medal badges, avatars and scores.
- 1
Lea Kim1196 pts
- 2
Kai Ibrahim825 pts
- 3
Liam Moreau532 pts
- 4
Ethan Novak217 pts
<ol class="list-group" style="max-width: 420px;">
<li class="list-group-item d-flex align-items-center gap-3"><span class="badge rounded-circle text-bg-warning ca-rank">1</span><img src="../assets/img/avatar-8.svg" alt="Lea Kim" class="rounded-circle flex-shrink-0" width="36" height="36"><span class="flex-grow-1 small fw-semibold">Lea Kim</span><span class="small">1196 pts</span></li>
<li class="list-group-item d-flex align-items-center gap-3"><span class="badge rounded-circle text-bg-secondary ca-rank">2</span><img src="../assets/img/avatar-6.svg" alt="Kai Ibrahim" class="rounded-circle flex-shrink-0" width="36" height="36"><span class="flex-grow-1 small fw-semibold">Kai Ibrahim</span><span class="small">825 pts</span></li>
<li class="list-group-item d-flex align-items-center gap-3"><span class="badge rounded-circle text-bg-danger ca-rank">3</span><img src="../assets/img/avatar-8.svg" alt="Liam Moreau" class="rounded-circle flex-shrink-0" width="36" height="36"><span class="flex-grow-1 small fw-semibold">Liam Moreau</span><span class="small">532 pts</span></li>
<li class="list-group-item d-flex align-items-center gap-3"><span class="badge rounded-circle text-bg-light ca-rank">4</span><img src="../assets/img/avatar-5.svg" alt="Ethan Novak" class="rounded-circle flex-shrink-0" width="36" height="36"><span class="flex-grow-1 small fw-semibold">Ethan Novak</span><span class="small">217 pts</span></li>
</ol>20Reorderable list look
Grip handles signal that items can be reordered (wire up drag and drop in your app).
- Role-based access1
- 99.99% uptime2
- Dark mode3
- Open API4
<ul class="list-group" style="max-width: 420px;">
<li class="list-group-item d-flex align-items-center gap-2"><span class="text-body-tertiary ca-grip" title="Drag to reorder"><i class="bi bi-grip-vertical" aria-hidden="true"></i></span><span class="flex-grow-1">Role-based access</span><span class="badge bg-body-secondary text-body-secondary">1</span></li>
<li class="list-group-item d-flex align-items-center gap-2"><span class="text-body-tertiary ca-grip" title="Drag to reorder"><i class="bi bi-grip-vertical" aria-hidden="true"></i></span><span class="flex-grow-1">99.99% uptime</span><span class="badge bg-body-secondary text-body-secondary">2</span></li>
<li class="list-group-item d-flex align-items-center gap-2"><span class="text-body-tertiary ca-grip" title="Drag to reorder"><i class="bi bi-grip-vertical" aria-hidden="true"></i></span><span class="flex-grow-1">Dark mode</span><span class="badge bg-body-secondary text-body-secondary">3</span></li>
<li class="list-group-item d-flex align-items-center gap-2"><span class="text-body-tertiary ca-grip" title="Drag to reorder"><i class="bi bi-grip-vertical" aria-hidden="true"></i></span><span class="flex-grow-1">Open API</span><span class="badge bg-body-secondary text-body-secondary">4</span></li>
</ul>