Promo Card

Join the beta program

We are opening a short testing window for the new builder. Help shape it before launch.

Only 25 seats

Applications close Jul 18.

Request access
About this component

Promo Card

A dismissible promo card with image, deadline line, and apply button for programs and offers.

Usage

The import and the props worth knowing about, in one place.

import { Card28 } from "@/components/beste/component/card28";

// The corner X hides the banner and fires onDismiss.
<Card28
  src="/promos/beta.jpg"
  title="Join the beta program"
  description="Help shape the new builder before launch."
  highlight="Only 25 seats"
  note="Applications close Jul 18."
  cta="Request access"
  href="/beta"
  onDismiss={() => console.log("dismissed")}
/>

<Card28
  src="/promos/workshop.jpg"
  title="Free workshop this Thursday"
  cta="Save my seat"
  permanent     // hide the dismiss button
  tone="dark"   // CTA: "primary" (default) | "dark"
  onClick={() => console.log("save seat")}
/>

Playground

Turn the props on the right; the snippet under them is what you would write to get what you see.

Join the beta program

We are opening a short testing window for the new builder. Help shape it before launch.

Only 25 seats

Applications close Jul 18.

Request access
Usage
import { Card28 } from "@/components/beste/component/card28";

<Card28
  src="https://images.unsplash.com/photo-1782898623031-fb7cc9245c24?q=80&w=1287&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
  title="Join the beta program"
  description="We are opening a short testing window for the new builder. Help shape it before launch."
  highlight="Only 25 seats"
  note="Applications close Jul 18."
  cta="Request access"
  href="#"
/>

Keyboard and gestures

Every one of these is in the component already. They are listed because a props table cannot mention a gesture, so nothing else on this page can tell you they exist.

The dismiss buttonTakes the card off the page unless `permanent` is set, and calls `onDismiss` so the page can remember.

Props

Read from the component's own type, so this cannot drift from what it accepts.

PropTypeDefaultDescription
src*stringSquare image on the left
title*stringBanner title
descriptionstringSupporting text under the title
highlightstringBold highlight line (e.g. "Only 25 seats")
notestringMuted note under the highlight (e.g. a deadline)
cta*stringPill button label
hrefstringIf set, the button renders as a link to this href
onClickReact.MouseEventHandler<HTMLButtonElement>Button click handler (used when there is no href)
permanentbooleanHide the dismiss button
onDismiss() => voidCalled when the card is dismissed
tone"primary" | "dark"CTA color
classNamestringAdditional classes merged onto the root

More Card components

View all Card
Atlas Field Watch-22%

Atlas Field Watch

4.8
$249$320

Product Card

A product card with image, price, discount badge, wishlist toggle, and add to cart action for shop grids.

Most popular

Pro

$19/month

For freelancers shipping client sites.

  • Unlimited projects
  • 1,400+ blocks and components
  • Lifetime updates
  • Priority support

No credit card required

Pricing Card

A complete pricing card with feature list, highlighted state, floating badge, and call to action.

Orbit One

Orbit One

$189

Shop now

Product Overlay Card

A product card with a full bleed photo, overlaid name and price, and a floating pill button.

LUMO

LUMO

Field Camera

Launching Friday

Join the waitlist

Join list

Product Teaser Card

A portrait product teaser card with brand header, availability footer, and a pill button for coming soon pages.

Ready when you are

Start building today

Copy your first block in under a minute. No account needed.

CTA Card

A call to action card with eyebrow, title, description, and buttons for section endings and banners.

Featured

Pro blocks drop monthly

A new themed set of sections lands every month, with free updates forever.

Learn more

Gradient Beam Card

A featured callout card wrapped in an orbiting gradient border beam for highlights and announcements.