# CardStats Pattern
A section pattern that displays a heading, optional description, and a responsive grid of `CardStat` components. Designed for showcasing key statistics and metrics on landing pages.
## Features
- Responsive grid layout (2 columns mobile/tablet, 3 columns desktop)
- Heading with `heading-md` typography (Tobias Light)
- Optional description with `body-l` typography (Booton Light)
- Proper spacing using `PageGrid` for container and alignment
- Full dark mode support
- Reuses the `CardStat` component for consistent styling
## Usage
```tsx
import { CardStats } from 'shared/sections/CardStatsList';
```
## Props
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `heading` | `React.ReactNode` | Yes | Section heading text |
| `description` | `React.ReactNode` | No | Optional section description text |
| `cards` | `CardStatProps[]` | Yes | Array of CardStat configurations |
| `className` | `string` | No | Additional CSS classes |
### CardStat Configuration
Each card in the `cards` array accepts the following props:
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `statistic` | `string` | Yes | The main statistic to display (e.g., "6M", "$1T") |
| `superscript` | `'+' \| '*' \| '1'-'9' \| '0'` | No | Superscript text for the statistic |
| `label` | `string` | Yes | Descriptive label for the statistic |
| `variant` | `'lilac' \| 'green' \| 'light-gray' \| 'dark-gray'` | No | Background color variant (default: 'lilac') |
| `primaryButton` | `{ label: string, href?: string, onClick?: () => void }` | No | Primary CTA button |
| `secondaryButton` | `{ label: string, href?: string, onClick?: () => void }` | No | Secondary CTA button |
## Color Variants
| Variant | Color | Hex | Use Case |
|---------|-------|-----|----------|
| `lilac` | Lilac 300 | #C0A7FF | User metrics, community stats |
| `green` | Green 300 | #21E46B | Financial metrics, growth indicators |
| `light-gray` | Gray 200 | #E6EAF0 | Technical stats, reliability metrics |
| `dark-gray` | Gray 300 | #CAD4DF | Neutral metrics, secondary info |
## Responsive Behavior
Uses breakpoints from `styles/_breakpoints.scss`:
| Breakpoint | Width | Columns | Card Gap |
|------------|-------|---------|----------|
| xs (Mobile) | 0 - 575px | 1 | 8px |
| md (Tablet) | 576px - 991px | 2 | 8px |
| lg (Desktop) | 992px+ | 3 | 8px |
## Examples
### With Description
```tsx
```
### Without Description (Heading Only)
```tsx
```
### Mixed Card Variants
```tsx
```
## CSS Classes
| Class | Description |
|-------|-------------|
| `.bds-card-stats` | Base section container |
| `.bds-card-stats__header` | Header wrapper for heading and description |
| `.bds-card-stats__heading` | Section heading (uses `.h-md`) |
| `.bds-card-stats__description` | Section description (uses `.body-l`) |
| `.bds-card-stats__cards` | Cards grid container |
| `.bds-card-stats__card-wrapper` | Individual card wrapper |
## Design References
- **Figma Design**: [Section Cards - Stats](https://www.figma.com/design/drnQQXnK9Q67MTPPKQsY9l/Section-Cards---Stats?node-id=32051-2839&m=dev)
- **Showcase Page**: `/about/card-stats-showcase`
- **Pattern Location**: `shared/sections/CardStatsList/`
- **Component Used**: `shared/components/CardStat/`
## Accessibility
- Uses semantic HTML with `` and proper heading hierarchy
- CardStat buttons include proper focus states
- Color contrast meets WCAG AA requirements
- Responsive layout ensures readability on all devices
## Version History
- Initial implementation: January 2026
- Figma design alignment with 4 color variants
- Responsive grid layout with PageGrid integration