Stretched Link
A stretched link makes its whole containing block clickable, so a card, list row or tile behaves like one big link. The nearest parent with position: relative (such as a card or position-relative) decides how far the clickable area reaches.
1Card with a stretched button
The button link stretches over the whole card; the dashed outline marks the clickable area.
<div class="card hp-hit" style="max-width:18rem">
<img src="../assets/img/photo-2.svg" class="card-img-top" alt="">
<div class="card-body">
<h3 class="h6 card-title">Property search</h3>
<p class="card-text small">Our home valuation makes projects moving forward without extra tools.</p>
<a href="#" class="btn btn-primary btn-sm stretched-link">Explore</a>
</div>
</div>2Card title as the link
Putting stretched-link on the title link makes the heading the accessible name of the whole card.
<div class="card hp-hit" style="max-width:22rem">
<div class="card-body">
<span class="badge text-bg-light border mb-2">how-to</span>
<h3 class="h6"><a href="#" class="stretched-link link-body-emphasis text-decoration-none">Project notes for buyers</a></h3>
<p class="small text-body-secondary mb-0">Sep 19, 2026</p>
</div>
</div>3Media object
A d-flex row with position-relative so the link covers the image and the text.
The friendly routine checklist
A secure project connects decisions quicker and clearer on any device.
Continue reading<div class="d-flex position-relative gap-3 hp-hit p-2 rounded">
<img src="../assets/img/photo-4.svg" alt="" width="120" height="80" class="rounded flex-shrink-0 object-fit-cover">
<div>
<h3 class="h6 mb-1">The friendly routine checklist</h3>
<p class="small mb-1">A secure project connects decisions quicker and clearer on any device.</p>
<a href="#" class="stretched-link small">Continue reading</a>
</div>
</div>4Column as the containing block
Grid columns are not positioned, so add position-relative to the column you want to be clickable.
Only this column is clickable
This reliable team guides time back in your day without extra tools.
Open article<div class="row g-0 bg-body-tertiary rounded overflow-hidden">
<div class="col-md-5">
<img src="../assets/img/photo-6.svg" alt="" class="w-100 h-100 object-fit-cover" style="min-height:10rem">
</div>
<div class="col-md-7 p-3 position-relative hp-hit">
<h3 class="h6">Only this column is clickable</h3>
<p class="small">This reliable team guides time back in your day without extra tools.</p>
<a href="#" class="stretched-link">Open article</a>
</div>
</div>5Product tiles
Shop tiles where the whole card opens the product page.
<div class="row g-3">
<div class="col-md-4">
<div class="card h-100 hp-hit">
<img src="../assets/img/product-1.svg" class="card-img-top" alt="">
<div class="card-body">
<h3 class="h6 mb-1"><a href="#" class="stretched-link link-body-emphasis text-decoration-none">Studio apartment</a></h3>
<span class="fw-semibold">$259.00</span>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card h-100 hp-hit">
<img src="../assets/img/product-2.svg" class="card-img-top" alt="">
<div class="card-body">
<h3 class="h6 mb-1"><a href="#" class="stretched-link link-body-emphasis text-decoration-none">Lake cottage</a></h3>
<span class="fw-semibold">$278.50</span>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card h-100 hp-hit">
<img src="../assets/img/product-3.svg" class="card-img-top" alt="">
<div class="card-body">
<h3 class="h6 mb-1"><a href="#" class="stretched-link link-body-emphasis text-decoration-none">Family house</a></h3>
<span class="fw-semibold">$253.99</span>
</div>
</div>
</div>
</div>6Notification rows
List group items are already positioned, so each row is clickable with one stretched link.
<div class="list-group">
<div class="list-group-item d-flex gap-3">
<span class="text-primary"><i class="bi bi-bell" aria-hidden="true"></i></span>
<div>
<a href="#" class="stretched-link link-body-emphasis text-decoration-none fw-semibold small">What's new in land</a>
<p class="small text-body-secondary mb-0">just now</p>
</div>
</div>
<div class="list-group-item d-flex gap-3">
<span class="text-primary"><i class="bi bi-bell" aria-hidden="true"></i></span>
<div>
<a href="#" class="stretched-link link-body-emphasis text-decoration-none fw-semibold small">A guide to property search</a>
<p class="small text-body-secondary mb-0">just now</p>
</div>
</div>
<div class="list-group-item d-flex gap-3">
<span class="text-primary"><i class="bi bi-bag-check" aria-hidden="true"></i></span>
<div>
<a href="#" class="stretched-link link-body-emphasis text-decoration-none fw-semibold small">Inside the secure story</a>
<p class="small text-body-secondary mb-0">35 min ago</p>
</div>
</div>
</div>7Team member cards
Profile cards that open the member page from anywhere on the card.
<div class="row g-3">
<div class="col-6 col-md-4">
<div class="card text-center h-100">
<div class="card-body">
<img src="../assets/img/avatar-12.svg" alt="" width="72" height="72" class="rounded-circle mb-2">
<h3 class="h6 mb-0"><a href="#" class="stretched-link link-body-emphasis text-decoration-none">Amara Brennan</a></h3>
<small class="text-body-secondary">Frontend Engineer</small>
</div>
</div>
</div>
<div class="col-6 col-md-4">
<div class="card text-center h-100">
<div class="card-body">
<img src="../assets/img/avatar-9.svg" alt="" width="72" height="72" class="rounded-circle mb-2">
<h3 class="h6 mb-0"><a href="#" class="stretched-link link-body-emphasis text-decoration-none">Ivy Lindqvist</a></h3>
<small class="text-body-secondary">Sales Executive</small>
</div>
</div>
</div>
<div class="col-6 col-md-4">
<div class="card text-center h-100">
<div class="card-body">
<img src="../assets/img/avatar-9.svg" alt="" width="72" height="72" class="rounded-circle mb-2">
<h3 class="h6 mb-0"><a href="#" class="stretched-link link-body-emphasis text-decoration-none">Sofia Nguyen</a></h3>
<small class="text-body-secondary">QA Engineer</small>
</div>
</div>
</div>
</div>8Horizontal blog card
A horizontal card layout with the stretched link in the body.
How we rebuilt our experience
The new price alerts turns time back in your day all year round.
<div class="card overflow-hidden hp-hit">
<div class="row g-0">
<div class="col-4">
<img src="../assets/img/photo-8.svg" alt="" class="w-100 h-100 object-fit-cover">
</div>
<div class="col-8">
<div class="card-body">
<h3 class="h6"><a href="#" class="stretched-link link-body-emphasis">How we rebuilt our experience</a></h3>
<p class="small mb-0 d-none d-sm-block">The new price alerts turns time back in your day all year round.</p>
</div>
</div>
</div>
</div>9Pricing card
The plan card selects the plan wherever you click.
<div class="card border-primary hp-hit" style="max-width:18rem">
<div class="card-body text-center">
<h3 class="h6 text-uppercase text-primary">Starter</h3>
<p class="display-6 mb-0">$8.04</p>
<p class="small text-body-secondary">per month</p>
<a href="#" class="btn btn-outline-primary w-100 stretched-link">Select Starter</a>
</div>
</div>10Feature tiles
Bordered feature tiles made clickable with a position-relative wrapper.
<div class="row g-3">
<div class="col-md-4">
<div class="position-relative border rounded-3 p-3 h-100">
<span class="fs-3 text-primary"><i class="bi bi-lightning-charge" aria-hidden="true"></i></span>
<h3 class="h6 mt-2">Fast paperwork</h3>
<p class="small mb-0">The new price alerts turns every detail in view all year round.</p>
<a href="#" class="stretched-link" aria-label="Learn more about this feature"></a>
</div>
</div>
<div class="col-md-4">
<div class="position-relative border rounded-3 p-3 h-100">
<span class="fs-3 text-primary"><i class="bi bi-shield-check" aria-hidden="true"></i></span>
<h3 class="h6 mt-2">Verified listings</h3>
<p class="small mb-0">This friendly plan guides new ideas to life with friendly support.</p>
<a href="#" class="stretched-link" aria-label="Learn more about this feature"></a>
</div>
</div>
<div class="col-md-4">
<div class="position-relative border rounded-3 p-3 h-100">
<span class="fs-3 text-primary"><i class="bi bi-graph-up-arrow" aria-hidden="true"></i></span>
<h3 class="h6 mt-2">Expert agents</h3>
<p class="small mb-0">Our home valuation shows every detail in view wherever you are.</p>
<a href="#" class="stretched-link" aria-label="Learn more about this feature"></a>
</div>
</div>
</div>11Search results
Each result block is one large target, handy on touch screens.
What's new in apartments
This bright release shows you focused on what matters all year round.
The powerful idea checklist
This clear plan helps projects moving forward all year round.
What's new in villas
This smart team turns new ideas to life all year round.
<div class="vstack gap-3">
<div class="position-relative">
<small class="text-success">brand-name-3.example/team</small>
<h3 class="h6 mb-1"><a href="#" class="stretched-link">What's new in apartments</a></h3>
<p class="small text-body-secondary mb-0">This bright release shows you focused on what matters all year round.</p>
</div>
<div class="position-relative">
<small class="text-success">brand-name-3.example/dashboard</small>
<h3 class="h6 mb-1"><a href="#" class="stretched-link">The powerful idea checklist</a></h3>
<p class="small text-body-secondary mb-0">This clear plan helps projects moving forward all year round.</p>
</div>
<div class="position-relative">
<small class="text-success">brand-name-3.example/routine</small>
<h3 class="h6 mb-1"><a href="#" class="stretched-link">What's new in villas</a></h3>
<p class="small text-body-secondary mb-0">This smart team turns new ideas to life all year round.</p>
</div>
</div>12File tiles
File cards in a drive view open the file from anywhere on the tile.
<div class="row g-2">
<div class="col-6 col-md-3">
<div class="position-relative border rounded p-3 text-center">
<span class="fs-2 text-danger"><i class="bi bi-filetype-pdf" aria-hidden="true"></i></span><a href="#" class="stretched-link d-block small text-truncate link-body-emphasis text-decoration-none">goal-3</a>
</div>
</div>
<div class="col-6 col-md-3">
<div class="position-relative border rounded p-3 text-center">
<span class="fs-2 text-success"><i class="bi bi-filetype-xlsx" aria-hidden="true"></i></span><a href="#" class="stretched-link d-block small text-truncate link-body-emphasis text-decoration-none">process-20</a>
</div>
</div>
<div class="col-6 col-md-3">
<div class="position-relative border rounded p-3 text-center">
<span class="fs-2 text-warning"><i class="bi bi-filetype-pptx" aria-hidden="true"></i></span><a href="#" class="stretched-link d-block small text-truncate link-body-emphasis text-decoration-none">launch-2</a>
</div>
</div>
<div class="col-6 col-md-3">
<div class="position-relative border rounded p-3 text-center">
<span class="fs-2 text-info"><i class="bi bi-file-earmark-image" aria-hidden="true"></i></span><a href="#" class="stretched-link d-block small text-truncate link-body-emphasis text-decoration-none">routine-35</a>
</div>
</div>
</div>13Event card with date block
A date badge, title and place in one clickable card.
The practical team checklist
Denver · 17:00<div class="card hp-hit" style="max-width:24rem">
<div class="card-body d-flex gap-3">
<div class="text-bg-primary rounded text-center px-3 py-2">
<small class="d-block">NOV</small><strong class="fs-4">23</strong>
</div>
<div>
<h3 class="h6 mb-1"><a href="#" class="stretched-link link-body-emphasis text-decoration-none">The practical team checklist</a></h3>
<small class="text-body-secondary"><i class="bi bi-geo-alt" aria-hidden="true"></i> Denver · 17:00</small>
</div>
</div>
</div>14Inbox rows
Message rows where the sender link stretches across the full row.
- Chloe Kowalski10:45
Launch notes for buyers
- Zoe Okafor10:30
Simple ways to improve your update
- Chloe Fischer08:30
8 lessons from our story
<ul class="list-group">
<li class="list-group-item list-group-item-action d-flex gap-3 align-items-start"><img src="../assets/img/avatar-10.svg" alt="" width="36" height="36" class="rounded-circle"><div class="flex-grow-1"><a href="#" class="stretched-link text-decoration-none link-body-emphasis fw-semibold small">Chloe Kowalski</a><p class="small text-body-secondary mb-0">Launch notes for buyers</p></div><small class="text-body-secondary text-nowrap">10:45</small></li>
<li class="list-group-item list-group-item-action d-flex gap-3 align-items-start"><img src="../assets/img/avatar-9.svg" alt="" width="36" height="36" class="rounded-circle"><div class="flex-grow-1"><a href="#" class="stretched-link text-decoration-none link-body-emphasis fw-semibold small">Zoe Okafor</a><p class="small text-body-secondary mb-0">Simple ways to improve your update</p></div><small class="text-body-secondary text-nowrap">10:30</small></li>
<li class="list-group-item list-group-item-action d-flex gap-3 align-items-start"><img src="../assets/img/avatar-3.svg" alt="" width="36" height="36" class="rounded-circle"><div class="flex-grow-1"><a href="#" class="stretched-link text-decoration-none link-body-emphasis fw-semibold small">Chloe Fischer</a><p class="small text-body-secondary mb-0">8 lessons from our story</p></div><small class="text-body-secondary text-nowrap">08:30</small></li>
</ul>15Limiting the clickable area
Only the inner box has position-relative, so the stretched link covers it and not the outer card.
This text is outside the clickable area.
<div class="card">
<div class="card-body">
<p class="small text-body-secondary">This text is outside the clickable area.</p>
<div class="position-relative bg-body-tertiary rounded p-3 hp-hit">
<strong class="d-block">Rental management</strong> <a href="#" class="stretched-link small">Open</a>
</div>
</div>
</div>16Category image tiles
Image tiles with an overlay caption; the caption link opens the category.
<div class="row g-2">
<div class="col-md-4">
<div class="position-relative rounded-3 overflow-hidden">
<img src="../assets/img/square-1.svg" alt="" class="w-100 object-fit-cover" style="height:9rem">
<div class="position-absolute bottom-0 start-0 end-0 p-2" style="background:rgba(0,0,0,.5)">
<a href="#" class="stretched-link link-light fw-semibold text-decoration-none">Commercial</a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="position-relative rounded-3 overflow-hidden">
<img src="../assets/img/square-2.svg" alt="" class="w-100 object-fit-cover" style="height:9rem">
<div class="position-absolute bottom-0 start-0 end-0 p-2" style="background:rgba(0,0,0,.5)">
<a href="#" class="stretched-link link-light fw-semibold text-decoration-none">Houses</a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="position-relative rounded-3 overflow-hidden">
<img src="../assets/img/square-3.svg" alt="" class="w-100 object-fit-cover" style="height:9rem">
<div class="position-absolute bottom-0 start-0 end-0 p-2" style="background:rgba(0,0,0,.5)">
<a href="#" class="stretched-link link-light fw-semibold text-decoration-none">Land</a>
</div>
</div>
</div>
</div>17Course card with progress
A learning card that resumes the course from anywhere on the card.
Home valuation
<div class="card hp-hit" style="max-width:20rem">
<div class="card-body">
<h3 class="h6"><a href="#" class="stretched-link link-body-emphasis text-decoration-none">Home valuation</a></h3>
<div class="progress mb-1" role="progressbar" aria-label="Course progress" aria-valuenow="42" aria-valuemin="0" aria-valuemax="100" style="--bs-progress-height:.5rem">
<div class="progress-bar" style="width:42%">
</div>
</div>
<small class="text-body-secondary">42% complete</small>
</div>
</div>18Clickable dashboard tiles
Metric tiles that open the matching report.
<div class="row g-2">
<div class="col-md-4">
<div class="card">
<div class="card-body d-flex align-items-center gap-3">
<span class="fs-3 text-primary"><i class="bi bi-cart" aria-hidden="true"></i></span>
<div>
<div class="fs-5 fw-bold">
5.9k
</div>
<a href="#" class="stretched-link small link-secondary">Orders</a>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body d-flex align-items-center gap-3">
<span class="fs-3 text-primary"><i class="bi bi-people" aria-hidden="true"></i></span>
<div>
<div class="fs-5 fw-bold">
2.1k
</div>
<a href="#" class="stretched-link small link-secondary">Visitors</a>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body d-flex align-items-center gap-3">
<span class="fs-3 text-primary"><i class="bi bi-chat-square-text" aria-hidden="true"></i></span>
<div>
<div class="fs-5 fw-bold">
4.2k
</div>
<a href="#" class="stretched-link small link-secondary">Tickets</a>
</div>
</div>
</div>
</div>
</div>19Job listings
Job rows with the title as the stretched link and the details as plain text.
<div class="list-group">
<div class="list-group-item py-3">
<div class="d-flex flex-wrap justify-content-between gap-2">
<a href="#" class="stretched-link fw-semibold text-decoration-none">Operations Manager</a><span class="badge text-bg-light border">Full time</span>
</div>
<small class="text-body-secondary">Sales · Austin</small>
</div>
<div class="list-group-item py-3">
<div class="d-flex flex-wrap justify-content-between gap-2">
<a href="#" class="stretched-link fw-semibold text-decoration-none">Art Director</a><span class="badge text-bg-light border">Full time</span>
</div>
<small class="text-body-secondary">Design · Porto</small>
</div>
<div class="list-group-item py-3">
<div class="d-flex flex-wrap justify-content-between gap-2">
<a href="#" class="stretched-link fw-semibold text-decoration-none">Backend Engineer</a><span class="badge text-bg-light border">Remote</span>
</div>
<small class="text-body-secondary">Legal · Montreal</small>
</div>
</div>20Extra link above the stretched link
Give a second link position-relative and z-2 so it sits above the stretched area and stays clickable on its own.
<div class="card hp-hit" style="max-width:22rem">
<div class="card-body">
<h3 class="h6"><a href="#" class="stretched-link link-body-emphasis text-decoration-none">6 lessons from our story</a></h3>
<p class="small">This clear story shows data easy to understand wherever you are.</p>
<a href="#" class="badge text-bg-primary text-decoration-none position-relative z-2">#release</a>
</div>
</div>