🎨 Quick Visual Reference β€” 3D Curve Layer System

🎨 Quick Visual Reference β€” 3D Curve Layer System

Layer Visual Hierarchy

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    HERO COMPOSITION                          β”‚
β”‚                                                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                   β”‚
β”‚  β”‚         V I S I O N                  β”‚  ← VISION text    β”‚
β”‚  β”‚        β•±         β•²                   β”‚                   β”‚
β”‚  β”‚    L0 ←          β†’ L1                β”‚                   β”‚
β”‚  β”‚   (back)        (front)              β”‚                   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β”‚
β”‚         β”‚                                                    β”‚
β”‚         β”‚  ............ into              ← separator       β”‚
β”‚         β”‚                                                    β”‚
β”‚         β”‚    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                   β”‚
β”‚         β”‚    β”‚  PHOTO   β”‚                                   β”‚
β”‚         β”‚    β”‚          β”‚  ← L2 wraps around                β”‚
β”‚         └─────          β”‚                                   β”‚
β”‚              β”‚          β”‚                                   β”‚
β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                   β”‚
β”‚                                                              β”‚
β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                         β”‚
β”‚         β”‚   INTELLIGENCE          β”‚  ← L3 on top            β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Layer Properties Comparison

Property L0 (Back) L1 (Front) L2 (Mid) L3 (Top)
Z-Index 0 2 4 6
Stroke Width 16px 20px 17px 22px
Opacity 0.72 0.92 0.80 0.95
Brightness 0.75 (darker) 1.1 (lighter) 0.95 (neutral) 1.15 (brightest)
Saturation 0.7 (muted) 1.2 (vivid) 0.9 (slight) 1.3 (max)
Shadow Blur 3px 8px 6px 14px
Shadow Offset 1-2px 4px 3px 6px
Glow Size 4px 12px 8px 16px
Animation β€” breathe (6s) β€” breathe (5s)

Color Gradient Progression

Light Mode

L0: #1a1b6e ━━━━━━━━━━━━━━━━━━━━━┓
                                  ┃
L1: #6d28d9 ━━━━━━━━━━━━━━━━━━━━━┫  gradient flow
                                  ┃
L2: #c026d3 ━━━━━━━━━━━━━━━━━━━━━┫
                                  ┃
L3: #f43f82 ━━━━━━━━━━━━━━━━━━━━━┛

Dark Mode

L0: #003d22 ━━━━━━━━━━━━━━━━━━━━━┓
                                  ┃
L1: #00994d ━━━━━━━━━━━━━━━━━━━━━┫  emerald to cyan
                                  ┃
L2: #00ff88 ━━━━━━━━━━━━━━━━━━━━━┫
                                  ┃
L3: #7fffd4 ━━━━━━━━━━━━━━━━━━━━━┛

Clipping Zones (Visual Map)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  0%
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”‚
β”‚ β”‚    L0      β”‚     L1       β”‚           β”‚  ← top 46%
β”‚ β”‚  (left)    β”‚   (right)    β”‚           β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β”‚
β”‚                                          β”‚  46%
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚              L2 starts here              β”‚
β”‚      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”                          β”‚  ← 42%
β”‚      β”‚ photo  β”‚  ..... into              β”‚
β”‚      β”‚        β”‚                          β”‚
β”‚      β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜                          β”‚
β”‚                                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  72%
β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”‚
β”‚         β”‚  INTELLIGENCE    β”‚  ← L3      β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  100%

Clipping formulas:

  • L0: inset(0 50% 54% 0) β†’ top-left quadrant
  • L1: inset(0 0 54% 50%) β†’ top-right quadrant
  • L2: inset(42% 0 0 26%) β†’ middle-bottom, left-offset
  • L3: inset(72% 0 0 0) β†’ bottom strip

Visual Effect Breakdown

πŸ” Layer L0 (Behind VISION left)

Appearance:
  β—† Darker, desaturated (in shadow)
  β—† Thinner stroke (further away)
  β—† Minimal glow
  
Perception:
  β†’ User sees it "behind" the letters V-I-S
  β†’ Depth cue: less prominent = more distant

πŸ” Layer L1 (In front of VISION right)

Appearance:
  β—† Bright, saturated (in light)
  β—† Thick stroke (closer to viewer)
  β—† Strong drop shadow on letters
  β—† Pulsing glow (breathing animation)
  
Perception:
  β†’ User sees it "in front" of letters I-O-N
  β†’ Depth cue: casts shadow = physically above

πŸ” Layer L2 (Around photo, behind β€œinto”)

Appearance:
  β—† Medium brightness (transition zone)
  β—† Tapered stroke (squeezing through gap)
  β—† Gradient overlay (twist effect)
  
Perception:
  β†’ Weaves around photo edge
  β†’ Disappears behind "into" text
  β†’ Suggests 3D navigation through space

πŸ” Layer L3 (Over INTELLIGENCE)

Appearance:
  β—† Maximum brightness & saturation
  β—† Thickest stroke (closest to viewer)
  β—† Dramatic shadow cast on green block
  β—† Specular highlights (top/bottom)
  β—† Halo glow around curve
  
Perception:
  β†’ Clearly "in front" of everything
  β†’ Strong visual presence
  β†’ Definitive depth hierarchy

Hover State Changes

DEFAULT:
  L0: 16px / 0.72 opacity
  L1: 20px / 0.92 opacity
  L2: 17px / 0.80 opacity
  L3: 22px / 0.95 opacity

ON HOVER:
  L0: 14px / 0.60 opacity  ← recedes
  L1: 22px / 1.00 opacity  ← advances
  L2: 17px / 0.80 opacity  ← unchanged
  L3: 24px / 1.00 opacity  ← advances

Effect:
  β†’ Foreground layers "pop out"
  β†’ Background layers "fade back"
  β†’ Exaggerated depth perception

Parallax Movement (on mouse move)

Movement strength ∝ z-index:

L0 (z:0): Β±0.0px  (static)
L1 (z:2): Β±1.0px  (subtle)
L2 (z:4): Β±2.0px  (medium)
L3 (z:6): Β±3.0px  (pronounced)

Effect:
  β†’ Closer layers track cursor more
  β†’ Creates "3D scene" illusion
  β†’ Reinforces depth hierarchy

Debug Mode Visualization

When debugMode: true in JS config:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  [RED OVERLAY] = occluded region        β”‚
β”‚  [TRANSPARENT] = visible curve segment  β”‚
β”‚                                          β”‚
β”‚  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘          β”‚
β”‚   ^                  ^                  β”‚
β”‚   └─ hidden behind   └─ hidden behind   β”‚
β”‚      "V" letter          "O" letter     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Performance Considerations

Feature Performance Impact When to Use
Static clipping βœ… Negligible Always
Breathing animation βœ… Low Always
Hover depth change βœ… Low Always
Mouse parallax ⚠️ Medium Desktop only
Dynamic occlusion (JS) ⚠️ Medium-High Optional enhancement
Pixel-perfect detection ❌ High Debug/polish only

Implementation Checklist

CSS (Required)

  • 4 layer system with z-index stack
  • Gradient color progression
  • Variable stroke width
  • Multi-layer drop shadows
  • Breathing animation keyframes
  • Hover state transitions
  • Dark mode color inversion

HTML/SVG (Required)

  • 4 duplicate SVG curve elements
  • Each with unique class (l0, l1, l2, l3)
  • Gradient definitions for body/spine

JavaScript (Optional)

  • Negative space analyzer
  • Dynamic occlusion renderer
  • Mouse parallax enhancer
  • Resize/scroll recalculation

Quick Test Commands

# Check if all layers are rendering
document.querySelectorAll('.mp-hero-curve').length
# Should return: 4

# Toggle debug mode
CONFIG.debugMode = true;

# Check z-index stack
Array.from(document.querySelectorAll('.mp-hero-curve')).map(el => 
  getComputedStyle(el).zIndex
);
# Should return: ["0", "2", "4", "6"]

# Measure stroke widths
Array.from(document.querySelectorAll('.mp-hero-curve__body')).map(el => 
  getComputedStyle(el).strokeWidth
);
# Should return: ["16px", "20px", "17px", "22px"]

Troubleshooting

Issue Solution
Curves not stacking properly Check z-index values in CSS
Clipping not working Verify clip-path inset values
No depth perception Ensure drop-shadow filters are applied
Animation stuttering Reduce breathing frequency or disable
Dark mode colors wrong Check CSS variable overrides
JS occlusion not working Verify script is loaded after DOM ready

Last Updated: 2026-04-18
Version: 2.0 β€” Visual Reference Guide