Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Video Player Hero Block for React

A reverse split hero for a video editor: a dark player window in a hairline frame beside the copy, a Shine Button and a second action, across a solid divider.

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

Show what your editor looks like before anyone signs up. On the start side, a player window sits in a hairline frame with + marks on its corners: a title bar with the clip's file name, the frame, paused on a tutorial's title card with a caption and the host's camera bubble, a timeline a third of the way through, the skip, play and skip buttons, the time and the volume. Across a solid divider, an outline badge, a two-line headline, a sentence, a Shine Button, an outline button and a quiet plan line. The copy comes first in the markup and the player is moved to the start with grid placement, so reading order stays natural. The hero follows your theme and only the player is dark, as editors' players are. It's built from Frame, Aspect Ratio, Avatar, Progress, Badge, Shine Button, Button and Guides, with Lucide icons, Tailwind CSS and a CSS entrance that stays still under reduced motion. Made for video editors, streaming platforms, screen recorders and course tools, where the player says at a glance what the product does.

FAQ

How do I show a real frame or clip in the player?

Replace the title card inside the player's AspectRatio with an img of a frame from your product, or a muted, looping <video> with className="size-full object-cover". The AspectRatio keeps the 16:10 box while it loads. Change CLIP for the file name, the time and the timeline's position, and POSTER for the title card's words. A looping video is motion that never stops, so give it a visible pause button, outside the player, and don't autoplay it under reduced motion.

Why can't the player's buttons be pressed or read?

The player is a picture of your product, not a working player: nothing in it plays. So its whole cell is hidden from assistive technology (aria-hidden) and the window is taken out of the tab order (inert), and its buttons are drawn as icons, not buttons. A screen reader goes from the headline to the calls to action without stopping on controls that do nothing, and a keyboard user never lands on one. The headline is the page's one h1.

How do I turn the mockup into a working player?

Remove aria-hidden from the cell and inert from the Frame, put your <video> in the AspectRatio and make the controls real buttons with names: a Button with size="icon-sm", variant="ghost" and an aria-label such as "Play", "Skip back 10 seconds" or "Mute". Drive Progress from the video's currentTime and duration, or use a Slider if the timeline should seek. For most products, the browser's own controls are the quicker, accessible choice.

Why is the player dark when the page is light?

The page follows your theme, but a video player is dark by nature, so only the Frame carries the dark class and an opaque bg-muted, so the theme's dark tokens apply inside it: bg-background, bg-muted, border and text-muted-foreground all resolve to their dark values, whatever the page's theme. Its border keeps it apart from a dark page. There are no fixed colours, and the play button and the timeline are the foreground tone, so the block's only primary colour is the Shine Button.

How does the layout adapt to a phone?

The player and the copy sit side by side from the lg breakpoint, and below it the copy comes first and the player under it, with a rule and + marks between them. Below sm the headline drops its forced line break and wraps, balanced. The player keeps its proportions at any width; the file name truncates if it's too long for the title bar.

When should I use a video player hero instead of a video modal?

Use the player when your product is the player, an editor, a streaming service or a recorder, and its interface is what you're selling. Use a video modal when you have a demo video to offer about any kind of product, played on request at full size.

  • Pro

    A compact split hero for a trip planner: the headline and a Shine Button beside a dark video player in a hairline frame, paused part of the way in over a poster of a day's itinerary.

  • Pro

    A reverse split hero for a deploy platform: a wide video whose poster is the product's own deploy screen over a ruled list of its chapters, beside the headline, a checklist and a Shine Button.

  • Pro

    Video Modal Hero

    Mobile and media

    A showcase hero with a centered headline over a wide 16:9 video poster drawn from the product's UI, in a hairline frame, whose play button opens the demo in a dialog.

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