The page this skill built from examples/pellicle, working in your browser. Opens in a new tab. Also: Rinse.
12-second example rendered by this skill from examples/pellicle · 1280×720
What you get
- A self-contained index.html hero and an embed.html to paste into an existing site
- Your glow and highlight colors, film strength and thickness, fonts, logo, headline, buttons and a corner product line
- 14 documented effect settings: seed, loop length, bubble count, size, spread, film strength, thickness, swirl, glow color and strength, highlight, depth, grain, caption
- Glowing bubbles on dark grounds or soft pastel ones on light grounds, left, right or centered layouts, with the bubbles above the copy on phones
- An SVG still for no WebGL or reduced motion, so the hero is never blank
- Contrast and layout checks at 390, 768, 1024 and 1440 px
- A frame-perfect MP4 that loops seamlessly (1080p by default, portrait sizes too) and a poster
- Open-source licenses for every part it builds on
Good fit
- Skincare, beauty and cosmetics brands can float glossy, iridescent bubbles beside a product headline, with a small product line in the corner.
- Cleaning, laundry and bath brands can use soft pastel bubbles on a pale mint, blush or cream page instead of a dark one.
- Playful brands and kids’ toy makers get bubbles that pop gently in a bright rim and a ring of droplets, on a seamless loop.
Not for
- Showing a real product or packshot: the bubbles are drawn, not photographed
- Serious, sober brands: the look is playful and glossy by design
- Full landing pages below the hero (see the Landing Pages series)
About this skill
Iridescent soap bubbles floating beside your headline. One large bubble stays, wobbling a little as its film turns; smaller ones rise from below, drift in front of it and behind it, drain thin and gold at the top and pop gently, the film snapping back in a bright rim and throwing a ring of droplets. The colors are real thin-film interference, worked out from the film's thickness and the viewing angle, so they swirl through magenta, blue, green and gold the way soap does, with a reflected window, a pin highlight and out-of-focus bubbles behind. Your agent sets the film, glow and highlight colors, fonts, logo, headline and buttons, checks contrast at four widths and records a seamless 1080p loop.
Example request
Build a Soap Bubble hero for Pellicle, a skincare serum: deep ink background, blush pink accent, rich iridescent bubbles, headline 'Skin that catches the light.', and record a 12-second loop.
How it works
Your agent
- 1
Collect the brand
Every claim, price, date and spec in the copy must come from the person.
- 2
Write hero.json
Copy the closer example and replace everything:
examples/pellicle/hero.json(a skincare serum, rich iridescent bubbles on deep ink, copy on the left, a product line in the corner) orexamples/rinse/hero.json(a refillable dish soap, pastel bubbles on pale mint, copy on the right). - 3
Build
It lists every problem in
hero.jsonat once (missing fields, text over its limit, a setting out of range, colours that don't contrast) and writes nothing until they're fixed. - 4
Check
It loads the page at 390, 768, 1024 and 1440 px and must say
okat each: nothing wider than the screen or cut off, readable contrast for every line of text (the build has already checked the text against every colour the effect can put behind it), names on every link and button, one h1. - 5
Look at it
They save
out/still-1440x900.pngandout/still-390x844.png, the live hero at 4.5 seconds. - 6
Record the video
It steps the hero through 8 seconds at 30 fps at 1920×1080, drawing each frame at exactly its time, and writes
out/preview.mp4(H.264, for X, LinkedIn, Product Hunt or a README) andout/poster.png(the frame at 4.5 s). - 7
Put it live
As a page: upload
out/index.htmlandout/assets/to any static host (Cloudflare Pages, Netlify, Vercel, GitHub Pages, S3).
- 1
You get
- out/index.html
- out/embed.html
- out/still-1440x900.png
- out/still-390x844.png
- out/preview.mp4
- out/poster.png


What you need
- Node.js 18 or newer. Nothing to install.
- Chrome, Chromium or Edge, for the checks and the recording (the scripts find it; set
CHROME_PATHif they don't). - ffmpeg, for the video (
brew install ffmpeg,winget install ffmpeg,apt install ffmpeg; or setFFMPEG_PATH). - At runtime, nothing but WebGL: the shader is inlined in the page. Fonts load from jsDelivr (the pinned list) or Google Fonts; without the network the page uses system fonts. Without WebGL visitors see the still.
Last checked Oct 26, 2026: the package’s own build and render commands ran and passed.
If something goes wrong
build: fix hero.json firstEach line names the field and what to change; colour problems suggest a colour that works.
The bubbles look like marbles
Lower
film(0.6) orswirl.The bubbles vanish on a light page
Raise
film, or take a slightly deeper background orglow.
What’s in the download
- SKILL.md14.1 KB
- examples/
- examples/pellicle/1.95 KBPellicle, a skincare serum, dark · 2 files
- examples/rinse/1.91 KBRinse & Co., a refillable dish soap, light · 2 files
- scripts/
- scripts/effect/the bubbles themselves:
effect.mjs(their settings, checks, the corner line and the still picture),effect.js(the bubbles' paths and pops, and one WebGL1 fragment shader with the thin-film colours, reflections and droplets),effect.css(the corner line). - scripts/effect/effect.css469 B
- scripts/effect/effect.js13.6 KB
- scripts/effect/effect.mjs6.09 KB
- scripts/kit/the kit shared by every Motion Heroes skill: the build and checks (
build.mjs), the section's CSS (shell.css), the browser runtime (runtime.js: clock, pausing, pixel ratio, reduced motion, fallback), the recorder (record.mjs,cdp.mjs), the pinned fonts (fonts.json), the pinned three.js catalogue (three.json, unused by this effect) andKIT.md, which explains them. - scripts/kit/build.mjs34.5 KB
- scripts/kit/cdp.mjs4.90 KB
- scripts/kit/fonts.json5.42 KB
- scripts/kit/KIT.md16.0 KB
- scripts/kit/record.mjs8.11 KB
- scripts/kit/runtime.js15.1 KB
- scripts/kit/shell.css9.41 KB
- scripts/kit/three.json6.35 KB
- scripts/build.mjs263 Bwhat you run. They call the Motion Heroes kit.
- scripts/check.mjs9.48 KBLookbk's checks, screenshots, colour maths and HTML writer.
- scripts/chrome.mjs3.63 KB
- scripts/color.mjs1.40 KB
- scripts/inline.mjs1.67 KB
- scripts/markup.mjs6.15 KB
- scripts/record.mjs255 B
- scripts/screenshot.mjs1.79 KB
- NOTICE.md1.69 KBwhere the effect comes from, and the fonts it loads.
- TESTED.json755 B
26 files · 165 KB · installs to ~/.claude/skills/soap-bubble-hero for Claude Code and ~/.agents/skills/soap-bubble-hero for other agents
Credits and licenses: NOTICE.md plus any LICENSE files inside the ZIP.
Similar Skills
View allDetails
- Output
- Animated WebGL hero · page + embed + 1080p video
- Needs
- Node.js 18+, Chrome (or Chromium/Edge), and ffmpeg for the video
- Series
- Motion Heroes · 50 skills
- Updated
- Oct 26, 2026
- Checked
- Oct 26, 2026: its own commands ran and passed. That is a working check, not a security audit.
Written for
See all 31 agents that read skill folders.
Install guides
For your agent
Generates with
Installed it? Tell others how it went. Reviews come from people who installed this skill.
Write a reviewFAQ
Are the bubble colors physically accurate?
The film colors are worked out by thin-film interference from the film’s thickness and the viewing angle, summed over eight wavelengths, so the bands run magenta, blue, green and gold the way soap films do. The rising, drifting and popping are a stylized picture, though, not a scientific simulation.
What does the thickness setting change?
It sets the film’s thickness in nanometers, from 250 to 900 (default 480). Thin films show gold and magenta; thicker ones cycle through blue, green and pink bands. Around 300 to 500 gives the classic magenta, blue and gold, and film (0.3 to 1.2) sets how strongly the colors show.
Will it work on light pages, phones and reduced motion?
Yes. On a pale page the bubbles turn into soft pastel sheens; if they vanish, raise film or deepen the glow. On phones the bubbles come first, then the words. Reduced motion gets one still frame at 4.5 seconds, and without WebGL visitors see an SVG still.
Which agents is Soap Bubble Hero written for?
Any agent that reads SKILL.md folders, including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode.
Do I own what I make with it?
Yes. Everything your agent makes with this skill is yours, including for client and commercial work.
What if it doesn’t work for me?
Email support@lookbk.dev within 7 days of buying and we’ll fix it or refund you.
Credits and licensesWritten by Lookbk
Lookbk wrote this package: the Motion Heroes kit, the thin-film bubble shader, the still picture and the examples. No third-party code is included. Written by Lookbk, no third-party code.
Credits and licenses for the open-source software and fonts it uses are in NOTICE.md inside the download.