Immersive Web Experiences

Design in Layers,
Scroll with Depth

Parallax design transforms passive scrolling into a cinematic journey through layered space. Every element exists at a purposeful depth, creating visual hierarchy through spatial movement.

Scroll to explore
Typography

Bold Typographic Hierarchy

Large, high-contrast headings anchor each section. Space Grotesk provides geometric authority for display text, while Inter ensures comfortable readability for body copy.

Display / Space Grotesk 700
Scroll-Driven
Immersion

Every parallax movement serves a narrative or functional goal. Motion is never decorative but always guides attention or reinforces the content hierarchy through purposeful depth.

Type Scale
5rem / 80px Display
3rem / 48px Heading 1
1.75rem / 28px Heading 2
1.125rem / 18px Body text with comfortable line-height
0.875rem / 14px monospace: technical labels
0.75rem / 12px Overline / Label Text
Primary Pairing

Space Grotesk + Inter

Modern, tech-forward with clean authority. Geometric precision in headings meets functional readability in body text for optimal hierarchy.

Code / Technical
.parallax-layer {
  transform: translateZ(-4px) scale(1.5);
  will-change: transform;
}
Background Attachment Fixed

Content Flows,
Backgrounds Stay

The simplest parallax technique pins a background in place while foreground content scrolls past, creating an effortless sense of depth between visual layers.

Color Palette

Deep Space Spectrum

A cinematic palette built on dark foundations with luminous accents. Deep backgrounds create the canvas for spatial depth while electric accents guide attention.

Deep Space
#0B0E17
Primary dark background
Midnight Navy
#141B2D
Secondary background
Charcoal Depth
#1E2538
Card surfaces
Slate Mist
#2A3247
Elevated surfaces
Silver Fog
#C5CDD9
Body text
Electric Blue
#3B82F6
Primary accent
Cyan Glow
#06B6D4
Secondary accent
Warm Amber
#F59E0B
Tertiary accent
Soft Violet
#8B5CF6
Decorative depth
Coral Pulse
#EF4444
Alert / Hover contrast
Gradient Depth Layer

Color Shifts
Through Space

Radial gradient backgrounds pinned behind scrolling content create atmospheric color transitions that enhance the sensation of moving through dimensional space.

CSS Perspective

Layers at Different Z-Depths

The foundation of CSS parallax: a perspective container with child elements translated along the Z-axis. Elements farther back move slower, creating natural depth.

translateZ + scale

Set perspective: 8px on the scroll container. Move layers back with translateZ(-4px) and compensate with scale(1.5) to maintain visual size.

The deeper the Z translation, the slower the scroll speed. This pure-CSS technique requires no JavaScript and leverages GPU-accelerated compositing.

/* Perspective container */
.container {
  perspective: 8px;
  overflow-y: auto;
}

/* Background layer (scrolls slow) */
.layer--back {
  transform: translateZ(-4px) scale(1.5);
}

/* Foreground (scrolls normal) */
.layer--base {
  transform: translateZ(0);
}
translateZ(-120px)
translateZ(-40px)
translateZ(0)
60
FPS Target
2-3
Max Layers
8px
Perspective
0ms
JS Required
Components

Depth-Aware Interface

Cards, buttons, and interactive elements designed to reinforce the layered spatial model through hover lifts, gradient glows, and subtle border highlights.

Layered Depth

Background, midground, and foreground elements move at independent scroll speeds, producing convincing three-dimensional spatial illusion.

Core Technique

Scroll Reveals

Content animates into view as users scroll, using Intersection Observer for reliable, performant viewport-triggered transitions with eased timing.

Animation

Cinematic Pacing

Full-viewport sections create a scene-by-scene rhythm, giving each content block room to breathe and make its narrative impact on the user.

Layout

Performance First

GPU-accelerated transforms via translate3d and will-change ensure buttery 60fps scrolling even with multiple moving parallax layers.

Performance

Accessible Degradation

The design remains fully functional when parallax is disabled. A prefers-reduced-motion media query provides a static fallback for all users.

A11y

Progressive Disclosure

Information reveals gradually through the scroll journey, maintaining curiosity and encouraging users to continue exploring deeper into the layered page.

UX Pattern
Design Philosophy

Purposeful motion guides attention.
Strategic restraint amplifies depth.

Effects & Details

Depth Illusion Toolkit

Visual effects and micro-interactions that reinforce the parallax aesthetic through layered motion, glowing accents, and perspective transforms.

Layer Stacking

Glass Depth Layers

Translucent layers at staggered depths with backdrop-blur create dimensional separation. Hover to fan the stack.

Speed Differential

Layer Velocity

Background, midground, and foreground layers at three distinct scroll speeds create natural depth perception.

Accent Glow

Luminous Depth Cue

Radial glow effects with box-shadow create focal points that appear to emit light from within the layered space.

Perspective Transform

3D Tilt on Hover

CSS perspective with rotateX/Y transforms simulate physical depth when interacting with interface elements. Hover the card.

Hover for 3D tilt
Scroll-Driven Animations

Viewport-Triggered Reveals

The Intersection Observer API detects when elements enter the viewport, adding a class that triggers CSS transitions. This provides reliable, performant scroll-triggered animations.

For modern browsers, the animation-timeline: view() API enables purely declarative scroll-linked animations without any JavaScript at all.

/* Scroll-driven animation (CSS only) */
@supports (animation-timeline: view()) {
  .scroll-reveal {
    animation: reveal linear both;
    animation-timeline: view();
    animation-range: entry 0%
                       entry 40%;
  }

  @keyframes reveal {
    from {
      opacity: 0;
      transform: translateY(60px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
Best Practices

Design Guidelines

Do

  • + Use GPU-accelerated transforms for 60fps scrolling
  • + Provide static fallback for prefers-reduced-motion
  • + Keep text on the foreground layer (translateZ 0)
  • + Limit parallax to 2-3 layers per section
  • + Maintain WCAG AA contrast through scrolling

Don't

  • - Hijack native scroll behavior with custom speeds
  • - Rely solely on background-attachment: fixed
  • - Apply parallax to every section of the page
  • - Nest parallax containers inside each other
  • - Lock critical content behind scroll animations