Card

Flexible container with header / media / body / footer sub-elements. Visual and layout variants.

Default

Card title

Subtitle

Body content goes here.
<div class="card">
  <div class="card__header">
    <h3 class="card__title">Title</h3>
    <p class="card__subtitle">Subtitle</p>
  </div>
  <div class="card__body">Content</div>
  <div class="card__footer">Actions</div>
</div>

With media (flush to edges)

Media card

Media reaches the card edges via a negative margin.

<div class="card">
  <div class="card__media">
    <img src="..." alt="...">
  </div>
  <div class="card__body">…</div>
</div>

Visual variants

Soft

Tinted background.

Elevated

Shadow-lg.

Accented

Top accent line.

Interactive

Hover: lift + shadow.

<div class="card card--elevated">…</div>
<div class="card card--accented">…</div>
<div class="card card--interactive">…</div>

Horizontal layout

Horizontal

Media left, body right.

<div class="card card--horizontal">
  <div class="card__media">…</div>
  <div class="card__body">…</div>
</div>

Modifiers

ClassEffect
.cardBase — padded, bordered, max-width 36rem.
.card--softTinted background (--soft).
.card--elevatedDrop shadow (--shadow-lg).
.card--glassTranslucent bg + backdrop blur.
.card--interactiveHover: translateY(-1px) + shadow.
.card--accentedTop 3px accent border.
.card--bordered / --borderlessToggle base border.
.card--horizontalMedia left, body right.
.card--compact / --spaciousScale padding down / up.
.card--fluidRemove max-width.
.card--narrow / --wideSet max-width to 24rem / 48rem.
.card--centeredAuto margin-inline.
.card--stretchStretch to grid cell height.
.card__header / __title / __subtitle / __media / __body / __footerSub-elements.