mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2026-06-07 18:56:38 +00:00
3.3 KiB
3.3 KiB
CardsFeatured Pattern
A section pattern that displays a heading, description, and a responsive grid of CardImage components. Follows the "Logo Rectangle Grid" design from Figma.
Features
- 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
Usage
import { CardsFeatured } from 'shared/patterns/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
]}
/>
Props
| 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 |
CardsFeaturedCardConfig
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 |
Responsive Behavior
| Breakpoint | Grid Columns | Vertical Padding |
|---|---|---|
| Mobile (< 768px) | 1 column | 48px |
| Tablet (768px - 1199px) | 2 columns | 64px |
| Desktop (≥ 1200px) | 3 columns | 80px |
Design Tokens
Colors
| Mode | Element | Color |
|---|---|---|
| Light | Heading | $black (#141414) |
| Light | Description | $black (#141414) |
| Dark | Heading | $white (#FFFFFF) |
| Dark | Description | $white (#FFFFFF) |
Spacing
- 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
CSS Classes
| 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 |
Showcase
View the pattern showcase at: /about/cards-featured-showcase