A section pattern that displays a heading, description, and a responsive grid of CardImage components. Follows the "Logo Rectangle Grid" design from Figma.
- Responsive grid layout (1 column mobile, 2 tablet, 3 desktop)
- Heading with
h-mdtypography (Tobias Light) - Description with
body-ltypography (Booton Light) - Proper spacing using
PageGridfor container and alignment - Full dark mode support
import { CardsFeatured } from 'shared/sections/CardsFeatured';
<CardsFeatured
heading="Trusted by Leaders in Real-World Asset Tokenization"
description="Powering institutions and builders who are bringing real world assets on chain at global scale."
cards={[
{
image: "/img/docs.png",
imageAlt: "Documentation",
title: "Documentation",
subtitle: "Access everything you need to get started working with the XRPL.",
buttonLabel: "Get Started",
href: "/docs"
},
{
image: "/img/tutorials.png",
imageAlt: "Tutorials",
title: "Tutorials",
subtitle: "Step-by-step guides to help you build on the XRP Ledger.",
buttonLabel: "View Tutorials",
href: "/tutorials"
},
// ... more cards
]}
/>| Prop | Type | Required | Description |
|---|---|---|---|
heading | React.ReactNode | Yes | Section heading text |
description | React.ReactNode | Yes | Section description text |
cards | CardsFeaturedCardConfig[] | Yes | Array of card configurations (uses CardImageProps) |
className | string | No | Additional CSS class names |
Each card in the cards array accepts all props from CardImageProps:
| Prop | Type | Required | Description |
|---|---|---|---|
image | string | Yes | Image URL |
imageAlt | string | Yes | Image alt text |
title | string | Yes | Card title |
subtitle | string | No | Card subtitle/description |
buttonLabel | string | No | Button text |
href | string | No | Link URL |
| Breakpoint | Grid Columns | Vertical Padding |
|---|---|---|
| Mobile (< 768px) | 1 column | 48px |
| Tablet (768px - 1199px) | 2 columns | 64px |
| Desktop (≥ 1200px) | 3 columns | 80px |
| Mode | Element | Color |
|---|---|---|
| Light | Heading | $black (#141414) |
| Light | Description | $black (#141414) |
| Dark | Heading | $white (#FFFFFF) |
| Dark | Description | $white (#FFFFFF) |
- Header gap (heading to description): 8px mobile/tablet, 16px desktop
- Section gap (header to cards): 24px mobile, 32px tablet, 40px desktop
- Cards gap: 48px mobile (vertical), 8px tablet/desktop
| Class | Description |
|---|---|
.bds-cards-featured | Base section container |
.bds-cards-featured__header | Header wrapper for heading and description |
.bds-cards-featured__heading | Section heading (uses .h-md) |
.bds-cards-featured__description | Section description (uses .body-l) |
.bds-cards-featured__cards | Cards grid container |
.bds-cards-featured__card-wrapper | Individual card wrapper |
View the pattern showcase at: /about/cards-featured-showcase