freecodego 0.1.7-alpha.2.2 → 0.1.7-rc.2.2
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/README.i18n.yaml +45 -5
- package/README.md +4 -4
- package/README.zh.md +4 -4
- package/cordis.patch.yml +230 -126
- package/dist/assets/design/craft/FUTURE_SECTIONS.md +9 -0
- package/dist/assets/design/craft/LICENSE +201 -0
- package/dist/assets/design/craft/PROVENANCE.md +77 -0
- package/dist/assets/design/craft/README.md +106 -0
- package/dist/assets/design/craft/accessibility-baseline.md +201 -0
- package/dist/assets/design/craft/animation-discipline.md +154 -0
- package/dist/assets/design/craft/anti-ai-slop.md +84 -0
- package/dist/assets/design/craft/color.md +88 -0
- package/dist/assets/design/craft/form-validation.md +221 -0
- package/dist/assets/design/craft/laws-of-ux.md +296 -0
- package/dist/assets/design/craft/rtl-and-bidi.md +186 -0
- package/dist/assets/design/craft/state-coverage.md +134 -0
- package/dist/assets/design/craft/typography-hierarchy-editorial.md +182 -0
- package/dist/assets/design/craft/typography-hierarchy.md +165 -0
- package/dist/assets/design/craft/typography.md +122 -0
- package/dist/assets/design/react-bits/SKILL.md +130 -0
- package/dist/assets/design/skills/embedded-captions/CATALOG.md +91 -0
- package/dist/assets/design/skills/embedded-captions/SKILL.md +260 -0
- package/dist/assets/design/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
- package/dist/assets/design/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
- package/dist/assets/design/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
- package/dist/assets/design/skills/embedded-captions/dna/README.md +148 -0
- package/dist/assets/design/skills/embedded-captions/dna/chrome.json +68 -0
- package/dist/assets/design/skills/embedded-captions/dna/cream.json +69 -0
- package/dist/assets/design/skills/embedded-captions/dna/documentary.json +62 -0
- package/dist/assets/design/skills/embedded-captions/dna/editorial.json +70 -0
- package/dist/assets/design/skills/embedded-captions/dna/glitch.json +82 -0
- package/dist/assets/design/skills/embedded-captions/dna/ink.json +65 -0
- package/dist/assets/design/skills/embedded-captions/dna/keynote.json +62 -0
- package/dist/assets/design/skills/embedded-captions/dna/loud.json +75 -0
- package/dist/assets/design/skills/embedded-captions/dna/neon.json +58 -0
- package/dist/assets/design/skills/embedded-captions/dna/velocity.json +89 -0
- package/dist/assets/design/skills/embedded-captions/modes/cinematic/README.md +48 -0
- package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
- package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
- package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
- package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
- package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
- package/dist/assets/design/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
- package/dist/assets/design/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
- package/dist/assets/design/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
- package/dist/assets/design/skills/embedded-captions/modes/cinematic/engine.html +355 -0
- package/dist/assets/design/skills/embedded-captions/modes/standard/_anatomy.md +232 -0
- package/dist/assets/design/skills/embedded-captions/modes/standard/_motion.md +192 -0
- package/dist/assets/design/skills/embedded-captions/references/aesthetic-principles.md +167 -0
- package/dist/assets/design/skills/embedded-captions/references/anti-patterns.md +188 -0
- package/dist/assets/design/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
- package/dist/assets/design/skills/embedded-captions/references/caption-grouping.md +130 -0
- package/dist/assets/design/skills/embedded-captions/references/composition-craft.md +522 -0
- package/dist/assets/design/skills/embedded-captions/references/direction-catalog.md +138 -0
- package/dist/assets/design/skills/embedded-captions/references/example-renders/champion.html +371 -0
- package/dist/assets/design/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
- package/dist/assets/design/skills/embedded-captions/references/failure-modes.md +145 -0
- package/dist/assets/design/skills/embedded-captions/references/layout-heuristics.md +238 -0
- package/dist/assets/design/skills/embedded-captions/references/motion-vocabulary.md +148 -0
- package/dist/assets/design/skills/embedded-captions/references/rail.md +68 -0
- package/dist/assets/design/skills/embedded-captions/references/reference-bar.md +47 -0
- package/dist/assets/design/skills/embedded-captions/references/scene-types.md +94 -0
- package/dist/assets/design/skills/embedded-captions/references/typographic-moves.md +266 -0
- package/dist/assets/design/skills/embedded-captions/references/typography-presets.md +63 -0
- package/dist/assets/design/skills/embedded-captions/scripts/fixtures/heroless/theme.json +11 -0
- package/dist/assets/design/skills/embedded-captions/scripts/fixtures/heroless/transcript.json +10 -0
- package/dist/assets/design/skills/embedded-captions/themes/README.md +243 -0
- package/dist/assets/design/skills/embedded-captions/themes/anchor.json +27 -0
- package/dist/assets/design/skills/embedded-captions/themes/arcade.json +51 -0
- package/dist/assets/design/skills/embedded-captions/themes/aurora.json +41 -0
- package/dist/assets/design/skills/embedded-captions/themes/biolume.json +35 -0
- package/dist/assets/design/skills/embedded-captions/themes/brush.json +74 -0
- package/dist/assets/design/skills/embedded-captions/themes/chalkboard.json +52 -0
- package/dist/assets/design/skills/embedded-captions/themes/dossier.json +56 -0
- package/dist/assets/design/skills/embedded-captions/themes/graffiti.json +62 -0
- package/dist/assets/design/skills/embedded-captions/themes/hologram.json +41 -0
- package/dist/assets/design/skills/embedded-captions/themes/inkwater.json +43 -0
- package/dist/assets/design/skills/embedded-captions/themes/laser.json +46 -0
- package/dist/assets/design/skills/embedded-captions/themes/lastpage.json +33 -0
- package/dist/assets/design/skills/embedded-captions/themes/neonsign.json +53 -0
- package/dist/assets/design/skills/embedded-captions/themes/ordnance.json +54 -0
- package/dist/assets/design/skills/embedded-captions/themes/papercut.json +37 -0
- package/dist/assets/design/skills/embedded-captions/themes/popup.json +46 -0
- package/dist/assets/design/skills/embedded-captions/themes/ransom.json +62 -0
- package/dist/assets/design/skills/embedded-captions/themes/scoreboard.json +54 -0
- package/dist/assets/design/skills/embedded-captions/themes/spectrum.json +46 -0
- package/dist/assets/design/skills/embedded-captions/themes/stardust.json +29 -0
- package/dist/assets/design/skills/embedded-captions/themes/stomp.json +43 -0
- package/dist/assets/design/skills/embedded-captions/themes/terminal.json +49 -0
- package/dist/assets/design/skills/embedded-captions/themes/thunder.json +44 -0
- package/dist/assets/design/skills/embedded-captions/themes/transit.json +44 -0
- package/dist/assets/design/skills/embedded-captions/themes/vhs.json +47 -0
- package/dist/assets/design/skills/faceless-explainer/SKILL.md +235 -0
- package/dist/assets/design/skills/faceless-explainer/references/cut-catalog.md +215 -0
- package/dist/assets/design/skills/faceless-explainer/references/motion-language.md +156 -0
- package/dist/assets/design/skills/faceless-explainer/references/story-design.md +255 -0
- package/dist/assets/design/skills/faceless-explainer/references/visual-design.md +146 -0
- package/dist/assets/design/skills/faceless-explainer/sub-agents/frame-worker.md +12 -0
- package/dist/assets/design/skills/general-video/SKILL.md +164 -0
- package/dist/assets/design/skills/general-video/sub-agents/frame-worker.md +34 -0
- package/dist/assets/design/skills/hyperframes/SKILL.md +134 -0
- package/dist/assets/design/skills/hyperframes/references/brief-contract.md +108 -0
- package/dist/assets/design/skills/hyperframes/references/brief-format.md +72 -0
- package/dist/assets/design/skills/hyperframes/references/capability-menu.md +47 -0
- package/dist/assets/design/skills/hyperframes/references/frame-worker-core.md +80 -0
- package/dist/assets/design/skills/hyperframes/references/intent-interview.md +71 -0
- package/dist/assets/design/skills/hyperframes/references/pitch-round.md +40 -0
- package/dist/assets/design/skills/hyperframes/references/production-loop.md +26 -0
- package/dist/assets/design/skills/hyperframes/references/review-loop.md +37 -0
- package/dist/assets/design/skills/hyperframes/references/route-briefs.md +11 -0
- package/dist/assets/design/skills/hyperframes/references/routes/embedded-captions.md +11 -0
- package/dist/assets/design/skills/hyperframes/references/routes/faceless-explainer.md +12 -0
- package/dist/assets/design/skills/hyperframes/references/routes/general-video.md +12 -0
- package/dist/assets/design/skills/hyperframes/references/routes/motion-graphics.md +11 -0
- package/dist/assets/design/skills/hyperframes/references/routes/music-to-video.md +12 -0
- package/dist/assets/design/skills/hyperframes/references/routes/pr-to-video.md +28 -0
- package/dist/assets/design/skills/hyperframes/references/routes/product-launch-video.md +13 -0
- package/dist/assets/design/skills/hyperframes/references/routes/remotion-to-hyperframes.md +9 -0
- package/dist/assets/design/skills/hyperframes/references/routes/slideshow.md +11 -0
- package/dist/assets/design/skills/hyperframes/references/routes/talking-head-recut.md +11 -0
- package/dist/assets/design/skills/hyperframes/references/script-format.md +52 -0
- package/dist/assets/design/skills/hyperframes/references/skill-lifecycle.md +30 -0
- package/dist/assets/design/skills/hyperframes/references/storyboard-format.md +99 -0
- package/dist/assets/design/skills/hyperframes/references/subagent-dispatch.md +35 -0
- package/dist/assets/design/skills/hyperframes/references/workflow-catalog.md +10 -0
- package/dist/assets/design/skills/hyperframes-animation/SKILL.md +86 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/animate-text.md +64 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/animejs.md +130 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/css-animations.md +143 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +199 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +129 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/gsap.md +105 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/lottie.md +130 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/three.md +145 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/typegpu.md +182 -0
- package/dist/assets/design/skills/hyperframes-animation/adapters/waapi.md +101 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/agent-progress-theater.md +76 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/camera-journey.md +61 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/constellation-hub.md +63 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/cta-morph-press.md +63 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +89 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/dataviz-countup.md +59 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/device-surface-showcase.md +68 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/fixed-anchor-cycle.md +46 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/grid-card-assemble.md +81 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +133 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +121 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/overwhelm-surround.md +58 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/panel-edit-live-sync.md +73 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/prompt-type-submit-generate.md +85 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/titlecard-reveal.md +80 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/transcript-scroll-artifact-reveal.md +45 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints/zoom-out-workspace-reveal.md +68 -0
- package/dist/assets/design/skills/hyperframes-animation/blueprints-index.md +202 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
- package/dist/assets/design/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
- package/dist/assets/design/skills/hyperframes-animation/references/motion-blur.md +133 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/3d-camera-flight.md +180 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/3d-page-scroll.md +135 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/3d-text-depth-layers.md +128 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/ai-tracking-box.md +139 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/ambient-glow-bloom.md +133 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/anchored-layout-expand.md +148 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/asr-keyword-glow.md +128 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/avatar-cloud-network.md +145 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/camera-cursor-tracking.md +133 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/card-morph-anchor.md +134 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/center-outward-expansion.md +88 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/chart-scrub-readout.md +151 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/chromatic-glitch.md +150 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/context-sensitive-cursor.md +140 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/control-target-sync.md +131 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/coordinate-target-zoom.md +138 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/counting-dynamic-scale.md +115 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/css-marker-patterns.md +208 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/cursor-click-ripple.md +104 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/cursor-drag.md +141 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/depth-of-field-blur.md +112 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/depth-scatter-assemble.md +139 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/discrete-text-sequence.md +146 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +149 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/gradient-text-sweep.md +136 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/gsap-effects.md +196 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/hacker-flip-3d.md +123 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/kinetic-beat-slam.md +137 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/motion-blur-streak.md +130 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/multi-cursor-choreography.md +133 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/multi-phase-camera.md +129 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/nudge-curve.md +47 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/orbit-3d-entry.md +148 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/particle-burst.md +149 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/physics-press-reaction.md +101 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/press-release-spring.md +108 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/reactive-displacement.md +92 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/scale-swap-transition.md +88 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/sine-wave-loop.md +85 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/split-tilt-cards.md +123 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/spring-pop-entrance.md +107 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/stat-bars-and-fills.md +145 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/svg-icon-enrichment.md +141 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/svg-path-draw.md +122 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/theme-crossfade-morph.md +126 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/vertical-spring-ticker.md +104 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/viewport-change.md +148 -0
- package/dist/assets/design/skills/hyperframes-animation/rules/waterfall-entry.md +81 -0
- package/dist/assets/design/skills/hyperframes-animation/rules-index.md +113 -0
- package/dist/assets/design/skills/hyperframes-animation/techniques.md +507 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +168 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/catalog.md +127 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-3d.md +12 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-blur.md +51 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-cover.md +43 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-grid.md +10 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-light.md +49 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-other.md +25 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-push.md +41 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-radial.md +37 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/css-scale.md +24 -0
- package/dist/assets/design/skills/hyperframes-animation/transitions/overview.md +153 -0
- package/dist/assets/design/skills/hyperframes-audio/SKILL.md +476 -0
- package/dist/assets/design/skills/hyperframes-audio/references/attributes.md +138 -0
- package/dist/assets/design/skills/hyperframes-audio/references/diagnosis.md +274 -0
- package/dist/assets/design/skills/hyperframes-audio/references/fx-registry.md +84 -0
- package/dist/assets/design/skills/hyperframes-audio/references/presets.md +216 -0
- package/dist/assets/design/skills/hyperframes-core/SKILL.md +97 -0
- package/dist/assets/design/skills/hyperframes-core/references/composition-patterns.md +224 -0
- package/dist/assets/design/skills/hyperframes-core/references/creator-editing-recipes.md +491 -0
- package/dist/assets/design/skills/hyperframes-core/references/data-attributes.md +78 -0
- package/dist/assets/design/skills/hyperframes-core/references/determinism-rules.md +53 -0
- package/dist/assets/design/skills/hyperframes-core/references/full-screen-motion.md +67 -0
- package/dist/assets/design/skills/hyperframes-core/references/minimal-composition.md +69 -0
- package/dist/assets/design/skills/hyperframes-core/references/sub-compositions.md +176 -0
- package/dist/assets/design/skills/hyperframes-core/references/tailwind.md +104 -0
- package/dist/assets/design/skills/hyperframes-core/references/tracks-and-clips.md +87 -0
- package/dist/assets/design/skills/hyperframes-core/references/variables-and-media.md +107 -0
- package/dist/assets/design/skills/hyperframes-creative/SKILL.md +71 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/FRAME.md +277 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/caption-skin.html +224 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/fonts/OFL-eb-garamond.txt +93 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/fonts/OFL-inter.txt +93 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/fonts/OFL-jetbrains-mono.txt +93 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/code-editorial/frame-showcase.html +1438 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
- package/dist/assets/design/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
- package/dist/assets/design/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
- package/dist/assets/design/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
- package/dist/assets/design/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
- package/dist/assets/design/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
- package/dist/assets/design/skills/hyperframes-creative/palettes/monochrome.md +14 -0
- package/dist/assets/design/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
- package/dist/assets/design/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
- package/dist/assets/design/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
- package/dist/assets/design/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
- package/dist/assets/design/skills/hyperframes-creative/references/audio-reactive.md +76 -0
- package/dist/assets/design/skills/hyperframes-creative/references/beat-direction.md +164 -0
- package/dist/assets/design/skills/hyperframes-creative/references/composition-patterns.md +199 -0
- package/dist/assets/design/skills/hyperframes-creative/references/data-in-motion.md +19 -0
- package/dist/assets/design/skills/hyperframes-creative/references/design-adherence.md +19 -0
- package/dist/assets/design/skills/hyperframes-creative/references/design-picker.md +123 -0
- package/dist/assets/design/skills/hyperframes-creative/references/design-spec.md +55 -0
- package/dist/assets/design/skills/hyperframes-creative/references/house-style.md +73 -0
- package/dist/assets/design/skills/hyperframes-creative/references/motion-principles.md +151 -0
- package/dist/assets/design/skills/hyperframes-creative/references/narration.md +92 -0
- package/dist/assets/design/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
- package/dist/assets/design/skills/hyperframes-creative/references/story-spine.md +45 -0
- package/dist/assets/design/skills/hyperframes-creative/references/storyboard-recipe.md +57 -0
- package/dist/assets/design/skills/hyperframes-creative/references/typography.md +218 -0
- package/dist/assets/design/skills/hyperframes-creative/references/video-composition.md +63 -0
- package/dist/assets/design/skills/hyperframes-creative/references/visual-styles.md +457 -0
- package/dist/assets/design/skills/hyperframes-creative/templates/design-picker.html +1432 -0
- package/dist/assets/design/skills/hyperframes-keyframes/SKILL.md +262 -0
- package/dist/assets/design/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
- package/dist/assets/design/skills/hyperframes-keyframes/references/keyframe-patterns.md +108 -0
- package/dist/assets/design/skills/hyperframes-studio/SKILL.md +75 -0
- package/dist/assets/design/skills/motion-graphics/SKILL.md +175 -0
- package/dist/assets/design/skills/motion-graphics/agents/builder.md +41 -0
- package/dist/assets/design/skills/motion-graphics/agents/director.md +54 -0
- package/dist/assets/design/skills/motion-graphics/agents/finalize.md +17 -0
- package/dist/assets/design/skills/motion-graphics/catalog-map.md +52 -0
- package/dist/assets/design/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
- package/dist/assets/design/skills/motion-graphics/categories/charts/module.md +22 -0
- package/dist/assets/design/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
- package/dist/assets/design/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
- package/dist/assets/design/skills/motion-graphics/categories/lower-thirds/module.md +20 -0
- package/dist/assets/design/skills/motion-graphics/categories/maps/module.md +61 -0
- package/dist/assets/design/skills/motion-graphics/categories/news/module.md +56 -0
- package/dist/assets/design/skills/motion-graphics/categories/stat/module.md +21 -0
- package/dist/assets/design/skills/motion-graphics/categories/tweet/module.md +16 -0
- package/dist/assets/design/skills/motion-graphics/categories/webpage/module.md +30 -0
- package/dist/assets/design/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
- package/dist/assets/design/skills/motion-graphics/phases/source/guide.md +21 -0
- package/dist/assets/design/skills/motion-graphics/references/builder-contract.md +38 -0
- package/dist/assets/design/skills/motion-graphics/references/motion-vocabulary.md +47 -0
- package/dist/assets/design/skills/motion-graphics/references/shot-plan-ir.md +54 -0
- package/dist/assets/design/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
- package/dist/assets/design/skills/music-to-video/SKILL.md +207 -0
- package/dist/assets/design/skills/music-to-video/references/frame-skeleton.md +100 -0
- package/dist/assets/design/skills/music-to-video/references/montage.md +55 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitive-catalog.md +75 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/3d-card-flip/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/3d-card-flip/scene.html +119 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/bg-flow-field/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/bg-flow-field/scene.html +294 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/binary-decrypt/index.html +54 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/binary-decrypt/scene.html +85 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/blur-resolve/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/blur-resolve/scene.html +60 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/braam-punch/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/braam-punch/scene.html +100 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/chromatic-split/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/chromatic-split/scene.html +111 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/chrome-sweep/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/chrome-sweep/scene.html +68 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/counting-punch/index.html +54 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/counting-punch/scene.html +119 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/crash-zoom-in/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/crash-zoom-in/scene.html +120 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/datamosh-smear/index.html +55 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/datamosh-smear/scene.html +131 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/directional-fill/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/directional-fill/scene.html +103 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/dolly-zoom/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/dolly-zoom/scene.html +102 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/electric-arc/index.html +54 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/electric-arc/scene.html +105 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/flash-cut/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/flash-cut/scene.html +97 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/gooey-metaball/index.html +54 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/gooey-metaball/scene.html +206 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/hard-cut/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/hard-cut/scene.html +82 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/hypercut-whip/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/hypercut-whip/scene.html +44 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/iris-open/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/iris-open/scene.html +69 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/kinetic-letter-in/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/kinetic-letter-in/scene.html +64 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/liquid-morph/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/liquid-morph/scene.html +96 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/mask-reveal/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/mask-reveal/scene.html +74 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/mosaic-pack/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/mosaic-pack/scene.html +89 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/neon-flicker/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/neon-flicker/scene.html +73 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/outline-to-fill/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/outline-to-fill/scene.html +82 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/palette-flip/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/palette-flip/scene.html +97 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/particle-burst/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/particle-burst/scene.html +106 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/pixel-dissolve/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/pixel-dissolve/scene.html +86 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/radial-burst-lines/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/radial-burst-lines/scene.html +130 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/screen-shake/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/screen-shake/scene.html +78 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/slot-machine-reveal/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/slot-machine-reveal/scene.html +100 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/spotlight-sweep/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/spotlight-sweep/scene.html +102 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/staggered-exit/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/staggered-exit/scene.html +82 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/text-spectral-rays/USAGE.md +42 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/text-spectral-rays/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/text-spectral-rays/scene.html +280 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/text-wave-distort/index.html +54 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/text-wave-distort/scene.html +106 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/tile-mosaic/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/tile-mosaic/scene.html +109 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/typewriter-reveal/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/typewriter-reveal/scene.html +91 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/word-grid-burst/index.html +53 -0
- package/dist/assets/design/skills/music-to-video/references/motion-primitives/word-grid-burst/scene.html +96 -0
- package/dist/assets/design/skills/music-to-video/references/planning.md +104 -0
- package/dist/assets/design/skills/music-to-video/references/storyboard-format.md +94 -0
- package/dist/assets/design/skills/music-to-video/references/template-catalog.md +106 -0
- package/dist/assets/design/skills/music-to-video/references/templates/card-flyby/index.html +527 -0
- package/dist/assets/design/skills/music-to-video/references/templates/card-flyby/program.json +13 -0
- package/dist/assets/design/skills/music-to-video/references/templates/held-message-living-field/index.html +485 -0
- package/dist/assets/design/skills/music-to-video/references/templates/held-text-strobe-burst/index.html +302 -0
- package/dist/assets/design/skills/music-to-video/references/templates/intro-kinetic-cascade/index.html +610 -0
- package/dist/assets/design/skills/music-to-video/references/templates/intro-kinetic-cascade/program.json +41 -0
- package/dist/assets/design/skills/music-to-video/references/templates/logo-split-lockup-pulse/index.html +596 -0
- package/dist/assets/design/skills/music-to-video/references/templates/poster-tile-mosaic/index.html +589 -0
- package/dist/assets/design/skills/music-to-video/references/templates/poster-tile-mosaic/program.json +25 -0
- package/dist/assets/design/skills/music-to-video/references/templates/roll-flipbook-word-cycle/index.html +267 -0
- package/dist/assets/design/skills/music-to-video/references/templates/split-anchor-word-slot/index.html +594 -0
- package/dist/assets/design/skills/music-to-video/references/templates/split-anchor-word-slot/program.json +39 -0
- package/dist/assets/design/skills/music-to-video/references/templates/typewriter-phrase-keyword-shuffle/index.html +238 -0
- package/dist/assets/design/skills/music-to-video/sub-agents/frame-worker.md +49 -0
- package/dist/assets/design/skills/pr-to-video/SKILL.md +271 -0
- package/dist/assets/design/skills/pr-to-video/references/code-vocabulary.md +112 -0
- package/dist/assets/design/skills/pr-to-video/references/cut-catalog.md +215 -0
- package/dist/assets/design/skills/pr-to-video/references/motion-language.md +156 -0
- package/dist/assets/design/skills/pr-to-video/references/story-design.md +230 -0
- package/dist/assets/design/skills/pr-to-video/references/visual-design.md +164 -0
- package/dist/assets/design/skills/pr-to-video/sub-agents/frame-worker.md +38 -0
- package/dist/assets/design/skills/product-launch-video/SKILL.md +262 -0
- package/dist/assets/design/skills/product-launch-video/references/cut-catalog.md +220 -0
- package/dist/assets/design/skills/product-launch-video/references/motion-language.md +156 -0
- package/dist/assets/design/skills/product-launch-video/references/story-design.md +508 -0
- package/dist/assets/design/skills/product-launch-video/references/visual-design.md +126 -0
- package/dist/assets/design/skills/product-launch-video/sub-agents/frame-worker.md +21 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/SKILL.md +130 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/README.md +41 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/expected.json +26 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/hf-src/compositions/title.html +31 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/hf-src/index.html +46 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/package.json +14 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/tsconfig.json +15 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/README.md +54 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/expected.json +29 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/compositions/scene-1.html +35 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/compositions/scene-2.html +35 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/compositions/scene-3.html +36 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/index.html +75 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/package.json +14 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/tsconfig.json +15 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/README.md +85 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/expected.json +41 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/compositions/scene-1.html +52 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/compositions/scene-2.html +99 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/compositions/scene-3.html +55 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/index.html +70 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/package.json +15 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/tsconfig.json +15 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/README.md +51 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/expected.json +85 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/references/api-map.md +142 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/references/escape-hatch.md +115 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/references/eval.md +140 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/references/fonts.md +112 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/references/limitations.md +136 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/references/lottie.md +119 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/references/media.md +149 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/references/parameters.md +172 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/references/sequencing.md +251 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/references/timing.md +165 -0
- package/dist/assets/design/skills/remotion-to-hyperframes/references/transitions.md +113 -0
- package/dist/assets/design/skills/slideshow/SKILL.md +530 -0
- package/dist/assets/design/skills/slideshow/references/standalone-harness.md +1017 -0
- package/dist/assets/design/skills/talking-head-recut/NOTICE.md +39 -0
- package/dist/assets/design/skills/talking-head-recut/SKILL.md +1007 -0
- package/dist/assets/design/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
- package/dist/assets/design/skills/talking-head-recut/references/confirm-visual-direction-with-user-do-this-first.md +211 -0
- package/dist/assets/design/skills/talking-head-recut/references/frames/clean.html +92 -0
- package/dist/assets/design/skills/talking-head-recut/references/frames/hairline.html +171 -0
- package/dist/assets/design/skills/talking-head-recut/references/frames/polaroid.html +131 -0
- package/dist/assets/design/skills/talking-head-recut/references/layouts/overlay.html +164 -0
- package/dist/assets/design/skills/talking-head-recut/references/layouts/pip.html +143 -0
- package/dist/assets/design/skills/talking-head-recut/references/layouts/split.html +121 -0
- package/dist/assets/design/skills/talking-head-recut/references/layouts/stack.html +109 -0
- package/dist/assets/design/skills/talking-head-recut/references/styles/academic.html +172 -0
- package/dist/assets/design/skills/talking-head-recut/references/styles/audit.html +170 -0
- package/dist/assets/design/skills/talking-head-recut/references/styles/editorial.html +189 -0
- package/dist/assets/design/skills/talking-head-recut/references/styles/geom.html +181 -0
- package/dist/assets/design/skills/talking-head-recut/references/styles/minimal.html +130 -0
- package/dist/assets/design/skills/talking-head-recut/references/styles/spotlight.html +142 -0
- package/dist/assets/design/skills/talking-head-recut/references/styles/swiss.html +188 -0
- package/dist/assets/design/skills/talking-head-recut/references/styles/terminal.html +196 -0
- package/dist/assets/design/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
- package/dist/assets/design/skills/talking-head-recut/references/styles/xhs.html +206 -0
- package/dist/assets/design/taste/LICENSE +21 -0
- package/dist/assets/design/taste/PROVENANCE.md +70 -0
- package/dist/assets/design/taste/brandkit/SKILL.md +798 -0
- package/dist/assets/design/taste/brutalist-skill/SKILL.md +92 -0
- package/dist/assets/design/taste/gpt-tasteskill/SKILL.md +74 -0
- package/dist/assets/design/taste/image-to-code-skill/SKILL.md +1228 -0
- package/dist/assets/design/taste/imagegen-frontend-mobile/SKILL.md +1465 -0
- package/dist/assets/design/taste/imagegen-frontend-web/SKILL.md +987 -0
- package/dist/assets/design/taste/minimalist-skill/SKILL.md +85 -0
- package/dist/assets/design/taste/output-skill/SKILL.md +49 -0
- package/dist/assets/design/taste/redesign-skill/SKILL.md +178 -0
- package/dist/assets/design/taste/soft-skill/SKILL.md +98 -0
- package/dist/assets/design/taste/stitch-skill/DESIGN.md +121 -0
- package/dist/assets/design/taste/stitch-skill/SKILL.md +184 -0
- package/dist/assets/design/taste/taste-skill/SKILL.md +1043 -0
- package/dist/assets/design/taste/taste-skill/references/4-2-color-calibration.md +24 -0
- package/dist/assets/design/taste/taste-skill/references/4-7-layout-discipline-hard-rules-failing-any-of-.md +27 -0
- package/dist/assets/design/taste/taste-skill/references/4-8-image-visual-asset-strategy.md +35 -0
- package/dist/assets/design/taste/taste-skill/references/4-9-content-density.md +34 -0
- package/dist/assets/design/taste/taste-skill/references/9-f-production-test-tells-banned-outright.md +54 -0
- package/dist/assets/design/taste/taste-skill-v1/SKILL.md +226 -0
- package/dist/assets/engineering/skills-starter/engineering-ui-design/SKILL.md +84 -0
- package/dist/assets/engineering/skills-superpowers/subagent-driven-development/SKILL.md +68 -459
- package/dist/assets/engineering/skills-superpowers/subagent-driven-development/dispatch-and-review-rules.md +74 -0
- package/dist/assets/engineering/skills-superpowers/subagent-driven-development/example-workflow.md +70 -0
- package/dist/assets/engineering/skills-superpowers/subagent-driven-development/model-selection.md +40 -0
- package/dist/assets/engineering/skills-superpowers/subagent-driven-development/process-diagrams.md +92 -0
- package/dist/assets/engineering/skills-superpowers/subagent-driven-development/setup-and-ledger.md +75 -0
- package/dist/assets/uiux/LICENSE +21 -0
- package/dist/assets/uiux/PROVENANCE.md +110 -0
- package/dist/assets/uiux/data/app-interface.csv +33 -0
- package/dist/assets/uiux/data/charts.csv +26 -0
- package/dist/assets/uiux/data/colors.csv +193 -0
- package/dist/assets/uiux/data/icons.csv +106 -0
- package/dist/assets/uiux/data/landing.csv +35 -0
- package/dist/assets/uiux/data/motion.csv +18 -0
- package/dist/assets/uiux/data/products.csv +193 -0
- package/dist/assets/uiux/data/react-performance.csv +45 -0
- package/dist/assets/uiux/data/stacks/angular.csv +51 -0
- package/dist/assets/uiux/data/stacks/astro.csv +54 -0
- package/dist/assets/uiux/data/stacks/avalonia.csv +57 -0
- package/dist/assets/uiux/data/stacks/flutter.csv +53 -0
- package/dist/assets/uiux/data/stacks/html-tailwind.csv +60 -0
- package/dist/assets/uiux/data/stacks/javafx.csv +76 -0
- package/dist/assets/uiux/data/stacks/jetpack-compose.csv +53 -0
- package/dist/assets/uiux/data/stacks/laravel.csv +51 -0
- package/dist/assets/uiux/data/stacks/nextjs.csv +62 -0
- package/dist/assets/uiux/data/stacks/nuxt-ui.csv +77 -0
- package/dist/assets/uiux/data/stacks/nuxtjs.csv +68 -0
- package/dist/assets/uiux/data/stacks/react-native.csv +52 -0
- package/dist/assets/uiux/data/stacks/react.csv +67 -0
- package/dist/assets/uiux/data/stacks/shadcn.csv +69 -0
- package/dist/assets/uiux/data/stacks/svelte.csv +56 -0
- package/dist/assets/uiux/data/stacks/swiftui.csv +51 -0
- package/dist/assets/uiux/data/stacks/threejs.csv +54 -0
- package/dist/assets/uiux/data/stacks/uno.csv +60 -0
- package/dist/assets/uiux/data/stacks/uwp.csv +56 -0
- package/dist/assets/uiux/data/stacks/vue.csv +50 -0
- package/dist/assets/uiux/data/stacks/winui.csv +60 -0
- package/dist/assets/uiux/data/stacks/wpf.csv +57 -0
- package/dist/assets/uiux/data/styles.csv +89 -0
- package/dist/assets/uiux/data/typography.csv +75 -0
- package/dist/assets/uiux/data/ui-reasoning.csv +193 -0
- package/dist/assets/uiux/data/ux-guidelines.csv +120 -0
- package/dist/auto-review.js +38 -4
- package/dist/bootstrap.js +65061 -56810
- package/dist/client.cjs +4668 -3598
- package/dist/subagent-claude-code.js +493 -0
- package/dist/subagent-codex.js +1068 -0
- package/dist/tool-session-query.js +993 -0
- package/package.json +81 -74
- package/dist/agent-team.js +0 -16235
- package/dist/schedule.js +0 -15898
- package/dist/tool-agent-team.js +0 -16766
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hyperframes-three
|
|
3
|
+
description: Three.js and WebGL adapter patterns for HyperFrames. Use when creating deterministic Three.js scenes, WebGL canvas layers, AnimationMixer timelines, camera motion, shader-driven visuals, or canvas renders that respond to HyperFrames hf-seek events.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Three.js for HyperFrames
|
|
7
|
+
|
|
8
|
+
HyperFrames supports Three.js through its `three` runtime adapter. The adapter does not own your scene. It publishes HyperFrames time and dispatches a seek event so your composition can render the exact frame.
|
|
9
|
+
|
|
10
|
+
## Contract
|
|
11
|
+
|
|
12
|
+
- Create the scene, camera, renderer, materials, and assets synchronously when possible.
|
|
13
|
+
- Render from HyperFrames time, not wall-clock time.
|
|
14
|
+
- Listen for the `hf-seek` event and render exactly that time.
|
|
15
|
+
- Load models, textures, and HDRIs before render-critical seeking. Do not fetch them at seek time.
|
|
16
|
+
- Avoid `requestAnimationFrame` or `renderer.setAnimationLoop` as the source of truth for render-critical motion.
|
|
17
|
+
- **Always set `data-duration="<seconds>"` on the root `[data-composition-id]` element.** Unlike CSS/WAAPI/Lottie, the `three` adapter has no duration auto-inference — it only forwards time via `hf-seek`/`__hfThreeTime`, it doesn't inspect your scene for an `AnimationClip`/`AnimationMixer` length. Without `data-duration` (and no GSAP timeline), the render engine has no way to know how long to capture and fails with "Composition has zero duration". `freecodego_design_lint` errors on this (`root_composition_missing_duration_source`).
|
|
18
|
+
|
|
19
|
+
The adapter sets `window.__hfThreeTime` and dispatches `new CustomEvent("hf-seek", { detail: { time } })` on each seek.
|
|
20
|
+
|
|
21
|
+
## Basic Pattern
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<canvas id="three-layer"></canvas>
|
|
25
|
+
<script type="module">
|
|
26
|
+
import * as THREE from "https://cdn.jsdelivr.net/npm/three@0.181.2/+esm";
|
|
27
|
+
|
|
28
|
+
const canvas = document.getElementById("three-layer");
|
|
29
|
+
const renderer = new THREE.WebGLRenderer({ canvas, alpha: true, antialias: true });
|
|
30
|
+
// Match these to your composition's frame size.
|
|
31
|
+
renderer.setSize(1920, 1080, false);
|
|
32
|
+
renderer.setPixelRatio(1);
|
|
33
|
+
|
|
34
|
+
const scene = new THREE.Scene();
|
|
35
|
+
const camera = new THREE.PerspectiveCamera(35, 1920 / 1080, 0.1, 100);
|
|
36
|
+
camera.position.set(0, 0, 6);
|
|
37
|
+
|
|
38
|
+
const mesh = new THREE.Mesh(
|
|
39
|
+
new THREE.IcosahedronGeometry(1.4, 4),
|
|
40
|
+
new THREE.MeshStandardMaterial({ color: 0x64d2ff, roughness: 0.38 }),
|
|
41
|
+
);
|
|
42
|
+
scene.add(mesh);
|
|
43
|
+
scene.add(new THREE.HemisphereLight(0xffffff, 0x223344, 2));
|
|
44
|
+
|
|
45
|
+
function renderAt(time) {
|
|
46
|
+
mesh.rotation.y = time * 0.7;
|
|
47
|
+
mesh.rotation.x = Math.sin(time * 0.6) * 0.16;
|
|
48
|
+
renderer.render(scene, camera);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
window.addEventListener("hf-seek", (event) => {
|
|
52
|
+
renderAt(event.detail.time);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
renderAt(window.__hfThreeTime || 0);
|
|
56
|
+
</script>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```css
|
|
60
|
+
#three-layer {
|
|
61
|
+
width: 100%;
|
|
62
|
+
height: 100%;
|
|
63
|
+
display: block;
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Loading Addons (`GLTFLoader`, `OrbitControls`, etc.)
|
|
68
|
+
|
|
69
|
+
For anything under `three/addons/`, use an importmap so bare specifiers resolve. The HyperFrames lint recognizes both this form and the inline `+esm` import above — pick whichever your composition needs.
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
<script type="importmap">
|
|
73
|
+
{
|
|
74
|
+
"imports": {
|
|
75
|
+
"three": "https://cdn.jsdelivr.net/npm/three@0.181.2/build/three.module.js",
|
|
76
|
+
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.181.2/examples/jsm/"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
</script>
|
|
80
|
+
<script type="module">
|
|
81
|
+
import * as THREE from "three";
|
|
82
|
+
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
|
|
83
|
+
import { OrbitControls } from "three/addons/controls/OrbitControls.js";
|
|
84
|
+
// ...
|
|
85
|
+
</script>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Pin the `three` version in both entries to the same value. Mixing versions across the map and bare imports causes silent breakage.
|
|
89
|
+
|
|
90
|
+
## Heavy Setup (Large Meshes, Shader Compiles)
|
|
91
|
+
|
|
92
|
+
The runtime already waits for textures/models queued through Three's `DefaultLoadingManager` before publishing render-ready. It has no visibility into CPU-bound work you do yourself after assets load — building a large procedural mesh, compiling shaders, warming a pipeline. That work can leave the canvas blank for seconds after the runtime and player already say "ready".
|
|
93
|
+
|
|
94
|
+
If your setup does this kind of work, register a promise on `window.__hf.buildReady` (declared-compute hold: runtime waits, player shows its loading state instead of a blank frame):
|
|
95
|
+
|
|
96
|
+
```js
|
|
97
|
+
window.__hf = window.__hf || {};
|
|
98
|
+
window.__hf.buildReady = window.__hf.buildReady || {};
|
|
99
|
+
window.__hf.buildReady["<your-piece-name>"] = buildScene(); // resolves once the scene is actually drawable
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Register it synchronously, in the same script block that starts the build — same timing as `DefaultLoadingManager`, so the runtime's first readiness check already sees it. Only do this for setup an adapter cannot see; render-critical seeking still comes from `hf-seek`, not this hold. The key must be unique within the composition — a second registration under the same key silently replaces the first, dropping its hold.
|
|
103
|
+
|
|
104
|
+
## AnimationMixer Pattern
|
|
105
|
+
|
|
106
|
+
For GLTF or authored clip animation, seek the mixer directly:
|
|
107
|
+
|
|
108
|
+
```js
|
|
109
|
+
function renderAt(time) {
|
|
110
|
+
mixer.setTime(time);
|
|
111
|
+
renderer.render(scene, camera);
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
If several mixers exist, seek all of them from the same `time`.
|
|
116
|
+
|
|
117
|
+
## Good Uses
|
|
118
|
+
|
|
119
|
+
- Deterministic 3D objects, product spins, particles with seeded data, and shader plates.
|
|
120
|
+
- Camera moves derived from `time`.
|
|
121
|
+
- GLTF animation clips when assets are local and loaded before validation completes.
|
|
122
|
+
|
|
123
|
+
## Avoid
|
|
124
|
+
|
|
125
|
+
- Using `Date.now()`, `performance.now()`, or clock deltas to update scene state.
|
|
126
|
+
- Leaving render-critical work inside a free-running animation loop.
|
|
127
|
+
- Loading remote models or textures at render time.
|
|
128
|
+
- Device-pixel-ratio dependent output. Pin renderer size and pixel ratio for video renders.
|
|
129
|
+
- Post-processing passes that depend on previous frame history unless you can reconstruct state from time.
|
|
130
|
+
|
|
131
|
+
## Validation
|
|
132
|
+
|
|
133
|
+
After editing a Three.js composition:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
freecodego_design_lint
|
|
137
|
+
freecodego_design_lint
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Credits And References
|
|
141
|
+
|
|
142
|
+
- HyperFrames adapter source: `packages/core/src/runtime/adapters/three.ts`.
|
|
143
|
+
- Why `data-duration` is required here specifically (no auto-inference for this adapter): `packages/core/src/runtime/init.ts` (`resolveAdapterDurationFloorSeconds`) and the CSS/WAAPI/Lottie adapters' `getInferredDurationSeconds`, which the `three` adapter deliberately does not implement.
|
|
144
|
+
- Three.js `WebGLRenderer` docs: https://threejs.org/docs/pages/WebGLRenderer.html
|
|
145
|
+
- Three.js `AnimationMixer.setTime()` docs: https://threejs.org/docs/pages/AnimationMixer.html
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hyperframes-typegpu
|
|
3
|
+
description: TypeGPU and raw WebGPU adapter patterns for HyperFrames. Use when creating GPU-rendered compositions with TypeGPU, raw WebGPU, WGSL fragment shaders, compute pipelines, liquid glass effects, particle systems, or any canvas layer driven by navigator.gpu that responds to HyperFrames hf-seek events.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# TypeGPU / WebGPU for HyperFrames
|
|
7
|
+
|
|
8
|
+
HyperFrames supports TypeGPU and raw WebGPU through its `typegpu` runtime adapter. The adapter does not own your pipeline. It publishes HyperFrames time and dispatches a seek event so your composition can render the exact GPU frame.
|
|
9
|
+
|
|
10
|
+
## Render-environment prerequisite (WebGPU + html-in-canvas)
|
|
11
|
+
|
|
12
|
+
The render engine auto-passes `--enable-unsafe-webgpu` and `--enable-features=CanvasDrawElement` to its Chrome launch args. Stock Chromium and the bundled headless-shell **do not** support WebGPU + `drawElementImage` together — the combo that liquid-glass blocks need (`ios26-liquid-glass`, `macos-tahoe-liquid-glass`, `liquid-glass-*`, `vfx-liquid-glass`). For those blocks, point the engine at Brave (or Chrome canary) by setting `PRODUCER_HEADLESS_SHELL_PATH` to the browser binary before running `freecodego_design_render` / `preview`. Plain TypeGPU layers without HTML-as-texture work in headless-shell — only the html-in-canvas + WebGPU combination needs the override.
|
|
13
|
+
|
|
14
|
+
## Contract
|
|
15
|
+
|
|
16
|
+
- Initialize WebGPU asynchronously (`await navigator.gpu.requestAdapter()`), but register all GSAP tweens **synchronously** — before any `await`. The HyperFrames player reads the timeline immediately at page load.
|
|
17
|
+
- Render from HyperFrames time, not `performance.now()`.
|
|
18
|
+
- Listen for the `hf-seek` event and re-render at exactly that time.
|
|
19
|
+
- Guard against environments where WebGPU is unavailable — the adapter does not check for you.
|
|
20
|
+
- If the composition cannot render without WebGPU, add `data-requires-webgpu` to its composition root. Local capture commands then report an actionable error instead of capturing a no-GPU fallback screen when auto-detection selects software rendering.
|
|
21
|
+
- After submitting GPU work, register queue completion synchronously with `e.detail.waitUntil(device.queue.onSubmittedWorkDone())`. HyperFrames awaits registered work before screenshots and frame capture.
|
|
22
|
+
|
|
23
|
+
The adapter sets `window.__hfTypegpuTime` and dispatches an `hf-seek` event with `{ time, waitUntil }` on each seek. While Studio is paused, HyperFrames may dispatch the same time again to keep the WebGPU swapchain presented. Re-render that exact time; do not advance simulation state.
|
|
24
|
+
|
|
25
|
+
## Basic Pattern
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<canvas id="gpu-layer"></canvas>
|
|
29
|
+
<script>
|
|
30
|
+
(async () => {
|
|
31
|
+
if (!navigator.gpu) return;
|
|
32
|
+
const adapter = await navigator.gpu.requestAdapter();
|
|
33
|
+
if (!adapter) return;
|
|
34
|
+
const device = await adapter.requestDevice();
|
|
35
|
+
const canvas = document.getElementById("gpu-layer");
|
|
36
|
+
canvas.width = 1920;
|
|
37
|
+
canvas.height = 1080;
|
|
38
|
+
const ctx = canvas.getContext("webgpu");
|
|
39
|
+
const fmt = navigator.gpu.getPreferredCanvasFormat();
|
|
40
|
+
ctx.configure({ device, format: fmt, alphaMode: "opaque" });
|
|
41
|
+
|
|
42
|
+
// Build your pipeline, buffers, bind groups...
|
|
43
|
+
const timeUniform = new Float32Array([0]);
|
|
44
|
+
const timeBuf = device.createBuffer({
|
|
45
|
+
size: 16,
|
|
46
|
+
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
function render(t) {
|
|
50
|
+
timeUniform[0] = t;
|
|
51
|
+
device.queue.writeBuffer(timeBuf, 0, timeUniform);
|
|
52
|
+
const enc = device.createCommandEncoder();
|
|
53
|
+
const pass = enc.beginRenderPass({
|
|
54
|
+
colorAttachments: [
|
|
55
|
+
{
|
|
56
|
+
view: ctx.getCurrentTexture().createView(),
|
|
57
|
+
loadOp: "clear",
|
|
58
|
+
clearValue: { r: 0, g: 0, b: 0, a: 1 },
|
|
59
|
+
storeOp: "store",
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
});
|
|
63
|
+
pass.setPipeline(pipeline);
|
|
64
|
+
pass.setBindGroup(0, bindGroup);
|
|
65
|
+
pass.draw(3);
|
|
66
|
+
pass.end();
|
|
67
|
+
device.queue.submit([enc.finish()]);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
render(0);
|
|
71
|
+
window.addEventListener("hf-seek", (e) => {
|
|
72
|
+
render(e.detail.time);
|
|
73
|
+
e.detail.waitUntil(device.queue.onSubmittedWorkDone());
|
|
74
|
+
});
|
|
75
|
+
})();
|
|
76
|
+
</script>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Timeline Registration
|
|
80
|
+
|
|
81
|
+
GSAP tweens that drive text, captions, or HTML elements must be registered **synchronously** — before any `await`:
|
|
82
|
+
|
|
83
|
+
```js
|
|
84
|
+
const tl = gsap.timeline({ paused: true });
|
|
85
|
+
|
|
86
|
+
// Caption tweens: synchronous, added before WebGPU init
|
|
87
|
+
gsap.set(".cap", { opacity: 0 });
|
|
88
|
+
tl.to("#cap-1", { opacity: 1, duration: 0.3 }, 1.0);
|
|
89
|
+
tl.to("#cap-1", { opacity: 0, duration: 0.2 }, 3.5);
|
|
90
|
+
|
|
91
|
+
window.__timelines["my-comp"] = tl;
|
|
92
|
+
|
|
93
|
+
// GPU-dependent tweens can go inside the async IIFE
|
|
94
|
+
(async () => {
|
|
95
|
+
// ... WebGPU init ...
|
|
96
|
+
const proxy = { value: 0 };
|
|
97
|
+
tl.to(proxy, { value: 1, duration: 2, onUpdate: render }, 0.5);
|
|
98
|
+
})();
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Video-Backed Effects (Liquid Glass, Distortion)
|
|
102
|
+
|
|
103
|
+
To use a `<video>` as the GPU input texture:
|
|
104
|
+
|
|
105
|
+
```js
|
|
106
|
+
const videoEl = document.getElementById("aroll");
|
|
107
|
+
|
|
108
|
+
// Wait for video metadata before creating the texture
|
|
109
|
+
await new Promise((r) => {
|
|
110
|
+
if (videoEl.readyState >= 1) r();
|
|
111
|
+
else videoEl.addEventListener("loadedmetadata", r, { once: true });
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
// Create texture at the video's NATIVE resolution
|
|
115
|
+
const vw = videoEl.videoWidth,
|
|
116
|
+
vh = videoEl.videoHeight;
|
|
117
|
+
const bgTex = device.createTexture({
|
|
118
|
+
size: [vw, vh],
|
|
119
|
+
format: "rgba8unorm",
|
|
120
|
+
usage:
|
|
121
|
+
GPUTextureUsage.COPY_DST | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.RENDER_ATTACHMENT,
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
function render(t) {
|
|
125
|
+
try {
|
|
126
|
+
device.queue.copyExternalImageToTexture({ source: videoEl }, { texture: bgTex }, [vw, vh]);
|
|
127
|
+
} catch (_) {
|
|
128
|
+
/* frame not decoded yet */
|
|
129
|
+
}
|
|
130
|
+
// ... draw ...
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Render-mode caveat:** headless Chrome may fail `copyExternalImageToTexture` for video elements. For production renders, pre-extract key frames via FFmpeg as PNGs and load them as image textures instead.
|
|
135
|
+
|
|
136
|
+
## Frosted Blur via Downsample Pass
|
|
137
|
+
|
|
138
|
+
A single-pass Gaussian kernel is too weak for glass-like frosted blur. Use a two-pass approach:
|
|
139
|
+
|
|
140
|
+
1. **Pass 1 — Downsample:** render the full-res texture to a small texture (1/6 resolution). Bilinear filtering during the downsample naturally averages pixels.
|
|
141
|
+
2. **Pass 2 — Glass composite:** sample the small texture for the frosted interior (bilinear upscale = heavy smooth blur) and the full-res texture for sharp areas and chromatic refraction.
|
|
142
|
+
|
|
143
|
+
This matches TypeGPU's `textureSampleBias` mip-level approach without generating mipmaps.
|
|
144
|
+
|
|
145
|
+
## Transparent vs Opaque Canvas
|
|
146
|
+
|
|
147
|
+
- **`alphaMode: 'opaque'`** — the GPU canvas renders the full frame (video + effect). Use when the GPU pipeline handles all visual content.
|
|
148
|
+
- **`alphaMode: 'premultiplied'`** — the GPU canvas is transparent where alpha = 0, letting HTML elements below show through. Use for overlays (particles, path animations) on top of a regular `<video>` element.
|
|
149
|
+
|
|
150
|
+
## WGSL Full-Screen Triangle
|
|
151
|
+
|
|
152
|
+
The standard vertex shader for full-screen effects (no vertex buffer needed):
|
|
153
|
+
|
|
154
|
+
```wgsl
|
|
155
|
+
struct Vo { @builtin(position) pos: vec4f, @location(0) uv: vec2f }
|
|
156
|
+
|
|
157
|
+
@vertex fn vs(@builtin(vertex_index) vi: u32) -> Vo {
|
|
158
|
+
let ps = array<vec2f, 3>(vec2f(-1., -1.), vec2f(3., -1.), vec2f(-1., 3.));
|
|
159
|
+
let ts = array<vec2f, 3>(vec2f(0., 1.), vec2f(2., 1.), vec2f(0., -1.));
|
|
160
|
+
return Vo(vec4f(ps[vi], 0., 1.), ts[vi]);
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Draw with `pass.draw(3)` — one triangle that covers the viewport.
|
|
165
|
+
|
|
166
|
+
## Rounded-Rect SDF (Liquid Glass Pill)
|
|
167
|
+
|
|
168
|
+
```wgsl
|
|
169
|
+
fn sdf_box(p: vec2f, half_size: vec2f, corner_radius: f32) -> f32 {
|
|
170
|
+
let d = abs(p) - half_size + vec2f(corner_radius);
|
|
171
|
+
return length(max(d, vec2f(0.))) + min(max(d.x, d.y), 0.) - corner_radius;
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Use this to define inside/ring/outside zones for glass effects. Negative values are inside the shape.
|
|
176
|
+
|
|
177
|
+
## Deterministic Rendering
|
|
178
|
+
|
|
179
|
+
- No `Math.random()` — use a seeded PRNG.
|
|
180
|
+
- Do not use an autonomous `requestAnimationFrame` simulation loop. Render in response to `hf-seek`; HyperFrames owns the paused-presentation heartbeat and may re-present the same time.
|
|
181
|
+
- No `performance.now()` for animation time — read `window.__hfTypegpuTime` or `e.detail.time`.
|
|
182
|
+
- Register GPU completion with `e.detail.waitUntil(device.queue.onSubmittedWorkDone())` before the event listener returns.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hyperframes-waapi
|
|
3
|
+
description: Web Animations API adapter patterns for HyperFrames. Use when authoring element.animate() motion, Animation currentTime seeking, document.getAnimations(), KeyframeEffect timing, fill modes, or native browser animations that must render deterministically in HyperFrames.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Web Animations API for HyperFrames
|
|
7
|
+
|
|
8
|
+
HyperFrames can seek Web Animations API animations through its `waapi` runtime adapter. WAAPI is useful when you want native browser keyframes with JavaScript-created timing and no GSAP dependency.
|
|
9
|
+
|
|
10
|
+
## Contract
|
|
11
|
+
|
|
12
|
+
- Create animations synchronously during composition initialization.
|
|
13
|
+
- Use `element.animate(...)` with finite `duration` and `iterations`.
|
|
14
|
+
- Use `fill: "both"` so seeked states persist.
|
|
15
|
+
- Pause animations after creation or let the adapter pause them on first seek.
|
|
16
|
+
- Avoid callbacks and promises for render-critical state.
|
|
17
|
+
|
|
18
|
+
The adapter calls `document.getAnimations()`, sets each animation's `currentTime` to HyperFrames time in milliseconds, then pauses it.
|
|
19
|
+
|
|
20
|
+
## Basic Pattern
|
|
21
|
+
|
|
22
|
+
```html
|
|
23
|
+
<div id="orb" class="clip orb" data-start="2" data-duration="3" data-track-index="2"></div>
|
|
24
|
+
|
|
25
|
+
<script>
|
|
26
|
+
const orb = document.getElementById("orb");
|
|
27
|
+
const animation = orb.animate(
|
|
28
|
+
[
|
|
29
|
+
{ transform: "translate3d(-160px, 0, 0) scale(0.8)", opacity: 0 },
|
|
30
|
+
{ transform: "translate3d(0, 0, 0) scale(1)", opacity: 1, offset: 0.35 },
|
|
31
|
+
{ transform: "translate3d(120px, 0, 0) scale(1.08)", opacity: 1 },
|
|
32
|
+
],
|
|
33
|
+
{
|
|
34
|
+
duration: 3000,
|
|
35
|
+
delay: 2000,
|
|
36
|
+
easing: "cubic-bezier(0.2, 0, 0, 1)",
|
|
37
|
+
fill: "both",
|
|
38
|
+
iterations: 1,
|
|
39
|
+
},
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
animation.pause();
|
|
43
|
+
</script>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Stagger Pattern
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
document.querySelectorAll(".token").forEach((token, index) => {
|
|
50
|
+
const animation = token.animate(
|
|
51
|
+
[
|
|
52
|
+
{ transform: "translateY(24px)", opacity: 0 },
|
|
53
|
+
{ transform: "translateY(0)", opacity: 1 },
|
|
54
|
+
],
|
|
55
|
+
{
|
|
56
|
+
duration: 620,
|
|
57
|
+
delay: index * 80,
|
|
58
|
+
easing: "cubic-bezier(0.2, 0, 0, 1)",
|
|
59
|
+
fill: "both",
|
|
60
|
+
iterations: 1,
|
|
61
|
+
},
|
|
62
|
+
);
|
|
63
|
+
animation.pause();
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Good Uses
|
|
68
|
+
|
|
69
|
+
- Lightweight DOM motion where CSS keyframes are too rigid and GSAP is unnecessary.
|
|
70
|
+
- Generated animations from structured data.
|
|
71
|
+
- Simple timelines that can be represented as keyframes, delays, and offsets.
|
|
72
|
+
|
|
73
|
+
## Composition Duration
|
|
74
|
+
|
|
75
|
+
The render engine needs the composition's total length to know how many frames to capture. GSAP timelines report duration automatically; a WAAPI-only composition has no timeline object, so the runtime infers duration from every animation's `effect.getComputedTiming().endTime` (offset by when the animation was created relative to composition start). `data-duration` on the root element is optional as long as every `element.animate()` call uses finite `duration` and `iterations` — which the contract above already requires.
|
|
76
|
+
|
|
77
|
+
Infinite `iterations` has no finite `endTime`, so it can't be auto-inferred — that's one more reason to avoid it (see Avoid below). If you must use it, add `data-duration="<seconds>"` to the root `[data-composition-id]` element or `freecodego_design_lint` will error (`root_composition_missing_duration_source`).
|
|
78
|
+
|
|
79
|
+
## Avoid
|
|
80
|
+
|
|
81
|
+
- Infinite `iterations`.
|
|
82
|
+
- Depending on `animation.finished` to mutate render-critical DOM.
|
|
83
|
+
- Running separate clocks with `requestAnimationFrame`, timers, or `performance.now()`.
|
|
84
|
+
- Animating layout properties when transforms and opacity can express the motion.
|
|
85
|
+
- Assuming clip-local start time is automatic. WAAPI adapter seeks document-level animation time; model clip offsets with `delay` or create the animation on an element whose visibility is controlled by HyperFrames timing.
|
|
86
|
+
|
|
87
|
+
## Validation
|
|
88
|
+
|
|
89
|
+
After editing a WAAPI composition:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
freecodego_design_lint
|
|
93
|
+
freecodego_design_lint
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Credits And References
|
|
97
|
+
|
|
98
|
+
- HyperFrames adapter source: `packages/core/src/runtime/adapters/waapi.ts`.
|
|
99
|
+
- Duration auto-inference: `packages/core/src/runtime/init.ts` (`resolveAdapterDurationFloorSeconds`), `getInferredDurationSeconds` in the adapter above.
|
|
100
|
+
- MDN Web Animations API guide: https://developer.mozilla.org/docs/Web/API/Web_Animations_API/Using_the_Web_Animations_API
|
|
101
|
+
- MDN `Animation.currentTime`: https://developer.mozilla.org/en-US/docs/Web/API/Animation/currentTime
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# agent-progress-theater — Agent Progress Theater
|
|
2
|
+
|
|
3
|
+
**intent**: Agent work performed as WORKING-STATE theater — a short trigger beat hands the frame to the machine, which then visibly _works_: loaders spin, status phrases swap, dots pulse, counters tick — before the receipt arrives as a card whose rows cascade in and CHANGE STATE (badges flip to checks, labels strike through, severity pills read out), or as a conversation thread building message-by-message onto a camera push-in payoff. The subject is the machine performing labor over time. It is NOT a typed prompt awaiting output (no prompt/input is ever typed — the trigger is a click, a menu choice, or an already-running scan); NOT `cursor-ui-demo` (at most ONE igniting click here, then the cursor exits and the UI performs itself); NOT `grid-card-assemble` (rows there assemble into a static enumeration and hold — rows here are alive: they arrive as agent output and then MUTATE, checking off one by one while the viewer watches).
|
|
4
|
+
|
|
5
|
+
**roles served**
|
|
6
|
+
|
|
7
|
+
- Key_Feature (from `agent-progress-theater`): when the feature is the agent doing multi-step work (build a plan / scan a repo / fix a vulnerability / handle infra for you) and the proof is status theater — a loader lockup with a typed label, status couplets swapping under an `[accent]` spinner, then a checklist/findings card that populates and checks off in front of the viewer.
|
|
8
|
+
- Key_Feature (from `message-thread-payoff`): when the agent's work lives inside a conversation or automation thread — user/agent bubbles and tool-call/reply cards popping in sequence, the working state carried by pulsing loading dots or rapidly ticking diff counters, resolved by ONE camera push-in tight on the confirmation line (`[reaction pill]`, "Sent using `[@Bot]`", a thank-you bubble).
|
|
9
|
+
|
|
10
|
+
**duration**: 4.2–11.6s (short members are a single card-and-check-off or thread beat at ~4–5s; long members chain trigger → interstitial → status swaps → receipt card at ~9–12s; thread payoff spans 4.2–9.1s)
|
|
11
|
+
|
|
12
|
+
**shot structure** (a warm flat canvas — `[off-white / warm beige / near-white bg]`, optional `[faint grid / dot-grid / wavy-line]` texture; white rounded cards with soft drop shadows; ONE `[working accent]` color reserved for the machine (spinner, status words, active step) and one `[done color]` for completion (checks, "Completed"); camera static or ONE slow move — motion is overwhelmingly element-level springs, staggers, and state flips. Two folded sub-shapes — **(A) checklist/findings theater** and **(B) message-thread payoff**.)
|
|
13
|
+
|
|
14
|
+
- **Scene 1 (0.0–~1.5s) — the trigger.** Something asks the machine to work, in ONE beat:
|
|
15
|
+
- _Variant — option menu (A)_: a centered white pill card poses `[the question]`; it SPRINGS open downward into a rounded menu — `[3–4 option rows]` fade/slide in staggered, each with a number badge. A cursor enters, hover-dances between rows (a pale `[hover fill]` highlight follows it), and CLICKS the chosen row (~press-down spring); the whole menu scales down toward its center and fades out. This is the only cursor appearance in the shot.
|
|
16
|
+
- _Variant — modal click (A)_: close-up of a white modal with `[Dismiss]` / `[action button]`; a hand cursor clicks the action (quick press-down spring); the modal fades away. Optionally followed by a serif `[interstitial line]` on the bare canvas — words land staggered, hold, fade out word-staggered as the bg swaps.
|
|
17
|
+
- _Variant — already working (A)_: a `[Scan in progress]`-style state — a thin `[accent]` arc spinner rotating over a heading + body copy + a `[Starting…]` pill (cursor resting on it, motionless); only the spinner moves. The whole scene then rapidly scales up and fades — a push-through exit.
|
|
18
|
+
- _Variant — workspace push-through (A)_: a rapid camera push-in THROUGH a multi-panel `[workspace: builder / editor / terminal]` — panels scale past the viewport edges and clear away to the bare canvas.
|
|
19
|
+
- _Variant — thread opener (B)_: a `[user bubble]` spring-pops in ("`[the ask]`"), OR a stats card pops in whose green/red `[diff counters]` rapidly tick and settle — the automation's opening receipt.
|
|
20
|
+
|
|
21
|
+
- **Scene 2 (~1–4s) — the working state (the machine performs).** The frame belongs to the machine; nothing is clickable. Pick 1–3 working motifs and CHAIN them:
|
|
22
|
+
- A loader lockup: a spinning `[accent asterisk / arc]` beside a `[working label]` typed on rapidly ("`Buildi` → `Building plan…`"), a left→right shimmer sweep passing through the letters; the spinner may momentarily morph asterisk↔dot and back.
|
|
23
|
+
- Status couplets: 2–3 centered pairs — a dark `[action line]` over an `[accent status word]` ("Thinking…", "Noodling…") with its spinner — swapping via quick fades/slides at a steady cadence.
|
|
24
|
+
- A `[scan/tool label]` types/expands rightward to its full string, then SHRINKS and DOCKS to the top-left as a fixed corner header (the canvas now belongs to what it produces).
|
|
25
|
+
- A status heading flips tense as rows land beneath it ("Using `[Tool]`" → "Used `[Tool]`"), with a gently pulsing "Thinking" and gray meta-lines ("Exploring `[N]` files…") fading in below.
|
|
26
|
+
- _Variant — thread machinery (B)_: the `[agent reply]` fades/slides up, then a monospace `[tool_call]` line appears beneath it — small icon + `[tool name]` + three pulsing loading dots; OR an instruction bubble scrolls into view (internal window scroll, frame static) followed by a `[brand logo]` pop-in beside a "Sending message…" row. **The pulse dies the instant the result lands** — dots vanish as the payload arrives.
|
|
27
|
+
|
|
28
|
+
- **Scene 3 (~2–4s) — the receipt cascades in (the payoff engine).** The work materializes as a card that BUILDS:
|
|
29
|
+
- _Variant — checklist (A)_: a white `[Progress / summary]` pill or card SPRING-pops in with a bounce, then springs open downward (or the summary card glides UP as a taller `[findings]` panel expands beneath it). Rows cascade in one by one — slide-up + fade, staggered — each with `[number badge / severity pill]` + `[label]` + optional gray `[meta line]`. Then the STATE MUTATION runs: badges flip one by one from numbered outline to a solid `[done color]` circle + white checkmark (slight scale bounce), the checked label simultaneously strikes through and dims; pending items keep partially-drawn arc outlines animating. End the run mid-list — some items checked, some still numbered — the work is visibly _ongoing_.
|
|
30
|
+
- _Variant — thread payload (B)_: the camera pushes in / pans down centering the `[tool_call]` line as a white payload card expands downward from it — 2–4 light monospace `[key: value]` lines fading in. Then the `[resolution message]` expands into place below (inline `[code chips]` and `[link]` coloring), OR a dark `[thread card]` scales up from a status row to DOMINATE the frame while the background darkens, its `[reply]` expanding into place under a "1 reply" divider.
|
|
31
|
+
|
|
32
|
+
- **Scene 4 (final ~1–2.5s) — resolve.** Two endings:
|
|
33
|
+
- _Variant — hold / scroll (A)_: the finished (or mid-mutation) card stack holds static to the end, OR the viewport scrolls down the final card (fast in the last beat) revealing `[a second heading + numbered list]`, ending mid-list. A slow continuous zoom into the card may run underneath (the header drifts off the top of frame).
|
|
34
|
+
- _Variant — payoff push-in (B)_: ONE camera push-in + pan-down lands tight on the payoff line — "`Sent using [@Bot]`" / the confirmation + `[thank-you bubble]` spring-in — then a `[reaction button]` springs into an active pill with bouncy overshoot and a count. The push eases into a gentle near-imperceptible drift and the clip ends on the close-up. No end card.
|
|
35
|
+
|
|
36
|
+
**motion vocabulary**: pill springs open downward into a menu/checklist · option rows fade/slide in staggered · cursor hover-dance (pale highlight fill follows the cursor between rows) · single igniting click with press-down spring · menu scale-down fade exit · modal fade-away · thin `[accent]` arc spinner rotation · spinning asterisk loader · asterisk↔dot morph · typed-on loader label with caret · left→right text shimmer sweep · serif interstitial with word-staggered fade in/out · status couplets swapping via quick fades/slides under an `[accent]` spinner · pulsing "Thinking" label · status heading tense flip (Using→Used) · label types/expands rightward then shrinks and docks as a corner header · scene scale-up/fade push-through exit · rapid camera push-in through a multi-panel workspace · slow continuous zoom into a card (header drifts off frame) · summary card spring pop with bounce · card glides up as a panel expands beneath it · anchored downward panel/payload expansion · rows stagger in (slide-up + fade) · badge flip from numbered outline to solid circle + white checkmark with scale bounce · strikethrough + dim on completion · partially-drawn arc outlines animating on pending items · severity-pill readouts (Critical / High) · viewport scroll down the final card · chat bubble spring scale-up pop-in · reply fade/slide-up · monospace tool-call line with three pulsing loading dots (dots die the instant the result lands) · payload card expands downward from the line · green/red diff counters rapid tick-and-settle · internal window scroll (frame static) · brand logo pop-in beside a status row · card scales up from a row to dominate the frame while the background darkens · reply message expands into place · inline code chips / link coloring · reaction button springs into an active pill with bouncy overshoot + count · camera push-in + pan-down centering the payoff · slight pull-back · gentle end drift · static hold.
|
|
37
|
+
|
|
38
|
+
**rule mapping**
|
|
39
|
+
|
|
40
|
+
- pill springs open downward into a menu / panel expands beneath a gliding card / payload card expands downward from a tool-call line → `anchored-layout-expand` (edge-anchored container growth: height-masked wrapper + inner counter-translate, container drawn at final size); spring flavor from `spring-pop-entrance`
|
|
41
|
+
- option rows / findings rows / task rows stagger in (slide-up + fade) → `spring-pop-entrance` (staggered-group form, ≤500ms cap) or `gsap-effects` (plain fade+translate stagger) — NOT `waterfall-entry` (its binary no-fade arrival law contradicts this dialect's soft fade/slide cascade)
|
|
42
|
+
- cursor glides to a row and clicks; hand cursor clicks the modal button → `cursor-click-ripple` (move + press) + `press-release-spring` (the button's press-down spring)
|
|
43
|
+
- pale hover-highlight fill following the cursor between rows → `gsap-effects` (a background fill translated row-to-row; no dedicated rule needed)
|
|
44
|
+
- menu scale-down fade exit / scene scale-up push-through exit / palette-for-window swap → `scale-swap-transition`
|
|
45
|
+
- thin arc spinner rotation / spinning asterisk loader → `svg-icon-enrichment` (rotating internal SVG parts via `setAttribute('transform','rotate(deg cx cy)')`; timeline-driven, finite)
|
|
46
|
+
- asterisk↔dot morph and back → `scale-swap-transition` (two elements morphing at the same center)
|
|
47
|
+
- typed-on loader label ("Building plan…") / scan label typing to its full string → `discrete-text-sequence` (+ `context-sensitive-cursor` for the caret)
|
|
48
|
+
- left→right shimmer sweep through the loader letters → `ambient-glow-bloom` (single-pass traveling sheen) or `css-marker-patterns` (highlight sweep) — pick sheen for light-on-text, marker for a drawn band
|
|
49
|
+
- serif interstitial word-staggered fade in/out; status couplets swapping on a cadence → `dynamic-content-sequencing` (phrase windows) + `discrete-text-sequence` (the whole-state swaps); per-word stagger via `gsap-effects`
|
|
50
|
+
- pulsing "Thinking" label / three pulsing loading dots (phase-offset) → `sine-wave-loop` (finite repeats; kill the tween at the resolve beat — see doctrine note)
|
|
51
|
+
- status heading tense flip (Using→Used) / gray meta-lines fading in / final-token snaps → `discrete-text-sequence`
|
|
52
|
+
- label shrinks and docks to the top-left as a fixed corner header → `gsap-effects` (plain scale + translate tween; no dedicated rule needed)
|
|
53
|
+
- rapid camera push-in through the multi-panel workspace → `viewport-change` (the push) + `multi-phase-camera` (phasing) + optional `motion-blur-streak` (velocity blur as panels clear the frame)
|
|
54
|
+
- slow continuous zoom into the receipt card (header drifts off top) → `multi-phase-camera` (steady-push phase) or `viewport-change`
|
|
55
|
+
- summary card / progress pill / chat bubble / brand logo / file chip spring pop-in → `spring-pop-entrance`
|
|
56
|
+
- summary card glides up as the findings panel expands beneath → `gsap-effects` (the glide) + `anchored-layout-expand` (the panel)
|
|
57
|
+
- badge flip: numbered outline → solid circle + white checkmark with scale bounce → `scale-swap-transition` (outline↔solid swap at same center) + `svg-path-draw` (checkmark draw-in) + `spring-pop-entrance` (the bounce); the pending→active→complete progression itself → `dynamic-content-sequencing` (a snap state machine, per cursor-ui-demo's workflow-approve-press precedent)
|
|
58
|
+
- strikethrough + dim on the checked label → `css-marker-patterns` (strike-through draw) + `gsap-effects` (opacity dim)
|
|
59
|
+
- partially-drawn arc outlines animating on pending items → `svg-path-draw` (partial dashoffset, held mid-draw)
|
|
60
|
+
- viewport scroll down the final card / internal window scroll under a static frame → `gsap-effects` (transform-only content translate inside a masked window) — use `viewport-change` only if the FRAME moves
|
|
61
|
+
- green/red diff counters rapid tick-and-settle → `counting-dynamic-scale` (numeric proxy count-up; suppress the scale-growth component — these tick at fixed size)
|
|
62
|
+
- dark thread card scales up from a row to dominate the frame → `card-morph-anchor` (row → full-frame morph + handoff) with the background darkening as a `gsap-effects` overlay fade
|
|
63
|
+
- reply message / resolution line expands into place → `spring-pop-entrance` (soft overshoot) or `anchored-layout-expand` for a true downward growth
|
|
64
|
+
- reaction button springs into an active pill with overshoot + count → `spring-pop-entrance` (the pop) + `press-release-spring` (activation flavor) + `counting-dynamic-scale` (the count, if it ticks)
|
|
65
|
+
- camera push-in + pan-down centering the tool call / the payoff line → `coordinate-target-zoom` (non-centered target: scale + counter-translate) or `viewport-change`
|
|
66
|
+
- slight pull-back then gentle end drift → `multi-phase-camera` (pull-back phase + continuous micro-drift; keep the drift near-imperceptible)
|
|
67
|
+
- static hold on the final stack → no rule needed
|
|
68
|
+
|
|
69
|
+
**camera modifier** (default is a STATIC frame — the theater is element-level; at most ONE real move per shot, chosen from):
|
|
70
|
+
|
|
71
|
+
- Trigger push-through: a rapid push-in through the opening workspace that clears to the bare canvas → `viewport-change` + `multi-phase-camera`, optional `motion-blur-streak`.
|
|
72
|
+
- Receipt zoom: one slow continuous zoom into the checklist card across the whole mutation run, letting the header drift off the top → `multi-phase-camera` (steady push).
|
|
73
|
+
- Payoff push-in (sub-shape B's defining move): static through the build, then ONE push-in + pan-down tightening onto the confirmation line, easing to a micro-drift end → `coordinate-target-zoom` / `viewport-change` + `multi-phase-camera` (drift).
|
|
74
|
+
- Everything else — swaps, cascades, check-offs, scrolls — happens on a locked frame (any "scroll" is the content translating inside its window, not the camera).
|
|
75
|
+
|
|
76
|
+
**doctrine note (idle-motion ban)**: the working-state motifs (spinner rotation, pulsing dots, pulsing "Thinking") brush against motion-doctrine's idle-motion ban — here they are DIEGETIC: the pulse _performs_ "the machine is working" and is the narrative content of Scene 2, not decorative breathing. Keep every loop finite, timeline-driven, and seek-safe (`sine-wave-loop` finite repeats, `svg-icon-enrichment` rotation), and kill it at the exact frame the state resolves — the corpus does this explicitly (the loading dots vanish the instant the payload card expands; the spinner swaps out with the loader lockup).
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# camera-journey — Camera Journey
|
|
2
|
+
|
|
3
|
+
**intent**: The real viewport camera is the STORYTELLER — a multi-leg journey (dive in → a mid-journey beat fires → travel to the consequence / reposition → landing push, at rest) across ONE continuous world, where the travel itself carries the narrative. Two folded sub-shapes: **(A) action roundtrip** — the camera dives into a UI panel, a cursor/typed action fires, and the camera swoops/pans to another region where the consequence renders as element motion; **(B) cursorless flight** — pure cinematic 3D flight (motion blur, depth-of-field, tilt-to-flatten rotations) over static or self-animating content, no cursor anywhere.
|
|
4
|
+
|
|
5
|
+
**boundary**: This is NOT `cursor-ui-demo` — there the camera _chases_ the cursor (a servo following the actor); here the camera IS the actor, moving on its own narrative motivation, and in sub-shape A the cursor acts only at the leg hinge (in B it never appears). This is NOT `device-surface-showcase` — there one DEVICE/surface is hero and the camera merely presents it; here no single surface is hero — the journey traverses multiple regions/panels/depth planes and the traversal is the story. This is NOT `spatial-pan-stations` — there pre-placed stations on a flat canvas are visited by repeated pans of the same type; here the legs are heterogeneous (push-in, swoop, pull-back-rotate, whip, dive) and each leg is _motivated_ (by a fired action, or by the reveal it lands on).
|
|
6
|
+
|
|
7
|
+
**roles served**
|
|
8
|
+
|
|
9
|
+
- Benefits (from `camera-swoop-panel-action-roundtrip`): when the benefit IS a cause→effect round trip — "do this small thing here, get this big thing there" (comment → chart morphs; agent finding → verified commit; chat message → receipt + ledger). The camera physically connects the action to its payoff, so the viewer _travels_ the value chain instead of being told it.
|
|
10
|
+
- Key_Feature (from `cursorless-camera-flight`): when the feature should feel cinematic and inevitable — a payout form or a generated content-plan calendar explored by a flying camera (dives, whip sweeps, tilt-to-flatten, violent final push onto the CTA/hero card), the content acting by itself (a dropdown self-selects; keyword cards simply exist in depth) with no hand on the wheel.
|
|
11
|
+
|
|
12
|
+
**duration**: 5.6–11.1s (sub-shape A 5.6–9.0s: 001 5.6s · 066 8.6s · 004 9.0s; sub-shape B 6.3–11.1s: Outrank 6.3s · 094 11.1s)
|
|
13
|
+
|
|
14
|
+
**shot structure** (one oversized `[world]` — a `[UI canvas: design tool / GitHub + agent panels / phone + desktop ledger]` (A) or a `[3D-laid-out space: floating form card / calendar grid with standing keyword cards]` (B) — wrapped by a single virtual camera; content animates as elements _inside_ the world while the camera travels; every leg is a sequential tween on the same camera state)
|
|
15
|
+
|
|
16
|
+
- **Scene 0 (optional, 0.0–~1.8s) — static prologue.** Camera locked on a `[prologue beat: static promo card with a floating 3D product card / typed headline with an accent word / wide establishing shot of the app]`. A typewriter line may finish (`[headline]` types on, accent word in `[accent color]`). The prologue BREAKS by a hard cut or by the headline shrinking and slipping away as the first dive begins — the stillness exists to make the journey's launch land.
|
|
17
|
+
|
|
18
|
+
- **Scene 1 (~0.5–2.0s) — LEG 1: dive in.** The camera pushes in FAST and TIGHT onto `[the focal element]`:
|
|
19
|
+
- _Sub-shape A_: a flat whole-viewport push onto `[an actionable element: comment box / agent panel / chat bubble]` where `[typed text]` finishes typing or `[response text]` streams in. The header/context leaves the frame — commitment, not a polite zoom.
|
|
20
|
+
- _Sub-shape B_: the push lands at an ANGLE — a tilted 3D close-up of `[the form region / the calendar grid]`, foreground elements motion-blurred during the travel, neighbors soft under depth-of-field. A huge `[foreground prop: date number / field label]` may dominate the frame, blurred by speed.
|
|
21
|
+
|
|
22
|
+
- **Scene 2 (~1.5–6.0s) — LEG 2: the mid-journey beat (the hinge).** The camera holds, drifts, or pulls slowly while the content ACTS:
|
|
23
|
+
- _Sub-shape A — the action fires_: a `[cursor]` clicks `[Send / Create PR]` (or a `[message]` sends implicitly) and the acted element CLEARS/vanishes. Optional theater before the click: a `[status spinner]` cycles `[status words]`, `[to-do items]` strike through, `[response text]` streams. The click is the hinge that _motivates_ the next leg.
|
|
24
|
+
- _Sub-shape B — the content self-acts_: a `[dropdown]` expands by itself (pushing `[the field below]` down), shows a `[row hover highlight]` with no cursor, and collapses with the new value selected; OR the flight decelerates INTO FOCUS on `[one card]` — its `[metrics]` sharp, neighboring cards blurred.
|
|
25
|
+
|
|
26
|
+
- **Scene 3 (~4.0–8.0s) — LEG 3: travel to the consequence / reposition.**
|
|
27
|
+
- _Sub-shape A_: the camera pulls back / swoops / pans to `[region B]` while the CONSEQUENCE builds as element motion — `[bars shrink into the baseline while a node-dotted line draws left→right / a verified commit row slides into the timeline + a reaction pill pops / a receipt card expands row-by-row from a skeleton]`. An optional SECOND leg extends the trip: `[pan up-right to a toolbar → a dropdown cascades open / match cut into an extreme close-up → a fast decelerating zoom-out reveals a ledger table]`.
|
|
28
|
+
- _Sub-shape B_: a repositioning move — a slow pull-back that ROTATES the world flat and centered (3D → straight-on 2D), or a heavily motion-blurred WHIP SWEEP that resolves into a flat lateral pan across `[a month calendar / the full card]`. On the flat hold, quiet element beats may play: a thin `[focus outline]` fades in around one `[field]` and sweeps down to the next; the card keeps a near-imperceptible tilt/scale drift so the hold never dies.
|
|
29
|
+
|
|
30
|
+
- **Scene 4 (final ~1–2s) — LEG 4: landing.** The journey resolves on the payoff:
|
|
31
|
+
- _Sub-shape A_: the camera comes to REST; the `[cursor]` hovers or drifts toward `[the payoff: an open Export menu item / the commit link / the View-transaction button]`; ends still, on the changed state — the world is visibly different from where the trip began.
|
|
32
|
+
- _Sub-shape B_: a sudden VIOLENT push-in/dive (motion-blurred) onto `[the CTA button scaled huge in frame / the hero keyword card]`, ending holding tight — or holding MID-DIVE (the last frames are still traveling; the flat overview is explicitly not the final image).
|
|
33
|
+
|
|
34
|
+
**motion vocabulary**: whole-viewport camera push-in (fast/tight and slow/subtle); camera pull-back reframe; camera pan up/right/down; dive/swoop between stacked panels; fast decelerating zoom-out to rest; sudden violent push-in onto a button scaled huge; continuous 3D flight through a card grid; dive into an angled 3D close-up; slow pull-back that rotates/flattens the world to straight-on; heavily motion-blurred whip sweep; motion blur on camera travel; depth-of-field with blurred neighbors; decelerate-into-focus; hard cut / match cut into extreme close-up; near-imperceptible tilt/scale drift on holds; typed text finishing in an input; typewriter headline; headline shrinks and slips away as the camera dives; streaming AI response text; status-word spinner cycling labels; to-do strikethrough draw; cursor click; clicked element clears/vanishes; dropdown cascades open / self-expands and collapses with a row hover highlight (displacing the field below); bar-to-line chart morph (bars shrink into the baseline while a node-dotted line draws left→right, labels persist); commit row slide-in on a timeline; reaction pill appears; skeleton→content card build; receipt/label rows expand row-by-row; thin focus outline fades in and sweeps between fields; camera drift toward a button; 3D card subtle float; cursor hover at rest.
|
|
35
|
+
|
|
36
|
+
**rule mapping**
|
|
37
|
+
|
|
38
|
+
- the multi-leg camera itself — sequential push / pull-back / pan / dive phases on one wrapper, plus the micro-drift that keeps holds alive → `multi-phase-camera` (phase sequencing + drift) over `viewport-change` (the base virtual-camera primitive: single `.world` wrapper, one `cam {scale,x,y}` state — one source of truth for every leg)
|
|
39
|
+
- diving TIGHT onto an off-center element (comment box, chat bubble, Send button, one keyword card) → `coordinate-target-zoom` (scale + counter-translate; measure the target, don't hand-derive — a journey amplifies centering error on every leg)
|
|
40
|
+
- fast decelerating zoom-out from an extreme close-up to rest (066's ledger reveal) → `coordinate-target-zoom` zoom-out variation / `multi-phase-camera` (pull phase, hard `power4.out`)
|
|
41
|
+
- motion blur on camera travel (dive, whip sweep, violent final push) → `motion-blur-streak` (Camera-travel carve-out — the blur envelope rides the `.world` wrapper during a leg: the world never leaves frame, the blur peaks at peak velocity and resolves sharp at each landing)
|
|
42
|
+
- depth-of-field on neighbors while one card is in focus; decelerate-into-focus → `depth-of-field-blur` (focal pull + blur-the-cluster-while-pushing-in are explicitly in scope; run the DoF tween at the same position as the camera leg)
|
|
43
|
+
- the 3D flight itself (sub-shape B's core) — a perspective camera traveling with `rotateX/rotateY/translateZ` through a 3D-laid-out world: the dive into an angled calendar grid, the tilt-to-flatten pull-back (angled 3D → straight-on 2D), the continuous flight between standing cards → `3d-camera-flight` (perspective wrapper + preserve-3d; the 2D camera rules keep owning any flat legs)
|
|
44
|
+
- whip sweep → composition: `nudge-curve` (burst-dominant tuning of the slow-fast-slow slide, applied to the world) + `motion-blur-streak` (camera-travel carve-out) on the same window
|
|
45
|
+
- typed text finishing in an input; typewriter headline; streaming AI response text; status spinner cycling `[status words]`; skeleton→content state swap → `discrete-text-sequence` (+ `gsap-effects` typewriter; `context-sensitive-cursor` for the input caret)
|
|
46
|
+
- which content appears per leg / receipt rows and findings arriving on script windows → `dynamic-content-sequencing`
|
|
47
|
+
- cursor click on `[Send / Create PR]` (sub-shape A's hinge) → `cursor-click-ripple` + `press-release-spring` (or `physics-press-reaction` for a weightier press)
|
|
48
|
+
- clicked element clears/vanishes; panel state A → B on the return leg → `scale-swap-transition` / `card-morph-anchor`
|
|
49
|
+
- to-do strikethrough draw; row hover highlight → `css-marker-patterns` (strike-through) · `asr-keyword-glow` (accent glow on the hovered/selected row)
|
|
50
|
+
- bar-to-line chart morph → composite, decomposes cleanly: `stat-bars-and-fills` (bars `scaleY` → baseline) + `svg-path-draw` (node-dotted line draws left→right) at the same timeline position — no single rule names the coordinated chart-type morph, but no new rule needed
|
|
51
|
+
- commit row slide-in; reaction pill appears; receipt rows expand row-by-row → `spring-pop-entrance` (single arrivals) / `waterfall-entry` (the row-by-row cascade)
|
|
52
|
+
- dropdown self-expands, displacing the field below (094) → `anchored-layout-expand` (the masked edge-anchored expansion of the dropdown body — never tween `height`) + `reactive-displacement` (the expansion tween drives the sibling's displacement)
|
|
53
|
+
- focus-ring travel between fields (094: a thin outline fades in on `From`, then sweeps down onto `Amount`) → `ai-tracking-box` restyled as a plain outline (offsets baked at setup; size morphed via scale, never width/height)
|
|
54
|
+
- 3D card subtle float; near-imperceptible tilt/scale drift on holds → `sine-wave-loop` (+ `multi-phase-camera`'s drift for the camera-side micro-motion; the _tilt_ component of the drift belongs to `3d-camera-flight`)
|
|
55
|
+
- camera drift toward a button; slow subtle zoom-ins riding a hold → `multi-phase-camera` (steady-push mode, tiny spread)
|
|
56
|
+
|
|
57
|
+
**camera grammar** (the defining layer — this blueprint IS its camera): every leg is a tween on ONE camera state (`viewport-change`'s single `.world` wrapper / `cam` object), sequenced by `multi-phase-camera`, aimed by `coordinate-target-zoom`. Legs must be _motivated_: sub-shape A moves because an action fired (click → swoop to the consequence); sub-shape B moves because the next reveal demands it (dive → focus → reposition → final dive). Vary the leg verbs — a journey of four identical pushes reads as a slideshow. Ease law: hard `out`-family on dives and landings (`power4.out` — violent arrival, sharp settle), `power2.inOut` on repositioning legs; spring/back easing on a camera feels wrong (per `multi-phase-camera`). Sub-shape B layers `3d-camera-flight`'s perspective wrapper under the same single-state discipline.
|
|
58
|
+
|
|
59
|
+
**Seek-safety (non-negotiable for this much camera):** the entire journey — every leg, every blur envelope, every DoF pull — lives on the ONE paused GSAP timeline, so any frame seek reproduces the exact mid-leg camera pose. One camera state object, transform composed in a single writer (`applyCamera()`), no CSS `transition` anywhere near the wrapper, blur via proxy-tweened attributes / `--dof` vars (both seek-safe), and ending mid-dive is fine — a seek to the last frame just lands mid-tween. Per-leg targets are measured ONCE at setup (after `fonts.ready`) and baked; never `getBoundingClientRect` in `onUpdate`.
|
|
60
|
+
|
|
61
|
+
**Overflow (required for a clean `check`):** a traveling camera deliberately moves world content past the frame edges on every leg. Keep `overflow: hidden` on the scene root AND mark the moving `.world` wrapper with `data-layout-allow-overflow` — otherwise `check` reports `text_box_overflow` / `container_overflow` for every panel the journey leaves behind (see the same note on `device-surface-showcase`).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# comparison-split — Comparison Split-Cards
|
|
2
|
+
|
|
3
|
+
**intent**: Two paired items of equal weight shown side-by-side with mirrored 3D "book-open" tilts — the eye reads them as a balanced comparison, then a pill badge lands at each card's inner edge to punctuate. The motion IS the symmetry: two cards arriving from opposite wings into a held spread.
|
|
4
|
+
|
|
5
|
+
**roles served**
|
|
6
|
+
|
|
7
|
+
- Key_Feature (from `comparison-split-cards`): when two complementary features / capabilities of equal weight should be presented **simultaneously, not sequentially** — an A/B, a "X + Y together," paired concepts the viewer must weigh side-by-side. Not for >2 items (use `grid-card-assemble`) or sequential steps.
|
|
8
|
+
|
|
9
|
+
**duration**: 4–6s
|
|
10
|
+
|
|
11
|
+
**shot structure** (a `[bg]` canvas carrying two faint ambient glow blooms — `[accent A]` near 30%, `[accent B]` near 70% — so each side owns a color identity across a 50% symmetry axis; equal-width cards under one shared perspective parent)
|
|
12
|
+
|
|
13
|
+
- **Scene 1 (0.0–~0.8s) — title sets the concept.** A centered `[title line]` with an `[accent keyword]` slides DOWN into place from just above (a short smooth settle). The downward arrival is deliberate: it forms a non-conflicting T-shape against the cards, which arrive from the sides next.
|
|
14
|
+
- **Scene 2 (~0.4–1.9s) — the split-tilt entry (signature move).** Two equal-width feature cards arrive from opposite wings — `[left card]` from the left, `[right card]` from the right ~0.2s behind — each carrying a **mirrored 3D `rotateY` tilt** (left faces right, right faces left, opening like a book) and scaling ~0.85→1 as it lands. The entry overlaps the title's tail so the whole thing reads as ONE arrival, not two beats. Each card holds `[image / label / subtitle]`; box-shadows fall **outward** from the tilt (left shadow right, right shadow left).
|
|
15
|
+
- **Scene 3 (~1.9–end) — badges punctuate, then hold.** A pill `[badge]` lands at each card's **inner edge** (left then right, ~0.3s apart), overlapping its card ~15% so it reads as attached, not orbiting. This is the lone overshoot in the shot — it earns the punctuation. Settles and holds.
|
|
16
|
+
|
|
17
|
+
**motion vocabulary**: title slide-down from above; mirrored opposite-wing card entry; static book-open `rotateY` tilt (`+tilt` left, `−tilt` right); tilt-matched outward box-shadow; inner-edge badge spring-pop; gentle phase-opposed idle float (left vs right, never synchronized) registered as subtle jitter; dual side-glow ambient.
|
|
18
|
+
|
|
19
|
+
**rule mapping**
|
|
20
|
+
|
|
21
|
+
- two cards entering from opposite wings with mirrored `rotateY` tilts + tilt-matched shadow → `split-tilt-cards` (the signature; keep the two-layer split so the entry `x`/`scale` and the idle never collide on one alias)
|
|
22
|
+
- title slide-down settle → `gsap-effects` (translate + opacity on a long-tail `power3`)
|
|
23
|
+
- inner-edge pill badge pop (the one overshoot) → `spring-pop-entrance` (overshoot register — earns the punctuation)
|
|
24
|
+
- phase-opposed idle float on the pair → `sine-wave-loop` (low-amplitude register — subtle jitter, NOT lazy breathing; left `sin(t)`, right `sin(t+π)` so they never conveyor-belt)
|
|
25
|
+
- the two faint side glows behind the cards → `ambient-glow-bloom` (un-triggered soft bloom, one per accent)
|
|
26
|
+
|
|
27
|
+
**camera modifier**: camera-static by default — the symmetry is the subject and a move would break the balance.
|