Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Split Panel Waveform Visual CTA Block for React

A reverse split call to action for a podcast: a decorative waveform on a tinted panel flush to the rails, beside a Shine Button for the latest episode, four ways to subscribe and a feed address to copy.

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

A split call to action that turns "subscribe" into a short list, for React with Base UI, between solid rails. At the start, a tinted panel runs flush to the rails and draws a waveform from a row of bars in a foreground tone, with the latest episode named in plain text underneath. Past a solid divider that meets the top rule sit a quiet badge, a headline, a short pitch, the Shine Button (the only primary control) for the latest episode, four ways to follow the show (a podcast app, a music app, a feed reader and email) as ruled link rows with a title, a one-line description and an arrow, and a read-only feed address with a copy button for apps that ask for it. The copy comes first in the DOM and on phones, so the button lands on the first screen, and the waveform panel follows. It's built from Shine Button, Badge, Clipboard, Copy Button and Guides, with CSS transitions for the entrance and your theme's tokens for every colour. For podcasts, video series, newsletters and any show with an RSS feed and more than one place to follow it.

FAQ

How do I change the ways to subscribe?

Edit CHANNELS at the top of the file: each entry has a title, a one-line description and an href. The links are # placeholders. Point each at the deep link or page for that app, and add or remove rows without touching the layout. The same FEED_URL constant feeds the address field and the copy button.

Is the waveform real audio?

No, it's decoration. The bars are heights listed in BARS, drawn with CSS, and they grow from the baseline once on load. There is no play button, because nothing here plays: the latest episode is plain text under the waveform, and the Shine Button is the link to it. The waveform is hidden from screen readers, and the bars stay still with reduced motion.

How does the feed address work?

It's a read-only field named "Feed address", so assistive technology reads the address and a visitor can select it. The button beside it copies the same string, swaps its icon for a check for three seconds and a polite status says "Copied", or "Couldn't copy" if the clipboard refuses. The address is always laid out left to right, on right-to-left pages too.

Why does the latest episode show no date?

A date typed into a block goes stale. The panel shows the episode's number, title and length instead, and the pitch says "every Tuesday", which stays true. If your site knows the date, add it from your data when you render the block.

What happens on a small screen?

The panels stack, with the copy first and the waveform panel after it under a ruled line; on large screens the panel moves to the start. The bars share the panel's width and the link rows and the feed field take the full width, so nothing scrolls sideways at 320 pixels.

  • Pro

    A split call to action for a web app starter: the pitch and a Shine Button at the start, a dark terminal pane filling the end column that waits at a prompt until you press Enter.

  • Pro

    A 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

    Copy Link Share CTA

    Forms and capture

    A band call to action for a referral programme that follows your theme: the pitch beside a read-only invite field with a Shine Button that copies it, real email and system share links, and a closing band counting invites.

  • Pro

    A card-in-card call to action for a data SDK, split by a hairline: the headline, one sentence and a Shine Button at the start, and a three-line quickstart snippet with a copy button on every line and a Copy all button at the end.

  • Pro

    A compact split hero for an audio product: copy and a Shine Button beside a narrow music player on a tinted panel behind a divider, with a waveform and a queue.

  • Pro

    A centered newsletter hero with an email signup that confirms in place, over the four latest issues as links in one hairline grid between the rails.