List Group
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-ui-toggle="list".
1Basic list
An unordered list with .list-group and .list-group-item.
- Live workshops
- Study groups
- Career coaching
- Certificates
<ul class="list-group" style="max-width: 360px;">
<li class="list-group-item">Live workshops</li>
<li class="list-group-item">Study groups</li>
<li class="list-group-item">Career coaching</li>
<li class="list-group-item">Certificates</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.
- Lifetime access
- Quizzes
- Hands-on projects
<ul class="list-group list-group-flush border-top border-bottom">
<li class="list-group-item">Lifetime access</li>
<li class="list-group-item">Quizzes</li>
<li class="list-group-item">Hands-on projects</li>
</ul>5Numbered list
list-group-numbered on an ol adds counters, here with extra content per item.
- 21How to learn a new skill in 30 daysOct 16, 2025
- 24Our favourite tips for busy weeksJul 31, 2026
- 27Building a portfolio that gets interviewsMay 31, 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 to learn a new skill in 30 days</div><span class="small text-body-secondary">Oct 16, 2025</span></div><span class="badge text-bg-primary rounded-pill">21</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">Jul 31, 2026</span></div><span class="badge text-bg-primary rounded-pill">24</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">Building a portfolio that gets interviews</div><span class="small text-body-secondary">May 31, 2026</span></div><span class="badge text-bg-primary rounded-pill">27</span></li>
</ol>6Horizontal list
list-group-horizontal lays items in a row; -md makes it responsive.
- 2.1kVisitors
- 805Sign-ups
- 26%Conversion
<ul class="list-group list-group-horizontal-md">
<li class="list-group-item flex-fill text-center"><div class="fw-bold">2.1k</div><small class="text-body-secondary">Visitors</small></li>
<li class="list-group-item flex-fill text-center"><div class="fw-bold">805</div><small class="text-body-secondary">Sign-ups</small></li>
<li class="list-group-item flex-fill text-center"><div class="fw-bold">26%</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.
- Projects30
- Tasks85
- Issues3
<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" aria-hidden="true"></i> Projects</span><span class="badge text-bg-primary rounded-pill">30</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">85</span></li>
<li class="list-group-item d-flex justify-content-between align-items-center"><span><i class="bi bi-exclamation-circle" aria-hidden="true"></i> Issues</span><span class="badge text-bg-danger rounded-pill">3</span></li>
</ul>9Custom content
Headings, text and meta inside each item, like a list of articles.
Looking back at a busy season
3 days agoThousands of students already trust us, and we work hard to keep it that way.
Theo SatoHow to choose the right course
2 days agoWe measure success by how many students come back and tell their friends.
Mateo LarsenA beginner's guide to getting started
29 min agoTry the first lesson of any course for free before you decide.
Priya Mensah<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">Looking back at a busy season</h6>
<small>3 days ago</small>
</div>
<p class="mb-1 small">Thousands of students already trust us, and we work hard to keep it that way.</p>
<small class="">Theo Sato</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">How to choose the right course</h6>
<small>2 days ago</small>
</div>
<p class="mb-1 small">We measure success by how many students come back and tell their friends.</p>
<small class="text-body-secondary">Mateo Larsen</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">A beginner's guide to getting started</h6>
<small>29 min ago</small>
</div>
<p class="mb-1 small">Try the first lesson of any course for free before you decide.</p>
<small class="text-body-secondary">Priya Mensah</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">Reliable idea calm</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">Honest story modern</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">Bright community flexible</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">Flexible launch focused</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-ui-toggle="list" turns the list into tab navigation for panes next to it.
Every detail is handled by people who care about getting it right.
Two-step verification is on.
Instructors are working professionals who teach what they use every day.
<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-ui-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-ui-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-ui-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">Every detail is handled by people who care about getting it right.</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" 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">Instructors are working professionals who teach what they use every day.</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="Hana 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">Hana Okafor</strong><small class="text-body-secondary text-nowrap ms-2">1 days ago</small>
</div>
<div class="small text-body-secondary">
Lifetime access means you can revisit lessons whenever you need a refresher.
</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-3.svg" alt="Finn Whitaker" 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">Finn Whitaker</strong><small class="text-body-secondary text-nowrap ms-2">54 min ago</small>
</div>
<div class="small text-body-secondary">
Study groups and a friendly forum keep you motivated along the way.
</div>
</div>
</a><a href="#" class="list-group-item list-group-item-action d-flex gap-3 py-3"><img src="../assets/img/avatar-1.svg" alt="Ravi Alvarez" 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 Alvarez</strong><small class="text-body-secondary text-nowrap ms-2">3 days ago</small>
</div>
<div class="small text-body-secondary">
Guided learning paths take you from beginner to job-ready step by step.
</div>
</div>
</a>
</div>14File list
File type icons, sizes and a download button per file.
- what-employers-look-for-in-junior-analysts.pdf660 KB · Dec 12, 2025
- five-things-we-learned-this-year.png230 KB · Nov 1, 2025
- what-our-students-asked-us-most.xlsx885 KB · Oct 20, 2025
- five-things-we-learned-this-year.zip547 KB · Jun 2, 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" aria-hidden="true"></i></span><div class="flex-grow-1 text-truncate"><div class="small fw-semibold text-truncate">what-employers-look-for-in-junior-analysts.pdf</div><div class="small text-body-secondary">660 KB · Dec 12, 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" aria-hidden="true"></i></span><div class="flex-grow-1 text-truncate"><div class="small fw-semibold text-truncate">five-things-we-learned-this-year.png</div><div class="small text-body-secondary">230 KB · Nov 1, 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-primary"><i class="bi bi-file-earmark-spreadsheet" aria-hidden="true"></i></span><div class="flex-grow-1 text-truncate"><div class="small fw-semibold text-truncate">what-our-students-asked-us-most.xlsx</div><div class="small text-body-secondary">885 KB · Oct 20, 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" aria-hidden="true"></i></span><div class="flex-grow-1 text-truncate"><div class="small fw-semibold text-truncate">five-things-we-learned-this-year.zip</div><div class="small text-body-secondary">547 KB · Jun 2, 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.
- Nora MoreauOperations Manager
- Kai SilvaFrontend Engineer
- Ruby OrtegaArt Director
<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-1.svg" alt="Nora Moreau" class="rounded-circle flex-shrink-0" width="40" height="40"><div class="flex-grow-1"><div class="fw-semibold small">Nora Moreau</div><div class="small text-body-secondary">Operations Manager</div></div><div class="btn-group btn-group-sm" role="group" aria-label="Contact Nora"><button type="button" class="btn btn-outline-secondary" aria-label="Call"><i class="bi bi-telephone" aria-hidden="true"></i></button><button type="button" class="btn btn-outline-secondary" aria-label="Email"><i class="bi bi-envelope" aria-hidden="true"></i></button></div></li>
<li class="list-group-item d-flex align-items-center gap-3"><img src="../assets/img/avatar-7.svg" alt="Kai Silva" class="rounded-circle flex-shrink-0" width="40" height="40"><div class="flex-grow-1"><div class="fw-semibold small">Kai Silva</div><div class="small text-body-secondary">Frontend Engineer</div></div><div class="btn-group btn-group-sm" role="group" aria-label="Contact Kai"><button type="button" class="btn btn-outline-secondary" aria-label="Call"><i class="bi bi-telephone" aria-hidden="true"></i></button><button type="button" class="btn btn-outline-secondary" aria-label="Email"><i class="bi bi-envelope" aria-hidden="true"></i></button></div></li>
<li class="list-group-item d-flex align-items-center gap-3"><img src="../assets/img/avatar-2.svg" alt="Ruby Ortega" class="rounded-circle flex-shrink-0" width="40" height="40"><div class="flex-grow-1"><div class="fw-semibold small">Ruby Ortega</div><div class="small text-body-secondary">Art Director</div></div><div class="btn-group btn-group-sm" role="group" aria-label="Contact Ruby"><button type="button" class="btn btn-outline-secondary" aria-label="Call"><i class="bi bi-telephone" aria-hidden="true"></i></button><button type="button" class="btn btn-outline-secondary" aria-label="Email"><i class="bi bi-envelope" 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" 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" 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" 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.
- Honest project100%
- Honest team16%
- Calm community75%
<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">Honest project</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">Honest team</span><span class="text-body-secondary">16%</span></div><div class="progress" role="progressbar" aria-label="Task progress" aria-valuenow="16" aria-valuemin="0" aria-valuemax="100" style="height: 6px;"><div class="progress-bar bg-warning" style="width: 16%;"></div></div></li>
<li class="list-group-item"><div class="d-flex justify-content-between small mb-1"><span class="fw-semibold">Calm community</span><span class="text-body-secondary">75%</span></div><div class="progress" role="progressbar" aria-label="Task progress" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="height: 6px;"><div class="progress-bar bg-primary" style="width: 75%;"></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">Liam Ashford</span><small class="text-body-secondary ms-2 text-nowrap">09:45</small>
</div>
<div class="small text-truncate fw-semibold">
What employers look for in junior analysts
</div>
<div class="small text-body-secondary text-truncate">
Try the first lesson of any course for free before you decide.
</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" aria-hidden="true"></i></span>
<div class="flex-grow-1 text-truncate">
<div class="d-flex justify-content-between">
<span class="fw-bold">Amara Varga</span><small class="text-body-secondary ms-2 text-nowrap">11:30</small>
</div>
<div class="small text-truncate fw-semibold">
Five study habits that actually work
</div>
<div class="small text-body-secondary text-truncate">
Career coaches help with your CV, portfolio and interview practice.
</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" aria-hidden="true"></i></span>
<div class="flex-grow-1 text-truncate">
<div class="d-flex justify-content-between">
<span class="">Elena Novak</span><small class="text-body-secondary ms-2 text-nowrap">19:00</small>
</div>
<div class="small text-truncate text-body-secondary">
The small habits that make a big difference
</div>
<div class="small text-body-secondary text-truncate">
Clear prices, honest advice and no surprises along the way.
</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" aria-hidden="true"></i></span>
<div class="flex-grow-1 text-truncate">
<div class="d-flex justify-content-between">
<span class="">Leo Rossi</span><small class="text-body-secondary ms-2 text-nowrap">10:15</small>
</div>
<div class="small text-truncate text-body-secondary">
A beginner's guide to getting started
</div>
<div class="small text-body-secondary text-truncate">
We listen first, then build a plan around what you actually need.
</div>
</div>
</a>
</div>19Leaderboard
Ranked people with medal badges, avatars and scores.
- 1
Nadia Patel968 pts
- 2
Freya Kowalski684 pts
- 3
Owen Ibrahim520 pts
- 4
Maya Carter258 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-7.svg" alt="Nadia Patel" class="rounded-circle flex-shrink-0" width="36" height="36"><span class="flex-grow-1 small fw-semibold">Nadia Patel</span><span class="small">968 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-9.svg" alt="Freya Kowalski" class="rounded-circle flex-shrink-0" width="36" height="36"><span class="flex-grow-1 small fw-semibold">Freya Kowalski</span><span class="small">684 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-10.svg" alt="Owen Ibrahim" class="rounded-circle flex-shrink-0" width="36" height="36"><span class="flex-grow-1 small fw-semibold">Owen Ibrahim</span><span class="small">520 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-7.svg" alt="Maya Carter" class="rounded-circle flex-shrink-0" width="36" height="36"><span class="flex-grow-1 small fw-semibold">Maya Carter</span><span class="small">258 pts</span></li>
</ol>20Reorderable list look
Grip handles signal that items can be reordered (wire up drag and drop in your app).
- Expert mentors1
- Lifetime access2
- Hands-on projects3
- Mobile learning4
<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">Expert mentors</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">Lifetime access</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">Hands-on projects</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">Mobile learning</span><span class="badge bg-body-secondary text-body-secondary">4</span></li>
</ul>