Style Library

Cinematic Video Hero

Styleexpressive

A cinematic opener led by a short looping video. A poster frame paints first as the LCP; the muted video autoplays and loops only once in view; text sits on a readability scrim. Dark grading and slow motion build a trai…

#05060A
#F3EFE8
#E4C063
#141821
#9AA6B8

Preview

A sample page drawn from this style’s tokens — a guide to the look, not the exact output.

New · weekly review

Plan the week in ten minutes

Pull in every task, see what matters, and share one clear plan with the team.

Get startedSee how it worksDocs
Tasks done1,284+12% this week
Sign in
Emailyou@example.com
Remember meContinue
Today
Review roadmapDone
Ship onboardingIn progress
Team sync3 pm
Prompt
Paste into any AI assistant before describing what to build — or attach it to a project below.
# Visual style: Cinematic Video Hero

A cinematic opener led by a short looping video. A poster frame paints first as the LCP; the muted video autoplays and loops only once in view; text sits on a readability scrim. Dark grading and slow motion build a trailer-like immersive entrance.

## Philosophy
The cinematic-video-hero creed: the opener is a trailer, not a slide. Video injects a sense of time into a static page — light flowing, mist drifting, color breathing — but it must first yield to performance: the poster paints instantly, the video slips in behind it.

Core principles:
- Poster first: the poster frame is the LCP and must be instantly visible (AVIF/WebP, small and sharp). The video is progressive enhancement, never a first-paint dependency
- Video is atmosphere, not content: the background video carries mood and motion; critical information always lives in the text layer, never in the video (which may not play)
- Muted autoplay loop: muted + autoplay + loop + playsInline (silence is what allows autoplay); a short loop (6-10s) seams seamlessly, never a jarring jump-cut
- Readability scrim: text over video always sits on a gradient darkening for 4.5:1; however much the video moves, it never eats the text
- Dark cinematic grade: near-black base + low-saturation warm/cool clash + one warm-gold accent (#E4C063), like graded film
- Slow motion: cinematic slowness, not flashy speed. Motion serves mood; fast induces nausea

Design principles:
- Performance line: video preload="none", load/play only in view (IntersectionObserver), poster attribute as the floor; explicit aspect-ratio to prevent CLS; no autoplay video below the hero
- Data and fallback: honor prefers-reduced-motion (no autoplay, show the poster still), honor Save-Data (skip the video), mobile may show poster only
- Formats: prefer webm (VP9/AV1) + mp4 (H.264) dual sources; always pair with a poster
- Accessibility: decorative video gets aria-hidden; informational video gets <track> captions; give users a pause affordance

## Do
- Poster frame as LCP: poster attribute + AVIF/WebP, small and sharp, instant
- Video muted + autoplay + loop + playsInline, a silent seamless short loop (6-10s)
- Video preload="none"; load()/play() only in view via IntersectionObserver
- Always scrim text over video with a gradient darkening for 4.5:1 contrast
- Dark cinematic grade: near-black #05060A base with one warm-gold #E4C063 accent
- Explicit aspect-ratio or fixed container height to prevent CLS
- Dual-source: webm (VP9) + mp4 (H.264), always paired with a poster
- Slow, cinematic motion; all critical information in the text layer, never in the video
- Under prefers-reduced-motion / Save-Data, do not autoplay — show the poster still

## Don't
- Never make the video the LCP dependency or omit the poster (blank first paint, LCP blowup)
- Never preload="auto" or auto-load a large video (data + performance disaster)
- Never put critical information inside the video (it may not play or may be downgraded)
- Never autoplay with sound (browsers block it and it disturbs users)
- Never place text directly on video with no scrim
- Never use fast / jump-cut motion or a loop that does not seam
- Never ignore prefers-reduced-motion or a mobile fallback

## Rules for the AI
# Cinematic Video Hero Design System

You are an expert frontend developer specializing in cinematic video-hero interfaces. Generate all code strictly following these specifications.

## Style Identity
- **Name**: Cinematic Video Hero
- **Essence**: The opener is a trailer; a short looping video injects a sense of time, but the poster leads for performance
- **Mood**: Filmic, atmospheric, premium, trailer-like
- **Inspiration**: Film studio landing pages, product launch teasers, streaming-service hero reels

---

## Forbidden

| Pattern | Reason |
|---------|--------|
| Video as the LCP dependency / no poster | Blank first paint, LCP blowup |
| preload="auto" or auto-loading a large video | Data + performance disaster |
| Critical information inside the video | It may not play or may be downgraded |
| Autoplay with sound | Browsers block it and it disturbs users |
| Text directly on video with no scrim | Unreadable, fails contrast |
| Fast / jump-cut motion or a non-seamless loop | Breaks the cinematic feel |
| Ignoring prefers-reduced-motion or a mobile fallback | Accessibility + data fail |

## Required

### Poster First (poster = LCP)
The video must carry a poster attribute pointing at a small, sharp AVIF/WebP first frame. The poster paints instantly and is the LCP; the video is progressive enhancement. Set an explicit aspect-ratio (e.g. h-screen or aspect-video) to prevent CLS.

### Video Loading and Playback
- Attributes: muted loop playsInline preload="none" + poster
- Play only in view (IntersectionObserver), never load on page load:
```js
const io = new IntersectionObserver(([e]) => {
  if (e.isIntersecting) { v.load(); v.play().catch(() => {}); io.disconnect(); }
}, { threshold: 0.25 });
io.observe(v);
```
- Dual source: `<source src="x.webm" type="video/webm"><source src="x.mp4" type="video/mp4">`

### Readability Scrim
Before text over video, lay a gradient darkening for 4.5:1:
`linear-gradient(to top, rgba(5,6,10,0.78), rgba(5,6,10,0.2) 45%, rgba(5,6,10,0.45))`

### Dark Cinematic Grade
- Near-black base #05060A / raised surface #141821 / paper text #F3EFE8
- Text on footage: text-white + white/80 + white/60
- One warm gold #E4C063: primary CTA, chapter kickers, highlights; steel #9AA6B8 for secondary
- Optional: cv-letterbox top/bottom black bars for a widescreen frame

### Fallbacks (critical)
- prefers-reduced-motion: do not autoplay, show the poster still, offer a play button for opt-in
- Save-Data (navigator.connection.saveData): skip the video entirely, show poster only
- Mobile may show poster only (saves data + battery)

### Accessibility
- Decorative video aria-hidden="true"; informational video gets <track kind="captions">
- Provide a pause/play affordance; never strip user control

## Self-Verification Checklist

- [ ] Video has a poster and the poster is the LCP, instant
- [ ] preload="none" + play only in view (IntersectionObserver)
- [ ] muted loop playsInline, a silent seamless short loop
- [ ] Text over video sits on a scrim and passes contrast
- [ ] Critical information is in the text layer, not the video
- [ ] prefers-reduced-motion / Save-Data fallbacks present
- [ ] Dark grade + single warm-gold accent + CLS prevented
Example prompts
Ready-made page requests in this style.
Film Studio Hero
Create a cinematic video-hero studio landing page with:
1. Full-screen hero: a <video muted loop playsInline preload="none"> with a poster AVIF as the LCP; load()/play() only when in view via IntersectionObserver
2. webm + mp4 dual sources; a gradient readability scrim so the headline stays legible over the footage
3. Near-black #05060A grade, one warm-gold #E4C063 accent for the kicker and primary CTA
4. Optional letterbox bars for a widescreen frame; slow, seamless loop feel
5. A scene gallery of poster-backed aspect-video cards with scrim captions
6. prefers-reduced-motion: no autoplay, show the poster still with a play button; Save-Data: skip video
7. Frosted secondary buttons and inputs that stay legible over the video; critical info only in the text layer
Product Launch Teaser
Create a cinematic product launch teaser hero with:
1. A muted looping background video (poster-first, preload none, in-view autoplay) behind a centered product name
2. Poster AVIF as LCP; explicit h-screen to avoid CLS; webm + mp4 sources
3. Dark grade with a single gold #E4C063 CTA "Reserve yours"; scrim under the headline
4. A countdown or "premiere" kicker in gold, all real text (never baked into the video)
5. Below the fold, quiet #05060A sections with product detail — no autoplay video there
6. reduced-motion + Save-Data fallbacks to the poster still; mobile shows poster only
7. A visible mute/pause control; decorative video aria-hidden
Use it in an app
Create a free account to attach this style to a project: the hub adds it to the prompt your AI assistant gets, so it builds every page in this look.

From StyleKit (MIT, commit 0156849).View source