Skip to content
Docs
Open Promoeyes
hazes

hazes

Haze Backgrounds — ten ANIMATED premium brand palettes, exact hexes as specified. Groups: Elite Dark & Minimalist (apple-frost, spotify-onyx, stripe-midnight), Rich Earth & Warmth (amber-noir, oatmeal-minimalist, mocha-luxe), Jewel & Editorial (emerald-reserve, rosewood-velvet, damson-plum, lyons-blue), then five GRAYSCALE looks (s11–s15): graphite mist, onyx fog, slate smoke, charcoal vignette, silver noir — blacks and dark grays only, same animated recipe with neutral tones. Recipe per scene: the palette base is the `background(top/bottom)` plate; surface tones ride as broad NORMAL-blend clouds; accent/highlight colors are the glowing lobes — ADDITIVE on dark plates, pigment (normal) on light ones, dark depth tones at very low opacity as vignette shadows on light plates. Same six glow-sprite lobes (match hz0..hz5) ride every scene; `transition=match-move` morphs them (and the camera) across the 1s gap. Every scene ANIMATES: lobes drift (`position`), breathe (`opacity`), one swells (`scale`), some hue-shift (`color`) within the palette. Transform keyframes are RELATIVE to the authored base (position kfs = mm deltas, scale kfs = multipliers); color/opacity tracks are absolute. Every track returns to its first value so the held end pose matches the start. Frame at the z=-1146 haze plane is ~1.3×1.05 m — lobes are 0.6–2.3 m so their radial falloff feathers inside the frame.

Read the rig's notes
Preview: /packages/runtime/index.html?project=promos/primitives/backgrounds/backgrounds.promo
Scenes
15
Kind
reference rig
//
    Haze Backgrounds — ten ANIMATED premium brand palettes, exact hexes as
    specified. Groups: Elite Dark & Minimalist (apple-frost, spotify-onyx,
    stripe-midnight), Rich Earth & Warmth (amber-noir, oatmeal-minimalist,
    mocha-luxe), Jewel & Editorial (emerald-reserve, rosewood-velvet,
    damson-plum, lyons-blue), then five GRAYSCALE looks (s11–s15): graphite
    mist, onyx fog, slate smoke, charcoal vignette, silver noir — blacks and
    dark grays only, same animated recipe with neutral tones.
    Recipe per scene: the palette base is the `background(top/bottom)` plate;
    surface tones ride as broad NORMAL-blend clouds; accent/highlight colors are
    the glowing lobes — ADDITIVE on dark plates, pigment (normal) on light ones,
    dark depth tones at very low opacity as vignette shadows on light plates.
    Same six glow-sprite lobes (match hz0..hz5) ride every scene;
    `transition=match-move` morphs them (and the camera) across the 1s gap.
    Every scene ANIMATES: lobes drift (`position`), breathe (`opacity`), one
    swells (`scale`), some hue-shift (`color`) within the palette. Transform
    keyframes are RELATIVE to the authored base (position kfs = mm deltas,
    scale kfs = multipliers); color/opacity tracks are absolute. Every track
    returns to its first value so the held end pose matches the start.
    Frame at the z=-1146 haze plane is ~1.3×1.05 m — lobes are 0.6–2.3 m so
    their radial falloff feathers inside the frame.

    Preview: /packages/runtime/index.html?project=promos/primitives/backgrounds/backgrounds.promo
promo#backgrounds
  // =======================================================================
  // SCENE 01 · APPLE SPACE & FROST
  // Elite Dark & Minimalist — off-white/silver, space gray shadows
  // =======================================================================
  scene#s01-apple-frost(duration=8 transition=match-move transition-duration=1.0)

    camera(type=perspective fov=42 near=8.5 far=17000 position="0 18 560" look_at="4 10 0")
      position
        0 0 18 560
        8 easeInOutSine 0 24 530
    background(top=#F5F5F7 bottom=#D2D2D7)
    haze#hz0(match=hz0 opacity=0.8 position="-420 260 -1152" color=#D2D2D7 size="2200 1700" pulse=0 decay=0)
      position
        0 0 0 0
        4 easeInOutSine 140 -80 0
        8 easeInOutSine 0 0 0
    haze#hz1(match=hz1 opacity=0.9 position="300 -160 -1150" color=#FFFFFF size="2000 1500" pulse=0 decay=0)
      position
        0 0 0 0
        4 easeInOutSine -120 90 0
        8 easeInOutSine 0 0 0
      opacity
        0 0.9
        4 easeInOutSine 0.7
        8 easeInOutSine 0.9
    haze#hz2(match=hz2 opacity=0.6 position="60 60 -1148" color=#D2D2D7 size="1600 1200" pulse=0 decay=0)
      position
        0 0 0 0
        4 easeInOutSine -90 70 0
        8 easeInOutSine 0 0 0
      scale
        0 1 1 1
        4 easeInOutSine 1.15 1.15 1
        8 easeInOutSine 1 1 1
    haze#hz3(match=hz3 opacity=0.1 position="520 420 -1146" color=#1D1D1F size="1500 1100" pulse=0 decay=0)
      position
        0 0 0 0
        4 easeInOutSine -80 -60 0
        8 easeInOutSine 0 0 0
    haze#hz4(match=hz4 opacity=0.08 position="-520 -420 -1144" color=#1D1D1F size="1400 1000" pulse=0 decay=0)
      position
        0 0 0 0
        4 easeInOutSine 70 60 0
        8 easeInOutSine 0 0 0
    haze#hz5(match=hz5 opacity=0.7 position="0 -480 -1147" color=#FFFFFF size="1900 900" pulse=0 decay=0)
      position
        0 0 0 0
        4 easeInOutSine 90 50 0
        8 easeInOutSine 0 0 0
  // =======================================================================
  // SCENE 02 · SPOTIFY ONYX
  // Elite Dark & Minimalist — pitch black, neon green signature
  // =======================================================================
  scene#s02-spotify-onyx(duration=8 transition=match-move transition-duration=1.0)

    camera(type=perspective fov=42 near=8.5 far=17000 position="10 16 560" look_at="2 10 0")
      position
        0 10 16 560
        8