Slides animejs
Skill tagius/slides-animejs
Build a PowerPoint-style, 16:9 full-screen, browser-served slide presentation animated with anime.js v4. Orchestrates content brainstorming (scientific-brainstorming), academic structuring (scientific-slides), UI/UX design (ui-ux-pro-max), static authoring (slides-grab), animation patterns (anime.js-best-practices + Context7), PPTX intake (pptx), and sparse comic relief (meme-factory). Outputs a self-contained bundle the user runs with `python3 run.py`. Trigger when the user asks to make an animated web slideshow, browser-served presentation, or convert a pptx to an interactive HTML deck with animations.From its SKILL.md
npx -y skills add tagius/slides-animejsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
9.8 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it
slides-animejs
A meta-skill that turns raw input (free text, a topic + audience + length brief, an outline, or a .pptx) into a self-contained, browser-served, 16:9, full-screen slide deck animated with anime.js v4. The output is a ./presentation/ folder the user runs with python3 run.py and views in any browser. An overlay layer provides prev/next, fullscreen, a grid view, slide counter, progress bar, and speaker notes.
What this skill does
It orchestrates other skills across an interactive, eleven-phase workflow:
- Bootstrap — fetch the latest anime.js v4 reference (Context7 +
anime.js-best-practices), initializeCLAUDE.mdandAGENTS.mdin the user's project. - Intake — detect input (text,
.pptx, outline, folder of materials) and capture audience / length / tone / academic flag / palette preference / meme allowance. - Content brainstorm — use
scientific-brainstorming(and, for academic decks,scientific-slidesfor structural guidance only) to draft slide-by-slide content intopresentation_plan.md. - Content Q&A — loop with the user on each slide until content is locked.
- Design brainstorm — call
ui-ux-pro-maxto pick palette, typography, and style; commit tokens to the plan and memory. - Visual assets — audit
./visuals/, generate/fetch SVGs, optionally produce sparse memes viameme-factory, and pause to let the user drop in their own assets. - Static draft via slides-grab — synchronize with
slides-grab-plan(style approval), then runslides-grab-designto authorslide-XX.htmlfiles at the 720×405 px final-viewport canvas (slidegrab is the review/authoring stage; the viewport is the source of truth). - Draft feedback — collect feedback, iterate on plan + slide HTML.
- Animation build — run
scripts/build.pyto produce the./presentation/bundle (vendoredanime.esm.min.js, design-token CSS, slide manifest, overlay, server). - QA preview — print the run command; optional
playwright-cliscreenshot pass for layout regressions. - Handoff — auto-run
slides-grab-exportto produce a PDF backup, print final instructions.
The workflow is interactive with explicit checkpoints. The skill never builds the final animated bundle without explicit user go-ahead. A skill re-invocation reads CLAUDE.md and offers to resume from the recorded phase.
Locked decisions (binding)
These are user-confirmed and must not be relitigated:
- Skill name:
slides-animejs. - Output bundle path:
./presentation/in the user's project, sibling ofpresentation_plan.mdand./visuals/. - Memory files: write both
CLAUDE.mdandAGENTS.mdin the user's project (mirrored content) for cross-agent compatibility. - anime.js: always vendor locally as
assets/anime.esm.min.js. No CDN mode. Bundle is fully offline. - PDF backup:
slides-grab-exportruns automatically at phase 10 (handoff) and writes./presentation/backup.pdf. - PPTX back-conversion is not supported — HTML + anime.js is the only output format.
File layout produced in the user's project
The bundle lives in ./presentation/ (sibling of presentation_plan.md, CLAUDE.md/AGENTS.md, and ./visuals/). The user runs cd presentation && python3 run.py and the browser opens at http://localhost:8000. Full tree, asset templates, and script inventory: see references/skill-internals.md.
How to operate this skill
When invoked, the orchestrator:
- Reads any pre-existing
CLAUDE.mdin the working directory. If a## Current phaseblock exists, summarize state in two lines and ask: "Continue from phase X, or jump to phase Y?". - Otherwise, enters phase 0 (Bootstrap) and follows
references/workflow.mdstep-by-step.
Each phase has explicit enter / do / ask / write / exit rules — see references/workflow.md for the verbatim operational playbook.
Hard rules
- 16:9 full viewport; the browser window IS the slide. No "card on a page" layout. Letterbox/pillarbox when the window aspect deviates.
- Animate only
transformandopacity. Respectprefers-reduced-motion. - Vendor anime.js locally; the bundle must run offline.
- Memes appear sparingly (max ~1 per 6 slides) and never on academic decks unless the user explicitly opts in.
- Pause at phase 5 to instruct the user to drop assets into
./visuals/. Do not auto-fill silently. - Never run phase 9 (final animation build) without explicit user go-ahead.
- Keep
CLAUDE.mdandAGENTS.mdin sync (rewrite atomically on every phase transition). - Run the phase-0 dependency preflight (
references/workflow.md) first: block if a hard-required sub-skill or Context7 MCP is missing; warn-and-degrade for missing optional skills.
Sub-skills orchestrated
Content: scientific-brainstorming, scientific-slides (academic only). Design: ui-ux-pro-max. Static authoring: slides-grab-plan, slides-grab-design, slides-grab-export. Animation: anime.js-best-practices (+ Context7). Intake: pptx. Extras: meme-factory (sparse), playwright-cli (optional QA).
Per-skill purpose + gotchas: references/skill-internals.md. Exact call contracts: references/subskill-integration.md. Verified spec deviations: references/compatibility-notes.md. Required-vs-optional preflight: references/workflow.md phase 0.
References (load on demand)
| File | When to read |
|---|---|
references/workflow.md | Always — the operational playbook for phases 0–10. |
references/animejs-condensed.md | Phase 0; refreshed via Context7. Cite during animation authoring. |
references/animejs-patterns.md | Phases 6–9 when picking entrance / exit / transition recipes. |
references/slide-design-rules.md | Phases 6–9 for 16:9 rules, type scale, contrast, reduced-motion handling. |
references/presentation-plan-schema.md | Any time presentation_plan.md is created or edited. |
references/subskill-integration.md | When orchestrating a specific sub-skill call. |
references/compatibility-notes.md | Whenever a sub-skill's actual behavior diverges from the spec. |
references/skill-internals.md | Bundle tree, asset templates, and scripts/ inventory — when building/validating the bundle. |
Quick-reference invariants
- Slide canvas: 720 px × 405 px — the final 16:9 viewport, and the source of truth.
overlay.jsscales.slide-frameto the window viamin(innerW/720, innerH/405)(uniform scale + letterbox). slides-grab authors at this same canvas only to ease the review step; if the two ever diverge, the viewport wins. - Animations: WAAPI-first;
prefers-reduced-motionshort-circuits both the auto-animator and per-slide custom timelines. - Per-slide custom timelines:
window.__slideTL[n] = (root) => ({ cancel })(namespaced;cancelruns on slide exit to stop intervals/timelines and reset DOM). - Server: stdlib
http.serveron port 8000 (override withSLIDES_PORT). - Bundle is idempotent — re-running
scripts/build.pyoverwrites the bundle without touching plan or drafts.
Runtime model (full detail in references/workflow.md + references/slide-design-rules.md)
- iframe isolation — each slide loads in its own
<iframe srcdoc>with<base href="/">, so slide HTML may usehtml/body/:root/bare-element selectors freely without polluting other slides. The parent animates the iframe element (transform + opacity) for transitions and calls__slideEntered(i)/__slideExited()on the iframe window. - Step protocol — a slide may set
window.__slideSteps = K+window.__slideStep = (n, dir) => voidfor PowerPoint-style click-advance (parent steps 0..K within the slide before navigating). - Footer safe-zone — a 26 px footer band sits at the bottom; every slide reserves ≥ 38 px bottom padding (or pads inner columns).
- Idle animations — every slide gets a subtle baseline idle; make 2–3 slides per deck "signature" with a topic-anchored idle that becomes a memory anchor.
- SVG gotcha — never apply CSS
transform: scale()to a<g transform="translate()">(it replaces the attribute and collapses the group); animate inner shape coords (cx/cy/x/y) or usetransform-box: fill-box.
End-of-skill checklist before declaring success
-
presentation_plan.mdexists with the canonical schema. -
CLAUDE.mdandAGENTS.mdare in sync and reflect the current phase. -
./visuals/exists; every slide that references an asset resolves to a file. -
./presentation/builds, validates, and opens in the browser with all overlay features functional. -
./presentation/backup.pdfexists. - Reduced-motion fallback verified by toggling the OS setting (or
prefers-reduced-motion: reducein DevTools). - User has been handed the run command and the bundle path.
What ships with it: 44 files
297.6 KB alongside SKILL.md, 9 of them executable
assets/
- agents.md.template1.5 KB
- claude.md.template1.3 KB
- index.html1.6 KB
- overlay.css3.4 KB
- overlay.jsruns11.8 KB
- README.template.md1.2 KB
- run.pyruns1.1 KB
- slide-fragment.template.html3.7 KB
- slides.css2.3 KB
examples/
- minimal/presentation/assets/anime.esm.min.jsruns82.0 KB
- minimal/presentation/assets/overlay.css3.4 KB
- minimal/presentation/assets/overlay.jsruns11.8 KB
- minimal/presentation/assets/slides.css2.3 KB
- minimal/presentation/assets/visuals/spark.svg968 B
- minimal/presentation/index.html2.3 KB
- minimal/presentation_plan.md3.5 KB
- minimal/presentation/README.md1.2 KB
- minimal/presentation/run.pyruns1.1 KB
- minimal/presentation/slides/slide-01.html3.3 KB
- minimal/presentation/slides/slide-02.html2.3 KB
- minimal/presentation/slides/slide-03.html3.9 KB
- minimal/presentation/slides/slide-04.html4.3 KB
- minimal/presentation/slides/slide-05.html2.8 KB
- minimal/README.md4.6 KB
- minimal/slides-draft/slide-01.html3.3 KB
- minimal/slides-draft/slide-02.html2.3 KB
- minimal/slides-draft/slide-03.html3.9 KB
- minimal/slides-draft/slide-04.html4.3 KB
- minimal/slides-draft/slide-05.html2.8 KB
- minimal/visuals/spark.svg968 B
references/
- animejs-condensed.md8.2 KB
- animejs-patterns.md5.7 KB
- compatibility-notes.md20.7 KB
- presentation-plan-schema.md5.4 KB
- skill-internals.md4.3 KB
- slide-design-rules.md10.0 KB
- subskill-integration.md10.2 KB
- workflow.md16.7 KB
4 more files not listed here. See all 44 in the repository.