Communitygithub.com

視差滾動登陸頁面

將一段短影片轉換為滾動驅動的電影感一頁式登陸頁面,使用者的滾動動作會逐幀撥放影片,同時五段戲劇性文字淡入淡出。

視差滾動登陸頁面 是什麼?

這個技能可以將一段 5–15 秒的短影片(通常是 AI 生成的)轉換為一個單頁、全螢幕的電影感登陸頁面。頁面使用自訂的視差滾動效果:使用者滾動時,影片會逐幀播放(頁面本身不滾動),同時五段精心編排的文字場景會根據滾動進度淡入淡出。技能會自動以高品質 JPEG (q:v 2) 提取所有幀,並生成一個包含 Anton (標題)、Caveat (手寫風) 和 Inter (內文) 字型的 HTML 頁面,搭配金色/琥珀色/重點色/奶油色的配色方案。支援兩種模式:獨立建立新頁面,或整合到現有的展示畫廊(如 `examples/parasites/`)。技能適用於 Claude Code、Cursor 等支援 Markdown 技能定義的 AI 代理平台,工作流程包含四個階段:確認需求、提取幀、撰寫頁面、配置資源。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Karthic1981/hoodini-ai-agents-skills.gitni-ai-agents-skills/tree/HEAD/skills/parallax-landing-page

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

視差登陸頁面

將一段短影片轉換為單螢幕的電影感登陸頁面,使用者的滾動動作會逐幀撥放影片,同時五段戲劇性文字場景淡入淡出。文件實際上不會滾動——滑鼠滾輪/觸控/鍵盤輸入會由 JavaScript 攔截並轉換為虛擬幀進度。

此技能編碼了在 ../../examples/parasites/ 中捆綁參考中驗證的模式(github / lion / hope 登陸頁面——使用此技能建構的三個工作頁面)。如果任何內容含糊不清,請將該資料夾視為真理來源。

此技能在 YUV.AI 金字塔中的位置

parallax-landing-page 位於 YUV.AI 技能金字塔的中層,與 yuv-design-system、yuv-decks、yuv-viral-video 和 video-to-landing-page 並列。頂層協調器 yuv-pilot 會在需要將 5–15 秒影片剪輯轉為單一英雄滾動撥放登陸頁面時路由至此。

此技能帶有自己的視覺語言(Anton + Caveat + Inter,金色/琥珀色/重點色/奶油色調色板)——它不會呼叫 yuv-design-system。兩個系統共存:yuv-design-system 擁有整個網站/應用程式/簡報表面的品牌調色板,而 parallax-landing-page 則專門擁有電影感滾動撥放美學。對於 YUV.AI 視差登陸頁面,您可以選擇性地在頁尾區域添加鳳凰浮水印和規範的 Linktree URL 作為品牌貫穿線——請參閱 yuv-design-system/assets/ 中的浮水印檔案。不要將 Anton/Caveat 字型組合替換為設計系統的 Neon 調色板——這會失去招牌外觀。

您在建構的內容

每個登陸頁面都是一個鎖定的視口,包含:

  • 填滿螢幕的畫布,一次繪製一幀(cover-fit,DPR ≤ 2)
  • 5 個絕對定位的文字場景(前導 + 大寫 Anton 標題 + Caveat 手寫行),每個都有自己的滾動進度視窗
  • 帶有 PARALLAX // showcase Logo 和連結到兄弟登陸頁面的固定導覽列
  • 一個載入器,在讓使用者互動之前預載所有幀
  • 暗角 + 膠片顆粒疊加層
  • 一個底部滾動提示,在使用者開始滾動後淡出
  • 一個右下角幀計數器(例如 073 / 145)
  • 最後一個場景就是行動呼籲區塊——沒有單獨的 .end 區塊

以 q:v 2 的總重量:每幀大約 120–220 KB × 幀數。一個 6 秒 24fps 的剪輯 = 145 幀 ≈ 25 MB。一個 10 秒的剪輯 = 241 幀 ≈ 53 MB。

儲存位置

預設: ~/Documents/yuv-projects/landings/<slug>/ ——始終將獨立登陸頁面儲存在此處,以便您之後可以再次找到它們。僅在使用者明確選擇不同位置或選擇模式 B(整合到現有的 examples/parasites/ 展示中)時才覆蓋。

mkdir -p ~/Documents/yuv-projects/landings
cd ~/Documents/yuv-projects/landings
# 技能會在此建立 <slug>/ 並提取幀和建構 HTML。

最終路徑(模式 A——獨立):~/Documents/yuv-projects/landings/<slug>/。 最終路徑(模式 B——整合):使用者選擇的現有展示目錄。

在每次建構結束時將最終路徑告訴使用者。


工作流程

有四個階段。不要跳過階段——每個階段都為下一個階段提供輸入。

階段 1——探索

與使用者確認:

  1. 影片路徑——來源 MP4 的位置。
  2. Slug——簡短的資料夾/檔案名稱(例如 hope、marcus、desk)。一個單詞,小寫,無空格。這同時成為幀資料夾名稱(<slug>/)和 HTML 檔案名稱(<slug>.html)。
  3. 主題 / 話題——這個登陸頁面是關於什麼的?產品發布?個人時刻?野生動物遭遇?您需要這個來編寫文案。
  4. 專案模式——獨立(全新的資料夾)或整合到位於 examples/parasites/(此儲存庫頂層)的現有寄生蟲展示中。如果使用者說「把它加到展示中」,他們指的就是下面的模式 B。
  5. 重點色——用於腳本/行動呼籲高亮:gold (#f5b042)、amber (#ff8a3d)、accent (粉紅色 #ff4d6d)、cream (#f5e9d4),或新的(將其添加到 :root 中的 style.css 並撰寫新的 .script.<name> 規則)。

如果使用者尚未指定其中一些,請提出預設值並繼續——不要在他們看到結果後才能回答的問題上停滯。

階段 2——提取幀

執行捆綁的提取腳本。它使用 ffprobe 探測影片,並以原生解析度使用 -q:v 2(近乎無損 JPEG)提取每一幀,命名為 frame-001.jpg 到 frame-NNN.jpg(3 位數零填充)。

python <skill>/scripts/extract_frames.py <video_path> <output_folder>

範例:

python C:/Users/User/.claude/skills/parallax-landing-page/scripts/extract_frames.py \
    C:/Users/User/Documents/parasites/hope/hope.mp4 \
    C:/Users/User/Documents/parasites/hope

腳本會將 JSON 元資料區塊列印到標準輸出。擷取它——您需要 frame_count 和 suggested_scroll_budget 來建立 HTML。

為什麼用 -q:v 2:ezgif 和類似工具會積極地重新壓縮(~55 KB/幀)。原生 ffmpeg 在 q:v 2 下,相同解析度下每幀約 120–220 KB——明顯更銳利。不要降低解析度;永遠不要放大(這會增加檔案大小而不增加細節)。

為什麼用滾動預算公式(每幀約 26 像素):保持「每幀前進的滾動像素」在剪輯長度中一致。145 幀 → 約 4200,241 幀 → 約 6300,90 幀 → 約 2500(下限)。腳本會為您計算並限制在 [2500, 8000] 範圍內。

階段 3——撰寫頁面

閱讀 <skill>/assets/landing-page-template.html 中的模板。它是一個完整的工作檔案,帶有 {{PLACEHOLDER}} 標記和創意部分旁邊的 <!-- TODO: --> 註解。在 <target>/<slug>.html 撰寫一個新檔案,並替換所有內容。

替換檢查清單(每個佔位符都必須替換):

佔位符放入的內容範例
{{PAGE_TITLE}}HTML <title>Hope — 內蓋夫最快的獵心者
{{PAGE_DESCRIPTION}}meta 描述,一句話與 Midbarium 的獵豹 Hope 的時刻。
{{SLUG}}資料夾名稱(無路徑,無斜線)hope
{{FRAME_COUNT}}整數幀數241
{{FRAME_COUNTER_TEXT}}具有匹配寬度的 001 / NNN001 / 241
{{SCROLL_BUDGET}}來自提取器 JSON 的整數6300
{{PREVIEW_FRAME_MID}}零填充的中間幀121
{{PREVIEW_FRAME_END}}零填充的最後一幀241
{{LOADER_TITLE}}一個單詞,大寫HOPE
{{LOADER_SCRIPT}}以 … 結尾的手寫行召喚跑者…
{{NAV_LINKS_HTML}}導覽用的完整 <a> 標籤區塊見下方
{{SCENE_N_*}}5 個場景各自的前導、標題、手寫行參見文案指南
{{SCROLL_HINT_TEXT}}2–4 個單詞的大寫提示滾動以奔跑
{{CTA_BUTTONS_HTML}}2–4 個 `<a class=

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Karthic1981/hoodini-ai-agents-skills.gitni-ai-agents-skills

Build a premium cinematic landing page with mouse-scrub video hero and brand-driven narrative-arc sections. Use whenever the user provides a hero video plus a product / subject / brand and wants a landing page, promo site, product showcase, marketing page, or storytelling site. Works for any language (RTL or LTR — Hebrew, English, Arabic, Spanish, French, Japanese, etc.) and any subject (food, tech, animals, fashion, services, SaaS, wildlife campaigns, music releases, books, real estate). The signature effect is mouse-driven video scrubbing — the hero video lives across the entire page as a fixed backdrop, and moving the mouse left-right scrubs the video timeline so the subject responds to the cursor. Below the hero, 4-5 fully-opaque sections each carry their own brand identity (color, typography emphasis, layout pattern) and walk the viewer through a narrative arc (e.g. longing → joy → nostalgia → contemplation → action). Triggers on phrases like "build a landing page from this video", "cinematic landing ...

Karthic1981/hoodini-ai-agents-skills.gitni-ai-agents-skills

Turn any video into a cinematic scroll-driven landing page — Apple-style hero where scrolling progresses the visible frame through the video. Use when the user provides a video file and asks for "a landing page from this video", "scroll-frame website", "Apple-style scroll site", "hero that scrubs the video", "like the GitHub Copilot landing", or any equivalent. Extracts N evenly-spaced frames via ffmpeg, builds a self-contained HTML page with a sticky hero + JS scroll listener that swaps the visible frame as you scroll, plus headline, sections and CTA below. For YUV.AI projects, applies the yuv-design-system skill in Neon mode (pink/cyan/white, default for YUV.AI web) — Decks (purple/yellow) is reserved for slides only. For generic / non-YUV.AI projects, picks an appropriate palette per the source video. Output is one folder with `index.html` and a `frames/` directory — drop on any static host.

相關技能