Moods and Themes
Mood is Workshop's highest-leverage creative control. A single word — confident, playful, dramatic — sets palette, typography, timing, easing, spring physics, entrance styles, and transition behavior across your entire video.
ThemePacks go further: they encode your brand as JSON so every video compiles on-brand by construction.
The Six Moods
Workshop ships six core moods. Each has been designed as a complete visual system.
| Mood | Character | Use Case |
|---|---|---|
calm |
Soft, spacious, unhurried | Wellness, education, meditation, onboarding |
confident |
Professional, structured, medium energy | Product launches, SaaS demos, corporate |
dramatic |
High contrast, slow deliberate motion | Brand films, announcements, keynotes |
elegant |
Refined, tasteful, restrained | Luxury, finance, premium services |
playful |
Bouncy, warm, casual | Social media, youth brands, community |
urgent |
Fast, punchy, high energy | Sales, limited offers, breaking news |
Set the mood in your Film block:
Film "My Video"
mood: confident
What Mood Controls
Each mood resolves to roughly 50 design parameters. These include:
- Palette — background color, primary text, accent, muted, contrast
- Typography — font family, letter spacing, weight defaults
- Timing — entrance duration, exit duration, beat duration, hold multiplier
- Easing — spring mass, tension, friction, damping
- Entrances — which entrance styles are weighted most heavily
- Transitions — default scene transition type and duration
- Spacing — margins, line height, element gaps
- Camera — default camera behavior (still, breathe, drift)
You do not set these individually. The mood handles them as a coherent system.
Mood Variants
Each of the six core moods has five variants, giving Workshop 30 distinct visual identities. Variants shift the mood's expression while maintaining its character — for example, a bolder version of confident or a more muted version of playful.
Mood Composition
Combine two moods with the + operator. The first mood controls kinetics (timing, easing, animation), and the second controls surface (palette, typography).
Film "Quarterly Review"
mood: elegant + corporate
This gives you the refined timing and restraint of elegant with the color palette and typographic choices of a corporate identity.
Tempo
Tempo adjusts the overall pacing independently from mood:
| Tempo | Character |
|---|---|
deliberate |
Slow, cinematic, lots of breathing room |
measured |
Default. Balanced pacing |
upbeat |
Energetic, shorter holds |
rapid |
Fast-paced, punchy, minimal pauses |
Film "Social Clip"
mood: urgent
tempo: rapid
Tempo modifies the hold durations and transition speeds that the mood has set. It does not change palette or typography.
ThemePacks
A ThemePack is a JSON object that overrides mood defaults with your brand's specific colors, fonts, and timing preferences. When a ThemePack is applied, every video compiled with it uses your brand's palette instead of the mood's defaults.
Apply a ThemePack at compile time:
curl -X POST https://api.ws.video/api/compile \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-H "x-org-id: YOUR_ORG_ID" \
-d '{
"source": "Film \"Demo\"\n mood: confident\n\nScene \"Hello\"\n show \"Hello World\"\n size: hero\n enter: rise",
"theme": "corporate-blue"
}'
The theme parameter references a ThemePack registered to your org. See Brand Governance for creating and managing ThemePacks.
When to Use Mood vs. Theme
Use mood when you want Workshop to make all the design decisions. Pick the mood that matches the emotional register of your content and let the compiler handle the rest.
Add a ThemePack when you need brand-specific colors and fonts. The ThemePack overrides the mood's palette and typography while preserving its timing, easing, and motion character.
Compose moods when you want the motion character of one mood with the visual surface of another.
Next Steps
- Moods Reference — complete specification of all six mood profiles
- ThemePacks — how brand-as-code works architecturally
- Brand Governance — creating, registering, and managing ThemePacks via the API