Video

Video embed component supporting multiple providers (YouTube, Vimeo, Dailymotion, Wistia, Facebook, Twitch, or direct URLs)

Required Props: id, videoId

Structure

All styling goes in props.className as a single Tailwind utility string. Non-class props (text, src, alt, etc.) stay on their own keys. root.animation for scroll effects.

Properties

PropertyTypeDescriptionExamples
providerstring
youtube | vimeo | dailymotion | wistia | facebook | twitch | url
Video provider platform
Default: "youtube"
youtube
videoId*requiredstring
Video ID from the provider (or full URL for 'facebook' and 'url' providers)
dQw4w9WgXcQ
titlestring
Video title for accessibility
-
canDeleteboolean
-
Default: true
-
canEditNameboolean
-
Default: true
-
customobject
-
-
classNamestring
Tailwind utility classes string. Mobile-first: unprefixed = base, md: = 768px+, sm: = 640px+, lg: = 1024px+. Includes layout, spacing, surface design, and typography.
flex flex-col gap-space-sm py-space-lg px-container-x md:flex-rowbg-primary text-primary-content rounded-box py-3.5 px-6 font-semibold
urlstring
-
-
urlTargetstring
-
-
rolestring
-
-
aria-labelstring
-
-
aria-hiddenstring
-
-
aria-describedbystring
-
-
aria-livestring
polite | assertive | off
-
-
rootobject
-
-

Examples

YouTube Video

{
  "provider": "youtube",
  "videoId": "dQw4w9WgXcQ",
  "title": "Demo YouTube video",
  "className": "aspect-video"
}

Vimeo Video

{
  "provider": "vimeo",
  "videoId": "123456789",
  "title": "Demo Vimeo video",
  "className": "aspect-video"
}