shadcn.io is not affiliated with official shadcn/ui
Split Panel Product Mockup CTA Block for Ark UI
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 Ark 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.
The call to action renders its a through asChild, so the button's styles land on the link.
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
- Split Panel Video Player Preview CTAProduct previews
- Split Panel Calendar Grid CTAPickers and toggles
- Split Panel Crosshair Visual CTAProduct previews
- Split Layout Overlapping Browser Frames HeroProduct windows
- Showcase File Explorer HeroCode and terminal
- Inset Notification Toast Preview CTAProduct previews