@autoaiai/aicut 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MANUAL.md +94 -94
- package/package.json +1 -1
- package/skills/aicut-motion/SKILL.md +69 -3
- package/skills/aicut-motion/THIRD_PARTY_NOTICES.md +14 -0
- package/skills/aicut-motion/assets/atlas/lib/harness.js +116 -0
- package/skills/aicut-motion/assets/atlas/lib/sound.js +274 -0
- package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/code.js +937 -0
- package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/code.js +909 -0
- package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/code.js +881 -0
- package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/code.js +897 -0
- package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/code.js +814 -0
- package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/code.js +990 -0
- package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/code.js +994 -0
- package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/code.js +792 -0
- package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/code.js +840 -0
- package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/code.js +1126 -0
- package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/code.js +854 -0
- package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/code.js +1124 -0
- package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/code.js +728 -0
- package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/code.js +664 -0
- package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/code.js +991 -0
- package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/code.js +801 -0
- package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/code.js +692 -0
- package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/code.js +756 -0
- package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/code.js +922 -0
- package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/code.js +852 -0
- package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/code.js +724 -0
- package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/code.js +793 -0
- package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/code.js +846 -0
- package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/code.js +1008 -0
- package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/code.js +680 -0
- package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/code.js +633 -0
- package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/code.js +757 -0
- package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/code.js +828 -0
- package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/code.js +697 -0
- package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/code.js +687 -0
- package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/code.js +727 -0
- package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/code.js +903 -0
- package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/code.js +662 -0
- package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/code.js +951 -0
- package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/code.js +759 -0
- package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/code.js +738 -0
- package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/code.js +793 -0
- package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/code.js +673 -0
- package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/code.js +907 -0
- package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/code.js +833 -0
- package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/041-manga-page/code.js +845 -0
- package/skills/aicut-motion/assets/atlas/styles/041-manga-page/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/041-manga-page/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/code.js +496 -0
- package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/043-light-painting/code.js +635 -0
- package/skills/aicut-motion/assets/atlas/styles/043-light-painting/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/043-light-painting/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/code.js +799 -0
- package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/code.js +547 -0
- package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/code.js +592 -0
- package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/code.js +768 -0
- package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/048-transit-map/code.js +666 -0
- package/skills/aicut-motion/assets/atlas/styles/048-transit-map/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/048-transit-map/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/code.js +559 -0
- package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/code.js +943 -0
- package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/code.js +606 -0
- package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/code.js +730 -0
- package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/code.js +782 -0
- package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/code.js +504 -0
- package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/code.js +517 -0
- package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/code.js +713 -0
- package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/code.js +717 -0
- package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/code.js +540 -0
- package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/code.js +524 -0
- package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/code.js +934 -0
- package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/code.js +690 -0
- package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/code.js +612 -0
- package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/code.js +666 -0
- package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/code.js +651 -0
- package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/code.js +656 -0
- package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/code.js +672 -0
- package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/code.js +548 -0
- package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/code.js +989 -0
- package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/code.js +440 -0
- package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/code.js +895 -0
- package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/code.js +563 -0
- package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/code.js +627 -0
- package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/code.js +1096 -0
- package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/code.js +595 -0
- package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/code.js +665 -0
- package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/code.js +645 -0
- package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/code.js +436 -0
- package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/code.js +1237 -0
- package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/code.js +622 -0
- package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/code.js +524 -0
- package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/code.js +689 -0
- package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/code.js +574 -0
- package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/code.js +469 -0
- package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/084-flow-field/code.js +531 -0
- package/skills/aicut-motion/assets/atlas/styles/084-flow-field/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/084-flow-field/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/code.js +675 -0
- package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/code.js +609 -0
- package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/style.json +13 -0
- package/skills/aicut-motion/references/motion-delivery.md +55 -0
- package/skills/aicut-motion/references/style-index.json +690 -0
- package/skills/aicut-motion/references/style-research.md +73 -0
- package/skills/aicut-motion/references/style-selection.md +71 -0
- package/skills/aicut-motion/scripts/atlas-viewer.html +195 -0
- package/skills/aicut-motion/scripts/atlas.mjs +109 -0
- package/studio/server/fetch-github.mjs +14 -3
- package/studio/server/server.mjs +40 -3
- package/studio/server/skill-summaries.mjs +60 -0
- package/studio/server/skills.mjs +121 -7
- package/studio/server/styles-store.mjs +235 -0
- package/studio/server/template-posters.mjs +2 -2
- package/studio/server/templates-page.mjs +93 -93
- package/studio/server/templates.mjs +32 -7
- package/studio/ui/dist/assets/ExportCenter-DasulhAv.js +1 -0
- package/studio/ui/dist/assets/SettingsModal-BZw0Hz2_.js +2 -0
- package/studio/ui/dist/assets/es-C8XPZARI.js +1 -0
- package/studio/ui/dist/assets/index-BjJVmBzB.js +1623 -0
- package/studio/ui/dist/assets/index-C3BfKZFO.css +1 -0
- package/studio/ui/dist/assets/ja-BeNkdaEj.js +1 -0
- package/studio/ui/dist/assets/ko-DcTVhdzK.js +1 -0
- package/studio/ui/dist/assets/zh-CN-Cg51ctbL.js +1 -0
- package/studio/ui/dist/index.html +2 -2
- package/skills/30x-web-to-video/SKILL.md +0 -421
- package/skills/30x-web-to-video/examples/INDEX.md +0 -26
- package/skills/30x-web-to-video/references/animations.md +0 -539
- package/skills/30x-web-to-video/references/audio.md +0 -256
- package/skills/30x-web-to-video/references/components.md +0 -340
- package/skills/30x-web-to-video/references/lottie.md +0 -174
- package/skills/30x-web-to-video/references/visual-effects.md +0 -157
- package/skills/30x-web-to-video/remotion-best-practices/rules/audio.md +0 -169
- package/skills/30x-web-to-video/remotion-best-practices/rules/calculate-metadata.md +0 -134
- package/skills/30x-web-to-video/remotion-best-practices/rules/charts.md +0 -120
- package/skills/30x-web-to-video/remotion-best-practices/rules/compositions.md +0 -154
- package/skills/30x-web-to-video/remotion-best-practices/rules/ffmpeg.md +0 -38
- package/skills/30x-web-to-video/remotion-best-practices/rules/fonts.md +0 -152
- package/skills/3d-asset-generation/SKILL.md +0 -142
- package/skills/action-fight-prompt/SKILL.md +0 -136
- package/skills/action-fight-prompt/references/camera-and-impact.md +0 -64
- package/skills/action-fight-prompt/references/example-15s-duel.md +0 -59
- package/skills/action-fight-prompt/references/scene-patterns.md +0 -80
- package/skills/ad-creative-video/SKILL.md +0 -205
- package/skills/ad-creative-video/references/batch-ad-pipeline.md +0 -289
- package/skills/ad-creative-video/references/platform-specs.md +0 -72
- package/skills/after-effects/SKILL.md +0 -123
- package/skills/after-effects/references/export-recipes.md +0 -168
- package/skills/after-effects/references/expression-library.md +0 -184
- package/skills/after-effects/references/expressions.md +0 -134
- package/skills/after-effects/references/performance-triage.md +0 -138
- package/skills/after-effects/references/project-hygiene.md +0 -188
- package/skills/ai-media-quality-review/SKILL.md +0 -72
- package/skills/ai-product-video/SKILL.md +0 -296
- package/skills/ai-product-video/references/aesthetic-rules.md +0 -177
- package/skills/ai-product-video/references/final-review.md +0 -110
- package/skills/ai-product-video/references/guided-free-creation.md +0 -194
- package/skills/ai-product-video/references/music-beat-sync.md +0 -219
- package/skills/ai-product-video/references/pipeline.md +0 -392
- package/skills/ai-product-video/references/sequences/promo-energy-arc.md +0 -50
- package/skills/ai-product-video/references/shots/ATTRIBUTION.md +0 -65
- package/skills/ai-product-video/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/ai-product-video/references/shots/camera/crash-zoom-punch.md +0 -39
- package/skills/ai-product-video/references/shots/camera/cursor-flyover.md +0 -38
- package/skills/ai-product-video/references/shots/camera/depth-layer-moves.md +0 -40
- package/skills/ai-product-video/references/shots/camera/graze-face-tour.md +0 -57
- package/skills/anidoodle/SKILL.md +0 -185
- package/skills/anidoodle/references/anatomy.md +0 -91
- package/skills/anidoodle/references/backends-and-adapters.md +0 -82
- package/skills/anidoodle/references/camera.md +0 -148
- package/skills/anidoodle/references/craft-bar.md +0 -72
- package/skills/anidoodle/references/determinism-and-contract.md +0 -46
- package/skills/anidoodle/references/formats.md +0 -121
- package/skills/anidoodle/references/motion-grammar.md +0 -234
- package/skills/anidoodle/references/music/compose.md +0 -388
- package/skills/anidoodle/references/music/sound-design.md +0 -245
- package/skills/anidoodle/references/music/sounds-licenses.md +0 -69
- package/skills/anidoodle/references/music/styles/lofi-electronic.md +0 -112
- package/skills/anidoodle/references/music/styles/music-box.md +0 -57
- package/skills/animated-component-libraries/SKILL.md +0 -820
- package/skills/animated-component-libraries/references/customization_guide.md +0 -699
- package/skills/animated-component-libraries/references/magic_ui_components.md +0 -422
- package/skills/animated-component-libraries/references/react_bits_components.md +0 -587
- package/skills/animated-infographic/SKILL.md +0 -211
- package/skills/animated-infographic/references/sequenced-infographic.md +0 -286
- package/skills/appshot-core/SKILL.md +0 -872
- package/skills/article-highlights/SKILL.md +0 -151
- package/skills/avatar-mix/SKILL.md +0 -301
- package/skills/bang-motion/SKILL.md +0 -583
- package/skills/bang-motion/references/ae-bridge-higgsfield.md +0 -160
- package/skills/bang-motion/references/anti-ppt.md +0 -110
- package/skills/bang-motion/references/architecture.md +0 -188
- package/skills/bang-motion/references/explainer.md +0 -579
- package/skills/bang-motion/references/kartun-panggung.md +0 -221
- package/skills/bang-motion/references/opener-konsep.md +0 -817
- package/skills/bang-motion/references/roadmap.md +0 -85
- package/skills/bang-motion/references/techniques.md +0 -690
- package/skills/beat-sync-edit/SKILL.md +0 -148
- package/skills/book-video-factory/SKILL.md +0 -139
- package/skills/book-video-factory/references/first-run.md +0 -50
- package/skills/book-video-factory/references/paper-collage-explainer.md +0 -127
- package/skills/book-video-factory/references/quality-gates.md +0 -87
- package/skills/book-video-production/SKILL.md +0 -211
- package/skills/brag/SKILL.md +0 -195
- package/skills/brag/references/audio.md +0 -312
- package/skills/brag/references/step-1-inspect.md +0 -125
- package/skills/brag/references/step-2-plan.md +0 -234
- package/skills/brag/references/step-3-compose.md +0 -199
- package/skills/brag/references/step-4-deliver.md +0 -141
- package/skills/brag/references/tones.md +0 -231
- package/skills/brand-setup/SKILL.md +0 -228
- package/skills/brewreel/SKILL.md +0 -491
- package/skills/brewreel/docs/broll.en.md +0 -252
- package/skills/brewreel/docs/broll.md +0 -252
- package/skills/brewreel/docs/custom-shot.en.md +0 -66
- package/skills/brewreel/docs/custom-shot.md +0 -103
- package/skills/brewreel/docs/faq.en.md +0 -90
- package/skills/brewreel/docs/faq.md +0 -90
- package/skills/brewreel/docs/features.en.md +0 -157
- package/skills/brewreel/docs/features.md +0 -157
- package/skills/brewreel/docs/gallery.en.md +0 -44
- package/skills/brewreel/docs/gallery.md +0 -44
- package/skills/brewreel/docs/how-it-works.en.md +0 -64
- package/skills/brewreel/docs/how-it-works.md +0 -64
- package/skills/caption-animation/SKILL.md +0 -216
- package/skills/caption-animation/references/word-timed-captions.md +0 -254
- package/skills/cartcut-editing/SKILL.md +0 -615
- package/skills/cartcut-editing/references/html-typography.md +0 -277
- package/skills/cassette-video-edit/SKILL.md +0 -129
- package/skills/ccvideo/SKILL.md +0 -264
- package/skills/chekhov-dramaturgy/SKILL.md +0 -367
- package/skills/chekhov-dramaturgy/reference.md +0 -375
- package/skills/chengfeng-check-updates/SKILL.md +0 -283
- package/skills/cinematic-product-promo-skill/SKILL.md +0 -295
- package/skills/cinematic-product-promo-skill/references/aesthetic-rules.md +0 -187
- package/skills/cinematic-product-promo-skill/references/final-review.md +0 -116
- package/skills/cinematic-product-promo-skill/references/guided-free-creation.md +0 -199
- package/skills/cinematic-product-promo-skill/references/jianying-export.md +0 -183
- package/skills/cinematic-product-promo-skill/references/music-beat-sync.md +0 -257
- package/skills/cinematic-product-promo-skill/references/pipeline.md +0 -393
- package/skills/cinematic-product-promo-skill/references/sequences/promo-energy-arc.md +0 -50
- package/skills/cinematic-product-promo-skill/references/shots/ATTRIBUTION.md +0 -65
- package/skills/cinematic-product-promo-skill/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/cinematic-product-promo-skill/references/shots/camera/crash-zoom-punch.md +0 -39
- package/skills/cinematic-product-promo-skill/references/shots/camera/cursor-flyover.md +0 -38
- package/skills/cinematic-product-promo-skill/references/shots/camera/depth-layer-moves.md +0 -40
- package/skills/claude-gif/SKILL.md +0 -211
- package/skills/claude-gif/references/gif-optimization.md +0 -209
- package/skills/claude-gif/references/perfect-loops.md +0 -295
- package/skills/claude-gif/references/platform-specs.md +0 -138
- package/skills/claude-gif/references/prompt-engineering.md +0 -211
- package/skills/claude-gif/references/remotion-gif.md +0 -560
- package/skills/codex-video-pipeline/SKILL.md +0 -213
- package/skills/codex-video-pipeline/examples/ai-meeting-notes/INPUT.md +0 -10
- package/skills/codex-video-pipeline/examples/ai-meeting-notes/expected/action-list.md +0 -22
- package/skills/codex-video-pipeline/references/captions.md +0 -39
- package/skills/codex-video-pipeline/references/cover-system.md +0 -72
- package/skills/codex-video-pipeline/references/cross-platform.md +0 -77
- package/skills/codex-video-pipeline/references/example-run.md +0 -54
- package/skills/codex-video-pipeline/references/first-run.md +0 -130
- package/skills/codex-video-pipeline/references/project-contract.md +0 -54
- package/skills/codex-video-pipeline/references/quality-gates.md +0 -44
- package/skills/codex-video-pipeline/references/research-and-script.md +0 -50
- package/skills/collage-broll-explainers/SKILL.md +0 -429
- package/skills/create-onboarding-video/SKILL.md +0 -233
- package/skills/cs-shotcraft-skill/SKILL.md +0 -218
- package/skills/cs-shotcraft-skill/references/aesthetic-rules.md +0 -207
- package/skills/cs-shotcraft-skill/references/camera-table.md +0 -88
- package/skills/cs-shotcraft-skill/references/engineering.md +0 -132
- package/skills/cs-shotcraft-skill/references/final-review.md +0 -118
- package/skills/cs-shotcraft-skill/references/guided-free-creation.md +0 -199
- package/skills/cs-shotcraft-skill/references/jianying-export.md +0 -183
- package/skills/cs-shotcraft-skill/references/music-beat-sync.md +0 -257
- package/skills/cs-shotcraft-skill/references/pipeline.md +0 -408
- package/skills/cs-shotcraft-skill/references/product-machine.md +0 -56
- package/skills/cs-shotcraft-skill/references/sequences/promo-energy-arc.md +0 -50
- package/skills/cs-shotcraft-skill/references/shots/ATTRIBUTION.md +0 -65
- package/skills/cs-shotcraft-skill/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/cut-video/SKILL.md +0 -387
- package/skills/cyxj-hyperframes-overlay/SKILL.md +0 -75
- package/skills/cyxj-remotion-evolve/SKILL.md +0 -123
- package/skills/cyxj-remotion-evolve-vibe-motion/SKILL.md +0 -123
- package/skills/demo-video-creation-skill/SKILL.md +0 -152
- package/skills/demo-video-creation-skill/references/capture-workflow.md +0 -74
- package/skills/demo-video-creation-skill/references/qc-checklist.md +0 -61
- package/skills/demo-video-creation-skill/references/remotion-ffmpeg.md +0 -94
- package/skills/demo-video-creation-skill/references/storytelling.md +0 -86
- package/skills/demo-video-creation-skill/references/visual-system.md +0 -83
- package/skills/demoday/SKILL.md +0 -148
- package/skills/develop-premiere-pro-mcp/SKILL.md +0 -131
- package/skills/diagram-animation/SKILL.md +0 -200
- package/skills/diagram-animation/references/diagram-and-chart-recipes.md +0 -218
- package/skills/diagram-tour/SKILL.md +0 -287
- package/skills/diagram-tour/examples/agent-architecture/agent-architecture-tour.md +0 -78
- package/skills/docvideoer/SKILL.md +0 -139
- package/skills/draftcut/SKILL.md +0 -104
- package/skills/draftcut/docs/agent-bootstrap.md +0 -64
- package/skills/draftcut/docs/approvals.md +0 -45
- package/skills/draftcut/docs/audio-first-migration.md +0 -35
- package/skills/draftcut/docs/configuration.md +0 -54
- package/skills/draftcut/docs/getting-started.md +0 -63
- package/skills/draftcut/docs/harness-case-study.en.md +0 -23
- package/skills/draftcut/docs/harness-case-study.md +0 -47
- package/skills/draftcut/references/01-plan.md +0 -30
- package/skills/draftcut/references/03-deliver.md +0 -26
- package/skills/draftcut/references/04-reference-theme-prompt.md +0 -7
- package/skills/draftcut/references/05-social-loudness.md +0 -58
- package/skills/draftcut/references/06-modern-components.md +0 -72
- package/skills/easyedit/SKILL.md +0 -66
- package/skills/erduo-broll-loop-engineering/SKILL.md +0 -136
- package/skills/erduo-broll-loop-engineering/references/animation-craft.md +0 -208
- package/skills/erduo-broll-loop-engineering/references/first-run-onboarding.md +0 -107
- package/skills/erduo-broll-loop-engineering/references/handoff-template.md +0 -70
- package/skills/erduo-broll-loop-engineering/references/motion-layout-lint.md +0 -122
- package/skills/erduo-broll-loop-engineering/references/parent-review-checklist.md +0 -171
- package/skills/erduo-broll-loop-engineering/references/prompt-first-workflow.md +0 -322
- package/skills/erduo-broll-loop-engineering/references/remotion-backend.md +0 -334
- package/skills/erduo-broll-loop-engineering/references/runtime/remotion-hyperframes-map.md +0 -76
- package/skills/erduo-broll-loop-engineering/references/runtime/runtime-contract.md +0 -174
- package/skills/erduo-broll-loop-engineering/references/runtime/runtime-selection.md +0 -135
- package/skills/erduo-broll-loop-engineering/references/shotcraft/remotion-sources/SOURCE.md +0 -7
- package/skills/erduo-broll-loop-engineering/references/shotcraft/upstream-attribution.md +0 -65
- package/skills/explainer-assets/SKILL.md +0 -98
- package/skills/explainer-video/SKILL.md +0 -146
- package/skills/framewright/SKILL.md +0 -324
- package/skills/framewright/references/audio.md +0 -230
- package/skills/framewright/references/guide.md +0 -276
- package/skills/framewright/references/painting.md +0 -425
- package/skills/framewright/references/photo.md +0 -75
- package/skills/framewright/references/questionnaire.md +0 -115
- package/skills/framewright/references/styles.md +0 -388
- package/skills/framewright/references/troubleshooting.md +0 -119
- package/skills/framewright/references/world.md +0 -215
- package/skills/gbro-collage-broll/SKILL.md +0 -435
- package/skills/gbro-collage-info/SKILL.md +0 -135
- package/skills/gbro-collage-info/references/motion-grammar.md +0 -66
- package/skills/gbro-collage-info/references/production.md +0 -67
- package/skills/gbro-collage-info/references/style-system.md +0 -38
- package/skills/gemini-tts/SKILL.md +0 -208
- package/skills/gemini-tts/references/prompting-guide.md +0 -169
- package/skills/gen/SKILL.md +0 -282
- package/skills/ghost-editor/SKILL.md +0 -437
- package/skills/ghost-editor/docs/HOW-IT-WORKS.md +0 -82
- package/skills/ghost-editor/docs/PLAYBOOK.md +0 -139
- package/skills/ghost-editor/docs/THIRD_PARTY/audio.md +0 -17
- package/skills/ghost-editor/docs/THIRD_PARTY/audioqa.md +0 -13
- package/skills/ghost-editor/docs/THIRD_PARTY/captions.md +0 -20
- package/skills/ghost-editor/docs/THIRD_PARTY/fonts.md +0 -17
- package/skills/ghost-editor/docs/THIRD_PARTY/kinetic.md +0 -22
- package/skills/ghost-editor/docs/THIRD_PARTY/looks.md +0 -22
- package/skills/ghost-editor/docs/THIRD_PARTY/matte.md +0 -20
- package/skills/ghost-editor/docs/THIRD_PARTY/models.md +0 -11
- package/skills/ghost-editor/docs/THIRD_PARTY/runtime.md +0 -13
- package/skills/ghost-editor/docs/THIRD_PARTY/shaders.md +0 -15
- package/skills/git-story-film/SKILL.md +0 -220
- package/skills/git-story-film/examples/raven-story/FONTS.md +0 -8
- package/skills/git-story-film/examples/raven-story/OUTLINE.md +0 -93
- package/skills/git-story-film/references/craft.md +0 -148
- package/skills/git-story-film/references/directing.md +0 -185
- package/skills/git-story-film/references/forms.md +0 -150
- package/skills/git-story-film/references/production.md +0 -150
- package/skills/git-story-film/references/story.md +0 -137
- package/skills/git-story-film/references/text-and-fonts.md +0 -90
- package/skills/guizang-product-video-skill/SKILL.md +0 -96
- package/skills/guizang-product-video-skill/references/audio-and-qa.md +0 -113
- package/skills/guizang-product-video-skill/references/audio-sourcing.md +0 -80
- package/skills/guizang-product-video-skill/references/case-study.md +0 -63
- package/skills/guizang-product-video-skill/references/component-pipeline.md +0 -86
- package/skills/guizang-product-video-skill/references/cover.md +0 -43
- package/skills/guizang-product-video-skill/references/direction.md +0 -91
- package/skills/guizang-product-video-skill/references/onboarding.md +0 -98
- package/skills/guizang-product-video-skill/references/repo-and-style.md +0 -44
- package/skills/guizang-product-video-skill/references/review.md +0 -38
- package/skills/guizang-product-video-skill/references/starter.md +0 -168
- package/skills/guizang-product-video-skill/references/story-and-copy.md +0 -88
- package/skills/guizang-product-video-skill/references/visual-vocabulary.md +0 -78
- package/skills/guofeng-paper-video/SKILL.md +0 -159
- package/skills/guofeng-paper-video/style/design.md +0 -43
- package/skills/guofeng-paper-video/style/palette.md +0 -21
- package/skills/guofeng-paper-video/style/prompts/01-/345/210/206/351/225/234/350/241/250.md +0 -19
- package/skills/guofeng-paper-video/style/prompts/02-/347/224/237/346/210/220/347/272/270/347/211/207.md +0 -37
- package/skills/guofeng-paper-video/style/prompts/03-/351/205/215/351/237/263/350/204/232/346/234/254.md +0 -27
- package/skills/guofeng-paper-video/style//345/210/206/351/225/234/344/270/216/345/233/276/345/261/202/350/247/204/350/214/203.md +0 -67
- package/skills/guofeng-paper-video/style//347/272/270/347/211/207/347/264/240/346/235/220/350/247/204/350/214/203.md +0 -29
- package/skills/hand-drawn-explainer-video-nikola/SKILL.md +0 -113
- package/skills/hand-drawn-explainer-video-nikola/docs/ARCHITECTURE.md +0 -18
- package/skills/hand-drawn-explainer-video-nikola/docs/CONFIGURATION.md +0 -22
- package/skills/hand-drawn-explainer-video-nikola/docs/STYLES.md +0 -28
- package/skills/hand-drawn-explainer-video-nikola/docs/TROUBLESHOOTING.md +0 -35
- package/skills/hand-drawn-explainer-video-nikola/examples/program-animation/skill-demo/DESIGN.md +0 -24
- package/skills/hand-drawn-explainer-video-nikola/references/automation-workflow.md +0 -67
- package/skills/hand-drawn-explainer-video-nikola/references/output-example.md +0 -79
- package/skills/hand-drawn-explainer-video-nikola/references/preflight-and-recovery.md +0 -49
- package/skills/hand-drawn-explainer-video-nikola/references/style-guide.md +0 -82
- package/skills/hand-drawn-explainer-video-nikola/references/style-selection-and-updates.md +0 -39
- package/skills/hand-drawn-explainer-video-nikola/references/upstream-whiteboard-review.md +0 -30
- package/skills/hand-drawn-explainer-video-nikola/references/voiceover.md +0 -37
- package/skills/hbg-life-simulation/SKILL.md +0 -285
- package/skills/hbg-life-simulation/references/image-generation.md +0 -53
- package/skills/hbg-life-simulation/references/local-account-api.md +0 -112
- package/skills/hbg-life-simulation/references/opening-system.md +0 -45
- package/skills/hbg-life-simulation/references/project-spec.md +0 -62
- package/skills/hbg-life-simulation/references/render-and-qa.md +0 -107
- package/skills/hbg-life-simulation/references/storyboarding.md +0 -69
- package/skills/hbg-life-simulation/references/style-system.md +0 -80
- package/skills/hbg-life-simulation/references/visual-system.md +0 -44
- package/skills/heygen-avatar/SKILL.md +0 -489
- package/skills/heygen-avatar/references/asset-routing.md +0 -86
- package/skills/heygen-avatar/references/avatar-creation.md +0 -181
- package/skills/heygen-avatar/references/troubleshooting.md +0 -137
- package/skills/heytea-doodle-poster/SKILL.md +0 -132
- package/skills/heytea-doodle-poster/references/desktop-pet-character-modes.md +0 -103
- package/skills/heytea-doodle-poster/references/desktop-pet-environment.md +0 -122
- package/skills/heytea-doodle-poster/references/desktop-pet-pack.md +0 -106
- package/skills/heytea-doodle-poster/references/desktop-pet-workflow.md +0 -264
- package/skills/heytea-doodle-poster/references/evaluation.md +0 -246
- package/skills/heytea-doodle-poster/references/lettering-guide.md +0 -213
- package/skills/heytea-doodle-poster/references/mixed-media-style-guide.md +0 -101
- package/skills/heytea-doodle-poster/references/monster-poster-workflow.md +0 -56
- package/skills/heytea-doodle-poster/references/style-guide.md +0 -412
- package/skills/heytea-doodle-poster-hosted/SKILL.md +0 -132
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-character-modes.md +0 -103
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-environment.md +0 -122
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-pack.md +0 -106
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-workflow.md +0 -264
- package/skills/heytea-doodle-poster-hosted/references/evaluation.md +0 -246
- package/skills/heytea-doodle-poster-hosted/references/lettering-guide.md +0 -213
- package/skills/heytea-doodle-poster-hosted/references/mixed-media-style-guide.md +0 -101
- package/skills/heytea-doodle-poster-hosted/references/monster-poster-workflow.md +0 -56
- package/skills/heytea-doodle-poster-hosted/references/style-guide.md +0 -412
- package/skills/html2video/SKILL.md +0 -290
- package/skills/html2video/references/cjk-type.md +0 -173
- package/skills/html2video/references/editorial.md +0 -145
- package/skills/html2video/references/narration.md +0 -111
- package/skills/html2video/references/pitfalls.md +0 -238
- package/skills/html2video/references/shots.md +0 -198
- package/skills/html2video/references/storyboard.md +0 -323
- package/skills/hyperdirector/SKILL.md +0 -202
- package/skills/hyperdirector/docs/audio-workflow.md +0 -160
- package/skills/hyperdirector/docs/audio-workflow.zh-CN.md +0 -244
- package/skills/hyperdirector/docs/brand-kit-setup.md +0 -322
- package/skills/hyperdirector/docs/brand-kit-setup.zh-CN.md +0 -277
- package/skills/hyperdirector/docs/cursor-development-notes.md +0 -474
- package/skills/hyperdirector/docs/faq.md +0 -285
- package/skills/hyperdirector/docs/faq.zh-CN.md +0 -198
- package/skills/hyperdirector/docs/first-video.md +0 -320
- package/skills/hyperdirector/docs/first-video.zh-CN.md +0 -265
- package/skills/hyperdirector/docs/installation.md +0 -254
- package/skills/hyperdirector/docs/installation.zh-CN.md +0 -222
- package/skills/hyperdirector/docs/quickstart.md +0 -203
- package/skills/hyperframes/SKILL.md +0 -117
- package/skills/hyperframes/references/captions.md +0 -46
- package/skills/hyperframes/references/film.md +0 -48
- package/skills/hyperframes/references/format.md +0 -158
- package/skills/hyperframes/references/look.md +0 -69
- package/skills/hyperframes/references/motion.md +0 -95
- package/skills/hyperframes/references/overlays.md +0 -39
- package/skills/hyperframes/references/review.md +0 -51
- package/skills/hyperframes/references/runtimes.md +0 -69
- package/skills/hyperframes/references/skill-lifecycle.md +0 -49
- package/skills/hyperframes/references/sound.md +0 -43
- package/skills/hyperframes/references/spec.md +0 -76
- package/skills/hyperframes/references/story.md +0 -103
- package/skills/hyperframes-motion-director/SKILL.md +0 -920
- package/skills/hyperframes-motion-director/references/asset-choreography-and-render-qa.md +0 -185
- package/skills/hyperframes-motion-director/references/audio-sync.md +0 -83
- package/skills/hyperframes-motion-director/references/design-engineering.md +0 -156
- package/skills/hyperframes-motion-director/references/gsap-choreography.md +0 -202
- package/skills/hyperframes-motion-director/references/hyperframes-stability.md +0 -99
- package/skills/hyperframes-motion-director/references/imagegen-asset-pipeline.md +0 -227
- package/skills/hyperframes-motion-director/references/motion-background-system.md +0 -165
- package/skills/hyperframes-motion-director/references/motion-craft.md +0 -182
- package/skills/hyperframes-motion-director/references/premium-product-promo.md +0 -287
- package/skills/hyperframes-motion-director/references/text-over-background-layout.md +0 -221
- package/skills/hyperframes-motion-director/references/visual-standard.md +0 -174
- package/skills/hyperframes-motion-director/references/workflow.md +0 -320
- package/skills/hypit/SKILL.md +0 -367
- package/skills/hypit/references/creation/brief.md +0 -93
- package/skills/hypit/references/creation/script-and-time.md +0 -259
- package/skills/hypit/references/creation/transformations.md +0 -143
- package/skills/hypit/references/playbooks/craft/b-roll.md +0 -94
- package/skills/hypit/references/playbooks/craft/caption-tracking.md +0 -126
- package/skills/hypit/references/playbooks/craft/captions.md +0 -253
- package/skills/hypit/references/playbooks/craft/generated-dependencies.md +0 -38
- package/skills/hypit/references/playbooks/craft/graphic-compositions.md +0 -85
- package/skills/hypit/references/playbooks/craft/motion-graphics.md +0 -68
- package/skills/hypit/references/playbooks/craft/screen-demonstrations.md +0 -51
- package/skills/hypit/references/playbooks/craft/sound-mix.md +0 -70
- package/skills/hypit/references/playbooks/formats/narration-led-demo.md +0 -87
- package/skills/image/SKILL.md +0 -153
- package/skills/image/references/characters.md +0 -86
- package/skills/image/references/creative-direction.md +0 -137
- package/skills/image/references/de-slop.md +0 -95
- package/skills/image/references/dimensional.md +0 -88
- package/skills/image/references/editing.md +0 -112
- package/skills/image/references/golden-rules.md +0 -198
- package/skills/image/references/gpt-image.md +0 -228
- package/skills/image/references/models.md +0 -78
- package/skills/image/references/multi-panel.md +0 -354
- package/skills/image/references/nano-banana.md +0 -150
- package/skills/image/references/patterns/character-design.md +0 -150
- package/skills/image/references/patterns/ecommerce.md +0 -124
- package/skills/image-smixs/SKILL.md +0 -153
- package/skills/image-smixs/references/characters.md +0 -86
- package/skills/image-smixs/references/creative-direction.md +0 -137
- package/skills/image-smixs/references/de-slop.md +0 -95
- package/skills/image-smixs/references/dimensional.md +0 -88
- package/skills/image-smixs/references/editing.md +0 -112
- package/skills/image-smixs/references/golden-rules.md +0 -198
- package/skills/image-smixs/references/gpt-image.md +0 -228
- package/skills/image-smixs/references/models.md +0 -78
- package/skills/image-smixs/references/multi-panel.md +0 -354
- package/skills/image-smixs/references/nano-banana.md +0 -150
- package/skills/image-smixs/references/patterns/character-design.md +0 -150
- package/skills/image-smixs/references/patterns/ecommerce.md +0 -124
- package/skills/image-story-video-wizard/SKILL.md +0 -148
- package/skills/image-story-video-wizard/docs/ARTICLE_ALIGNMENT.md +0 -29
- package/skills/image-story-video-wizard/references/host-routing.md +0 -44
- package/skills/image-story-video-wizard/references/state-schema.md +0 -79
- package/skills/image-story-video-wizard/references/workflow.md +0 -203
- package/skills/image-story-video-wizard/references/writing-and-review.md +0 -60
- package/skills/ip-as-logo/SKILL.md +0 -151
- package/skills/ip-as-logo-s1dashu/SKILL.md +0 -151
- package/skills/jtxvideo-skill/SKILL.md +0 -337
- package/skills/kinetic-reel/SKILL.md +0 -140
- package/skills/kinetic-reel/examples/work-reel-26/STORYBOARD.md +0 -51
- package/skills/kinetic-reel/references/sound.md +0 -40
- package/skills/kinetic-reel/references/style-guide.md +0 -79
- package/skills/knowledge-explainer-skill/SKILL.md +0 -149
- package/skills/knowledge-explainer-skill/examples/ai_video_3steps.md +0 -61
- package/skills/knowledge-explainer-skill/examples/algorithm_bubble.md +0 -20
- package/skills/knowledge-explainer-skill/examples/before_after_demo.md +0 -38
- package/skills/knowledge-explainer-skill/examples/cta_outro.md +0 -11
- package/skills/knowledge-explainer-skill/examples/double_pendulum.md +0 -20
- package/skills/knowledge-explainer-skill/examples/paper_fold.md +0 -20
- package/skills/knowledge-explainer-skill/examples/script.md +0 -40
- package/skills/lanshu-create-ai-presenter-video/SKILL.md +0 -253
- package/skills/lanshu-create-ai-presenter-video/references/editing.md +0 -67
- package/skills/lanshu-create-ai-presenter-video/references/generation.md +0 -94
- package/skills/lanshu-create-ai-presenter-video/references/qa-recovery.md +0 -83
- package/skills/lanshu-create-ai-presenter-video/references/styled-explainer.md +0 -189
- package/skills/laoxu-video-script/SKILL.md +0 -117
- package/skills/laoxu-video-script/references/cases.md +0 -305
- package/skills/laoxu-video-script/references/de-ai.md +0 -32
- package/skills/laoxu-video-script/references/diagnostics.md +0 -67
- package/skills/laoxu-video-script/references/format.md +0 -62
- package/skills/laoxu-video-script/references/formulas.md +0 -43
- package/skills/laoxu-video-script/references/method.md +0 -115
- package/skills/laoxu-video-script/references/motifs-and-lines.md +0 -829
- package/skills/laoxu-video-script/references/persona.md +0 -38
- package/skills/laoxu-video-script/references/qihao-path.md +0 -35
- package/skills/laoxu-video-script/references/qihao-xinfa.md +0 -39
- package/skills/laoxu-video-script/references/redlines.md +0 -26
- package/skills/lemo-opuscar/SKILL.md +0 -67
- package/skills/lipnardo/SKILL.md +0 -308
- package/skills/lipnardo/examples/batch-personalized.md +0 -44
- package/skills/lipnardo/examples/photo-to-avatar-pipeline.md +0 -56
- package/skills/lipnardo/examples/single-video.md +0 -44
- package/skills/lipnardo/references/avatar-types.md +0 -42
- package/skills/lipnardo/references/credit-costs.md +0 -39
- package/skills/lipnardo/references/error-codes.md +0 -66
- package/skills/lipnardo/references/heygen-api-reference.md +0 -416
- package/skills/ll-video-decomposer/SKILL.md +0 -105
- package/skills/ll-video-decomposer/references/audiovisual-analysis-guide.md +0 -44
- package/skills/ll-video-decomposer/references/evidence-and-confidence-rules.md +0 -41
- package/skills/ll-video-decomposer/references/multi-video-comparison-template.md +0 -48
- package/skills/ll-video-decomposer/references/single-video-report-template.md +0 -47
- package/skills/ll-video-decomposer/references/tool-discovery-workflow.md +0 -30
- package/skills/ll-video-decomposer/references/transcription-routing.md +0 -65
- package/skills/ll-video-decomposer/references/video-acquisition-workflow.md +0 -30
- package/skills/ltx2-video/SKILL.md +0 -193
- package/skills/ltx2-video/references/mode_ux.md +0 -293
- package/skills/make-ai-short/SKILL.md +0 -130
- package/skills/make-blender-education-video/SKILL.md +0 -247
- package/skills/make-blender-education-video/references/evidence-and-explanation.md +0 -62
- package/skills/make-blender-education-video/references/github-workflow-discovery.md +0 -55
- package/skills/make-blender-education-video/references/production-workflow.md +0 -62
- package/skills/make-blender-education-video/references/story-patterns.md +0 -65
- package/skills/make-blender-education-video/references/visual-quality.md +0 -82
- package/skills/manage-storyboard-projects/SKILL.md +0 -128
- package/skills/manim-composer/SKILL.md +0 -176
- package/skills/manim-composer/references/narrative-patterns.md +0 -125
- package/skills/manim-composer/references/scene-examples.md +0 -216
- package/skills/manim-composer/references/visual-techniques.md +0 -223
- package/skills/manim-composer/templates/scenes-template.md +0 -147
- package/skills/monet-ai-editor-monet/SKILL.md +0 -367
- package/skills/motion-graphics/SKILL.md +0 -206
- package/skills/motion-graphics/references/craft.md +0 -136
- package/skills/motion-graphics/references/engine.md +0 -130
- package/skills/motion-graphics/references/export.md +0 -67
- package/skills/motion-graphics/references/physics.md +0 -100
- package/skills/motion-graphics/references/verify.md +0 -124
- package/skills/motion-video/SKILL.md +0 -133
- package/skills/motion-video/references/audio-and-beat-sync.md +0 -109
- package/skills/motion-video/references/composition-contract.md +0 -107
- package/skills/motion-video/references/production-pipeline.md +0 -147
- package/skills/motion-video/references/style-comic-spiderverse.md +0 -87
- package/skills/motion-video/references/style-glass-keynote.md +0 -69
- package/skills/motion-video-maker/SKILL.md +0 -1452
- package/skills/motion-video-maker/reference/components.md +0 -451
- package/skills/motion-video-maker/reference/workflow.md +0 -190
- package/skills/motioncraft/SKILL.md +0 -221
- package/skills/motioncraft/references/animation-system.md +0 -57
- package/skills/motioncraft/references/assets-and-licensing.md +0 -21
- package/skills/motioncraft/references/customization.md +0 -52
- package/skills/motioncraft/references/gpu-cloud-render.md +0 -15
- package/skills/motioncraft/references/music.md +0 -43
- package/skills/motioncraft/references/phase1-planning-and-preview.md +0 -74
- package/skills/motioncraft/references/phase2-timeline-audio.md +0 -33
- package/skills/motioncraft/references/phase3-pixel-review.md +0 -13
- package/skills/motioncraft/references/phase4-templates.md +0 -30
- package/skills/motioncraft/references/preflight.md +0 -27
- package/skills/motioncraft/references/qa.md +0 -53
- package/skills/motioncraft/references/reference-analysis.md +0 -37
- package/skills/narrator-ai-cli/SKILL.md +0 -256
- package/skills/narrator-ai-cli/references/magic-video.md +0 -205
- package/skills/narrator-ai-cli/references/operations.md +0 -230
- package/skills/narrator-ai-cli/references/resources.md +0 -126
- package/skills/narrator-ai-cli/references/workflows.md +0 -332
- package/skills/newcut-video-clipping/SKILL.md +0 -194
- package/skills/newcut-video-clipping/references/examples.md +0 -59
- package/skills/newcut-video-clipping/references/provider-config.md +0 -110
- package/skills/newcut-video-clipping/references/quality-check.md +0 -35
- package/skills/newcut-video-clipping/references/semantic-plan.md +0 -65
- package/skills/notes-to-video/SKILL.md +0 -476
- package/skills/openchatcut/SKILL.md +0 -100
- package/skills/openchatcut/references/editing-workflow.md +0 -54
- package/skills/openchatcut/references/getting-started.md +0 -106
- package/skills/openchatcut/references/known-errors.md +0 -62
- package/skills/openstoryline-install/SKILL.md +0 -228
- package/skills/orca-motion/SKILL.md +0 -100
- package/skills/orca-motion/references/api.md +0 -100
- package/skills/orca-motion/references/integration.md +0 -59
- package/skills/orca-motion/references/kinetic-type.md +0 -59
- package/skills/orca-motion/references/principles.md +0 -76
- package/skills/package-talking-head-video/SKILL.md +0 -90
- package/skills/package-talking-head-video/docs/EXAMPLES.md +0 -18
- package/skills/package-talking-head-video/docs/TROUBLESHOOTING.md +0 -29
- package/skills/package-talking-head-video/docs/USAGE.md +0 -83
- package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-multicolor-center-speaker.md +0 -144
- package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-semantic-template-system-v2.md +0 -1099
- package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-multicolor-center-speaker-design.md +0 -154
- package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-semantic-template-system-v2-design.md +0 -365
- package/skills/package-talking-head-video/examples/auto-editing-0/GATE_A.md +0 -56
- package/skills/package-talking-head-video/examples/auto-editing-0/GATE_D.md +0 -8
- package/skills/package-talking-head-video/examples/auto-editing-0/QA_REPORT.md +0 -34
- package/skills/package-talking-head-video/references/director-rules.md +0 -29
- package/skills/package-talking-head-video/references/motion-and-illustration.md +0 -25
- package/skills/paper-cut/SKILL.md +0 -164
- package/skills/paper-cut/references/asset-spec.md +0 -47
- package/skills/paper-cut/references/audio-and-chatcut.md +0 -26
- package/skills/paper-cut/references/hyperframes-assembly.md +0 -47
- package/skills/paper-cut/references/image-led-production.md +0 -65
- package/skills/paper-cut/references/storyboard-schema.md +0 -48
- package/skills/paper-cut/references/workflow.md +0 -39
- package/skills/personal-ip-brand-intro/SKILL.md +0 -216
- package/skills/personal-ip-brand-intro/references/intake-schema.md +0 -79
- package/skills/personal-ip-brand-intro/references/music-upload-workflow.md +0 -40
- package/skills/personal-ip-brand-intro/references/originality-rules.md +0 -42
- package/skills/personal-ip-brand-intro/references/qa-checklist.md +0 -60
- package/skills/personal-ip-brand-intro/references/rhythm-routing.md +0 -41
- package/skills/personal-ip-brand-intro/references/storyboard-contract.md +0 -42
- package/skills/pixel2motion/SKILL.md +0 -279
- package/skills/pixel2motion/references/html-delivery-template.md +0 -42
- package/skills/pixel2motion/references/motion-personality.md +0 -109
- package/skills/pixel2motion/references/reveal-patterns.md +0 -163
- package/skills/pixel2motion/references/ribbon-fitting.md +0 -90
- package/skills/pixel2motion/references/twelve-principles-for-logos.md +0 -116
- package/skills/premiere-batch-delivery/SKILL.md +0 -71
- package/skills/premiere-pro-mcp/SKILL.md +0 -161
- package/skills/promo-creator-skills/SKILL.md +0 -209
- package/skills/promo-creator-skills/references/mureka_prompt_guide.md +0 -251
- package/skills/promo-creator-skills/references/product_promo_bgm_prompting.md +0 -100
- package/skills/promo-video/SKILL.md +0 -408
- package/skills/qisi-video-remix/SKILL.md +0 -134
- package/skills/qisi-video-remix/examples/creative-plan.md +0 -133
- package/skills/qisi-video-remix/references/delivery-guide.md +0 -63
- package/skills/reel-video/SKILL.md +0 -237
- package/skills/remotion-ad-video/SKILL.md +0 -252
- package/skills/remotion-ad-video/references/ad-aesthetic-qa.md +0 -60
- package/skills/remotion-ad-video/references/ad-brief-contract.md +0 -235
- package/skills/remotion-ad-video/references/ad-exemplars.md +0 -186
- package/skills/remotion-ad-video/references/ad-intake.md +0 -54
- package/skills/remotion-ad-video/references/asset-harvest.md +0 -56
- package/skills/remotion-ad-video/references/audio-caption-system.md +0 -202
- package/skills/remotion-ad-video/references/concept-contract.md +0 -128
- package/skills/remotion-ad-video/references/creative-direction.md +0 -146
- package/skills/remotion-ad-video/references/fast-test-workflow.md +0 -86
- package/skills/remotion-ad-video/references/game-ad-patterns.md +0 -75
- package/skills/remotion-ad-video/references/hyperframes-output.md +0 -90
- package/skills/remotion-ad-video/references/industry-angle-library.md +0 -71
- package/skills/remotion-ads/SKILL.md +0 -278
- package/skills/remotion-ads/references/ad-copywriting.md +0 -229
- package/skills/remotion-ads/references/animations.md +0 -693
- package/skills/remotion-ads/references/brand-config-template.md +0 -355
- package/skills/remotion-ads/references/captions.md +0 -529
- package/skills/remotion-ads/references/carousels.md +0 -580
- package/skills/remotion-ads/references/components.md +0 -897
- package/skills/remotion-ads/references/copy-frameworks.md +0 -144
- package/skills/remotion-ads/references/formats.md +0 -436
- package/skills/remotion-ads/references/gemini-tts.md +0 -473
- package/skills/remotion-ads/references/html-in-canvas.md +0 -555
- package/skills/remotion-ads/references/local-assets.md +0 -543
- package/skills/remotion-ads/references/music.md +0 -656
- package/skills/remotion-code-motion-explainer/SKILL.md +0 -178
- package/skills/remotion-code-motion-explainer/references/code-motion-design.md +0 -86
- package/skills/remotion-code-motion-explainer/references/motion-production-patterns.md +0 -93
- package/skills/remotion-code-motion-explainer/references/production-and-qc.md +0 -99
- package/skills/remotion-code-motion-explainer/references/reference-reconstruction.md +0 -48
- package/skills/remotion-code-motion-explainer/references/ui-motion-shot-library.md +0 -62
- package/skills/remotion-motion-graphics/SKILL.md +0 -169
- package/skills/remotion-motion-graphics/references/patterns.md +0 -355
- package/skills/remotion-motion-graphics/references/polish.md +0 -102
- package/skills/remotion-motion-graphics/references/scaffold.md +0 -144
- package/skills/remotion-motion-graphics/references/traps.md +0 -152
- package/skills/remotion-resemble-ai/SKILL.md +0 -879
- package/skills/remotion-resemble-ai/rules/resemble-captions.md +0 -350
- package/skills/remotion-resemble-ai/rules/resemble-remotion-integration.md +0 -305
- package/skills/remotion-resemble-ai/rules/resemble-setup.md +0 -284
- package/skills/remotion-resemble-ai/rules/resemble-streaming-tts.md +0 -225
- package/skills/remotion-resemble-ai/rules/resemble-sync-tts.md +0 -239
- package/skills/remotion-resemble-ai/rules/resemble-voices.md +0 -213
- package/skills/remotion-resemble-ai/rules/visual-animations.md +0 -567
- package/skills/riffkit/SKILL.md +0 -196
- package/skills/riffkit/examples/any-look-styles.md +0 -11
- package/skills/riffkit/examples/faceless-and-auto.md +0 -16
- package/skills/riffkit/examples/localize-spanish.md +0 -18
- package/skills/riffkit/examples/tiktok-shop-product.md +0 -22
- package/skills/riffkit/references/anchor.md +0 -62
- package/skills/riffkit/references/api.md +0 -806
- package/skills/riffkit/references/details.md +0 -153
- package/skills/riffkit/references/errors.md +0 -69
- package/skills/riffkit/references/intents.md +0 -29
- package/skills/saas-motion-video/SKILL.md +0 -71
- package/skills/script-to-video/SKILL.md +0 -2627
- package/skills/shorts/SKILL.md +0 -372
- package/skills/shorts/references/caption-styles.md +0 -105
- package/skills/shorts/references/platform-specs.md +0 -149
- package/skills/shorts/references/remotion-patterns.md +0 -180
- package/skills/shorts/references/scoring-rubric.md +0 -106
- package/skills/smart-video-editor/SKILL.md +0 -327
- package/skills/smart-video-editor/docs/FONTS.md +0 -57
- package/skills/story-telling/SKILL.md +0 -222
- package/skills/story-telling/rules/composition.md +0 -130
- package/skills/story-telling/rules/images.md +0 -119
- package/skills/story-telling/rules/models.md +0 -98
- package/skills/story-telling/rules/narration.md +0 -87
- package/skills/story-telling/rules/pitfalls.md +0 -140
- package/skills/story-telling/rules/story-formats.md +0 -108
- package/skills/story-telling/rules/story-json.md +0 -143
- package/skills/story-telling/rules/voices.md +0 -114
- package/skills/story-telling/rules/workflow.md +0 -105
- package/skills/story-to-handdrawn-video/SKILL.md +0 -216
- package/skills/story-to-handdrawn-video/references/asset-workflow.md +0 -24
- package/skills/story-to-handdrawn-video/references/reference-style-workflow.md +0 -27
- package/skills/su-card-to-video/SKILL.md +0 -103
- package/skills/talking-head-video-pipeline/SKILL.md +0 -224
- package/skills/talking-head-video-pipeline/examples/prompts.md +0 -217
- package/skills/talking-head-video-pipeline/references/asr-adapters.md +0 -51
- package/skills/talking-head-video-pipeline/references/caption-workflow.md +0 -53
- package/skills/talking-head-video-pipeline/references/export-recipes.md +0 -78
- package/skills/talking-head-video-pipeline/references/layout-safety.md +0 -49
- package/skills/talking-head-video-pipeline/references/video-use-integration.md +0 -71
- package/skills/talking-head-video-pipeline/references/workflows/captions.md +0 -52
- package/skills/talking-head-video-pipeline/references/workflows/design.md +0 -77
- package/skills/talking-head-video-pipeline/references/workflows/doctor.md +0 -51
- package/skills/talking-head-video-pipeline/references/workflows/export.md +0 -50
- package/skills/talking-head-video-pipeline/references/workflows/init.md +0 -51
- package/skills/talking-head-video-pipeline/references/workflows/learn.md +0 -36
- package/skills/text-to-lottie/SKILL.md +0 -202
- package/skills/text-to-lottie/references/chapterization-transition-grammar.md +0 -132
- package/skills/text-to-lottie/references/design-taste.md +0 -292
- package/skills/text-to-lottie/references/lottie-spec-map.md +0 -82
- package/skills/text-to-lottie/references/motion-taste.md +0 -260
- package/skills/text-to-lottie/references/player-contract.md +0 -325
- package/skills/text-to-lottie/references/recipe-camera-scene-motion.md +0 -65
- package/skills/text-to-lottie/references/recipe-data-stats.md +0 -104
- package/skills/text-to-lottie/references/recipe-diagram-technical.md +0 -106
- package/skills/text-to-lottie/references/recipe-loaders-icons.md +0 -70
- package/skills/text-to-lottie/references/recipe-logo.md +0 -72
- package/skills/text-to-lottie/references/recipe-lower-thirds.md +0 -62
- package/skills/text-to-lottie/references/recipe-product-promo.md +0 -99
- package/skills/ultrademo/SKILL.md +0 -212
- package/skills/video-assemble/SKILL.md +0 -101
- package/skills/video-assemble-zenstory-ai/SKILL.md +0 -153
- package/skills/video-assemble-zenstory-ai/references/audio-modes.md +0 -63
- package/skills/video-assemble-zenstory-ai/references/explicit-audio-mix.md +0 -77
- package/skills/video-assemble-zenstory-ai/references/jianying/SOURCE.md +0 -14
- package/skills/video-assemble-zenstory-ai/references/narration-adoption.md +0 -103
- package/skills/video-assemble-zenstory-ai/references/packaging.md +0 -44
- package/skills/video-assemble-zenstory-ai/references/source-score.md +0 -146
- package/skills/video-assemble-zenstory-ai/references/subtitle-track.md +0 -202
- package/skills/video-editing/SKILL.md +0 -688
- package/skills/video-explainer/SKILL.md +0 -163
- package/skills/video-explainer/references/brief-to-script.md +0 -56
- package/skills/video-explainer/references/errors-and-privacy.md +0 -18
- package/skills/video-explainer/references/motion-storyboard.md +0 -82
- package/skills/video-explainer/references/render-and-verify.md +0 -62
- package/skills/video-explainer/references/review-gate.md +0 -82
- package/skills/video-explainer/references/setup-and-doctor.md +0 -33
- package/skills/video-script-builder/SKILL.md +0 -329
- package/skills/video-script-builder/examples/quick-start-transcript.md +0 -19
- package/skills/video-script-builder/references/audio-workflow.md +0 -84
- package/skills/video-script-builder/references/caption-components.md +0 -70
- package/skills/video-script-builder/references/common-pitfalls.md +0 -80
- package/skills/video-script-builder/references/component-catalog.md +0 -197
- package/skills/video-script-builder/references/component-recipes.md +0 -165
- package/skills/video-script-builder/references/gsap-patterns.md +0 -112
- package/skills/video-script-builder/references/pacing-rules.md +0 -78
- package/skills/video-script-builder/references/quality-checklist.md +0 -98
- package/skills/video-script-builder/references/remotion-patterns.md +0 -211
- package/skills/video-script-builder/references/shader-transitions.md +0 -115
- package/skills/video-script-builder/references/taste-principles.md +0 -160
- package/skills/video-scrub/SKILL.md +0 -216
- package/skills/video-scrub/references/profiles.md +0 -89
- package/skills/video-scrub/references/residue-map.md +0 -204
- package/skills/video-short-maker/SKILL.md +0 -182
- package/skills/video-shot-analysis-feishu/SKILL.md +0 -173
- package/skills/video-shotcraft/SKILL.md +0 -267
- package/skills/video-shotcraft/docs/deepseek-harness.md +0 -69
- package/skills/video-shotcraft/references/aesthetic-rules.md +0 -177
- package/skills/video-shotcraft/references/final-review.md +0 -112
- package/skills/video-shotcraft/references/guided-free-creation.md +0 -199
- package/skills/video-shotcraft/references/jianying-export.md +0 -182
- package/skills/video-shotcraft/references/music-beat-sync.md +0 -219
- package/skills/video-shotcraft/references/pipeline.md +0 -390
- package/skills/video-shotcraft/references/sequences/promo-energy-arc.md +0 -50
- package/skills/video-shotcraft/references/shots/ATTRIBUTION.md +0 -65
- package/skills/video-shotcraft/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/video-shotcraft/references/shots/camera/crash-zoom-punch.md +0 -39
- package/skills/video-shotcraft/references/shots/camera/cursor-flyover.md +0 -38
- package/skills/video-shotcraft-vincentwei10/SKILL.md +0 -316
- package/skills/video-shotcraft-vincentwei10/references/aesthetic-rules.md +0 -187
- package/skills/video-shotcraft-vincentwei10/references/final-review.md +0 -116
- package/skills/video-shotcraft-vincentwei10/references/guided-free-creation.md +0 -199
- package/skills/video-shotcraft-vincentwei10/references/jianying-export.md +0 -183
- package/skills/video-shotcraft-vincentwei10/references/music-beat-sync.md +0 -257
- package/skills/video-shotcraft-vincentwei10/references/pipeline.md +0 -401
- package/skills/video-shotcraft-vincentwei10/references/publish-upload-post.md +0 -111
- package/skills/video-shotcraft-vincentwei10/references/sequences/promo-energy-arc.md +0 -50
- package/skills/video-shotcraft-vincentwei10/references/shots/ATTRIBUTION.md +0 -62
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/basic-3d-scene.md +0 -41
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/crash-zoom-punch.md +0 -52
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/cursor-flyover.md +0 -39
- package/skills/video-structure-analyzer/SKILL.md +0 -148
- package/skills/video-structure-analyzer/examples/xhs-rook-time-spend/xhs-rook-time-spend_/346/213/211/347/211/207/346/213/206/350/247/243.md +0 -50
- package/skills/video-structure-analyzer/examples/xhs-smelly-cat/xhs-smelly-cat_/346/213/211/347/211/207/346/213/206/350/247/243.md +0 -19
- package/skills/video-toolkit/SKILL.md +0 -686
- package/skills/videocut/SKILL.md +0 -159
- package/skills/videodb/SKILL.md +0 -497
- package/skills/videodb/reference/api-reference.md +0 -741
- package/skills/videodb/reference/capture-reference.md +0 -399
- package/skills/videodb/reference/capture.md +0 -110
- package/skills/videodb/reference/editor-reference.md +0 -506
- package/skills/videodb/reference/editor.md +0 -389
- package/skills/videodb/reference/generative.md +0 -344
- package/skills/videodb/reference/indexing-reference.md +0 -481
- package/skills/videodb/reference/indexing.md +0 -537
- package/skills/videodb/reference/legacy/index-reference.md +0 -223
- package/skills/videodb/reference/legacy/index.md +0 -241
- package/skills/videodb/reference/legacy/search.md +0 -249
- package/skills/videodb/reference/migration.md +0 -113
- package/skills/vlog-auto-edit/SKILL.md +0 -982
- package/skills/vlog-auto-edit/examples/project_structure.md +0 -84
- package/skills/vox-animated-ad-mcp/SKILL.md +0 -419
- package/skills/vox-director/SKILL.md +0 -351
- package/skills/vox-director/references/beat-layer.md +0 -143
- package/skills/vox-director/references/host-mode.md +0 -120
- package/skills/vox-director/references/local-engine.md +0 -73
- package/skills/vox-director/references/models-and-gotchas.md +0 -91
- package/skills/vox-director/references/prompt-guide.md +0 -275
- package/skills/vox-director/references/voices.md +0 -59
- package/skills/xingchen-vox-collage/SKILL.md +0 -251
- package/skills/xingchen-vox-collage/references/asset-layer-contract.md +0 -98
- package/skills/xingchen-vox-collage/references/creative-exploration.md +0 -19
- package/skills/xingchen-vox-collage/references/learned-branches.md +0 -34
- package/skills/xingchen-vox-collage/references/remotion-scene-contract.md +0 -77
- package/skills/xingchen-vox-collage/references/visual-language.md +0 -74
- package/skills/xingchen-vox-collage/references/visual-qa.md +0 -59
- package/skills/youtube/SKILL.md +0 -147
- package/skills/youtube/references/algorithm-guide.md +0 -59
- package/skills/youtube/references/analytics-benchmarks.md +0 -67
- package/skills/youtube/references/dataforseo-integration.md +0 -51
- package/skills/youtube/references/monetization-guide.md +0 -62
- package/skills/youtube/references/repurposing-guide.md +0 -54
- package/skills/youtube/references/retention-scripting-guide.md +0 -75
- package/skills/youtube/references/seo-playbook.md +0 -77
- package/skills/youtube/references/shorts-playbook.md +0 -64
- package/skills/youtube/references/thumbnail-ctr-guide.md +0 -73
- package/skills/youtube-shorts-factory/SKILL.md +0 -358
- package/skills/youtube-shorts-factory/resources/adaptation-guide.md +0 -133
- package/skills/youtube-shorts-factory/resources/storyboard-template.md +0 -271
- package/skills/youtube-shorts-factory/resources/workflow-steps.md +0 -139
- package/studio/ui/dist/assets/ExportCenter-DEyy1vs_.js +0 -1
- package/studio/ui/dist/assets/SettingsModal-CQmsA2A2.js +0 -2
- package/studio/ui/dist/assets/es-AqUfIkAy.js +0 -1
- package/studio/ui/dist/assets/index-C7moXjTY.css +0 -1
- package/studio/ui/dist/assets/index-DdU5QNpY.js +0 -1623
- package/studio/ui/dist/assets/ja-YwiCB4QQ.js +0 -1
- package/studio/ui/dist/assets/ko-CKtBPDze.js +0 -1
- package/studio/ui/dist/assets/zh-CN-DtNEwKWJ.js +0 -1
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pixel2motion
|
|
3
|
-
description: "Turn a raster logo (PNG/JPG/WebP/screenshot) into a clean minimal SVG with edge smoothness as the primary hard gate and IoU optimized as high as reasonably possible without a fixed global threshold, then into a choreographed logo animation delivered as standalone JS-rendered HTML, applying Disney's 12 animation principles. Use when asked to animate a logo, build a logo reveal / splash screen / brand intro, convert a logo image into animated SVG or HTML, add motion to a vectorized mark, or create loading/idle/hover motion for a brand mark. v2: also handles self-crossing draw-on choreography (split-fill, exact easing subdivision, tip glint), closed variable-width ribbon fitting, and quantitative motion QA (easing probe, ink-delta continuity sweep). Runs in AICUT: the film is film.html, a page per shot, drawn by `aicut look` and `aicut render`."
|
|
4
|
-
license: MIT
|
|
5
|
-
source: "nolangz/pixel2motion"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Pixel2Motion (v2)
|
|
9
|
-
|
|
10
|
-
## Running it in AICUT
|
|
11
|
-
|
|
12
|
-
AICUT's film is `film.html`: it cuts pages, footage, pictures and sound together on tracks. A page is a web page that
|
|
13
|
-
sets `window.film = { frame(t) }` and draws that moment — no framework, no build step, no composition object, no
|
|
14
|
-
`registerRoot`. Five shots are five pages cut together, not one page that changes scene, so each shot stays trimmable
|
|
15
|
-
and replaceable in Studio.
|
|
16
|
-
|
|
17
|
-
```sh
|
|
18
|
-
npx -y @autoaiai/aicut@latest # the manual: the format and the commands, always current
|
|
19
|
-
npx -y @autoaiai/aicut@latest open . # make this folder a film and print Studio's address
|
|
20
|
-
npx -y @autoaiai/aicut@latest look # a contact sheet of the whole film, its sound, and a determinism check
|
|
21
|
-
npx -y @autoaiai/aicut@latest look 4.5 # one frame, full size — look at the PNG, not at the code
|
|
22
|
-
npx -y @autoaiai/aicut@latest render # the MP4, beside film.html
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Run the manual before the first film: it is authoritative for the format, and this skill is about the method above it.
|
|
26
|
-
|
|
27
|
-
Where the words below name another program's part, it becomes this:
|
|
28
|
-
|
|
29
|
-
| elsewhere | in AICUT |
|
|
30
|
-
|---|---|
|
|
31
|
-
| composition, timeline, project file | `film.html`; tracks and clips inside it |
|
|
32
|
-
| a scene, a sequence, a slide | a page (`pages/<name>.html`) cut onto a track |
|
|
33
|
-
| `useCurrentFrame()`, `interpolate()` | `frame(t)` — the picture depends only on `t`, never on state or `Date.now()` |
|
|
34
|
-
| a still, a screengrab | `aicut look <t>` |
|
|
35
|
-
| `render` / `build` / `export` | `aicut render` (the person can also export from Studio) |
|
|
36
|
-
| a dev server, a preview window | `aicut open` and the Studio address it prints |
|
|
37
|
-
|
|
38
|
-
Hard rules that hold whatever the method says: the picture depends only on `t`; every value in the person's prompt is
|
|
39
|
-
binding; look at the frames `look` writes before saying a film is done.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
**Pixel → Vector → Motion.** This skill fuses two disciplines:
|
|
43
|
-
|
|
44
|
-
1. **Vectorization discipline** (from logo-vectorizer-minimal-smooth): fit the raster source with the *lowest-complexity* editable geometry that passes visual QA.
|
|
45
|
-
2. **Motion discipline** (from Disney's 12 Principles of Animation): choreograph that geometry into brand-appropriate motion with evidence-based timing and easing.
|
|
46
|
-
|
|
47
|
-
The fusion rests on one insight: **minimal smooth geometry IS animatable geometry**. A logo built from 3 semantic parts animates cleanly; a logo built from 400 pixel-stair traced points cannot be choreographed or accepted as a professional logo vector. Phase 2 therefore does not merely vectorize — it *structures for motion*. And the animation must always land exactly on the QA-verified static vector (the **Final Frame Contract**).
|
|
48
|
-
|
|
49
|
-
## Deliverables
|
|
50
|
-
|
|
51
|
-
- `logo.svg` — final static vector (motion-ready structure)
|
|
52
|
-
- `logo_motion.html` — showcase-style standalone HTML with the main animation, atomic motion studies, replay/slow/speed controls, and QA hooks
|
|
53
|
-
- `motion_spec.md` — personality words, principles applied, timeline table, easing tokens, atomic motions, tunable controls
|
|
54
|
-
- `outputs/fit_iterations/*.png` + `overlay_progress_strip.png` — geometry QA evidence
|
|
55
|
-
- `outputs/motion_frames/*.png` + `motion_strip.png` — motion QA evidence
|
|
56
|
-
- `final_render.png`, `html_render.png` — static renders; path audit artifacts when smoothness was a concern
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## Phase 1 — PIXEL: Read the source, write the brief
|
|
61
|
-
|
|
62
|
-
1. **Analyze the raster source.** Record image size, mode, alpha, foreground colors, background (transparent/solid). Identify the *semantic parts*: mark vs wordmark, individual letters, dots, swooshes, containers, negative space. Each part is a future actor in the animation.
|
|
63
|
-
2. **Write the motion brief** before touching geometry:
|
|
64
|
-
- **Personality**: 3 brand motion words (e.g. "swift, precise, confident"). Derive from the logo's own visual language (geometric = engineered motion, organic = flowing motion, rounded = soft/bouncy) plus any user-stated brand context. See `references/motion-personality.md` to map words → timing scale, easing tokens, principle emphasis.
|
|
65
|
-
- **Usage context**: splash/intro (deliberate 1200–2000ms), header reveal (300–800ms), loading state (continuous loop), hover micro-interaction (150–300ms). Ask the user only if genuinely ambiguous; default to a splash-style reveal plus a static end state.
|
|
66
|
-
- **Choreography sketch**: which parts move, in what order, using which reveal pattern (see `references/reveal-patterns.md`).
|
|
67
|
-
3. Record the brief in `motion_spec.md`. Every later parameter must trace back to it.
|
|
68
|
-
|
|
69
|
-
## Phase 2 — VECTOR: Fit minimal geometry, structured for motion
|
|
70
|
-
|
|
71
|
-
Follow the lowest-complexity-first workflow. **Do not maximize pixel-fit by default**; start with the simplest editable geometry that can explain the mark, escalating only when an overlay shows a structural mismatch.
|
|
72
|
-
|
|
73
|
-
### Complexity Ladder
|
|
74
|
-
|
|
75
|
-
Use the first level that matches the source well enough:
|
|
76
|
-
|
|
77
|
-
1. **Primitives**: circles, ellipses, rects, lines, simple arcs, transforms.
|
|
78
|
-
2. **Primitive composites**: boolean-like combinations of a few primitives or masks.
|
|
79
|
-
3. **Few-curve analytic paths**: a small number of cubic segments for smooth ribbons, swooshes, C-marks, leaves, waves, shields. For closed and/or self-intersecting variable-width ribbons (∞ marks, scripts) use the centerline-scaffold recipe — `references/ribbon-fitting.md` + `scripts/fit_ribbon_centerline.py`; its report also emits each crossing's arc fractions, which Phase 3's split draw-on needs.
|
|
80
|
-
4. **Smoothed outline paths**: more knots only where the source has real shape changes; preserve G1 tangent continuity, no noisy handle flips.
|
|
81
|
-
5. **Trace-derived paths**: only for irregular silhouettes where simpler geometry fails (`scripts/raster_logo_trace.py` for measurement/starter masks). Trace output is a measurement aid, never automatically final art. Smooth or refit the trace before delivery.
|
|
82
|
-
|
|
83
|
-
If a higher-complexity version improves only pixel antialiasing, keep the lower one. If a lower-complexity version has wrong endpoints, width profile, center, silhouette, negative space, or visibly stair-stepped edges, move up one level or refit with smooth curves. Prefer live SVG `<text>` for wordmarks unless exact letterforms are required. Decide the provisional complexity from the source itself and record the reason in `motion_spec.md`.
|
|
84
|
-
|
|
85
|
-
### Smoothness Gate (hard requirement)
|
|
86
|
-
|
|
87
|
-
IoU is not allowed to hide bad vector craft. **A smooth logo source must ship as smooth vector geometry.** The final SVG fails geometry acceptance if any intended smooth edge visibly stair-steps, chatters, has pixel-grid orthogonal runs, contains noisy trace knots, or looks like a bitmap mask at 200-400% zoom, even when IoU is numerically high.
|
|
88
|
-
|
|
89
|
-
- Pixel-grid contours from threshold masks are acceptable only as starter measurements or for genuinely pixel-art logos. For ordinary logos, refit them into primitives, arcs, ellipses, or cubic paths before Phase 3.
|
|
90
|
-
- A path made mostly of 1px horizontal/vertical line segments is a failed smoothness gate for curves, swooshes, ellipses, circles, letters, and rounded shapes.
|
|
91
|
-
- Smooth parts must be represented by the lowest number of curve segments that preserves silhouette, width profile, extrema, and negative space. Do not chase antialiasing with hundreds of line segments.
|
|
92
|
-
- When replacing a high-IoU jagged trace with a smoother curve slightly lowers IoU, prefer the smooth version if structural landmarks still match. The smooth result may pass with a lower IoU when the residuals are explainable, visually minor, and caused by deliberate smoothing, antialiasing, font substitution, or raster-source artifacts. Record the tradeoff in `motion_spec.md`.
|
|
93
|
-
- Inspect a zoomed render (`final_render.png` or a dedicated zoom crop) before accepting. If the user would notice stair-stepping in a screenshot or browser zoom, the vector is not accepted.
|
|
94
|
-
|
|
95
|
-
### Motion-Ready Structure (the fusion layer)
|
|
96
|
-
|
|
97
|
-
The SVG is a cast of actors, not just a picture. While fitting geometry, enforce:
|
|
98
|
-
|
|
99
|
-
- **One element (or `<g>`) per semantic part**, with stable ids: `#mark`, `#wordmark`, `#letter-a`, `#dot`, `#swoosh`. Animation targets ids/classes — never structural selectors like `path:nth-child(3)`.
|
|
100
|
-
- **Split paths along animation seams.** If the choreography sketch animates the swoosh separately from the dot, they must be separate elements even if one compound path could render both.
|
|
101
|
-
- **Transform origins**: parts that scale/rotate get `transform-box: fill-box; transform-origin: center` (or a deliberate origin) — set via CSS in Phase 3, but verify each part's bounding box makes that origin sensible now.
|
|
102
|
-
- **Draw-on readiness**: any stroke that will be drawn on gets `pathLength="1"` so dash animation is `stroke-dasharray: 1; stroke-dashoffset: 1 → 0` regardless of true length. Confirm the path's start point and direction match the intended draw direction; reverse the path if not.
|
|
103
|
-
- **Wordmark letters**: if letters will stagger, give each its own element/`<text>` span; a single `<text>` cannot cascade.
|
|
104
|
-
- **No baked transforms that fight choreography**: keep part-local coordinates simple so animated transforms compose predictably.
|
|
105
|
-
|
|
106
|
-
### Geometry QA (evidence required)
|
|
107
|
-
|
|
108
|
-
- Write SVG with a correct `viewBox`; render to PNG; generate a cyan overlay over the source; save every overlay under `outputs/fit_iterations/NN_name_overlay.png`.
|
|
109
|
-
- Inspect overlays with multimodal vision: centers, radii, endpoints, width profile, extrema, negative space, silhouette.
|
|
110
|
-
- Compute and record IoU every iteration, but do **not** use a fixed global IoU threshold. Optimize IoU as high as reasonably possible after smoothness and structural correctness are protected. A slightly lower IoU can pass when the overlay is visually faithful and residuals are documented; a high-IoU fit still fails if it has structural mismatches, noisy handles, visible bumps, wrong negative space, pixel-stair edges, or path-audit failures.
|
|
111
|
-
- Iterate one complexity level at a time; prefer moving/retuning a few knots before adding knots; add local complexity only where the overlay proves failure. If a path looks bumpy, reduce knots and re-fit macro curves — do not add points.
|
|
112
|
-
- For complex smooth paths or any hand-fitted curve that feels uneven, run `scripts/svg_path_audit.py` (noisy handles, tangent jumps, tiny alternating segments, and stair-step trace runs are failures even at high IoU).
|
|
113
|
-
- Save at least one smoothness evidence image when the source has curves: a zoomed crop, path audit artifact, or render that makes edge quality inspectable. Record the visual verdict in `motion_spec.md`.
|
|
114
|
-
- Finish with `scripts/overlay_progress_strip.py` (source + current-run overlays + final render only).
|
|
115
|
-
|
|
116
|
-
### Iteration budget: smooth accepted fit or best-of-10
|
|
117
|
-
|
|
118
|
-
Fitting loops rabbit-hole easily. Default budget: **10 geometry iterations per run** (one iteration = one geometry change + render + overlay inspection). The loop stops when either one arrives first: **accepted fit** (smoothness, structural, and visual checks pass, with IoU pushed as high as practical) or **10 iterations attempted**.
|
|
119
|
-
|
|
120
|
-
- Number every iteration's artifacts (`NN_name_overlay.png`) and record metrics per iteration (IoU, `src_only_px`, `render_only_px`, boundary RMS / local residuals, audit warnings, smoothness verdict, visual verdict). Persist the fitting scripts and parameters under `outputs/fit_work/` so any iteration can be resumed later — never leave them in throwaway temp paths.
|
|
121
|
-
- Reaching accepted fit early ends the loop early; proceed to Phase 3 immediately.
|
|
122
|
-
- When the 10-iteration budget is exhausted: stop refining and select the best candidate. Ranking for "best": (1) smoothness gate pass, (2) no structural mismatch, (3) IoU and pixel deltas, (4) boundary RMS / local residuals, (5) fewest audit kinks and tangent issues, (6) visual overlay verdict, (7) lowest editable complexity. A clean-but-slightly-loose fit generally beats a tighter fit with a visible tangent kink; an invisible kink may ride along only as a disclosed known issue.
|
|
123
|
-
- If the shipped candidate has a lower IoU than another rejected candidate, report why it still passes or why it is only a preview (e.g. "IoU is lower because jagged threshold artifacts were smoothed; endpoints and silhouette landmarks match"). Geometry-only refinement does not require redoing the choreography — part ids and the centerline survive, so `motion.css` is reusable and only re-packaging (`animate_svg_showcase.py`) plus the Final Frame Contract re-check are needed.
|
|
124
|
-
|
|
125
|
-
## Phase 3 — MOTION: Choreograph with the 12 principles
|
|
126
|
-
|
|
127
|
-
Choreograph against `references/twelve-principles-for-logos.md`. Minimum bar: every animation consciously applies **Staging, Slow In/Slow Out, Timing, Follow Through, and Appeal**; the rest as personality demands.
|
|
128
|
-
|
|
129
|
-
### Structure the timeline with the Golden Ratio
|
|
130
|
-
|
|
131
|
-
```
|
|
132
|
-
Anticipation : Action : Follow-through = 20% : 50% : 30%
|
|
133
|
-
```
|
|
134
|
-
```
|
|
135
|
-
For a 1500ms reveal: ~300ms anticipation, ~750ms main action, ~450ms settle. Stagger overlapping parts by 10–20% of the part's own duration; never let all parts start or stop on the same frame (the #1 mechanical-motion mistake). Heavier/larger parts move slower; the drag hierarchy (root → primary → secondary → tertiary detail) orders the cascade.
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### Derive parameters, don't invent them
|
|
139
|
-
|
|
140
|
-
Pick the duration band from usage context, easing tokens and exaggeration level from the personality mapping, and the reveal pattern from the part inventory. `references/reveal-patterns.md` has annotated, principle-tagged patterns: draw-on, staggered assembly, scale-pop with overshoot, mask wipe, morph-from-primitive, letter cascade, plus idle loops and hover states. Define CSS custom properties (`--p2m-duration`, `--p2m-ease-*`) once and use them everywhere — brand consistency lives in tokens. **Exception that overrides this rule: inside `@keyframes`, timing functions must be literal** (see Implementation) — a token referenced there is silently dropped and the motion degrades to linear without any error.
|
|
141
|
-
|
|
142
|
-
### Implementation
|
|
143
|
-
|
|
144
|
-
- Read `references/html-delivery-template.md` before building `logo_motion.html`.
|
|
145
|
-
- Author the main animation as **CSS keyframes targeting the part ids** in `motion.css`, or as a bespoke JS act/phase timeline when the choreography needs measured pivots, live sequencing, or per-letter layout. If using JS, preserve the same QA hooks described below.
|
|
146
|
-
- CSS keyframes must use `animation-fill-mode: both` or `forwards`; otherwise deterministic `?t=<ms>` frame capture and `?static=1` final-state checks are not reliable.
|
|
147
|
-
- **Keyframe easing must be literal.** `animation-timing-function: var(--token)` inside `@keyframes` does not resolve in Chromium: the declaration is silently dropped and the segment falls back to the animation's base timing function — usually `linear`, the exact mechanical look the principles forbid. Worse, multi-piece choreography whose pieces were paced by subdivided easings degrades to per-piece constant speeds with **speed cliffs at every handoff** (a measured 4.3× velocity discontinuity read as a "stutter"). Keep tokens for `animation:` shorthands (durations/delays resolve fine) and documentation, but write literal `cubic-bezier(...)` in every keyframe, with a comment naming the token. This failure is invisible in casual playback and in evenly-spaced frame strips — verify with the easing probe (Motion QA step 3).
|
|
148
|
-
- **Author all part animations on one shared clock** (one duration, phase offsets as intra-keyframe percentages) so `?t=<ms>` maps 1:1 to the choreography and probes/captures stay trivial to reason about.
|
|
149
|
-
- Prefer a single-keyframes-per-element design; when one element needs independent property timelines (e.g. eased movement + linear fades), use comma-separated parallel animations on the same clock.
|
|
150
|
-
- Build the default deliverable with `scripts/animate_svg_showcase.py` — it recreates the main SVG via JavaScript DOM calls, wraps motion CSS for reduced-motion safety, and adds a template shell with atomic motion studies, principles strip, replay button, slow-motion toggle, speed slider, `?t=<ms>`, `?static=1`, and `window.__p2mReady`.
|
|
151
|
-
- `scripts/animate_svg_html.py` remains a minimal fallback for QA or debugging; it is not the preferred final user-facing HTML because it lacks the atomic motions and tuners.
|
|
152
|
-
- The HTML must stay dependency-free and derived from the same geometry as `logo.svg`; atomic variants must reuse the same mark, not separate decorative redraws.
|
|
153
|
-
- The default HTML motion stage displays the main logo at **0.7x of the SVG's intrinsic width** (`width * 0.7`, still capped by the viewport). This leaves breathing room around the animation and reduces clipping risk. QA screenshots may override the viewport/crop, but the user-facing template should keep the 0.7x presentation scale.
|
|
154
|
-
- **Reduced motion is mandatory**: under `prefers-reduced-motion: reduce` the logo must appear immediately in its final static state.
|
|
155
|
-
- Infinite loops (loading/idle) must be seamless: the 100% keyframe state must equal the 0% state; test mentally at 30 seconds — still pleasant?
|
|
156
|
-
|
|
157
|
-
### Draw-on across self-intersections
|
|
158
|
-
|
|
159
|
-
A wide masked draw stroke following a self-crossing centerline (∞ marks, script signatures, monograms) prematurely reveals the *other* branch wherever the paths cross — an "X" pops in before the pen draws it. When the centerline self-intersects, apply the **split-fill recipe** in `references/reveal-patterns.md` §1b: cut the fill into pieces between crossing passes (each with its own mask spine), use **butt caps** with dash pattern `1 1` (round caps make the visible tip lead the pen by half the stroke width — it stalls at every handoff, then the next piece pops in as a cap-radius disk), subdivide the global easing **exactly** (de Casteljau) so the combined pace equals the design, and bridge the paint-under-ink dead window at the later pass with a tip glint riding `offset-path`. The dash-math artifact table in the same reference prevents the t=0 cap-dot and tail-leak artifacts. Get the cut fractions from `scripts/fit_ribbon_centerline.py`'s report (it emits each exclusion's arc fractions). Prove the fix with frames around each crossing pass plus the continuity sweep (Motion QA step 4).
|
|
160
|
-
|
|
161
|
-
### Showcase HTML requirements
|
|
162
|
-
|
|
163
|
-
The final HTML must follow the provided template pattern:
|
|
164
|
-
|
|
165
|
-
- **Main animation**: a primary hero stage in `#logo-root`, replayable by click/tap and by the Replay button.
|
|
166
|
-
- **Atomic motions**: at least 3 small studies such as hover, pulse, arc/spin, press/squash, draw-on, or letter cascade. They should demonstrate isolated motion principles and target semantic parts when practical.
|
|
167
|
-
- **Tuners**: replay button, slow-motion toggle, and speed slider. The speed slider must affect the live main animation, not only future replays.
|
|
168
|
-
- **Principles strip**: compact pills for the principles used; when using a JS timeline, highlight active principles during the phase where they are visible.
|
|
169
|
-
- **QA hooks**: keep `#logo-root`, `?t=<ms>`, `?static=1`, and `window.__p2mReady` compatible with `scripts/capture_motion_frames.py`.
|
|
170
|
-
|
|
171
|
-
### Motion QA (evidence required)
|
|
172
|
-
|
|
173
|
-
1. Capture frames at choreography-significant timestamps with `scripts/capture_motion_frames.py` (uses the `?t=` hook for deterministic seeking): at minimum t=0, end of anticipation, mid-action, peak overshoot, settle, and final — **plus every risk window**: each crossing pass, piece handoff, and occluder entry/exit gets its own bracketing frames (a strip of evenly-spaced beats hides handoff defects entirely).
|
|
174
|
-
2. Inspect the strip with multimodal vision: Does anticipation read? Do parts cascade rather than move in lockstep? Does overshoot stay within personality bounds? Is anything clipped by the viewBox mid-flight (expand viewBox or rein in the motion — never let the logo clip)?
|
|
175
|
-
3. **Probe the easing actually applied** with `scripts/probe_motion_continuity.py --probe`: read computed values (`stroke-dashoffset`, `offset-distance`, …) at 2–3 seeked timestamps and compare against the designed curve. Values matching the LINEAR window fraction at every timestamp mean a keyframe timing function was silently dropped (see the literal-easing rule). The t=0 frame must also be checked for dash artifacts (cap ink-dot, tail leak).
|
|
176
|
-
4. **Continuity sweep across risk windows** with `--ink-sweep`: ink-pixel deltas every ~10ms across handoffs/crossings. A flatline followed by a jump is the stall+pop signature and fails the run. A single near-zero sample where the pen passes *under* already-painted ink is physical — bridge it perceptually (tip glint), don't leave it bare.
|
|
177
|
-
5. **Final Frame Contract**: the captured final frame must match `final_render.png` (the QA-verified static vector) in geometry, color, scale, and position. Use `--compare-final` for a cross-pipeline pixel-diff number, then run the decisive **same-pipeline check**: capture `?static=1` and `?t=<end>` with the same tool, viewport, and DPR — these must match **exactly (0 diff)**. Cross-pipeline residue (different renderer/DPR/resampling) is noise to confirm visually, not chase numerically. An animation that lands somewhere else than the verified logo fails the run.
|
|
178
|
-
6. For loops, capture one frame just before and just after the seam; they must be visually identical.
|
|
179
|
-
7. Assemble `motion_strip.png` as the motion analog of the overlay progress strip.
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
## Bundled Scripts
|
|
184
|
-
|
|
185
|
-
# Phase 2 — measurement / starter trace (inspect & simplify its output; never final art by default)
|
|
186
|
-
python3 scripts/raster_logo_trace.py source.png --out outputs
|
|
187
|
-
|
|
188
|
-
# Phase 2 — render + cyan overlay + IoU metrics in one step (headless Chrome; set CHROME_BIN if needed)
|
|
189
|
-
python3 scripts/render_overlay.py logo.svg source.png \
|
|
190
|
-
--out outputs/fit_iterations/02_refined_overlay.png \
|
|
191
|
-
--render-out outputs/final_render.png --report outputs/fit_metrics.json
|
|
192
|
-
|
|
193
|
-
# Phase 2 — closed / self-intersecting variable-width ribbons (∞ marks, scripts):
|
|
194
|
-
|
|
195
|
-
# centerline scaffold + auto-recenter + source edge snap; report includes each
|
|
196
|
-
|
|
197
|
-
# exclusion's arc fractions (= split-cut parameters for Phase 3)
|
|
198
|
-
python3 scripts/fit_ribbon_centerline.py source.png --seeds seeds.json --out-dir outputs/ribbon_fit
|
|
199
|
-
|
|
200
|
-
# Phase 2 — Bezier smoothness audit before accepting complex paths
|
|
201
|
-
python3 scripts/svg_path_audit.py logo.svg --out-svg bezier_segments.svg --report bezier_audit.json
|
|
202
|
-
|
|
203
|
-
# Phase 2 — geometry QA strip
|
|
204
|
-
python3 scripts/overlay_progress_strip.py --source source.png --dir outputs/fit_iterations \
|
|
205
|
-
--pattern "*overlay*.png" --final-image outputs/final_render.png --out outputs/overlay_progress_strip.png
|
|
206
|
-
|
|
207
|
-
# Phase 3 — static HTML (intermediate check of JS DOM reconstruction)
|
|
208
|
-
python3 scripts/svg_to_js_html.py logo.svg --out logo_static.html --title "Logo"
|
|
209
|
-
|
|
210
|
-
# Phase 3 — animated showcase HTML deliverable
|
|
211
|
-
python3 scripts/animate_svg_showcase.py logo.svg --css motion.css --out logo_motion.html \
|
|
212
|
-
--title "Logo Motion" --duration-hint 1500
|
|
213
|
-
|
|
214
|
-
# Phase 3 — minimal fallback HTML (debug/QA only, not preferred final delivery)
|
|
215
|
-
python3 scripts/animate_svg_html.py logo.svg --css motion.css --out logo_motion_minimal.html \
|
|
216
|
-
--title "Logo Motion" --duration-hint 1500
|
|
217
|
-
|
|
218
|
-
# Phase 3 — deterministic frame capture + strip + final-frame diff (requires playwright)
|
|
219
|
-
python3 scripts/capture_motion_frames.py logo_motion.html \
|
|
220
|
-
--times 0,300,700,1000,1250,1500 --out outputs/motion_frames \
|
|
221
|
-
--strip outputs/motion_strip.png --compare-final outputs/final_render.png
|
|
222
|
-
|
|
223
|
-
# Phase 3 — easing probe: is the designed curve the one the browser runs? (requires playwright)
|
|
224
|
-
python3 scripts/probe_motion_continuity.py logo_motion.html \
|
|
225
|
-
--times 500,700,900 --probe "#draw-stroke:stroke-dashoffset,#pen-glint:offset-distance"
|
|
226
|
-
|
|
227
|
-
# Phase 3 — ink-delta continuity sweep across handoffs/crossings (requires playwright)
|
|
228
|
-
python3 scripts/probe_motion_continuity.py logo_motion.html --ink-sweep 850:1010:10
|
|
229
|
-
```
|
|
230
|
-
Environment notes: Pillow/numpy via a venv when system Python is externally managed (`python3 -m venv .venv && .venv/bin/pip install pillow numpy`); geometry rendering uses headless Chrome (`CHROME_BIN` if needed), while motion frame capture requires Playwright or equivalent deterministic browser screenshot tooling.
|
|
231
|
-
|
|
232
|
-
If Playwright is unavailable, use any real-browser screenshot tooling available in the environment with the same `?t=<ms>` URLs; wall-clock screenshots of a running animation are not acceptable evidence (non-deterministic).
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
## Acceptance Criteria
|
|
236
|
-
|
|
237
|
-
Completion requires evidence, not claims:
|
|
238
|
-
|
|
239
|
-
**Geometry (inherited):**
|
|
240
|
-
- `logo.svg` exists, renders, and uses the lowest complexity that passes overlay QA and the smoothness gate; structural mismatches (center, scale, endpoints, width profile, spacing, negative space, silhouette) are absent; smooth marks pass visual zoom inspection and path audit when budgeted or when curves felt uneven.
|
|
241
|
-
- Report final IoU and pixel deltas, but do not apply a fixed global IoU pass/fail value. IoU should be as high as practical after preserving smoothness and structural correctness. If a lower-IoU result passes, explain exactly why the residuals are acceptable.
|
|
242
|
-
- Final geometry must not contain visible stair-stepped edges on intended smooth shapes. A jagged trace with excellent IoU is rejected unless the source is deliberately pixel art and this is explicitly documented.
|
|
243
|
-
- `overlay_progress_strip.png` shows source → current-run iterations → final render.
|
|
244
|
-
- **Budgeted delivery**: if the 10-iteration budget ran out, shipping the best-of-run geometry is acceptable when smoothness, structure, and visual QA pass and the residuals are disclosed. If residuals are not acceptable, label the output as a preview, keep the fit state resumable from `outputs/fit_work/`, and offer continued refinement. The Final Frame Contract applies to whatever geometry shipped.
|
|
245
|
-
|
|
246
|
-
**Structure (fusion):**
|
|
247
|
-
- Every choreographed part is an independently addressable element with a stable id; draw-on paths carry `pathLength="1"`; the part inventory in `motion_spec.md` matches the SVG structure.
|
|
248
|
-
|
|
249
|
-
**Motion (new):**
|
|
250
|
-
- `logo_motion.html` follows the showcase template: main animation in `#logo-root`, atomic motion studies, replay/slow/speed controls, principles strip, dependency-free execution, `prefers-reduced-motion`, `?t=` seeking, `?static=1`, and `window.__p2mReady`.
|
|
251
|
-
- The speed control changes playback for the currently running main animation; Replay restarts deterministically; atomic motions are visibly interactive/moving and derived from `logo.svg`.
|
|
252
|
-
- The choreography demonstrably applies the principles claimed in `motion_spec.md`; timeline follows the 20/50/30 shape (or documents why not); no two parts share identical start+end times unless intentional staging.
|
|
253
|
-
- `motion_strip.png` exists and has been inspected with multimodal vision; nothing clips mid-flight.
|
|
254
|
-
- **Easing verified applied** (probe at 2–3 timestamps; not linear-by-accident) and **no stall+pop signature** in the continuity sweep across handoffs/crossings.
|
|
255
|
-
- **Final Frame Contract holds**: captured final frame ≡ verified static render (cross-pipeline diff reported + visual confirmation, same-pipeline `?static=1` vs `?t=<end>` exact). Loops are seam-checked.
|
|
256
|
-
- IoU is a required reported diagnostic but not a fixed-threshold gate for the full motion deliverable: a technically smooth animation fails if it is off-personality, mechanical (lockstep parts, linear easing), or lands off the verified logo.
|
|
257
|
-
|
|
258
|
-
## References
|
|
259
|
-
|
|
260
|
-
- `references/twelve-principles-for-logos.md` — each Disney principle with logo-specific application and parameter ranges
|
|
261
|
-
- `references/motion-personality.md` — brand personality → timing scale, easing tokens, exaggeration bounds, principle emphasis
|
|
262
|
-
- `references/reveal-patterns.md` — choreography pattern library: reveals, idle loops, hover states, with timing tables and CSS skeletons; §1b split-fill draw-on for self-crossing marks + dash-math artifact table
|
|
263
|
-
- `references/html-delivery-template.md` — required final HTML structure: main animation, atomic motions, tuners, principles strip, QA hooks
|
|
264
|
-
- `references/ribbon-fitting.md` — closed/self-intersecting variable-width ribbon fitting (centerline scaffold + recenter + source edge snap) and wordmark font matching
|
|
265
|
-
|
|
266
|
-
## v2 changelog
|
|
267
|
-
|
|
268
|
-
Hardened from a production run (calligraphic ∞ + bead + serif wordmark) where the draw-on visibly stuttered at the second self-crossing. Three stacked causes were isolated and each produced a new rule or tool:
|
|
269
|
-
|
|
270
|
-
1. `var()` timing functions inside `@keyframes` silently degrade to linear in Chromium → literal-easing rule + easing probe (`scripts/probe_motion_continuity.py --probe`). This was the dominant cause: per-piece linear pacing created a 4.3× speed cliff at the piece handoff.
|
|
271
|
-
2. Round-cap draw masks make the visible tip lead the pen by half the stroke width → stall+pop at handoffs (measured 50ms flatline + cap-disk jump) → butt-cap dash recipe + dash-math artifact table + ink-delta continuity sweep (`--ink-sweep`).
|
|
272
|
-
3. The later crossing pass paints *under* existing ink → a physically unavoidable ~10–25ms dead window → tip-glint secondary action (offset-path on the centerline, base opacity 0, exits under an occluder).
|
|
273
|
-
|
|
274
|
-
Also new: split-fill recipe for self-crossing draw-ons with exact de Casteljau easing subdivision (reveal-patterns §1b), `scripts/fit_ribbon_centerline.py` + `references/ribbon-fitting.md` for closed variable-width ribbon geometry (its report emits the split-cut arc fractions Phase 3 needs), same-pipeline Final Frame Contract check (exact-0 expectation), and risk-window frame bracketing in Motion QA.
|
|
275
|
-
|
|
276
|
-
## Source
|
|
277
|
-
|
|
278
|
-
Rewritten for AICUT from [`nolangz/pixel2motion`](https://github.com/nolangz/pixel2motion)
|
|
279
|
-
(MIT), SKILL.md. The method is that skill's own; the way it runs is AICUT's.
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# HTML Delivery Template
|
|
2
|
-
|
|
3
|
-
Use this contract for the final `logo_motion.html`. The CueRecord sample is the model: one HTML file that presents the main logo animation, small atomic motion studies, and live playback controls.
|
|
4
|
-
|
|
5
|
-
## Required Page Structure
|
|
6
|
-
|
|
7
|
-
- Hero stage: a centered primary SVG animation in `#logo-root`; this is the element captured by QA tooling. User-facing motion templates should display the main logo at 0.7x of the SVG's intrinsic width, still capped by the viewport.
|
|
8
|
-
- Atomic motions row: three or four small variants derived from the same `logo.svg`, such as hover, pulse, arc/spin, and press/squash. These are motion atoms, not unrelated decoration.
|
|
9
|
-
- Controls: replay button, slow-motion toggle, and speed range slider. The speed slider must affect the live main animation, not only the next replay.
|
|
10
|
-
- Principles strip: compact pills for the Disney principles used by the choreography; highlight active principles during the run when using a JS timeline.
|
|
11
|
-
- Footer/help text may be minimal, but do not use explanatory marketing copy.
|
|
12
|
-
|
|
13
|
-
## Main Animation
|
|
14
|
-
|
|
15
|
-
- Prefer an act/phase timeline for logo reveals: staging hold, anticipation, action, overlap/follow-through, final settle.
|
|
16
|
-
- Use explicit SVG transform pivots for complex marks. A helper like `T(px, py, {x, y, sx, sy, rot})` is safer than relying on CSS `transform-origin` when SVG bounding boxes are awkward.
|
|
17
|
-
- Store the finished logo state in a `setFinalLogo()` function or equivalent. Reduced motion and `?static=1` must land there.
|
|
18
|
-
- CSS keyframe animations must use `animation-fill-mode: both` or `forwards` so `?t=<ms>` and `?static=1` can expose real timeline states.
|
|
19
|
-
- Keep `window.__p2mReady = true` only after the animation is rendered, seeked, or static-finalized.
|
|
20
|
-
|
|
21
|
-
## Atomic Motions
|
|
22
|
-
|
|
23
|
-
- Build atoms from the same semantic parts used by the main SVG (`#mark`, `#dot`, `#wordmark`, letters, accents).
|
|
24
|
-
- Each atom should isolate one principle or interaction: hover appeal, ambient pulse, arc/spin, press squash, draw-on, or letter cascade.
|
|
25
|
-
- Atomic variants must be interactive or visibly moving, but they must not distract from the hero animation.
|
|
26
|
-
- If a generic script clone cannot safely preserve unique IDs, use a data-URI image fallback for atomic thumbnails and hand-author semantic atomic variants when the user expects production polish.
|
|
27
|
-
|
|
28
|
-
## Tuners
|
|
29
|
-
|
|
30
|
-
- Replay restarts the main animation deterministically.
|
|
31
|
-
- Slow motion toggles to a readable default around 0.25x.
|
|
32
|
-
- Speed slider default should be slow enough to inspect the principles, often around 0.4x to 0.6x for showcase delivery.
|
|
33
|
-
- Playback-rate changes should apply to currently running animations.
|
|
34
|
-
|
|
35
|
-
## QA Hooks
|
|
36
|
-
|
|
37
|
-
- `?t=<ms>` pauses the main animation at an exact timestamp for frame capture.
|
|
38
|
-
- `?static=1` shows the final static logo.
|
|
39
|
-
- In QA/chromeless mode, hide controls and atomic variants if needed, but keep `#logo-root` available for screenshots.
|
|
40
|
-
- `prefers-reduced-motion: reduce` must show the finished static logo immediately.
|
|
41
|
-
- The `?t=` hook also powers quantitative QA: `scripts/probe_motion_continuity.py` reads computed styles at seeked timestamps (catches silently-dropped keyframe easings — see the literal-easing rule) and sweeps ink-pixel deltas across risk windows (catches handoff stalls/pops invisible in coarse frame strips).
|
|
42
|
-
- The decisive Final Frame Contract check is SAME-pipeline: capture `?static=1` and `?t=<end>` with the same tool/viewport/DPR and require an exact 0 diff; cross-pipeline diffs against the Phase 2 render contain resampling noise and are confirmed visually.
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
# Motion Personality: Brand → Parameters
|
|
2
|
-
|
|
3
|
-
Translate brand identity into motion parameters systematically. Never pick easing or duration by taste — derive them here, record the derivation in `motion_spec.md`.
|
|
4
|
-
|
|
5
|
-
## Step 1 — Locate the brand on two axes
|
|
6
|
-
|
|
7
|
-
- **Energy**: low (calm, premium, institutional) ↔ high (sporty, startup, entertainment)
|
|
8
|
-
- **Tone**: serious (finance, health, enterprise) ↔ playful (consumer, kids, social)
|
|
9
|
-
|
|
10
|
-
Read the logo itself for evidence: sharp geometric forms → engineered/serious motion; organic curves → flowing motion; rounded shapes and bright colors → soft/playful motion. User-stated brand words override visual inference.
|
|
11
|
-
|
|
12
|
-
## Step 2 — Axis → principle parameters
|
|
13
|
-
|
|
14
|
-
| Principle | Low energy | High energy |
|
|
15
|
-
|---|---|---|
|
|
16
|
-
| Squash & Stretch | 0–10% | 20–40% |
|
|
17
|
-
| Anticipation | 50–100ms | 150–300ms |
|
|
18
|
-
| Part timing | 400–800ms | 100–250ms |
|
|
19
|
-
| Exaggeration | 0–15% | 25–50% |
|
|
20
|
-
| Follow-through | extended soft settle | quick bounce |
|
|
21
|
-
|
|
22
|
-
| Principle | Serious | Playful |
|
|
23
|
-
|---|---|---|
|
|
24
|
-
| Arcs | direct, near-linear paths | curved, bouncy paths |
|
|
25
|
-
| Secondary action | minimal (shadow, fade) | abundant (sparkle, ripple) |
|
|
26
|
-
| Squash & Stretch | replace with plain scale | embrace |
|
|
27
|
-
| Appeal style | clean, geometric | round, organic |
|
|
28
|
-
|
|
29
|
-
## Step 3 — Personality presets
|
|
30
|
-
|
|
31
|
-
Pick the closest preset, then adjust from the axes. Each preset gives the **token set** to define once as CSS custom properties.
|
|
32
|
-
|
|
33
|
-
> **Token trap (Chromium)**: custom properties do NOT resolve in `animation-timing-function` declarations inside `@keyframes` — `animation-timing-function: var(--p2m-ease-enter)` is silently dropped and the segment runs with the animation's base timing function (usually `linear`), the exact mechanical motion these presets exist to prevent. Nothing errors and evenly-spaced frame strips look fine. Use the tokens in `animation:` shorthands (durations/delays resolve correctly) and as documentation, but write literal `cubic-bezier(...)` values inside keyframes with a comment naming the token. Verify with `scripts/probe_motion_continuity.py --probe`.
|
|
34
|
-
|
|
35
|
-
### Playful / Joyful (consumer apps, kids, social)
|
|
36
|
-
```css
|
|
37
|
-
--p2m-duration: 900ms; /* reveal total; loops 1500-2000ms */
|
|
38
|
-
--p2m-ease-enter: cubic-bezier(0.34, 1.56, 0.64, 1); /* overshoot */
|
|
39
|
-
--p2m-ease-settle: cubic-bezier(0.22, 1, 0.36, 1);
|
|
40
|
-
--p2m-squash: 0.18; /* 18% deformation allowed */
|
|
41
|
-
--p2m-overshoot: 1.08;
|
|
42
|
-
```
|
|
43
|
-
Emphasize: squash & stretch, exaggeration, secondary action. Avoid: long anticipation (kills the fun).
|
|
44
|
-
|
|
45
|
-
### Elegant / Premium (luxury, fashion, hospitality)
|
|
46
|
-
```css
|
|
47
|
-
--p2m-duration: 1600ms;
|
|
48
|
-
--p2m-ease-enter: cubic-bezier(0.4, 0, 0.6, 1); /* extended symmetric */
|
|
49
|
-
--p2m-ease-settle: cubic-bezier(0.16, 1, 0.3, 1);
|
|
50
|
-
--p2m-squash: 0; /* no deformation */
|
|
51
|
-
--p2m-overshoot: 1.02; /* whisper of overshoot, or none */
|
|
52
|
-
```
|
|
53
|
-
Emphasize: timing (slow, unhurried), staging, arcs (long graceful paths), restraint as appeal. Fades and mask wipes over movement. Avoid: bounce, squash, fast cuts.
|
|
54
|
-
|
|
55
|
-
### Trustworthy / Professional (fintech, enterprise, B2B, healthcare)
|
|
56
|
-
```css
|
|
57
|
-
--p2m-duration: 700ms;
|
|
58
|
-
--p2m-ease-enter: cubic-bezier(0, 0, 0.2, 1); /* confident ease-out */
|
|
59
|
-
--p2m-ease-settle: cubic-bezier(0.4, 0, 0.2, 1);
|
|
60
|
-
--p2m-squash: 0;
|
|
61
|
-
--p2m-overshoot: 1.0; /* land exactly, no bounce */
|
|
62
|
-
```
|
|
63
|
-
Emphasize: slow in/out (smoothness = stability), consistent timing, solid drawing. Motion must be predictable: same easing family everywhere. Avoid: overshoot, randomness, secondary flourishes.
|
|
64
|
-
|
|
65
|
-
### Energetic / Bold (sports, gaming, startups, media)
|
|
66
|
-
```css
|
|
67
|
-
--p2m-duration: 600ms;
|
|
68
|
-
--p2m-ease-enter: cubic-bezier(0.16, 1, 0.3, 1); /* explosive out */
|
|
69
|
-
--p2m-ease-settle: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
70
|
-
--p2m-squash: 0.25;
|
|
71
|
-
--p2m-overshoot: 1.12;
|
|
72
|
-
```
|
|
73
|
-
Emphasize: timing (fast), exaggeration, strong anticipation (coil before release), impact frames. Avoid: slow fades, symmetric easing.
|
|
74
|
-
|
|
75
|
-
### Calm / Caring (wellness, meditation, education)
|
|
76
|
-
```css
|
|
77
|
-
--p2m-duration: 1400ms; /* loops: 3000-4000ms breathing */
|
|
78
|
-
--p2m-ease-enter: ease-in-out;
|
|
79
|
-
--p2m-ease-settle: cubic-bezier(0.4, 0, 0.6, 1);
|
|
80
|
-
--p2m-squash: 0.04; /* breathing-level only */
|
|
81
|
-
--p2m-overshoot: 1.0;
|
|
82
|
-
```
|
|
83
|
-
Emphasize: slow in/out (symmetric oscillation), arcs, gentle staging. Opacity and blur over translation. Avoid: anything sudden; keep amplitudes small.
|
|
84
|
-
|
|
85
|
-
### Friendly / Approachable (small business, community, services)
|
|
86
|
-
```css
|
|
87
|
-
--p2m-duration: 850ms;
|
|
88
|
-
--p2m-ease-enter: cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
|
89
|
-
--p2m-ease-settle: cubic-bezier(0.22, 1, 0.36, 1);
|
|
90
|
-
--p2m-squash: 0.08;
|
|
91
|
-
--p2m-overshoot: 1.04;
|
|
92
|
-
```
|
|
93
|
-
Middle of every axis: soft deformation, moderate timing, one gentle secondary action.
|
|
94
|
-
|
|
95
|
-
## Step 4 — Sanity checks
|
|
96
|
-
|
|
97
|
-
- Describe the finished animation in 3 words. Do they match the brand words from the brief?
|
|
98
|
-
- Would a competitor's logo wearing this exact motion feel the same? If yes, push one principle further toward the personality.
|
|
99
|
-
- The same token values must drive reveal, loop, and hover variants — one brand, one motion voice.
|
|
100
|
-
- Show the animation without the product around it: still recognizably this brand?
|
|
101
|
-
|
|
102
|
-
## Universal tokens (work for any personality)
|
|
103
|
-
|
|
104
|
-
```css
|
|
105
|
-
--p2m-ease-out-universal: cubic-bezier(0.16, 1, 0.3, 1);
|
|
106
|
-
--p2m-ease-natural: cubic-bezier(0.4, 0, 0.2, 1);
|
|
107
|
-
--p2m-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1); /* scale amplitude with duration */
|
|
108
|
-
--p2m-ease-narrative: cubic-bezier(0.34, 0, 0.14, 1); /* deliberate sequences */
|
|
109
|
-
```
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
# Logo Choreography Pattern Library
|
|
2
|
-
|
|
3
|
-
Reveal, loop, and hover patterns. Each entry: when to use, principles it leans on, timeline shape, and a CSS skeleton targeting motion-ready part ids. All durations assume the personality tokens from `motion-personality.md`; multiply, don't hardcode.
|
|
4
|
-
|
|
5
|
-
The timeline shape notation `A:B:C` = anticipation : action : follow-through as % of total (golden ratio default 20:50:30).
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Reveals
|
|
10
|
-
|
|
11
|
-
### 1. Draw-On (stroke reveal)
|
|
12
|
-
**For**: marks with a clear stroke skeleton — monograms, signatures, line icons, circular C-marks.
|
|
13
|
-
**Principles**: straight-ahead feel on a pose-to-pose spine; slow in/out; staging (the pen leads the eye).
|
|
14
|
-
**Requires**: `pathLength="1"` on each drawn path; path direction = draw direction.
|
|
15
|
-
**Shape**: 10:70:20 (drawing IS the action; brief pre-beat; ink "dries" as fills fade in after).
|
|
16
|
-
|
|
17
|
-
```css
|
|
18
|
-
#mark path {
|
|
19
|
-
stroke-dasharray: 1;
|
|
20
|
-
stroke-dashoffset: 1;
|
|
21
|
-
animation: p2m-draw calc(var(--p2m-duration) * 0.7) var(--p2m-ease-natural) calc(var(--p2m-duration) * 0.1) forwards;
|
|
22
|
-
}
|
|
23
|
-
@keyframes p2m-draw { to { stroke-dashoffset: 0; } }
|
|
24
|
-
/* fills fade in during the last 20% */
|
|
25
|
-
#mark .fill { opacity: 0; animation: p2m-fade calc(var(--p2m-duration) * 0.25) ease-out calc(var(--p2m-duration) * 0.75) forwards; }
|
|
26
|
-
@keyframes p2m-fade { to { opacity: 1; } }
|
|
27
|
-
```
|
|
28
|
-
Multiple strokes: stagger starts by 10–15% of one stroke's duration, ordered by natural writing order.
|
|
29
|
-
|
|
30
|
-
#### Dash math — artifact table
|
|
31
|
-
|
|
32
|
-
With `pathLength="1"` everything is normalized; `stroke-dasharray: <dash> <gap>`. Wrong combinations leak ink before the draw starts — check the t=0 frame explicitly:
|
|
33
|
-
|
|
34
|
-
| caps | dasharray | start offset | result |
|
|
35
|
-
|---|---|---|---|
|
|
36
|
-
| round | `1` (gap=1, period 2) | `1` | **artifact**: the zero-length dash at the path start renders its round cap — an ink dot before the draw begins |
|
|
37
|
-
| round | `1` | `1.05` (overshoot) | **artifact**: period-2 wraparound shows the path TAIL — [0.95, 1] is visible at t=0 |
|
|
38
|
-
| round | `1 1.2` (gap > path) | `1.1` | correct for round caps: every dash interval stays off [0, 1] until the draw starts. Note the visible tip still LEADS the pen by half the stroke width (cap lookahead) — fine for single-stroke draws, disqualifying for multi-piece handoffs |
|
|
39
|
-
| butt | `1 1` | `1` | correct and exact: a zero-length butt dash renders nothing, visible tip == pen position. Mandatory for split-fill handoffs (§1b) |
|
|
40
|
-
|
|
41
|
-
If a mask stroke's seam/caps would rest at a visible location, hide them under an occluder (dot, knot, letter) chosen back in Phase 2.
|
|
42
|
-
|
|
43
|
-
### 1b. Draw-On Across Self-Intersections (split-fill)
|
|
44
|
-
**For**: ∞ marks, script signatures, monograms — any centerline that crosses itself.
|
|
45
|
-
**Problem**: the reveal stroke is roughly the ribbon's max width; at a crossing it reveals the *other* branch's fill before the pen reaches it — an "X" pops in mid-draw.
|
|
46
|
-
**Principles**: same as Draw-On, plus solid drawing (the partial mark must always look hand-drawn, never glitched).
|
|
47
|
-
|
|
48
|
-
Recipe (all numbers field-verified):
|
|
49
|
-
|
|
50
|
-
1. **Split the FILL into pieces** cut between crossing passes — cut ~40px of arc before the later pass; overlap the pieces ~4px with the same color (invisible, AA-proof). A piece that hasn't started is entirely absent from screen, so no stroke width can pre-reveal it.
|
|
51
|
-
2. **One mask per piece**, each containing its own centerline sub-path spine with `pathLength="1"`. Get the cut parameters (each crossing's arc fractions) from `fit_ribbon_centerline.py`'s report.
|
|
52
|
-
3. **Butt caps + `stroke-dasharray: 1 1`, offset `1 → 0`** on every mask spine (see the artifact table). Round caps stall the visible tip at each handoff (the half-stroke-width lookahead "re-arms"), then pop the next piece in as a cap-radius disk — measured as a 50ms ink flatline plus a disk-sized jump.
|
|
53
|
-
4. **Extend the LATER piece's spine ~6px back before the cut**, so both pieces' tips traverse the overlap together and the handoff is spatially continuous.
|
|
54
|
-
5. **Subdivide the global easing exactly** (de Casteljau). For draw easing E as a cubic Bézier in (time, progress) space — P0=(0,0), P1=(x1,y1), P2=(x2,y2), P3=(1,1):
|
|
55
|
-
- solve τ where progress y(τ) = the piece boundary's arc fraction (bisection on the monotonic y);
|
|
56
|
-
- de Casteljau-split E at τ; normalize each half into its own `cubic-bezier()` by translating to its start point and dividing control coordinates by the segment's (Δx, Δy) spans;
|
|
57
|
-
- subdivide at the cut fraction for the earlier piece's END, and at (cut − 6px)'s fraction for the later piece's START. Each piece animates over its own keyframe window with its own literal curve; the combined pen pace equals the original design exactly (verify: tip speed continuous across the handoff, e.g. 1.49 → 1.45 px/ms).
|
|
58
|
-
6. **Bridge the paint-under-ink dead window.** The later pass crosses *under* already-painted fill: for ~10–25ms no pixel can change — physically unavoidable (the ink sweep shows one near-zero sample). Add a **tip glint**: a small soft radial-gradient light (r ≈ 0.3× max ribbon width) with base `opacity="0"` in the SVG, riding the FULL centerline via `offset-path: path(...)` + `offset-distance 0% → 100%` with the ORIGINAL un-subdivided easing — it then coincides with the pen tip exactly (probe: 0px divergence). Z-order it beneath the occluding dot/bead so it emerges from and returns under it; fade it in after the anticipation beat and out before the settle. Base opacity 0 keeps static/?static=1/reduced-motion/final states clean.
|
|
59
|
-
|
|
60
|
-
QA for this pattern: frames bracketing EACH crossing pass (the early pass must show a single clean branch), the easing probe (tip and glint must agree), the ink-delta sweep across the handoff (no flatline-then-jump), and the Final Frame Contract.
|
|
61
|
-
|
|
62
|
-
### 2. Staggered Assembly
|
|
63
|
-
**For**: multi-part logos — mark + wordmark, geometric compositions, dots + swooshes.
|
|
64
|
-
**Principles**: follow-through & overlapping action (the star), staging (reading order), arcs (parts arrive on curves).
|
|
65
|
-
**Shape**: 20:50:30. Drag hierarchy: container/mark → letters → accents. Per-part stagger = 10–20% of part duration.
|
|
66
|
-
|
|
67
|
-
```css
|
|
68
|
-
#mark { animation: p2m-arrive var(--p2m-duration-part) var(--p2m-ease-enter) 0ms both; }
|
|
69
|
-
#letter-1 { animation: p2m-arrive var(--p2m-duration-part) var(--p2m-ease-enter) 60ms both; }
|
|
70
|
-
#letter-2 { animation: p2m-arrive var(--p2m-duration-part) var(--p2m-ease-enter) 120ms both; }
|
|
71
|
-
#dot { animation: p2m-arrive-bounce var(--p2m-duration-part) var(--p2m-ease-settle) 220ms both; }
|
|
72
|
-
@keyframes p2m-arrive {
|
|
73
|
-
from { opacity: 0; transform: translateY(12px) scale(0.95); }
|
|
74
|
-
60% { opacity: 1; transform: translateY(-2px) scale(var(--p2m-overshoot)); }
|
|
75
|
-
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
76
|
-
}
|
|
77
|
-
```
|
|
78
|
-
Cap the full cascade at ~700ms beyond the first arrival; with many letters shrink stagger, not letter duration. Parts need `transform-box: fill-box; transform-origin: center;`.
|
|
79
|
-
|
|
80
|
-
### 3. Scale-Pop with Overshoot
|
|
81
|
-
**For**: compact marks, app icons, badges; the default splash gesture.
|
|
82
|
-
**Principles**: anticipation (pre-shrink), squash & stretch (personality-gated), exaggeration, follow-through (overshoot + settle).
|
|
83
|
-
**Shape**: 20:50:30 literally — this is the textbook golden-ratio pattern.
|
|
84
|
-
|
|
85
|
-
```css
|
|
86
|
-
#logo {
|
|
87
|
-
transform-box: fill-box; transform-origin: center;
|
|
88
|
-
animation: p2m-pop var(--p2m-duration) var(--p2m-ease-narrative) both;
|
|
89
|
-
}
|
|
90
|
-
@keyframes p2m-pop {
|
|
91
|
-
0% { opacity: 0; transform: scale(0.6); }
|
|
92
|
-
20% { opacity: 0; transform: scale(0.55); } /* anticipation: coil */
|
|
93
|
-
60% { opacity: 1; transform: scale(var(--p2m-overshoot)); }
|
|
94
|
-
80% { transform: scale(0.99); } /* counter-settle */
|
|
95
|
-
100% { transform: scale(1); }
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
Deliberate splash variant: start `scale(0.6) translateY(50px)` with `filter: blur(10px)`, clear blur by 60%.
|
|
99
|
-
|
|
100
|
-
### 4. Mask Wipe
|
|
101
|
-
**For**: wordmarks, horizontal lockups, elegant/premium personalities (motion without deformation).
|
|
102
|
-
**Principles**: staging (the wipe directs reading), timing, solid drawing (geometry never deforms).
|
|
103
|
-
**Shape**: 15:60:25. Wipe direction = reading direction (LTR logos wipe left→right).
|
|
104
|
-
|
|
105
|
-
```css
|
|
106
|
-
#wordmark { clip-path: inset(0 100% 0 0); animation: p2m-wipe calc(var(--p2m-duration) * 0.6) var(--p2m-ease-enter) calc(var(--p2m-duration) * 0.15) forwards; }
|
|
107
|
-
@keyframes p2m-wipe { to { clip-path: inset(0 0 0 0); } }
|
|
108
|
-
```
|
|
109
|
-
Premium touch: pair with a 2–4px translateX drift in the same direction, settling as the wipe completes.
|
|
110
|
-
|
|
111
|
-
### 5. Morph-from-Primitive
|
|
112
|
-
**For**: logos whose mark relates to a simple shape (a circle becoming the C, a square unfolding).
|
|
113
|
-
**Principles**: anticipation (the primitive IS the anticipation), appeal, solid drawing.
|
|
114
|
-
**Note**: keep it cheap — morph between *few-knot* paths with identical command structure (this is where Phase 2's minimal geometry pays off; a 400-point traced path cannot morph). Animate `d` via CSS `d: path()` (Chromium) or pre-computed keyframe paths; cross-fade fallback for engines without `d` support.
|
|
115
|
-
**Shape**: 25:50:25 — hold the primitive a beat longer so viewers register the transformation.
|
|
116
|
-
|
|
117
|
-
### 6. Letter Cascade (wordmark-first logos)
|
|
118
|
-
**For**: type-driven brands.
|
|
119
|
-
**Principles**: overlapping action, arcs (letters arrive on subtle curves), timing (per-letter weight).
|
|
120
|
-
Per-letter duration 200–300ms, stagger 30–60ms, total ≤ 700ms. Letters rise `translateY(0.6em → 0)` + fade, with optional 1–2° rotation that zeroes on landing (keeps baselines honest — check solid drawing in mid-frames).
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Idle / Loading Loops
|
|
125
|
-
|
|
126
|
-
Seamlessness rule: the 100% keyframe must equal the 0% keyframe exactly. Verify with seam frames (capture just before and after the loop point).
|
|
127
|
-
|
|
128
|
-
### Breathing
|
|
129
|
-
`scale(1 ↔ 1.02)`, 3000–4000ms, ease-in-out, infinite. Calm/ambient. Amplitude ≤ 2% — the logo is present, not performing.
|
|
130
|
-
|
|
131
|
-
### Pulse Accent
|
|
132
|
-
One part (the dot, the accent) pulses `opacity 0.7 ↔ 1` or `scale 1 ↔ 1.06`, 1500–2000ms cycle. Staging: only ONE part may pulse.
|
|
133
|
-
|
|
134
|
-
### Orbit / Spinner
|
|
135
|
-
A satellite element rotates around the mark, 1200–2000ms, **linear** (the one legitimate use of linear — eased rotation pulses). Mark itself stays still or breathes counter-phase.
|
|
136
|
-
|
|
137
|
-
### Draw-Cycle
|
|
138
|
-
Draw-on forward (70%), hold (15%), fade strokes (15%), repeat. For loading states 2000–3000ms cycle. Decay rule: if loading completes mid-cycle, finish the current draw then settle to the static logo — never hard-cut.
|
|
139
|
-
|
|
140
|
-
Loop hygiene: still pleasant after 30 seconds? If it would annoy on the tenth loop, halve the amplitude. Stop or decay attention-grabbing loops after 3–5 cycles when nothing is actually loading.
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## Hover / Micro-interactions
|
|
145
|
-
|
|
146
|
-
Duration 150–300ms, ease-out only (no time for ease-in). Must read as *response*, not *performance*.
|
|
147
|
-
|
|
148
|
-
- **Lift**: `translateY(-2px)` + shadow tighten, 200ms. Trust/professional.
|
|
149
|
-
- **Wink**: the accent part (dot, leaf) does a single 8–12% squash-bounce, 250ms. Playful.
|
|
150
|
-
- **Sheen**: a masked highlight sweeps the wordmark once, 300ms. Premium.
|
|
151
|
-
- **Re-draw**: the mark's stroke redraws at 2× speed, 300ms. Technical/creative brands.
|
|
152
|
-
|
|
153
|
-
Hover must return to the exact rest state (Final Frame Contract applies to interaction end-states too). Provide `:focus-visible` parity for keyboard users.
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## Composition rules
|
|
158
|
-
|
|
159
|
-
1. One reveal + at most one idle loop + at most one hover behavior. More is noise.
|
|
160
|
-
2. Reveal plays once per session/page-load context; never on every route change.
|
|
161
|
-
3. All variants share the same personality tokens.
|
|
162
|
-
4. Everything lives inside `@media (prefers-reduced-motion: no-preference)`; the reduced-motion experience is the finished static logo, immediately.
|
|
163
|
-
5. Performance: animate only `transform`, `opacity`, `clip-path`, `stroke-dashoffset`, `filter` (sparingly). Never layout properties. One `will-change` per animated part at most, removed after the reveal.
|