Googie is a flamboyant, futuristic design style that emerged from Southern California commercial architecture between roughly 1945 and the early 1970s. Named after Googies Coffee Shop in Hollywood (designed by John Lautner in 1949), the aesthetic is defined by its upswept roofs, bold boomerang shapes, starburst motifs, atomic symbols, soaring angled signage, and an exuberant embrace of the Space Age and car culture. Googie architecture appeared primarily on roadside commercial buildings – diners, motels, car washes, bowling alleys, and gas stations – designed to grab the attention of passing motorists with dramatic, eye-catching forms. In web and UI design, Googie translates to dynamic angular compositions, sweeping curves, starburst and boomerang decorative elements, neon-inspired color palettes mixing turquoise, coral, and chrome, bold angled typography, and an overall feeling of optimistic, jet-propelled forward motion. The result is a retro-futuristic digital experience that channels mid-century American confidence and the thrill of the space race.
Googie color palettes combine the vibrant pastels of 1950s consumer culture with neon sign hues, chrome metallics, and deep space-age backgrounds. The palette evokes roadside diners, vintage cars, and neon-lit boulevards.
| Swatch Name | Hex | Role / Usage |
|---|---|---|
| Googie Turquoise | #40E0D0 |
Primary accent – the signature mid-century color for backgrounds, highlights, and interactive elements |
| Flamingo Pink | #FF6B81 |
Secondary accent – warm complement to turquoise, used for buttons, hover states, and decorative shapes |
| Coral Orange | #FF7F50 |
Tertiary accent – warm, inviting tone for call-to-action elements and feature highlights |
| Atomic Tangerine | #FF9966 |
Warm accent – neon sign glow, gradient midpoints, and starburst fills |
| Chrome Yellow | #FFD700 |
Starburst and highlight color – radiating elements, badges, and attention-grabbing details |
| Neon Red | #E63946 |
Bold accent – sign lettering, urgent elements, and dramatic contrast points |
| Space Cadet Navy | #1D2951 |
Dark background – deep space base color for hero sections and dark-mode layouts |
| Midnight Charcoal | #1A1A2E |
Dark background variant – slightly warmer alternative for body backgrounds |
| Diner White | #F5F5F0 |
Light background and text – clean, slightly warm white evoking Formica countertops |
| Mint Cream | #B5EAD7 |
Soft pastel accent – secondary decorative color for light-mode layouts |
| Chrome Silver | #C0C0C0 |
Metallic accent – borders, dividers, and chrome surface effects |
| Brushed Steel | #A9B4C2 |
Metallic secondary – subtle metallic for secondary borders and inactive states |
| Boomerang Teal | #008B8B |
Deep teal – darker variant for text on light backgrounds and active states |
| Asphalt Gray | #4A4A4A |
Neutral text – body copy on light backgrounds |
:root {
/* Primary accents */
--googie-turquoise: #40e0d0;
--googie-pink: #ff6b81;
--googie-coral: #ff7f50;
--googie-tangerine: #ff9966;
--googie-yellow: #ffd700;
--googie-red: #e63946;
/* Pastels */
--googie-mint: #b5ead7;
--googie-light-pink: #ffc0cb;
/* Dark backgrounds */
--googie-navy: #1d2951;
--googie-dark: #1a1a2e;
/* Light backgrounds */
--googie-white: #f5f5f0;
--googie-cream: #faf3e0;
/* Metallics */
--googie-chrome: #c0c0c0;
--googie-steel: #a9b4c2;
--googie-chrome-light: #e8e8e8;
/* Neutrals */
--googie-teal-dark: #008b8b;
--googie-gray: #4a4a4a;
/* Functional aliases */
--googie-bg-primary: var(--googie-navy);
--googie-bg-secondary: var(--googie-dark);
--googie-bg-light: var(--googie-white);
--googie-text-light: var(--googie-white);
--googie-text-dark: var(--googie-gray);
--googie-accent: var(--googie-turquoise);
--googie-accent-warm: var(--googie-coral);
--googie-border: var(--googie-chrome);
}
| Font | Style | Usage |
|---|---|---|
| Audiowide | Wide, technical, retro-futuristic sans-serif | Primary headlines – captures the bold, mechanical feel of Googie signage |
| Orbitron | Geometric, futuristic, space-age | Secondary headlines, navigation labels, and UI elements |
| Righteous | Rounded retro, 1960s feel | Subheadings and mid-weight display text |
| Bungee | Bold, playful, chunky display | Feature headings, banners, oversized hero text |
| Bungee Shade | Dimensional retro display with built-in shadow | Large hero text and decorative titles |
| Pacifico | 1950s brush script | Decorative accents, diner-style labels, and taglines |
| Jost | Geometric sans-serif, Futura-inspired | Body text, paragraphs, and all-purpose readable content |
| Space Grotesk | Modern geometric grotesk | Body text, data displays, and technical content |
| Monoton | Retro outline display | Decorative neon-style titles and accent text |
| Heading Font | Body Font | Mood / Use Case |
|---|---|---|
| Audiowide | Jost | Classic Googie – bold mechanical headlines with clean geometric body text; best for general-purpose layouts |
| Bungee Shade | Space Grotesk | Maximum impact – dimensional retro display headings with modern body copy; best for hero-driven pages |
| Righteous | Jost | Softer retro – rounded, friendly headlines with geometric body text; best for diner / hospitality themes |
| Orbitron + Pacifico | Jost | Mixed personality – space-age headers with script accents and clean body text; best for playful, nostalgic layouts |
| Monoton | Space Grotesk | Neon sign effect – outline display font for titles with clean tech body copy; best for night-scene / dark-mode designs |
/* Font imports */
@import url('https://fonts.googleapis.com/css2?family=Audiowide&family=Bungee+Shade&family=Jost:wght@300;400;500;700&family=Pacifico&family=Righteous&family=Orbitron:wght@400;700;900&display=swap');
/* Headlines -- bold, wide, space-age */
h1, h2, h3 {
font-family: 'Audiowide', 'Orbitron', sans-serif;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--googie-turquoise);
font-weight: 400;
}
/* Display / Hero text -- maximum visual impact */
.googie-display {
font-family: 'Bungee Shade', 'Bungee', sans-serif;
font-size: clamp(3rem, 8vw, 8rem);
letter-spacing: 0.06em;
line-height: 1.05;
color: var(--googie-yellow);
text-shadow: 3px 3px 0 var(--googie-red);
}
/* Body text -- clean, readable, geometric */
body {
font-family: 'Jost', 'Space Grotesk', sans-serif;
font-weight: 400;
letter-spacing: 0.02em;
line-height: 1.7;
color: var(--googie-text-light);
}
/* Script accent -- diner-style decorative text */
.googie-script {
font-family: 'Pacifico', cursive;
font-size: 1.4em;
color: var(--googie-pink);
transform: rotate(-3deg);
display: inline-block;
}
/* Neon outline text */
.googie-neon {
font-family: 'Monoton', cursive;
color: var(--googie-turquoise);
text-shadow:
0 0 7px var(--googie-turquoise),
0 0 10px var(--googie-turquoise),
0 0 21px var(--googie-turquoise),
0 0 42px #0fa;
}
.googie-card {
background: var(--googie-navy);
border: 2px solid var(--googie-chrome);
border-radius: 4px 20px 4px 20px;
padding: 2rem;
position: relative;
overflow: hidden;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.googie-card:hover {
transform: translateY(-4px) rotate(-0.5deg);
box-shadow:
0 8px 24px rgba(64, 224, 208, 0.15),
0 0 0 1px var(--googie-turquoise);
}
/* Starburst corner decoration */
.googie-card::before {
content: '';
position: absolute;
top: -25px;
right: -25px;
width: 70px;
height: 70px;
background: repeating-conic-gradient(
var(--googie-yellow) 0deg 3deg,
transparent 3deg 15deg
);
border-radius: 50%;
opacity: 0.15;
}
/* Boomerang accent along bottom */
.googie-card::after {
content: '';
position: absolute;
bottom: -10px;
left: 20%;
width: 60%;
height: 20px;
background: var(--googie-turquoise);
border-radius: 0 0 50% 50% / 0 0 100% 100%;
opacity: 0.1;
}
.googie-card h3 {
font-family: 'Audiowide', sans-serif;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--googie-turquoise);
margin-bottom: 0.75rem;
}
.googie-card p {
font-family: 'Jost', sans-serif;
color: var(--googie-white);
line-height: 1.6;
}
.googie-button {
display: inline-block;
background: linear-gradient(135deg, var(--googie-turquoise), var(--googie-teal-dark));
color: var(--googie-dark);
border: 2px solid var(--googie-chrome);
border-radius: 2px 16px 2px 16px;
padding: 14px 36px;
font-family: 'Audiowide', sans-serif;
font-size: 0.95rem;
text-transform: uppercase;
letter-spacing: 0.08em;
text-decoration: none;
cursor: pointer;
position: relative;
overflow: hidden;
transition: all 0.3s ease;
box-shadow: 0 4px 12px rgba(64, 224, 208, 0.3);
}
.googie-button:hover {
background: linear-gradient(135deg, var(--googie-coral), var(--googie-pink));
color: var(--googie-white);
box-shadow: 0 6px 20px rgba(255, 107, 129, 0.4);
transform: translateY(-2px);
}
.googie-button:active {
transform: translateY(1px);
box-shadow: 0 2px 8px rgba(64, 224, 208, 0.2);
}
/* Sweeping shine animation */
.googie-button::after {
content: '';
position: absolute;
top: -50%;
left: -75%;
width: 50%;
height: 200%;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.2),
transparent
);
transform: skewX(-25deg);
transition: left 0.5s ease;
}
.googie-button:hover::after {
left: 125%;
}
/* Variant: warm / coral */
.googie-button--warm {
background: linear-gradient(135deg, var(--googie-coral), var(--googie-red));
color: var(--googie-white);
}
/* Variant: neon outline */
.googie-button--neon {
background: transparent;
color: var(--googie-turquoise);
border: 2px solid var(--googie-turquoise);
box-shadow:
0 0 8px rgba(64, 224, 208, 0.3),
inset 0 0 8px rgba(64, 224, 208, 0.1);
}
.googie-button--neon:hover {
background: var(--googie-turquoise);
color: var(--googie-dark);
box-shadow: 0 0 20px rgba(64, 224, 208, 0.5);
}
.googie-nav {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 2.5rem;
height: 70px;
background: var(--googie-dark);
border-bottom: 2px solid var(--googie-chrome);
position: relative;
}
/* Angled accent strip along bottom */
.googie-nav::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(
90deg,
var(--googie-turquoise) 0%,
var(--googie-coral) 50%,
var(--googie-yellow) 100%
);
}
.googie-nav__logo {
font-family: 'Audiowide', sans-serif;
font-size: 1.5rem;
color: var(--googie-turquoise);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.1em;
}
.googie-nav__links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.googie-nav__links a {
font-family: 'Jost', sans-serif;
font-weight: 500;
font-size: 0.9rem;
color: var(--googie-white);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.06em;
padding: 6px 12px;
border-radius: 2px 8px 2px 8px;
transition: background 0.2s ease, color 0.2s ease;
}
.googie-nav__links a:hover {
background: var(--googie-turquoise);
color: var(--googie-dark);
}
.googie-nav__links a.active {
background: var(--googie-coral);
color: var(--googie-white);
}
.googie-hero {
position: relative;
min-height: 90vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 6rem 2rem;
background: var(--googie-navy);
overflow: hidden;
}
/* Upswept bottom edge -- the signature Googie roofline */
.googie-hero::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 80px;
background: var(--googie-dark);
clip-path: polygon(0 70%, 35% 0, 65% 30%, 100% 0, 100% 100%, 0 100%);
}
.googie-hero__content {
position: relative;
z-index: 2;
max-width: 800px;
}
.googie-hero h1 {
font-family: 'Bungee Shade', sans-serif;
font-size: clamp(3rem, 8vw, 7rem);
color: var(--googie-yellow);
text-shadow: 3px 3px 0 var(--googie-red);
letter-spacing: 0.06em;
line-height: 1.05;
margin-bottom: 1.5rem;
}
.googie-hero p {
font-family: 'Jost', sans-serif;
font-size: 1.25rem;
color: var(--googie-white);
max-width: 560px;
margin: 0 auto 2.5rem;
line-height: 1.7;
}
/* Starburst background decoration */
.googie-hero__starburst {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 700px;
height: 700px;
background: repeating-conic-gradient(
var(--googie-yellow) 0deg 2.5deg,
transparent 2.5deg 10deg
);
border-radius: 50%;
opacity: 0.04;
pointer-events: none;
animation: googie-starburst-spin 60s linear infinite;
}
@keyframes googie-starburst-spin {
to { transform: translate(-50%, -50%) rotate(360deg); }
}
/* Decorative boomerang -- the quintessential Googie shape */
.googie-boomerang {
width: 250px;
height: 120px;
background: var(--googie-turquoise);
border-radius: 80% 15% 55% 45% / 55% 35% 80% 25%;
transform: rotate(-20deg);
opacity: 0.12;
position: absolute;
pointer-events: none;
}
/* Variant: outlined boomerang */
.googie-boomerang--outline {
background: transparent;
border: 3px solid var(--googie-coral);
opacity: 0.25;
}
/* Variant: small accent boomerang */
.googie-boomerang--sm {
width: 100px;
height: 50px;
}
/* Animated hover boomerang */
.googie-boomerang--animated {
transition: transform 0.6s ease;
}
.googie-boomerang--animated:hover {
transform: rotate(-20deg) scale(1.1) translateY(-10px);
}
/* Pure CSS starburst -- works as a decorative badge or background element */
.googie-starburst {
position: relative;
width: 180px;
height: 180px;
display: flex;
align-items: center;
justify-content: center;
}
.googie-starburst::before {
content: '';
position: absolute;
inset: 0;
background: repeating-conic-gradient(
var(--googie-yellow) 0deg 4deg,
transparent 4deg 12deg
);
border-radius: 50%;
animation: googie-starburst-pulse 3s ease-in-out infinite alternate;
}
.googie-starburst__text {
position: relative;
z-index: 1;
font-family: 'Audiowide', sans-serif;
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--googie-dark);
text-align: center;
}
@keyframes googie-starburst-pulse {
from { transform: scale(1) rotate(0deg); opacity: 0.8; }
to { transform: scale(1.05) rotate(5deg); opacity: 1; }
}
/* Atomic orbit decoration -- a nod to the Atomic Age roots of Googie */
.googie-atom {
position: relative;
width: 200px;
height: 200px;
}
/* Nucleus */
.googie-atom__nucleus {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 20px;
height: 20px;
background: var(--googie-coral);
border-radius: 50%;
box-shadow: 0 0 12px var(--googie-coral), 0 0 24px rgba(255, 127, 80, 0.3);
}
/* Orbital rings */
.googie-atom__orbit {
position: absolute;
inset: 10%;
border: 2px solid var(--googie-turquoise);
border-radius: 50%;
opacity: 0.3;
}
.googie-atom__orbit:nth-child(2) {
transform: rotateX(65deg) rotateZ(15deg);
}
.googie-atom__orbit:nth-child(3) {
transform: rotateX(65deg) rotateZ(-50deg);
}
.googie-atom__orbit:nth-child(4) {
transform: rotateX(65deg) rotateZ(75deg);
}
/* Electron */
.googie-atom__electron {
width: 10px;
height: 10px;
background: var(--googie-yellow);
border-radius: 50%;
box-shadow: 0 0 8px var(--googie-yellow);
position: absolute;
animation: googie-orbit 4s linear infinite;
}
@keyframes googie-orbit {
from { transform: rotate(0deg) translateX(80px) rotate(0deg); }
to { transform: rotate(360deg) translateX(80px) rotate(-360deg); }
}
/* Googie-style angled sign -- the towering roadside pylon translated to web */
.googie-sign {
position: relative;
display: inline-block;
background: var(--googie-dark);
border: 2px solid var(--googie-chrome);
padding: 1.5rem 3rem;
transform: perspective(500px) rotateY(-5deg) skewY(-2deg);
box-shadow:
6px 6px 0 var(--googie-turquoise),
12px 12px 0 rgba(64, 224, 208, 0.2);
}
.googie-sign__title {
font-family: 'Audiowide', sans-serif;
font-size: 2rem;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--googie-yellow);
text-shadow: 0 0 10px rgba(255, 215, 0, 0.5);
}
.googie-sign__subtitle {
font-family: 'Pacifico', cursive;
font-size: 1.1rem;
color: var(--googie-pink);
margin-top: 0.25rem;
}
/* Neon border glow */
.googie-sign::before {
content: '';
position: absolute;
inset: -4px;
border: 2px solid var(--googie-turquoise);
border-radius: 2px;
opacity: 0.5;
box-shadow:
0 0 8px var(--googie-turquoise),
inset 0 0 8px rgba(64, 224, 208, 0.1);
}
/* Googie roofline section divider -- the dramatic upswept angle */
.googie-divider-upswept {
height: 80px;
background: var(--googie-dark);
clip-path: polygon(0 65%, 30% 0, 55% 20%, 100% 0, 100% 100%, 0 100%);
position: relative;
}
/* Variant: inverted upswept */
.googie-divider-upswept--inv {
clip-path: polygon(0 0, 100% 0, 100% 35%, 70% 100%, 45% 80%, 0 100%);
}
/* Chrome accent line along the sweep */
.googie-divider-upswept::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(
90deg,
transparent 0%,
var(--googie-chrome) 20%,
var(--googie-turquoise) 50%,
var(--googie-chrome) 80%,
transparent 100%
);
}
| Aesthetic | Relationship to Googie |
|---|---|
| Atomic Age | Parent aesthetic; Googie is the commercial architecture expression of broader Atomic Age design culture, sharing starburst, boomerang, and atomic motifs |
| Space Age | Overlapping sibling; Space Age focuses more on aerospace and lunar exploration imagery, while Googie is rooted in roadside commercial architecture |
| Raygun Gothic | Retro-futuristic cousin; Raygun Gothic blends Art Deco with rocket-age imagery, sharing the optimistic futurism but with a more streamlined, elegant feel |
| Mid-Century Modern | Broader design movement that encompasses Googie; Mid-Century Modern is more restrained and residential where Googie is exuberant and commercial |
| Streamline Moderne | Direct predecessor; the aerodynamic curves of Streamline Moderne evolved into Googie’s more extreme angular and cantilevered forms |
| American Kitsch | Cultural companion; shares the populist, commercial, attention-grabbing sensibility, but Kitsch lacks Googie’s specific space-age futurism |
| Chromecore | Contemporary descendant; Chromecore’s reflective metallic surfaces echo the chrome and steel finishes central to Googie’s material palette |
| Frutiger Aero | Distant relative through optimistic futurism; both celebrate technology with glossy, clean aesthetics, though Frutiger Aero is digital-native while Googie is architectural |
| Dark Mode Neon | Shares the neon-on-dark visual language; Dark Mode Neon draws from cyberpunk and nightlife rather than mid-century diners, but the glow techniques overlap |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Googie Design -- Space Age Style</title>
<link href="https://fonts.googleapis.com/css2?family=Audiowide&family=Bungee+Shade&family=Jost:wght@300;400;500;700&family=Pacifico&family=Righteous&display=swap" rel="stylesheet">
<style>
:root {
--googie-turquoise: #40e0d0;
--googie-pink: #ff6b81;
--googie-coral: #ff7f50;
--googie-tangerine: #ff9966;
--googie-yellow: #ffd700;
--googie-red: #e63946;
--googie-navy: #1d2951;
--googie-dark: #1a1a2e;
--googie-white: #f5f5f0;
--googie-cream: #faf3e0;
--googie-chrome: #c0c0c0;
--googie-mint: #b5ead7;
--googie-teal-dark: #008b8b;
--googie-gray: #4a4a4a;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: var(--googie-dark);
color: var(--googie-white);
font-family: 'Jost', sans-serif;
font-weight: 400;
letter-spacing: 0.02em;
line-height: 1.7;
}
/* ===== NAVIGATION ===== */
nav {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 2.5rem;
height: 70px;
background: var(--googie-dark);
border-bottom: 2px solid var(--googie-chrome);
position: relative;
z-index: 10;
}
nav::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(90deg, var(--googie-turquoise), var(--googie-coral), var(--googie-yellow));
}
.logo {
font-family: 'Audiowide', sans-serif;
font-size: 1.4rem;
color: var(--googie-turquoise);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.1em;
}
nav ul {
display: flex;
gap: 1.5rem;
list-style: none;
}
nav ul a {
font-family: 'Jost', sans-serif;
font-weight: 500;
font-size: 0.9rem;
color: var(--googie-white);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.06em;
padding: 6px 14px;
border-radius: 2px 8px 2px 8px;
transition: background 0.2s, color 0.2s;
}
nav ul a:hover {
background: var(--googie-turquoise);
color: var(--googie-dark);
}
/* ===== HERO ===== */
.hero {
position: relative;
min-height: 92vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 6rem 2rem;
background: var(--googie-navy);
overflow: hidden;
}
/* Starburst background */
.hero::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 800px;
height: 800px;
background: repeating-conic-gradient(
var(--googie-yellow) 0deg 2.5deg,
transparent 2.5deg 10deg
);
border-radius: 50%;
opacity: 0.04;
pointer-events: none;
animation: starburst-spin 80s linear infinite;
}
@keyframes starburst-spin {
to { transform: translate(-50%, -50%) rotate(360deg); }
}
/* Upswept bottom divider */
.hero::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 80px;
background: var(--googie-white);
clip-path: polygon(0 70%, 30% 0%, 55% 25%, 100% 0%, 100% 100%, 0 100%);
}
.hero-content {
position: relative;
z-index: 2;
max-width: 800px;
}
.hero h1 {
font-family: 'Bungee Shade', sans-serif;
font-size: clamp(3rem, 8vw, 7rem);
color: var(--googie-yellow);
text-shadow: 3px 3px 0 var(--googie-red);
letter-spacing: 0.06em;
line-height: 1.05;
margin-bottom: 0.5rem;
}
.hero-script {
font-family: 'Pacifico', cursive;
font-size: clamp(1.2rem, 3vw, 1.8rem);
color: var(--googie-pink);
display: inline-block;
transform: rotate(-3deg);
margin-bottom: 1.5rem;
}
.hero p {
font-size: 1.15rem;
color: rgba(245, 245, 240, 0.85);
max-width: 560px;
margin: 0 auto 2.5rem;
}
/* Buttons */
.btn {
display: inline-block;
padding: 14px 36px;
font-family: 'Audiowide', sans-serif;
font-size: 0.9rem;
text-transform: uppercase;
letter-spacing: 0.08em;
text-decoration: none;
border-radius: 2px 14px 2px 14px;
cursor: pointer;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
border: 2px solid var(--googie-chrome);
}
.btn::after {
content: '';
position: absolute;
top: -50%;
left: -75%;
width: 50%;
height: 200%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
transform: skewX(-25deg);
transition: left 0.5s ease;
}
.btn:hover::after {
left: 125%;
}
.btn--primary {
background: linear-gradient(135deg, var(--googie-turquoise), var(--googie-teal-dark));
color: var(--googie-dark);
box-shadow: 0 4px 15px rgba(64, 224, 208, 0.3);
}
.btn--primary:hover {
transform: translateY(-2px);
box-shadow: 0 6px 24px rgba(64, 224, 208, 0.45);
}
.btn--secondary {
background: transparent;
color: var(--googie-turquoise);
border-color: var(--googie-turquoise);
box-shadow: 0 0 8px rgba(64, 224, 208, 0.15);
}
.btn--secondary:hover {
background: var(--googie-turquoise);
color: var(--googie-dark);
box-shadow: 0 0 20px rgba(64, 224, 208, 0.4);
}
.hero-buttons {
display: flex;
gap: 1.25rem;
justify-content: center;
flex-wrap: wrap;
}
/* Decorative shapes */
.shape {
position: absolute;
pointer-events: none;
z-index: 1;
}
/* Boomerang shapes */
.boomerang-1 {
width: 200px;
height: 90px;
background: var(--googie-turquoise);
border-radius: 80% 15% 55% 45% / 55% 35% 80% 25%;
opacity: 0.08;
top: 12%;
right: 8%;
transform: rotate(-25deg);
animation: float 8s ease-in-out infinite;
}
.boomerang-2 {
width: 140px;
height: 65px;
border: 3px solid var(--googie-coral);
border-radius: 80% 15% 55% 45% / 55% 35% 80% 25%;
opacity: 0.15;
bottom: 18%;
left: 6%;
transform: rotate(15deg);
animation: float 10s ease-in-out 2s infinite;
}
/* Atom decoration */
.atom-deco {
width: 120px;
height: 120px;
top: 20%;
left: 10%;
animation: float 9s ease-in-out 1s infinite;
}
.atom-deco::before,
.atom-deco::after {
content: '';
position: absolute;
inset: 15%;
border: 2px solid var(--googie-turquoise);
border-radius: 50%;
opacity: 0.2;
}
.atom-deco::before { transform: rotateX(65deg) rotateZ(20deg); }
.atom-deco::after { transform: rotateX(65deg) rotateZ(-45deg); }
/* Starburst accent */
.starburst-accent {
width: 80px;
height: 80px;
bottom: 25%;
right: 15%;
background: repeating-conic-gradient(
var(--googie-yellow) 0deg 4deg,
transparent 4deg 15deg
);
border-radius: 50%;
opacity: 0.12;
animation: float 7s ease-in-out 3s infinite;
}
@keyframes float {
0%, 100% { transform: translate(0, 0) rotate(var(--base-rot, 0deg)); }
25% { transform: translate(10px, -15px) rotate(calc(var(--base-rot, 0deg) + 3deg)); }
50% { transform: translate(-5px, -25px) rotate(calc(var(--base-rot, 0deg) - 2deg)); }
75% { transform: translate(-15px, -10px) rotate(calc(var(--base-rot, 0deg) + 2deg)); }
}
/* ===== FEATURES (light section) ===== */
.features {
background: var(--googie-white);
color: var(--googie-gray);
padding: 5rem 2rem 6rem;
position: relative;
}
.features h2 {
font-family: 'Audiowide', sans-serif;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--googie-navy);
font-size: clamp(1.8rem, 4vw, 2.8rem);
text-align: center;
margin-bottom: 3rem;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
max-width: 1100px;
margin: 0 auto;
}
.feature-card {
background: var(--googie-navy);
border: 2px solid var(--googie-chrome);
border-radius: 4px 20px 4px 20px;
padding: 2rem;
position: relative;
overflow: hidden;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.feature-card:hover {
transform: translateY(-5px) rotate(-0.5deg);
box-shadow: 0 10px 30px rgba(29, 41, 81, 0.3);
}
.feature-card::before {
content: '';
position: absolute;
top: -20px;
right: -20px;
width: 60px;
height: 60px;
background: repeating-conic-gradient(
var(--googie-yellow) 0deg 3deg,
transparent 3deg 15deg
);
border-radius: 50%;
opacity: 0.15;
}
.feature-card .icon {
font-size: 2.5rem;
margin-bottom: 1rem;
display: block;
}
.feature-card h3 {
font-family: 'Righteous', sans-serif;
font-size: 1.3rem;
color: var(--googie-turquoise);
margin-bottom: 0.75rem;
}
.feature-card p {
color: rgba(245, 245, 240, 0.8);
font-size: 0.95rem;
line-height: 1.6;
}
.feature-card:nth-child(1) { border-top: 3px solid var(--googie-turquoise); }
.feature-card:nth-child(2) { border-top: 3px solid var(--googie-coral); }
.feature-card:nth-child(3) { border-top: 3px solid var(--googie-yellow); }
/* ===== UPSWEPT DIVIDER ===== */
.divider-upswept {
height: 70px;
background: var(--googie-navy);
clip-path: polygon(0 60%, 35% 0, 60% 25%, 100% 0, 100% 100%, 0 100%);
position: relative;
}
.divider-upswept::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(90deg, transparent, var(--googie-chrome) 20%, var(--googie-turquoise) 50%, var(--googie-chrome) 80%, transparent);
}
/* ===== SHOWCASE (dark section) ===== */
.showcase {
background: var(--googie-navy);
padding: 5rem 2rem;
text-align: center;
position: relative;
overflow: hidden;
}
.showcase h2 {
font-family: 'Audiowide', sans-serif;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--googie-turquoise);
font-size: clamp(1.6rem, 3.5vw, 2.4rem);
margin-bottom: 1rem;
}
.showcase p {
max-width: 600px;
margin: 0 auto 3rem;
color: rgba(245, 245, 240, 0.75);
font-size: 1.05rem;
}
/* Googie sign component */
.googie-sign-demo {
display: inline-block;
background: var(--googie-dark);
border: 2px solid var(--googie-chrome);
padding: 2rem 3.5rem;
transform: perspective(600px) rotateY(-4deg) skewY(-1.5deg);
position: relative;
margin-bottom: 2rem;
}
.googie-sign-demo::before {
content: '';
position: absolute;
inset: -5px;
border: 2px solid var(--googie-turquoise);
border-radius: 2px;
opacity: 0.4;
box-shadow: 0 0 10px var(--googie-turquoise), inset 0 0 10px rgba(64, 224, 208, 0.05);
}
.googie-sign-demo .sign-title {
font-family: 'Audiowide', sans-serif;
font-size: clamp(1.8rem, 4vw, 2.5rem);
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--googie-yellow);
text-shadow: 0 0 12px rgba(255, 215, 0, 0.4);
}
.googie-sign-demo .sign-sub {
font-family: 'Pacifico', cursive;
font-size: 1.1rem;
color: var(--googie-pink);
margin-top: 0.35rem;
}
/* ===== CTA SECTION ===== */
.cta {
background: linear-gradient(135deg, var(--googie-coral), var(--googie-pink));
text-align: center;
padding: 5rem 2rem;
position: relative;
overflow: hidden;
}
/* Starburst in CTA background */
.cta::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 500px;
height: 500px;
background: repeating-conic-gradient(
rgba(255,255,255,0.15) 0deg 3deg,
transparent 3deg 12deg
);
border-radius: 50%;
pointer-events: none;
}
.cta h2 {
font-family: 'Audiowide', sans-serif;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--googie-white);
font-size: clamp(1.8rem, 4vw, 3rem);
margin-bottom: 1rem;
position: relative;
}
.cta p {
color: rgba(255, 255, 255, 0.9);
font-size: 1.1rem;
margin-bottom: 2rem;
max-width: 500px;
margin-left: auto;
margin-right: auto;
position: relative;
}
.cta .btn--primary {
background: var(--googie-dark);
color: var(--googie-turquoise);
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
position: relative;
}
.cta .btn--primary:hover {
background: var(--googie-navy);
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.4);
}
/* ===== FOOTER ===== */
footer {
background: var(--googie-dark);
border-top: 2px solid var(--googie-chrome);
padding: 2.5rem 2rem;
text-align: center;
position: relative;
}
footer::before {
content: '';
position: absolute;
top: -2px;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(90deg, var(--googie-turquoise), var(--googie-coral), var(--googie-yellow));
}
footer p {
color: var(--googie-chrome);
font-size: 0.85rem;
letter-spacing: 0.04em;
}
footer .footer-logo {
font-family: 'Audiowide', sans-serif;
color: var(--googie-turquoise);
font-size: 1.1rem;
text-transform: uppercase;
letter-spacing: 0.1em;
margin-bottom: 0.5rem;
}
/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
nav { padding: 0 1.25rem; height: 60px; }
nav ul { gap: 0.75rem; }
nav ul a { font-size: 0.8rem; padding: 4px 8px; }
.hero { min-height: 80vh; padding: 4rem 1.5rem; }
.hero h1 { font-size: clamp(2.2rem, 10vw, 3.5rem); }
.hero-buttons { flex-direction: column; align-items: center; }
.features { padding: 3.5rem 1.5rem 4rem; }
.shape { opacity: 0.5; }
.googie-sign-demo { padding: 1.5rem 2rem; }
.cta { padding: 3.5rem 1.5rem; }
}
</style>
</head>
<body>
<!-- Navigation -->
<nav>
<a href="#" class="logo">Googie</a>
<ul>
<li><a href="#">Diner</a></li>
<li><a href="#">Motel</a></li>
<li><a href="#">Starport</a></li>
<li><a href="#">Drive-In</a></li>
</ul>
</nav>
<!-- Hero Section -->
<section class="hero">
<!-- Decorative shapes -->
<div class="shape boomerang-1" style="--base-rot: -25deg"></div>
<div class="shape boomerang-2" style="--base-rot: 15deg"></div>
<div class="shape atom-deco"></div>
<div class="shape starburst-accent"></div>
<div class="hero-content">
<h1>Space Age Style</h1>
<span class="hero-script">the future is now</span>
<p>Bold angles, boomerang curves, and starburst optimism. Googie design captures the rocket-fueled confidence of mid-century America.</p>
<div class="hero-buttons">
<a href="#" class="btn btn--primary">Launch Sequence</a>
<a href="#" class="btn btn--secondary">Explore Orbit</a>
</div>
</div>
</section>
<!-- Features Section -->
<section class="features">
<h2>What Makes It Googie</h2>
<div class="features-grid">
<div class="feature-card">
<span class="icon">✶</span>
<h3>Starburst Energy</h3>
<p>Radiating spike patterns channel atomic optimism and cosmic wonder, turning every element into a beacon of futuristic excitement.</p>
</div>
<div class="feature-card">
<span class="icon">➤</span>
<h3>Boomerang Motion</h3>
<p>Asymmetric curves sweep upward and outward, capturing directional energy and the thrill of jet-age velocity in every line.</p>
</div>
<div class="feature-card">
<span class="icon">⚛</span>
<h3>Atomic Optimism</h3>
<p>Molecular orbits and nuclear motifs celebrate the era when science promised a gleaming tomorrow for everyone.</p>
</div>
</div>
</section>
<!-- Upswept Divider -->
<div class="divider-upswept"></div>
<!-- Showcase Section -->
<section class="showcase">
<h2>Neon Roadside Signage</h2>
<p>Towering angled signs with mixed lettering styles grabbed the attention of passing motorists along the boulevards of Los Angeles.</p>
<div class="googie-sign-demo">
<div class="sign-title">Starlite Lanes</div>
<div class="sign-sub">bowling & cocktails</div>
</div>
</section>
<!-- CTA Section -->
<section class="cta">
<h2>Ready for Takeoff?</h2>
<p>Channel the exuberance of Googie design into your next project. Bold shapes, neon glow, and pure optimism.</p>
<a href="#" class="btn btn--primary">Get Started</a>
</section>
<!-- Footer -->
<footer>
<div class="footer-logo">Googie Design</div>
<p>A design reference celebrating mid-century futurism, roadside architecture, and space-age optimism.</p>
</footer>
</body>
</html>