video-skin
Full responsive video controls with settings, feedback, gestures, and keyboard input
Use it for a full-featured on-demand video player.
Use the packaged preset
<script type="module">
import '@videojs/html/video/player';
import '@videojs/html/video/skin';
</script>
<video-player>
<video-skin>
<video src="video.mp4"></video>
</video-skin>
</video-player>Install editable source
Install this Skin and its exact dependencies with Shadcn, or copy the same generated files manually. The Player and media remain package imports.
Add the @videojs namespace for the htmltailwind catalog, then install the editable source.
{
"registries": {
"@videojs": "https://shadcn.videojs.org/r/html/{name}.json"
}
}pnpm dlx shadcn@latest add @videojs/videoInstalls editable Default Video Skin source under `@components/videojs/skins/video`. Requires `@videojs/html@10.0.0-beta.32`; import the matching Player and media registrations before using the installed light-DOM template.
Copy the exact files below and install these packages: @videojs/html@10.0.0-beta.32.
Add the @videojs namespace for the htmlcss catalog, then install the editable source.
{
"registries": {
"@videojs": "https://shadcn.videojs.org/r/html/css/{name}.json"
}
}pnpm dlx shadcn@latest add @videojs/videoInstalls editable Default Video Skin source under `@components/videojs/skins/video`. Requires `@videojs/html@10.0.0-beta.32`; import the matching Player and media registrations before using the installed light-DOM template.
Copy the exact files below and install these packages: @videojs/html@10.0.0-beta.32.
Customize the skin
Packaged skins support --media-accent-color, --media-accent-text-color,--media-border-radius, and --media-scale-unit. Add your own class name and style values to the skin root.
Place an image in the poster slot to replace the poster.
See Customize skins for the complete styling and ownership workflow.
Behavior and API
- The packaged export is
VideoSkinin React and<video-skin>in HTML. - The on-demand preset includes duration and seeking behavior.
- Default exposes the full primary and secondary control regions.
For player state and feature details, see Presets. For the UI building blocks, see UI components.