Marquee Launch Hero

Coming soonComing soonComing soonComing soonComing soonComing soonComing soonComing soonComing soonComing soonComing soonComing soon
(On its way)

Auralis

An independent studio for brands that plan to stick around. Leave your address and we'll bring you in first.

No spam. Just one note when the doors open.

About this block

Marquee Launch HeroPRO

A coming-soon hero with an oversized looping background marquee behind a centered monospace parenthetical eyebrow, a bold wordmark, a tagline, and a working email notify form with a success state.

ComingSoon47: Marquee Launch Hero

An Auralis coming-soon hero with an oversized looping background marquee behind a centered monospace parenthetical eyebrow, a bold wordmark, a tagline, and a working email notify form with a success state.

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/comingsoon47?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

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

Quick start

The installed file exports comingsoon47Demo alongside the block: the exact props behind the preview above. Spread it to get a working marquee hero in one line.

tsx
import { ComingSoon47, comingsoon47Demo } from "@/components/beste/block/comingsoon47";

export default function Page() {
  return <ComingSoon47 {...comingsoon47Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { ComingSoon47 } from "@/components/beste/block/comingsoon47";

export default function Page() {
  return (
    <ComingSoon47
      badge={{ label: "On its way" }}
      labels={{
        placeholder: "you@studio.com",
        success: "You're on the list. Watch your inbox on launch day.",
        note: "No spam. Just one note when the doors open.",
      }}
      marqueeText="Coming soon"
      wordmark="Auralis"
      tagline="An independent studio for brands that plan to stick around."
    />
  );
}

Props

PropTypeDefaultDescription
badgeBadgeParenthetical eyebrow rendered via Badge7
labelsComingSoon47Labels{}Form placeholder, success message, and note line
marqueeTextstringPhrase repeated across the looping background marquee
wordmarkstringBold centered wordmark
taglinestringSupporting line under the wordmark
classNamestringExtra classes for the outer <section>
ts
type Badge = {
  label: string;
};

type ComingSoon47Labels = {
  placeholder?: string;
  success?: string;
  note?: string;
};

Behavior notes

  • When marqueeText is set it is expanded into six copies, then that run is doubled, so a CSS translateX keyframe can loop seamlessly; the animation runs 40s linear infinite and pauses on section hover.
  • The marquee layer is pointer-events-none, sits at -z-10 behind the content at a faint text-foreground/[0.06], so it is purely decorative and never intercepts clicks.
  • The email form owns its own state; handleSubmit calls preventDefault and only flips to the success pill when the trimmed email is non-empty, so there is no external callback to wire.
  • The labels.note line renders under the form only while it has not been submitted, and disappears once the success pill takes its place.
  • The eyebrow, wordmark, and tagline each render only when their prop is present, and every string is plain text with no inline markup parsing, so any HTML passed in shows as escaped text.

Wiring the form up

The form ships with local state and a success message but no backend, so submissions are not sent anywhere until you connect one. Point handleSubmit at your own route handler or email platform, or wire in a form library. For a walkthrough of the options, see React Hook Form, TanStack Form, and Formisch.

More Coming Soon blocks

View all Coming Soon
PRO

comingsoon18

Launch Season Reveal

A full-bleed image pre-launch hero with a dark overlay, a monospace parenthetical eyebrow, a small kicker, an oversized launch-date headline, a supporting line, and a light outline pill notify button.

PRO

comingsoon76

Coming Soon Client Marquee

A client wall with the clients withheld. Instead of logos, an oversized ghost-type marquee repeats a coming soon label behind edge fades, under a centered eyebrow, heading and note, with scroll direction and speed as props.

PRO

comingsoon49

Framed Editorial Launch

A two-column coming-soon section with a vertical monospace edge label, an oversized wordmark, a tagline and a working email notify form, beside a framed portrait image tile.

PRO

comingsoon63

Product Pre-Order Teaser

A product launch coming-soon section with a full-height product image beside a monospace parenthetical eyebrow, a product name, a tagline, a ship date, a working notify email form, and a spec grid.

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

comingsoon60

Portfolio Under Construction

A personal coming-soon page with a monospace parenthetical eyebrow, an oversized name, a role and tagline, an email contact pill button, a row of social links, and an availability status line.