Brand Tokens

Define the visual identity for generated videos — colors, typography, surfaces, and chart styles — as a JSON token file that flows through the entire pipeline. Every generated scene inherits the brand automatically.

What are brand tokens?

Brand tokens separate visual identity from motion choreography. Animatic owns the motion — timing, easing, camera, transitions. Brand tokens own the look — colors, fonts, border radii, shadows.

This means you can apply the same cinematic-dark choreography to completely different brands. A Mercury fintech dashboard and a healthcare analytics platform can share the same animation pipeline but look entirely distinct.

Brand token files live in catalog/brands/ as JSON. Two ship with Animatic:

  • _default — Dark neutral palette (Animatic's built-in)
  • mercury — Mercury-inspired fintech (dark navy, warm off-white text, purple accent)

Token schema

Four categories of tokens, each controlling a different layer of visual identity.

CategoryWhat it controlsExample tokens
colorsAll color values — backgrounds, text, accents, semanticbg_primary, text_primary, accent, trend_up
typographyFont families + type scale with 6 tiersfont_family, hero.size, body.line_height
surfacesCard, panel, input component stylescard.border_radius, panel.shadow
chartData visualization colorsbar_color, axis_color, bar_active

Full token example

{
  "brand_id": "mercury",
  "name": "Mercury",
  "personality": "cinematic-dark",
  "style": "prestige",
  "colors": {
    "bg_primary": "#1a1a2e",
    "bg_surface": "rgba(255,255,255,0.04)",
    "bg_elevated": "#1c1c2e",
    "text_primary": "#e8e0d4",
    "text_secondary": "rgba(232,224,212,0.6)",
    "accent": "#6366f1",
    "trend_up": "#4ade80",
    "trend_down": "#94a3b8",
    "border": "rgba(255,255,255,0.06)",
    "shadow": "rgba(0,0,0,0.6)"
  },
  "typography": {
    "font_family": "'Inter', -apple-system, sans-serif",
    "font_mono": "'JetBrains Mono', monospace",
    "hero": { "size": "48px", "weight": "400", "line_height": "1.1", "letter_spacing": "-0.02em" },
    "tagline": { "size": "36px", "weight": "400", "line_height": "1.2" },
    "heading": { "size": "20px", "weight": "600", "line_height": "1.3" },
    "body": { "size": "16px", "weight": "400", "line_height": "1.5" },
    "caption": { "size": "13px", "weight": "400", "line_height": "1.4" },
    "label": { "size": "14px", "weight": "500", "line_height": "1.3" }
  },
  "surfaces": {
    "card": {
      "background": "rgba(255,255,255,0.04)",
      "border": "1px solid rgba(255,255,255,0.06)",
      "border_radius": "12px",
      "padding": "20px 24px"
    },
    "panel": {
      "background": "#1c1c2e",
      "border_radius": "16px",
      "shadow": "0 24px 80px rgba(0,0,0,0.6)"
    },
    "input": {
      "background": "rgba(255,255,255,0.06)",
      "border_radius": "24px",
      "padding": "16px 20px"
    }
  },
  "chart": {
    "bar_color": "rgba(255,255,255,0.3)",
    "bar_active": "#6366f1",
    "axis_color": "rgba(255,255,255,0.2)"
  }
}

Typography tiers

Six tiers from largest to smallest. Each tier defines size, weight, line height, and optional letter spacing.

TierTypical useMercury example
heroFull-screen headlines48px, weight 400, tight leading
taglineSubtitle or subheading36px, weight 400
headingSection titles20px, weight 600
bodyParagraph text16px, weight 400
captionSmall annotations13px, weight 400
labelUI labels, badges14px, weight 500

Using brand tokens

Three ways to apply a brand to your brief:

Reference by ID

Point to a pre-defined brand file in catalog/brands/:

{
  "brand_id": "mercury",
  "project": { "title": "Mercury Insights Dashboard" },
  "tone": { "mood": "confident", "energy": "medium" }
}

Inline tokens

Pass brand tokens directly in the brief — no file needed:

{
  "brand": {
    "colors": {
      "bg_primary": "#1a1a2e",
      "text_primary": "#e8e0d4",
      "accent": "#6366f1"
    },
    "typography": {
      "font_family": "'Inter', sans-serif"
    }
  },
  "project": { "title": "Custom Brand Video" }
}

Inline tokens are merged with defaults — you only need to specify what differs.

No brand specified

Falls back to _default.json — a dark neutral palette suitable for most cinematic-dark and editorial content.

CSS custom properties

Brand tokens are automatically injected as CSS custom properties into every generated scene:

:root {
  --brand-bg-primary: #1a1a2e;
  --brand-bg-surface: rgba(255,255,255,0.04);
  --brand-text-primary: #e8e0d4;
  --brand-text-secondary: rgba(232,224,212,0.6);
  --brand-accent: #6366f1;
  --brand-font: 'Inter', -apple-system, sans-serif;
  --brand-hero-size: 48px;
  --brand-card-bg: rgba(255,255,255,0.04);
  --brand-card-radius: 12px;
  /* ... all tokens */
}

Scene HTML templates reference these variables with var(--brand-*). This means:

  • Standalone rendering (Remotion) uses the CSS custom properties directly
  • Preset's component renderer can resolve the same tokens through its design system

Architecture

Brand tokens are the contract between Animatic (motion engine) and Preset (design system platform).

brief.jsongenerateScenesscenes/*.jsonanalyzeSceneplanSequenceevaluaterender

At each stage:

  • Brief references a brand_id or provides inline tokens
  • Animatic resolves the brand, injects CSS variables, generates the scene graph and motion timelines
  • Standalone render (Remotion) uses CSS custom properties as-is
  • Preset render resolves tokens through the full design system for higher fidelity components

Animatic owns motion and structure. Preset owns design system and rendering fidelity. Brand tokens are the bridge.

Available brands

BrandPersonalityStyleDescription
_defaultcinematic-darkprestigeDark neutral — Animatic's built-in palette
mercurycinematic-darkprestigeMercury fintech — dark navy, warm off-white, purple accent

To create a custom brand, add a JSON file to catalog/brands/ following the schema above. The pipeline picks it up automatically via brand_id.

Try it

Try asking your AI:

"Generate a video using the mercury brand: 30-second fintech dashboard promo"

"Create a video with custom brand colors: dark green background, white text, orange accent. Product launch style."

"Show me the mercury brand token definition"

"Generate the same video twice — once with mercury brand and once with default. Compare the visual output."

Was this page helpful?