GitHub

Card

Container for grouping related content with header, content, and footer

Basic Usage

Loading...

Installation

pnpm add @corew500/ui

Usage

import { Card } from "@corew500/ui/card"

<Card>Content</Card>

Variants

cardVariants

AxisValuesDefault
variant
defaultoutline
default
size
defaultsm
default
interactive
truefalse
false
hoverIntent
defaultprimarysecondaryaccentdestructive
default

cardContentVariants

AxisValuesDefault
padding
defaultsmnone
default

CMS Integration

CMSPayload CMS Integration
This component supports CMS-driven content via @corew500/cms-payload.
Loading...

API Reference

Props

PropTypeDefaultDescription
interactiveenumfalseEnables hover effects (shadow elevation, ring color transition, cursor pointer). Adds `group` class for child elements to use `group-hover:*` utilities.
hoverIntentenumdefaultColor intent for hover ring. Only applies when `interactive` is true.
render(props: CardRenderProps) => ReactNodeRender function for custom element types (e.g., `<a>`, `<button>`). Receives props that must be spread onto the rendered element. @example ```tsx <Card interactive render={(props) => <a href="/details" {...props}>Content</a>} /> ```
variantenumdefault
sizeenumdefault

Accessibility

Keyboard Navigation

  • `interactive` adds visual hover states only—not keyboard focus or click handling
  • For clickable cards, wrap in `<a>` or `<button>`, or add `onClick` + `role="button"` + `tabIndex={0}`

Screen Readers

  • - Uses semantic div elements; add role="region" with aria-label for landmark
  • CardTitle should contain heading content for screen readers

Localization

Translatable Content

  • - Pass translated strings to CardTitle and CardDescription

Additional

  • CardContent accepts any localized content

Related

Related Components