@officexapp/vidfarm-devcli 0.21.10
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/.agents/skills/dollarplatoon-skill/SKILL.md +1227 -0
- package/.agents/skills/editor-capabilities/SKILL.md +182 -0
- package/.agents/skills/editor-capabilities/references/re-theme-walkthrough.md +58 -0
- package/.agents/skills/embedded-captions/CATALOG.md +93 -0
- package/.agents/skills/embedded-captions/SKILL.md +286 -0
- package/.agents/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -0
- package/.agents/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -0
- package/.agents/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
- package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
- package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
- package/.agents/skills/embedded-captions/dna/README.md +148 -0
- package/.agents/skills/embedded-captions/dna/chrome.json +68 -0
- package/.agents/skills/embedded-captions/dna/cream.json +69 -0
- package/.agents/skills/embedded-captions/dna/documentary.json +62 -0
- package/.agents/skills/embedded-captions/dna/editorial.json +70 -0
- package/.agents/skills/embedded-captions/dna/glitch.json +82 -0
- package/.agents/skills/embedded-captions/dna/ink.json +65 -0
- package/.agents/skills/embedded-captions/dna/keynote.json +62 -0
- package/.agents/skills/embedded-captions/dna/loud.json +75 -0
- package/.agents/skills/embedded-captions/dna/neon.json +58 -0
- package/.agents/skills/embedded-captions/dna/velocity.json +89 -0
- package/.agents/skills/embedded-captions/modes/cinematic/README.md +48 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
- package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
- package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
- package/.agents/skills/embedded-captions/modes/cinematic/engine.html +355 -0
- package/.agents/skills/embedded-captions/modes/standard/_anatomy.md +233 -0
- package/.agents/skills/embedded-captions/modes/standard/_motion.md +192 -0
- package/.agents/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -0
- package/.agents/skills/embedded-captions/references/aesthetic-principles.md +168 -0
- package/.agents/skills/embedded-captions/references/anti-patterns.md +188 -0
- package/.agents/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
- package/.agents/skills/embedded-captions/references/caption-grouping.md +130 -0
- package/.agents/skills/embedded-captions/references/composition-craft.md +522 -0
- package/.agents/skills/embedded-captions/references/direction-catalog.md +138 -0
- package/.agents/skills/embedded-captions/references/example-renders/champion.html +371 -0
- package/.agents/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
- package/.agents/skills/embedded-captions/references/failure-modes.md +145 -0
- package/.agents/skills/embedded-captions/references/layout-heuristics.md +238 -0
- package/.agents/skills/embedded-captions/references/motion-vocabulary.md +148 -0
- package/.agents/skills/embedded-captions/references/rail.md +68 -0
- package/.agents/skills/embedded-captions/references/reference-bar.md +47 -0
- package/.agents/skills/embedded-captions/references/scene-types.md +94 -0
- package/.agents/skills/embedded-captions/references/test-set.md +66 -0
- package/.agents/skills/embedded-captions/references/typographic-moves.md +266 -0
- package/.agents/skills/embedded-captions/references/typography-presets.md +63 -0
- package/.agents/skills/embedded-captions/scripts/audio-envelope.cjs +95 -0
- package/.agents/skills/embedded-captions/scripts/check-occlusion.cjs +250 -0
- package/.agents/skills/embedded-captions/scripts/check-overflow.cjs +194 -0
- package/.agents/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -0
- package/.agents/skills/embedded-captions/scripts/check-timing.cjs +173 -0
- package/.agents/skills/embedded-captions/scripts/fill-timings.cjs +124 -0
- package/.agents/skills/embedded-captions/scripts/fit-fonts.cjs +158 -0
- package/.agents/skills/embedded-captions/scripts/gen-stroke-path.py +46 -0
- package/.agents/skills/embedded-captions/scripts/inject-fonts.cjs +169 -0
- package/.agents/skills/embedded-captions/scripts/lib-dna.cjs +201 -0
- package/.agents/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -0
- package/.agents/skills/embedded-captions/scripts/make-composition.cjs +404 -0
- package/.agents/skills/embedded-captions/scripts/make-theme.cjs +8781 -0
- package/.agents/skills/embedded-captions/scripts/matte.cjs +294 -0
- package/.agents/skills/embedded-captions/scripts/measure-layout.cjs +293 -0
- package/.agents/skills/embedded-captions/scripts/prepare.sh +39 -0
- package/.agents/skills/embedded-captions/scripts/preview-frames.cjs +268 -0
- package/.agents/skills/embedded-captions/scripts/render-and-composite.sh +509 -0
- package/.agents/skills/embedded-captions/scripts/render-theme.sh +34 -0
- package/.agents/skills/embedded-captions/scripts/safe-zones.cjs +813 -0
- package/.agents/skills/embedded-captions/scripts/transcribe.cjs +349 -0
- package/.agents/skills/embedded-captions/themes/PORTING.md +49 -0
- package/.agents/skills/embedded-captions/themes/README.md +244 -0
- package/.agents/skills/embedded-captions/themes/anchor.json +27 -0
- package/.agents/skills/embedded-captions/themes/arcade.json +51 -0
- package/.agents/skills/embedded-captions/themes/aurora.json +41 -0
- package/.agents/skills/embedded-captions/themes/biolume.json +35 -0
- package/.agents/skills/embedded-captions/themes/brush.json +74 -0
- package/.agents/skills/embedded-captions/themes/chalkboard.json +52 -0
- package/.agents/skills/embedded-captions/themes/dossier.json +56 -0
- package/.agents/skills/embedded-captions/themes/graffiti.json +62 -0
- package/.agents/skills/embedded-captions/themes/hologram.json +41 -0
- package/.agents/skills/embedded-captions/themes/inkwater.json +43 -0
- package/.agents/skills/embedded-captions/themes/laser.json +46 -0
- package/.agents/skills/embedded-captions/themes/lastpage.json +33 -0
- package/.agents/skills/embedded-captions/themes/neonsign.json +53 -0
- package/.agents/skills/embedded-captions/themes/nightcity.json +56 -0
- package/.agents/skills/embedded-captions/themes/ordnance.json +54 -0
- package/.agents/skills/embedded-captions/themes/papercut.json +37 -0
- package/.agents/skills/embedded-captions/themes/popup.json +46 -0
- package/.agents/skills/embedded-captions/themes/ransom.json +62 -0
- package/.agents/skills/embedded-captions/themes/scoreboard.json +54 -0
- package/.agents/skills/embedded-captions/themes/spectrum.json +46 -0
- package/.agents/skills/embedded-captions/themes/stardust.json +29 -0
- package/.agents/skills/embedded-captions/themes/stomp.json +43 -0
- package/.agents/skills/embedded-captions/themes/terminal.json +49 -0
- package/.agents/skills/embedded-captions/themes/thunder.json +44 -0
- package/.agents/skills/embedded-captions/themes/transit.json +44 -0
- package/.agents/skills/embedded-captions/themes/vhs.json +47 -0
- package/.agents/skills/faceless-explainer/SKILL.md +209 -0
- package/.agents/skills/faceless-explainer/references/cut-catalog.md +215 -0
- package/.agents/skills/faceless-explainer/references/motion-language.md +156 -0
- package/.agents/skills/faceless-explainer/references/story-design.md +248 -0
- package/.agents/skills/faceless-explainer/references/visual-design.md +146 -0
- package/.agents/skills/faceless-explainer/scripts/assemble-index.mjs +570 -0
- package/.agents/skills/faceless-explainer/scripts/audio.mjs +260 -0
- package/.agents/skills/faceless-explainer/scripts/build-frame.mjs +536 -0
- package/.agents/skills/faceless-explainer/scripts/captions.mjs +508 -0
- package/.agents/skills/faceless-explainer/scripts/lib/assets.mjs +55 -0
- package/.agents/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -0
- package/.agents/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -0
- package/.agents/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -0
- package/.agents/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -0
- package/.agents/skills/faceless-explainer/scripts/lib/transitions.json +71 -0
- package/.agents/skills/faceless-explainer/scripts/transitions.mjs +320 -0
- package/.agents/skills/faceless-explainer/sub-agents/frame-worker.md +75 -0
- package/.agents/skills/farmville-saas-ux/SKILL.md +156 -0
- package/.agents/skills/farmville-saas-ux/assets/starter.html +294 -0
- package/.agents/skills/farmville-saas-ux/references/components.md +340 -0
- package/.agents/skills/farmville-saas-ux/references/porting-guide.md +121 -0
- package/.agents/skills/farmville-saas-ux/references/tokens.md +271 -0
- package/.agents/skills/flockposter/LICENSE +17 -0
- package/.agents/skills/flockposter/README.md +72 -0
- package/.agents/skills/flockposter/SKILL.md +562 -0
- package/.agents/skills/flockposter/examples/cli-instagram-reel.sh +21 -0
- package/.agents/skills/flockposter/examples/cli-multi-platform.json +69 -0
- package/.agents/skills/flockposter/examples/cli-tiktok-upload-only.sh +22 -0
- package/.agents/skills/flockposter/examples/cli-x-thread.sh +17 -0
- package/.agents/skills/flockposter/examples/cli-youtube-short.sh +21 -0
- package/.agents/skills/flockposter/examples/public-api-instagram-reel.json +28 -0
- package/.agents/skills/general-video/SKILL.md +143 -0
- package/.agents/skills/hyperframes/SKILL.md +160 -0
- package/.agents/skills/hyperframes-animation/SKILL.md +84 -0
- package/.agents/skills/hyperframes-animation/adapters/animate-text.md +64 -0
- package/.agents/skills/hyperframes-animation/adapters/animejs.md +114 -0
- package/.agents/skills/hyperframes-animation/adapters/css-animations.md +143 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap.md +105 -0
- package/.agents/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
- package/.agents/skills/hyperframes-animation/adapters/lottie.md +117 -0
- package/.agents/skills/hyperframes-animation/adapters/three.md +131 -0
- package/.agents/skills/hyperframes-animation/adapters/typegpu.md +178 -0
- package/.agents/skills/hyperframes-animation/adapters/waapi.md +101 -0
- package/.agents/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
- package/.agents/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -0
- package/.agents/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -0
- package/.agents/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -0
- package/.agents/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -0
- package/.agents/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -0
- package/.agents/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -0
- package/.agents/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -0
- package/.agents/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -0
- package/.agents/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -0
- package/.agents/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
- package/.agents/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
- package/.agents/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -0
- package/.agents/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
- package/.agents/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
- package/.agents/skills/hyperframes-animation/blueprints-index.md +146 -0
- package/.agents/skills/hyperframes-animation/examples/assets/avatars/02.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/github.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/nvidia.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/visa.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/zoominfo.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
- package/.agents/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
- package/.agents/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
- package/.agents/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
- package/.agents/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
- package/.agents/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
- package/.agents/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
- package/.agents/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
- package/.agents/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
- package/.agents/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
- package/.agents/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
- package/.agents/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
- package/.agents/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
- package/.agents/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -0
- package/.agents/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -0
- package/.agents/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -0
- package/.agents/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -0
- package/.agents/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -0
- package/.agents/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -0
- package/.agents/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -0
- package/.agents/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -0
- package/.agents/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -0
- package/.agents/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -0
- package/.agents/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -0
- package/.agents/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -0
- package/.agents/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -0
- package/.agents/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -0
- package/.agents/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -0
- package/.agents/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -0
- package/.agents/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -0
- package/.agents/skills/hyperframes-animation/rules/gsap-effects.md +299 -0
- package/.agents/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -0
- package/.agents/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -0
- package/.agents/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -0
- package/.agents/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -0
- package/.agents/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -0
- package/.agents/skills/hyperframes-animation/rules/press-release-spring.md +296 -0
- package/.agents/skills/hyperframes-animation/rules/reactive-displacement.md +277 -0
- package/.agents/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -0
- package/.agents/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -0
- package/.agents/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -0
- package/.agents/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -0
- package/.agents/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -0
- package/.agents/skills/hyperframes-animation/rules/svg-path-draw.md +274 -0
- package/.agents/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -0
- package/.agents/skills/hyperframes-animation/rules/viewport-change.md +349 -0
- package/.agents/skills/hyperframes-animation/rules-index.md +86 -0
- package/.agents/skills/hyperframes-animation/scripts/animation-map.mjs +606 -0
- package/.agents/skills/hyperframes-animation/scripts/package-loader.mjs +288 -0
- package/.agents/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -0
- package/.agents/skills/hyperframes-animation/techniques.md +507 -0
- package/.agents/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -0
- package/.agents/skills/hyperframes-animation/transitions/catalog.md +127 -0
- package/.agents/skills/hyperframes-animation/transitions/css-3d.md +12 -0
- package/.agents/skills/hyperframes-animation/transitions/css-blur.md +51 -0
- package/.agents/skills/hyperframes-animation/transitions/css-cover.md +43 -0
- package/.agents/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
- package/.agents/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
- package/.agents/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
- package/.agents/skills/hyperframes-animation/transitions/css-grid.md +10 -0
- package/.agents/skills/hyperframes-animation/transitions/css-light.md +49 -0
- package/.agents/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
- package/.agents/skills/hyperframes-animation/transitions/css-other.md +25 -0
- package/.agents/skills/hyperframes-animation/transitions/css-push.md +41 -0
- package/.agents/skills/hyperframes-animation/transitions/css-radial.md +37 -0
- package/.agents/skills/hyperframes-animation/transitions/css-scale.md +24 -0
- package/.agents/skills/hyperframes-animation/transitions/overview.md +153 -0
- package/.agents/skills/hyperframes-cli/SKILL.md +113 -0
- package/.agents/skills/hyperframes-cli/references/doctor-browser.md +45 -0
- package/.agents/skills/hyperframes-cli/references/init-and-scaffold.md +55 -0
- package/.agents/skills/hyperframes-cli/references/lambda.md +132 -0
- package/.agents/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -0
- package/.agents/skills/hyperframes-cli/references/preview-render.md +149 -0
- package/.agents/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -0
- package/.agents/skills/hyperframes-core/SKILL.md +78 -0
- package/.agents/skills/hyperframes-core/references/composition-patterns.md +263 -0
- package/.agents/skills/hyperframes-core/references/data-attributes.md +70 -0
- package/.agents/skills/hyperframes-core/references/determinism-rules.md +68 -0
- package/.agents/skills/hyperframes-core/references/full-screen-motion.md +62 -0
- package/.agents/skills/hyperframes-core/references/minimal-composition.md +66 -0
- package/.agents/skills/hyperframes-core/references/script-format.md +49 -0
- package/.agents/skills/hyperframes-core/references/storyboard-format.md +95 -0
- package/.agents/skills/hyperframes-core/references/sub-compositions.md +237 -0
- package/.agents/skills/hyperframes-core/references/subagent-dispatch.md +41 -0
- package/.agents/skills/hyperframes-core/references/tailwind.md +125 -0
- package/.agents/skills/hyperframes-core/references/tracks-and-clips.md +76 -0
- package/.agents/skills/hyperframes-core/references/variables-and-media.md +90 -0
- package/.agents/skills/hyperframes-creative/SKILL.md +70 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
- package/.agents/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/monochrome.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
- package/.agents/skills/hyperframes-creative/references/audio-reactive.md +76 -0
- package/.agents/skills/hyperframes-creative/references/beat-direction.md +164 -0
- package/.agents/skills/hyperframes-creative/references/composition-patterns.md +199 -0
- package/.agents/skills/hyperframes-creative/references/data-in-motion.md +19 -0
- package/.agents/skills/hyperframes-creative/references/design-adherence.md +19 -0
- package/.agents/skills/hyperframes-creative/references/design-picker.md +123 -0
- package/.agents/skills/hyperframes-creative/references/design-spec.md +55 -0
- package/.agents/skills/hyperframes-creative/references/house-style.md +73 -0
- package/.agents/skills/hyperframes-creative/references/motion-principles.md +150 -0
- package/.agents/skills/hyperframes-creative/references/narration.md +92 -0
- package/.agents/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
- package/.agents/skills/hyperframes-creative/references/typography.md +218 -0
- package/.agents/skills/hyperframes-creative/references/video-composition.md +63 -0
- package/.agents/skills/hyperframes-creative/references/visual-styles.md +457 -0
- package/.agents/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -0
- package/.agents/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -0
- package/.agents/skills/hyperframes-creative/scripts/package-loader.mjs +288 -0
- package/.agents/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -0
- package/.agents/skills/hyperframes-creative/templates/design-picker.html +1432 -0
- package/.agents/skills/hyperframes-keyframes/SKILL.md +237 -0
- package/.agents/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
- package/.agents/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -0
- package/.agents/skills/motion-graphics/SKILL.md +172 -0
- package/.agents/skills/motion-graphics/agents/builder.md +40 -0
- package/.agents/skills/motion-graphics/agents/director.md +53 -0
- package/.agents/skills/motion-graphics/agents/finalize.md +17 -0
- package/.agents/skills/motion-graphics/catalog-map.md +40 -0
- package/.agents/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
- package/.agents/skills/motion-graphics/categories/charts/module.md +21 -0
- package/.agents/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
- package/.agents/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
- package/.agents/skills/motion-graphics/categories/lower-thirds/module.md +16 -0
- package/.agents/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -0
- package/.agents/skills/motion-graphics/categories/maps/module.md +61 -0
- package/.agents/skills/motion-graphics/categories/news/module.md +56 -0
- package/.agents/skills/motion-graphics/categories/stat/module.md +21 -0
- package/.agents/skills/motion-graphics/categories/tweet/module.md +16 -0
- package/.agents/skills/motion-graphics/categories/webpage/module.md +21 -0
- package/.agents/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
- package/.agents/skills/motion-graphics/grounding/locate.mjs +227 -0
- package/.agents/skills/motion-graphics/phases/source/guide.md +21 -0
- package/.agents/skills/motion-graphics/references/builder-contract.md +38 -0
- package/.agents/skills/motion-graphics/references/motion-vocabulary.md +43 -0
- package/.agents/skills/motion-graphics/references/shot-plan-ir.md +54 -0
- package/.agents/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
- package/.agents/skills/music/SKILL.md +416 -0
- package/.agents/skills/music/references/api_reference.md +519 -0
- package/.agents/skills/music/references/installation.md +65 -0
- package/.agents/skills/product-launch-video/SKILL.md +208 -0
- package/.agents/skills/product-launch-video/references/cut-catalog.md +220 -0
- package/.agents/skills/product-launch-video/references/motion-language.md +156 -0
- package/.agents/skills/product-launch-video/references/story-design.md +373 -0
- package/.agents/skills/product-launch-video/references/visual-design.md +126 -0
- package/.agents/skills/product-launch-video/scripts/assemble-index.mjs +570 -0
- package/.agents/skills/product-launch-video/scripts/audio.mjs +260 -0
- package/.agents/skills/product-launch-video/scripts/build-frame.mjs +536 -0
- package/.agents/skills/product-launch-video/scripts/captions.mjs +508 -0
- package/.agents/skills/product-launch-video/scripts/lib/assets.mjs +55 -0
- package/.agents/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -0
- package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.mjs +36 -0
- package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.test.mjs +76 -0
- package/.agents/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -0
- package/.agents/skills/product-launch-video/scripts/lib/tokens.mjs +204 -0
- package/.agents/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -0
- package/.agents/skills/product-launch-video/scripts/lib/transitions.json +71 -0
- package/.agents/skills/product-launch-video/scripts/stage-assets.mjs +39 -0
- package/.agents/skills/product-launch-video/scripts/transitions.mjs +327 -0
- package/.agents/skills/product-launch-video/sub-agents/frame-worker.md +75 -0
- package/.agents/skills/slideshow/SKILL.md +550 -0
- package/.agents/skills/slideshow/references/standalone-harness.md +1020 -0
- package/.agents/skills/talking-head-recut/NOTICE.md +39 -0
- package/.agents/skills/talking-head-recut/SKILL.md +1195 -0
- package/.agents/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -0
- package/.agents/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
- package/.agents/skills/talking-head-recut/references/frames/clean.html +92 -0
- package/.agents/skills/talking-head-recut/references/frames/hairline.html +171 -0
- package/.agents/skills/talking-head-recut/references/frames/polaroid.html +131 -0
- package/.agents/skills/talking-head-recut/references/layouts/overlay.html +164 -0
- package/.agents/skills/talking-head-recut/references/layouts/pip.html +143 -0
- package/.agents/skills/talking-head-recut/references/layouts/split.html +121 -0
- package/.agents/skills/talking-head-recut/references/layouts/stack.html +109 -0
- package/.agents/skills/talking-head-recut/references/styles/academic.html +172 -0
- package/.agents/skills/talking-head-recut/references/styles/audit.html +170 -0
- package/.agents/skills/talking-head-recut/references/styles/editorial.html +189 -0
- package/.agents/skills/talking-head-recut/references/styles/geom.html +181 -0
- package/.agents/skills/talking-head-recut/references/styles/minimal.html +130 -0
- package/.agents/skills/talking-head-recut/references/styles/spotlight.html +142 -0
- package/.agents/skills/talking-head-recut/references/styles/swiss.html +188 -0
- package/.agents/skills/talking-head-recut/references/styles/terminal.html +196 -0
- package/.agents/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
- package/.agents/skills/talking-head-recut/references/styles/xhs.html +206 -0
- package/.agents/skills/text-to-speech/SKILL.md +226 -0
- package/.agents/skills/text-to-speech/references/installation.md +90 -0
- package/.agents/skills/text-to-speech/references/streaming.md +307 -0
- package/.agents/skills/text-to-speech/references/voice-settings.md +115 -0
- package/.agents/skills/vidfarm-director/SKILL.md +179 -0
- package/.agents/skills/vidfarm-director/recipes/find-and-fork-template.md +16 -0
- package/.agents/skills/vidfarm-director/recipes/local-edit-render-approve.md +13 -0
- package/.agents/skills/vidfarm-director/recipes/onboard-a-new-director.md +13 -0
- package/.agents/skills/vidfarm-director/recipes/retheme-template.md +17 -0
- package/.agents/skills/vidfarm-director/references/assets-and-sourcing.md +117 -0
- package/.agents/skills/vidfarm-director/references/automation-and-local-dev.md +276 -0
- package/.agents/skills/vidfarm-director/references/core-workflows.md +301 -0
- package/.agents/skills/vidfarm-director/references/editor-workflows.md +367 -0
- package/.agents/skills/vidfarm-director/references/onboarding.md +28 -0
- package/.agents/skills/vidfarm-director/references/primitives.md +307 -0
- package/.agents/skills/vidfarm-director/references/rest-api.md +84 -0
- package/.agents/skills/vidfarm-media/SKILL.md +158 -0
- package/.agents/skills/vidfarm-media/references/tts.md +111 -0
- package/.agents/skills/vidfarm-media/scripts/audio.mjs +628 -0
- package/.agents/skills/vidfarm-media/scripts/wait-bgm.mjs +31 -0
- package/.agents/skills/website-to-video/SKILL.md +145 -0
- package/.agents/skills/website-to-video/assets/sfx/CREDITS.md +35 -0
- package/.agents/skills/website-to-video/assets/sfx/manifest.json +97 -0
- package/.agents/skills/website-to-video/references/beat-builder-guide.md +263 -0
- package/.agents/skills/website-to-video/references/capabilities.md +713 -0
- package/.agents/skills/website-to-video/references/step-0-capture.md +55 -0
- package/.agents/skills/website-to-video/references/step-1-design.md +333 -0
- package/.agents/skills/website-to-video/references/step-2-brief.md +178 -0
- package/.agents/skills/website-to-video/references/step-3-storyboard.md +572 -0
- package/.agents/skills/website-to-video/references/step-4-vo.md +225 -0
- package/.agents/skills/website-to-video/references/step-5-build.md +483 -0
- package/.agents/skills/website-to-video/references/step-6-validate.md +341 -0
- package/.agents/skills/website-to-video/scripts/w2h-verify.mjs +759 -0
- package/README.md +97 -0
- package/SKILL.director.md +1644 -0
- package/SKILL.md +83 -0
- package/demo/README.md +28 -0
- package/demo/dist/app.css +1 -0
- package/demo/dist/app.js +968 -0
- package/demo/dist/chunks/chunk-3OT2D42H.js +1 -0
- package/demo/dist/chunks/chunk-DXB73IDG.js +1 -0
- package/demo/dist/chunks/domEditingLayers-AT7G6F4L-ZTHJHB7R.js +1 -0
- package/demo/dist/chunks/hyperframes-player-7HKH6NSO.js +459 -0
- package/demo/dist/chunks/lib-XAQ37YOE.js +1 -0
- package/demo/dist/chunks/src-TJ2QYA4U.js +207 -0
- package/demo/dist/favicon.ico +0 -0
- package/demo/dist/icons/timeline/audio.svg +7 -0
- package/demo/dist/icons/timeline/captions.svg +5 -0
- package/demo/dist/icons/timeline/composition.svg +12 -0
- package/demo/dist/icons/timeline/image.svg +18 -0
- package/demo/dist/icons/timeline/music.svg +10 -0
- package/demo/dist/icons/timeline/text.svg +3 -0
- package/demo/dist/index.html +16 -0
- package/dist/src/cli.js +7258 -0
- package/dist/src/devcli/auth-store.js +67 -0
- package/dist/src/devcli/captions.js +310 -0
- package/dist/src/devcli/clip-store.js +368 -0
- package/dist/src/devcli/clips.js +1138 -0
- package/dist/src/devcli/composition-edit.js +1292 -0
- package/dist/src/devcli/cost-mode.js +149 -0
- package/dist/src/devcli/doctor.js +192 -0
- package/dist/src/devcli/hyperframes-cli.js +118 -0
- package/dist/src/devcli/local-backend.js +167 -0
- package/dist/src/devcli/local-frontend-server.js +681 -0
- package/dist/src/devcli/local-render.js +136 -0
- package/dist/src/devcli/skills.js +476 -0
- package/dist/src/devcli/speech.js +178 -0
- package/dist/src/devcli/stills.js +249 -0
- package/dist/src/devcli/telemetry.js +236 -0
- package/dist/src/devcli/timeline-edit.js +490 -0
- package/dist/src/devcli/transitions.js +205 -0
- package/dist/src/hyperframes/composition.js +780 -0
- package/dist/src/lib/crypto.js +45 -0
- package/dist/src/lib/dev-log.js +54 -0
- package/dist/src/lib/display-name.js +11 -0
- package/dist/src/lib/ids.js +24 -0
- package/dist/src/lib/images.js +19 -0
- package/dist/src/lib/json.js +15 -0
- package/dist/src/lib/package-root.js +47 -0
- package/dist/src/lib/render-media-prep.js +293 -0
- package/dist/src/lib/template-paths.js +28 -0
- package/dist/src/lib/time.js +7 -0
- package/dist/src/lib/url-clean.js +85 -0
- package/dist/src/services/captions.js +123 -0
- package/dist/src/services/clip-curation/cost.js +116 -0
- package/dist/src/services/clip-curation/ffmpeg.js +352 -0
- package/dist/src/services/clip-curation/gemini.js +418 -0
- package/dist/src/services/clip-curation/hunt.js +470 -0
- package/dist/src/services/clip-curation/index.js +19 -0
- package/dist/src/services/clip-curation/local-agent.js +248 -0
- package/dist/src/services/clip-curation/media-select.js +152 -0
- package/dist/src/services/clip-curation/presets.js +20 -0
- package/dist/src/services/clip-curation/presets.v1.json +59 -0
- package/dist/src/services/clip-curation/query.js +167 -0
- package/dist/src/services/clip-curation/refine.js +165 -0
- package/dist/src/services/clip-curation/scan.js +189 -0
- package/dist/src/services/clip-curation/source-naming.js +131 -0
- package/dist/src/services/clip-curation/taxonomy.js +73 -0
- package/dist/src/services/clip-curation/taxonomy.v1.json +102 -0
- package/dist/src/services/clip-curation/types.js +7 -0
- package/dist/src/services/composition-lint.js +199 -0
- package/dist/src/services/provider-errors.js +128 -0
- package/dist/src/services/speech.js +629 -0
- package/package.json +154 -0
- package/public/assets/discover-client-app.js +1 -0
- package/public/assets/favicon.ico +0 -0
- package/public/assets/file-directory-app.js +89 -0
- package/public/assets/homepage-app.js +54 -0
- package/public/assets/homepage-client-app.js +80 -0
- package/public/assets/landing-page-client-app.js +87 -0
- package/public/assets/logo-vidfarm.png +0 -0
- package/public/assets/page-runtime-client-app.js +94 -0
- package/public/assets/placeholders/scene-placeholder.png +0 -0
- package/public/serve-shells/editor.html +3146 -0
- package/public/serve-shells/library-files.html +3450 -0
- package/public/serve-shells/library-raws.html +4404 -0
- package/public/serve-shells/tools-clipper.html +3991 -0
- package/public/serve-shells/tools-image.html +5584 -0
- package/public/serve-shells/tools-video.html +4404 -0
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Farmville SaaS — Starter</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
10
|
+
<style>
|
|
11
|
+
:root{
|
|
12
|
+
--font-display:"Hanken Grotesk","blMelody",ui-sans-serif,system-ui,sans-serif;
|
|
13
|
+
--font-body:"Inter",ui-sans-serif,system-ui,-apple-system,sans-serif;
|
|
14
|
+
/* honey gold — the one joy accent */
|
|
15
|
+
--gold-500:#ffc738;--gold-600:#f6c744;--gold-700:#fcb900;--gold-tint:#fff5e4;--gold-tint2:#ffe9cc;
|
|
16
|
+
/* ink + neutral scale */
|
|
17
|
+
--ink:#171717;--n-800:#262626;--n-700:#404040;--n-600:#525252;--n-500:#737373;--n-400:#a3a3a3;
|
|
18
|
+
--n-300:#d4d4d4;--n-200:#ededed;--n-100:#f5f5f5;--n-50:#fbfbfb;--white:#fff;
|
|
19
|
+
/* support pastels */
|
|
20
|
+
--sky:#3f9fe0;--sky-tint:#e2effd;--violet:#9f5bde;--violet-tint:#e4ddfd;--green:#22c55e;--green-tint:#dcfce7;--coral:#f97316;--coral-tint:#ffe9cc;
|
|
21
|
+
/* semantic */
|
|
22
|
+
--bg:var(--n-50);--bg-section:var(--n-100);--surface:var(--white);--border:var(--n-200);--border-strong:var(--n-300);
|
|
23
|
+
--text:var(--n-700);--text-muted:var(--n-500);--text-faint:var(--n-400);
|
|
24
|
+
/* radius */
|
|
25
|
+
--r-md:6px;--r-lg:8px;--r-xl:12px;--r-2xl:16px;--r-3xl:24px;--r-full:9999px;
|
|
26
|
+
/* shadow */
|
|
27
|
+
--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;
|
|
28
|
+
--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;
|
|
29
|
+
--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;
|
|
30
|
+
--shadow-card:0 1px 2px #0000000d,0 8px 24px -12px #00000014;--shadow-nav:0 4px 24px -8px #00000026,0 1px 2px #0000000d;
|
|
31
|
+
--ring-gold:0 0 0 3px var(--gold-600),0 0 14px rgba(246,199,68,.4);
|
|
32
|
+
/* type */
|
|
33
|
+
--text-sm:.875rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-4xl:2.25rem;--text-5xl:3rem;
|
|
34
|
+
--display:clamp(3rem,7vw,6rem);
|
|
35
|
+
/* space + motion */
|
|
36
|
+
--section-y:clamp(4rem,9vw,7rem);--container:75rem;--gutter:clamp(1rem,4vw,2rem);
|
|
37
|
+
--glass-blur:16px;--ease:cubic-bezier(.22,1,.36,1);--dur:220ms;
|
|
38
|
+
}
|
|
39
|
+
*{box-sizing:border-box;margin:0;padding:0}
|
|
40
|
+
html{font-size:16px}
|
|
41
|
+
body{font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.5}
|
|
42
|
+
a{text-decoration:none;color:inherit}
|
|
43
|
+
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;letter-spacing:-.025em;line-height:1.1;color:var(--ink)}
|
|
44
|
+
.container{width:min(var(--container),100%);margin:0 auto;padding:0 var(--gutter)}
|
|
45
|
+
|
|
46
|
+
/* nav */
|
|
47
|
+
.nav-wrap{position:sticky;top:0;z-index:50;padding:16px var(--gutter);display:flex;justify-content:center}
|
|
48
|
+
.glass{background:rgba(255,255,255,.72);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border);box-shadow:var(--shadow-nav)}
|
|
49
|
+
.nav{width:min(var(--container),100%);display:flex;align-items:center;gap:24px;padding:10px 12px 10px 24px;border-radius:var(--r-full)}
|
|
50
|
+
.brand{font-family:var(--font-display);font-weight:800;font-size:22px;color:var(--ink);letter-spacing:-.02em}
|
|
51
|
+
.nav-links{display:flex;gap:2px;margin:0 auto;list-style:none}
|
|
52
|
+
.nav-links a{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;border-radius:var(--r-lg);font-size:15px;font-weight:500;color:var(--n-700);transition:background var(--dur) var(--ease)}
|
|
53
|
+
.nav-links a:hover{background:#0000000a}
|
|
54
|
+
.caret{font-size:11px;color:var(--n-400)}
|
|
55
|
+
.nav-cta{display:flex;align-items:center;gap:8px}
|
|
56
|
+
.link-quiet{padding:8px 12px;font-size:15px;font-weight:500;color:var(--n-700)}
|
|
57
|
+
@media(max-width:820px){.nav-links{display:none}}
|
|
58
|
+
|
|
59
|
+
/* buttons */
|
|
60
|
+
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:var(--r-full);font-family:var(--font-body);font-size:15px;font-weight:600;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease)}
|
|
61
|
+
.btn .arrow{transition:transform var(--dur) var(--ease)}
|
|
62
|
+
.btn:hover .arrow{transform:translateX(3px)}
|
|
63
|
+
.btn-ink{background:var(--ink);color:#fff;box-shadow:var(--shadow-sm)}
|
|
64
|
+
.btn-ink:hover{background:#000;box-shadow:var(--shadow-md);transform:translateY(-1px)}
|
|
65
|
+
.btn-gold{background:var(--gold-500);color:var(--ink);font-weight:700;box-shadow:var(--shadow-sm)}
|
|
66
|
+
.btn-gold:hover{background:var(--gold-700);box-shadow:0 6px 18px -6px rgba(252,185,0,.6);transform:translateY(-1px)}
|
|
67
|
+
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--border);box-shadow:var(--shadow-xs)}
|
|
68
|
+
.btn-ghost:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
|
|
69
|
+
.btn-lg{padding:15px 26px;font-size:16px}
|
|
70
|
+
|
|
71
|
+
/* badges */
|
|
72
|
+
.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--r-full);background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-xs);font-size:14px;font-weight:500;color:var(--n-700)}
|
|
73
|
+
|
|
74
|
+
/* hero (Tier-2 pure-CSS sunny sky, no image asset needed) */
|
|
75
|
+
.hero{position:relative;overflow:hidden;text-align:center;padding:120px var(--gutter) 110px}
|
|
76
|
+
.hero-art{position:absolute;inset:0;z-index:0;background:
|
|
77
|
+
radial-gradient(58% 46% at 78% 20%,rgba(255,241,204,.9),transparent 60%),
|
|
78
|
+
linear-gradient(180deg,#3f9fe0 0%,#6cc0f5 55%,#a9dbfb 100%)}
|
|
79
|
+
.hero-art::after{content:"";position:absolute;right:9%;bottom:16%;width:340px;height:130px;
|
|
80
|
+
background:radial-gradient(ellipse 60% 60% at 30% 60%,#fff,transparent 70%),radial-gradient(ellipse 50% 70% at 66% 50%,#fff,transparent 70%);filter:blur(2px);opacity:.95}
|
|
81
|
+
.hero-art::before{content:"";position:absolute;left:6%;top:30%;width:220px;height:90px;
|
|
82
|
+
background:radial-gradient(ellipse 60% 60% at 40% 60%,#fff,transparent 72%);filter:blur(3px);opacity:.8}
|
|
83
|
+
.hero-inner{position:relative;z-index:1;max-width:820px;margin:0 auto;display:grid;gap:22px;justify-items:center}
|
|
84
|
+
.hero h1{font-size:var(--display);line-height:1;letter-spacing:-.03em;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.12)}
|
|
85
|
+
.hero h1 .soft{color:rgba(255,255,255,.55)}
|
|
86
|
+
.hero-sub{font-size:var(--text-xl);line-height:1.5;color:rgba(255,255,255,.94)}
|
|
87
|
+
.hero .badge{background:rgba(255,255,255,.9)}
|
|
88
|
+
|
|
89
|
+
/* floating screenshot */
|
|
90
|
+
.hero-shot{position:relative;z-index:2;width:min(64rem,100%);margin:-70px auto 0;background:#fff;border:1px solid var(--border);border-radius:var(--r-3xl);box-shadow:var(--shadow-xl);padding:20px}
|
|
91
|
+
.shot-row{display:flex;gap:16px;flex-wrap:wrap}
|
|
92
|
+
.shot-pane{flex:1;min-width:220px;background:linear-gradient(180deg,#fafaff,#f4f2fb);border-radius:var(--r-2xl);padding:22px;min-height:180px}
|
|
93
|
+
|
|
94
|
+
/* sections */
|
|
95
|
+
.section{padding:var(--section-y) 0}
|
|
96
|
+
.section-tint{background:var(--bg-section)}
|
|
97
|
+
.center-intro{text-align:center;display:grid;gap:16px;justify-items:center;margin-bottom:48px}
|
|
98
|
+
.section-title{font-size:var(--text-5xl);letter-spacing:-.025em}
|
|
99
|
+
.section-sub{font-size:var(--text-xl);color:var(--text-muted)}
|
|
100
|
+
|
|
101
|
+
/* cards */
|
|
102
|
+
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
|
|
103
|
+
@media(max-width:820px){.grid-2{grid-template-columns:1fr}}
|
|
104
|
+
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3xl);padding:32px;box-shadow:var(--shadow-card);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
|
|
105
|
+
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
|
|
106
|
+
.card h3{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em;margin-bottom:8px}
|
|
107
|
+
.card p{color:var(--text-muted);font-size:var(--text-lg)}
|
|
108
|
+
.card-media{margin-top:24px;background:var(--n-50);border:1px solid var(--border);border-radius:var(--r-2xl);padding:20px;display:flex;gap:12px;flex-wrap:wrap}
|
|
109
|
+
|
|
110
|
+
/* icon tiles + nodes */
|
|
111
|
+
.tile{width:40px;height:40px;border-radius:var(--r-xl);display:grid;place-items:center;font-size:18px;flex:none}
|
|
112
|
+
.tile-violet{background:var(--violet-tint);color:var(--violet)}.tile-green{background:var(--green-tint);color:var(--green)}
|
|
113
|
+
.tile-gold{background:var(--gold-tint2);color:var(--gold-700)}.tile-sky{background:var(--sky-tint);color:var(--sky)}.tile-coral{background:var(--coral-tint);color:var(--coral)}
|
|
114
|
+
.node{display:inline-flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:var(--r-2xl);padding:12px 16px;box-shadow:var(--shadow-sm)}
|
|
115
|
+
.node-title{font-weight:600;font-size:15px;color:var(--ink)}.node-sub{font-size:13px;color:var(--text-muted)}
|
|
116
|
+
|
|
117
|
+
/* logo cloud */
|
|
118
|
+
.logo-cloud{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:48px;margin-bottom:8px}
|
|
119
|
+
.logo{opacity:.5;filter:grayscale(1);font-family:var(--font-display);font-weight:700;font-size:22px;color:var(--n-800);transition:opacity var(--dur) var(--ease)}
|
|
120
|
+
.logo:hover{opacity:.8}
|
|
121
|
+
|
|
122
|
+
/* stat cards */
|
|
123
|
+
.trust-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
|
|
124
|
+
@media(max-width:820px){.trust-wrap{grid-template-columns:1fr}}
|
|
125
|
+
.stat-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
|
|
126
|
+
.stat-card{display:grid;gap:12px}
|
|
127
|
+
.stat-head{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--ink)}
|
|
128
|
+
.stat-num{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:700;letter-spacing:-.02em;color:var(--ink)}
|
|
129
|
+
.stars{color:var(--gold-500);font-size:20px;letter-spacing:2px}
|
|
130
|
+
|
|
131
|
+
/* integration grid */
|
|
132
|
+
.int-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-top:40px}
|
|
133
|
+
.int-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-2xl);padding:20px;box-shadow:var(--shadow-card);text-align:center}
|
|
134
|
+
.int-icons{display:flex;justify-content:center;gap:8px;margin-bottom:16px}
|
|
135
|
+
.int-icon{width:52px;height:52px;border-radius:var(--r-xl);background:#fff;border:1px solid var(--border);display:grid;place-items:center;box-shadow:var(--shadow-xs);font-size:22px}
|
|
136
|
+
.int-label{font-weight:600;color:var(--ink);font-size:15px}
|
|
137
|
+
|
|
138
|
+
/* footer */
|
|
139
|
+
.footer{background:var(--ink);color:var(--n-400);padding:80px var(--gutter) 40px}
|
|
140
|
+
.footer-inner{width:min(var(--container),100%);margin:0 auto}
|
|
141
|
+
.footer-top{display:grid;grid-template-columns:1.4fr 3fr;gap:40px;margin-bottom:40px}
|
|
142
|
+
@media(max-width:820px){.footer-top{grid-template-columns:1fr}}
|
|
143
|
+
.footer-brand{font-family:var(--font-display);font-weight:800;font-size:28px;color:var(--gold-500)}
|
|
144
|
+
.footer-tagline{color:var(--n-500);margin-top:8px}
|
|
145
|
+
.footer-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
|
|
146
|
+
@media(max-width:560px){.footer-cols{grid-template-columns:repeat(2,1fr)}}
|
|
147
|
+
.footer-col h4{color:var(--n-400);font-size:14px;font-weight:600;margin-bottom:14px;font-family:var(--font-body)}
|
|
148
|
+
.footer-col a{display:block;color:var(--n-300);font-size:15px;padding:6px 0;transition:color var(--dur) var(--ease)}
|
|
149
|
+
.footer-col a:hover{color:#fff}
|
|
150
|
+
.trust-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;padding-top:32px;border-top:1px solid #ffffff1a}
|
|
151
|
+
.trust-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--r-full);background:#ffffff0d;color:var(--n-400);font-size:14px}
|
|
152
|
+
|
|
153
|
+
:where(a,button,input,textarea):focus-visible{outline:none;box-shadow:var(--ring-gold)}
|
|
154
|
+
</style>
|
|
155
|
+
</head>
|
|
156
|
+
<body>
|
|
157
|
+
|
|
158
|
+
<!-- NAV -->
|
|
159
|
+
<header class="nav-wrap">
|
|
160
|
+
<nav class="nav glass">
|
|
161
|
+
<a class="brand" href="#">Fillout</a>
|
|
162
|
+
<ul class="nav-links">
|
|
163
|
+
<li><a href="#">Products <span class="caret">⌄</span></a></li>
|
|
164
|
+
<li><a href="#">Templates <span class="caret">⌄</span></a></li>
|
|
165
|
+
<li><a href="#">Integrations <span class="caret">⌄</span></a></li>
|
|
166
|
+
<li><a href="#">Pricing</a></li>
|
|
167
|
+
</ul>
|
|
168
|
+
<div class="nav-cta">
|
|
169
|
+
<a class="link-quiet" href="#">Log in</a>
|
|
170
|
+
<a class="btn btn-ink" href="#">Get started <span class="arrow">→</span></a>
|
|
171
|
+
</div>
|
|
172
|
+
</nav>
|
|
173
|
+
</header>
|
|
174
|
+
|
|
175
|
+
<!-- HERO -->
|
|
176
|
+
<section class="hero">
|
|
177
|
+
<div class="hero-art"></div>
|
|
178
|
+
<div class="hero-inner">
|
|
179
|
+
<span class="badge">📋 Forms by Zite</span>
|
|
180
|
+
<h1><span class="soft">Forms that</span><br>do it all</h1>
|
|
181
|
+
<p class="hero-sub">Make any form with Fillout,<br>the all-in-one form solution.</p>
|
|
182
|
+
<a class="btn btn-ink btn-lg" href="#">Get Started <span class="arrow">→</span></a>
|
|
183
|
+
</div>
|
|
184
|
+
</section>
|
|
185
|
+
<div class="hero-shot">
|
|
186
|
+
<div class="shot-row">
|
|
187
|
+
<div class="shot-pane" style="flex:.9">
|
|
188
|
+
<div class="node"><span class="tile tile-sky">📄</span><div><div class="node-title">Form submitted</div><div class="node-sub">Submission trigger</div></div></div>
|
|
189
|
+
</div>
|
|
190
|
+
<div class="shot-pane">
|
|
191
|
+
<div class="node"><span class="tile tile-violet">✦</span><div><div class="node-title">AI action</div><div class="node-sub">Qualify lead</div></div></div>
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<!-- LOGO CLOUD + TRUST -->
|
|
197
|
+
<section class="section">
|
|
198
|
+
<div class="container">
|
|
199
|
+
<div class="logo-cloud">
|
|
200
|
+
<span class="logo">TrueCar</span><span class="logo">BOMBAS</span><span class="logo">wayfair</span>
|
|
201
|
+
<span class="logo">The Athletic</span><span class="logo">HACK CLUB</span><span class="logo">HARVARD</span>
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
<div class="container" style="margin-top:56px">
|
|
205
|
+
<div class="trust-wrap">
|
|
206
|
+
<div>
|
|
207
|
+
<h2 style="font-size:var(--text-4xl)">100,000+ organizations trust Fillout for secure data intake</h2>
|
|
208
|
+
<p style="margin-top:16px;color:var(--text-muted);font-size:var(--text-lg)"><strong style="color:var(--ink)">Average rating of 4.8 out of 5</strong> from hundreds of reviews across G2 Business Reviews and Product Hunt.</p>
|
|
209
|
+
</div>
|
|
210
|
+
<div class="stat-row">
|
|
211
|
+
<div class="card stat-card"><div class="stat-head"><span class="tile tile-coral">G</span> Business reviews</div><div class="stat-num">5/5</div><div class="stars">★★★★★</div></div>
|
|
212
|
+
<div class="card stat-card"><div class="stat-head"><span class="tile tile-coral">P</span> Product Hunt</div><div class="stat-num">4.7/5</div><div class="stars">★★★★★</div></div>
|
|
213
|
+
</div>
|
|
214
|
+
</div>
|
|
215
|
+
</div>
|
|
216
|
+
</section>
|
|
217
|
+
|
|
218
|
+
<!-- FEATURES -->
|
|
219
|
+
<section class="section section-tint">
|
|
220
|
+
<div class="container center-intro">
|
|
221
|
+
<span class="badge">🔥 Features</span>
|
|
222
|
+
<h2 class="section-title">It all starts with a form</h2>
|
|
223
|
+
<p class="section-sub">Build the exact form you need, in minutes.</p>
|
|
224
|
+
</div>
|
|
225
|
+
<div class="container grid-2">
|
|
226
|
+
<div class="card">
|
|
227
|
+
<h3>Create with drag-and-drop</h3>
|
|
228
|
+
<p>Choose from pre-built themes or create your own, with your fonts, logo, colors, custom CSS & more.</p>
|
|
229
|
+
<div class="card-media">
|
|
230
|
+
<span class="tile tile-gold">Aa</span><span class="tile tile-sky">✉</span><span class="tile tile-violet">▦</span>
|
|
231
|
+
</div>
|
|
232
|
+
</div>
|
|
233
|
+
<div class="card">
|
|
234
|
+
<h3>Automate with smart forms</h3>
|
|
235
|
+
<p>Reduce manual work with intelligent routing.</p>
|
|
236
|
+
<div class="card-media" style="flex-direction:column;align-items:flex-start;gap:10px">
|
|
237
|
+
<div class="node"><span class="tile tile-violet">✦</span><div><div class="node-title">AI action</div><div class="node-sub">Qualify lead</div></div></div>
|
|
238
|
+
<div class="node"><span class="tile tile-green">⋔</span><div><div class="node-title">Branch</div><div class="node-sub">Based on priority</div></div></div>
|
|
239
|
+
</div>
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
</section>
|
|
243
|
+
|
|
244
|
+
<!-- INTEGRATIONS -->
|
|
245
|
+
<section class="section">
|
|
246
|
+
<div class="container center-intro">
|
|
247
|
+
<h2 class="section-title">Integrate with all your apps</h2>
|
|
248
|
+
<p class="section-sub">Get more done with the tools you already use.</p>
|
|
249
|
+
</div>
|
|
250
|
+
<div class="container">
|
|
251
|
+
<div class="int-grid">
|
|
252
|
+
<div class="int-card"><div class="int-icons"><span class="int-icon">🟠</span><span class="int-icon">☁️</span><span class="int-icon">🅿️</span></div><div class="int-label">Capture and manage leads</div></div>
|
|
253
|
+
<div class="int-card"><div class="int-icons"><span class="int-icon">💬</span><span class="int-icon">📨</span><span class="int-icon">🎮</span></div><div class="int-label">Get notified instantly</div></div>
|
|
254
|
+
<div class="int-card"><div class="int-icons"><span class="int-icon">🔷</span><span class="int-icon">📊</span><span class="int-icon">🟦</span></div><div class="int-label">Track lead conversions</div></div>
|
|
255
|
+
<div class="int-card"><div class="int-icons"><span class="int-icon">📁</span><span class="int-icon">📓</span><span class="int-icon">🟩</span></div><div class="int-label">Create or update records</div></div>
|
|
256
|
+
<div class="int-card"><div class="int-icons"><span class="int-icon">📅</span><span class="int-icon">📞</span><span class="int-icon">🗓️</span></div><div class="int-label">Book more meetings</div></div>
|
|
257
|
+
</div>
|
|
258
|
+
<div style="text-align:center;margin-top:40px"><a class="btn btn-ghost" href="#">View all integrations <span class="arrow">→</span></a></div>
|
|
259
|
+
</div>
|
|
260
|
+
</section>
|
|
261
|
+
|
|
262
|
+
<!-- CTA -->
|
|
263
|
+
<section class="section section-tint">
|
|
264
|
+
<div class="container center-intro" style="margin:0">
|
|
265
|
+
<h2 class="section-title">Make your first form in minutes</h2>
|
|
266
|
+
<a class="btn btn-gold btn-lg" href="#" style="margin-top:8px">Get started <span class="arrow">→</span></a>
|
|
267
|
+
</div>
|
|
268
|
+
</section>
|
|
269
|
+
|
|
270
|
+
<!-- FOOTER -->
|
|
271
|
+
<footer class="footer">
|
|
272
|
+
<div class="footer-inner">
|
|
273
|
+
<div class="footer-top">
|
|
274
|
+
<div>
|
|
275
|
+
<div class="footer-brand">Fillout</div>
|
|
276
|
+
<div class="footer-tagline">The all-in-one form solution</div>
|
|
277
|
+
</div>
|
|
278
|
+
<div class="footer-cols">
|
|
279
|
+
<div class="footer-col"><h4>General</h4><a href="#">Home</a><a href="#">Pricing</a><a href="#">Careers</a><a href="#">Blog</a></div>
|
|
280
|
+
<div class="footer-col"><h4>Product</h4><a href="#">Forms</a><a href="#">Scheduling</a><a href="#">Payments</a><a href="#">Workflows</a></div>
|
|
281
|
+
<div class="footer-col"><h4>AI tools</h4><a href="#">AI Form Builder</a><a href="#">AI Quiz Maker</a><a href="#">AI Survey Maker</a><a href="#">PDF to Form</a></div>
|
|
282
|
+
<div class="footer-col"><h4>Resources</h4><a href="#">Help Center</a><a href="#">Status</a><a href="#">About</a><a href="#">Compare</a></div>
|
|
283
|
+
</div>
|
|
284
|
+
</div>
|
|
285
|
+
<div class="trust-row">
|
|
286
|
+
<span class="trust-pill">🛡️ SOC II Type 2 Compliant</span>
|
|
287
|
+
<span class="trust-pill">🔒 256-bit AES Data encryption</span>
|
|
288
|
+
<span class="trust-pill">🎧 24/5 Support. Here if you need us</span>
|
|
289
|
+
</div>
|
|
290
|
+
</div>
|
|
291
|
+
</footer>
|
|
292
|
+
|
|
293
|
+
</body>
|
|
294
|
+
</html>
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
# Farmville SaaS — Component Recipes
|
|
2
|
+
|
|
3
|
+
Copy-paste HTML + CSS for every signature component. All of them reference the tokens in `tokens.md`
|
|
4
|
+
(paste that `:root` block first). Class names are plain so you can port them into React/Vue/Tailwind
|
|
5
|
+
easily. `assets/starter.html` assembles most of these into one working page.
|
|
6
|
+
|
|
7
|
+
## Table of contents
|
|
8
|
+
1. Floating glass pill nav
|
|
9
|
+
2. Pill buttons (charcoal, gold, ghost, arrow)
|
|
10
|
+
3. Pill badges / eyebrows
|
|
11
|
+
4. Illustrated hero (+ 3 background tiers)
|
|
12
|
+
5. Soft cards & feature-card grid
|
|
13
|
+
6. Colored icon tiles
|
|
14
|
+
7. Workflow / node chips
|
|
15
|
+
8. Logo cloud (grayscale trust bar)
|
|
16
|
+
9. Review / stat cards
|
|
17
|
+
10. Integration grid
|
|
18
|
+
11. Warm-dark footer
|
|
19
|
+
12. Form fields (the product's own surface)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 1. Floating glass pill nav
|
|
24
|
+
|
|
25
|
+
Detached, frosted, hairline-bordered, softly shadowed pill with margin from the top edge.
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<header class="nav-wrap">
|
|
29
|
+
<nav class="nav glass">
|
|
30
|
+
<a class="brand" href="/">Fillout</a>
|
|
31
|
+
<ul class="nav-links">
|
|
32
|
+
<li><a href="#">Products <span class="caret">⌄</span></a></li>
|
|
33
|
+
<li><a href="#">Templates <span class="caret">⌄</span></a></li>
|
|
34
|
+
<li><a href="#">Integrations <span class="caret">⌄</span></a></li>
|
|
35
|
+
<li><a href="#">Pricing</a></li>
|
|
36
|
+
</ul>
|
|
37
|
+
<div class="nav-cta">
|
|
38
|
+
<a class="link-quiet" href="#">Log in</a>
|
|
39
|
+
<a class="btn btn-ink" href="#">Get started <span class="arrow">→</span></a>
|
|
40
|
+
</div>
|
|
41
|
+
</nav>
|
|
42
|
+
</header>
|
|
43
|
+
```
|
|
44
|
+
```css
|
|
45
|
+
.nav-wrap { position: sticky; top: 0; z-index: 50; padding: 16px var(--gutter); display: flex; justify-content: center; }
|
|
46
|
+
.nav {
|
|
47
|
+
width: min(var(--container), 100%);
|
|
48
|
+
display: flex; align-items: center; gap: 24px;
|
|
49
|
+
padding: 10px 12px 10px 24px;
|
|
50
|
+
border-radius: var(--r-full);
|
|
51
|
+
}
|
|
52
|
+
.brand { font-family: var(--font-display); font-weight: 800; font-size: 22px; color: var(--ink); letter-spacing: -0.02em; }
|
|
53
|
+
.nav-links { display: flex; gap: 4px; margin: 0 auto; list-style: none; }
|
|
54
|
+
.nav-links a { display: inline-flex; align-items: center; gap: 4px; padding: 8px 12px; border-radius: var(--r-lg);
|
|
55
|
+
font-size: 15px; font-weight: 500; color: var(--n-700); transition: background var(--dur) var(--ease); }
|
|
56
|
+
.nav-links a:hover { background: #0000000a; }
|
|
57
|
+
.caret { font-size: 11px; color: var(--n-400); }
|
|
58
|
+
.nav-cta { display: flex; align-items: center; gap: 8px; }
|
|
59
|
+
.link-quiet { padding: 8px 12px; font-size: 15px; font-weight: 500; color: var(--n-700); }
|
|
60
|
+
```
|
|
61
|
+
Over the illustrated hero, give the nav a whiter fill: `.nav.on-hero { background: rgba(255,255,255,0.72); }`.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 2. Pill buttons
|
|
66
|
+
|
|
67
|
+
Three variants + the arrow-nudge. Buttons are always fully rounded.
|
|
68
|
+
|
|
69
|
+
```css
|
|
70
|
+
.btn {
|
|
71
|
+
display: inline-flex; align-items: center; gap: 8px;
|
|
72
|
+
padding: 12px 20px; border-radius: var(--r-full);
|
|
73
|
+
font-family: var(--font-body); font-size: 15px; font-weight: 600;
|
|
74
|
+
border: 1px solid transparent; cursor: pointer; white-space: nowrap;
|
|
75
|
+
transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease);
|
|
76
|
+
}
|
|
77
|
+
.btn .arrow { transition: transform var(--dur) var(--ease); }
|
|
78
|
+
.btn:hover .arrow { transform: translateX(3px); }
|
|
79
|
+
|
|
80
|
+
/* Charcoal — the workhorse primary on light backgrounds */
|
|
81
|
+
.btn-ink { background: var(--ink); color: #fff; box-shadow: var(--shadow-sm); }
|
|
82
|
+
.btn-ink:hover { background: #000; box-shadow: var(--shadow-md); transform: translateY(-1px); }
|
|
83
|
+
|
|
84
|
+
/* Honey-gold — the "joy" CTA. Use sparingly (footer hero CTA, key conversion). */
|
|
85
|
+
.btn-gold { background: var(--gold-500); color: var(--ink); font-weight: 700; box-shadow: var(--shadow-sm); }
|
|
86
|
+
.btn-gold:hover { background: var(--gold-700); box-shadow: 0 6px 18px -6px rgba(252,185,0,.6); transform: translateY(-1px); }
|
|
87
|
+
|
|
88
|
+
/* Ghost — white pill with hairline border, secondary actions */
|
|
89
|
+
.btn-ghost { background: #fff; color: var(--ink); border-color: var(--border); box-shadow: var(--shadow-xs); }
|
|
90
|
+
.btn-ghost:hover { border-color: var(--border-strong); box-shadow: var(--shadow-sm); }
|
|
91
|
+
```
|
|
92
|
+
```html
|
|
93
|
+
<a class="btn btn-ink">Get started <span class="arrow">→</span></a>
|
|
94
|
+
<a class="btn btn-gold">Get started <span class="arrow">→</span></a>
|
|
95
|
+
<a class="btn btn-ghost">View all integrations <span class="arrow">→</span></a>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 3. Pill badges / eyebrows
|
|
101
|
+
|
|
102
|
+
Small rounded-full chips with a mini glyph, used to label section intros.
|
|
103
|
+
|
|
104
|
+
```css
|
|
105
|
+
.badge {
|
|
106
|
+
display: inline-flex; align-items: center; gap: 6px;
|
|
107
|
+
padding: 6px 14px; border-radius: var(--r-full);
|
|
108
|
+
background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-xs);
|
|
109
|
+
font-size: 14px; font-weight: 500; color: var(--n-700);
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
```html
|
|
113
|
+
<span class="badge">🔥 Features</span>
|
|
114
|
+
<span class="badge">📋 Forms by Zite</span>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 4. Illustrated hero
|
|
120
|
+
|
|
121
|
+
The #1 signature move. A warm, sunny, hand-illustrated scene behind a centered, two-tone headline.
|
|
122
|
+
|
|
123
|
+
```html
|
|
124
|
+
<section class="hero">
|
|
125
|
+
<div class="hero-art"><!-- background art: see tiers below --></div>
|
|
126
|
+
<div class="hero-inner">
|
|
127
|
+
<span class="badge">📋 Forms by Zite</span>
|
|
128
|
+
<h1 class="hero-h1"><span class="soft">Forms that</span><br>do it all</h1>
|
|
129
|
+
<p class="hero-sub">Make any form with Fillout,<br>the all-in-one form solution.</p>
|
|
130
|
+
<a class="btn btn-ink btn-lg">Get Started <span class="arrow">→</span></a>
|
|
131
|
+
</div>
|
|
132
|
+
</section>
|
|
133
|
+
```
|
|
134
|
+
```css
|
|
135
|
+
.hero { position: relative; overflow: hidden; text-align: center; padding: 120px var(--gutter) 96px; }
|
|
136
|
+
.hero-art { position: absolute; inset: 0; z-index: 0; }
|
|
137
|
+
.hero-inner { position: relative; z-index: 1; max-width: 820px; margin: 0 auto; display: grid; gap: 24px; justify-items: center; }
|
|
138
|
+
.hero-h1 { font-family: var(--font-display); font-weight: 800; font-size: var(--display); line-height: 1.0; letter-spacing: -0.03em; color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,.12); }
|
|
139
|
+
.hero-h1 .soft { color: rgba(255,255,255,0.55); }
|
|
140
|
+
.hero-sub { font-size: var(--text-xl); line-height: 1.5; color: rgba(255,255,255,0.92); font-weight: 400; }
|
|
141
|
+
.btn-lg { padding: 15px 26px; font-size: 16px; }
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Background tiers — pick the highest one you can produce
|
|
145
|
+
|
|
146
|
+
**Tier 1 — commissioned/generated illustration (the real signature).** A painterly, Ghibli/storybook
|
|
147
|
+
scene: bright blue sky, golden-hour cumulus clouds, lush green foliage, a soft sunlit city. Warm,
|
|
148
|
+
optimistic, hand-made. Set as `.hero-art { background: url(...) center/cover; }`. Generation prompt to
|
|
149
|
+
reuse: *"soft anime / Studio-Ghibli style illustration, sunny bright blue sky, big fluffy golden-hour
|
|
150
|
+
cumulus clouds, lush green trees framing the sides, gentle sunlit city buildings, warm optimistic,
|
|
151
|
+
painterly, no text, 16:9."*
|
|
152
|
+
|
|
153
|
+
**Tier 2 — CSS sunny-sky fallback** (no art asset). A blue gradient sky with a soft sun glow and
|
|
154
|
+
optional SVG clouds:
|
|
155
|
+
```css
|
|
156
|
+
.hero-art {
|
|
157
|
+
background:
|
|
158
|
+
radial-gradient(60% 50% at 78% 22%, rgba(255,241,204,0.9), transparent 60%), /* sun glow */
|
|
159
|
+
linear-gradient(180deg, #3f9fe0 0%, #6cc0f5 55%, #a9dbfb 100%); /* sky */
|
|
160
|
+
}
|
|
161
|
+
.hero-art::after { /* soft cloud */
|
|
162
|
+
content: ""; position: absolute; right: 8%; bottom: 18%; width: 320px; height: 120px;
|
|
163
|
+
background: radial-gradient(ellipse 60% 60% at 30% 60%, #fff, transparent 70%),
|
|
164
|
+
radial-gradient(ellipse 50% 70% at 65% 50%, #fff, transparent 70%);
|
|
165
|
+
filter: blur(2px); opacity: .95;
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Tier 3 — warm minimal wash** (fastest, still on-brand). Cream/gold radial glow on off-white; use ink
|
|
170
|
+
headline instead of white:
|
|
171
|
+
```css
|
|
172
|
+
.hero-art { background: radial-gradient(80% 70% at 50% -10%, var(--gold-tint), var(--n-50) 60%); }
|
|
173
|
+
/* then: .hero-h1 { color: var(--ink); } .hero-h1 .soft { color: var(--n-400); } .hero-sub { color: var(--n-500); } */
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Under the hero, Fillout floats a product screenshot on a big `--r-3xl` card with `--shadow-xl`,
|
|
177
|
+
overlapping the section boundary — a nice touch: `margin-bottom: -80px; position: relative; z-index: 2`.
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 5. Soft cards & feature-card grid
|
|
182
|
+
|
|
183
|
+
```css
|
|
184
|
+
.card {
|
|
185
|
+
background: var(--surface); border: 1px solid var(--border);
|
|
186
|
+
border-radius: var(--r-3xl); padding: 32px;
|
|
187
|
+
box-shadow: var(--shadow-card);
|
|
188
|
+
transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
|
|
189
|
+
}
|
|
190
|
+
.card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
|
|
191
|
+
.card h3 { font-size: var(--text-2xl); font-weight: 700; letter-spacing: -0.02em; color: var(--ink); margin: 0 0 8px; }
|
|
192
|
+
.card p { color: var(--text-muted); font-size: var(--text-lg); line-height: 1.5; margin: 0; }
|
|
193
|
+
|
|
194
|
+
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
|
|
195
|
+
@media (max-width: 820px) { .grid-2 { grid-template-columns: 1fr; } }
|
|
196
|
+
```
|
|
197
|
+
The card border is always the uniform `1px solid var(--border)` on all four sides. **Never** add a
|
|
198
|
+
thicker or colored side border (`border-left: 3px solid …` status stripes, edge accents) — it breaks
|
|
199
|
+
the soft, even frame. To mark status/category on a card or list chip, put a pill (`.badge`) or a small
|
|
200
|
+
colored dot inside the card instead.
|
|
201
|
+
Section intro pattern (centered): badge → big title → one-line subhead, then the grid.
|
|
202
|
+
```html
|
|
203
|
+
<section class="section section-tint">
|
|
204
|
+
<div class="container center-intro">
|
|
205
|
+
<span class="badge">🔥 Features</span>
|
|
206
|
+
<h2 class="section-title">It all starts with a form</h2>
|
|
207
|
+
<p class="section-sub">Build the exact form you need, in minutes.</p>
|
|
208
|
+
</div>
|
|
209
|
+
<div class="container grid-2"> …cards… </div>
|
|
210
|
+
</section>
|
|
211
|
+
```
|
|
212
|
+
```css
|
|
213
|
+
.section { padding: var(--section-y) 0; }
|
|
214
|
+
.section-tint { background: var(--bg-section); }
|
|
215
|
+
.container { width: min(var(--container), 100%); margin: 0 auto; padding: 0 var(--gutter); }
|
|
216
|
+
.center-intro { text-align: center; display: grid; gap: 16px; justify-items: center; margin-bottom: 48px; }
|
|
217
|
+
.section-title { font-size: var(--text-5xl); font-weight: 800; letter-spacing: -0.025em; color: var(--ink); }
|
|
218
|
+
.section-sub { font-size: var(--text-xl); color: var(--text-muted); }
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## 6. Colored icon tiles
|
|
224
|
+
|
|
225
|
+
Rounded-square tiles with a pale-tint background and a colored glyph. Used in cards, nodes, and feature
|
|
226
|
+
lists.
|
|
227
|
+
|
|
228
|
+
```css
|
|
229
|
+
.tile { width: 40px; height: 40px; border-radius: var(--r-xl); display: grid; place-items: center; font-size: 20px; }
|
|
230
|
+
.tile-violet { background: var(--violet-tint); color: var(--violet); }
|
|
231
|
+
.tile-green { background: var(--green-tint); color: var(--green); }
|
|
232
|
+
.tile-gold { background: var(--gold-tint2); color: var(--gold-700); }
|
|
233
|
+
.tile-sky { background: var(--sky-tint); color: var(--sky); }
|
|
234
|
+
.tile-coral { background: var(--coral-tint); color: var(--coral); }
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## 7. Workflow / node chips
|
|
240
|
+
|
|
241
|
+
Small connected cards, each a white pill-ish card with an icon tile + title + subtitle. Great for
|
|
242
|
+
"automation" product mockups.
|
|
243
|
+
|
|
244
|
+
```html
|
|
245
|
+
<div class="node">
|
|
246
|
+
<span class="tile tile-violet">✦</span>
|
|
247
|
+
<div><div class="node-title">AI action</div><div class="node-sub">Qualify lead</div></div>
|
|
248
|
+
</div>
|
|
249
|
+
```
|
|
250
|
+
```css
|
|
251
|
+
.node { display: inline-flex; align-items: center; gap: 12px; background: #fff;
|
|
252
|
+
border: 1px solid var(--border); border-radius: var(--r-2xl); padding: 12px 16px; box-shadow: var(--shadow-sm); }
|
|
253
|
+
.node-title { font-weight: 600; font-size: 15px; color: var(--ink); }
|
|
254
|
+
.node-sub { font-size: 13px; color: var(--text-muted); }
|
|
255
|
+
```
|
|
256
|
+
Connect nodes with 2px `--n-300` lines/curved SVG paths. A "Publish ⚡" chip uses `.badge` with gold fill.
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## 8. Logo cloud (grayscale trust bar)
|
|
261
|
+
|
|
262
|
+
Muted, single-tone logos for social proof.
|
|
263
|
+
|
|
264
|
+
```css
|
|
265
|
+
.logo-cloud { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 48px; }
|
|
266
|
+
.logo-cloud img, .logo-cloud .logo { opacity: .55; filter: grayscale(1); height: 28px; transition: opacity var(--dur) var(--ease); }
|
|
267
|
+
.logo-cloud img:hover { opacity: .8; }
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## 9. Review / stat cards
|
|
273
|
+
|
|
274
|
+
White cards with a source row, a big number, and gold stars.
|
|
275
|
+
|
|
276
|
+
```html
|
|
277
|
+
<div class="card stat-card">
|
|
278
|
+
<div class="stat-head"><span class="tile tile-coral">G</span> Business reviews</div>
|
|
279
|
+
<div class="stat-num">5/5</div>
|
|
280
|
+
<div class="stars">★★★★★</div>
|
|
281
|
+
</div>
|
|
282
|
+
```
|
|
283
|
+
```css
|
|
284
|
+
.stat-card { display: grid; gap: 12px; }
|
|
285
|
+
.stat-head { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ink); }
|
|
286
|
+
.stat-num { font-family: var(--font-display); font-size: var(--text-5xl); font-weight: 700; letter-spacing: -0.02em; color: var(--ink); }
|
|
287
|
+
.stars { color: var(--gold-500); font-size: 20px; letter-spacing: 2px; }
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 10. Integration grid
|
|
293
|
+
|
|
294
|
+
Cards each holding 2–3 app icons (rounded-square white tiles) with a label below.
|
|
295
|
+
|
|
296
|
+
```css
|
|
297
|
+
.int-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; }
|
|
298
|
+
.int-card { background: #fff; border: 1px solid var(--border); border-radius: var(--r-2xl); padding: 20px; box-shadow: var(--shadow-card); text-align: center; }
|
|
299
|
+
.int-icons { display: flex; justify-content: center; gap: 8px; margin-bottom: 16px; }
|
|
300
|
+
.int-icon { width: 56px; height: 56px; border-radius: var(--r-xl); background: #fff; border: 1px solid var(--border); display: grid; place-items: center; box-shadow: var(--shadow-xs); }
|
|
301
|
+
.int-label { font-weight: 600; color: var(--ink); font-size: 15px; }
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## 11. Warm-dark footer
|
|
307
|
+
|
|
308
|
+
Near-black surface, **amber logo**, muted-gray link columns, pill trust badges.
|
|
309
|
+
|
|
310
|
+
```css
|
|
311
|
+
.footer { background: var(--ink); color: var(--n-400); padding: 80px var(--gutter) 40px; }
|
|
312
|
+
.footer-inner { width: min(var(--container), 100%); margin: 0 auto; }
|
|
313
|
+
.footer-brand { font-family: var(--font-display); font-weight: 800; font-size: 28px; color: var(--gold-500); }
|
|
314
|
+
.footer-tagline { color: var(--n-500); margin-top: 8px; }
|
|
315
|
+
.footer-cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
|
|
316
|
+
.footer-col h4 { color: var(--n-400); font-size: 14px; font-weight: 600; margin-bottom: 16px; font-family: var(--font-body); letter-spacing: 0.02em; }
|
|
317
|
+
.footer-col a { display: block; color: var(--n-300); font-size: 15px; padding: 6px 0; transition: color var(--dur) var(--ease); }
|
|
318
|
+
.footer-col a:hover { color: #fff; }
|
|
319
|
+
.trust-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; padding-top: 32px; border-top: 1px solid #ffffff1a; }
|
|
320
|
+
.trust-pill { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: var(--r-full); background: #ffffff0d; color: var(--n-400); font-size: 14px; }
|
|
321
|
+
```
|
|
322
|
+
The footer's primary "Get started →" CTA is the **gold** variant — this is the one place gold headlines a
|
|
323
|
+
dark surface and it sings.
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## 12. Form fields (the product's own surface)
|
|
328
|
+
|
|
329
|
+
For the app/product UI itself, keep fields soft and friendly.
|
|
330
|
+
|
|
331
|
+
```css
|
|
332
|
+
.field label { display: block; font-size: 14px; font-weight: 500; color: var(--n-700); margin-bottom: 6px; }
|
|
333
|
+
.field input, .field textarea {
|
|
334
|
+
width: 100%; padding: 12px 14px; border-radius: var(--r-md);
|
|
335
|
+
border: 1px solid var(--border-strong); background: #fff; font: 400 15px var(--font-body); color: var(--ink);
|
|
336
|
+
transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
|
|
337
|
+
}
|
|
338
|
+
.field input:focus, .field textarea:focus { outline: none; border-color: var(--gold-500); box-shadow: var(--ring-gold); }
|
|
339
|
+
.field input::placeholder { color: var(--text-faint); }
|
|
340
|
+
```
|