Before we publish any illustration we run it through a short review. Is the light direction consistent? Does every block sit on the grid? Is the art hidden from screen readers where it is decorative? Does it survive forced colours mode? It takes five minutes and catches most of the problems we used to fix after launch.
At a glance
| Face | Lightness | Example |
|---|---|---|
| Top | 72% | #7C9DFF |
| Left | 60% | #4A6FE8 |
| Right | 44% | #2A4DB5 |
Lessons from the workshop
Custom properties make isometric CSS far easier to maintain. Instead of hard-coding sizes, we define a single unit on the scene wrapper and multiply it everywhere else. Changing the unit rescales the whole illustration, keeps the proportions intact and means a phone layout needs one media query instead of twenty.
The classic CSS recipe is rotateX(60deg) followed by rotateZ(-45deg). The first rotation tips the square away from you; the second turns it so its corners point up and down. Together they give the familiar diamond. Swap the order and you get something else entirely, because transforms apply from right to left, which catches almost everyone at least once.
Testing on real devices matters for 3D transforms. Emulators get the layout right but not always the rendering, and older phones sometimes draw faces in the wrong order or with visible seams. We keep a drawer of old handsets for exactly this reason, and every tutorial gets a quick check on each of them.
Download
Questions
Can I use this without JavaScript?
Yes. Every scene in our tutorials is pure HTML and CSS; JavaScript only adds optional interactions.
Does it work on phones?
It does, as long as the scene is scaled with clamp() and never wider than the viewport.
Can I use the code in client work?
Yes. All tutorial code is MIT licensed, so you can use it anywhere with attribution in the source.
Rosa Medina
I tried this on an old iPad and one of the faces flickers on hover. Any idea why?
Chen Wei
Great write-up. Would love a follow-up on doing the same thing with SVG.
Farah Aziz
Good question. Usually that means something is flattening the 3D context; check for overflow hidden on a parent.
Mateo Rossi
We used the grid background on our docs site and it looks great with a dark theme too.