The page this skill built from examples/madder, working in your browser. Opens in a new tab. Also: Halcyne.
14-second example rendered by this skill from examples/madder · 1280×720
Example settingswhat each example above was built from
examples/madderhero.json
- Brand
- Madder & Weld
- Headline
- Three plants, every colour.
- Badge
- Plant-dyed in small vats
- Colors
- background #eef0ec · ink #1b1d1f · accent #27408f
- Mode
- light
- Fonts
- Fraunces and Instrument Sans
examples/halcynehero.json
- Brand
- Halcyne
- Headline
- A scent that opens slowly.
- Badge
- Eau de parfum · 50 ml
- Colors
- background #f6ede9 · ink #231a1d · accent #b81f5c
- Mode
- light
- Fonts
- Cormorant Garamond and Manrope
What you get
- A self-contained index.html hero and an embed.html to paste into an existing site
- Up to 5 drops in up to 3 dye colors that roll up, break into curls and filaments, and mix where they meet
- 19 documented settings: loop length, each drop, the dyes, density, curl, turbulence, bloom, tendrils, fall, meet, water tint, backlight, caustics, motes, grain and the pointer swirl
- Left, right or centered layouts, with the drops falling above the copy on phones
- A seamless loop of 8 to 20 seconds, and an SVG still for reduced motion or no WebGL
- Contrast and layout checks at 390, 768, 1024 and 1440 px
- A frame-perfect MP4 (1080p by default, portrait sizes too) and a poster, the same on any machine
- Open-source licenses for every part it builds on
Good fit
- Natural-dye studios, yarn shops and textile makers can open their site with their own colours blooming and mixing in water.
- Fragrance, cosmetics and tea brands can let a slow plume of colour stand for a scent or a flavour opening up.
- Ink, paint and stationery brands launching on social can record a seamless loop of 8 to 20 seconds that is the same on any machine.
Not for
- Dark brands: the build only accepts a light background, since the water is lit from behind
- Full landing pages below the hero (see the Landing Pages series)
- A fluid simulation you can paint into: each frame is worked out from the time
About this skill
A hero section where drops of dye fall into clear water lit from behind, like ink photographed in a tank. Each drop punches down into a ring that rolls at its rim, trailing a hair-thin thread, then breaks up into curls inside curls and fine filaments as it drifts into the others. The dye absorbs the light like real dye, so where two colours meet they mix: indigo through yellow reads green. The pointer stirs the water with a soft swirl. Your agent puts in your colors, fonts, logo, headline and buttons, checks contrast at four widths and records a seamless 1080p video of it.
Example request
Build a Dye Drop hero for Madder & Weld, our natural-dye studio: pale backlit water, drops of indigo, weld yellow and madder red that bloom and mix behind the headline 'Three plants, every colour.', and record a 14-second loop for Instagram.
How it works
Your agent
- 1
Collect the brand
Every claim, price and number in the copy must come from the person.
- 2
Write hero.json
Copy the closer example and replace everything:
examples/madder/hero.json(a natural-dye studio, copy on the left, indigo, weld yellow and madder red, three drops) orexamples/halcyne/hero.json(a fragrance house, copy on the right, a blush backlight, rose, violet and amber, one large drop and two small ones). - 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, a dark background, a dye too pale to show) 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 the deepest dye that can drift 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 water at 9 seconds. - 6
Record the video
It steps the hero through 14 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 9 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 shaders are 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 SVG still.
Last checked Nov 7, 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.
theme.background must be lightThe water is lit from behind and the dye darkens it, the way ink looks against a light box. Pick a pale, slightly tinted white.
effect.dyeB is too pale to showA dye has to be clearly darker than the water. Use the suggested colour, or a deeper shade of the same hue.
What’s in the download
- SKILL.md14.9 KB
- examples/
- examples/halcyne/2.18 KBa fragrance house · 2 files
- examples/madder/2.15 KBa natural-dye studio · 2 files
- scripts/
- scripts/effect/the water itself:
effect.mjs(its settings, checks and the SVG still) andeffect.js(two WebGL1 shader passes: the dye, traced back through the flow of each ring to where the drop went in, and the lit water it sits in). - scripts/effect/effect.js23.5 KB
- scripts/effect/effect.mjs9.21 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) 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.48 KB
- scripts/kit/three.json6.35 KB
- scripts/build.mjs263 Bwhat you run. They call the Motion Heroes kit.
- scripts/check.mjs9.73 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.md2.54 KBwhere the effect comes from, and the fonts it loads.
- TESTED.json836 B
25 files · 180 KB · installs to ~/.claude/skills/dye-drop-hero for Claude Code and ~/.agents/skills/dye-drop-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 · 80 skills
- Updated
- Nov 10, 2026
- Checked
- Nov 7, 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
Is this a real fluid simulation?
No. Each frame is worked out from the time alone: every pixel is traced back through the flow of its ring to where the drop went in. That is why the loop is seamless and every recording matches, but you cannot paint into it.
How many drops and colors can I use?
Up to 5 drops and 3 dyes. You choose where and when each drop falls in the loop, which dye it carries and how big it grows. Each dye must reach 1.8:1 on the water, or the build stops and suggests a deeper one.
Can I use a dark background?
No. The water is lit from behind and the dye darkens it, the way ink looks on a light box, so the build only accepts a light background. The text color must reach 7:1 on it.
Which agents is Dye Drop 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 from scratch: the dye and water shaders, the SVG still, the Motion Heroes kit and the examples. A few hash lines are adapted from Dave Hoskins' "Hash without Sine" (MIT). 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.