A comprehensive guide to CSS 3D, using the metaphor of Super Mario Bros 3 (painted-on depth) vs Super Mario 64 (real 3D) to explain the leap from parallax illusions to genuine 3D rendering. Covers the six core properties: `perspective`, `perspective-origin`, `transform-style: preserve-3d`, `transform` (translateZ, rotateX/Y/Z), `transform-origin`, and `backface-visibility`. Walks through building a Mario-style course from scratch using CSS cuboids, explains common pitfalls (overflow flattening, z-index vs depth sorting, Safari quirks), performance best practices (animating only transform/opacity, will-change, prefers-reduced-motion), and accessibility considerations (keyboard navigation, ARIA roles).
Table of contents
When depth was painted onPress start on real 3DYou’re the cameraKeeping the world solid: preserve-3dEverything is a blockBuilding a courseMoving the camera without making anyone sickThe rest of the toolboxLetting everyone playWhere the illusion endsThe instruction booklet57.1K Impressions8 Comments