hyperframes 0.5.0-alpha.8 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/cli.js +7518 -5457
  2. package/dist/commands/contrast-audit.browser.js +2 -0
  3. package/dist/docs/compositions.md +35 -7
  4. package/dist/docs/rendering.md +4 -1
  5. package/dist/hyperframe-runtime.js +82 -32
  6. package/dist/hyperframe.manifest.json +1 -1
  7. package/dist/hyperframe.runtime.iife.js +82 -32
  8. package/dist/skills/gsap/SKILL.md +30 -1
  9. package/dist/skills/hyperframes/SKILL.md +165 -39
  10. package/dist/skills/hyperframes/house-style.md +3 -1
  11. package/dist/skills/hyperframes/patterns.md +73 -0
  12. package/dist/skills/hyperframes/references/beat-direction.md +102 -0
  13. package/dist/skills/hyperframes/references/design-picker.md +117 -0
  14. package/dist/skills/hyperframes/references/motion-principles.md +73 -0
  15. package/dist/skills/hyperframes/references/narration.md +92 -0
  16. package/dist/skills/hyperframes/references/prompt-expansion.md +68 -0
  17. package/dist/skills/hyperframes/references/techniques.md +387 -0
  18. package/dist/skills/hyperframes/references/transcript-guide.md +1 -45
  19. package/dist/skills/hyperframes/references/video-composition.md +62 -0
  20. package/dist/skills/hyperframes/scripts/contrast-report.mjs +10 -0
  21. package/dist/skills/hyperframes/templates/design-picker.html +1432 -0
  22. package/dist/skills/hyperframes/visual-styles.md +339 -107
  23. package/dist/skills/hyperframes-cli/SKILL.md +21 -27
  24. package/dist/studio/assets/hyperframes-player-CoI5h1xv.js +353 -0
  25. package/dist/studio/assets/index-BKjcNNNd.css +1 -0
  26. package/dist/studio/assets/index-CqiisJmo.js +93 -0
  27. package/dist/studio/index.html +2 -2
  28. package/dist/templates/_shared/AGENTS.md +7 -7
  29. package/dist/templates/_shared/CLAUDE.md +15 -7
  30. package/package.json +4 -2
  31. package/dist/skills/hyperframes/references/tts.md +0 -75
  32. package/dist/studio/assets/hyperframes-player-vibA20NC.js +0 -198
  33. package/dist/studio/assets/index-0Zt0t13W.css +0 -1
  34. package/dist/studio/assets/index-C9f5eif8.js +0 -105
@@ -1,14 +1,14 @@
1
1
  # Visual Style Library
2
2
 
3
- Named visual identities for HyperFrames videos. Each style is grounded in a real graphic design tradition. Use them to give your video a specific visual personality, not just generic "clean" or "bold."
3
+ Named visual identities for HyperFrames videos. Each style is grounded in a real graphic design tradition and expressed as a DESIGN.md-compatible token block. Use them as starters copy the YAML into your project's `design.md` front matter, then customize.
4
4
 
5
5
  **How to pick:** Match mood first, content second. Ask: _"What should the viewer FEEL?"_
6
6
 
7
- **How to use:** Reference the style in your scene plan. Translate the style's principles into concrete composition decisions palette choice, font selection, entrance patterns, transition type, ambient motion feel.
7
+ **How to use:** Copy the style's YAML token block into `design.md` front matter. Add `## Overview`, `## Colors`, `## Typography`, `## Elevation`, `## Components`, `## Do's and Don'ts` prose sections to complete the file.
8
8
 
9
9
  ## Quick Reference
10
10
 
11
- | Style | Mood | Best for | Primary shader |
11
+ | Style | Mood | Best for | Transition shader |
12
12
  | --------------- | --------------------- | ---------------------------------- | --------------------------------- |
13
13
  | Swiss Pulse | Clinical, precise | SaaS, data, dev tools, metrics | Cinematic Zoom or SDF Iris |
14
14
  | Velvet Standard | Premium, timeless | Luxury, enterprise, keynotes | Cross-Warp Morph |
@@ -25,161 +25,395 @@ Named visual identities for HyperFrames videos. Each style is grounded in a real
25
25
 
26
26
  **Mood:** Clinical, precise | **Best for:** SaaS dashboards, developer tools, APIs, metrics
27
27
 
28
- - Black (`#1a1a1a`), white, ONE accent — electric blue (`#0066FF`) or amber (`#FFB300`)
29
- - Helvetica or Inter Bold for headlines, Regular for labels. Numbers large (80–120px)
30
- - Grid-locked compositions. Every element snaps to an invisible 12-column grid
31
- - Animated counters count up from 0. Hard cuts, no decorative transitions
32
- - Transitions: Cinematic Zoom or SDF Iris (precise, geometric)
33
-
34
- **GSAP signature:** `expo.out`, `power4.out`. Entries are fast and snap into place. Nothing floats.
35
-
36
- ```
37
- Swiss Pulse: Black/white + one electric accent. Grid-locked compositions.
38
- Numbers dominate the frame at 80-120px. Counter animations from 0.
39
- Hard cuts or geometric transitions. Nothing decorative.
28
+ ```yaml
29
+ name: Swiss Pulse
30
+ colors:
31
+ primary: "#1a1a1a"
32
+ on-primary: "#ffffff"
33
+ accent: "#0066FF"
34
+ typography:
35
+ headline:
36
+ fontFamily: Helvetica Neue
37
+ fontSize: 5rem
38
+ fontWeight: 700
39
+ label:
40
+ fontFamily: Inter
41
+ fontSize: 0.875rem
42
+ fontWeight: 400
43
+ stat:
44
+ fontFamily: Helvetica Neue
45
+ fontSize: 7rem
46
+ fontWeight: 700
47
+ rounded:
48
+ none: 0px
49
+ sm: 2px
50
+ spacing:
51
+ sm: 8px
52
+ md: 16px
53
+ lg: 32px
54
+ motion:
55
+ energy: high
56
+ easing:
57
+ entry: "expo.out"
58
+ exit: "power4.in"
59
+ ambient: "none"
60
+ duration:
61
+ entrance: 0.4
62
+ hold: 1.5
63
+ transition: 0.6
64
+ atmosphere:
65
+ - grid-lines
66
+ - registration-marks
67
+ transition: cinematic-zoom
40
68
  ```
41
69
 
70
+ Grid-locked compositions. Every element snaps to an invisible 12-column grid. Numbers dominate the frame at 80–120px. Animated counters count up from 0. Hard cuts, no decorative transitions. Nothing floats.
71
+
42
72
  ---
43
73
 
44
74
  ## 2. Velvet Standard — Massimo Vignelli
45
75
 
46
76
  **Mood:** Premium, timeless | **Best for:** Luxury products, enterprise software, keynotes, investor decks
47
77
 
48
- - Black, white, ONE rich accent — deep navy (`#1a237e`) or gold (`#c9a84c`)
49
- - Thin sans-serif, ALL CAPS, wide letter-spacing (`0.15em+`)
50
- - Generous negative space. Symmetrical, centered, architectural precision
51
- - Slow, deliberate. Sequential reveals with long holds. No frantic motion
52
- - Transitions: Cross-Warp Morph (elegant, organic flow between scenes)
53
-
54
- **GSAP signature:** `sine.inOut`, `power1`. Nothing snaps — everything glides with intention.
55
-
56
- ```
57
- Velvet Standard: Black, white, one rich accent. Thin ALL CAPS type with wide tracking.
58
- Generous negative space. Sequential reveals, long holds.
59
- Cross-Warp Morph transitions. Slow and deliberate — luxury takes its time.
78
+ ```yaml
79
+ name: Velvet Standard
80
+ colors:
81
+ primary: "#0a0a0a"
82
+ on-primary: "#ffffff"
83
+ accent: "#1a237e"
84
+ typography:
85
+ headline:
86
+ fontFamily: Inter
87
+ fontSize: 3rem
88
+ fontWeight: 300
89
+ letterSpacing: 0.15em
90
+ textTransform: uppercase
91
+ body:
92
+ fontFamily: Inter
93
+ fontSize: 1rem
94
+ fontWeight: 300
95
+ lineHeight: 1.6
96
+ rounded:
97
+ sm: 0px
98
+ md: 2px
99
+ spacing:
100
+ sm: 16px
101
+ md: 32px
102
+ lg: 64px
103
+ motion:
104
+ energy: calm
105
+ easing:
106
+ entry: "sine.inOut"
107
+ exit: "power1.in"
108
+ ambient: "sine.inOut"
109
+ duration:
110
+ entrance: 1.2
111
+ hold: 3.0
112
+ transition: 1.5
113
+ atmosphere:
114
+ - subtle-grain
115
+ - hairline-rules
116
+ transition: cross-warp-morph
60
117
  ```
61
118
 
119
+ Generous negative space. Symmetrical, centered, architectural precision. Thin sans-serif, ALL CAPS, wide letter-spacing. Sequential reveals with long holds. Nothing snaps — everything glides with intention. Luxury takes its time.
120
+
62
121
  ---
63
122
 
64
123
  ## 3. Deconstructed — Neville Brody
65
124
 
66
125
  **Mood:** Industrial, raw | **Best for:** Tech news, developer launches, security products, punk-energy reveals
67
126
 
68
- - Dark grey (`#1a1a1a`), rust orange (`#D4501E`), raw white (`#f0f0f0`)
69
- - Type at angles, overlapping edges, escaping frames. Bold industrial weight
70
- - Gritty textures: scan-line effects, glitch artifacts baked into the design
71
- - Text SLAMS and SHATTERS. Letters scramble then snap to final position
72
- - Transitions: Glitch shader or Whip Pan (breaks the rules, feels aggressive)
73
-
74
- **GSAP signature:** `back.out(2.5)`, `steps(8)`, `elastic.out(1.2, 0.4)`. Intentional irregularity.
75
-
76
- ```
77
- Deconstructed: Dark grey #1a1a1a + rust orange #D4501E. Type at angles, escaping frames.
78
- Scan-line glitch overlays. Text SLAMS and scrambles into place.
79
- Glitch shader transitions. Industrial and raw — nothing should feel polished.
127
+ ```yaml
128
+ name: Deconstructed
129
+ colors:
130
+ primary: "#1a1a1a"
131
+ on-primary: "#f0f0f0"
132
+ accent: "#D4501E"
133
+ typography:
134
+ headline:
135
+ fontFamily: Space Grotesk
136
+ fontSize: 4rem
137
+ fontWeight: 700
138
+ label:
139
+ fontFamily: Space Mono
140
+ fontSize: 0.75rem
141
+ fontWeight: 700
142
+ textTransform: uppercase
143
+ rounded:
144
+ none: 0px
145
+ spacing:
146
+ sm: 4px
147
+ md: 12px
148
+ lg: 24px
149
+ motion:
150
+ energy: high
151
+ easing:
152
+ entry: "back.out(2.5)"
153
+ exit: "steps(8)"
154
+ ambient: "elastic.out(1.2, 0.4)"
155
+ duration:
156
+ entrance: 0.3
157
+ hold: 1.0
158
+ transition: 0.5
159
+ atmosphere:
160
+ - scan-lines
161
+ - glitch-artifacts
162
+ - grain-overlay
163
+ transition: glitch
80
164
  ```
81
165
 
166
+ Type at angles, overlapping edges, escaping frames. Bold industrial weight. Gritty textures: scan-line effects, glitch artifacts baked into design. Text SLAMS and SHATTERS. Letters scramble then snap to final position. Intentional irregularity — nothing should feel polished.
167
+
82
168
  ---
83
169
 
84
170
  ## 4. Maximalist Type — Paula Scher
85
171
 
86
172
  **Mood:** Loud, kinetic | **Best for:** Big product launches, milestone announcements, high-energy hype videos
87
173
 
88
- - Bold saturated: red (`#E63946`), yellow (`#FFD60A`), black, white — maximum contrast
89
- - Text IS the visual. Overlapping type layers at different scales and angles, filling 50–80% of frame
90
- - Everything is kinetic: slamming, sliding, scaling. 2–3 second rapid-fire scenes
91
- - Text layered OVER footage — never empty backgrounds
92
- - Transitions: Ridged Burn (explosive, dramatic, impossible to ignore)
93
-
94
- **GSAP signature:** `expo.out`, `back.out(1.8)`. Fast arrivals, hard stops.
95
-
96
- ```
97
- Maximalist Type: Red, yellow, black, white — max contrast. Text IS the visual.
98
- Overlapping at different scales, 50-80% of frame. Everything in motion.
99
- Ridged Burn transitions. No static moments — kinetic energy throughout.
174
+ ```yaml
175
+ name: Maximalist Type
176
+ colors:
177
+ primary: "#0a0a0a"
178
+ on-primary: "#ffffff"
179
+ accent-red: "#E63946"
180
+ accent-yellow: "#FFD60A"
181
+ typography:
182
+ headline:
183
+ fontFamily: Anton
184
+ fontSize: 8rem
185
+ fontWeight: 400
186
+ textTransform: uppercase
187
+ subhead:
188
+ fontFamily: Space Grotesk
189
+ fontSize: 3rem
190
+ fontWeight: 700
191
+ rounded:
192
+ none: 0px
193
+ spacing:
194
+ sm: 0px
195
+ md: 8px
196
+ motion:
197
+ energy: high
198
+ easing:
199
+ entry: "expo.out"
200
+ exit: "back.out(1.8)"
201
+ ambient: "power3.out"
202
+ duration:
203
+ entrance: 0.3
204
+ hold: 0.8
205
+ transition: 0.4
206
+ atmosphere:
207
+ - type-layers
208
+ - color-blocks
209
+ transition: ridged-burn
100
210
  ```
101
211
 
212
+ Text IS the visual. Overlapping type layers at different scales and angles, filling 50–80% of frame. Bold saturated colors — maximum contrast. Everything kinetic: slamming, sliding, scaling. 2–3 second rapid-fire scenes. No static moments. Fast arrivals, hard stops.
213
+
102
214
  ---
103
215
 
104
216
  ## 5. Data Drift — Refik Anadol
105
217
 
106
218
  **Mood:** Futuristic, immersive | **Best for:** AI products, ML platforms, data companies, speculative tech
107
219
 
108
- - Iridescent: deep black (`#0a0a0a`), electric purple (`#7c3aed`), cyan (`#06b6d4`)
109
- - Thin futuristic sans-serif — floating, weightless, minimal
110
- - Fluid morphing compositions. Extreme scale shifts (micro → macro)
111
- - Particles coalesce into numbers. Light traces data paths through the frame
112
- - Transitions: Gravitational Lens or Domain Warp (otherworldly distortion)
113
-
114
- **GSAP signature:** `sine.inOut`, `power2.out`. Smooth, continuous, organic. Nothing hard.
115
-
116
- ```
117
- Data Drift: Deep black #0a0a0a with electric purple #7c3aed and cyan #06b6d4.
118
- Thin futuristic type, minimal text. Particles coalesce into numbers.
119
- Gravitational Lens or Domain Warp transitions. Fluid, immersive, otherworldly.
220
+ ```yaml
221
+ name: Data Drift
222
+ colors:
223
+ primary: "#0a0a0a"
224
+ on-primary: "#e0e0e0"
225
+ accent-purple: "#7c3aed"
226
+ accent-cyan: "#06b6d4"
227
+ typography:
228
+ headline:
229
+ fontFamily: Inter
230
+ fontSize: 2.5rem
231
+ fontWeight: 200
232
+ letterSpacing: 0.05em
233
+ body:
234
+ fontFamily: Inter
235
+ fontSize: 0.875rem
236
+ fontWeight: 300
237
+ rounded:
238
+ sm: 4px
239
+ md: 12px
240
+ full: 9999px
241
+ spacing:
242
+ sm: 16px
243
+ md: 32px
244
+ lg: 64px
245
+ motion:
246
+ energy: moderate
247
+ easing:
248
+ entry: "sine.inOut"
249
+ exit: "power2.out"
250
+ ambient: "sine.inOut"
251
+ duration:
252
+ entrance: 1.0
253
+ hold: 2.5
254
+ transition: 1.5
255
+ atmosphere:
256
+ - particle-field
257
+ - light-traces
258
+ - radial-glow
259
+ transition: gravitational-lens
120
260
  ```
121
261
 
262
+ Thin futuristic sans-serif — floating, weightless, minimal. Fluid morphing compositions. Extreme scale shifts (micro → macro). Particles coalesce into numbers. Light traces data paths through the frame. Smooth, continuous, organic. Nothing hard.
263
+
122
264
  ---
123
265
 
124
266
  ## 6. Soft Signal — Stefan Sagmeister
125
267
 
126
268
  **Mood:** Intimate, warm | **Best for:** Wellness brands, personal stories, lifestyle products, human-centered apps
127
269
 
128
- - Warm amber (`#F5A623`), cream (`#FFF8EC`), dusty rose (`#C4A3A3`), sage green (`#8FAF8C`)
129
- - Handwritten-style or humanist serif fonts. Personal, lowercase, delicate
130
- - Close-up framing feel: single element fills the frame. Nothing feels corporate
131
- - Slow drifts and floats, never snaps. Soft organic motion throughout
132
- - Transitions: Thermal Distortion (warm, flowing, like heat shimmer)
133
-
134
- **GSAP signature:** `sine.inOut`, `power1.inOut`. Everything breathes.
135
-
136
- ```
137
- Soft Signal: Warm amber, cream, dusty rose, sage green. Humanist or handwritten type.
138
- Single elements fill the frame — intimate, never corporate.
139
- Slow drifts and floats throughout. Thermal Distortion transitions.
140
- Nothing should feel hurried or polished.
270
+ ```yaml
271
+ name: Soft Signal
272
+ colors:
273
+ primary: "#FFF8EC"
274
+ on-primary: "#2a2a2a"
275
+ accent-amber: "#F5A623"
276
+ accent-rose: "#C4A3A3"
277
+ accent-sage: "#8FAF8C"
278
+ typography:
279
+ headline:
280
+ fontFamily: Playfair Display
281
+ fontSize: 3rem
282
+ fontWeight: 400
283
+ fontStyle: italic
284
+ body:
285
+ fontFamily: Inter
286
+ fontSize: 1rem
287
+ fontWeight: 300
288
+ lineHeight: 1.7
289
+ rounded:
290
+ sm: 8px
291
+ md: 16px
292
+ lg: 24px
293
+ full: 9999px
294
+ spacing:
295
+ sm: 12px
296
+ md: 24px
297
+ lg: 48px
298
+ motion:
299
+ energy: calm
300
+ easing:
301
+ entry: "sine.inOut"
302
+ exit: "power1.inOut"
303
+ ambient: "sine.inOut"
304
+ duration:
305
+ entrance: 1.0
306
+ hold: 3.0
307
+ transition: 1.5
308
+ atmosphere:
309
+ - soft-gradient
310
+ - warm-grain
311
+ transition: thermal-distortion
141
312
  ```
142
313
 
314
+ Handwritten-style or humanist serif fonts. Personal, lowercase, delicate. Close-up framing: single element fills the frame. Slow drifts and floats, never snaps. Soft organic motion. Nothing should feel hurried or polished. Intimate, never corporate.
315
+
143
316
  ---
144
317
 
145
318
  ## 7. Folk Frequency — Eduardo Terrazas
146
319
 
147
320
  **Mood:** Cultural, vivid | **Best for:** Consumer apps, food platforms, community products, festive launches
148
321
 
149
- - Vivid folk: hot pink (`#FF1493`), cobalt blue (`#0047AB`), sun yellow (`#FFE000`), emerald (`#009B77`)
150
- - Bold warm rounded type. Pattern and repetition — folk art rhythm and density
151
- - Layered compositions with rich visual texture. Every frame feels handcrafted
152
- - Colorful motion: elements bounce, pop, and spin into place with joy
153
- - Transitions: Swirl Vortex or Ripple Waves (hypnotic, celebratory)
154
-
155
- **GSAP signature:** `back.out(1.6)`, `elastic.out(1, 0.5)`. Overshoots feel intentional.
156
-
157
- ```
158
- Folk Frequency: Hot pink #FF1493, cobalt blue, sun yellow, emerald. Bold rounded type.
159
- Pattern and repetition throughout. Layered, dense, handcrafted feeling.
160
- Swirl Vortex or Ripple Waves transitions. Joyful, celebratory energy.
322
+ ```yaml
323
+ name: Folk Frequency
324
+ colors:
325
+ primary: "#ffffff"
326
+ on-primary: "#1a1a1a"
327
+ accent-pink: "#FF1493"
328
+ accent-blue: "#0047AB"
329
+ accent-yellow: "#FFE000"
330
+ accent-green: "#009B77"
331
+ typography:
332
+ headline:
333
+ fontFamily: Fredoka One
334
+ fontSize: 4rem
335
+ fontWeight: 400
336
+ body:
337
+ fontFamily: Nunito
338
+ fontSize: 1rem
339
+ fontWeight: 600
340
+ rounded:
341
+ sm: 8px
342
+ md: 16px
343
+ lg: 32px
344
+ full: 9999px
345
+ spacing:
346
+ sm: 8px
347
+ md: 16px
348
+ lg: 32px
349
+ motion:
350
+ energy: high
351
+ easing:
352
+ entry: "back.out(1.6)"
353
+ exit: "elastic.out(1, 0.5)"
354
+ ambient: "sine.inOut"
355
+ duration:
356
+ entrance: 0.5
357
+ hold: 1.5
358
+ transition: 0.8
359
+ atmosphere:
360
+ - pattern-tiles
361
+ - confetti-burst
362
+ - color-blocks
363
+ transition: swirl-vortex
161
364
  ```
162
365
 
366
+ Bold warm rounded type. Pattern and repetition — folk art rhythm and density. Layered compositions with rich visual texture. Every frame feels handcrafted. Colorful motion: elements bounce, pop, spin into place with joy. Overshoots feel intentional. Celebratory energy.
367
+
163
368
  ---
164
369
 
165
370
  ## 8. Shadow Cut — Hans Hillmann
166
371
 
167
372
  **Mood:** Dark, cinematic | **Best for:** Security products, dramatic reveals, investigative content, intense launches
168
373
 
169
- - Near-monochrome: deep blacks (`#0a0a0a`), cold greys (`#3a3a3a`), stark white + blood red (`#C1121F`) or toxic green (`#39FF14`)
170
- - Sharp angular text like film noir title cards. Heavy contrast, no softness
171
- - Heavy shadow — elements emerge from darkness. Reveal is the narrative
172
- - Slow creeping push-ins, dramatic scale reveals, silence before the hit
173
- - Transitions: Domain Warp (dissolves reality itself before revealing the next scene)
174
-
175
- **GSAP signature:** `power4.in` for exits, `power3.out` for dramatic reveals. The pause before the hit matters.
176
-
177
- ```
178
- Shadow Cut: Deep blacks #0a0a0a, cold greys, stark white + one accent (blood red or toxic green).
179
- Sharp angular type, film noir aesthetic. Elements emerge from darkness.
180
- Slow creeping push-ins. Domain Warp transitions. The reveal IS the story.
374
+ ```yaml
375
+ name: Shadow Cut
376
+ colors:
377
+ primary: "#0a0a0a"
378
+ on-primary: "#f0f0f0"
379
+ surface: "#3a3a3a"
380
+ accent: "#C1121F"
381
+ typography:
382
+ headline:
383
+ fontFamily: Oswald
384
+ fontSize: 4rem
385
+ fontWeight: 700
386
+ textTransform: uppercase
387
+ body:
388
+ fontFamily: Inter
389
+ fontSize: 0.875rem
390
+ fontWeight: 400
391
+ rounded:
392
+ none: 0px
393
+ sm: 2px
394
+ spacing:
395
+ sm: 8px
396
+ md: 16px
397
+ lg: 48px
398
+ motion:
399
+ energy: moderate
400
+ easing:
401
+ entry: "power3.out"
402
+ exit: "power4.in"
403
+ ambient: "sine.inOut"
404
+ duration:
405
+ entrance: 0.8
406
+ hold: 2.5
407
+ transition: 1.2
408
+ atmosphere:
409
+ - deep-shadow
410
+ - vignette
411
+ - grain-overlay
412
+ transition: domain-warp
181
413
  ```
182
414
 
415
+ Near-monochrome: deep blacks, cold greys, stark white + one blood accent. Sharp angular text like film noir title cards. Heavy contrast, no softness. Elements emerge from darkness — reveal is the narrative. Slow creeping push-ins, dramatic scale reveals. The pause before the hit matters. Domain Warp dissolves reality before the next scene.
416
+
183
417
  ---
184
418
 
185
419
  ## Mood → Style Guide
@@ -199,13 +433,11 @@ Slow creeping push-ins. Domain Warp transitions. The reveal IS the story.
199
433
 
200
434
  ## Creating Custom Styles
201
435
 
202
- These 8 styles are examples — not constraints. Create your own by:
436
+ These 8 styles are starters — not constraints. Create your own:
203
437
 
204
438
  1. **Name it** after a designer, art movement, or cultural reference
205
- 2. **Palette**: 2-3 colors max. Declare explicit hex values
206
- 3. **Typography**: One family, two weights. State the role of each
207
- 4. **Motion rules**: How fast? Snappy or fluid? Overshoot or precision?
208
- 5. **Transition**: Which shader matches the energy?
209
- 6. **What NOT to do**: 2-3 explicit anti-patterns for this style
439
+ 2. **Write YAML tokens** — `colors` (2–5 tokens), `typography` (2–3 scales), `rounded`, `spacing`, `motion` (energy + easing + duration + atmosphere + transition)
440
+ 3. **Add prose** one paragraph describing the feel, what to do, what to avoid
441
+ 4. **Token references** use `{colors.accent}`, `{typography.headline}` in component definitions
210
442
 
211
- The pattern: **named stylepalette typographymotion rules transition → avoids.**
443
+ The pattern: **YAML tokens (what) prose rationale (why)components (how they combine).**
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: hyperframes-cli
3
- description: HyperFrames CLI tool — hyperframes init, lint, inspect, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark. Use when scaffolding a project, linting, validating, inspecting visual layout in compositions, previewing in the studio, rendering to video, transcribing audio, generating TTS, or troubleshooting the HyperFrames environment.
3
+ description: HyperFrames CLI dev loop `npx hyperframes` for scaffolding (init), validation (lint, inspect), preview, render, and environment troubleshooting (doctor, browser, info, upgrade). Use when running any of these commands or troubleshooting the HyperFrames build/render environment. For asset preprocessing commands (`tts`, `transcribe`, `remove-background`), invoke the `hyperframes-media` skill instead.
4
4
  ---
5
5
 
6
6
  # HyperFrames CLI
@@ -25,6 +25,7 @@ npx hyperframes init my-video # interactive wizard
25
25
  npx hyperframes init my-video --example warm-grain # pick an example
26
26
  npx hyperframes init my-video --video clip.mp4 # with video file
27
27
  npx hyperframes init my-video --audio track.mp3 # with audio file
28
+ npx hyperframes init my-video --example blank --tailwind # with Tailwind v4 browser runtime
28
29
  npx hyperframes init my-video --non-interactive # skip prompts (CI/agents)
29
30
  ```
30
31
 
@@ -32,6 +33,8 @@ Templates: `blank`, `warm-grain`, `play-mode`, `swiss-grid`, `vignelli`, `decisi
32
33
 
33
34
  `init` creates the right file structure, copies media, transcribes audio with Whisper, and installs AI coding skills. Use it instead of creating files by hand.
34
35
 
36
+ When using `--tailwind`, invoke the `tailwind` skill before editing classes or theme tokens. The scaffold uses Tailwind v4.2 via the browser runtime, not Studio's Tailwind v3 setup.
37
+
35
38
  ## Linting
36
39
 
37
40
  ```bash
@@ -98,37 +101,28 @@ npx hyperframes render --format webm # transparent WebM
98
101
  npx hyperframes render --docker # byte-identical
99
102
  ```
100
103
 
101
- | Flag | Options | Default | Notes |
102
- | -------------- | --------------------- | -------------------------- | --------------------------- |
103
- | `--output` | path | renders/name_timestamp.mp4 | Output path |
104
- | `--fps` | 24, 30, 60 | 30 | 60fps doubles render time |
105
- | `--quality` | draft, standard, high | standard | draft for iterating |
106
- | `--format` | mp4, webm | mp4 | WebM supports transparency |
107
- | `--workers` | 1-8 or auto | auto | Each spawns Chrome |
108
- | `--docker` | flag | off | Reproducible output |
109
- | `--gpu` | flag | off | GPU-accelerated encoding |
110
- | `--strict` | flag | off | Fail on lint errors |
111
- | `--strict-all` | flag | off | Fail on errors AND warnings |
104
+ | Flag | Options | Default | Notes |
105
+ | -------------------- | --------------------- | -------------------------- | ------------------------------------------------------------------ |
106
+ | `--output` | path | renders/name_timestamp.mp4 | Output path |
107
+ | `--fps` | 24, 30, 60 | 30 | 60fps doubles render time |
108
+ | `--quality` | draft, standard, high | standard | draft for iterating |
109
+ | `--format` | mp4, webm | mp4 | WebM supports transparency |
110
+ | `--workers` | 1-8 or auto | auto | Each spawns Chrome |
111
+ | `--docker` | flag | off | Reproducible output |
112
+ | `--gpu` | flag | off | GPU-accelerated encoding |
113
+ | `--strict` | flag | off | Fail on lint errors |
114
+ | `--strict-all` | flag | off | Fail on errors AND warnings |
115
+ | `--variables` | JSON object | — | Override variable values declared in `data-composition-variables` |
116
+ | `--variables-file` | path | — | JSON file with variable values (alternative to `--variables`) |
117
+ | `--strict-variables` | flag | off | Fail render on undeclared keys or type mismatches in `--variables` |
112
118
 
113
119
  **Quality guidance:** `draft` while iterating, `standard` for review, `high` for final delivery.
114
120
 
115
- ## Transcription
116
-
117
- ```bash
118
- npx hyperframes transcribe audio.mp3
119
- npx hyperframes transcribe video.mp4 --model medium.en --language en
120
- npx hyperframes transcribe subtitles.srt # import existing
121
- npx hyperframes transcribe subtitles.vtt
122
- npx hyperframes transcribe openai-response.json
123
- ```
121
+ **Parametrized renders:** the composition declares its variables on the `<html>` root with **`data-composition-variables`** — a JSON **array of declarations** (`{id, type, label, default}` per entry) that defines the schema. Scripts inside read the resolved values via `window.__hyperframes.getVariables()`. The CLI **`--variables '{"title":"Q4 Report"}'`** is a JSON **object keyed by id** that overrides those declared defaults for one render; missing keys fall through, so the same composition runs unchanged in dev preview and in production. (Sub-comp hosts can also override per-instance with **`data-variable-values`** — same object shape, scoped to one mount of the sub-composition. See the `hyperframes` skill for the full pattern.)
124
122
 
125
- ## Text-to-Speech
123
+ ## Asset Preprocessing
126
124
 
127
- ```bash
128
- npx hyperframes tts "Text here" --voice af_nova --output narration.wav
129
- npx hyperframes tts script.txt --voice bf_emma
130
- npx hyperframes tts --list # show all voices
131
- ```
125
+ `npx hyperframes tts`, `transcribe`, and `remove-background` produce assets (narration audio, word-level transcripts, transparent video) that get dropped into a composition. Each downloads its own model on first run. For voice selection, whisper model rules (the `.en`-translates-non-English gotcha), output format choice (VP9 alpha WebM vs ProRes), and the TTS → transcribe → captions chain, invoke the `hyperframes-media` skill.
132
126
 
133
127
  ## Troubleshooting
134
128