Commit Graph
741 Commits
Author SHA1 Message Date
SnapOtter 0dbf300ef2 Merge branch 'feat/remotion-promo-videos'
# Conflicts:
#	pnpm-lock.yaml
2026-05-08 21:29:19 +08:00
SnapOtter 7d7df194bc feat: add pipeline import from JSON file
Add import button to saved pipelines section with file picker,
validation, and error display with auto-dismiss. Section now
always renders with empty state text when no pipelines exist.
2026-05-08 20:59:25 +08:00
SnapOtter e5939f7b5a feat: add pipeline export as JSON file 2026-05-08 20:55:48 +08:00
SnapOtter e7001df047 fix: add ImageData type assertion for barcode reader typecheck 2026-05-08 19:08:38 +08:00
SnapOtter aa773addb4 merge: resolve conflict with main branch in tool-registry.tsx 2026-05-08 18:55:28 +08:00
SnapOtter c57d284232 fix(videos): enhance ambient compositions visibility and atmosphere
- FloatingTools: increase layer opacities (back 0.12, mid 0.22, front 0.35),
  add depth-of-field blur (1px back, 0.5px mid), radial vignette overlay,
  increase X oscillation amplitude from 3px to 8px
- BrandGradient: add center SnapOtter logo with subtle scale pulse, scatter
  faint tool names at 5% opacity for texture, add radial vignette
- FormatUniverse: replace buggy ghost badge duplicates with proper CSS opacity
  trail (3 copies at decreasing opacity: 1.0, 0.3, 0.1), increase logo pulse
  from 3% to 5% scale oscillation, add faint elliptical SVG orbit ring lines
  at 5% opacity behind each ring
2026-05-08 18:48:57 +08:00
SnapOtter f44c1a1d10 fix(videos): speed up The48 montage and fix micro-viz timing
- Reduce per-tool time from 15 to 10 frames (total montage: 480 frames)
- Update total composition duration from 840 to 600 frames in Root.tsx
- Increase micro-visualization from 2 to 4 frames for visibility
- Add varied entry paths: diagonal entries from all 8 directions instead
  of just left/right/top
- Adjust all act timings (grid pulse, category labels, tagline) to match
  the compressed timeline
2026-05-08 18:48:44 +08:00
SnapOtter 9affd784c4 fix(videos): improve ToolPill depth, visibility, and polish
- ToolPill: add box-shadow (0 2px 8px), gradient overlay for glossy depth,
  subtle white border for definition
- ToolGalaxy: fix tagline so counter number appears before "tools. Zero cloud
  dependency." text instead of being separated
2026-05-08 18:48:32 +08:00
SnapOtter a44214cc6d fix(videos): replace gradient mockups with real photos in compositions
Use real screenshots and sample photos from apps/videos/public/screenshots/
instead of CSS-gradient PhotoPlaceholder components:

- PipelineFlow: landscape photo for thumbnails with object-position variation
- AiMagicReel: portrait photo for bg removal, B&W photo for colorization,
  landscape for super resolution and restoration segments
- PrivacyPromise: real portrait/landscape/B&W photos in shield, larger padlock
- OneCommand: real app-full.png screenshot instead of wireframe AppMockup,
  increased amber glow to 12%
- CloudVsLocal: real portrait photos for all thumbnails, larger server icons
  (36px), amplified shake (5px) and vibrate (3px), escalated red tint overlay
- ShieldIcon: increased stroke width to 3.5px, added gradient fill
2026-05-08 18:48:22 +08:00
SnapOtter 4235510e5a fix(meme-generator): increase text box padding to prevent glyph overshoot clipping 2026-05-08 18:44:56 +08:00
SnapOtter fa352f837b fix(videos): anchor dashboard screenshots to left side for square videos 2026-05-08 18:42:57 +08:00
SnapOtter c17d540072 feat(videos): redesign all scenes with real app screenshots and proper scaling 2026-05-08 18:37:36 +08:00
SnapOtter f58c45138a fix(meme-generator): add padding to prevent stroke clipping at text box edges 2026-05-08 18:27:46 +08:00
SnapOtter d807a6ef45 fix(meme-generator): reduce auto font size cap to match preview proportions 2026-05-08 18:20:41 +08:00
SnapOtter dac30f14f0 fix(meme-generator): match preview and server render text sizing
- Preview font size now calculated from actual container width, not viewport
- Preview stroke scales proportionally with font size (4% ratio)
- Server stroke reduced from 6% to 4% to match preview
- Added ResizeObserver to track container width for accurate sizing
- Added paint-order: stroke fill to CSS preview for consistent rendering
2026-05-08 18:17:17 +08:00
SnapOtter 86e1fdeef5 feat(videos): render all 10 landing page compositions (MP4 + WebM + poster) 2026-05-08 17:47:11 +08:00
SnapOtter 7acaf26b15 fix(videos): add @/ path alias to render script webpack config 2026-05-08 17:47:04 +08:00
SnapOtter a157af2ea9 fix(meme-generator): auto-sizer now checks line width, preventing text overflow 2026-05-08 17:44:48 +08:00
SnapOtter 0c1980c6db fix(meme-generator): cap auto font size, center text vertically, fix sidebar truncation
- Auto font size now capped at min(200, boxHeight/2, boxWidth/3) to prevent
  oversized text on server render
- Text vertically centered within each text box
- Sidebar color labels shortened (Text/Stroke) with min-w-0 to prevent overflow
2026-05-08 17:42:04 +08:00
SnapOtter f5ea95e9e6 feat(videos): wire BackgroundMusic into all 3 promo compositions
Tracks from Mixkit (royalty-free, no attribution required):
- PromoTeaser: "Life's a Movie" by Arulo (50% vol)
- XLaunchVideo: "Techno Fest Vibes" by A.M. (40% vol)
- ProductDemo: "Rising Forest" by Diego Nava (30% vol)
2026-05-08 17:41:42 +08:00
SnapOtter 66dfad8122 fix(meme-generator): fix preview collapse from inline-block + container query
The containerType: inline-size CSS containment prevented the image from
expanding its parent container, causing the preview to render at 0x0px.
Removed inline-block and containerType, switched font sizing to vw units.
2026-05-08 17:38:12 +08:00
SnapOtter e118717337 merge: resolve conflict with main branch in README.md 2026-05-08 17:32:16 +08:00
SnapOtter 7ee9bdd0f7 feat(landing): add LandingVideo component with lazy loading and accessibility 2026-05-08 17:18:07 +08:00
SnapOtter f7531e19aa feat(videos): add render-all script for dual-format batch rendering 2026-05-08 17:17:53 +08:00
SnapOtter 1569cc26f2 fix(meme-generator): split into settings + preview panels, fix thumbnail URLs
- Created meme-store.ts Zustand store for shared state between panels
- Split monolithic component into meme-generator-preview.tsx (main area)
  and meme-generator-settings.tsx (sidebar)
- Added ResultsPanel to tool registry entry
- Fixed thumbnail URLs (.jpg -> .webp extension)
- Fixed text overlay sizing and positioning
2026-05-08 17:16:45 +08:00
SnapOtter b970bd0f0a feat(videos): add CloudVsLocal split-screen privacy showcase
5-act composition (540 frames, 1920x1080): split screen with cloud vs
local comparison, escalating chaos on the cloud side while local stays
calm, resolving to full-screen "Your images never leave your network."

Also updates Root.tsx to register all 10 landing page compositions,
removes ComponentTest, and resolves merge conflict markers.
2026-05-08 17:15:53 +08:00
SnapOtter 9a4be31154 feat(videos): add OneCommand hero composition with terminal-to-app morph
Restore missing landing page compositions (FloatingTools, BrandGradient,
FormatUniverse) lost during branch merge, and fix the @/ path alias in
remotion webpack config to support all composition imports.
2026-05-08 17:15:28 +08:00
SnapOtter 68ed34ec29 fix(meme-generator): split into settings + preview panels with shared Zustand store
The meme generator had everything in one component crammed into the
narrow right sidebar. This splits it into the proper two-panel
architecture (like collage/qr-generate):

- meme-store.ts: shared Zustand store for all meme state and actions
- meme-generator-preview.tsx: ResultsPanel (main area) with gallery,
  layout picker, editor preview with CSS text overlay, and result view
- meme-generator-settings.tsx: Settings sidebar with text inputs, font
  picker, colors, alignment, and generate button
- tool-registry.tsx: adds ResultsPanel to the meme-generator entry

Also fixes text overlay sizing (reduced from 0.6cqi to 0.45cqi with
smaller stroke width) and moves font injection to a standalone function
callable from either component.
2026-05-08 17:15:06 +08:00
SnapOtter 736c2de057 chore(videos): merge base workspace files into promo videos branch 2026-05-08 17:10:00 +08:00
SnapOtter 42e1747178 feat(videos): add batch render script for all promo compositions 2026-05-08 16:50:45 +08:00
SnapOtter ce86a4a100 feat(videos): add Product Demo scenes 1-8 and composition
Eight scenes replicating the SnapOtter UI in light theme: Dashboard
overview with search filtering, single tool resize flow, batch
processing with staggered progress, pipeline builder, AI tools
(bg removal, upscale, OCR), image editor, API docs, and end card.
2026-05-08 16:49:46 +08:00
SnapOtter 1a34acd56d feat(videos): add The48 rapid montage showcase composition 2026-05-08 16:49:34 +08:00
SnapOtter d59be53709 feat(videos): add XLaunchVideo composition with all 7 scenes 2026-05-08 16:44:54 +08:00
SnapOtter 30ad822853 feat(videos): add X Launch scenes 5-7 (Privacy, Features, CTA) 2026-05-08 16:44:46 +08:00
SnapOtter fe4309bad9 feat(videos): add ToolGalaxy hero composition with burst, orbit, and grid phases 2026-05-08 16:44:13 +08:00
SnapOtter ccf4653b96 feat(videos): add X Launch scenes 1-4 (Hook, Terminal, ToolGrid, AI) 2026-05-08 16:43:54 +08:00
SnapOtter 85acce7e16 feat(videos): add PromoTeaser square and vertical compositions 2026-05-08 16:41:44 +08:00
SnapOtter 210bf9cded feat(videos): add all 5 Promo Teaser scene components 2026-05-08 16:41:04 +08:00
SnapOtter 666880b158 fix: add missing Color Blindness Simulation and Beautify to landing page tool list 2026-05-08 16:39:48 +08:00
SnapOtter 7ff96a6515 feat(videos): add ToolGrid and BeforeAfter components 2026-05-08 16:39:03 +08:00
SnapOtter 43fbb23f19 feat(videos): add LogoReveal and GitHubCTA components 2026-05-08 16:38:39 +08:00
SnapOtter 72b0077a57 feat(videos): add OneCommand hero composition with terminal-to-app morph 2026-05-08 16:38:28 +08:00
SnapOtter 818348beac feat(videos): add AppMockup simplified UI component 2026-05-08 16:38:23 +08:00
SnapOtter c0e769c1fa feat(videos): add TerminalWindow component with macOS chrome 2026-05-08 16:38:18 +08:00
SnapOtter 41a3b9a97b feat(videos): add RotatingTaglines and GradientMesh components 2026-05-08 16:38:03 +08:00
SnapOtter 1702492ef3 feat(videos): add FeaturePill, ProgressBar, NumberPunch components 2026-05-08 16:37:41 +08:00
SnapOtter e3187f1740 feat(videos): add Terminal component with typing + output animation 2026-05-08 16:37:16 +08:00
SnapOtter e8e5cfde39 feat(videos): add AppWindow component with macOS traffic light chrome 2026-05-08 16:37:00 +08:00
SnapOtter ac33e4ac3c feat(videos): add BackgroundMusic component with fade-in/fade-out 2026-05-08 16:35:31 +08:00
SnapOtter 89eec108fe feat(videos): add PrivacyPromise hero loop with shield draw animation 2026-05-08 16:34:30 +08:00