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.
Installation
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.
Where do the two buttons link to?
Both are links to #: point them at your editor and your features page.
On Base UI, each button renders its link with render={<a href="/signup" />} and nativeButton={false}.
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.
Related
- Pro
Split Layout Travel Video Hero
Mobile and mediaA 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
Split Layout Video Player Hero
Mobile and mediaA 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 mediaA 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
Split Layout Image Hero
Product windowsA 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
Split Layout Browser Frame Hero
Product windowsA 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
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.