Commit Graph
1300 Commits
Author SHA1 Message Date
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 dd73a8a50a fix: resolve 41 bugs and wire 21 unimplemented features in image editor
Canvas rendering:
- Fix Konva filter application order (filters before cache)
- Implement 6 missing filters (motionBlur, radialBlur, surfaceBlur, vignette, grain, sharpen)
- Implement exposure, vibrance, warmth adjustments as custom Konva filters
- Apply layer blend modes via globalCompositeOperation
- Apply object effects (drop shadow, outer glow, stroke) to all shapes
- Mount SmartGuidesOverlay during move tool drag
- Clip pixel grid to visible viewport (200-line cap for performance)

Store logic:
- resizeImage now scales all objects proportionally (points, radii, fontSize)
- rotate/flip/trim handle line/arrow points arrays and center-based objects
- applyCrop creates cropped source image via offscreen canvas
- invertSelection creates mask from bounds when no mask exists
- cutObjects uses single atomic set() to prevent race conditions
- sendToBack respects layer ordering in multi-layer documents
- Add batchNudge() and commitHistory() for undoable nudge operations
- Add updateLayerThumbnail() method

Tool hooks:
- Fix clone stamp/dodge/burn perf (toDataURL only on mouseUp, not every move)
- Fix magic wand zoom/pixelRatio with explicit stage.toCanvas() viewport
- Fix eyedropper sampling with unzoomed canvas export
- Fix selection tool stale closure via isDrawingRef
- Implement polygonal lasso (click-to-place vertices, double-click to close)
- Implement selection subtract mode (geometric and mask-based)
- Implement gradient live preview during drag
- Fix transform/move tool to persist changes and handle ellipse/polygon/star

UI wiring:
- Mount rulers and guidelines in editor page
- Wire histogram with live canvas imageData
- Wire autosave recovery with blob-to-dataURL conversion
- Wire fill dialog to Shift+Backspace shortcut
- Wire eyedropper and transform options to options bar
- Fix history panel undo/redo button reactive state via useSyncExternalStore
- Fix layer row name click to select layer (timer-based click/dblclick)
- Fix zoom animation coordinate drift with progressive store sync
- Fix copy merged to use Konva stage composite export

Tests:
- 49 new unit tests (store fixes + konva filters)
- 8 new E2E test files with 39 test cases
2026-05-08 16:43:27 +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
SnapOtter 07003b7ba3 feat(videos): add ShieldIcon SVG component with evolvePath draw animation 2026-05-08 16:34:26 +08:00
SnapOtter 3d9324b82a chore: update tool count to 50 across all references 2026-05-08 16:33:12 +08:00
SnapOtter 466ef1efb1 docs(beautify): add API docs, OpenAPI spec, LLM docs, update README
Add beautify tool endpoint to OpenAPI spec with full parameter
documentation. Add tool to REST API docs Layout & Composition table.
Update tool count from 49 to 50 across README, docs homepage,
architecture docs, VitePress config, OpenAPI spec, and LLM docs
generator.
2026-05-08 16:31:43 +08:00
SnapOtter ac67b8471d feat(videos): add AiMagicReel before/after transformation composition 2026-05-08 16:30:31 +08:00
SnapOtter 53b717243b fix(meme-generator): add opentype.js types, fix no-dropzone registry test 2026-05-08 16:29:44 +08:00
SnapOtter 664605ff7f docs: add Remotion promo videos implementation plan
16 tasks covering audio infrastructure, 10 new shared components,
3 compositions (X Launch 7 scenes, Product Demo 8 scenes, Promo Teaser
5 scenes + vertical variant), render script, and verification.
2026-05-08 16:28:51 +08:00
SnapOtter 0deea29c37 test(beautify): add Playwright E2E tests 2026-05-08 16:28:12 +08:00
SnapOtter 9497e0b7fc feat(beautify): add frontend settings component with presets and live preview 2026-05-08 16:26:09 +08:00
SnapOtter 54a73e1791 feat(videos): add PipelineFlow composition with batch mode 2026-05-08 16:24:28 +08:00
SnapOtter 136a4a0752 Merge branch 'feat/format-support-expansion'
# Conflicts:
#	README.md
#	apps/web/src/components/layout/app-layout.tsx
2026-05-08 16:21:11 +08:00
SnapOtter 7650844c8f test(beautify): add comprehensive integration tests 2026-05-08 16:20:44 +08:00
SnapOtter b5c75610eb feat(meme-generator): add frontend component with gallery, editor, and result phases 2026-05-08 16:19:06 +08:00
SnapOtter a90ba372df feat(beautify): add HTTP route, process pipeline, and pipeline registration 2026-05-08 16:17:17 +08:00
SnapOtter 6ec3a51fa4 feat(meme-generator): add meme generation API route with template and custom image modes
Custom route handler supporting template mode (JSON body with templateId)
and custom image mode (multipart upload). Registers process function for
pipeline compatibility. Includes 18 integration tests.
2026-05-08 16:13:34 +08:00
SnapOtter 69e107fbab feat(beautify): add device frame assets and PNG frame compositing 2026-05-08 16:12:46 +08:00
SnapOtter 447ef3a07e feat(videos): add shared animation components (grain, clip reveal, tool pill, counter, etc.) 2026-05-08 16:12:05 +08:00
SnapOtter dfeb358bb8 feat(videos): add motion design system, colors, fonts, and tools data 2026-05-08 16:11:57 +08:00
SnapOtter 3d60c13a4a docs: add Remotion promotional videos design spec
Three standalone promo videos for SnapOtter: X launch announcement
(dark, 1080x1080, 35s), product demo walkthrough (light, 1920x1080,
75s), and Apple-keynote-style teaser (dark, 1080x1080 + 1080x1920,
20s). Shares design system with landing page videos spec.
2026-05-08 16:10:54 +08:00
SnapOtter d8c1fdf5c2 feat(beautify): add SVG frame generators (macOS, Windows, browser) 2026-05-08 16:09:31 +08:00
SnapOtter ddcead66fb feat(videos): scaffold Remotion workspace with React 18 and Tailwind v3 2026-05-08 16:06:46 +08:00
SnapOtter 39358524cd feat(beautify): add shadow rendering (extracted from border.ts pattern) 2026-05-08 16:06:37 +08:00
SnapOtter b0cb17ff55 feat(meme-generator): add template listing and static serving endpoints 2026-05-08 16:05:17 +08:00
SnapOtter b13df56273 feat(beautify): add background generation (solid, gradient, image, transparent) 2026-05-08 16:04:34 +08:00
SnapOtter 3d103d5092 test(meme-generator): add template manifest validation tests 2026-05-08 16:03:21 +08:00
SnapOtter 2eef1f45f9 feat(beautify): add Zod schema, shadow presets, social dimensions 2026-05-08 16:01:55 +08:00
SnapOtter 9dff59c400 feat(meme-generator): add text renderer with opentype.js SVG path generation 2026-05-08 16:01:46 +08:00
SnapOtter 8f10b62898 feat(beautify): add tool definition and i18n strings 2026-05-08 15:58:10 +08:00
SnapOtter 086a386d53 feat(meme-generator): add 100 meme templates with manifest and asset pipeline
Includes full-size images, WebP thumbnails, curated text box positions for
18 popular templates, and default top/bottom layout for the rest.
2026-05-08 15:57:36 +08:00