Geometric Modernism is a design aesthetic rooted in the conviction that pure geometric forms – circles, squares, triangles, lines, and their mathematically derived compounds – constitute a universal visual language capable of transcending cultural and linguistic boundaries. Drawing from the foundational work of the Bauhaus school (1919–1933), the De Stijl movement (1917–1931), Russian Constructivism, and the Swiss International Typographic Style, Geometric Modernism distills design to its most elemental components: strong shapes, primary colors, and compositions governed by mathematical precision rather than intuition or ornament.
Where the original Bauhaus and De Stijl movements were tied to specific historical contexts and ideological programs, Geometric Modernism represents their enduring synthesis – an applied philosophy that treats geometry as the backbone of visual communication. The aesthetic inherits Piet Mondrian’s restriction to primary colors and orthogonal grids, Wassily Kandinsky’s color-shape correspondences (yellow-triangle, red-square, blue-circle), Theo van Doesburg’s dynamic diagonal compositions, and Paul Renner’s geometric typeface Futura (1927), which rejected historicist letterforms in favor of shapes built from near-perfect circles, triangles, and straight lines.
In contemporary web and interface design, Geometric Modernism manifests as bold, grid-locked layouts with uncompromising structural clarity. Color palettes center on the three primaries – red, yellow, and blue – anchored by black and white, with secondary and tertiary hues used sparingly and deliberately. Typography is geometric sans-serif: Futura, its digital descendants, or Google Fonts equivalents like Jost and Poppins. Every element snaps to an underlying modular grid; whitespace is treated as an active compositional force, not empty leftovers. The resulting designs communicate authority, intellectual rigor, and a crystalline rationality that feels both timeless and decisively modern. There is no room for ambiguity, sentimentality, or decorative excess – every pixel earns its place through functional and geometric justification.
The Geometric Modernism palette is anchored in the three primary colors as defined by Kandinsky’s Bauhaus color theory and Mondrian’s De Stijl compositions: a bold, warm red; a luminous cadmium yellow; and a deep, authoritative blue. These are framed by absolute black and white, with a small range of grays for structural support. The palette resists secondary and tertiary colors – when they appear, they are deliberate and functionally justified.
| Swatch | Hex | Role / Usage |
|---|---|---|
![]() |
#DD0100 |
Primary red – CTAs, active states, square-associated accents |
![]() |
#B30009 |
Deep red – hover/pressed states for red elements |
![]() |
#FAC901 |
Primary yellow – highlights, warnings, triangle-associated accents |
![]() |
#D4A800 |
Dark yellow – hover/pressed states for yellow elements |
![]() |
#225095 |
Primary blue – links, informational elements, circle-associated accents |
![]() |
#1A3D72 |
Deep blue – hover/pressed states for blue elements |
![]() |
#000000 |
Pure black – text, rules, outlines, structural framework |
![]() |
#1A1A1A |
Near-black – dark backgrounds, footer surfaces |
![]() |
#3C3C3C |
Dark gray – secondary text, muted structural elements |
![]() |
#B0B0B0 |
Medium gray – borders, dividers, inactive states |
![]() |
#E8E8E8 |
Light gray – secondary backgrounds, card surfaces |
![]() |
#F5F5F5 |
Off-white – page backgrounds, content areas |
![]() |
#FFFFFF |
Pure white – primary backgrounds, text on dark surfaces |
![]() |
#FF6B35 |
Accent orange – sparingly used tertiary accent for emphasis |
![]() |
#2E8B57 |
Accent green – success states, validation feedback only |
:root {
/* Primary colors */
--gm-red: #DD0100;
--gm-yellow: #FAC901;
--gm-blue: #225095;
/* Hover / active states */
--gm-red-dark: #B30009;
--gm-yellow-dark: #D4A800;
--gm-blue-dark: #1A3D72;
/* Neutrals */
--gm-black: #000000;
--gm-near-black: #1A1A1A;
--gm-dark-gray: #3C3C3C;
--gm-medium-gray: #B0B0B0;
--gm-light-gray: #E8E8E8;
--gm-off-white: #F5F5F5;
--gm-white: #FFFFFF;
/* Functional accents */
--gm-accent-orange: #FF6B35;
--gm-accent-green: #2E8B57;
/* Backgrounds */
--gm-bg-primary: #FFFFFF;
--gm-bg-secondary: #F5F5F5;
--gm-bg-dark: #1A1A1A;
--gm-bg-accent: #E8E8E8;
/* Text */
--gm-text-primary: #000000;
--gm-text-secondary: #3C3C3C;
--gm-text-muted: #B0B0B0;
--gm-text-inverse: #FFFFFF;
/* Borders */
--gm-border-heavy: 4px solid #000000;
--gm-border-medium: 3px solid #000000;
--gm-border-light: 1px solid #B0B0B0;
}
Geometric Modernism demands typefaces built from geometric primitives – circles, straight lines, and consistent stroke widths. The archetype is Paul Renner’s Futura (1927), designed at the height of the New Typography movement: its lowercase o is a near-perfect circle, its a and e derive from circular arcs, and its uppercase letters are built from triangles and rectangles. Headings are bold, uppercase, tightly tracked, and assertive. Body text is clean, functional, and readable at sustained lengths. The typographic system communicates rationality, precision, and confident modernity.
| Font | Style | Best For |
|---|---|---|
| Jost | Geometric sans-serif (Futura-inspired) | Headings, display text; closest web equivalent to Futura |
| Poppins | Pure geometric sans-serif | Headings, UI elements, buttons |
| Raleway | Elegant geometric sans | Display text, lighter-weight headings |
| DM Sans | Low-contrast geometric | Body text, UI labels, form elements |
| Work Sans | Geometric grotesque | Body text, editorial layouts, paragraphs |
| Inter | Humanist with geometric underpinnings | Screen-optimized body text, small sizes |
| Archivo | Grotesque with geometric leanings | Versatile headings and body |
| Barlow | Slightly condensed geometric | Navigation, labels, compact layouts |
| Nunito Sans | Rounded geometric | Softer interpretation; friendly body text |
| Exo 2 | Geometric with contemporary edge | Tech-oriented headings, data displays |
| Heading Font | Body Font | Character |
|---|---|---|
| Jost (700/900) | Work Sans (400) | Authentic Bauhaus-Futura spirit; rigorous and authoritative |
| Poppins (700) | DM Sans (400) | Clean geometric consistency; approachable precision |
| Raleway (600) | Inter (400) | Elegant geometry; excellent screen legibility at all sizes |
| Archivo (700) | Work Sans (400) | Modern grotesque energy; editorial and versatile |
| Barlow (700) | Barlow (400) | Monofamily condensed efficiency; space-conscious layouts |
| Jost (900) | DM Sans (400) | Maximum display impact paired with quiet, readable body |
/* Import fonts */
@import url('https://fonts.googleapis.com/css2?family=Jost:wght@400;500;700;900&family=Work+Sans:wght@400;500&display=swap');
/* Base typography */
body {
font-family: 'Work Sans', 'Helvetica Neue', sans-serif;
font-weight: 400;
font-size: 1rem;
line-height: 1.7;
color: var(--gm-text-secondary);
}
/* Headings */
h1, h2, h3, h4, h5, h6 {
font-family: 'Jost', 'Futura', 'Century Gothic', sans-serif;
font-weight: 700;
color: var(--gm-text-primary);
line-height: 1.05;
letter-spacing: -0.01em;
text-transform: uppercase;
}
/* Display / Hero text */
.gm-display {
font-family: 'Jost', sans-serif;
font-size: clamp(3rem, 8vw, 6.5rem);
font-weight: 900;
letter-spacing: -0.03em;
line-height: 0.92;
text-transform: uppercase;
}
/* Subheading */
.gm-subheading {
font-family: 'Jost', sans-serif;
font-weight: 500;
font-size: 1.25rem;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--gm-dark-gray);
}
/* Labels */
.gm-label {
font-family: 'Jost', sans-serif;
font-weight: 500;
font-size: 0.8rem;
letter-spacing: 0.1em;
text-transform: uppercase;
}
/* Caption */
.gm-caption {
font-family: 'Work Sans', sans-serif;
font-weight: 400;
font-size: 0.85rem;
color: var(--gm-dark-gray);
line-height: 1.5;
}
/* Blockquote */
.gm-quote {
font-family: 'Jost', sans-serif;
font-weight: 700;
font-size: clamp(1.5rem, 3vw, 2.5rem);
line-height: 1.2;
text-transform: uppercase;
border-left: 6px solid var(--gm-red);
padding-left: 24px;
}
clamp()vw/vh units to maintain visual weight at all screen sizesposition: absolute and z-index, creating depth within the flat aesthetic.gm-card {
background: var(--gm-white);
border: 3px solid var(--gm-black);
padding: 32px;
position: relative;
transition: transform 0.2s ease;
}
/* Geometric accent -- colored square in top-left corner */
.gm-card::before {
content: '';
position: absolute;
top: -3px;
left: -3px;
width: 36px;
height: 36px;
background: var(--gm-red);
}
/* Alternate accent colors */
.gm-card--blue::before { background: var(--gm-blue); }
.gm-card--yellow::before { background: var(--gm-yellow); }
.gm-card:hover {
transform: translateY(-4px);
}
.gm-card__title {
font-family: 'Jost', sans-serif;
font-weight: 700;
font-size: 1.15rem;
text-transform: uppercase;
margin-bottom: 12px;
color: var(--gm-text-primary);
}
.gm-card__body {
font-size: 0.95rem;
color: var(--gm-dark-gray);
line-height: 1.65;
}
.gm-card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 32px;
}
.gm-button {
display: inline-flex;
align-items: center;
justify-content: center;
background: var(--gm-black);
color: var(--gm-white);
border: 3px solid var(--gm-black);
border-radius: 0;
padding: 14px 40px;
font-family: 'Jost', sans-serif;
font-weight: 700;
font-size: 0.9rem;
letter-spacing: 0.08em;
text-transform: uppercase;
cursor: pointer;
text-decoration: none;
transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.gm-button:hover {
background: var(--gm-red);
border-color: var(--gm-red);
}
/* Primary color variants */
.gm-button--red {
background: var(--gm-red);
border-color: var(--gm-red);
}
.gm-button--red:hover {
background: var(--gm-red-dark);
border-color: var(--gm-red-dark);
}
.gm-button--blue {
background: var(--gm-blue);
border-color: var(--gm-blue);
}
.gm-button--blue:hover {
background: var(--gm-blue-dark);
border-color: var(--gm-blue-dark);
}
.gm-button--yellow {
background: var(--gm-yellow);
border-color: var(--gm-yellow);
color: var(--gm-black);
}
.gm-button--yellow:hover {
background: var(--gm-yellow-dark);
border-color: var(--gm-yellow-dark);
}
/* Outline variant */
.gm-button--outline {
background: transparent;
color: var(--gm-black);
}
.gm-button--outline:hover {
background: var(--gm-black);
color: var(--gm-white);
}
/* Small variant */
.gm-button--sm {
padding: 10px 24px;
font-size: 0.8rem;
}
.gm-nav {
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1200px;
margin: 0 auto;
padding: 24px 40px;
border-bottom: 4px solid var(--gm-black);
}
.gm-nav__logo {
display: flex;
align-items: center;
gap: 14px;
font-family: 'Jost', sans-serif;
font-weight: 900;
font-size: 1.5rem;
color: var(--gm-black);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.gm-nav__logo-shape {
width: 30px;
height: 30px;
background: var(--gm-red);
}
.gm-nav__logo-shape--circle {
border-radius: 50%;
background: var(--gm-blue);
}
.gm-nav__links {
display: flex;
gap: 32px;
list-style: none;
margin: 0;
padding: 0;
}
.gm-nav__links a {
font-family: 'Jost', sans-serif;
font-weight: 500;
font-size: 0.85rem;
color: var(--gm-black);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.06em;
position: relative;
transition: color 0.2s ease;
}
.gm-nav__links a::after {
content: '';
position: absolute;
bottom: -6px;
left: 0;
width: 0;
height: 3px;
background: var(--gm-red);
transition: width 0.2s ease;
}
.gm-nav__links a:hover {
color: var(--gm-red);
}
.gm-nav__links a:hover::after {
width: 100%;
}
@media (max-width: 768px) {
.gm-nav {
padding: 20px 24px;
}
.gm-nav__links {
gap: 18px;
}
}
.gm-hero {
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1200px;
margin: 0 auto;
padding: 100px 40px;
gap: 60px;
position: relative;
overflow: hidden;
}
.gm-hero__content {
flex: 1;
max-width: 560px;
z-index: 2;
}
.gm-hero__content h1 {
font-size: clamp(3rem, 8vw, 6rem);
font-weight: 900;
text-transform: uppercase;
line-height: 0.92;
margin-bottom: 1.5rem;
}
.gm-hero__content h1 .red { color: var(--gm-red); }
.gm-hero__content h1 .blue { color: var(--gm-blue); }
.gm-hero__content h1 .yellow { color: var(--gm-yellow); }
.gm-hero__content p {
font-size: 1.15rem;
color: var(--gm-dark-gray);
margin-bottom: 2.5rem;
max-width: 440px;
line-height: 1.7;
}
.gm-hero__visual {
flex: 1;
display: flex;
justify-content: center;
align-items: center;
z-index: 1;
}
/* Background geometric accent */
.gm-hero::before {
content: '';
position: absolute;
top: -80px;
right: -80px;
width: 300px;
height: 300px;
background: var(--gm-yellow);
opacity: 0.15;
z-index: 0;
transform: rotate(15deg);
}
@media (max-width: 768px) {
.gm-hero {
flex-direction: column;
text-align: center;
padding: 60px 24px;
gap: 40px;
}
.gm-hero__content p {
margin-left: auto;
margin-right: auto;
}
}
.gm-features {
background: var(--gm-bg-secondary);
padding: 80px 0;
border-top: 4px solid var(--gm-black);
border-bottom: 4px solid var(--gm-black);
}
.gm-features__header {
max-width: 1200px;
margin: 0 auto;
padding: 0 40px 56px;
}
.gm-features__header h2 {
font-size: 2.5rem;
text-transform: uppercase;
}
.gm-features__grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 32px;
max-width: 1200px;
margin: 0 auto;
padding: 0 40px;
}
.gm-feature {
background: var(--gm-white);
border: 3px solid var(--gm-black);
padding: 32px;
position: relative;
}
.gm-feature__shape {
width: 48px;
height: 48px;
margin-bottom: 20px;
}
.gm-feature__shape--circle {
background: var(--gm-blue);
border-radius: 50%;
}
.gm-feature__shape--square {
background: var(--gm-red);
}
.gm-feature__shape--triangle {
width: 0;
height: 0;
border-left: 24px solid transparent;
border-right: 24px solid transparent;
border-bottom: 48px solid var(--gm-yellow);
background: transparent;
}
.gm-feature h3 {
font-size: 1.15rem;
margin-bottom: 10px;
text-transform: uppercase;
}
.gm-feature p {
font-size: 0.95rem;
color: var(--gm-dark-gray);
line-height: 1.65;
}
.gm-composition {
position: relative;
width: 400px;
height: 400px;
}
.gm-composition__circle {
position: absolute;
width: 180px;
height: 180px;
background: var(--gm-blue);
border-radius: 50%;
top: 20px;
right: 30px;
}
.gm-composition__square {
position: absolute;
width: 150px;
height: 150px;
background: var(--gm-red);
bottom: 40px;
left: 10px;
}
.gm-composition__triangle {
position: absolute;
width: 0;
height: 0;
border-left: 70px solid transparent;
border-right: 70px solid transparent;
border-bottom: 120px solid var(--gm-yellow);
top: 160px;
left: 140px;
}
.gm-composition__line-h {
position: absolute;
height: 4px;
width: 320px;
background: var(--gm-black);
top: 200px;
left: 40px;
}
.gm-composition__line-v {
position: absolute;
width: 4px;
height: 280px;
background: var(--gm-black);
top: 60px;
left: 200px;
}
.gm-composition__line-d {
position: absolute;
height: 4px;
width: 260px;
background: var(--gm-black);
transform: rotate(-20deg);
top: 300px;
left: 80px;
}
.gm-mondrian {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
grid-template-rows: 200px 120px 160px;
gap: 4px;
background: var(--gm-black);
border: 4px solid var(--gm-black);
max-width: 800px;
margin: 0 auto;
}
.gm-mondrian__cell {
background: var(--gm-white);
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.gm-mondrian__cell--red { background: var(--gm-red); color: var(--gm-white); }
.gm-mondrian__cell--blue { background: var(--gm-blue); color: var(--gm-white); }
.gm-mondrian__cell--yellow { background: var(--gm-yellow); color: var(--gm-black); }
.gm-mondrian__cell--span-rows { grid-row: span 2; }
.gm-mondrian__cell--span-cols { grid-column: span 2; }
.gm-statement {
background: var(--gm-red);
color: var(--gm-white);
text-align: center;
padding: 100px 40px;
position: relative;
overflow: hidden;
}
.gm-statement h2 {
font-size: clamp(2rem, 5vw, 4rem);
font-weight: 900;
margin-bottom: 1.5rem;
color: var(--gm-white);
}
.gm-statement p {
font-size: 1.2rem;
max-width: 540px;
margin: 0 auto 2.5rem;
opacity: 0.9;
line-height: 1.7;
}
/* Decorative circle behind text */
.gm-statement::before {
content: '';
position: absolute;
width: 300px;
height: 300px;
border: 4px solid rgba(255, 255, 255, 0.2);
border-radius: 50%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
pointer-events: none;
}
.gm-statement .gm-button {
background: var(--gm-white);
color: var(--gm-red);
border-color: var(--gm-white);
}
.gm-statement .gm-button:hover {
background: var(--gm-black);
color: var(--gm-white);
border-color: var(--gm-black);
}
| Aesthetic | Relationship to Geometric Modernism |
|---|---|
| Bauhaus | Direct ancestor; Geometric Modernism inherits its shape-color theory, grid discipline, and “form follows function” philosophy |
| De Stijl | Foundational influence; Mondrian’s primary-color, grid-locked compositions are a core reference for the entire aesthetic |
| Constructivism | Parallel avant-garde; shares the integration of art and industry with bold geometric compositions and propagandistic energy |
| Swiss International Style | Direct successor; formalized the Bauhaus grid and sans-serif typography into a systematic, objective design methodology |
| Flat Design | Digital descendant; applies Geometric Modernism’s flat-color, geometric, function-first principles to modern UI design |
| Minimalism | Philosophical sibling; shares the reductive impulse but takes it further, often eliminating color and shape variety |
| Material Design | Google’s system borrows grid discipline and flat color but reintroduces shadow and motion for hierarchy |
| Neubrutalism | Shares bold graphic presence and raw honesty but deliberately violates Modernist refinement with roughness and irony |
| Memphis Design | Postmodern reaction against Geometric Modernism; deliberately breaks every rule with pattern, decoration, and pastels |
| Op Art | Geometric sibling; uses precise geometric patterns but pursues optical illusion and perceptual effects rather than clarity |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Geometric Modernism</title>
<link href="https://fonts.googleapis.com/css2?family=Jost:wght@400;500;700;900&family=Work+Sans:wght@400;500&display=swap" rel="stylesheet">
<style>
:root {
/* Primary colors */
--gm-red: #DD0100;
--gm-yellow: #FAC901;
--gm-blue: #225095;
/* Hover states */
--gm-red-dark: #B30009;
--gm-yellow-dark: #D4A800;
--gm-blue-dark: #1A3D72;
/* Neutrals */
--gm-black: #000000;
--gm-near-black: #1A1A1A;
--gm-dark-gray: #3C3C3C;
--gm-medium-gray: #B0B0B0;
--gm-light-gray: #E8E8E8;
--gm-off-white: #F5F5F5;
--gm-white: #FFFFFF;
}
/* =============================================
RESET & BASE
============================================= */
*, *::before, *::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background: var(--gm-white);
color: var(--gm-black);
font-family: 'Work Sans', 'Helvetica Neue', Arial, sans-serif;
font-weight: 400;
line-height: 1.7;
-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Jost', 'Futura', 'Century Gothic', sans-serif;
font-weight: 700;
text-transform: uppercase;
line-height: 1.05;
letter-spacing: -0.01em;
}
a { color: inherit; }
img { max-width: 100%; display: block; }
/* =============================================
NAVIGATION
============================================= */
nav {
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1200px;
margin: 0 auto;
padding: 24px 40px;
border-bottom: 4px solid var(--gm-black);
}
.logo {
display: flex;
align-items: center;
gap: 14px;
font-family: 'Jost', sans-serif;
font-weight: 900;
font-size: 1.5rem;
color: var(--gm-black);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.logo-mark {
display: flex;
gap: 4px;
align-items: flex-end;
}
.logo-mark .sq {
width: 14px;
height: 14px;
background: var(--gm-red);
}
.logo-mark .ci {
width: 14px;
height: 14px;
background: var(--gm-blue);
border-radius: 50%;
}
.logo-mark .tr {
width: 0;
height: 0;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 14px solid var(--gm-yellow);
}
nav ul {
display: flex;
gap: 32px;
list-style: none;
}
nav ul a {
font-family: 'Jost', sans-serif;
font-weight: 500;
font-size: 0.85rem;
color: var(--gm-black);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.06em;
position: relative;
transition: color 0.2s;
}
nav ul a::after {
content: '';
position: absolute;
bottom: -6px;
left: 0;
width: 0;
height: 3px;
background: var(--gm-red);
transition: width 0.25s ease;
}
nav ul a:hover { color: var(--gm-red); }
nav ul a:hover::after { width: 100%; }
/* =============================================
HERO
============================================= */
.hero {
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1200px;
margin: 0 auto;
padding: 100px 40px;
gap: 60px;
position: relative;
}
.hero-content {
flex: 1;
max-width: 560px;
z-index: 2;
}
.hero h1 {
font-size: clamp(3rem, 8vw, 6rem);
font-weight: 900;
margin-bottom: 1.5rem;
line-height: 0.92;
}
.hero h1 .red { color: var(--gm-red); }
.hero h1 .blue { color: var(--gm-blue); }
.hero h1 .yellow { color: var(--gm-yellow); }
.hero p {
font-size: 1.15rem;
color: var(--gm-dark-gray);
margin-bottom: 2.5rem;
max-width: 440px;
}
.hero-visual {
flex: 1;
display: flex;
justify-content: center;
align-items: center;
}
/* =============================================
BUTTONS
============================================= */
.btn {
display: inline-block;
background: var(--gm-black);
color: var(--gm-white);
border: 3px solid var(--gm-black);
padding: 14px 40px;
font-family: 'Jost', sans-serif;
font-weight: 700;
font-size: 0.9rem;
text-transform: uppercase;
letter-spacing: 0.08em;
text-decoration: none;
cursor: pointer;
transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.btn:hover {
background: var(--gm-red);
border-color: var(--gm-red);
}
.btn--outline {
background: transparent;
color: var(--gm-black);
}
.btn--outline:hover {
background: var(--gm-black);
color: var(--gm-white);
}
.btn--blue {
background: var(--gm-blue);
border-color: var(--gm-blue);
}
.btn--blue:hover {
background: var(--gm-blue-dark);
border-color: var(--gm-blue-dark);
}
.btn-group {
display: flex;
gap: 16px;
flex-wrap: wrap;
}
/* =============================================
DIVIDER
============================================= */
.divider {
max-width: 1200px;
margin: 0 auto;
height: 4px;
background: var(--gm-black);
}
/* =============================================
FEATURES
============================================= */
.features {
background: var(--gm-off-white);
padding: 80px 0;
border-top: 4px solid var(--gm-black);
border-bottom: 4px solid var(--gm-black);
}
.features-header {
max-width: 1200px;
margin: 0 auto;
padding: 0 40px 56px;
}
.features-header h2 {
font-size: 2.5rem;
}
.features-header p {
margin-top: 12px;
color: var(--gm-dark-gray);
max-width: 540px;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 32px;
max-width: 1200px;
margin: 0 auto;
padding: 0 40px;
}
.feature {
background: var(--gm-white);
border: 3px solid var(--gm-black);
padding: 32px;
position: relative;
}
/* Corner geometric accent */
.feature::before {
content: '';
position: absolute;
top: -3px;
left: -3px;
width: 32px;
height: 32px;
}
.feature:nth-child(3n+1)::before { background: var(--gm-red); }
.feature:nth-child(3n+2)::before { background: var(--gm-blue); }
.feature:nth-child(3n+3)::before { background: var(--gm-yellow); }
.feature .shape {
width: 48px;
height: 48px;
margin-bottom: 20px;
}
.shape-circle {
background: var(--gm-blue);
border-radius: 50%;
}
.shape-square {
background: var(--gm-red);
}
.shape-triangle {
width: 0 !important;
height: 0 !important;
border-left: 24px solid transparent;
border-right: 24px solid transparent;
border-bottom: 48px solid var(--gm-yellow);
background: transparent !important;
}
.feature h3 {
font-size: 1.1rem;
margin-bottom: 8px;
}
.feature p {
color: var(--gm-dark-gray);
font-size: 0.95rem;
line-height: 1.65;
}
/* =============================================
MONDRIAN GRID
============================================= */
.mondrian-section {
padding: 80px 40px;
max-width: 1200px;
margin: 0 auto;
}
.mondrian-section h2 {
font-size: 2.5rem;
margin-bottom: 48px;
}
.mondrian-grid {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
grid-template-rows: 180px 100px 140px;
gap: 4px;
background: var(--gm-black);
border: 4px solid var(--gm-black);
}
.m-cell {
background: var(--gm-white);
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
font-family: 'Jost', sans-serif;
font-weight: 700;
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.m-cell--red {
background: var(--gm-red);
color: var(--gm-white);
grid-row: span 2;
}
.m-cell--blue {
background: var(--gm-blue);
color: var(--gm-white);
}
.m-cell--yellow {
background: var(--gm-yellow);
color: var(--gm-black);
grid-column: span 2;
}
.m-cell--tall {
grid-row: span 2;
}
.m-cell--wide {
grid-column: span 2;
}
/* =============================================
STATEMENT BANNER
============================================= */
.statement {
background: var(--gm-blue);
color: var(--gm-white);
text-align: center;
padding: 100px 40px;
position: relative;
overflow: hidden;
}
.statement::before {
content: '';
position: absolute;
width: 320px;
height: 320px;
border: 4px solid rgba(255, 255, 255, 0.15);
border-radius: 50%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
pointer-events: none;
}
.statement::after {
content: '';
position: absolute;
width: 200px;
height: 200px;
border: 4px solid rgba(255, 255, 255, 0.08);
top: 50%;
left: 50%;
transform: translate(-50%, -50%) rotate(45deg);
pointer-events: none;
}
.statement h2 {
font-size: clamp(2rem, 5vw, 4rem);
font-weight: 900;
margin-bottom: 1.5rem;
color: var(--gm-white);
position: relative;
z-index: 1;
}
.statement p {
font-size: 1.2rem;
max-width: 520px;
margin: 0 auto 2.5rem;
opacity: 0.9;
position: relative;
z-index: 1;
}
.statement .btn {
background: var(--gm-white);
color: var(--gm-blue);
border-color: var(--gm-white);
position: relative;
z-index: 1;
}
.statement .btn:hover {
background: var(--gm-black);
color: var(--gm-white);
border-color: var(--gm-black);
}
/* =============================================
PRINCIPLES LIST
============================================= */
.principles {
padding: 80px 0;
border-bottom: 4px solid var(--gm-black);
}
.principles-inner {
max-width: 1200px;
margin: 0 auto;
padding: 0 40px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: start;
}
.principles h2 {
font-size: 2.5rem;
margin-bottom: 1.5rem;
}
.principles p.lead {
color: var(--gm-dark-gray);
font-size: 1.1rem;
line-height: 1.7;
}
.principles-list {
list-style: none;
counter-reset: principle;
}
.principles-list li {
counter-increment: principle;
padding: 20px 0;
border-bottom: 2px solid var(--gm-light-gray);
display: flex;
gap: 20px;
align-items: baseline;
}
.principles-list li::before {
content: counter(principle, decimal-leading-zero);
font-family: 'Jost', sans-serif;
font-weight: 900;
font-size: 1.5rem;
color: var(--gm-red);
flex-shrink: 0;
}
.principles-list li strong {
font-family: 'Jost', sans-serif;
text-transform: uppercase;
letter-spacing: 0.02em;
}
/* =============================================
COLOR BLOCKS ROW
============================================= */
.color-row {
display: flex;
border-top: 4px solid var(--gm-black);
border-bottom: 4px solid var(--gm-black);
}
.color-block {
flex: 1;
padding: 60px 40px;
display: flex;
flex-direction: column;
justify-content: center;
}
.color-block--red { background: var(--gm-red); color: var(--gm-white); }
.color-block--yellow { background: var(--gm-yellow); color: var(--gm-black); }
.color-block--blue { background: var(--gm-blue); color: var(--gm-white); }
.color-block h3 {
font-size: 1.3rem;
margin-bottom: 8px;
color: inherit;
}
.color-block p {
font-size: 0.95rem;
opacity: 0.85;
line-height: 1.6;
}
/* =============================================
FOOTER
============================================= */
footer {
background: var(--gm-near-black);
color: var(--gm-medium-gray);
border-top: 4px solid var(--gm-black);
}
.footer-inner {
max-width: 1200px;
margin: 0 auto;
padding: 48px 40px;
display: grid;
grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 40px;
}
.footer-brand .logo {
color: var(--gm-white);
margin-bottom: 16px;
}
.footer-brand p {
font-size: 0.9rem;
line-height: 1.6;
max-width: 280px;
}
.footer-col h4 {
font-family: 'Jost', sans-serif;
font-size: 0.85rem;
color: var(--gm-white);
margin-bottom: 16px;
letter-spacing: 0.06em;
}
.footer-col ul {
list-style: none;
}
.footer-col ul li {
margin-bottom: 8px;
}
.footer-col ul a {
font-size: 0.85rem;
color: var(--gm-medium-gray);
text-decoration: none;
transition: color 0.2s;
}
.footer-col ul a:hover {
color: var(--gm-white);
}
.footer-bottom {
max-width: 1200px;
margin: 0 auto;
padding: 20px 40px;
border-top: 1px solid var(--gm-dark-gray);
display: flex;
justify-content: space-between;
font-size: 0.8rem;
}
/* =============================================
RESPONSIVE
============================================= */
@media (max-width: 768px) {
nav { padding: 20px 24px; }
nav ul { gap: 16px; }
.hero {
flex-direction: column;
text-align: center;
padding: 60px 24px;
gap: 40px;
}
.hero p {
margin-left: auto;
margin-right: auto;
}
.features-header { padding: 0 24px 40px; }
.features-grid { padding: 0 24px; }
.mondrian-grid {
grid-template-columns: 1fr 1fr;
grid-template-rows: auto;
}
.m-cell--tall { grid-row: auto; }
.m-cell--wide { grid-column: auto; }
.principles-inner {
grid-template-columns: 1fr;
gap: 32px;
padding: 0 24px;
}
.color-row {
flex-direction: column;
}
.footer-inner {
grid-template-columns: 1fr 1fr;
padding: 40px 24px;
}
.statement { padding: 60px 24px; }
}
@media (max-width: 480px) {
nav ul { gap: 12px; }
nav ul a { font-size: 0.75rem; }
.footer-inner { grid-template-columns: 1fr; }
.mondrian-grid {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<!-- NAVIGATION -->
<nav>
<a href="#" class="logo">
<span class="logo-mark">
<span class="sq"></span>
<span class="ci"></span>
<span class="tr"></span>
</span>
Geometrik
</a>
<ul>
<li><a href="#principles">Principles</a></li>
<li><a href="#work">Work</a></li>
<li><a href="#manifesto">Manifesto</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
<!-- HERO -->
<section class="hero">
<div class="hero-content">
<h1><span class="red">Shape.</span> <span class="blue">Color.</span> <span class="yellow">Order.</span></h1>
<p>Design reduced to geometric essence. Every circle, every square, every line exists because mathematics and function demand it.</p>
<div class="btn-group">
<a href="#" class="btn">Explore</a>
<a href="#" class="btn btn--outline">Learn More</a>
</div>
</div>
<div class="hero-visual">
<svg width="380" height="380" viewBox="0 0 380 380" fill="none" xmlns="http://www.w3.org/2000/svg">
<!-- Blue circle -->
<circle cx="210" cy="110" r="95" fill="#225095"/>
<!-- Red square -->
<rect x="30" y="190" width="150" height="150" fill="#DD0100"/>
<!-- Yellow triangle -->
<polygon points="250,370 330,210 410,370" fill="#FAC901"/>
<!-- Structural lines -->
<line x1="10" y1="180" x2="370" y2="180" stroke="#000000" stroke-width="4"/>
<line x1="190" y1="10" x2="190" y2="370" stroke="#000000" stroke-width="4"/>
<!-- Diagonal -->
<line x1="40" y1="340" x2="340" y2="60" stroke="#000000" stroke-width="3"/>
<!-- Small accent circle -->
<circle cx="320" cy="320" r="30" fill="none" stroke="#000000" stroke-width="3"/>
</svg>
</div>
</section>
<div class="divider"></div>
<!-- FEATURES -->
<section class="features">
<div class="features-header">
<h2>Foundations</h2>
<p>Three shapes. Three colors. Infinite compositions built on mathematical precision.</p>
</div>
<div class="features-grid">
<div class="feature">
<div class="shape shape-circle"></div>
<h3>Unity</h3>
<p>Art and technology united into a single discipline. Design that serves industry without sacrificing geometric beauty.</p>
</div>
<div class="feature">
<div class="shape shape-square"></div>
<h3>Function</h3>
<p>Every element justified by purpose. Ornament is eliminated; only honest, rational structure remains.</p>
</div>
<div class="feature">
<div class="shape shape-triangle"></div>
<h3>Precision</h3>
<p>Circle, square, triangle. The universal geometric vocabulary reduced to its mathematical fundamentals.</p>
</div>
<div class="feature">
<div class="shape shape-circle"></div>
<h3>Balance</h3>
<p>Asymmetric equilibrium through calculated weight distribution. Dynamic tension within ordered composition.</p>
</div>
<div class="feature">
<div class="shape shape-square"></div>
<h3>Grid</h3>
<p>The modular grid is architecture. Every pixel aligns to the structural backbone of mathematical proportion.</p>
</div>
<div class="feature">
<div class="shape shape-triangle"></div>
<h3>Clarity</h3>
<p>Communication without distraction. The message speaks through form, not decoration or embellishment.</p>
</div>
</div>
</section>
<!-- COLOR ROW -->
<section class="color-row">
<div class="color-block color-block--red">
<h3>Red / Square</h3>
<p>Energy, physicality, action. The commanding warmth of pure red anchors the material world.</p>
</div>
<div class="color-block color-block--yellow">
<h3>Yellow / Triangle</h3>
<p>Light, intellect, sharpness. Yellow radiates outward with angular, penetrating intensity.</p>
</div>
<div class="color-block color-block--blue">
<h3>Blue / Circle</h3>
<p>Depth, spirit, infinity. Blue recedes into contemplative, circular completeness.</p>
</div>
</section>
<!-- MONDRIAN GRID -->
<section class="mondrian-section">
<h2>Composition</h2>
<div class="mondrian-grid">
<div class="m-cell m-cell--red">Structure</div>
<div class="m-cell">Form</div>
<div class="m-cell m-cell--blue">Rhythm</div>
<div class="m-cell">Balance</div>
<div class="m-cell m-cell--yellow">Proportion</div>
<div class="m-cell">Tension</div>
<div class="m-cell">Harmony</div>
<div class="m-cell">Order</div>
<div class="m-cell">Grid</div>
</div>
</section>
<!-- PRINCIPLES -->
<section class="principles" id="principles">
<div class="principles-inner">
<div>
<h2>Principles</h2>
<p class="lead">Geometric Modernism is not a style to be applied. It is a discipline to be practiced -- a commitment to rational beauty through mathematical order and chromatic honesty.</p>
</div>
<ol class="principles-list">
<li><strong>Reduce</strong> -- strip to geometric essentials; if it cannot be justified, eliminate it</li>
<li><strong>Construct</strong> -- build from circles, squares, and triangles; compound forms emerge from primitives</li>
<li><strong>Align</strong> -- every element snaps to the grid; mathematical precision governs placement</li>
<li><strong>Balance</strong> -- achieve dynamic equilibrium through asymmetry, not mirror reflection</li>
<li><strong>Color</strong> -- red, yellow, blue, black, white; each hue carries functional meaning</li>
<li><strong>Communicate</strong> -- the design speaks through clarity, not decoration or excess</li>
</ol>
</div>
</section>
<!-- STATEMENT -->
<section class="statement" id="manifesto">
<h2>Less Decoration. More Geometry.</h2>
<p>Every pixel is a decision. Every shape is a statement. Geometric Modernism demands that design earn its existence through mathematical precision and functional honesty.</p>
<a href="#" class="btn">Read the Manifesto</a>
</section>
<!-- FOOTER -->
<footer id="contact">
<div class="footer-inner">
<div class="footer-brand">
<a href="#" class="logo">
<span class="logo-mark">
<span class="sq"></span>
<span class="ci"></span>
<span class="tr"></span>
</span>
Geometrik
</a>
<p>Design built on geometric fundamentals. Circles, squares, triangles, and primary colors -- nothing more, nothing less.</p>
</div>
<div class="footer-col">
<h4>Navigate</h4>
<ul>
<li><a href="#">Principles</a></li>
<li><a href="#">Work</a></li>
<li><a href="#">Manifesto</a></li>
<li><a href="#">Archive</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Resources</h4>
<ul>
<li><a href="#">Style Guide</a></li>
<li><a href="#">Grid System</a></li>
<li><a href="#">Color Theory</a></li>
<li><a href="#">Typography</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Connect</h4>
<ul>
<li><a href="#">GitHub</a></li>
<li><a href="#">Dribbble</a></li>
<li><a href="#">Behance</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<span>Built on geometric principles.</span>
<span>Shape. Color. Order.</span>
</div>
</footer>
</body>
</html>
clamp(), viewport units, and aspect-ratio to maintain geometric precision on every screen sizeborder over box-shadow – thick solid borders are a defining characteristic; shadows violate the flat, honest surface principletext-transform: uppercase and tight letter-spacing for headings – this transforms type into visual blocks that function as geometric elements within the compositionoutline debugging technique to ensure every element aligns; a single misaligned pixel undermines the entire system’s credibility