The page this skill built from examples/zeffra, working in your browser. Opens in a new tab. Also: Tinmouth.
12-second example rendered by this skill from examples/zeffra · 1280×720
Example settingswhat each example above was built from
examples/zeffrahero.json
- Brand
- Zeffra
- Headline
- Feel every field, in real time.
- Badge
- Magnetic field sensing for robots
- Colors
- background #0a1220 · ink #eef3f6 · accent #5ef2c2
- Mode
- dark
- Fonts
- Space Grotesk and Inter
examples/tinmouthhero.json
- Brand
- Tinmouth Type
- Headline
- Letters with a steady hand.
- Badge
- New release · Tinmouth Sans
- Colors
- background #f3efe7 · ink #1b1a17 · accent #d2421c
- Mode
- light
- Fonts
- Fraunces and Instrument Sans
What you get
- A self-contained index.html hero and an embed.html to paste into an existing site
- Thousands of dots that part around the cursor, light up and spring back with rings
- Your short word or mark set in finer dots that gathers at the start of each loop
- A virtual cursor on a closed path for idle visitors and the video, so the loop is exact
- An SVG still for reduced motion
- Contrast and layout checks at four widths, plus a frame-exact 1080p MP4 and poster
- Open-source licenses for every part it builds on
Good fit
- Hardware, sensor and developer brands that want a hero which visibly reacts the moment a visitor moves the mouse.
- Type foundries and studios that can set a two to six character mark in fine dots and let it gather each loop.
- Launch pages that need a calm 12 second 1080p loop for social posts as well as a live interactive hero.
Not for
- Long brand names (past seven characters the word stops reading in dots)
- Photo or video backgrounds
- Logos with fine detail that must be exact
- Scroll-driven stories
About this skill
A hero filled with thousands of small dots that behave like iron filings near a magnet. Dots near the cursor are pushed aside, grow and light up in the accent colour, then spring back past home and settle, so every pass leaves soft rings behind it. A slow travelling wave breathes through the grid even when nobody touches it, and the brand's short word or mark can be set in finer dots that gather from a scatter at the start of each loop. Without a pointer, and in the video, a virtual cursor glides on a closed path, so the motion loops exactly. Plain Canvas 2D with no libraries, on dark or light pages, with the field dimmed under the copy. It ships as a page, a paste-in embed and a frame-exact 1080p loop.
Example request
Make our homepage hero a field of dots that ripple away from the cursor and spell our name in mint on navy.
How it works
Your agent
- 1
Collect the brand
Every claim, price, date and number in the copy must come from the person.
- 2
Write hero.json
Copy the closer example and replace everything:
examples/zeffra/hero.json(a sensor maker, dark navy, mint accent, the wordzeffra, copy on the left) orexamples/tinmouth/hero.json(a type foundry, warm paper, vermilion accent, the markAain Fraunces, 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, an accent too close to the resting dots to stand out) 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 resting dots and the lit ones), 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 3 seconds, with the virtual cursor pushing through the field. - 6
Record the video
It steps the hero through 12 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.2 s;--poster 7picks another). - 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 a 2D canvas: the effect is inlined in the page and loads no libraries. Fonts load from jsDelivr (the pinned list) or Google Fonts; without the network the page uses system fonts, and the word is set in the system font too.
Last checked Nov 1, 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 cursor's field is hard to see
The accent is too close to
dotColoror the background. Take a brighter accent on dark pages (or a deeper one on light pages), raisegrow, or makedotColorquieter.The word is hard to read
Shorten it, use a bolder display weight, raise
wordSize, or lowerpushso the cursor disturbs it less. On a phone it is small; two to six characters work best.
What’s in the download
- SKILL.md16.9 KB
- examples/
- examples/tinmouth/2.02 KBTinmouth Type, a type foundry, light · 2 files
- examples/zeffra/2.21 KBZeffra, a magnetic sensor maker, dark · 2 files
- scripts/
- scripts/effect/the field itself:
effect.mjs(its settings, checks, the corner caption and the still picture),effect.js(the grid, the spring response to the cursor's path, the ripples, the wave, the word and its gather, the virtual cursor, all on a 2D canvas),effect.css(the caption). - scripts/effect/effect.css501 B
- scripts/effect/effect.js22.5 KB
- scripts/effect/effect.mjs9.42 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.90 KBcredits, and the fonts it loads.
- TESTED.json625 B
26 files · 180 KB · installs to ~/.claude/skills/dot-field-hero for Claude Code and ~/.agents/skills/dot-field-hero for other agents
Credits and licenses: NOTICE.md plus any LICENSE files inside the ZIP.
Similar Skills
View allDetails
- Output
- Canvas 2D dot field · page + embed · 1080p loop
- Needs
- Node.js 18+, Chrome (or Chromium/Edge), and ffmpeg for the video
- Series
- Motion Heroes · 71 skills
- Updated
- Nov 1, 2026
- Checked
- Nov 1, 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
What happens on phones or before the visitor moves the mouse?
A virtual cursor glides through the stage on a smooth closed path, with a small ring marking it, so the field always has something pushing through it. When a real pointer moves over the hero it takes over, and hands back a few seconds after it stops or leaves.
Will the video loop without a jump?
Yes, if you record cycle divided by motion.speed seconds, which is 12 by default. The cursor's path, the wave and the word's gather all repeat on that period, and each frame depends only on its time. Only the copy's intro plays once at the start.
How heavy is it to run?
It is plain Canvas 2D with no libraries. The default spacing of 18 gives about 4,000 dots on a 1440×900 screen, and only the dots near the cursor's last 1.44 seconds of path are moved each frame. It pauses off-screen and lowers its pixel ratio on slow machines.
Which agents is Dot Field 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 on a plain 2D canvas; it uses no third-party libraries, only pinned Fontsource fonts under the SIL Open Font License 1.1. 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.