Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Centered Event Details CTA Block for React

A centred call to action that follows the page theme, for a live event: a pill, the title and the Shine Button, then three bands between solid rails: the details in cells, the speakers with their roles and a seats meter.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Fill a live session with a call to action that answers the questions people ask before they sign up, for React with Base UI. Between the page's solid side rails and under a top rule, it opens with a "Live webinar" pill, the title, a sentence with a bold lead and a "Save my seat" Shine Button, so the action is on the first screen even on a phone. Three bands then close the column, each with its own rule and plus marks on the rails: a row of three details (when it happens, what time it starts, how long it runs) in cells with shared hairlines, the three speakers with their roles, and a seats meter that says how many have registered and how many seats are left. The dates are wording, not a calendar: the session is on the first Thursday of every month, so the block never goes stale. It's built from Badge, Status, Avatar, Progress, Guides and Shine Button, with a CSS entrance and your theme's tokens for every colour. For webinars, workshops, office hours and any recurring event with limited seats.

FAQ

How do I change the event, its details and its speakers?

Edit EVENT, DETAILS and SPEAKERS at the top of the file. DETAILS is one entry per cell, with a Lucide icon, a label and a value; three fit a row, and below the sm breakpoint they stack with a rule between them. Each speaker has initials, a name and a role. To show photos, add an AvatarImage with an empty alt before the fallback, since the name is written beside it.

Where do the seats numbers come from?

EVENT.seats is the capacity and EVENT.registered the count so far; "seats left" is worked out from the two in SEATS_LEFT, and the meter is filled from the same numbers, so none of them can drift apart. Feed registered from your event system where the page is built. The meter is decoration, hidden from screen readers, because the sentence beside it says the same in words.

Why is there no calendar date?

A date typed into a block is wrong a month later. This one describes a recurring session ("First Thursday of every month"), so it stays true. For a one-off event, replace the first detail with the date as text, or compute it on the server from your event data so it's never a leftover.

How does a screen reader read this block?

The headline is an h2, the three details are a description list (each label then its value) and the speakers are a list named "Speakers". The button reads "Save my seat at the next webinar": the sr-only part says where it goes when the link is heard out of context. The status dot and the meter are hidden, and the registered and seats-left counts are real text.

Does the block follow my theme?

Yes. Nothing in the block forces a scheme: the bands are drawn with the theme's border colour, the text with its foreground tokens, and the meter's fill is foreground, so the Shine Button stays the one primary control. It's light on a light page and dark on a dark one.

How does it fit on a phone?

Below the sm breakpoint the three details and the speakers stack, each in its own ruled row, and the meter keeps its width. The button comes before the bands, so it's on the first screen. A long speaker role wraps beside its avatar rather than pushing it off screen, so the block reads at 320 pixels without scrolling sideways.

  • Pro

    Metadata Tagline CTA

    Prices and offers

    An event call to action as a band: the name and pitch, the struck standard price beside the early-bird price and a Shine Button, over a closing masthead band of three facts.

  • Pro

    Pill Dual Action CTA

    Prices and offers

    A band call to action: the saving of paying yearly beside one pill split into two linked halves (monthly in outline, yearly on the Shine Button), with a closing row of three figures worked out from the two prices.

  • Pro

    A centered call to action that follows the page theme, with Star and Fork buttons that each join a link to its count, beside a contributor avatar stack.

  • Pro

    Progress Urgency CTA

    Urgency and limits

    A centred scarcity statement: a headline over a framed seat map of 200 dots, one per founding seat, with the claimed ones solid and the next open ones pulsing, then the price with its list price struck and a Shine Button.

  • Pro

    A centred call to action drawn as a wide ticket with real notches and a perforated edge, framed by hairlines between the page rails: the Shine Button tears off the stub to reveal a copyable promo code.

  • Pro

    A showcase centered hero for a demo booking: a headline, then a scheduler in a hairline frame with a split divider between day and time, and one Shine Button to book the slot.