shadcn.io is not affiliated with official shadcn/ui
Split Panel Product Mockup CTA Block for React
A split call to action for a browser extension: the pitch and a Shine Button at the start, its popup with working bookmarks in a hairline frame at the end, and a closing band of three ruled benefits.
Installation
Overview
A split call to action for installing a browser extension, for React with Base UI, between solid rails. At the start sit a quiet badge, a headline, a short paragraph and the Shine Button, the block's only primary control, reading "Add to your browser" with a note beside it. Past a solid divider, the extension's popup sits in a hairline frame with + marks on its corners: a Frame with a browser window's title bar and a "Saved components" title with a live count, and four component cards, each an Item with an icon, a name, a one-line description and a bookmark IconButton. Pressing a bookmark fills it in the foreground colour, pops it with a small burst, and moves the count. A closing band of three ruled cells states the benefits. It's built from Shine Button, Badge, Frame, Icon Button, Item and Guides with Lucide icons and Tailwind CSS. On phones the copy and the button come first, then the popup, then the benefits. Made for browser extension, design tool and developer tool pages that want to show the product working rather than a screenshot.
FAQ
How do I change the cards and what starts saved?
Edit ITEMS at the top of the file: each card has a name, a kind (its one-line description) and a Lucide icon. START lists the names that begin saved, and the count is worked out from the saved list, so it can never disagree with the bookmarks. To show more or fewer cards, add or remove entries; the popup grows with them.
What does the bookmark do, and how does it work with a keyboard?
Each bookmark is a real toggle button named after its card, such as "Bookmark Pricing table", with its saved state read out as pressed. It works with a click, a tap, Enter and Space. Pressing it fills the icon in the foreground colour and plays a short ring and a spray of dots around it. The burst is CSS and only plays when a bookmark turns on, not off.
How is the saved count announced?
The badge is a polite live region, so a screen reader reads "3 saved" after each press without moving focus. The number sits in a bdi so it keeps its place in right-to-left layouts.
How do I connect it to a real extension?
The popup is a mock: its state lives in the block and nothing is stored. To make it real, keep the saved list in your extension's storage, pass each bookmark's active from it (the block already does) and write the change in onActiveChange. Point the Shine Button's href at your store listing, and leave brand names out of the copy unless you hold the right to use them.
On Base UI, the call to action renders its link with render={<a href="…" />} and nativeButton={false}.
How does a screen reader read the mockup?
The window is a figure named Extension popup. Its title bar, with the dots, address bar and puzzle icon, is decoration: hidden from screen readers and out of the tab order. The cards are a list, and each one reads its name, its description and then its bookmark button.
How does it fit a phone?
The columns stack below the lg breakpoint, with the popup under the copy and the three benefits as a ruled list at the foot. Card names and descriptions shorten with an ellipsis, so the bookmark stays at the end of its row down to 320px, and the call to action and the note beside it wrap onto two lines when they run out of room.
Related
- Pro
Split Panel Video Player Preview CTA
Product previewsA split call to action for a deploy platform: the pitch and a Shine Button at the start, a wide demo player in a hairline frame at the end: a poster drawn from the product over three chapter tabs.
- Pro
Split Panel Calendar Grid CTA
Pickers and togglesA split call to action beside a week-by-time availability grid on a framed card: pick a free slot and the Shine Button names it.
- Pro
Split Panel Crosshair Visual CTA
Product previewsA split call to action beside a reticle field that fills its half of the block edge to edge: crosshair lines follow the pointer or the arrow keys, with a live coordinate readout.
- Pro
Split Layout Overlapping Browser Frames Hero
Product windowsA split hero for a design tool: a headline, a Shine Button, a second action and three short feature ticks beside two overlapping browser windows that run off the edge of the column: a projects list behind an editor.
- Pro
Showcase File Explorer Hero
Code and terminalA showcase hero for a code editor: a centred headline, a Shine Button and three ticks above a wide editor window in a hairline frame, with a working file tree beside a sketched editor pane.
- Pro
Inset Notification Toast Preview CTA
Product previewsA card-in-card call to action for a team inbox with a working notification tray: the pitch and a Shine Button beside a tray where a button fires toasts, newest on top, each with Undo and close.