shadcn.io is not affiliated with official shadcn/ui
Split Panel Team Picker CTA Block for React
A split CTA where visitors pick the engineer they want to talk to from four choice cards with initials, role and availability, a Shine Button that names their choice, and a closing band of assurances.
Installation
Overview
A split call to action for booking a consultation, for React with Base UI, here for Fathom, a fictional engineering studio. The copy side carries a quiet outline badge, a headline, a sentence and three outcomes. Behind a split divider, the other side is a tinted panel with a radio group of four choice cards: each shows an avatar with initials, a name, a role and when the engineer is free, with a status dot. Nothing is selected at first; choosing a card turns the disabled "Book a session" Shine Button into a link that says "Book with Maya", and a note under it says what happens next. A closing band of three assurances finishes the block under a rule that runs from rail to rail. It's built from Radio Group, Field, Avatar, Status, Badge, Guides and Shine Button, with Lucide icons, Tailwind CSS and a CSS entrance that stays still under reduced motion. Made for services, agencies and platforms that sell time with a named expert.
FAQ
How do I change the people and their availability?
The TEAM array at the top of the file holds each engineer's id, first name, full name, initials, role, availability text and status tone (success, warning or info). Availability is plain text ("Free today"), so feed it from your calendar tool when the page is built, or when it loads; the block doesn't format dates. To show photos, put an AvatarImage before the AvatarFallback: the initials stay as the fallback while it loads.
Where does the book button go?
Before a choice the Shine Button is disabled and reads "Book a session", with the note under it asking to choose someone. Once a card is chosen it becomes a link to #<id> labelled "Book with <first name>": point each engineer's href at their booking page or at one page that reads the id. Because the choice only changes the link, nothing is sent from this block.
How do the choice cards work for keyboard and screen reader users?
The cards are one radio group named by the heading "Who would you like to talk to?" and described by the note under the button. Tab enters the group, the arrow keys move and select, and each radio is named by its whole card: name, availability and role. The avatars are hidden from assistive technology so the initials aren't read, and the status dot is decorative because the availability is written next to it. The chosen card is marked by a filled radio and a stronger border, in the foreground colour, so the Shine Button stays the one accent on the block.
Why is nothing selected at first?
Preselecting a person would book someone the visitor never chose. With no default, the radio group shows its possible states honestly and the button asks for a choice. If you want one preselected, pass its id as the initial choice.
How does it fit on a phone?
Below the large breakpoint the panels stack, copy first, and the choice cards sit directly under the headline so the button lands on the first screen. The supporting sentence and the three outcomes are shown from the sm breakpoint up, and the assurances in the closing band stay at every size, as three short columns. Role names wrap instead of truncating so nothing is cut at 320 pixels.
Related
- Pro
Split Panel Phone QR Code CTA
Product previewsA split CTA for a habit app between solid rails: copy and a Shine Button that emails the link beside a phone, in a hairline frame, whose screen is a scannable QR code.
- Pro
Split Panel Gated Document CTA
Forms and captureA split CTA that gates a PDF: an email form and Shine Button beside a stack of paper pages in a hairline frame, the cover blurred and locked, with a closing band of chapters. Submitting unlocks the cover and offers a download with progress.
- Pro
Split Panel Address Bar CTA
Product previewsA reverse split CTA built around an editable address bar in a browser frame: type a name, see whether it is available and watch the page mirror it before you claim it with a Shine Button.
- Pro
Split Avatar Grid Hero
Logos and social proofA compact split team hero: a headline, a Shine Button, a second action and a line of team facts beside a two-by-two grid of large avatars with names and roles in cells that share hairlines.
- Pro
Split Layout Testimonial Card Hero
TestimonialsA split hero for month-end close software: the pitch, a Shine Button and an outline button beside a customer's five-star testimonial in a card in a card, with the two results it names.
- Pro
Centered Founder Avatars Hero
Logos and social proofA centered hero led by its founders: a headline, a Shine Button and an outline button, then the three founders as separate hairline cells with avatar, role and background, and a line of backers.