Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Split Layout Overlapping Browser Frames Hero Block for React

A 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.

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-layout hero with two overlapping browser windows, for React with Base UI. The section sits on the page's drafting lines: two rails at the edges of the page column that continue into the blocks above and below, a rule along its top edge that runs to the page's edges, and a plus mark on each crossing. A divider splits the column, with a plus mark where it meets the top rule. On the start side, an announcement pill links to Frameloft 4.2, a design tool, then a headline, a subtitle, a primary ShineButton and an outline Button, both links, and three short ticks. On the other, a tinted panel runs flush to the end rail and holds two staggered browser windows, each a Frame with its title bar around a sketch of the product drawn in greys with the theme's tokens, cropped by the panel's edges: at the back a projects list with owners and progress bars, in front an editor with its tools, a dotted canvas, a selected card with its handles, a teammate's named cursor on a chart, and a layers list when the window has room. The windows rise in one after the other with CSS transitions, and nothing moves under reduced motion. It's built from Guides, Announcement, Status, Shine Button, Button, Frame, Aspect Ratio, Avatar and Skeleton with Lucide icons and Tailwind CSS. Made for products with several distinct views, such as design tools, project management apps and dashboards, where two screens say more about the product's breadth than one.

FAQ

How do I put real screenshots in the browser windows?

Each window's screen is drawn by ProjectsView or EditorView, picked by the window's view in WINDOWS. To show screenshots instead, replace that line inside the AspectRatio with an img (or your framework's image component) with className="size-full object-cover object-top", and keep the title bar as it is. Capture both screenshots at the same 16:10 ratio, and show two different views, such as a dashboard and a report, so the second window adds something. If the screenshots carry information a visitor needs, take aria-hidden and inert off the panel and give each image an alt.

How do I move the windows or add a third one?

Each window is an entry in WINDOWS: its place (logical position classes such as -end-[6%] top-[8%], plus the delay of its entrance), its shadow and the view it shows. A negative offset lets the window run off the panel's edge, where the panel crops it. The later entry is drawn on top, so the front window comes last and casts the deeper shadow. For a third window, add an entry between the two, centred (start-[14%] top-[30%]), and shrink all three to about 60% wide so their title bars still show.

How are the lines and plus marks drawn?

They are the Guides component, an aria-hidden layer that draws the lines of the box it sits in. The page column (max-w-6xl, the same in every block) has Guides bleed marks="top" rules="top": two side rails that run the section's full height, so they join the rails of the blocks above and below, and one rule along the top edge that runs to the page's edges, with a plus on each crossing. The block below draws the next rule, so a stack of blocks never doubles a line. The divider is the panel's lg:border-s with Guides marks="start" rules="none" sides={false} for the plus where it meets the top rule. The panel is flush with the rail and has no frame of its own: the windows are cropped by its edges. Every line is solid and is the theme's border colour, so it follows any preset.

How do screen readers read the hero?

The headline is the block's one h1. The pill and both calls to action are links named by their text, and the ticks are a list whose check icons are hidden. The panel with the two windows is decoration: it's aria-hidden and inert, so screen readers skip it and nothing in it can be focused. That's right while it shows a sketch; with real screenshots that matter, describe them with alt text instead.

How does the split layout adapt to smaller screens?

The two columns stack below the lg breakpoint, with the copy first and the panel under it behind a ruled line. The panel is 20rem tall on phones and 24rem from sm, so the windows keep their overlap at every width, and the editor drops its layers list when its window is narrow; side by side, it takes the height of the copy column. The headline wraps, balanced, the calls to action wrap onto a second line when the row runs out of room, down to 320px, and the Shine Button is on the first screen of a phone.

How do the windows come in, and what happens with reduced motion?

The copy fades up in steps on load, then the back window rises in, then the front one 250 ms later. Each is a CSS transition from @starting-style, so it runs once when the page renders, with no animation library and no script. With reduced motion turned on, everything is in place from the start.

  • Pro

    A showcase hero with start-aligned copy, a band of three checklist cells and a browser window in a hairline frame showing a deployments list.

  • Pro

    A 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

    A 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.

  • Pro

    A reverse split hero for an AI code assistant: an editor drawn from UI runs edge to edge to the start rail, with a file tree, code, a ghost suggestion and an assistant panel; a divider and the copy sit at the end.

  • Pro

    A centered hero between solid rails with four small product cards (uptime, a resolved incident, who is on call, latency) drifting in around the copy, a Shine Button, an outline button and a ruled proof band.

  • Pro

    A showcase hero with the headline on one side and the pitch on the other, over a bento of six labelled product views in cells that share hairlines.