Moods, Themes & Visual Control Without a Canvas

In a traditional video editor, you manually set every font size, color, animation timing, and position. In Workshop Studio, the mood system makes those decisions for you. This guide explains how moods work, how to combine them, and how to override any decision the compiler makes.

What a Mood Does

A mood is a complete visual profile. When you set mood: confident, the compiler gains opinions about:

  • Color palette — background, text, accent, muted, and contrast colors
  • Typography — font weight distribution, letter spacing, text sizing curves
  • Animation — entrance/exit types per intent, easing curves, stagger timing
  • Timing — default tempo, hold durations, beat gaps
  • Camera — preferred camera motion per intent
  • Post-processing — grain intensity, vignette, bloom

Every scene, element, and animation in your video inherits from the mood unless you override it.

The Six Core Moods

Mood Personality Tempo Best For
confident Professional, bold, structured Measured Product launches, SaaS demos, corporate
playful Energetic, casual, colorful Upbeat Social media, casual brand content
dramatic Cinematic, high-contrast, slow Deliberate Trailers, emotional storytelling
elegant Refined, minimal, sophisticated Measured Luxury brands, editorial, portfolios
calm Peaceful, soft, warm Deliberate Wellness, nature, mindfulness
urgent High-energy, contrasting, fast Rapid Sales, limited-time offers, alerts

Additional Moods

Beyond the six core moods, Workshop supports additional mood names like corporate, cinematic, electric, intimate, minimal, and retro. These are variations on the core moods with adjusted character — try them to find the right feel for your content.

Mood Composition

The most powerful feature of the mood system is composition — blending two moods together:

ws
Film "Brand Video"
  mood: confident + elegant

The syntax is BASE + OVERLAY. The two moods blend together — you get the character of both in a single visual treatment. Some useful combinations:

Composition Effect
confident + elegant Professional polish with sophisticated restraint
dramatic + urgent High-stakes cinematic energy
playful + calm Friendly and approachable without being hyperactive
elegant + dramatic Editorial gravitas
urgent + playful Exciting and fun without feeling corporate

In the Studio UI, the Film block shows two dropdowns side by side with a + separator. The left dropdown is the base mood, the right is the overlay. Setting the overlay to — uses the base mood alone.

Custom Color Palettes

Every mood ships with a default palette, but you can override any color:

ws
Film "Custom Colors"
  mood: confident
  palette: { accent: "#FF6B00", primary: "#4C1D95", background: "#1E0A3C" }

Palette Tokens

Token Role Used For
background Primary scene background Scene fills, behind text
backgroundAlt Alternating background Every-other-scene variation
primary Main content color Body text, primary headings
accent Highlight color Emphasized text, CTA elements, shapes
muted Subdued color Captions, secondary info, labels
contrast High-visibility color Text on accent backgrounds

You only need to override the tokens you want to change. Unspecified tokens fall back to the mood's defaults.

Elements reference palette tokens by name:

ws
show "Highlighted text"
  color: accent

show "Secondary info"
  color: muted

ThemePacks

ThemePacks are pre-built combinations of mood settings, palettes, fonts, and post-processing stored as reusable presets. Apply one with:

ws
Film "Themed Video"
  theme: "neon-nights"

A ThemePack can override:

  • Base palette colors
  • Font family and weight distribution
  • Post-processing (grain, vignette, bloom intensity)
  • Default entrance/exit animations

ThemePacks are managed server-side. The Studio UI exposes a theme setting on the Film block where you can type a theme name.

Overriding Compiler Decisions

The mood system makes good defaults, but sometimes you want manual control. Workshop Studio follows a progressive override model — set a property explicitly and the compiler respects it, skip it and the compiler decides.

Size

The compiler assigns font sizes automatically. Override with:

ws
show "Small print"
  size: caption

show "BIG STATEMENT"
  size: hero

Size scale from smallest to largest: caption → body → subhead → title → display → hero.

Entrance & Exit Animations

The compiler selects entrance animations based on the scene's intent and the mood profile. Override with:

ws
show "Pop in"
  enter: pop
  exit: fade

If you set enter but not exit, the compiler chooses an appropriate exit animation automatically.

Position

The compiler places elements automatically. Override with:

ws
show "Bottom left"
  position: lower-left

show "Top center"
  position: upper-third

Weight

Font weight defaults come from the mood profile. Override with:

ws
show "Thin"
  weight: light

show "BOLD"
  weight: black

Layer & Opacity

Stack elements in depth and control transparency:

ws
show shape "circle"
  layer: back
  opacity: 0.15
  color: accent
  size: hero

show "Foreground text"
  layer: front

Case Transform

Force text casing regardless of what was typed:

ws
show "always uppercase"
  case: upper

Post-Processing

Moods apply cinematic post-processing automatically — including film grain, vignette, and bloom. The intensity varies by mood to match its visual personality. ThemePacks can further adjust these values.

Switching Moods to Explore

The fastest way to understand moods is to write a short script and switch between them:

  1. Write a 2–3 scene script with mixed intents (problem → proof → cta).
  2. Set mood: confident and click Preview.
  3. Change to mood: dramatic and preview again.
  4. Try mood: playful + elegant and preview.

Each preview shows completely different color palettes, animations, timing, and typography — all from the same script. This is the core value proposition: one script, many visual treatments.

The compiler never modifies your text content. Switching moods only changes visual presentation — colors, timing, animations, and layout. Your words stay exactly as you wrote them.