` for semantic list markup
- **Two-Section Layout**: Header (number + heading) and Content (description + buttons)
- **Border-Top Divider**: Applied directly to container (no separate element)
- **Typography Classes**: Uses existing `body-l` and `sh-lg-l` classes
- **Flexbox Gap**: Responsive spacing via gap property
- **75% Width at MD+**: Content is constrained to 75% width on tablet and desktop
## Responsive Spacing
| Breakpoint | Card Gap | Header Gap | Content Gap | Padding Top | Padding Bottom |
|------------|----------|------------|-------------|-------------|----------------|
| Base (< 576px) | 24px | 8px | 16px | 8px | 24px |
| MD (576px - 991px) | 32px | 12px | 24px | 12px | 32px |
| LG (≥ 992px) | 40px | 16px | 32px | 16px | 40px |
**Card Gap**: Space between header and content sections
**Header Gap**: Space between number and heading
**Content Gap**: Space between description and ButtonGroup
**Padding Top**: Space from top border to content
**Padding Bottom**: Space after content (removed on last card)
## Styling
### CSS Classes
- `.bds-link-text-card` - Main list item container with flexbox layout and border-top
- `.bds-link-text-card__header` - Header section (number + heading)
- `.bds-link-text-card__content` - Content section (description + buttons)
- Typography utilities: `body-l`, `sh-lg-l`
### Color Variables
- `$gray-300` - Border color (light mode)
- `$gray-500` - Number text color
- `$white` - Text color in dark mode (applied to entire card)
## Number Formatting
The component automatically formats numbers with zero-padding:
```typescript
index: 0 → "01"
index: 1 → "02"
index: 9 → "10"
index: 99 → "100"
```
## Button Behavior
### 1-2 Buttons
- **1 button**: Renders as primary button
- **2 buttons**: First as primary, second as tertiary
### 3+ Buttons
If more than 2 buttons are passed, only the first 2 will be rendered (automatically sliced).
## Files
- `LinkTextCard.tsx` - React component with TypeScript
- `LinkTextCard.scss` - Minimal SCSS with BEM naming
- `index.ts` - Barrel exports
- `README.md` - This file
## Related Components
- **ButtonGroup**: Used for rendering action buttons
- **Button**: Atomic button component used by ButtonGroup
## Import
```tsx
import { LinkTextCard } from 'shared/patterns/LinkTextCard';
// or
import { LinkTextCard, type LinkTextCardProps } from 'shared/patterns/LinkTextCard';
```
## Design System
Part of the Brand Design System (BDS) with `bds-` namespace prefix.
## Best Practices
1. **Use Sequential Indices**: Pass indices 0, 1, 2... for proper numbering
2. **Limit Buttons**: Design works best with 1-2 buttons
3. **Clear Descriptions**: Keep descriptions concise but informative
4. **Consistent Length**: Try to keep similar text lengths across cards in a group
## Accessibility
- Semantic HTML: Renders as `
` for use within `
` lists
- Heading hierarchy: Uses `
` for card headings (adjust based on parent context)
- Button labels should be descriptive
- Maintains focus order: number → heading → description → buttons
**Note on Heading Semantics**: The component uses `
` inside a list item, which is acceptable when the parent section has appropriate heading hierarchy. The heading level can be adjusted based on your specific use case.