BlockDex

Components

Registries

Free blocks

Method

BlockDex

Components

Registries

Free blocks

Method

Open API

BlockDex

Components

Registries

Free blocks

Method

Open API

Components/vanillasky/ctaMedia
This component no longer exists. It was in vanillasky’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-12 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.

CTA Media

vanillasky/ctaMedia
RemovedBlock

Cinematic media-backed closer with headline and URL. Default closer for launch videos when a final visual beat helps the call to action.

See it running

Open the demo on vanillasky

vanillasky.ai/docs/components/ctaMedia
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/ctaMedia.json

Source

src/lib/scene-templates/cta-media.tsxvanillasky.ai/r/ctaMedia.json
1/** ctaMedia — cinematic backdrop, shared headline, and reusable brand close. */
2
3import React from "react";
4import type { VariableField } from "../video-config";
5import type { SceneTemplateProps } from "./types";
6import { resolveTokens } from "../theme";
7import type { TextArchetype } from "../typography";
8import { TemplateText } from "./template-text";
9import { CtaMediaClose } from "../primitives/typography/CtaMediaClose";
10import {
11 SceneBackground,
12 mediaBackgroundDefaults,
13 mediaBackgroundSchemaFields,
14} from "./scene-background";
15
16export const ctaMediaSchema: Record<string, VariableField> = {
17 headline: {
18 type: "string",
19 label: "Headline",
20 default: "Make every moment count",
21 required: true,
22 description: "The big closing message. Two to seven words reads best.",
23 },
24 url: {
25 type: "string",
26 label: "URL",
27 default: "www.yoursite.com",
28 description: "URL shown at the bottom. Leave empty to use CTA fallback text.",
29 },
30 cta: {
31 type: "string",
32 label: "CTA fallback",
33 default: "",
34 description: "Optional text shown only when URL is empty.",
35 },
36 ...mediaBackgroundSchemaFields,
37 textColor: {
38 type: "color",
39 label: "Text color",
40 default: "",
41 description: "Override headline and URL color (leave empty for auto).",
42 },
43};
44
45export const ctaMediaDefaults: Record<string, unknown> = {
46 headline: "Make every moment count",
47 url: "www.yoursite.com",
48 cta: "",
49 ...mediaBackgroundDefaults,
50 textColor: "",
51};
52
53export const CtaMediaTemplate: React.FC<SceneTemplateProps> = ({
54 variables,
55 style,
56 progress,
57 width,
58 height,
59 sceneDuration,
60 beatIntensity,
61 textArchetype,
62 safeZone,
63 isPlaying = true,
64 backgroundEffect,
65}) => {
66 const { accent, content, font } = resolveTokens(style);
67 const textColor = String(variables.textColor || "") || content;
68 const headline = String(variables.headline || "");
69
70 return (
71 <div style={{ width, height, backgroundColor: "#000", position: "relative", overflow: "hidden", fontFamily: font }}>
72 {/* [slot: background] */}
73 <SceneBackground
74 style={style}
75 progress={progress}
76 sceneDuration={sceneDuration}
77 width={width}
78 height={height}
79 mediaUrl={String(variables.mediaUrl || "")}
80 mediaType={String(variables.mediaType || "auto")}
81 mediaPoster={String(variables.mediaPoster || "")}
82 backgroundEffect={backgroundEffect}
83 seed={headline}
84 isPlaying={isPlaying}
85// … truncated

What it pulls in

npm packages

  • react

Other registry items

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

Files it writes

  • src/lib/scene-templates/cta-media.tsx
  • src/lib/scene-templates/scene-background.tsx
  • src/lib/primitives/typography/CtaMediaClose.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
In the index
at or before 2026-08-08
Last confirmed
5 days ago

Go to the source

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

Built by

Kynth Studios

the studio behind StoreReady, ToolDrift and BreachProbe

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

© 2026 BlockDex. A Kynth Studios product.

BlockDex

BlockDex

Built by

Kynth Studios

the studio behind StoreReady, ToolDrift and BreachProbe

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

© 2026 BlockDex. A Kynth Studios product.

BlockDex

BlockDex

Built by

Kynth Studios

the studio behind StoreReady, ToolDrift and BreachProbe

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

© 2026 BlockDex. A Kynth Studios product.

BlockDex