Skip to content
Velkin LogoVelkin Logo
Velkin
VELKIN/UI

Modern UI components for product teams and their AI agents. Lit core, typed wrappers, live MCP.

sales@velkinui.com

Product

  • Docs
  • Components
  • Studio
  • Pricing

Resources

  • Quick start
  • Blog
  • Changelog
  • Roadmap
  • Status

Project

  • About
  • Contact
  • License
  • Privacy
  • Terms

© 2026 Velkin. MIT core · Pro licenses available.

VELKIN

Video

A video player component with custom overlay controls.

vu-video · @velkin/react/video

Copy page

Import

React
npm i @velkin/react

import { VuVideo } from "@velkin/react/video";

Examples

API

Props

PropTypeDefaultDescription
srcstring""Primary video URL.
posterstring""Poster image URL.
fitVuVideoFit"cover"Object-fit preset. Default: `"cover"`.
preloadVuVideoPreload"metadata"Native preload hint. Default: `"metadata"`.
autoplaybooleanfalseStarts playback when allowed. Default: `false`.
loopbooleanfalseRestarts when the clip ends. Default: `false`.
mutedbooleanfalseMutes audio output. Default: `false`.
playsinlinebooleantrueSets `playsinline` on mobile. Default: `true`.
controlsbooleantrueRenders the custom control bar. Default: `true`.
playLabelstring""Play accessible name (`playlabel` attr).
pauseLabelstring""Pause accessible name (`pauselabel` attr).
muteLabelstring""Mute accessible name (`mutelabel` attr).
unmuteLabelstring""Unmute accessible name (`unmutelabel` attr).
fullscreenLabelstring""Enter-fullscreen accessible name (`fullscreenlabel` attr).
exitFullscreenLabelstring""Exit-fullscreen accessible name (`exitfullscreenlabel` attr).
seekLabelstring""Seek slider accessible name (`seeklabel` attr).
volumeLabelstring""Volume slider accessible name (`volumelabel` attr).
labelstring""Player accessible name.

Events

EventDetailDescription
vu-playVuVideoPlaybackDetailWhen playback starts.
vu-pauseVuVideoPlaybackDetailWhen playback pauses.
vu-seekVuVideoSeekDetailWhen the user commits a seek.
vu-endedVuVideoPlaybackDetailWhen playback ends.

Slots

SlotDescription
—- Optional `<source>` or `<track>` elements for the inner `<video>`.

CSS parts

PartDescription
baseRoot layout shell.
videoNative `<video>` element.
controlsFull-screen overlay chrome.
top-barTop-right volume and fullscreen actions.
volume-shellVolume button and popover anchor.
volume-popoverVertical volume slider panel.
volume-railRotated slider layout wrapper.
volumeVertical volume range input.
bottom-barBottom scrubber row.
seekProgress seek slider.
playCenter play or pause button.
time-currentElapsed time readout.
time-remainingRemaining time readout.
muteVolume button.
fullscreenFullscreen toggle.

Methods

MethodDescription
play- Starts playback.
pause- Pauses playback.
togglePlay- Toggles play and pause.

Types

NameDefinition
VuVideoFit
"none" | "cover" | "contain" | "fill"
VuVideoPlaybackDetail
{ currentTime: number; }
VuVideoPreload
"auto" | "none" | "metadata"
VuVideoSeekDetail
{ currentTime: number; previousTime: number; }

Related

Data display

  • AvatarAn avatar component with image, initials, icon, or custom content.
  • Avatar GroupAn avatar group component that stacks overlapping avatars.
  • BadgeA badge component for counts, status dots, and overlay marks.
  • ChipA chip component for tags and filters with dismiss or toggle actions.
  • Data TableA data table component with sorting, filtering, and selection.
  • DividerA divider component for horizontal or vertical layout separation.

Guides

  • AppearanceShared visual props
  • EventsSelection and change events

Browse

  • Previous: TreeEarlier in the sidebar
  • Next: AlertLater in the sidebar
  • All componentsBrowse the full index