hyperframes-core

Build renderable HyperFrames video compositions from HTML with data-attribute timing and GSAP timelines.

Updated Jul 16, 2026
One-click install
npx skills add https://github.com/X-manist/Cohmira --skill hyperframes-core-x-manist
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: hyperframes-core
Source: https://github.com/X-manist/Cohmira/tree/main/src/builtin-plugins/openmontage/.agents/skills/hyperframes-core
Command: npx skills add https://github.com/X-manist/Cohmira --skill hyperframes-core-x-manist

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires gsap, @tailwindcss/browser, and includes references (resource) components.

What problem does it solve? Writing HTML-based video compositions for HyperFrames requires following a strict contract — data-* timing attributes, clip tracks, sub-composition wiring, and deterministic seekable animation — and violating silent rules produces blank frames or unstyled renders that linting tools do not catch. ## Core Features & Use Cases - Composition Contract: Defines the root element requirements, data-start/data-duration/data-track-index timing model, class="clip" visibility rules, and the single paused GSAP timeline registered on window.__timelines. - Sub-Composition Architecture: Explains monolithic vs modular project layouts, <template> transport rules, host-id matching, per-instance variables, and media placement at the host root. - Determinism & Validation Rules: Lists non-negotiable bans (render-time clocks, unseeded randomness, repeat: -1, display/visibility animation) plus a lint/validate/inspect/snapshot/render checklist. - Use Case: An agent authoring a 30-second product video splits it into intro, body, and outro sub-compositions, wires them into a thin index.html orchestrator with root-level audio, and validates each frame before rendering. ## Quick Start Read this skill before writing any composition HTML, then scaffold a minimal standalone composition and run npx hyperframes lint, validate, and inspect to confirm it passes.

Frequently Asked Questions about hyperframes-core

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a HyperFrames composition in HTML?

Create a root div with data-composition-id, data-width, data-height, and data-duration, add timed child clips with data-start, data-duration, and data-track-index, then register one paused GSAP timeline on window.__timelines keyed by the composition id. Validate with npx hyperframes lint, validate, and inspect.

What is the difference between standalone and sub-compositions in HyperFrames?

A standalone composition places its root div directly in the body with no template wrapper. A sub-composition loaded via data-composition-src must wrap everything in a template element, because the runtime clones only template contents and discards the head.

Why does my HyperFrames sub-composition render with unstyled text?

The runtime only clones template contents, so style or script tags in the head are discarded. Move all styles and scripts inside the template, and style the root by #root rather than a class, since CSS scoping drops class selectors on the root element.

Can I put video or audio inside a HyperFrames sub-composition?

No. Video and audio elements must be direct children of the host composition root in index.html. Media inside a sub-composition template or wrapper div is never seeked or decoded and renders blank or black.

Why is Math.random or setTimeout not allowed in HyperFrames animations?

HyperFrames renders by seeking frames independently, so every frame must be reproducible from its time value alone. Render-time clocks, unseeded randomness, network fetches, and timer-driven state desync when frames are sampled out of order.

Does HyperFrames support Tailwind CSS in compositions?

Yes, projects scaffolded with npx hyperframes init --tailwind use the pinned @tailwindcss/browser v4 runtime. Use @theme and @utility instead of v3 directives, avoid responsive breakpoints and interaction variants, and keep render-critical classes as static tokens.