YouTube video
Playable YouTube embeds with lazy loading and no extra consumer setup.
`embed-card` now has a single home in the workspace: the documentation lives under `/docs`, and the interactive playground lives right here on the homepage.
Playable YouTube embeds with lazy loading and no extra consumer setup.
The demo no longer lives in a separate app, so the docs and the playground evolve together.
The homepage preview renders `embed-card` directly from the workspace package, so breakages show up early.
You can switch between YouTube, X, Reddit, Google Maps, and Vimeo without leaving the landing page.
Live playground
Preview
Playable YouTube embeds with lazy loading and no extra consumer setup.
Quick start
pnpm add embed-cardimport { EmbedCard } from "embed-card"
export function SocialEmbed() {
return <EmbedCard url="https://www.youtube.com/watch?v=dQw4w9WgXcQ" />
}import { EmbedCard } from "embed-card"
export function BrandedEmbed() {
return (
<EmbedCard
url="https://www.youtube.com/watch?v=dQw4w9WgXcQ"
theme={{
accentColor: "#e11d48",
radius: 28,
}}
/>
)
}Framework story
The same package exports a React component, a custom element registrar, and low-level helpers for manual rendering. That keeps the install surface small while still leaving room for Vue, Svelte, Astro, or plain HTML integrations.
import { registerEmbedCard } from "embed-card/web-component"
registerEmbedCard()
<embed-card url="https://www.youtube.com/watch?v=dQw4w9WgXcQ"></embed-card>