HomeStylesTemplates
StyleKit
StylesTemplates
  1. Home
  2. /Styles
  3. /Cinematic Video Hero
Style Catalog/Cinematic Video Hero

Cinematic Video Hero

电影视频首屏

B
81/100Good

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.

cinematicvideo herobackground videolooppostertrailer电影感视频背景首屏循环
View Full Showcase →Templates

Best For

cinematic / video hero / background video

Primary Move

Poster frame as LCP: poster attribute + AVIF/WebP, small and sharp, instant

Watch Out

Never make the video the LCP dependency or omit the poster (blank first paint, LCP blowup)

Showcase Entry

Live preview of the showcase page. Click to explore the full experience.

View Full Showcase →

Color Palette

Primary

#05060A

Secondary

#F3EFE8

Accent 1

#E4C063

Accent 2

#141821

Accent 3

#9AA6B8

AI ImplementationComponent PreviewReadinessExportsRatings & Feedback

AI Implementation

Copy the Hard Prompt first, then use the spec when needed

Use the Hard Prompt by default to generate UI. Use the Design Spec to understand, modify, and review the style. Use the Creative Brief for early exploration.

Hard Prompt

Use this by default: copy it, append the concrete requirement, and let AI generate consistent production UI.

When to use

  • -When AI should generate UI directly
  • -When repeated outputs must stay consistent
  • -When style drift is the main risk

How to use

  • -Copy the full prompt
  • -Append the concrete requirement
  • -Review against forbidden rules and UI states
STYLEKIT_STYLE_REFERENCE
style_name: Cinematic Video Hero
style_slug: cinematic-video-hero
style_source: /styles/cinematic-video-hero

# Hard Prompt

## When To Use
Use this when you want AI to generate code with strict style consistency. It is the safest default for production UI.

## How To Use
- Copy the full prompt into ChatGPT, Claude, Cursor, or another coding assistant.
- Append the concrete product/page requirement after the prompt.
- After generation, check the forbidden rules and interaction states before accepting the output.

Strictly follow the style rules below and maintain consistency. No style drift allowed.

## Requirements

- Prioritize style consistency first, then creative extension.
- When conflicts arise, treat prohibitions as the highest priority.
- Self-check before output: verify colors, typography, spacing, and interactions still match this style.

## Style Rules

# 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

## Absolute Bans (Match and Refuse)

If any of the following patterns appear, it is a style violation — rewrite without exception.

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

## Self-Check (Verify Before Shipping)

If any item fails, the style has drifted — fix before shipping.

- [ ] No purple-to-blue gradients
- [ ] No overused fonts (Inter, Roboto, Geist, Fraunces, Plus Jakarta Sans)
- [ ] No nested cards (cards inside cards)
- [ ] No gray text on colored backgrounds
- [ ] Body text contrast meets WCAG AA (>= 4.5:1)
- [ ] No bounce or elastic easing curves
- [ ] Animations have a prefers-reduced-motion fallback
- [ ] Body text line length capped at 65-75 characters
- [ ] No side-stripe accent borders (border-left/right > 1px)
- [ ] No gradient text (background-clip: text)
- [ ] No glassmorphism used as the default surface treatment
- [ ] No tiny uppercase tracked eyebrow labels above every section heading
- [ ] 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

Use it in your workflow

Ship Cinematic Video Hero in your AI coding tool

All integrations →
shadcn

Drop this style's theme into an existing shadcn project with one command.

bash
npx shadcn add https://www.stylekit.top/r/cinematic-video-hero.json
CLI

Contributors can build the unpublished CLI from a local checkout.

bash
pnpm --filter stylekit-cli build && node packages/cli/dist/index.js add cinematic-video-hero
MCP

Contributors can preview Cinematic Video Hero through the repository-local MCP package.

bash
pnpm --filter stylekit-mcp build && node packages/mcp/dist/index.js
Part ofDark Mode Design Styles

Component Templates

Component Preview

Button

Warm-gold cinematic CTA and a frosted secondary

Frontend Readiness

Dark Mode, States, Motion, and Accessibility

This layer tracks whether the style is ready for real websites: theme modes, state feedback, keyboard access, and performance constraints.

Overall

51%

Fallback

Dark Mode

0%

Missing

UI States

79%

Partial

Motion

70%

Partial

A11y

70%

Partial

Performance

35%

Fallback

Key State Coverage

light
HoverFocus VisibleDisabledLoadingEmptyErrorSuccess

Button

Default / Hover / Focus Visible / Active / Disabled

Input

Default / Hover / Focus Visible / Disabled / Error

Card

Default / Hover / Focus Visible / Loading / Skeleton

Form

Default / Focus Visible / Disabled / Loading / Error

Implementation Notes

  • No curated dark-mode contract exists yet.
  • Check contrast in both light and dark modes.
  • Check heavy shadows, blur, large media, and scroll-linked effects manually.
  • No style-specific performance cost profile has been curated yet.
Global Styles

Global CSS

css
/* Cinematic Video Hero Global Styles */

:root {
  --cv-base: #05060A;
  --cv-surface: #141821;
  --cv-paper: #F3EFE8;
  --cv-gold: #E4C063;
  --cv-steel: #9AA6B8;
}

/* Full-bleed video / poster base */
.cv-cover {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Readability scrims */
.cv-scrim-cinematic { background: linear-gradient(to top, rgba(5,6,10,0.78), rgba(5,6,10,0.2) 45%, rgba(5,6,10,0.45)); }

/* Letterbox bars for a filmic frame (optional) */
.cv-letterbox::before,
.cv-letterbox::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  height: 6vh;
  background: #05060A;
  z-index: 20;
  pointer-events: none;
}
.cv-letterbox::before { top: 0; }
.cv-letterbox::after { bottom: 0; }

@media (prefers-reduced-motion: reduce) {
  /* video is not autoplayed by script; poster stays. Nothing to animate. */
}

IDE Integration

IDE Configuration Export

Download configuration files for AI coding assistants to generate code in this style.

Style Pack

Export Style Pack

Get complete machine-readable style assets including design tokens, Tailwind presets, CSS variables, and shadcn/ui themes.

Metadata

Style metadata including version information

Design Tokens

Compatible with Figma / Style Dictionary / Tokens Studio

Tailwind Preset

Tailwind CSS theme preset, import directly in config

Global CSS

CSS variables and base styles

shadcn Theme

shadcn/ui theme configuration

CSS Variables

Pure CSS variables, works with any project

SKILL.md

Loadable skill pack for Cursor / Claude Code / VS Code

Design 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.

Accessibility

Accessibility Score

WCAG 2.1 compliance analysis based on color contrast and typography readability.

81

Overall Score

Grade: B - Good

Contrast Ratios

Score: 79/100Average Ratio: 12.84:1
AA FailAAA Fail
ContextColorsRatioAAAAA
Text on background
/#ffffff / #05060A
20.25:1
Text on secondary background
/#ffffff / #141821
17.76:1
Button primary
/#05060A / #E4C063
11.59:1
Text on accent 1
/#ffffff / #E4C063
1.75:1

Readability

Score

85/100

Font Size

text-base md:text-lg

Font Weight

font-semibold text-white tracking-tight

Line Height

default

Scoring is based on WCAG 2.1 standards. AA requires 4.5:1 contrast for normal text, 3:1 for large text; AAA requires 7:1 for normal text, 4.5:1 for large text.

StyleKit

A curated web design style library to help AI generate better-looking websites.

GitHub Repository

Navigation

StylesColorsCollectionsTemplatesGuideBlogChangelog

Resources

UI Design PromptsLanding Page PromptsDashboard PromptsTailwind UI PromptsDark Mode UI Prompts

Stay Updated

By subscribing, you agree to our Privacy Policy and Terms.

FeedbackTell us what could work betterSupport MaintenanceIf StyleKit helps your workflow, voluntary support helps cover servers, domains, and ongoing upkeep.

(c) 2026 StyleKit. Open source project.

AboutContactPrivacyTermsBuilt with the Editorial style
StyleKit frontend style librarystylekit.top陕ICP备2025065501号-3