Skill

Create isometric design assets and illustrations

Design-style skill for Isometric Design: 30-degree parallel projection, blocky architecture, and hard angled shadows.

Maintainer of this project? Claim this page to edit the listing.


81
Spark score
out of 100
Updated 26 days ago
Version 13.6.1

Add to Favorites

Why it matters

Generate isometric design elements, illustrations, and UI components with consistent perspective and visual style for modern web and mobile applications.

Outcomes

What it gets done

01

Build isometric grid systems and perspective guides for consistent 3D-style layouts

02

Create isometric icons, objects, and interface elements with proper angle constraints

03

Design isometric scenes and environments for landing pages and product illustrations

04

Convert flat designs into isometric projections with accurate depth and dimension

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-isometric-design | bash

Overview

Isometric Design

A design-style skill for Isometric Design - 30-degree parallel projection, blocky architecture, and hard angled shadows built from skewed pseudo-elements - with matching Web CSS and SwiftUI implementations. Use it for game UI, architectural visualization, or product illustrations that want a stylized parallel-projection look rather than realistic perspective rendering.

What it does

Isometric Design is a design-style child skill ('the architect's view - a parallel projection where depth is constant and parallel lines never converge'), part of the design-it family and not meant to be triggered directly. Three core principles: Parallel Lines (unlike true 3D, isometric projection has no vanishing point - everything is viewed from an exact 30-degree angle), Top-Down Angled View (the classic "SimCity" perspective), and Blocky Architecture (UI elements often look like city blocks or stacked tiles).

When to use - and when NOT to

Use it when the user's request matches this parallel-projection, model-like aesthetic - game UI, architectural visualization, or product illustrations that want a stylized, technical-drawing feel rather than realistic perspective. As a design sub-style, it's selected by the parent design-it skill's routing rather than invoked on its own.

Inputs and outputs

Visual DNA leans on Warm Tech or Earth-Grounded Elegance with slightly muted, realistic colors since isometric designs often read as physical models, text kept flat to the screen or mapped precisely to isometric planes (top, left, right), and hard, long drop shadows cast at an exact -45 or 45 degree angle. The web implementation combines rotateX(60deg) rotateZ(-45deg) on a container to establish the isometric grid, then builds each 3D-looking block from a single flat element plus two pseudo-elements: ::before skewed vertically to form the darker left/side face, and ::after skewed horizontally to form the lighter top/bottom face - three shades of one color family simulating three lit faces of a physical cube from a single 2D element. Hovering lifts a block along the Z-axis while nudging it up-left, reinforcing the parallel-projection depth illusion.

.isometric-grid { transform: rotateX(60deg) rotateZ(-45deg); }
.iso-block::before { transform: skewY(-45deg); } /* darker side face */
.iso-block::after { transform: skewX(-45deg); }  /* lighter top face */

Integrations

SwiftUI reproduces the same exact projection angles by chaining .rotationEffect(.degrees(-45)) with .rotation3DEffect(.degrees(60), axis: (x: 1, y: 0, z: 0)) on a stacked VStack of a colored top face plus a darker shadow-simulating rectangle beneath it - the same two-angle rotation math as the web's rotateX/rotateZ combination, applied to native shape composition instead of CSS pseudo-elements.

Who it's for

Designers and developers building game UI, architectural visualizations, or product illustrations that want a stylized, technical parallel-projection look - blocky, model-like, with no vanishing point - rather than realistic perspective rendering. The flat, consistent projection is what makes a whole dashboard or scene of isometric elements read as one coherent physical space.

Source README

Isometric Design

"The architect's view. A parallel projection where depth is constant and parallel lines never converge."

When to Use

Use this sub-style when the user's request matches the aesthetic described above. This is a child reference of the design-it skill and is not meant to be triggered directly.

Core Principles

  1. Parallel Lines: Unlike true 3D, isometric projection has no vanishing point. Everything is viewed from an exact 30-degree angle.
  2. Top-Down, Angled View: The classic "SimCity" perspective.
  3. Blocky Architecture: UI elements often look like city blocks or stacked tiles.

Visual DNA

  • Colors: Warm Tech or Earth-Grounded Elegance. Isometric designs often look like physical models, so slightly muted, realistic colors work well.
  • Typography: Keep text flat to the screen, or map it perfectly to the isometric planes (top, left, right).
  • Shadows: Hard, long drop shadows cast at an exact angle (usually -45 or 45 degrees).

Web Implementation

  • CSS transforms are perfect for this. Combine rotateX(60deg) and rotateZ(-45deg).
  • CSS Example:
.isometric-grid {
  /* The foundation */
  transform-style: preserve-3d;
  transform: rotateX(60deg) rotateZ(-45deg);
}

.iso-block {
  width: 100px;
  height: 100px;
  background-color: var(--secondary-base);
  position: relative;
  transition: transform 0.3s;
}

/* Creating the 3D block with pseudo-elements */
.iso-block::before {
  content: '';
  position: absolute;
  width: 20px; /* Depth */
  height: 100%;
  background-color: var(--primary-text); /* Darker shade for side */
  right: 100%;
  transform-origin: right;
  transform: skewY(-45deg);
}

.iso-block::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 20px; /* Depth */
  background-color: var(--cta-highlight); /* Lightest shade for top/bottom */
  top: 100%;
  transform-origin: top;
  transform: skewX(-45deg);
}

.iso-block:hover {
  transform: translateZ(20px) translate(-10px, -10px);
}

App Implementation

SwiftUI

struct IsometricView: View {
    var body: some View {
        ZStack {
            Color.white.ignoresSafeArea()
            
            // Isometric Stack
            VStack(spacing: 0) {
                // Top layer
                Rectangle()
                    .fill(Color.blue)
                    .frame(width: 150, height: 150)
                    .overlay(Text("TOP").foregroundColor(.white))
                
                // Shadow simulation
                Rectangle()
                    .fill(Color.black.opacity(0.2))
                    .frame(width: 150, height: 20)
            }
            // The exact 3D transformations for Isometric projection
            .rotationEffect(.degrees(-45))
            .rotation3DEffect(.degrees(60), axis: (x: 1, y: 0, z: 0))
        }
    }
}
  • SwiftUI's .rotation3DEffect makes this surprisingly easy. Rotate Z by -45 degrees first (via .rotationEffect), then rotate X by 60 degrees.
  • You can stack multiple views along the Z-axis (or simulate it with Y offsets before the 3D rotation) to create towering isometric city blocks.

Flutter

import 'dart:math';

class IsometricScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: Center(
        child: Transform(
          // The Isometric Matrix Math
          alignment: FractionalOffset.center,
          transform: Matrix4.identity()
            ..setEntry(3, 2, 0.001) // perspective
            ..rotateX(pi / 3) // 60 degrees
            ..rotateZ(-pi / 4), // -45 degrees
          child: Container(
            width: 150,
            height: 150,
            decoration: BoxDecoration(
              color: Colors.blue,
              boxShadow: [
                // Hard isometric drop shadow
                BoxShadow(
                  color: Colors.black.withOpacity(0.3),
                  offset: const Offset(20, 20),
                  blurRadius: 0, // No blur for isometric
                ),
              ],
            ),
            child: const Center(child: Text('ISO BLOCK', style: TextStyle(color: Colors.white))),
          ),
        ),
      ),
    );
  }
}
  • Transform with Matrix4 is required in Flutter. Applying rotateX and rotateZ yields the classic isometric grid.
  • Isometric shadows are usually completely hard (0 blurRadius) and offset perfectly along the grid axes.

React Native

const IsometricScreen = () => {
  return (
    <View style={{ flex: 1, backgroundColor: '#FFF', justifyContent: 'center', alignItems: 'center' }}>
      
      <View style={{
        width: 150,
        height: 150,
        backgroundColor: '#2196F3',
        justifyContent: 'center',
        alignItems: 'center',
        
        // Isometric Transforms
        transform: [
          { rotateX: '60deg' },
          { rotateZ: '-45deg' }
        ],
        
        // Hard isometric shadow
        shadowColor: '#000',
        shadowOffset: { width: 20, height: 20 },
        shadowOpacity: 0.3,
        shadowRadius: 0, // Hard edge
        elevation: 10,
      }}>
        <Text style={{ color: '#FFF', fontWeight: 'bold' }}>ISO BLOCK</Text>
      </View>
      
    </View>
  );
};
  • The transform array processes in order. Apply rotateX then rotateZ.
  • Hard shadows (shadowRadius: 0) sell the illustration look.

Jetpack Compose

@Composable
fun IsometricScreen() {
    Box(
        modifier = Modifier.fillMaxSize().background(Color.White),
        contentAlignment = Alignment.Center
    ) {
        Box(
            modifier = Modifier
                .graphicsLayer {
                    // Isometric Transforms
                    rotationX = 60f
                    rotationZ = -45f
                    // Add subtle scale if it gets clipped
                    scaleX = 0.8f
                    scaleY = 0.8f
                }
                .size(150.dp)
                // Draw a hard shadow behind the box
                .drawBehind {
                    drawRect(
                        color = Color.Black.copy(alpha = 0.3f),
                        topLeft = Offset(40f, 40f), // Isometric offset
                        size = size
                    )
                }
                .background(Color(0xFF2196F3)),
            contentAlignment = Alignment.Center
        ) {
            Text("ISO BLOCK", color = Color.White, fontWeight = FontWeight.Bold)
        }
    }
}
  • Use Modifier.graphicsLayer to apply rotationX and rotationZ.
  • To get a true hard isometric drop shadow in Compose without elevation blurring, use Modifier.drawBehind to manually draw a dark rectangle offset from the main content.

Do's and Don'ts

  • DO: Use it for infographics, feature diagrams, or hero sections.
  • DON'T: Build your entire app's functional UI in isometric projection. It's too hard to interact with.

Limitations

  • This is a styling reference and does not replace environment-specific validation, accessibility testing, or expert review.
  • Ensure appropriate contrast ratios and responsive behaviors are verified separately.

FAQ

Common questions

Discussion

Questions & comments ยท 0

Sign In Sign in to leave a comment.