Pricing Card
A single pricing tier with a feature list, price and call to action.
6 frameworksBeginner
A photo card with a gradient scrim, text laid over it and a hover zoom.
<a class="overlay-card" href="#">
<img class="overlay-card__image" src="/your-image.jpg" alt="" width="384" height="288" />
<!-- The scrim is what makes white text legible over an unknown photo. -->
<span class="overlay-card__scrim" aria-hidden="true"></span>
<span class="overlay-card__content">
<span class="overlay-card__kicker">Field notes</span>
<span class="overlay-card__title">Three weeks above the tree line</span>
</span>
</a>| Prop | Type | Default | Description |
|---|---|---|---|
titlerequired | string | - | Heading text for the card. |
kicker | string | - | Small label shown above the title. |
hrefrequired | string | - | Destination the card links to. |
imageSrcrequired | string | - | Image URL for the card's picture. |
imageAlt | string | '' | Alternative text for the image. Empty when the title already names it. |
className | string | - | Additional classes merged onto the root element. |
The scrim is not decoration - it is the only thing guaranteeing white text stays readable over a photo you have not seen. Lightening `from-black/85` is the first thing that breaks contrast, so check it against your darkest and lightest images. The zoom lives on the image inside an `overflow-hidden` wrapper and is cancelled by `motion-reduce`; focus triggers the same zoom as hover, so keyboard users get the same affordance.