Canvas HTML Template ships a dedicated team block demo that gives developers a copy-paste starting point without requiring a single line of custom layout code.
Key Takeaways
- The Canvas team block demo (
block-content-team-1.html) provides ready-made Bootstrap 5 team grid layouts built on the standard Bootstrap grid system. - Two distinct team list styles are demonstrated, covering different column configurations and card treatments.
- Each team member card carries a name, role, and photo slot, making it straightforward to swap in real content.
- The component relies on Canvas utility classes and Bootstrap 5 grid columns, so no extra CSS files are needed beyond what Canvas already loads.
- Responsive behaviour is handled entirely through Bootstrap 5 breakpoint modifiers, meaning the grid collapses gracefully on mobile without any custom media queries.
What the Demo Contains
The live demo at block-content-team-1.html is organised under a single top-level heading: Team Lists. Inside that section you will find two complete team grids, each showcasing the same six recurring profiles: Gordon Norman, Miles Tone, Max Conversion, Jim Séchen, Richard Tea, and Hanson Deck. The repetition is intentional. It lets you compare layout variants side-by-side under realistic conditions, with identical content rendered in different grid configurations.
This is not a component library sampler with placeholder lorem text. Because the profiles are consistent across both grids, you can evaluate spacing, typography scale, and card proportions against the same data before committing to one layout.

Anatomy of a Canvas Team Card
Each team member card follows the same structural pattern: a photo container at the top, a name in a heading element, and a role beneath it. That minimal hierarchy is deliberate. It keeps cognitive load low for the visitor and gives you clean anchor points to extend with social links, short bios, or contact buttons without restructuring the whole card.
A representative card in raw Bootstrap 5 HTML looks like this:
<div class="col-lg-4 col-md-6 mb-5">
<div class="team">
<div class="team-image">
<img src="images/team/gordon.jpg" alt="Gordon Norman" class="img-fluid rounded">
</div>
<div class="team-desc mt-3">
<div class="team-title">
<h4>Gordon Norman</h4>
<span>Founder & CEO</span>
</div>
</div>
</div>
</div>The outer column class (col-lg-4 col-md-6) gives you a three-column grid on large viewports and a two-column grid on medium viewports. On smaller screens Bootstrap collapses to a single column automatically. Swap those column classes to col-xl-3 col-lg-4 col-md-6 if you want a four-column layout on extra-large screens, such as a full leadership page for a larger organisation.
Two Grid Styles Compared
The demo shows the same six profiles twice, each inside a different grid treatment. Understanding the difference will save you a round of trial and error.
- First grid. Cards are arranged in a standard Bootstrap row with consistent column widths. The photo sits above the name and title. This is the safer choice for corporate or agency about pages where visual consistency signals professionalism.
- Second grid. The same profiles appear in an arrangement that varies the visual weight or spacing, giving a slightly more editorial feel. This variant suits creative studios, consultancies, or SaaS companies where personality is part of the brand proposition.
If your project sits in a regulated industry (legal, finance, healthcare) you will almost certainly want the first, more structured variant. For an agency or a startup, the second gives you room to inject character. Neither is universally better. The demo exists so you can judge against your own brand guidelines.

Wiring Up the Team Block in Canvas
Canvas loads its scripts through plugins.min.js and functions.bundle.js, but the team block needs neither. It is purely structural HTML and CSS, so you can drop it into any Canvas page by copying the relevant <section> block and adjusting the content.
The canonical page-level structure when embedding a team section inside a full Canvas page looks like this:
<section id="team" class="section py-6">
<div class="container">
<div class="row justify-content-center mb-5">
<div class="col-lg-6 text-center">
<h2 class="display-5 fw-bold">Meet the Team</h2>
<p class="lead text-muted">The people behind the product.</p>
</div>
</div>
<div class="row">
<!-- team cards go here -->
</div>
</div>
</section>Canvas’s --cnvs-themecolor CSS custom property flows through to hover states on any accent you add (social icon colours, underlines, button borders), so your brand colour propagates without touching individual card styles. For more on theming approaches, the post on SCSS vs CSS Variables for Theming Bootstrap 5 covers when to reach for one or the other.
Extending the Card with Social Links
The demo cards stop at name and role. Most real about pages also need social links. Adding them cleanly without breaking the card layout means appending a small icon row inside .team-desc, after .team-title:
<div class="team-desc mt-3">
<div class="team-title">
<h4>Miles Tone</h4>
<span>Head of Product</span>
</div>
<div class="team-social mt-2">
<a href="https://linkedin.com/in/milestone" aria-label="LinkedIn" class="text-muted me-2">
<i class="bi bi-linkedin"></i>
</a>
<a href="https://twitter.com/milestone" aria-label="Twitter" class="text-muted">
<i class="bi bi-twitter-x"></i>
</a>
</div>
</div>Bootstrap Icons (included in many Canvas builds) keep the file size low. If your project uses Font Awesome instead, swap the bi- class prefix for fa-brands fa-. Either works because the team card imposes no icon dependency of its own.
If you are building a more feature-rich about page, pairing the team section with a company history timeline is a natural next step. The post on how to build a Bootstrap 5 Timeline Component walks through exactly that.
Performance and Image Considerations
A team grid with six or more headshots is one of the quickest ways to hurt your Largest Contentful Paint score, particularly on mobile connections. Images visible in the viewport on initial load should be treated as priority resources. Everything else should lazy-load. In Bootstrap 5 and HTML5, that is a one-attribute fix:
<!-- Above-the-fold card: no lazy load -->
<img src="images/team/gordon.jpg" alt="Gordon Norman" class="img-fluid rounded">
<!-- Below-the-fold cards: lazy load -->
<img src="images/team/miles.jpg" alt="Miles Tone" class="img-fluid rounded" loading="lazy">Combine that with correctly sized WebP exports (typically 400 to 600px wide for a three-column grid at standard DPI) and your Core Web Vitals score will stay healthy. The post on optimising Bootstrap 5 images for Core Web Vitals has a full breakdown of the sizing and format decisions involved.
When to Use This Block, and When Not To
The Canvas team block works well when your team is small enough to be meaningful on a single page, typically two to twelve people. At that scale, faces and names build trust faster than any paragraph of prose.
It is less suitable in these scenarios:
- Large organisations with hundreds of staff. A searchable directory or department-filtered page is a better UX choice than an endless grid of headshots.
- Freelancers presenting a solo practice. A single-person “about” section with a bio and photo reads more authentically than a team grid containing one card.
- Projects where photography is unavailable or inconsistent. Mismatched image styles (some studio shots, some phone selfies) undermine the professionalism the block is designed to communicate. In that case, abstract icon-based cards or illustrated avatars are a defensible alternative until proper photography is available.
Knowing when a component does not serve your goal is as important as knowing how to implement it. The utility class reference at The Complete Bootstrap 5 Utility Class Reference for 2026 can help you adjust spacing, typography, and colour when adapting the block for edge cases.
Frequently Asked Questions
No. The team section in block-content-team-1.html is a purely structural component built on Bootstrap 5 grid classes and Canvas utility CSS. Canvas loads its scripts through plugins.min.js and functions.bundle.js, but neither file is required to render the team grid correctly. You only need those scripts if you add interactive elements such as hover animations or lightboxes on top of the base component.
Edit the Bootstrap column classes on each card’s wrapper element. For a four-column layout use col-xl-3 col-lg-4 col-md-6. For a two-column layout use col-md-6. Bootstrap 5 handles the responsive collapse at each breakpoint automatically, so you do not need to add custom media queries.
Yes. The .team-desc container is designed to accept additional child elements. Add a <p> tag beneath the .team-title div for a bio snippet. Keep bio text to two to three lines (roughly 30 to 50 words) to maintain visual consistency across cards when team members contribute text of different lengths.
For a three-column Bootstrap grid at standard desktop widths, export headshots at roughly 400 to 500px wide in WebP format. Use a consistent crop ratio, typically square (1:1) or portrait (3:4), across all images. Inconsistent aspect ratios are the most common cause of uneven card heights in a team grid, and they are avoidable entirely by enforcing a fixed container height with object-fit: cover on the image element.
Yes. The component uses standard Bootstrap grid column classes and does not depend on any Bootstrap 4 utility syntax that was deprecated in the 5.x series. It is also compatible with Bootstrap 5.3’s updated colour mode system, meaning it will respect dark mode preferences if you have configured Canvas’s dark mode support. For implementation details on that, the post on adding dark mode to a Bootstrap 5 HTML template covers the approach in full.
Looking for a production-ready Bootstrap 5 HTML template? Browse Canvas Template demos and find the perfect starting point for your next project.
If you’re building with the Canvas HTML Template and want to ship production-ready Bootstrap 5 layouts faster, try Canvas Builder free — the visual builder that exports clean Canvas-ready markup in minutes.
Skip the setup and build it free
Spin up a complete Bootstrap 5 site, blog included, with Canvas Builder. No coding, no cost.
Canvas Team
Tutorials and tips for building beautiful Bootstrap 5 websites with the Canvas HTML Template and Canvas Builder.
More from the Canvas Blog