Skip to content

Slide 01 / 07

Click the deck, then use the arrow keys like a real presentation.

Readout

Family
Spatial
Theme
Dark
Type
Outfit
Accent
#3ee6b5
Corners
20px
Moves on
Keys, swipe
Studio
Ready

12 of 30, Spatial

Orbit.

Slides stand as panels on a 3D ring; moving forward turns the ring so the next panel swings to the front.

Look
As designed

How it moves

Cinematic and spatial, with the neighbours receding at an angle, dimmed and out of focus, over a perspective floor grid. Best for short keynote-style decks where the journey between slides is part of the show.

This is the specification the Studio sends to the model, written for Orbit's own look. Change the look in the Studio and every value follows.

Palette

  • Background#0a0f1f
  • Text#e9edff
  • Muted#8b93b8
  • Accent#3ee6b5
  • Surfacergba(255,255,255,.05)
  • Hairlinergba(255,255,255,.12)

Type: Outfit. Corners: 20px.

Layout

  • Ground. #0a0f1f with a soft radial glow behind the ring: radial-gradient(60% 50% at 50% 60%, <bg mixed 24% toward #3b5bdb>, transparent 70%) (on the default ground that is #14204a fading into #0a0f1f). The stage is fixed, inset 0, overflow hidden, and is the camera: perspective 1700px, perspective-origin 50% 45%.
  • Every slide is a 16:10 panel standing on a ring around the viewer's focus. Panel width --w = min(60vw, 118vh), height --h = --w × 0.625 (768×480 at 1280×720, 1152×720 at 1920×1080). The ring element (.orbit) sits at the stage centre with transform-style preserve-3d and transform: translateZ(-R) rotateY(-i × θ), where i is the active index and θ = 360°/n. Each panel is absolutely positioned so its centre is the ring origin (left: -w/2, top: -h/2) with transform: rotateY(k × θ) translateZ(R) and backface-visibility hidden, k being its index. R = (w/2 + 48px) / tan(θ/2), computed by JS from the panel's offsetWidth on load and resize and set on the ring as --r together with --theta. Because the ring is pushed back by R and each panel forward by R, the active panel sits exactly at z = 0 at true size; the neighbours stand at ±θ, visibly angled and receding, with a 96px gap at the near corners so they never overlap.
  • Signature motion. moving one slide rotates the whole ring by θ over 1s with cubic-bezier(.7,0,.2,1), a heavy ease that starts slow and lands firmly; the next panel swings in from the side while the current one recedes. Depth of field by distance a = |k − i|: opacity 1 − a × 0.45, filter blur(min(a,2) × 1.5px), panels with a ≥ 3 are opacity 0; opacity, filter and box-shadow all transition 1s on the same ease. The active panel gets a 1px mint outline (box-shadow 0 0 0 1px #3ee6b5 at 45%) plus a deep shadow 0 40px 120px rgba(0,0,0,.5).
  • Panel look. 1px hairline border rgba(255,255,255,.12), radius 20px + 4px, background = a very subtle top-to-bottom gradient (ink at 6% → 2%) over the ground at 55% so the glow shows through, padding 4vh 3vw, overflow hidden, flex column with 2vh gaps: a top row (index "02" in #3ee6b5, 0.85rem tabular weight 600, deck name in #8b93b8 on the right), the title at clamp(2rem,3.8vw,4.2rem) weight 700 letter-spacing -0.03em line-height 1.02 (cover: clamp(2.8rem,5.4vw,6.2rem), vertically centred with its lede), a muted lede, then the object. Inside a panel rings are clamp(6rem,9vw,11rem) and stat values clamp(1.8rem,3.2vw,3.6rem) so the numbers slide fits.
  • Objects with class reveal stagger in only on the active panel (reveal delay 800ms, charts start after 800ms, so they appear once the ring has landed); panels already seen keep their objects visible as they recede, panels ahead show only title and lede until they arrive.
  • Floor. a div under the ring, 300vw wide, top at 54% of the stage, 120vh tall, transform-origin 50% 0, transform: rotateX(78deg) translateX(i × -160px) (transitions 1s on the same ease so the floor slides two cells as the ring turns), two repeating-linear-gradient line grids at 80px in ink at 8%, masked with linear-gradient(to bottom, transparent, black 45%) so it fades toward the horizon. Subtle; it is ambience, not a feature.
  • HUD, all fixed at bottom 3.5vh: centre, one 8px dot button per slide (#8b93b8 at 55%, seen dots full muted, the active one stretched to a 28px pill in #3ee6b5); right, the counter "02 / 07" in #8b93b8 0.9rem tabular; left, a hint "→ to orbit" that fades after the first slide.
  • Under 760px: --w 92vw, --h 72vh, perspective 1100px, panel scrolls vertically, floor hidden.

Navigation. → ↓ Space PageDown next, ← ↑ PageUp prev, Home/End, number keys 1-9; touch swipe; the dots are clickable. No wheel.