Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Split Layout Tab-Switch Browser Hero Block for React

A showcase hero for a project workspace: the headline beside its pitch and a Shine Button, then a browser window in a hairline frame whose tabs switch between three drawn views: Projects, Analytics and Settings.

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 showcase hero between solid rails, for React with Base UI. A split header sits on top: the announcement link and a large headline on one side, and past a divider the pitch, two calls to action (a ShineButton, the only primary control, and an outline Button, both links) and a trust line. Under it, a band between the rails holds a row of Tabs and a browser window in a hairline frame with + marks on its corners. Each tab opens a view drawn in your theme's greys: Projects (a sidebar and five client projects with their progress, status and deadline), Analytics (three figures over twelve weeks of cycle time) and Settings (roles beside integrations with their switches). Every view is the same height, so the window never jumps. The product is Cairn, a fictional project workspace for design studios. For SaaS products, developer tools, design platforms and any web app with a few distinct screens worth showing.

FAQ

How do I show real screenshots in the views?

Replace the drawing inside each TabsContent (ProjectsView, AnalyticsView, SettingsView) with an img that fills the panel (size-full object-cover object-top), with an alt that says what that screen shows, and remove the sr-only description and the inert and aria-hidden wrapper that belonged to the drawing. Every panel has the same height (PANEL), so the window doesn't jump when you switch tabs; give your screenshots one shape for the same result.

How do I add, remove or rename a view?

Each view is one tab and one panel: an entry in VIEWS (its id, label, Lucide icon and a one-line description that screen readers hear) and a TabsContent with the same value (an id on React Aria). Change defaultValue (defaultSelectedKey on React Aria) to open on another view. Three or four tabs fit side by side down to 320 px; past that, shorten the labels.

Can visitors use the tabs from the keyboard?

Yes. They're real tabs: Tab moves focus to the selected one, the arrow keys move between views and show each one as it's focused, and Home and End jump to the first and the last. The tab row comes before the window, in the reading order and on screen, so the tabs are announced before the view they control.

What does a screen reader hear?

The headline is the block's one h1, and the announcement and both calls to action are links named by their text. The tab list is named Product view, and each panel reads the view's description; the drawn screens and the window's title bar are hidden from assistive technology and out of the tab order.

How does the layout adapt to phones?

The header stacks below the lg breakpoint, the pitch following the headline, and the window sits under the tabs inside the band. The headline steps down from text-6xl to text-4xl, the calls to action wrap when they don't fit side by side, the three tabs share the width, and each view hides its sidebar or second column, so nothing scrolls sideways down to 320 px.

What moves, and can I turn it off?

The copy fades and rises in on load, and the tabs and window fade in just after. Each view slides a few pixels in from the reading direction's end when its tab opens, which is from the left in right-to-left layouts. All of it is CSS transitions from starting: styles, with no animation library; with reduced motion, nothing moves and the views simply swap.

  • Pro

    Tabbed Product Views Hero

    Interactive demos

    A centred showcase hero with a Shine Button and an outline action over a pill tab switch and one wide product window in a hairline frame that shows a chat, a terminal session or a docs page.

  • 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 split hero for a code assistant: a headline, a Shine Button and an outline action at the start, and at the end a framed card with underline tabs for features, integrations and pricing.

  • Pro

    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.

  • Pro

    A split hero for a feature-flag service: the headline, a Shine Button and three ticks beside a narrow flags dashboard in a hairline frame, with environment tabs, rollout meters and a working switch on every flag.

  • Pro

    Dashboard Preview Hero

    Product windows

    A showcase hero with a headline, a Shine Button, an outline button and a trust line above a wide browser window in a hairline frame, a greyscale sketch of an analytics dashboard that runs on below the fold.