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.
13.6.1Add 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
Build isometric grid systems and perspective guides for consistent 3D-style layouts
Create isometric icons, objects, and interface elements with proper angle constraints
Design isometric scenes and environments for landing pages and product illustrations
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
- 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.
- 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)androtateZ(-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
.rotation3DEffectmakes 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))),
),
),
),
);
}
}
TransformwithMatrix4is required in Flutter. ApplyingrotateXandrotateZyields 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
transformarray processes in order. ApplyrotateXthenrotateZ. - 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.graphicsLayerto applyrotationXandrotationZ. - To get a true hard isometric drop shadow in Compose without elevation blurring, use
Modifier.drawBehindto 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.