diff --git a/.needle-predispatch-sha b/.needle-predispatch-sha index 0b4f85c..6e91a11 100644 --- a/.needle-predispatch-sha +++ b/.needle-predispatch-sha @@ -1 +1 @@ -f0639a6e36c5252bf95380dc6c6117d389f6eaae +524c02488fffe468318df33d8886a1b77511a31b diff --git a/web/src/pages/clip-maker.ts b/web/src/pages/clip-maker.ts index 574c1f7..5caab41 100644 --- a/web/src/pages/clip-maker.ts +++ b/web/src/pages/clip-maker.ts @@ -12,14 +12,16 @@ interface SocialPreset { height: number; ratio: string; icon: string; + format: 'mp4' | 'gif'; + target: string; } const SOCIAL_PRESETS: SocialPreset[] = [ - { name: 'Twitter / X', width: 1280, height: 720, ratio: '16:9', icon: '๐•' }, - { name: 'Instagram Square', width: 1080, height: 1080, ratio: '1:1', icon: 'โ–ฃ' }, - { name: 'Instagram Story', width: 1080, height: 1920, ratio: '9:16', icon: 'โ—ฑ' }, - { name: 'TikTok / Reels', width: 1080, height: 1920, ratio: '9:16', icon: 'โ–ถ' }, - { name: 'YouTube Shorts', width: 1080, height: 1920, ratio: '9:16', icon: 'โ–ท' }, + { name: 'Landscape', width: 1920, height: 1080, ratio: '16:9', icon: '๐Ÿ–ฅ๏ธ', format: 'mp4', target: 'YouTube, Twitter, Discord' }, + { name: 'Square', width: 1080, height: 1080, ratio: '1:1', icon: 'โฌœ', format: 'mp4', target: 'Twitter, Instagram feed' }, + { name: 'Portrait', width: 1080, height: 1920, ratio: '9:16', icon: '๐Ÿ“ฑ', format: 'mp4', target: 'TikTok, YouTube Shorts, IG Stories' }, + { name: 'GIF (compact)', width: 640, height: 360, ratio: '16:9', icon: '๐ŸŽž๏ธ', format: 'gif', target: 'Discord embeds, forums' }, + { name: 'GIF (square)', width: 480, height: 480, ratio: '1:1', icon: '๐Ÿ–ผ๏ธ', format: 'gif', target: 'Twitter, Slack' }, ]; // Preview scale: limit longest side to 360px @@ -39,13 +41,13 @@ export function renderClipMakerPage(_params: Record): void { function buildHTML(): string { const presetOptions = SOCIAL_PRESETS.map((p, i) => - ``, + ``, ).join(''); return `

Clip Maker

-

Export replay highlights as MP4 or animated GIF, sized for social media.

+

Export replay highlights as MP4 or animated GIF with 5 social media format presets.

@@ -69,6 +71,7 @@ function buildHTML(): string { ${presetOptions}
+