Motion Web
feitangyuan/motion-web
Design and build motion-first creative websites — page design (structure, type scale, palette, spacing) plus interaction choreography: scroll animation, Framer Motion, GSAP, and light 3D via…
Extract and rebuild the DOM/CSS layer of a web page — layout, typography, colors, spacing, real content, assets, and normal interactions — into clean components, section by section, from exact…
$ npx skills add cth9191/site-clone --skill dom-clone -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cth9191/site-clone dom-clone --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/cth9191/site-clone.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dom-clone .claude/skills/dom-clone && 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 "dom-clone" agent skill from https://github.com/cth9191/site-clone/tree/main/skills/dom-clone into .claude/skills/dom-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dom-clone", 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/cth9191/site-clone/tree/main/skills/dom-cloneType 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 cth9191/site-clone --skill dom-clone -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cth9191/site-clone dom-clone --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cth9191/site-clone.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dom-clone .agents/skills/dom-clone && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dom-clone" agent skill from https://github.com/cth9191/site-clone/tree/main/skills/dom-clone into .agents/skills/dom-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dom-clone", 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 cth9191/site-clone --skill dom-clone -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cth9191/site-clone dom-clone --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cth9191/site-clone.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dom-clone .cursor/skills/dom-clone && 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 "dom-clone" agent skill from https://github.com/cth9191/site-clone/tree/main/skills/dom-clone into .cursor/skills/dom-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dom-clone", 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/cth9191/site-clone.git --path skills/dom-clone--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 cth9191/site-clone --skill dom-clone -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cth9191/site-clone dom-clone --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cth9191/site-clone.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dom-clone .gemini/skills/dom-clone && 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 "dom-clone" agent skill from https://github.com/cth9191/site-clone/tree/main/skills/dom-clone into .gemini/skills/dom-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dom-clone", 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 cth9191/site-clone dom-cloneInstalls 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 cth9191/site-clone --skill dom-clone -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cth9191/site-clone.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dom-clone .github/skills/dom-clone && 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 "dom-clone" agent skill from https://github.com/cth9191/site-clone/tree/main/skills/dom-clone into .github/skills/dom-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dom-clone", 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 cth9191/site-clone --skill dom-clone -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cth9191/site-clone dom-clone --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cth9191/site-clone.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dom-clone .opencode/skills/dom-clone && 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 "dom-clone" agent skill from https://github.com/cth9191/site-clone/tree/main/skills/dom-clone into .opencode/skills/dom-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dom-clone", 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.
dom-cloneExtract and rebuild the DOM/CSS layer of a web page — layout, typography, colors, spacing, real content, assets, and normal interactions — into clean components, section by section, from exact…
Dom Clone is an agent skill from cth9191/site-clone. Extract and rebuild the DOM/CSS layer of a web page — layout, typography, colors, spacing, real content, assets, and normal interactions — into clean components, section by section, from exact getComputedStyle() values rather than guesses. This is the DOM/CSS track: it deliberately does NOT handle WebGL/WebGPU/canvas shader surfaces (those go to shader-extract). Usually driven by the clone-site coordinator, but can be used directly when the user wants to rebuild a page's markup/styling and there are no…
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/asset-resolution.md` and `references/interaction-fingerprints.md`).
It sits in Game Development, covering 3D graphics and WebGL and Typography. The repository describes itself as: Point Claude Code at a URL, get a teardown + a verified near pixel-identical rebuild. Runtime probes, evidence-tagged TEARDOWN.md, Playwright pixel-diff QA. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f01d396. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dom Clone loads about 2k tokens when it runs, and up to ~4.4k if it reads all its reference files. Until then it costs about 171 tokens; SKILL.md has 1,008 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 found no risky patterns in SKILL.md.
Automated 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); files beside SKILL.md are not scanned.
The full file from cth9191/site-clone at commit f01d396, republished under its MIT licence (© cth9191). 1,008 words, ~1,984 tokens.
.claude/skills/dom-clone/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Rebuild the DOM/CSS layer of a page as clean components whose every value is measured, not estimated. The difference between a clone that reads as "pixel-perfect" and one that reads as "AI slop" is almost entirely whether the spacing, type scale, and colors are the site's real computed values or an approximation. So the whole method is built to remove guessing.
Scope boundary — read this first. This track handles DOM/CSS only. Any
<canvas> painting WebGL/WebGPU/2D pixels is invisible to getComputedStyle()
and belongs to shader-extract. When you meet a GPU surface (the surface map
tags them, or you see a <canvas> you can't style your way into), do NOT rebuild
it — leave a placeholder mount (below) and move on. Rebuilding a shader as
HTML is the classic failure that makes a clone look empty.
surface-map.json and
ROUTING.md. Build only the sections routed to the DOM track; leave mounts for
GPU surfaces.<canvas> surfaces, tell the user those need the
shader-extract track and build the DOM around them.Requires a browser MCP (Chrome/Playwright/Puppeteer). Keep large extraction artifacts in the output dir, not the conversation.
Nothing can be built until the shared ground exists, because every later component depends on it:
../clone-site/scripts/tokens-probe.js
(tokensProbe()) at 1440/768/390 if the coordinator hasn't already left
tokens-*.json in the output dir. Its frequency-ranked palette, type scale,
spacing, radii, shadows, and :root custom props ARE the tokens — write them
as CSS variables / Tailwind theme, keeping the site's own --names when it
has them. Colors and fonts wrong here poison every component.motion.json (../clone-site/scripts/ motion-probe.js) as the source for every GSAP/ScrollTrigger/Lenis/WAAPI
value a spec needs. A spec that says scrub: 1.2, start: "top top", end: "+=200%" came from the runtime; one that says "scrubs on scroll" is a guess.font-family on headings/body/labels; wire up the
same families (self-hosted or Google) so metrics match.references/asset-resolution.md:
download the REAL file first; only fall back to reconstructing, generating
(Higgsfield, for decorative assets — never brand identity), or a placeholder,
and label which tier was used. This keeps the clone honest about what's real.references/interaction-fingerprints.md to detect and
reproduce these; they change how sections must be built.Verify the empty shell builds before going further.
For each DOM section top-to-bottom, use the browser to capture — don't hand- measure:
getComputedStyle() —
real px/color/weight values, not "looks like text-lg".<img>/background
image in the section, including layered/overlay images (a hero is often a
background + a foreground mockup + an icon; miss the overlay and it looks bare).
Resolve each asset through references/asset-resolution.md (REAL → RECONSTRUCT
→ GENERATE → PLACEHOLDER), tagging any that couldn't be downloaded.references/interaction-fingerprints.md.Write one spec per section to <output>/specs/<section>.spec.md BEFORE building.
This is the contract between measurement and construction: the builder works from
the spec, not from its memory of a browser session, so it can't drift into
guessing. A spec has: target file, screenshot path, interaction model
(static / click / scroll / hover / time), exact computed styles per element,
per-state content, assets with local paths, verbatim text, and responsive
behavior at 1440 / 768 / 390. If a builder would have to invent any value, the
spec isn't done yet.
For GPU surfaces in this section, the spec says only: placeholder mount — a positioned empty container with the id, size, z-index, and pointer-events from the surface map, for shader-extract to fill later. Nothing more.
Dispatch builders that each receive their spec inline (never "go read the spec"). On agent granularity: splitting a page into many tiny builders is a choice for speed and edit-isolation, not a fidelity requirement — a capable model holds a whole section's spec fine. So prefer one builder per section by default, and split further only when a section contains genuinely independent pieces (three distinct card variants, separate interactive widgets) that benefit from parallel isolation. Over-splitting just adds merge and coordination cost.
If builders run in parallel and might touch shared files, isolate them (git worktrees or separate output subtrees) and merge with the section topology in hand. Each builder verifies its own typecheck/build before finishing.
After assembly, run an automated pixel diff (Playwright toHaveScreenshot()),
original vs clone, at all three breakpoints — masking any GPU placeholder
regions so their emptiness/animation doesn't dominate the result. Tune
maxDiffPixelRatio rather than demanding zero diff (anti-aliasing causes false
positives). For each real discrepancy, decide: was the spec value wrong
(re-extract, fix spec) or did the builder ignore a correct spec (fix component)?
Fix at the source, not with a compensating fudge.
site/ (or the coordinator's chosen substrate) with styled sections + mountsspecs/*.spec.md — one per section, the audit trail<canvas> shader/3D effect as HTML — leave a mount.<video> or animated SVG to a static image — re-embed / keep it.© cth9191, 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 2 other files (references) in skills/dom-clone of cth9191/site-clone.
Open the folder on GitHubat commit f01d396
Dom Clone 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 |
|---|---|---|---|---|---|---|
| Dom Clone this skillcth9191/site-clone | 133 | — | ~2k | Automated safety check: Pass | MIT | |
| Motion Webfeitangyuan/motion-web | 680 | — | ~18k | Automated safety check: Pass | CC-BY-NC-4.0 | |
| Video To Superpromptnirholas/three.ws | 228 | 1 repos | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Scroll World Storytellingnirholas/three.ws | 228 | 1 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Epic Designalirezarezvani/claude-skills | 28k | 1 repos | ~4k | Automated safety check: Pass | MIT | |
| Oma Designfirst-fluke/oh-my-agent | 1.3k | — | ~2.9k | Automated safety check: Pass | MIT |
feitangyuan/motion-web
Design and build motion-first creative websites — page design (structure, type scale, palette, spacing) plus interaction choreography: scroll animation, Framer Motion, GSAP, and light 3D via…
nirholas/three.ws
Turn a reference video into a super detailed recreation or inspiration prompt.
nirholas/three.ws
Turn an article, case study, brand narrative, product journey, or long-form story into a cinematic scroll-driven landing page using one of three renderers: scrubbed video, a real-time Three.js…
alirezarezvani/claude-skills
Build immersive, cinematic 2.5D interactive websites using scroll storytelling, parallax depth, text animations, and premium scroll effects — no WebGL required.
first-fluke/oh-my-agent
AI design specialist skill with DESIGN.md management, anti-pattern enforcement, optional Stitch MCP integration, and component library guidance.
tl2012tl/comfyUI-llama-TE
For users creating a two-player co-op game menu or opening animation.
cth9191/site-clone
Turn a cloned (or any measured) website into YOUR site: re-skin it with your brand, copy, and assets; generate three deliberately different design directions as token/motion/shader overrides and…
cth9191/site-clone
Extract, reproduce, and locally replay a single WebGL / WebGPU / Canvas / shader / animated-3D visual effect from a web page — the GPU-rendered surface that DOM/CSS cloning is blind to.
Categories
Extract and rebuild the DOM/CSS layer of a web page — layout, typography, colors, spacing, real content, assets, and normal interactions — into clean components, section by section, from exact…. Dom Clone is an agent skill from cth9191/site-clone. Extract and rebuild the DOM/CSS layer of a web page — layout, typography, colors, spacing, real content, assets, and normal interactions — into clean components, section by section, from exact getComputedStyle() values rather than guesses.
Dom Clone fits situations like: wants to rebuild a pages markup/styling and there are no GPU-rendered effects; rebuild this section; extract the CSS/layout; clone the markup and styling of this page.
Run `npx skills add cth9191/site-clone --skill dom-clone -a claude-code`. Or copy the skill folder (skills/dom-clone in cth9191/site-clone) into .claude/skills/dom-clone in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cth9191/site-clone --skill dom-clone -a codex`. Or copy the skill folder (skills/dom-clone in cth9191/site-clone) into .agents/skills/dom-clone 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 cth9191/site-clone --skill dom-clone -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dom-clone, .gemini/skills/dom-clone, .github/skills/dom-clone and .opencode/skills/dom-clone in your project.
SKILL.md names no scripts, command-line tools or credentials: Dom Clone is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Dom Clone is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k 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 2.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Dom Clone: Motion Web (feitangyuan/motion-web, 680 stars), Video To Superprompt (nirholas/three.ws, 228 stars), Scroll World Storytelling (nirholas/three.ws, 228 stars) and Epic Design (alirezarezvani/claude-skills, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cth9191 (a GitHub user) maintains it in cth9191/site-clone, which has 133 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on August 21, 2026.
Source: cth9191/site-clone on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.