BlockDex

Components

Registries

Free blocks

Method

BlockDex

Components

Registries

Free blocks

Method

Open API

BlockDex

Components

Registries

Free blocks

Method

Open API

Components/vanillasky/media

Media

vanillasky/media
FreeBlock

Full-bleed photo, video, or gradient with open text. Use for hooks, atmospheric body beats, uploaded scenic media, or a concrete product-context sentence over footage.

See it running

Open the demo on vanillasky

vanillasky.ai/docs/components/media
Open
This registry sends X-Frame-Options, so its page cannot be embedded here. The link is the same page the frame would have shown.

Install it

npx shadcn@latest add https://vanillasky.ai/r/media.json

Source

src/lib/scene-templates/bg-media.tsxvanillasky.ai/r/media.json
1/**
2 * bg-media template — atmospheric scene backed by a photo, video, or
3 * brand-color gradient. Title sits centered over the backdrop.
4 *
5 * The "media template" identity is just a positioning convention: title
6 * is centered, full-frame, and there's no other UI competing for the
7 * stage. The backdrop logic itself lives in SceneBackground, which any
8 * template can compose to opt into media support.
9 *
10 * mediaType modes:
11 * - "auto" (default) — detect photo/video from URL extension (.mp4/.webm/.mov = video)
12 * - "photo" — force CSS background-image
13 * - "video" — force <video> element with playback sync
14 * - "gradient" — deliberate atmospheric brand-color scene; mediaUrl ignored
15 */
16import type { VariableField } from "../video-config";
17import type { SceneTemplateProps } from "./types";
18import { resolveTokens } from "../theme";
19import { TemplateText } from "./template-text";
20import type { TextArchetype } from "../typography";
21import {
22 SceneBackground,
23 mediaBackgroundDefaults,
24 mediaBackgroundSchemaFields,
25} from "./scene-background";
26import { ConfettiLayer } from "./confetti-layer";
27
28// ─── Schema & Defaults ─────────────────────────────────────────
29
30export const bgMediaSchema: Record<string, VariableField> = {
31 texts: {
32 type: "string",
33 label: "Text",
34 default: "Make an impact.",
35 required: true,
36 description: "Title text shown on the scene",
37 },
38 ...mediaBackgroundSchemaFields,
39 textColor: {
40 type: "color",
41 label: "Text color",
42 default: "",
43 description: "Override text color for this scene (leave empty for auto)",
44 },
45 confetti: {
46 type: "boolean",
47 label: "Confetti",
48 default: false,
49 description: "Layer falling confetti particles over the backdrop. Set true when the copy is celebratory (launch, milestone, win, anniversary, achievement). Works on top of any mediaType — photo, video, or gradient.",
50 },
51};
52
53export const bgMediaDefaults: Record<string, unknown> = {
54 texts: "Make an impact.",
55 ...mediaBackgroundDefaults,
56 textColor: "",
57 confetti: false,
58};
59
60// ─── Component ──────────────────────────────────────────────────
61
62export const BgMediaTemplate: React.FC<SceneTemplateProps> = ({
63 variables,
64 style,
65 progress,
66 beatIntensity,
67 width,
68 height,
69// … truncated

What it pulls in

npm packages

  • react

Other registry items

  • @vanillasky/backgrounds
  • @vanillasky/theme
  • @vanillasky/typography
  • @vanillasky/video-config

Files it writes

  • src/lib/scene-templates/bg-media.tsx
  • src/lib/scene-templates/confetti-layer.tsx
  • src/lib/scene-templates/scene-background.tsx
  • src/lib/scene-templates/template-text.tsx
  • src/lib/emoji/index.tsx
  • src/lib/emoji/emoji-text.tsx
  • src/lib/scene-templates/types.ts

Facts

Registry
vanillasky
Type
registry:block
Access
Free
Files written
7
Licence
MIT
First indexed
2026-08-08
Last confirmed
2 days ago

Go to the source

Docs on vanillasky vanillasky.ai VanillaSkyAi/skills on GitHub Raw registry item This item as JSON

More from vanillasky

All 33 items
Same registry, same kind — the ones you would have found next
ComponentRegistryKindAccessInstallsCommand
Bar ChartbarChartvanillaskyBlocksFree1 dep · 8 files
Before AfterbeforeAftervanillaskyBlocksFree1 dep · 7 files
Big NumberbigNumbervanillaskyBlocksFree1 dep · 8 files
Brand MessagebrandMessagevanillaskyBlocksFree1 dep · 6 files
Card ListcardListvanillaskyBlocksFree1 dep · 8 files
Chat MessengerchatMessengervanillaskyBlocksFree1 dep · 6 files
Chat WhatsappchatWhatsappvanillaskyBlocksFree1 dep · 6 files
Code EditorcodeEditorvanillaskyBlocksFree1 dep · 7 files
BlockDex

Built by

Kynth Studios

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studios

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studios

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex