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
|
+
# V—Take Visual Design Library
|
|
2
|
+
|
|
3
|
+
This directory is a **reference library** for the talking-head-recut skill. Style, layout,
|
|
4
|
+
and video frame are three **orthogonal** dimensions you can freely mix when
|
|
5
|
+
designing a takeaway video.
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Style × Layout × VideoFrame
|
|
9
|
+
(10) (4) (3) = 120 possible combinations
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Read a reference file when you decide to use that dimension. Each file is a
|
|
13
|
+
self-contained HTML fragment that follows the talking-head-recut card-HTML contract
|
|
14
|
+
(scoped `<style>`, no `<script>`, no external URLs, animations only via
|
|
15
|
+
`data-anim-*`).
|
|
16
|
+
|
|
17
|
+
## Layouts — how video and card share the canvas
|
|
18
|
+
|
|
19
|
+
| key | file | what it does | best for |
|
|
20
|
+
| --------- | -------------------------------------------- | ------------------------------------------------------- | --------------------------------------- |
|
|
21
|
+
| `split` | [layouts/split.html](layouts/split.html) | 50/50 side-by-side (landscape) or top/bottom (portrait) | speaker + data equal weight |
|
|
22
|
+
| `stack` | [layouts/stack.html](layouts/stack.html) | video on top (~52%), card below | talking-head with summary card |
|
|
23
|
+
| `pip` | [layouts/pip.html](layouts/pip.html) | card fills canvas, video rounded PiP in corner | content-heavy moment, speaker secondary |
|
|
24
|
+
| `overlay` | [layouts/overlay.html](layouts/overlay.html) | video full-bleed, glass card floats on bottom | cinematic / dramatic moments |
|
|
25
|
+
|
|
26
|
+
A layout is a **two-part recipe**: pick a `card.zone` value to put in
|
|
27
|
+
`storyboard.json` AND author a GSAP tween for `#video-wrap` to its
|
|
28
|
+
target rect in the composition's `<script>`. Open the layout file's
|
|
29
|
+
header for the recommended `zone` + the GSAP statement to paste.
|
|
30
|
+
(Earlier docs referenced a `card.layout` field — that field does NOT
|
|
31
|
+
exist in the real schema; the strict v3 schema only has `card.zone`.)
|
|
32
|
+
|
|
33
|
+
## Styles — the card's visual language
|
|
34
|
+
|
|
35
|
+
| key | file | character | accent | suggested font |
|
|
36
|
+
| ------------ | ------------------------------------------------ | ---------------------------------------------------- | --------- | ------------------- |
|
|
37
|
+
| `academic` | [styles/academic.html](styles/academic.html) | warm paper · grid · serif · blue highlight | `#2557a7` | serif |
|
|
38
|
+
| `editorial` | [styles/editorial.html](styles/editorial.html) | cream · coral block · big italic quote | `#ff3a2d` | Playfair-like serif |
|
|
39
|
+
| `minimal` | [styles/minimal.html](styles/minimal.html) | pure black/white · huge type · generous space | `#000` | Inter |
|
|
40
|
+
| `spotlight` | [styles/spotlight.html](styles/spotlight.html) | dark purple gradient · glow · dramatic | `#a78bfa` | sans |
|
|
41
|
+
| `geom` | [styles/geom.html](styles/geom.html) | chartreuse + hot pink + black collision | `#d4ff00` | Inter bold |
|
|
42
|
+
| `whiteboard` | [styles/whiteboard.html](styles/whiteboard.html) | paper · Caveat handwriting · sketched borders | `#ff6b35` | Caveat |
|
|
43
|
+
| `audit` | [styles/audit.html](styles/audit.html) | manila paper · justified serif · APPROVED stamp | `#8b1d1d` | serif |
|
|
44
|
+
| `terminal` | [styles/terminal.html](styles/terminal.html) | dark · monospace · ASCII border · prompt cursor | `#4ade80` | mono |
|
|
45
|
+
| `swiss` | [styles/swiss.html](styles/swiss.html) | white · Helvetica · strict double rules · red accent | `#e8190f` | Helvetica/Inter |
|
|
46
|
+
| `xhs` | [styles/xhs.html](styles/xhs.html) | cream + hot pink · chips · #hashtags · ❤ row | `#ff2e63` | sans |
|
|
47
|
+
|
|
48
|
+
Choose by content tone, not by content type — `academic` works for finance
|
|
49
|
+
too if the tone is reflective; `terminal` works for non-tech if the tone is
|
|
50
|
+
"engineering rigor".
|
|
51
|
+
|
|
52
|
+
## Video Frames — decoration around the video element
|
|
53
|
+
|
|
54
|
+
| key | file | character | when to skip |
|
|
55
|
+
| ---------- | -------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------ |
|
|
56
|
+
| `clean` | [frames/clean.html](frames/clean.html) | no decoration; raw video | default; safest |
|
|
57
|
+
| `hairline` | [frames/hairline.html](frames/hairline.html) | double-stroke + four-corner viewfinder ticks | over `overlay` layout (clashes with full-bleed) |
|
|
58
|
+
| `polaroid` | [frames/polaroid.html](frames/polaroid.html) | white photo frame + Caveat label + blue washi tape (no tilt) | over `overlay` layout; portrait PiP gets cramped |
|
|
59
|
+
|
|
60
|
+
A frame is a decorative div that sits **next to** the `#video-wrap` inside
|
|
61
|
+
the composition's `#stage`. It is one-time HTML (not animated), but you can
|
|
62
|
+
fade it in/out across cards. See each frame file for the placement snippet
|
|
63
|
+
and the inline `<style>` it needs.
|
|
64
|
+
|
|
65
|
+
## Decision guide (loose, not prescriptive)
|
|
66
|
+
|
|
67
|
+
| video content | suggested combos |
|
|
68
|
+
| -------------------------------- | -------------------------------------------------------- |
|
|
69
|
+
| interview / dialogue | `academic` × `stack`, `audit` × `split` |
|
|
70
|
+
| product launch / announcement | `editorial` × `overlay`, `geom` × `pip` |
|
|
71
|
+
| data analysis / financial report | `audit` × `split`, `swiss` × `stack`, `terminal` × `pip` |
|
|
72
|
+
| social clip (9:16) | `xhs` × `overlay`, `editorial` × `stack` |
|
|
73
|
+
| technical tutorial | `terminal` × `split`, `whiteboard` × `pip` |
|
|
74
|
+
| emotional story / narration | `spotlight` × `overlay`, `whiteboard` × `overlay` |
|
|
75
|
+
| minimalist presentation | `minimal` × `split`, `swiss` × `overlay` |
|
|
76
|
+
|
|
77
|
+
These are starting points only. Look at the transcript, pick the tone, then
|
|
78
|
+
pick the visual.
|
|
79
|
+
|
|
80
|
+
## Portrait sizing — bigger type for mobile
|
|
81
|
+
|
|
82
|
+
Every `references/styles/*.html` is sized for a **1920×1080 landscape**
|
|
83
|
+
preview. When the final composition is **portrait (1080×1920)** — the
|
|
84
|
+
default for social / mobile — scale every visual size up so it reads on a
|
|
85
|
+
phone held close.
|
|
86
|
+
|
|
87
|
+
| token | landscape | **portrait** | scale |
|
|
88
|
+
| --------------------- | --------- | ------------ | ----- |
|
|
89
|
+
| hero title (h1/h2) | 64–96px | **88–132px** | ×1.35 |
|
|
90
|
+
| detail / body | 24–30px | **30–40px** | ×1.30 |
|
|
91
|
+
| kicker / chip / meta | 14–18px | **18–22px** | ×1.25 |
|
|
92
|
+
| primary number / stat | 48–60px | **64–88px** | ×1.40 |
|
|
93
|
+
| horizontal padding | 40–64px | **24–36px** | ÷1.5 |
|
|
94
|
+
|
|
95
|
+
`portraitPx ≈ round(landscapePx × 1.3)`. Hero headlines can go ×1.4;
|
|
96
|
+
small meta stays at ×1.2. Padding **shrinks** in portrait since the card
|
|
97
|
+
is narrower.
|
|
98
|
+
|
|
99
|
+
For a card that must work in both, use a container query on the card
|
|
100
|
+
root: `container-type: inline-size` + `font-size: clamp(64px, 8.5cqi, 132px)`.
|
|
101
|
+
|
|
102
|
+
## Source aspect ratio independence
|
|
103
|
+
|
|
104
|
+
Output canvas is independent of source video aspect. Three supported
|
|
105
|
+
output ratios (selected by the user in Step 7.0 of SKILL.md):
|
|
106
|
+
|
|
107
|
+
| ratio | canvas | `storyboard.layout` | best for |
|
|
108
|
+
| ------ | --------- | ------------------------------------------------------ | ---------------------------------------------------------- |
|
|
109
|
+
| `16:9` | 1920×1080 | `"landscape"` | YouTube / TV / desktop playback |
|
|
110
|
+
| `9:16` | 1080×1920 | `"portrait"` | TikTok / Reels / short-form mobile |
|
|
111
|
+
| `4:5` | 1080×1350 | `"portrait"` (schema treats 4:5 as portrait since h>w) | Instagram feed / WeChat Moments / works for both platforms |
|
|
112
|
+
|
|
113
|
+
The layout reference files in `layouts/` document **landscape** and
|
|
114
|
+
**portrait** bounds only. For **4:5** derive bounds by proportional
|
|
115
|
+
vertical scaling from portrait: `4:5 y/h = round(portrait y/h × 0.703)`,
|
|
116
|
+
keep `x/w` identical. The composer doesn't care about the named layout
|
|
117
|
+
value; it just uses `composition.width × height`.
|
|
118
|
+
|
|
119
|
+
- Landscape video on landscape canvas → `videoBounds` matches video aspect, no letterbox
|
|
120
|
+
- Portrait video on landscape canvas → `videoBounds` is a narrower box (e.g. `pip` becomes 248×440); empty side filled by card or background
|
|
121
|
+
- Landscape video on portrait canvas → `videoBounds` becomes a wide-but-short band; `stack` and `overlay` work best
|
|
122
|
+
- Portrait video on portrait canvas → most natural; any layout
|
|
123
|
+
|
|
124
|
+
The layout reference files show landscape values; for portrait you usually
|
|
125
|
+
flip the long axis: `split` becomes top/bottom, `pip` video bubble shrinks
|
|
126
|
+
~20%, `overlay` card slot widens to full width.
|
|
127
|
+
|
|
128
|
+
## Constraints you must obey when copying from these references
|
|
129
|
+
|
|
130
|
+
1. **No `<script>`** — animations only via `data-anim-*` attributes
|
|
131
|
+
2. **No external URLs** — no Google Fonts CDN, no remote images; the
|
|
132
|
+
skill provides Caveat / LXGW WenKai TC / Inter / Virgil locally
|
|
133
|
+
3. **All `<style>` rules must be prefixed with `.card[data-card-id="..."]`** —
|
|
134
|
+
the hyperframes sanitizer auto-scopes them, but write them already-scoped to
|
|
135
|
+
stay readable
|
|
136
|
+
4. **No `on*=` inline handlers**
|
|
137
|
+
5. **CSS variables for colors** when you want a card to switch theme cleanly;
|
|
138
|
+
inline hex when you want this specific style's signature look
|
|
139
|
+
|
|
140
|
+
If a reference uses a font you don't have, fall back:
|
|
141
|
+
|
|
142
|
+
- Playfair Display / Noto Serif SC → `ui-serif, "Songti SC", "Times New Roman", serif`
|
|
143
|
+
- Noto Sans SC → `ui-sans-serif, system-ui, sans-serif`
|
|
144
|
+
- JetBrains Mono → `ui-monospace, "SF Mono", Menlo, monospace`
|
|
145
|
+
- Kalam → `'Caveat', cursive`
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
## Confirm Visual Direction with User (DO THIS FIRST)
|
|
2
|
+
|
|
3
|
+
Before you start designing cards or deciding bounds, **ask the user to
|
|
4
|
+
pick the output ratio, the layout, the style, and the card-density
|
|
5
|
+
preset**. Frames are auto-selected from the chosen layout × style
|
|
6
|
+
combination (see "Auto-pick frame" table below). Before sending the
|
|
7
|
+
question, **precompute two things**:
|
|
8
|
+
|
|
9
|
+
1. **`recommendedRatio`** from the source video's aspect ratio
|
|
10
|
+
(`metadata.json` width / height):
|
|
11
|
+
- `sourceAspect = width / height`
|
|
12
|
+
- `sourceAspect ≥ 1.5` (≥ ~3:2 wide) → recommend **`16:9`**
|
|
13
|
+
- `sourceAspect ≤ 0.7` (≤ ~9:13 tall) → recommend **`9:16`**
|
|
14
|
+
- `0.7 < sourceAspect < 1.5` (near-square) → recommend **`4:5`**
|
|
15
|
+
|
|
16
|
+
Mark the recommended option's label with " (recommended · matches source video X:Y)"
|
|
17
|
+
so the user sees why it's recommended.
|
|
18
|
+
|
|
19
|
+
2. **`autoCount`** from Step 6 (`max(5, round(videoSec / (basePace ×
|
|
20
|
+
densityMultiplier)))`) so the "auto" option's label can show the
|
|
21
|
+
concrete number.
|
|
22
|
+
|
|
23
|
+
**Environment compatibility — pick the best available question channel.**
|
|
24
|
+
Not every runtime exposes the same structured-question tool. Apply this
|
|
25
|
+
order:
|
|
26
|
+
|
|
27
|
+
1. **Native clarification tool** — use the structured 4-question call below.
|
|
28
|
+
2. **Other native clarification tool** (e.g. `ask_question`,
|
|
29
|
+
`request_user_input`, IDE-specific prompt) — use that tool with the
|
|
30
|
+
same 4 question texts and option lists. Preserve the recommendation
|
|
31
|
+
markers and the precomputed values.
|
|
32
|
+
3. **No native tool** (Codex CLI, plain text-only runtimes) — **ask
|
|
33
|
+
directly in normal conversation**. Use the plain-text template at the
|
|
34
|
+
end of this section. Keep it to **one message, 4 numbered questions**
|
|
35
|
+
(the global cap is 2–5 questions per round; we stay inside it).
|
|
36
|
+
|
|
37
|
+
Rules that apply to every channel:
|
|
38
|
+
|
|
39
|
+
- Ask **at most 2–5 questions per round**. Our 4 here fits.
|
|
40
|
+
- Even if missing info doesn't block rendering, **ask once to confirm
|
|
41
|
+
the parameters that materially affect the final output** (ratio,
|
|
42
|
+
layout, style, cardCount).
|
|
43
|
+
- If the user has already pre-approved defaults ("just use defaults",
|
|
44
|
+
"no need to ask", "auto-pick everything"), asked you not to ask, or the
|
|
45
|
+
run carries an ongoing autonomous signal ("surprise me" / "decide for me" —
|
|
46
|
+
`../hyperframes/references/brief-contract.md` § 1) — **skip
|
|
47
|
+
the question entirely** and use: `recommendedRatio`, `layout="stack"`
|
|
48
|
+
(safest cross-ratio default), `style` chosen from transcript tone in
|
|
49
|
+
the most neutral group (editorial/data), `autoCount`. Tell the user
|
|
50
|
+
what you picked in one sentence and continue.
|
|
51
|
+
|
|
52
|
+
**Channel A — native `AskUserQuestion`:**
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
// Precompute before the call:
|
|
56
|
+
// recommendedRatio = "16:9" | "9:16" | "4:5"
|
|
57
|
+
// autoCount = integer (from Step 6)
|
|
58
|
+
|
|
59
|
+
AskUserQuestion({
|
|
60
|
+
questions: [
|
|
61
|
+
{
|
|
62
|
+
question: "Output video aspect ratio (canvas):",
|
|
63
|
+
header: "Aspect ratio",
|
|
64
|
+
multiSelect: false,
|
|
65
|
+
// Reorder so the recommended option appears FIRST (per AskUserQuestion convention).
|
|
66
|
+
// Append " (recommended · matches source video W×H)" to the recommended option's label.
|
|
67
|
+
options: [
|
|
68
|
+
{ label: "16:9 (1920×1080) landscape", description: "TV / YouTube / desktop playback. Most natural when the source video is already landscape; widest canvas." },
|
|
69
|
+
{ label: "9:16 (1080×1920) portrait", description: "TikTok / Reels / short-form mobile. Most natural for portrait source; native mobile experience." },
|
|
70
|
+
{ label: "4:5 (1080×1350) near-portrait", description: "Instagram feed / WeChat Moments. Best when source is near-square or you want to cover both platforms." }
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
question: "Choose the overall layout: how should the video and cards coexist on the canvas?",
|
|
75
|
+
header: "Layout",
|
|
76
|
+
multiSelect: false,
|
|
77
|
+
options: [
|
|
78
|
+
{ label: "side-by-side (split)", description: "Video and card each take half the canvas. Most stable for interview / data side-by-side; clear visual separation." },
|
|
79
|
+
{ label: "top-bottom (stack)", description: "Video on top (~52%), card below. Classic combo of speaker face + summary card; works well in portrait too." },
|
|
80
|
+
{ label: "picture-in-picture (pip)", description: "Card fills the canvas, video shrinks to a rounded corner window. Use when content is primary and speaker is secondary." },
|
|
81
|
+
{ label: "full-screen overlay (overlay)", description: "Video plays full-bleed, card floats as a glass layer on top. Strong cinematic / emotional feel." }
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
question: "Choose the card visual style (style):",
|
|
86
|
+
header: "Style group",
|
|
87
|
+
multiSelect: false,
|
|
88
|
+
// NOTE: these 3 groups intentionally match the frame auto-pick matrix
|
|
89
|
+
// rows below, so picking a group resolves both `style` group AND the
|
|
90
|
+
// frame matrix column in one step. Memberships are mutually exclusive.
|
|
91
|
+
options: [
|
|
92
|
+
{ label: "warm paper (warm-paper)", description: "academic notebook · editorial big-type · whiteboard hand-drawn · xhs social. Best for interview reflections, product launches, lifestyle, emotional stories." },
|
|
93
|
+
{ label: "clinical / cold (clinical)", description: "audit magazine · swiss grid · terminal CLI · minimal modern. Best for financial analysis, investigative reports, technical tutorials, serious presentations." },
|
|
94
|
+
{ label: "experimental / avant-garde (experimental)", description: "geom color-clash geometry · spotlight dark-background. Best for short-form highlights, product launches, strong emotion, cinematic feel." }
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
question: "Card count (takeaway pacing): how many cards to cut?",
|
|
99
|
+
header: "Card count",
|
|
100
|
+
multiSelect: false,
|
|
101
|
+
options: [
|
|
102
|
+
{ label: "Auto (recommended) · approx N cards", description: "Inferred automatically from video duration and information density (see Step 6 rules). This run estimates approx N cards. Substitute the real N (your autoCount) into the label." },
|
|
103
|
+
{ label: "Fewer · approx round(N × 0.6) cards", description: "Sparser cuts, each card holds longer — suits reflective / slow-paced content." },
|
|
104
|
+
{ label: "More · approx round(N × 1.5) cards", description: "Tighter cuts, faster rhythm — suits staccato / data-dense / short-form highlight content." }
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
})
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**About "Other"** — `AskUserQuestion` automatically adds an "Other" option to the card count question. The user can type a number directly (e.g. "8", "20") as the cardCount target. Parse the input as an integer: if parsing succeeds → use that value (minimum 5 as a floor); if parsing fails → fall back to "auto".
|
|
112
|
+
|
|
113
|
+
**Channel B — plain-text fallback** (Codex CLI, runtimes without a
|
|
114
|
+
native question tool). Post this as one normal message, then wait for
|
|
115
|
+
the reply. Bullet-style 1/2/3/4 keeps the reply parseable:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
I need to confirm four visual decisions with you before I start cutting cards:
|
|
119
|
+
|
|
120
|
+
1) Output aspect ratio (canvas):
|
|
121
|
+
A. 16:9 landscape (1920×1080) — TV / YouTube / desktop playback
|
|
122
|
+
B. 9:16 portrait (1080×1920) — TikTok / Reels / short-form mobile
|
|
123
|
+
C. 4:5 near-portrait (1080×1350) — Instagram feed / works for both platforms
|
|
124
|
+
▸ My recommendation: <recommendedRatio> (matches source video W×H = <sourceW>×<sourceH>)
|
|
125
|
+
|
|
126
|
+
2) Overall layout (how video & card coexist):
|
|
127
|
+
A. split side-by-side (50/50)
|
|
128
|
+
B. stack top-bottom (video top, card bottom)
|
|
129
|
+
C. pip picture-in-picture (card full canvas, video rounded corner window)
|
|
130
|
+
D. overlay full-screen glass overlay (video full-bleed, card glass layer)
|
|
131
|
+
|
|
132
|
+
3) Card style group (maps to frame auto-pick matrix, pick 1 of 3):
|
|
133
|
+
A. warm paper (warm-paper) (academic / editorial / whiteboard / xhs)
|
|
134
|
+
B. clinical / cold (clinical) (audit / swiss / terminal / minimal)
|
|
135
|
+
C. experimental (experimental) (geom / spotlight)
|
|
136
|
+
|
|
137
|
+
4) Card count (takeaway pacing):
|
|
138
|
+
A. Auto (recommended) — approx <autoCount> cards
|
|
139
|
+
B. Fewer — approx round(<autoCount> × 0.6) cards
|
|
140
|
+
C. More — approx round(<autoCount> × 1.5) cards
|
|
141
|
+
D. Give me a specific number (e.g. "8", "20")
|
|
142
|
+
|
|
143
|
+
Reply format: "1A 2C 3B 4A" or natural language is fine.
|
|
144
|
+
If you want all recommended defaults, reply "default" / "auto" / "use all recommendations".
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Parsing the plain-text reply:
|
|
148
|
+
|
|
149
|
+
- Accept loose formats: `"1A 2C 3B 4A"`, `"A C B A"`, `"16:9 / pip /
|
|
150
|
+
data / auto"`, full sentences, or `default`.
|
|
151
|
+
- If any answer is ambiguous → re-ask only the ambiguous ones (still
|
|
152
|
+
inside the 2–5 cap).
|
|
153
|
+
- If the user says "default / auto / use all recommendations" → skip without re-asking.
|
|
154
|
+
|
|
155
|
+
After the user answers (any channel):
|
|
156
|
+
|
|
157
|
+
1. **Resolve the output canvas** from the ratio answer — these are the
|
|
158
|
+
exact `storyboard.composition.width / height` values to write:
|
|
159
|
+
|
|
160
|
+
| user choice | composition.width × height | storyboard.layout field |
|
|
161
|
+
| ----------- | -------------------------- | ------------------------------------------------------------- |
|
|
162
|
+
| `16:9` | **1920 × 1080** | `"landscape"` |
|
|
163
|
+
| `9:16` | **1080 × 1920** | `"portrait"` |
|
|
164
|
+
| `4:5` | **1080 × 1350** | `"portrait"` (schema treats 4:5 as portrait — height > width) |
|
|
165
|
+
|
|
166
|
+
For **4:5 bounds inside `references/layouts/*.html`** — those files
|
|
167
|
+
only document landscape (1920×1080) and portrait (1080×1920). For
|
|
168
|
+
4:5 (1080×1350) derive bounds by **proportional scaling from
|
|
169
|
+
portrait**: keep horizontal values, scale vertical values by
|
|
170
|
+
`1350/1920 ≈ 0.703`. Example: `overlay` portrait card =
|
|
171
|
+
`{ x: 24, y: 1280, w: 1032, h: 564 }` → 4:5 card =
|
|
172
|
+
`{ x: 24, y: round(1280 × 0.703), w: 1032, h: round(564 × 0.703) }`
|
|
173
|
+
= `{ x: 24, y: 900, w: 1032, h: 397 }`.
|
|
174
|
+
|
|
175
|
+
2. **Map the style group to a specific style** by looking at the
|
|
176
|
+
transcript tone — pick the one that best fits, but stay inside the
|
|
177
|
+
user's chosen group. If you're unsure between two specific styles
|
|
178
|
+
inside the group, send a second `AskUserQuestion` with those 2–4
|
|
179
|
+
specific style options.
|
|
180
|
+
|
|
181
|
+
3. **Resolve final cardCount** from the density answer:
|
|
182
|
+
|
|
183
|
+
| user choice | final cardCount |
|
|
184
|
+
| ----------------------- | ----------------------------------------- |
|
|
185
|
+
| Auto (recommended) | the `autoCount` you already computed |
|
|
186
|
+
| Fewer | `max(5, round(autoCount × 0.6))` |
|
|
187
|
+
| More | `round(autoCount × 1.5)` (no upper clamp) |
|
|
188
|
+
| Other = "<n>" (integer) | `max(5, parseInt(n))` |
|
|
189
|
+
| Other = anything else | fall back to `autoCount` |
|
|
190
|
+
|
|
191
|
+
4. **Auto-pick the video frame** from this table (frames don't ask the
|
|
192
|
+
user — they follow from layout × style):
|
|
193
|
+
|
|
194
|
+
| layout | warm-paper styles (academic / whiteboard / editorial / xhs) | clinical styles (audit / swiss / terminal / minimal) | experimental styles (geom / spotlight) |
|
|
195
|
+
| --------- | ----------------------------------------------------------- | ---------------------------------------------------- | -------------------------------------- |
|
|
196
|
+
| `split` | `polaroid` | `hairline` | `clean` |
|
|
197
|
+
| `stack` | `polaroid` | `hairline` | `clean` |
|
|
198
|
+
| `pip` | `clean` (pip pill already has chrome) | `clean` | `clean` |
|
|
199
|
+
| `overlay` | `clean` (full-bleed forbids deco frames) | `clean` | `clean` |
|
|
200
|
+
|
|
201
|
+
5. **Tell the user what you chose** in one sentence — ratio (+ canvas
|
|
202
|
+
size), layout, specific style, frame, and final cardCount — then
|
|
203
|
+
proceed with the rest of Step 7 (per-card layouts, motion patterns).
|
|
204
|
+
6. Record the five values (ratio / layout / style / frame / cardCount)
|
|
205
|
+
in working memory (no schema field needed); you'll reference them
|
|
206
|
+
while writing each card's HTML in Step 8 and while reading the
|
|
207
|
+
matching `references/<dim>/<key>.html` for tokens and structure.
|
|
208
|
+
|
|
209
|
+
If the user picks an answer via "Other" with a free-text style name not
|
|
210
|
+
in the 10-style library, treat it as a hint to design a fresh card
|
|
211
|
+
visual yourself, but still anchor on the chosen layout's bounds.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Frame: clean — no decoration. Raw video edge.
|
|
3
|
+
─────────────────────────────────────────────────────────────────────
|
|
4
|
+
When to use
|
|
5
|
+
- Default; safest.
|
|
6
|
+
- Pairs with any layout and any style.
|
|
7
|
+
- Required over the `overlay` layout (decorative frames clash with full-bleed video).
|
|
8
|
+
|
|
9
|
+
How to apply in the composition
|
|
10
|
+
No extra HTML — just leave #video-wrap without the `framed` class.
|
|
11
|
+
|
|
12
|
+
.video-wrapper { border-radius: 0; box-shadow: none; }
|
|
13
|
+
|
|
14
|
+
How to apply on PiP layouts
|
|
15
|
+
Even with `clean`, PiPs benefit from a 14px border-radius + soft shadow
|
|
16
|
+
(see layouts/pip.html). That's a layout-level treatment, not a frame.
|
|
17
|
+
|
|
18
|
+
Placement
|
|
19
|
+
None. This reference exists as documentation of the "no-frame" option.
|
|
20
|
+
-->
|
|
21
|
+
<!doctype html>
|
|
22
|
+
<html lang="zh-CN">
|
|
23
|
+
<head>
|
|
24
|
+
<meta charset="utf-8" />
|
|
25
|
+
<title>frame · clean (no decoration)</title>
|
|
26
|
+
<style>
|
|
27
|
+
html,
|
|
28
|
+
body {
|
|
29
|
+
margin: 0;
|
|
30
|
+
padding: 0;
|
|
31
|
+
background: #0a0c12;
|
|
32
|
+
color: #fff;
|
|
33
|
+
font-family: ui-sans-serif, system-ui, sans-serif;
|
|
34
|
+
}
|
|
35
|
+
.stage {
|
|
36
|
+
position: relative;
|
|
37
|
+
width: 1920px;
|
|
38
|
+
height: 1080px;
|
|
39
|
+
transform-origin: top left;
|
|
40
|
+
transform: scale(0.5);
|
|
41
|
+
background: #0a0c12;
|
|
42
|
+
overflow: hidden;
|
|
43
|
+
}
|
|
44
|
+
.video-wrap {
|
|
45
|
+
position: absolute;
|
|
46
|
+
left: 240px;
|
|
47
|
+
top: 140px;
|
|
48
|
+
width: 1440px;
|
|
49
|
+
height: 810px;
|
|
50
|
+
background: #1a1f2e;
|
|
51
|
+
background-image: repeating-linear-gradient(
|
|
52
|
+
45deg,
|
|
53
|
+
transparent 0 12px,
|
|
54
|
+
rgba(255, 255, 255, 0.05) 12px 13px
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
.v-label {
|
|
58
|
+
position: absolute;
|
|
59
|
+
left: 24px;
|
|
60
|
+
top: 24px;
|
|
61
|
+
padding: 8px 14px;
|
|
62
|
+
border: 1px solid rgba(255, 255, 255, 0.45);
|
|
63
|
+
border-radius: 3px;
|
|
64
|
+
color: rgba(255, 255, 255, 0.7);
|
|
65
|
+
font:
|
|
66
|
+
600 16px/1 ui-monospace,
|
|
67
|
+
monospace;
|
|
68
|
+
letter-spacing: 0.14em;
|
|
69
|
+
}
|
|
70
|
+
.note {
|
|
71
|
+
position: absolute;
|
|
72
|
+
left: 240px;
|
|
73
|
+
bottom: 60px;
|
|
74
|
+
right: 240px;
|
|
75
|
+
text-align: center;
|
|
76
|
+
color: rgba(255, 255, 255, 0.5);
|
|
77
|
+
font:
|
|
78
|
+
14px/1.4 ui-monospace,
|
|
79
|
+
monospace;
|
|
80
|
+
letter-spacing: 0.12em;
|
|
81
|
+
}
|
|
82
|
+
</style>
|
|
83
|
+
</head>
|
|
84
|
+
<body>
|
|
85
|
+
<div class="stage">
|
|
86
|
+
<div class="video-wrap">
|
|
87
|
+
<span class="v-label">VIDEO · no chrome</span>
|
|
88
|
+
</div>
|
|
89
|
+
<div class="note">CLEAN — let the video speak for itself.</div>
|
|
90
|
+
</div>
|
|
91
|
+
</body>
|
|
92
|
+
</html>
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Frame: hairline — double stroke + four-corner viewfinder ticks
|
|
3
|
+
─────────────────────────────────────────────────────────────────────
|
|
4
|
+
When to use
|
|
5
|
+
- Professional / cinematographic feel without going full polaroid.
|
|
6
|
+
- Pairs well with: split, stack, pip layouts.
|
|
7
|
+
- Pairs well with: academic, audit, swiss, terminal styles.
|
|
8
|
+
- Skip on overlay layout — the decorative chrome clashes with full-bleed video.
|
|
9
|
+
|
|
10
|
+
How to apply in the composition
|
|
11
|
+
Add ONE decorative div as a sibling of #video-wrap (not a child — the
|
|
12
|
+
video element is muted/playsinline and the decorative div should sit
|
|
13
|
+
above it). The accent color is configurable per scene.
|
|
14
|
+
|
|
15
|
+
<div class="video-wrapper" id="video-wrap">
|
|
16
|
+
<video src="input-video.mp4" ...></video>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="frame-deco frame-deco--hairline"
|
|
19
|
+
style="left:240px; top:140px; width:1440px; height:810px;
|
|
20
|
+
--frame-accent: #2557a7;">
|
|
21
|
+
<span class="tick tl"></span>
|
|
22
|
+
<span class="tick tr"></span>
|
|
23
|
+
<span class="tick bl"></span>
|
|
24
|
+
<span class="tick br"></span>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
CSS (4 corners via explicit spans — preferred over ::before/::after
|
|
28
|
+
because pseudo-elements give you at most 2 corners cleanly):
|
|
29
|
+
|
|
30
|
+
.frame-deco { position: absolute; pointer-events: none; z-index: 3; }
|
|
31
|
+
.frame-deco--hairline {
|
|
32
|
+
box-shadow:
|
|
33
|
+
inset 0 0 0 2px var(--frame-accent),
|
|
34
|
+
inset 0 0 0 6px color-mix(in srgb, var(--frame-accent) 13%, transparent),
|
|
35
|
+
0 0 0 1px rgba(0,0,0,.1);
|
|
36
|
+
}
|
|
37
|
+
.frame-deco .tick { position: absolute; width: 24px; height: 24px; }
|
|
38
|
+
.frame-deco .tick.tl { top: -3px; left: -3px; border-top: 4px solid var(--frame-accent); border-left: 4px solid var(--frame-accent); }
|
|
39
|
+
.frame-deco .tick.tr { top: -3px; right: -3px; border-top: 4px solid var(--frame-accent); border-right: 4px solid var(--frame-accent); }
|
|
40
|
+
.frame-deco .tick.bl { bottom: -3px; left: -3px; border-bottom: 4px solid var(--frame-accent); border-left: 4px solid var(--frame-accent); }
|
|
41
|
+
.frame-deco .tick.br { bottom: -3px; right: -3px; border-bottom: 4px solid var(--frame-accent); border-right: 4px solid var(--frame-accent); }
|
|
42
|
+
|
|
43
|
+
When the layout changes mid-composition
|
|
44
|
+
Move + resize the frame-deco div together with #video-wrap using GSAP:
|
|
45
|
+
tl.to('#video-wrap, .frame-deco', { left:, top:, width:, height:, ... }, T);
|
|
46
|
+
Or fade out the deco entirely before transitioning to a clean PiP.
|
|
47
|
+
-->
|
|
48
|
+
<!doctype html>
|
|
49
|
+
<html lang="zh-CN">
|
|
50
|
+
<head>
|
|
51
|
+
<meta charset="utf-8" />
|
|
52
|
+
<title>frame · hairline (double stroke + viewfinder ticks)</title>
|
|
53
|
+
<style>
|
|
54
|
+
html,
|
|
55
|
+
body {
|
|
56
|
+
margin: 0;
|
|
57
|
+
padding: 0;
|
|
58
|
+
background: #0a0c12;
|
|
59
|
+
color: #fff;
|
|
60
|
+
font-family: ui-sans-serif, system-ui, sans-serif;
|
|
61
|
+
}
|
|
62
|
+
.stage {
|
|
63
|
+
position: relative;
|
|
64
|
+
width: 1920px;
|
|
65
|
+
height: 1080px;
|
|
66
|
+
transform-origin: top left;
|
|
67
|
+
transform: scale(0.5);
|
|
68
|
+
background: #0a0c12;
|
|
69
|
+
overflow: hidden;
|
|
70
|
+
}
|
|
71
|
+
.video-wrap {
|
|
72
|
+
position: absolute;
|
|
73
|
+
left: 240px;
|
|
74
|
+
top: 140px;
|
|
75
|
+
width: 1440px;
|
|
76
|
+
height: 810px;
|
|
77
|
+
background: #1a1f2e;
|
|
78
|
+
background-image: repeating-linear-gradient(
|
|
79
|
+
45deg,
|
|
80
|
+
transparent 0 12px,
|
|
81
|
+
rgba(255, 255, 255, 0.05) 12px 13px
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
.v-label {
|
|
85
|
+
position: absolute;
|
|
86
|
+
left: 24px;
|
|
87
|
+
top: 24px;
|
|
88
|
+
padding: 8px 14px;
|
|
89
|
+
border: 1px solid rgba(255, 255, 255, 0.45);
|
|
90
|
+
border-radius: 3px;
|
|
91
|
+
color: rgba(255, 255, 255, 0.7);
|
|
92
|
+
font:
|
|
93
|
+
600 16px/1 ui-monospace,
|
|
94
|
+
monospace;
|
|
95
|
+
letter-spacing: 0.14em;
|
|
96
|
+
}
|
|
97
|
+
.frame-deco {
|
|
98
|
+
position: absolute;
|
|
99
|
+
left: 240px;
|
|
100
|
+
top: 140px;
|
|
101
|
+
width: 1440px;
|
|
102
|
+
height: 810px;
|
|
103
|
+
pointer-events: none;
|
|
104
|
+
z-index: 3;
|
|
105
|
+
--frame-accent: #2557a7;
|
|
106
|
+
box-shadow:
|
|
107
|
+
inset 0 0 0 2px var(--frame-accent),
|
|
108
|
+
inset 0 0 0 6px rgba(37, 87, 167, 0.13),
|
|
109
|
+
0 0 0 1px rgba(0, 0, 0, 0.1);
|
|
110
|
+
}
|
|
111
|
+
.tick {
|
|
112
|
+
position: absolute;
|
|
113
|
+
width: 24px;
|
|
114
|
+
height: 24px;
|
|
115
|
+
}
|
|
116
|
+
.tick.tl {
|
|
117
|
+
top: -3px;
|
|
118
|
+
left: -3px;
|
|
119
|
+
border-top: 4px solid var(--frame-accent, #2557a7);
|
|
120
|
+
border-left: 4px solid var(--frame-accent, #2557a7);
|
|
121
|
+
}
|
|
122
|
+
.tick.tr {
|
|
123
|
+
top: -3px;
|
|
124
|
+
right: -3px;
|
|
125
|
+
border-top: 4px solid var(--frame-accent, #2557a7);
|
|
126
|
+
border-right: 4px solid var(--frame-accent, #2557a7);
|
|
127
|
+
}
|
|
128
|
+
.tick.bl {
|
|
129
|
+
bottom: -3px;
|
|
130
|
+
left: -3px;
|
|
131
|
+
border-bottom: 4px solid var(--frame-accent, #2557a7);
|
|
132
|
+
border-left: 4px solid var(--frame-accent, #2557a7);
|
|
133
|
+
}
|
|
134
|
+
.tick.br {
|
|
135
|
+
bottom: -3px;
|
|
136
|
+
right: -3px;
|
|
137
|
+
border-bottom: 4px solid var(--frame-accent, #2557a7);
|
|
138
|
+
border-right: 4px solid var(--frame-accent, #2557a7);
|
|
139
|
+
}
|
|
140
|
+
.note {
|
|
141
|
+
position: absolute;
|
|
142
|
+
left: 240px;
|
|
143
|
+
bottom: 60px;
|
|
144
|
+
right: 240px;
|
|
145
|
+
text-align: center;
|
|
146
|
+
color: rgba(255, 255, 255, 0.5);
|
|
147
|
+
font:
|
|
148
|
+
14px/1.4 ui-monospace,
|
|
149
|
+
monospace;
|
|
150
|
+
letter-spacing: 0.12em;
|
|
151
|
+
}
|
|
152
|
+
</style>
|
|
153
|
+
</head>
|
|
154
|
+
<body>
|
|
155
|
+
<div class="stage">
|
|
156
|
+
<div class="video-wrap">
|
|
157
|
+
<span class="v-label">VIDEO</span>
|
|
158
|
+
</div>
|
|
159
|
+
<div class="frame-deco">
|
|
160
|
+
<span class="tick tl"></span>
|
|
161
|
+
<span class="tick tr"></span>
|
|
162
|
+
<span class="tick bl"></span>
|
|
163
|
+
<span class="tick br"></span>
|
|
164
|
+
</div>
|
|
165
|
+
<div class="note">
|
|
166
|
+
HAIRLINE — double stroke (2px inner + soft 6px halo) + four-corner viewfinder ticks. Accent
|
|
167
|
+
color matches the card style.
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
</body>
|
|
171
|
+
</html>
|