Created
April 19, 2026 17:29
-
-
Save nidhinkumar06/b1bb6bb61f114cccd33ad511143bbc8a to your computer and use it in GitHub Desktop.
HeyFrame Multilingual Sample
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!doctype html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8" /> | |
| <meta name="viewport" content="width=1920, height=1080" /> | |
| <title>HeyGen — AI Video for India</title> | |
| <link rel="preconnect" href="https://fonts.googleapis.com" /> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> | |
| <!-- | |
| Noto Sans family covers all Indic scripts cleanly. | |
| display=block ensures fonts are loaded before Hyperframes captures frames. | |
| --> | |
| <link | |
| href="https://fonts.googleapis.com/css2?family=Noto+Sans+Devanagari:wght@400;700;900&family=Noto+Sans+Tamil:wght@400;700&family=Noto+Sans+Telugu:wght@400;700&family=Noto+Sans+Bengali:wght@400;700&family=Noto+Sans+Kannada:wght@400;700&family=Noto+Sans+Malayalam:wght@400;700&family=Bebas+Neue&family=DM+Sans:ital,wght@0,300;0,400;0,500;1,300&display=block" | |
| rel="stylesheet" | |
| /> | |
| <style> | |
| * { box-sizing: border-box; margin: 0; padding: 0; } | |
| html, body { | |
| width: 1920px; height: 1080px; | |
| overflow: hidden; background: #03040e; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div | |
| id="root" | |
| data-composition-id="heygen-india" | |
| data-width="1920" | |
| data-height="1080" | |
| style="position:relative; width:1920px; height:1080px; overflow:hidden; background:#03040e; font-family:'DM Sans',sans-serif;" | |
| > | |
| <!-- ══════════════════════════════════════════ | |
| LAYER 0 · Persistent Background | |
| ══════════════════════════════════════════ --> | |
| <!-- Deep radial glow --> | |
| <div class="clip" data-start="0" data-duration="10" data-track-index="0" | |
| style="position:absolute;inset:0; | |
| background:radial-gradient(ellipse 1100px 700px at 50% 52%, rgba(18,6,55,0.95) 0%, transparent 80%), #03040e;"> | |
| </div> | |
| <!-- Dot-grid --> | |
| <div class="clip" data-start="0" data-duration="10" data-track-index="0" | |
| style="position:absolute;inset:0;opacity:0.14; | |
| background-image:radial-gradient(circle, #556 1px, transparent 1px); | |
| background-size:44px 44px;"> | |
| </div> | |
| <!-- India Tricolor — Left saffron bar --> | |
| <div class="clip" data-start="0" data-duration="10" data-track-index="1" | |
| style="position:absolute;left:0;top:0;width:7px;height:100%;background:#FF9933;"></div> | |
| <!-- India Tricolor — Right green bar --> | |
| <div class="clip" data-start="0" data-duration="10" data-track-index="1" | |
| style="position:absolute;right:0;top:0;width:7px;height:100%;background:#138808;"></div> | |
| <!-- Ashoka-blue decorative rings (static, purely aesthetic) --> | |
| <div id="ring-outer" class="clip" data-start="0" data-duration="10" data-track-index="1" | |
| style="position:absolute; | |
| top:calc(50% - 440px); left:calc(50% - 440px); | |
| width:880px;height:880px;border-radius:50%; | |
| border:1px solid rgba(0,0,160,0.18);opacity:0;"> | |
| </div> | |
| <div id="ring-inner" class="clip" data-start="0" data-duration="10" data-track-index="1" | |
| style="position:absolute; | |
| top:calc(50% - 280px); left:calc(50% - 280px); | |
| width:560px;height:560px;border-radius:50%; | |
| border:1px solid rgba(0,0,160,0.12);opacity:0;"> | |
| </div> | |
| <!-- ══════════════════════════════════════════ | |
| SCENE 1 · Opening Hook (0 – 1.5s) | |
| ══════════════════════════════════════════ --> | |
| <!-- "हर भाषा में" — Opening Hindi line --> | |
| <div id="open-main" class="clip" data-start="0.2" data-duration="1.4" data-track-index="2" | |
| style="position:absolute;top:37%;width:100%;text-align:center; | |
| font-family:'Noto Sans Devanagari',sans-serif;font-size:108px;font-weight:700; | |
| color:#FF9933;line-height:1.1;"> | |
| हर भाषा में | |
| </div> | |
| <!-- "AI VIDEO FOR INDIA" — English sub --> | |
| <div id="open-sub" class="clip" data-start="0.55" data-duration="1.05" data-track-index="2" | |
| style="position:absolute;top:57%;width:100%;text-align:center; | |
| font-family:'Bebas Neue',sans-serif;font-size:72px; | |
| color:rgba(255,255,255,0.5);letter-spacing:14px;"> | |
| AI VIDEO FOR INDIA | |
| </div> | |
| <!-- Horizontal sweep line (scene 1 transition) --> | |
| <div id="sweep" class="clip" data-start="1.3" data-duration="0.5" data-track-index="3" | |
| style="position:absolute;top:calc(50% - 1px);left:-100%; | |
| width:100%;height:2px; | |
| background:linear-gradient(90deg, transparent, #FF9933 30%, #ffffff 50%, #138808 70%, transparent); | |
| opacity:0.7;"> | |
| </div> | |
| <!-- ══════════════════════════════════════════ | |
| SCENE 2 · Language Carousel (1.5 – 8.7s) | |
| Each language: ~1.2s window | |
| 1. Hindi 1.5 – 2.7 | |
| 2. Tamil 2.7 – 3.9 | |
| 3. Telugu 3.9 – 5.1 | |
| 4. Bengali 5.1 – 6.3 | |
| 5. Kannada 6.3 – 7.5 | |
| 6. Malayalam 7.5 – 8.7 | |
| ══════════════════════════════════════════ --> | |
| <!-- Progress dots — visible entire carousel --> | |
| <div id="prog-dots" class="clip" data-start="1.4" data-duration="7.4" data-track-index="9" | |
| style="position:absolute;bottom:72px;width:100%;display:flex;justify-content:center;align-items:center;gap:18px;"> | |
| <div id="d1" style="width:13px;height:13px;border-radius:50%;background:rgba(255,255,255,0.15);transition:all 0.2s;"></div> | |
| <div id="d2" style="width:13px;height:13px;border-radius:50%;background:rgba(255,255,255,0.15);"></div> | |
| <div id="d3" style="width:13px;height:13px;border-radius:50%;background:rgba(255,255,255,0.15);"></div> | |
| <div id="d4" style="width:13px;height:13px;border-radius:50%;background:rgba(255,255,255,0.15);"></div> | |
| <div id="d5" style="width:13px;height:13px;border-radius:50%;background:rgba(255,255,255,0.15);"></div> | |
| <div id="d6" style="width:13px;height:13px;border-radius:50%;background:rgba(255,255,255,0.15);"></div> | |
| </div> | |
| <!-- ── 1. Hindi ── --> | |
| <div id="lang-1" class="clip" data-start="1.5" data-duration="1.5" data-track-index="4" | |
| style="position:absolute;top:50%;left:50%;transform:translate(-50%,-50%); | |
| text-align:center;width:1500px;opacity:0;"> | |
| <div style="font-size:20px;letter-spacing:9px;color:#FF9933;margin-bottom:22px;text-transform:uppercase;font-weight:500;"> | |
| HINDI · हिन्दी | |
| </div> | |
| <div style="font-family:'Noto Sans Devanagari',sans-serif;font-size:112px;font-weight:700;color:#fff;line-height:1.2;"> | |
| एआई वीडियो निर्माण | |
| </div> | |
| <div style="font-size:26px;color:rgba(255,255,255,0.35);margin-top:22px;letter-spacing:3px;font-style:italic;"> | |
| AI Video Creation | |
| </div> | |
| </div> | |
| <!-- ── 2. Tamil ── --> | |
| <div id="lang-2" class="clip" data-start="2.7" data-duration="1.5" data-track-index="4" | |
| style="position:absolute;top:50%;left:50%;transform:translate(-50%,-50%); | |
| text-align:center;width:1500px;opacity:0;"> | |
| <div style="font-size:20px;letter-spacing:9px;color:#00dca8;margin-bottom:22px;text-transform:uppercase;font-weight:500;"> | |
| TAMIL · தமிழ் | |
| </div> | |
| <div style="font-family:'Noto Sans Tamil',sans-serif;font-size:112px;font-weight:700;color:#fff;line-height:1.2;"> | |
| AI வீடியோ உருவாக்கம் | |
| </div> | |
| <div style="font-size:26px;color:rgba(255,255,255,0.35);margin-top:22px;letter-spacing:3px;font-style:italic;"> | |
| AI Video Creation | |
| </div> | |
| </div> | |
| <!-- ── 3. Telugu ── --> | |
| <div id="lang-3" class="clip" data-start="3.9" data-duration="1.5" data-track-index="4" | |
| style="position:absolute;top:50%;left:50%;transform:translate(-50%,-50%); | |
| text-align:center;width:1500px;opacity:0;"> | |
| <div style="font-size:20px;letter-spacing:9px;color:#5aabff;margin-bottom:22px;text-transform:uppercase;font-weight:500;"> | |
| TELUGU · తెలుగు | |
| </div> | |
| <div style="font-family:'Noto Sans Telugu',sans-serif;font-size:112px;font-weight:700;color:#fff;line-height:1.2;"> | |
| AI వీడియో నిర్మాణం | |
| </div> | |
| <div style="font-size:26px;color:rgba(255,255,255,0.35);margin-top:22px;letter-spacing:3px;font-style:italic;"> | |
| AI Video Creation | |
| </div> | |
| </div> | |
| <!-- ── 4. Bengali ── --> | |
| <div id="lang-4" class="clip" data-start="5.1" data-duration="1.5" data-track-index="4" | |
| style="position:absolute;top:50%;left:50%;transform:translate(-50%,-50%); | |
| text-align:center;width:1500px;opacity:0;"> | |
| <div style="font-size:20px;letter-spacing:9px;color:#FFD166;margin-bottom:22px;text-transform:uppercase;font-weight:500;"> | |
| BENGALI · বাংলা | |
| </div> | |
| <div style="font-family:'Noto Sans Bengali',sans-serif;font-size:112px;font-weight:700;color:#fff;line-height:1.2;"> | |
| AI ভিডিও নির্মাণ | |
| </div> | |
| <div style="font-size:26px;color:rgba(255,255,255,0.35);margin-top:22px;letter-spacing:3px;font-style:italic;"> | |
| AI Video Creation | |
| </div> | |
| </div> | |
| <!-- ── 5. Kannada ── --> | |
| <div id="lang-5" class="clip" data-start="6.3" data-duration="1.5" data-track-index="4" | |
| style="position:absolute;top:50%;left:50%;transform:translate(-50%,-50%); | |
| text-align:center;width:1500px;opacity:0;"> | |
| <div style="font-size:20px;letter-spacing:9px;color:#c670ff;margin-bottom:22px;text-transform:uppercase;font-weight:500;"> | |
| KANNADA · ಕನ್ನಡ | |
| </div> | |
| <div style="font-family:'Noto Sans Kannada',sans-serif;font-size:112px;font-weight:700;color:#fff;line-height:1.2;"> | |
| AI ವೀಡಿಯೋ ನಿರ್ಮಾಣ | |
| </div> | |
| <div style="font-size:26px;color:rgba(255,255,255,0.35);margin-top:22px;letter-spacing:3px;font-style:italic;"> | |
| AI Video Creation | |
| </div> | |
| </div> | |
| <!-- ── 6. Malayalam ── --> | |
| <div id="lang-6" class="clip" data-start="7.5" data-duration="1.5" data-track-index="4" | |
| style="position:absolute;top:50%;left:50%;transform:translate(-50%,-50%); | |
| text-align:center;width:1500px;opacity:0;"> | |
| <div style="font-size:20px;letter-spacing:9px;color:#ff8080;margin-bottom:22px;text-transform:uppercase;font-weight:500;"> | |
| MALAYALAM · മലയാളം | |
| </div> | |
| <div style="font-family:'Noto Sans Malayalam',sans-serif;font-size:112px;font-weight:700;color:#fff;line-height:1.2;"> | |
| AI വീഡിയോ നിർമ്മാണം | |
| </div> | |
| <div style="font-size:26px;color:rgba(255,255,255,0.35);margin-top:22px;letter-spacing:3px;font-style:italic;"> | |
| AI Video Creation | |
| </div> | |
| </div> | |
| <!-- ══════════════════════════════════════════ | |
| SCENE 3 · Brand Outro (8.7 – 10s) | |
| ══════════════════════════════════════════ --> | |
| <!-- Outro background overlay --> | |
| <div id="outro-bg" class="clip" data-start="8.6" data-duration="1.4" data-track-index="10" | |
| style="position:absolute;inset:0; | |
| background:linear-gradient(135deg, #03040e 0%, #061a0f 60%, #03040e 100%); | |
| opacity:0;"> | |
| </div> | |
| <!-- HeyGen wordmark + tagline --> | |
| <div id="outro-brand" class="clip" data-start="8.75" data-duration="1.25" data-track-index="11" | |
| style="position:absolute;top:50%;left:50%;transform:translate(-50%,-50%); | |
| text-align:center;opacity:0;"> | |
| <div style="font-family:'Bebas Neue',sans-serif;font-size:170px;color:#fff; | |
| letter-spacing:10px;line-height:1;">HeyGen</div> | |
| <div style="font-family:'Noto Sans Devanagari',sans-serif;font-size:40px; | |
| color:#FF9933;letter-spacing:3px;margin-top:6px;"> | |
| भारत के लिए बनाया गया | |
| </div> | |
| <div style="font-size:22px;color:rgba(255,255,255,0.38);letter-spacing:6px; | |
| text-transform:uppercase;margin-top:10px;"> | |
| Made for India | |
| </div> | |
| </div> | |
| <!-- ══════════════════════════════════════════ | |
| GSAP Timeline | |
| ══════════════════════════════════════════ --> | |
| <script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> | |
| <script> | |
| const tl = gsap.timeline({ paused: true }); | |
| // ── Rings fade in ── | |
| tl.to(["#ring-outer", "#ring-inner"], { opacity: 1, duration: 1.5, ease: "power2.out" }, 0); | |
| // ── Scene 1: Opening ── | |
| tl | |
| .from("#open-main", { opacity: 0, scale: 0.88, filter: "blur(14px)", duration: 0.55, ease: "power3.out" }, 0.2) | |
| .to( "#open-main", { opacity: 0, y: -28, duration: 0.3, ease: "power2.in" }, 1.2) | |
| .from("#open-sub", { opacity: 0, y: 24, duration: 0.4, ease: "power2.out" }, 0.65) | |
| .to( "#open-sub", { opacity: 0, duration: 0.25, ease: "power1.in" }, 1.25) | |
| // sweep bar reveals across | |
| .set( "#sweep", { opacity: 0.7 }) | |
| .to( "#sweep", { left: "100%", duration: 0.5, ease: "expo.inOut" }, 1.3) | |
| // ── Language 1: Hindi ── | |
| tl | |
| .to( "#lang-1", { opacity: 1, y: 0, duration: 0.32, ease: "back.out(1.4)" }, 1.5) | |
| .from("#lang-1", { y: 45 }, 1.5) // initial y offset | |
| .to( "#d1", { background: "#FF9933", scale: 1.45, duration: 0.2 }, 1.5) | |
| .to( "#lang-1", { opacity: 0, y: -38, duration: 0.28, ease: "power2.in" }, 2.58) | |
| .to( "#d1", { scale: 1, background: "rgba(255,255,255,0.35)", duration: 0.2 }, 2.6) | |
| // ── Language 2: Tamil ── | |
| tl | |
| .to( "#lang-2", { opacity: 1, y: 0, duration: 0.32, ease: "back.out(1.4)" }, 2.7) | |
| .from("#lang-2", { y: 45 }, 2.7) | |
| .to( "#d2", { background: "#00dca8", scale: 1.45, duration: 0.2 }, 2.7) | |
| .to( "#lang-2", { opacity: 0, y: -38, duration: 0.28, ease: "power2.in" }, 3.78) | |
| .to( "#d2", { scale: 1, background: "rgba(255,255,255,0.35)", duration: 0.2 }, 3.8) | |
| // ── Language 3: Telugu ── | |
| tl | |
| .to( "#lang-3", { opacity: 1, y: 0, duration: 0.32, ease: "back.out(1.4)" }, 3.9) | |
| .from("#lang-3", { y: 45 }, 3.9) | |
| .to( "#d3", { background: "#5aabff", scale: 1.45, duration: 0.2 }, 3.9) | |
| .to( "#lang-3", { opacity: 0, y: -38, duration: 0.28, ease: "power2.in" }, 4.98) | |
| .to( "#d3", { scale: 1, background: "rgba(255,255,255,0.35)", duration: 0.2 }, 5.0) | |
| // ── Language 4: Bengali ── | |
| tl | |
| .to( "#lang-4", { opacity: 1, y: 0, duration: 0.32, ease: "back.out(1.4)" }, 5.1) | |
| .from("#lang-4", { y: 45 }, 5.1) | |
| .to( "#d4", { background: "#FFD166", scale: 1.45, duration: 0.2 }, 5.1) | |
| .to( "#lang-4", { opacity: 0, y: -38, duration: 0.28, ease: "power2.in" }, 6.18) | |
| .to( "#d4", { scale: 1, background: "rgba(255,255,255,0.35)", duration: 0.2 }, 6.2) | |
| // ── Language 5: Kannada ── | |
| tl | |
| .to( "#lang-5", { opacity: 1, y: 0, duration: 0.32, ease: "back.out(1.4)" }, 6.3) | |
| .from("#lang-5", { y: 45 }, 6.3) | |
| .to( "#d5", { background: "#c670ff", scale: 1.45, duration: 0.2 }, 6.3) | |
| .to( "#lang-5", { opacity: 0, y: -38, duration: 0.28, ease: "power2.in" }, 7.38) | |
| .to( "#d5", { scale: 1, background: "rgba(255,255,255,0.35)", duration: 0.2 }, 7.4) | |
| // ── Language 6: Malayalam ── | |
| tl | |
| .to( "#lang-6", { opacity: 1, y: 0, duration: 0.32, ease: "back.out(1.4)" }, 7.5) | |
| .from("#lang-6", { y: 45 }, 7.5) | |
| .to( "#d6", { background: "#ff8080", scale: 1.45, duration: 0.2 }, 7.5) | |
| .to( "#lang-6", { opacity: 0, y: -38, duration: 0.28, ease: "power2.in" }, 8.58) | |
| .to( "#d6", { scale: 1, background: "rgba(255,255,255,0.35)", duration: 0.2 }, 8.6) | |
| // ── Scene 3: Outro ── | |
| tl | |
| .to("#outro-bg", { opacity: 1, duration: 0.35, ease: "power2.out" }, 8.65) | |
| .to("#outro-brand", { opacity: 1, scale: 1, filter: "blur(0px)", duration: 0.6, ease: "back.out(1.5)" }, 8.85) | |
| .from("#outro-brand", { scale: 0.88, filter: "blur(14px)" }, 8.85) | |
| .to("#outro-brand", { opacity: 0, scale: 1.04, duration: 0.35, ease: "power2.in" }, 9.7) | |
| .to("#outro-bg", { opacity: 0, duration: 0.35, ease: "power2.in" }, 9.7); | |
| // Register with Hyperframes | |
| window.__timelines = window.__timelines || {}; | |
| window.__timelines["heygen-india"] = tl; | |
| </script> | |
| </div> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment