BlockDex

Components

Registries

Free blocks

Method

BlockDex

Components

Registries

Free blocks

Method

Open API

BlockDex

Components

Registries

Free blocks

Method

Open API

Components/vanillasky/beforeAfter

Before After

vanillasky/beforeAfter
FreeBlock

Clear transformation or contrast between two states, especially symbolic or visual before/after: manual to automated, chaos to order, old way to new way.

See it running

Open the demo on vanillasky

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

Source

src/lib/scene-templates/infographic-before-after.tsxvanillasky.ai/r/beforeAfter.json
1/**
2 * infographic-before-after — emoji-driven before/after contrast.
3 *
4 * Layout: a centered "BEFORE" / "AFTER" pill label sits above the
5 * centered headline text; emojis distribute across the FULL frame
6 * around the central text zone (top band, sides, bottom band). Pill
7 * styling matches problemSolution — same shape, scale-pop entry, just
8 * BEFORE/AFTER wording with a red→green color shift.
9 *
10 * Two phases on a brand-color gradient:
11 * 1. Before phase: red BEFORE pill + problem headline + scattered
12 * problem emojis with chaos jitter.
13 * 2. Transition: problem emojis fall off-screen with gravity (confetti-
14 * style drop) while the pill + headline crossfade.
15 * 3. After phase: green AFTER pill + solution headline + solution
16 * emojis pop in with a happy bounce in the same slots.
17 *
18 * Pick this for symbolic before/after content where the emojis tell the
19 * story; `problemSolution` for full-statement text contrast.
20 *
21 * Block structure (docs/blocks.md):
22 * background — brand gradient (gradientBackground)
23 * hero — BeforeAfterSplit primitive (both phases: pills, headlines,
24 * emoji scatter/fall/pop — text integral, no caption slot)
25 */
26
27import React from "react";
28import type { VariableField } from "../video-config";
29import { parseList } from "../parse-list";
30import type { SceneTemplateProps } from "./types";
31import { resolveTokens } from "../theme";
32import { gradientBackground } from "../backgrounds";
33import { BeforeAfterSplit } from "../primitives/infographic/BeforeAfterSplit";
34
35export const infographicBeforeAfterSchema: Record<string, VariableField> = {
36 problemLabel: {
37 type: "string",
38 label: "Before label",
39 default: "BEFORE",
40 description: "Uppercase pill label shown above the before headline.",
41 },
42 problemHeadline: {
43 type: "string",
44 label: "Before headline",
45 default: "Your calendar today.",
46 required: true,
47 description: "Headline shown during the before phase. 2-5 words. Sits centered, beneath the BEFORE pill.",
48 },
49 solutionLabel: {
50 type: "string",
51 label: "After label",
52 default: "AFTER",
53 description: "Uppercase pill label shown above the after headline.",
54 },
55 solutionHeadline: {
56 type: "string",
57 label: "After headline",
58 default: "Calmly organized.",
59 required: true,
60 description: "Headline shown during the after phase. 2-5 words. Sits centered, beneath the AFTER pill.",
61 },
62 problemEmojis: {
63 type: "string",
64// … 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/infographic-before-after.tsx
  • src/lib/primitives/infographic/BeforeAfterSplit.tsx
  • src/lib/emoji/emoji-text.tsx
  • src/lib/emoji/index.tsx
  • src/lib/scene-templates/template-text.tsx
  • src/lib/scene-templates/types.ts
  • src/lib/parse-list.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
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
ConfetticonfettivanillaskyBlocksFree1 dep · 6 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