Countdown Studio Card

(Counting down)

Auralis

The studio opens the moment the clock runs out.

00

Days

00

Hours

00

Minutes

00

Seconds

About this block

Countdown Studio CardPRO

A pre-launch countdown on a soft muted card with a monospace parenthetical eyebrow, a bold wordmark, a heading, a live four-unit ruled countdown to a target date, and a reserve-seat pill button.

ComingSoon26: Countdown Studio Card

A monochrome, editorial pre-launch countdown from the Auralis set that centers a parenthetical eyebrow, a bold wordmark, a heading, a live four-unit ruled countdown to a target date, and a reserve-seat pill button, all over a soft muted card.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/comingsoon26?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/comingsoon26?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/comingsoon26.tsx.

Quick start

The installed file exports comingsoon26Demo alongside the block: the exact props behind the preview above. Spread it to get a working countdown card in one line.

tsx
import { ComingSoon26, comingsoon26Demo } from "@/components/beste/block/comingsoon26";

export default function Page() {
  return <ComingSoon26 {...comingsoon26Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this. The targetDate is an ISO string:

tsx
import { ComingSoon26 } from "@/components/beste/block/comingsoon26";

export default function Page() {
  return (
    <ComingSoon26
      badge={{ label: "Counting down" }}
      wordmark="Auralis"
      heading="The studio opens the moment the clock runs out."
      targetDate="2026-10-24T09:00:00Z"
      button={{ label: "Hold my seat", href: "/waitlist" }}
      labels={{
        daysLabel: "Days",
        hoursLabel: "Hours",
        minutesLabel: "Minutes",
        secondsLabel: "Seconds",
      }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow badge rendered above the wordmark via Badge7
labelsComingSoon26Labels{}Unit captions for the days, hours, minutes, and seconds columns
wordmarkstringBold wordmark shown under the eyebrow
headingstringHeading above the countdown
targetDatestringISO date string the countdown ticks down to
buttonActionLinkReserve-seat link rendered via Button12
classNamestringExtra classes for the outer <section>
ts
type Badge = {
  label: string;
};

type ActionLink = {
  label: string;
  href: string;
};

type ComingSoon26Labels = {
  daysLabel?: string;
  hoursLabel?: string;
  minutesLabel?: string;
  secondsLabel?: string;
};

Behavior notes

  • The countdown starts at zero and only ticks on the client: a useEffect parses targetDate, computes the remaining days, hours, minutes, and seconds, and refreshes every second via setInterval, clearing the timer on unmount.
  • The remaining time is floored at zero with Math.max(0, target - Date.now()), so a past targetDate settles on 00 across all four units rather than going negative; each figure is zero-padded with padStart(2, "0").
  • There are no event callbacks: the button renders as a real navigation via Button12 asChild wrapping a Next.js <Link href={button.href} />, so it always points at a URL.
  • The four units always render as a md:grid-cols-4 ruled row; each unit caption renders only when its label is set, and the eyebrow, wordmark, heading, and button each render only when their prop is present.
  • The whole card is a centered bg-muted surface, and the heading and wordmark are plain text with no inline markup parsing, so HTML passed in shows as escaped text.

More Coming Soon blocks

View all Coming Soon
PRO

comingsoon19

Pre-Launch Manifesto

A pre-launch manifesto section on a soft muted card with a monospace parenthetical eyebrow, a large statement heading, and a three-column ruled list of numbered building principles above a follow-along pill button.

PRO

comingsoon50

Launch Readiness Progress

A coming-soon section on a soft muted card with a monospace parenthetical eyebrow, a heading, a launch-readiness percentage that counts up with an animated progress bar, a build-status row, and a working email notify form.

PRO

comingsoon77

Full-Bleed Launch Countdown

A pre-launch section on a full-bleed photograph under a dark gradient, with a light display heading, four oversized countdown figures between hairline rules, and a working email capture card.

PRO

comingsoon34

Invite Code Access

An invite-only pre-launch card on a soft muted surface with a monospace parenthetical eyebrow, a heading, a working invite-code redemption form with a success state, and a fallback waitlist pill button.

PRO

comingsoon61

Community Launch Waitlist

A community coming-soon section on a soft muted card with a monospace parenthetical eyebrow, a heading, a working email waitlist form, a secondary outline community pill button, and an avatar row with a member count.

PRO

comingsoon28

Early Tester Quote

A quote-led pre-launch section on a soft muted card with a monospace parenthetical eyebrow, a large early-tester pull quote, an author row with avatar, and an invite pill button with a supporting note.