shadcn.io is not affiliated with official shadcn/ui
Split Phone Frame Hero Block for React
A split hero for a mobile app: copy, store links and social proof beside a phone frame that slides out of a hairline frame, cut off at its foot.
Installation
Overview
Pair a bold pitch with a portrait phone frame in this split hero, for React with Base UI, between solid rails. At the start, an availability pill, a headline, a sentence, a ShineButton to the App Store and an outline Button to Google Play, both links, and an avatar stack with a line of social proof. Behind a divider, with a + mark where it meets the top rule, a phone drawn in CSS rises out of a hairline frame with + marks on its corners and is cut off at the frame's foot, fading out: a rounded bezel, a notch and the app's Today screen: a status bar, three habit rings, a task list with two tasks ticked off and a tab bar with an add button. The screen is in greyscale, the add button in foreground tones, so the Shine Button is the only primary control. It settles in with a CSS transition that stays still under reduced motion. It's built from Announcement, Status, Shine Button, Button, Guides and Avatar with Lucide icons and Tailwind CSS. Made for mobile app landing pages, iOS and Android launches, and any page where a device should anchor the visual side of a split hero.
FAQ
How do I link the buttons to my store pages?
Replace each href="#" with your app's App Store and Google Play URLs. They're ordinary links that open in the same tab, which suits store links: a phone hands them to its store app anyway. Each one shows the store's name, and a visually hidden prefix gives it its full name for screen readers: Download on the App Store, Get it on Google Play.
On Base UI, each button renders its link with render={<a href="…" />} and nativeButton={false}.
How do I put my app's screenshot in the phone?
Replace the screen's contents, from the status bar to the tab bar, with an img (or your framework's image component) with className="size-full object-cover object-top"; the screen already clips to its rounded corners. The screen is a 1:2 portrait, so a screenshot at a phone's own resolution, such as 1170 by 2532, fills it with a little cropped at the bottom. If the screenshot matters to the visitor, take aria-hidden and inert off the panel and give the image an alt.
How do I show more or less of the phone?
The frame's height decides: it's h-80 on phones, sm:h-96 and lg:h-[29rem], and the phone, 17rem wide and twice as tall, is cut off where the frame ends, with a short fade (the mask-image on the inner box). Make the frame taller to show the tab bar, or shorter to show just the top of the screen. The corner marks are drawn on an outer box, so the mask never clips them.
How do I change the social proof?
Edit the two lines beside the avatar stack: the user count, in a bdi so "500K+" keeps its order in right-to-left layouts, and the rating. The stack itself reads USERS, a list of initials; to show faces, add an AvatarImage with an empty alt in each Avatar. The stack is hidden from screen readers, since the sentence beside it says what it means.
How do screen readers read the hero?
The headline is the block's one h1, and the pill and both store buttons are links with full names; their icons are hidden. The proof is one sentence, "Loved by 500K+ people, 4.9 average rating". The phone is decoration: its panel is aria-hidden and inert, so screen readers skip it and nothing in it takes focus.
How does the hero adapt to phones and tablets?
The two halves stack below the lg breakpoint, with the copy first and the phone under it, so the Shine Button is on the first screen. The phone is w-[min(17rem,72vw)] with a 1:2 aspect ratio, in a frame only 20rem tall on a phone, so it shows the top of the screen and the hero stays short. The store buttons wrap when the row runs out of room, down to 320px.
Related
- Pro
Split Layout Phone Frame Mockup Hero
Mobile and mediaA reverse split hero for a mobile app: two phones rise from the foot of a tinted panel on the start side, with a Shine Button to the App Store, an outline link to Google Play and a rider count at the end.
- Pro
Phone Trio App Download Hero
Mobile and mediaA centered showcase hero for a mobile app: a headline, a Shine Button to the App Store with Google Play beside it and a proof line over a hairline band of three phones that run off the bottom.
- Pro
Phone Frame Mockup Hero
Mobile and mediaA centred showcase hero for a mobile app on solid rails: store links with a Shine Button, a phone showing the app between two cards, fading out over a ruled band of three stats.
- 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
Avatar Stack Side Rail Hero
Logos and social proofA compact hero for a community: a headline, a Shine Button and a second action beside a side rail of proof: a stack of member avatars over a line of social proof, then three stats in ruled rows.
- Pro
Centered Browser Frame Hero
Product windowsA centered showcase hero over a full-width browser window showing the product, a logs explorer with a request histogram and a log, held by a hairline frame and faded below the fold.