Skip to content
Illustration

Sketchbook: isometric city blocks

Pages from a sketchbook of streets drawn on a triangle grid.

Responsive isometric scenes need a plan for narrow screens. Sometimes the answer is to scale everything down with clamp(), and sometimes it is to hide secondary blocks entirely. What rarely works is letting the scene overflow sideways, which makes the page scroll horizontally and feels broken on a phone.

6 imagesJPG, 1200 × 1200

Download ZIP 1 MB

Design tokens keep the whole team in step. We name colours by their role, such as face-top, face-left and face-right, rather than by hue. When we switched the site to a violet accent for a campaign, only the token values changed. Every illustration, button and chart followed without anyone opening a single component.

What it costs the browser

Colour contrast still applies to illustrations that carry meaning. A bar chart drawn as blocks needs enough contrast between the bars and the floor, and labels on the faces need the same contrast as body text. Decorative scenes have more freedom, but we still avoid pale blocks on a pale background.

Share

Written by

Mara Lindqvist

Mara draws isometric city blocks in CSS and edits the Isometric Basics column. She once rebuilt a subway map using nothing but borders.

All 13 posts by Mara Lindqvist

8 comments

  1. Ivo Petrov

    The part about layer counts was eye-opening. Our landing page had over a hundred.

    Reply to Ivo Petrov
  2. Lena Vogel

    This is the clearest explanation of draw order I have read.

    Reply to Lena Vogel
    1. Bea Kowalski

      The templates are in the downloads section of the reference post.

      Reply to Bea Kowalski
    2. Kofi Mensah

      Agreed, this is the part most tutorials skip.

      Reply to Kofi Mensah
  3. Omar Haddad

    Works nicely in Firefox. Safari needed the prefixed transform-style for us.

    Reply to Omar Haddad
  4. Hana Sato

    Short and useful. More quick tips like this, please.

    Reply to Hana Sato
  5. Mateo Rossi

    Is there a way to do the shadow without a pseudo-element? Our CMS strips empty spans.

    Reply to Mateo Rossi
  6. Soren Dahl

    Tiny typo in the second code block: the unit is missing on the translate value.

    Reply to Soren Dahl

Leave a comment

Your email address won’t be published. Required fields are marked.