--- title: Templates description: "Built-in templates for common video patterns." --- Hyperframes includes starter templates to help you scaffold compositions quickly. Each template gives you a working project with the correct [composition structure](/concepts/compositions), [data attributes](/concepts/data-attributes), and a [GSAP timeline](/guides/gsap-animation) already wired up. ## Using Templates ```bash Terminal npx hyperframes init --template ``` This creates a new project directory with an `index.html` composition, sub-compositions, and any required assets. You can also run `npx hyperframes init` without `--template` to choose interactively. ## Available Templates ### blank An empty composition with just the scaffolding — a video element, audio track, captions sub-composition, and an empty GSAP timeline. Start from scratch. **What it produces:** A minimal project with a single video clip and audio, ready for you to customize. The timeline is registered and ready for you to add tweens. **When to use it:** You have a specific design in mind and want full control. Good for AI agent workflows that will generate the composition programmatically, or when starting from a source video. ```bash Terminal npx hyperframes init my-video --template blank ``` **What you get:** ``` my-video/ ├── meta.json ├── index.html └── compositions/ └── captions.html ``` ### warm-grain A cream-toned aesthetic with grain texture overlay. Warm, organic feel suited for lifestyle and branding videos. **What it produces:** A composition with warm color grading, textured grain, and smooth transitions. Includes an intro sub-composition and captions support. **When to use it:** You want an organic, stylized look for branding, lifestyle, or editorial content. ```bash Terminal npx hyperframes init my-video --template warm-grain ``` **What you get:** ``` my-video/ ├── meta.json ├── index.html ├── compositions/ │ ├── intro.html │ ├── graphics.html │ └── captions.html └── assets/ ``` ### play-mode Playful elastic animations with bold, energetic motion. **What it produces:** A composition with bouncy, elastic animation curves and dynamic layout transitions. Includes intro, stats, and captions sub-compositions. **When to use it:** You want a fun, high-energy feel — great for social media, product launches, or explainer videos. ```bash Terminal npx hyperframes init my-video --template play-mode ``` **What you get:** ``` my-video/ ├── meta.json ├── index.html ├── compositions/ │ ├── intro.html │ ├── stats.html │ └── captions.html └── assets/ ``` ### swiss-grid Structured grid layout inspired by Swiss/International Typographic Style. **What it produces:** A clean, grid-based composition with precise typography and structured layouts. Includes intro, graphics, and captions sub-compositions. **When to use it:** You want a clean, professional, information-dense layout — ideal for corporate videos, data presentations, or technical content. ```bash Terminal npx hyperframes init my-video --template swiss-grid ``` **What you get:** ``` my-video/ ├── meta.json ├── index.html ├── compositions/ │ ├── intro.html │ ├── graphics.html │ └── captions.html └── assets/ ``` ### vignelli Bold typography with red accents, inspired by Massimo Vignelli's design philosophy. **What it produces:** A striking composition with strong typographic hierarchy, red accent colors, and confident transitions. Includes overlays and captions sub-compositions. **When to use it:** You want a bold, authoritative visual style — great for headlines, announcements, or editorial content. ```bash Terminal npx hyperframes init my-video --template vignelli ``` **What you get:** ``` my-video/ ├── meta.json ├── index.html ├── compositions/ │ ├── overlays.html │ └── captions.html └── assets/ ``` ## Choosing a Template | Template | Style | Best for | |----------|-------|----------| | `blank` | Minimal scaffolding | Full control, agent-generated, starting from video | | `warm-grain` | Organic, textured | Lifestyle, branding, editorial | | `play-mode` | Energetic, elastic | Social media, product launches | | `swiss-grid` | Clean, structured | Corporate, data, technical | | `vignelli` | Bold, typographic | Headlines, announcements | If you are new to Hyperframes, start with `warm-grain` or `play-mode` to see working animations and sub-compositions in action. Use `blank` when you want minimal scaffolding and full control. Run `npx hyperframes init` without `--template` to preview all options interactively. ## Passing a Source Video You can initialize a project with your own video file using the `--video` flag: ```bash Terminal npx hyperframes init my-video --template warm-grain --video ./my-clip.mp4 ``` The CLI will probe the video for duration, resolution, and codec. If the video uses an incompatible codec (not H.264, VP8/9, AV1, or Theora), it will be automatically transcoded to H.264 MP4 if FFmpeg is available. ## Custom Templates Any directory with an `index.html` can serve as a template. You can copy a directory manually or build your own init workflow. Your custom template needs: 1. An `index.html` with a [`data-composition-id`](/concepts/data-attributes#composition-attributes) root element 2. A [GSAP timeline](/guides/gsap-animation) registered in `window.__timelines` 3. Any assets in the same directory or a subdirectory ```html index.html
``` After creating a custom template, validate it with the [linter](/packages/cli#lint): ```bash Terminal npx hyperframes lint ``` ## Next Steps Create, preview, and render your first video Add animations to your template Understand the composition data model Render your composition to MP4