Impeccable
bestofjs/bestofjs
A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…
Build premium scroll-driven landing pages for service, product, food, and drink brands.
$ npx skills add nateherkai/scroll-craft --skill scroll-craft -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nateherkai/scroll-craft scroll-craft --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/nateherkai/scroll-craft.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/nateherk-design/skills/scroll-craft .claude/skills/scroll-craft && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "scroll-craft" agent skill from https://github.com/nateherkai/scroll-craft/tree/main/plugins/nateherk-design/skills/scroll-craft into .claude/skills/scroll-craft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scroll-craft", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nateherkai/scroll-craft/tree/main/plugins/nateherk-design/skills/scroll-craftType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nateherkai/scroll-craft --skill scroll-craft -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nateherkai/scroll-craft scroll-craft --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nateherkai/scroll-craft.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/nateherk-design/skills/scroll-craft .agents/skills/scroll-craft && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "scroll-craft" agent skill from https://github.com/nateherkai/scroll-craft/tree/main/plugins/nateherk-design/skills/scroll-craft into .agents/skills/scroll-craft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scroll-craft", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nateherkai/scroll-craft --skill scroll-craft -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nateherkai/scroll-craft scroll-craft --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nateherkai/scroll-craft.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/nateherk-design/skills/scroll-craft .cursor/skills/scroll-craft && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "scroll-craft" agent skill from https://github.com/nateherkai/scroll-craft/tree/main/plugins/nateherk-design/skills/scroll-craft into .cursor/skills/scroll-craft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scroll-craft", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nateherkai/scroll-craft.git --path plugins/nateherk-design/skills/scroll-craft--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nateherkai/scroll-craft --skill scroll-craft -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nateherkai/scroll-craft scroll-craft --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nateherkai/scroll-craft.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/nateherk-design/skills/scroll-craft .gemini/skills/scroll-craft && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "scroll-craft" agent skill from https://github.com/nateherkai/scroll-craft/tree/main/plugins/nateherk-design/skills/scroll-craft into .gemini/skills/scroll-craft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scroll-craft", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nateherkai/scroll-craft scroll-craftInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nateherkai/scroll-craft --skill scroll-craft -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nateherkai/scroll-craft.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/nateherk-design/skills/scroll-craft .github/skills/scroll-craft && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "scroll-craft" agent skill from https://github.com/nateherkai/scroll-craft/tree/main/plugins/nateherk-design/skills/scroll-craft into .github/skills/scroll-craft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scroll-craft", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nateherkai/scroll-craft --skill scroll-craft -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nateherkai/scroll-craft scroll-craft --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nateherkai/scroll-craft.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/nateherk-design/skills/scroll-craft .opencode/skills/scroll-craft && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "scroll-craft" agent skill from https://github.com/nateherkai/scroll-craft/tree/main/plugins/nateherk-design/skills/scroll-craft into .opencode/skills/scroll-craft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scroll-craft", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
scroll-craftBuild premium scroll-driven landing pages for service, product, food, and drink brands.
Scroll Craft is an agent skill from nateherkai/scroll-craft. Build premium scroll-driven landing pages for service, product, food, and drink brands. Plan the visitor journey, page grammar, emotional peak, and bespoke signature move. Create dimensional heroes with independent visual planes, restrained motion, and separate mobile composition. Use supplied photos and footage or generate photoreal assets through kie.ai, write semantic HTML, and verify desktop, mobile, and reduced-motion scroll states visually. Use for "scrollcraft", "scroll craft", "layered hero", "premium…
Its SKILL.md is about 6.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 27 other files, including scripts and reference files (for example `CHANGELOG.md`, `engine/scrollcraft.js` and `references/approved-collection.md`).
It sits in Frontend & Design, covering Landing pages and Web animation and motion. The repository describes itself as: An agent skill for building premium, immersive, scroll-driven websites. Works with Codex, Claude Code, and other coding agents. Also available as a Claude Code plugin. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 75d81f7. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadWriteEditGlobGrepAskUserQuestionFrom allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (JavaScript and Shell, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
nodebashnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
KIE_AI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Scroll Craft loads about 6.2k tokens when it runs, and up to ~50k if it reads all its reference files. Until then it costs about 217 tokens; SKILL.md has 3,498 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, AskUserQuestionAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from nateherkai/scroll-craft at commit 75d81f7, republished under its MIT licence (© nateherkai). 3,498 words, ~6,247 tokens.
.claude/skills/scroll-craft/SKILL.md (or your agent's skills folder). This skill also uses 24 other files; get the full folder from GitHub.Scroll is the only input every visitor already knows how to use. This skill treats it as a timeline: the wheel is a scrubber, the page is a film with real text on top, and each section behaves differently enough that the visitor keeps going to find out what the next one does.
What you produce: an interview brief, a page grammar, a customer-journey map, a feeling curve with one engineered peak, a scroll score, one signature move, generated assets, one real HTML page on a token-driven design floor, and a strip of screenshots proving it holds up at every scroll position.
It is not "generate a flythrough and drop text on it." That approach produces
one device applied to a whole page, and every site built that way is
recognisable at a glance: same claymation diorama, same centred copy, same
01 / 06 counter, same "scroll to explore" nudge. Five sections that behave
identically are one section shown five times.
Four rules follow from that, and they are the spine of this skill:
Dimensional layering is a baseline requirement for a premium marketing hero. Plan independently moving background, subject, foreground, and atmospheric planes before requesting assets. A beautiful single background with text fades does not satisfy this preference. Depth must come from visible separation, occlusion, and controlled differences in movement, while the headline stays readable and the scene tells one clear story.
Read references/hero-depth.md before planning the hero or generating its assets. It covers clean plates, genuine alpha cutouts, shared contact anchors, typography between planes, restrained scroll choreography, mobile art direction, and visual acceptance, with the approved Sonder example. Use the composition that fits the chosen grammar; do not repeat Sonder's scene or impose pinning on a grammar that forbids it. Honor explicit static or simpler directions, and keep depth in the static composition when motion is reduced.
Read references/approved-collection.md before planning a premium marketing site. It distills the approved ten-site rebuild: real brand research, layer contracts, meaningful pointer/scroll depth, appropriate photographic or 3D rendering, distinct navigation and endings, useful interactions, mobile art direction, and evidence from the final package. These are execution principles and worked examples, not a reusable page skeleton.
Establish the brief before generating anything. Reuse answers and assets
already provided. When the user explicitly delegates creative direction (for
example, "use your judgment" or "I want to get out of your way"), write a
Self-authored under explicit creative delegation brief and proceed. Cover the
eight topics below, distinguish evidence from assumptions, and do not invent
user quotations or force another interview/approval checkpoint.
Otherwise, interview for the missing decisions. Ask actual questions, record the answers, and avoid inferring an entire brand from its name.
The skill is a range instrument, not a house style. The human brings intent and whatever assets they own; the interview is where that turns into the right kind of page: one unbroken world, distinct scenes, printed chapters, a live surface. The skill can do any of them. The interview decides which.
Keep it short. Eight questions, asked in one pass:
Write the answers into <workspace>/builds/<name>/BRIEF.md before any act planning, in
their words, not paraphrased into marketing prose. Everything downstream reads
from that file.
BRIEF.md must contain, at minimum:
references/feel.md is the spec for all four.
If the human is genuinely unreachable and the run is fully autonomous, write
BRIEF.md yourself: answer all eight questions in the brand's voice, mark the file
Self-authored, not interviewed at the top, and say so in the final report. A
self-authored brief without delegation is a fallback. Explicit delegation above
is a normal supported workflow and does not require the human to be unreachable.
Environment, not a stage of the work. Do it once the interview is answered and before Step 1.
Run the preflight rather than checking by hand. It knows the failure modes that otherwise surface later as misleading errors, chiefly a stripped ffmpeg that reports a missing filter as a syntax error in your command:
node <skill>/scripts/doctor.mjsIt reports node, a full ffmpeg build, playwright and Chrome, the API key, and the resolved workspace. Required failures exit non-zero. Say plainly which items are missing rather than working around them silently.
Builds and the fingerprint registry live in one directory, and it is resolved, never assumed:
node <skill>/scripts/workspace.mjs --ensure # prints it, creates it, seeds the registryResolution order, first hit wins:
SCROLLCRAFT_HOME.scrollcraft.json walking up from the cwd, { "workspace": "..." }<project root>/scrollcraft, where the project root is the nearest ancestor
holding a .gitSo a build folder is <workspace>/builds/<name>/ and the registry is
<workspace>/FINGERPRINTS.md. The registry starts empty: the gate exists to
stop you repeating yourself, so your first build has nothing to clear.
If you already keep builds somewhere else, drop a .scrollcraft.json at your
project root pointing at it and nothing moves.
KIE_AI_API_KEY, only if you are generating assets. A build from the
user's own photos and footage needs no key and no spend, and that is a
first-class route, not a fallback. Confirm balance with
node <skill>/scripts/kie.mjs probe. A still costs cents and a 5s clip costs
more; a six-act page with two clips is a small spend, not a large one.Copy engine/scrollcraft.js and engine/scrollcraft.css into the build folder.
Never edit the engine per-project; it is the mechanism. Theme it with tokens and
write your own markup.
The subject is the user's to state. Ask it open, in plain prose, never as a fabricated multiple-choice list of industries: a made-up menu biases them and reads as you deciding their business for them.
Step 0 already covered vibe, sequence, energy and range. Do not ask any of it again. Ask only what you cannot sensibly default:
Then write the journey before anything else: four to seven beats, each one a shift in what the visitor knows or feels.
1 Recognition they see their own morning
2 Tension the cost of it, named plainly
3 Turn the thing that changes
4 Substance why it holds up
5 Range what they can choose
6 Commitment the one actionBeats are the spine. Sections serve beats; a section that serves no beat is cut, however nice the shot is. Resolve the journey before generating assets. Show it to the user when their decisions are needed; under explicit creative delegation, record the chosen journey and proceed within the authorized scope.
Three things in order, and the first two come before any act planning. Full detail in references/uniqueness.md.
Pick a grammar. Start with the eight defined grammars and their constraints. A new grammar is allowed when its navigation, sequence, ending, and explicit bans describe a different structure; a new label alone earns no credit. Filmic one-shot is the one the first four builds all used, so choosing it again means saying in the report why the other seven did not fit the interview. Nav, hero and close all follow from the grammar; they are not decided separately.
Invent the signature move. One bespoke interaction that lives on this site alone, coded in the page, not a parameter change to a kit device. Question 5 of the interview is the seed. The engine stays untouched.
Run the fingerprint gate. Read your registry at
<workspace>/FINGERPRINTS.md (see The workspace in Bootstrap; run
node <skill>/scripts/workspace.mjs to print the path). The planned build must differ
from every existing row on at least 4 of 6 dimensions: grammar, nav
treatment, hero device, act-sequence shape, close pattern, signature move. Four
against each row individually. If it fails, change the plan, not the log.
Write the feeling curve before the score table. One line per act: the emotion, then what causes it. Curve first, acts second, because a device chosen before the feeling is a device looking for a reason. Two adjacent acts with the same feeling means one is filler, and it is cheaper to cut it here than after the assets exist. Name the peak in the same pass and give it the largest span on the page. Full method in references/feel.md.
Then assign each beat a device. Do it deliberately and write it down as a table:
| Beat | Device | Why this one |
|---|---|---|
| Recognition | scrub | The camera moving under the reader's own hand is the strongest possible open |
| Tension | pin + kinetic | Copy assembles line by line while the frame holds still |
| Turn | reveal | A wipe is a change of state, which is what this beat is |
| Substance | scrub (macro) | Texture at a scale the eye cannot get otherwise |
| Range | pan | Lateral travel reads as "options", vertical reads as "argument" |
| Commitment | pin + pointer | The page stops moving and starts responding |
That table is a filmic score. It is the right shape for one grammar and the wrong shape for the other seven, so read your grammar's leans-on and bans list before filling in a row.
Checks before you build:
pin forbids it here too,
however well it would have worked.scrub acts. Video is the heaviest thing on the page, and the
third one stops being a surprise.Full pipeline, prompt scaffolds and model notes: references/assets.md.
Short version:
node <skill>/scripts/kie.mjs still "<style preamble>\n\n<scene>" out/01-hero.png --ar 16:9 [--ref brand-can.png]
node <skill>/scripts/kie.mjs shot "<camera move>" out/01-hero.png out/01.mp4 --dur 5
bash <skill>/scripts/encode.sh out/01.mp4 assets/01.mp4
bash <skill>/scripts/encode.sh out/01.mp4 assets/01-m.mp4 mobileFour things that decide whether this looks premium or generated:
encode.sh sets a dense GOP because
seeking walks from the previous keyframe. A normal web encode plays perfectly
and scrubs like mud.parallax in
references/devices.md.Write real HTML. Real <h1>, real <p>, real links, real reading order. The
engine reads data-sc-* attributes off your markup and drives it; it never
generates DOM. A runtime that builds the page from a config object is exactly
why every site built on one looks the same.
Start from references/template.html. The device patterns are in
references/devices.md; the spacing, type, depth and
colour rules are in references/taste.md. Read taste.md
before writing markup, not after, and build without announcing the checklist.
Theme by overriding tokens, six values and two fonts:
:root {
--sc-canvas: #0A0806; --sc-surface: #16110E;
--sc-ink: #F5EBDD; --sc-ink-soft: #A2968A;
--sc-accent: #FF5A3D; --sc-accent-ink: #15110F;
--sc-font-display: "Archivo", system-ui, sans-serif;
--sc-font-text: "Geist", system-ui, sans-serif;
}Apply the final-source and deployment checks in approved-collection.md §7. Use safe headless automation with native pointer lock/capture disabled in every context. Inspect actual pixels, phone compositions, and intermediate states; test useful controls, downloads, and form outcomes in the final package.
Not optional, and not "it should work." A scroll page has no single state: every position is a different frame, and the failures live between the two you happened to look at. Full procedure: references/verify.md.
cd <build project> && npm i playwright-core # once
node <skill>/scripts/serve.mjs --root . --port 4500 &
node <skill>/scripts/shoot.mjs --url http://localhost:4500 --out lab/shots
node <skill>/scripts/shoot.mjs --url http://localhost:4500 --out lab/mobile --width 390 --height 844
node <skill>/scripts/shoot.mjs --url http://localhost:4500 --out lab/reduced --reduced-motionThe harness walks each act at six positions, waits for the scrub video to actually settle, and reports dead scroll, cues that never reach full opacity, and contrast measured on the composited page at the brightest frame under each line. It writes a contact sheet.
Then do the part the harness cannot: read sheet.png. It proves a clip
advances; it cannot tell you the composition is good, the motion is smooth, or
the page means anything. Also tab through for focus order.
Then run the feel check (references/feel.md §6). Scroll the page cold, write one word per act for what you felt, and only then open BRIEF.md and diff it against the intended curve. Where they disagree the page is wrong, not the brief. Confirm on the sheet that the peak is the largest visual change and holds the most scroll room, and that the last screen resolves instead of fading to nothing.
And say what a green run does not cover: a real phone. Headless Chrome
cannot reproduce an iPhone's video decoder, autoplay policy, Low Power Mode,
or touch scrolling; a build once shipped four green rounds while the hero clip
sat frozen on the actual device. Mobile is a first-class target throughout,
not a pass at the end: portrait phone clips, touch-tuned lerp, grown tap
targets are all authored (see assets.md and verify.md). When any mobile defect
is reported, deploy references/device-diag.html beside the site on the
first round and let the device answer, rather than theorising from a
machine that cannot reproduce the failure. The full iOS clip-lifecycle notes
live in verify.md, "The phone is a different machine". To open the page on a
phone over Wi-Fi, start the server with --lan (by default it binds to this
machine only), and stop it when you are done: --lan makes everything under
--root readable by anyone on that network.
Fix what you found and shoot it again. Report what you actually verified and what you did not.
Ship-blockers, not preferences. Each one is a thing that makes a page read as machine-made.
| Never | Instead |
|---|---|
| Clay diorama / low-poly / claymation as the default world | Photographic. See worlds.md |
| A "scroll" cue, arrow, or animated mouse icon | Nothing. They are looking at the hero; they know |
01 / 06 section counters | Delete them. Sequence is not information here |
| An eyebrow above every section heading | At most one per three sections. The heading carries itself |
| Em dash anywhere visible | Period, comma, colon, or parentheses |
| Centred copy in every act | Vary the anchor: lead, trail, centre, split |
| The same device twice in a row | Score the journey properly in Step 2 |
| Generating before the brief and creative authority are clear | Run Step 0. Record actual answers or explicitly delegated authored decisions in BRIEF.md |
| A page with no engineered peak, or with three competing ones | One peak. It gets the asset budget, the silence before it, and the most scroll room. See feel.md §2 |
| An ending that trails off, fades out, or just becomes a footer | The close resolves and holds. The last feeling is the one they carry |
| Planning acts before the feeling curve exists | Curve first, devices second. See feel.md §1 |
| Shipping without one bespoke signature move | Invent one. A recoloured spotlight or a retuned tilt is not one. See uniqueness.md §3 |
| A build that clears fewer than 4 of 6 fingerprint dimensions against any existing row | Change the plan, not FINGERPRINTS.md |
| Editing the engine to get a bespoke behaviour | Bespoke JS in the page, driven off --sc-p and your own data-sc-* |
| Reaching for filmic one-shot because it is what the last build did | Pick from all eight grammars, and say why the other seven lost |
| A full-frame dark overlay to fix contrast | A scrim only where the text sits |
| Text baked into a generated image | Real markup, always. It is selectable, translatable and sharp |
| Invented statistics in a counter | Only real numbers. No number, no counter |
transition: all, or animating width/height/top/left | transform and opacity; clip-path for wipes |
| Gradient text, neon glow, zero-offset coloured halo shadows | Weight and size for emphasis; shadows with offset and blur |
| Autoplaying audio, or any audio at all on a scrub clip | Strip the track. encode.sh already does |
| Shipping without running Step 5 | Run Step 5 |
The build folder, including BRIEF.md, then a short report: the grammar and why
the other seven lost, the signature move, the fingerprint gate result against
each existing row, the journey, the feeling curve and the peak, the feel-check
diff (intended curve against felt curve, and what you changed), the score table
(device per beat), what you
generated, what you verified with screenshots, and anything you could not
verify. Say if the brief was self-authored rather than interviewed. Give the
local URL. Keep it brief; the page is the deliverable.
Then append the build's row to <workspace>/FINGERPRINTS.md.
Changes to the skill itself, and the build findings that drove them, are logged in CHANGELOG.md.
© nateherkai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 24 other files (scripts, references) in plugins/nateherk-design/skills/scroll-craft of nateherkai/scroll-craft.
Open the folder on GitHubat commit 75d81f7
Scroll Craft next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Scroll Craft this skillnateherkai/scroll-craft | 3k | — | ~6.2k | Automated safety check: Notes | MIT | |
| Impeccablebestofjs/bestofjs | 3.1k | 27 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Scroll World Landing Pageoso95/scroll-world | 9.8k | 1 repos | ~12k | Automated safety check: Notes | MIT | |
| Lightweight 3D Effectsjasonkneen/tiny-world-builder | 1.6k | 1 repos | ~5.7k | Automated safety check: Pass | AGPL-3.0 | |
| Auteuragiwhitelist/auteur | 1k | — | ~5k | Automated safety check: Pass | MIT | |
| Animated React Component LibrariesHainrixz/editor-pro-max | 264 | 1 repos | ~5.7k | Automated safety check: Pass | Custom licence |
bestofjs/bestofjs
A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…
oso95/scroll-world
Builds a scroll-driven landing page where a pre-rendered camera flies through connected AI-generated scenes, using Higgsfield for stills and video clips.
jasonkneen/tiny-world-builder
Lightweight 3D effects for decorative elements and micro-interactions using Zdog, Vanta.js, and Vanilla-Tilt.js.
agiwhitelist/auteur
Design and build complete web experiences from scratch — award-level product and marketing pages, cinematic scroll-directed sites where the page is directed like a film, and multi-screen products…
Hainrixz/editor-pro-max
Helps choose and drop in animated React components from Magic UI and React Bits for landing pages, marketing sites and dashboards, instead of hand-coding animations.
hoodini/ai-agents-skills
Turns a short video into a one-screen landing page where scrolling scrubs through the extracted frames while five text scenes crossfade over the footage.
Categories
Build premium scroll-driven landing pages for service, product, food, and drink brands. Scroll Craft is an agent skill from nateherkai/scroll-craft. Build premium scroll-driven landing pages for service, product, food, and drink brands.
Scroll Craft fits situations like: scroll animation site; A site where scrolling plays a video; apple-style landing page; 3D scroll world.
Run `npx skills add nateherkai/scroll-craft --skill scroll-craft -a claude-code`. Or copy the skill folder (plugins/nateherk-design/skills/scroll-craft in nateherkai/scroll-craft) into .claude/skills/scroll-craft in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nateherkai/scroll-craft --skill scroll-craft -a codex`. Or copy the skill folder (plugins/nateherk-design/skills/scroll-craft in nateherkai/scroll-craft) into .agents/skills/scroll-craft in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nateherkai/scroll-craft --skill scroll-craft -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scroll-craft, .gemini/skills/scroll-craft, .github/skills/scroll-craft and .opencode/skills/scroll-craft in your project.
Going by SKILL.md and its folder, Scroll Craft needs JavaScript and a shell for the scripts in its folder, the command-line tools its instructions call (node, bash and npm) and credentials named KIE_AI_API_KEY. Our summary lists: Node.js; A Bash shell; A credential in KIE_AI_API_KEY. Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Scroll Craft is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.2k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 43k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scroll Craft: Impeccable (bestofjs/bestofjs, 3.1k stars), Scroll World Landing Page (oso95/scroll-world, 9.8k stars), Lightweight 3D Effects (jasonkneen/tiny-world-builder, 1.6k stars) and Auteur (agiwhitelist/auteur, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nateherkai (a GitHub user) maintains it in nateherkai/scroll-craft, which has 3,007 GitHub stars. The repository was last updated on September 30, 2026.
Source: nateherkai/scroll-craft on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.