Cyberpunk is a neon-soaked dystopian aesthetic rooted in the science fiction subgenre of the same name. It depicts rain-slick megacity streets, holographic advertisements, glitch artifacts, and corporate decay – a world of high technology and low life. The visual language draws from 1980s sci-fi cinema (Blade Runner, Akira, Ghost in the Shell), combining dense urban layering with electric neon lighting, CRT scan lines, and corrupted digital interfaces. In web and UI design, Cyberpunk translates to dark backgrounds pierced by vivid neon accents, monospaced terminal typography, glitch effects, and a pervasive sense of technological overload.
| Color Name | Hex | Role / Usage |
|---|---|---|
| Void Black | #0A0A0F |
Primary background, deepest layer |
| Dark Steel | #12121A |
Card backgrounds, secondary surfaces |
| Gunmetal | #1A1A2E |
Elevated panels, nav backgrounds |
| Slate Circuit | #2A2A3E |
Borders, dividers, subtle backgrounds |
| Neon Cyan | #00F0FF |
Primary accent, links, interactive elements |
| Electric Blue | #0080FF |
Secondary accent, active states |
| Hot Magenta | #FF0080 |
Highlight accent, notifications, badges |
| Toxic Green | #00FF41 |
Success states, terminal text, confirmations |
| Warning Amber | #FFB800 |
Warnings, caution indicators |
| Danger Red | #FF1744 |
Error states, critical alerts, destructive actions |
| Holo Purple | #B000FF |
Tertiary accent, decorative elements |
| Ghost White | #E0E0EC |
Primary text on dark backgrounds |
| Muted Steel | #6A6A8A |
Secondary text, captions, disabled states |
| Dim Grid | #2A2A40 |
Grid lines, subtle structural elements |
:root {
/* Backgrounds */
--cyber-bg-void: #0a0a0f;
--cyber-bg-dark: #12121a;
--cyber-bg-panel: #1a1a2e;
--cyber-bg-elevated: #2a2a3e;
/* Neon accents */
--cyber-cyan: #00f0ff;
--cyber-blue: #0080ff;
--cyber-magenta: #ff0080;
--cyber-green: #00ff41;
--cyber-amber: #ffb800;
--cyber-red: #ff1744;
--cyber-purple: #b000ff;
/* Text */
--cyber-text-primary: #e0e0ec;
--cyber-text-secondary: #6a6a8a;
--cyber-text-glow: #00f0ff;
/* Glows (used for box-shadow and text-shadow) */
--cyber-glow-cyan: 0 0 10px rgba(0, 240, 255, 0.5), 0 0 40px rgba(0, 240, 255, 0.15);
--cyber-glow-magenta: 0 0 10px rgba(255, 0, 128, 0.5), 0 0 40px rgba(255, 0, 128, 0.15);
--cyber-glow-green: 0 0 10px rgba(0, 255, 65, 0.5), 0 0 40px rgba(0, 255, 65, 0.15);
/* Borders */
--cyber-border: 1px solid rgba(0, 240, 255, 0.15);
--cyber-border-bright: 1px solid rgba(0, 240, 255, 0.4);
}
Cyberpunk typography is:
| Font | Style | Best For |
|---|---|---|
| Share Tech Mono | Monospaced, techy | Terminal text, code blocks, data readouts |
| Orbitron | Geometric, futuristic | Headlines, display text, UI chrome |
| Rajdhani | Condensed, semi-rounded | Subheadings, navigation, labels |
| Exo 2 | Geometric, wide | Headlines, hero text, large display |
| IBM Plex Mono | Clean monospace | Body text, readable terminal output |
| Oxanium | Rounded tech | Buttons, badges, secondary headings |
| Audiowide | Wide, futuristic | Logos, display headings, branding |
| Electrolize | Square, digital | Navigation, labels, data dashboards |
| Fira Code | Monospace with ligatures | Code blocks, technical content |
| Space Mono | Retro-futuristic monospace | Body text, editorial cyberpunk layouts |
| Heading Font | Body Font | Character |
|---|---|---|
| Orbitron (700) | Share Tech Mono (400) | Classic cyberpunk terminal, high-tech |
| Exo 2 (700) | IBM Plex Mono (400) | Clean futuristic, readable |
| Rajdhani (600) | Fira Code (400) | Condensed tech, developer-oriented |
| Audiowide (400) | Space Mono (400) | Retro-futuristic, editorial |
| Electrolize (400) | Share Tech Mono (400) | Dashboard, data-heavy interfaces |
/* Import fonts */
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=Share+Tech+Mono&display=swap');
/* Headings */
h1, h2, h3, h4, h5, h6 {
font-family: 'Orbitron', 'Exo 2', sans-serif;
font-weight: 700;
color: var(--cyber-text-primary);
text-transform: uppercase;
letter-spacing: 0.08em;
line-height: 1.2;
}
/* Display / Hero text with neon glow */
.cyber-display {
font-family: 'Orbitron', sans-serif;
font-size: clamp(2.5rem, 6vw, 5rem);
font-weight: 900;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--cyber-cyan);
text-shadow: 0 0 10px rgba(0, 240, 255, 0.6), 0 0 40px rgba(0, 240, 255, 0.2);
}
/* Body / terminal text */
body {
font-family: 'Share Tech Mono', 'Fira Code', monospace;
font-size: 0.95rem;
line-height: 1.7;
color: var(--cyber-text-primary);
}
/* UI labels */
.cyber-label {
font-family: 'Orbitron', sans-serif;
font-weight: 500;
font-size: 0.75rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--cyber-text-secondary);
}
/* Data readout */
.cyber-data {
font-family: 'Share Tech Mono', monospace;
font-size: 0.85rem;
color: var(--cyber-green);
line-height: 1.5;
}
backdrop-filter: blur() float over background imagery.cyber-card {
background: rgba(26, 26, 46, 0.8);
border: 1px solid rgba(0, 240, 255, 0.15);
border-radius: 2px;
padding: 28px;
position: relative;
backdrop-filter: blur(10px);
transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.cyber-card:hover {
border-color: rgba(0, 240, 255, 0.4);
box-shadow: var(--cyber-glow-cyan);
}
/* Corner accent marks */
.cyber-card::before,
.cyber-card::after {
content: '';
position: absolute;
width: 12px;
height: 12px;
border-color: var(--cyber-cyan);
border-style: solid;
}
.cyber-card::before {
top: -1px;
left: -1px;
border-width: 2px 0 0 2px;
}
.cyber-card::after {
bottom: -1px;
right: -1px;
border-width: 0 2px 2px 0;
}
/* Card grid */
.cyber-card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
}
.cyber-button {
display: inline-flex;
align-items: center;
justify-content: center;
background: transparent;
color: var(--cyber-cyan);
border: 1px solid var(--cyber-cyan);
padding: 12px 32px;
font-family: 'Orbitron', sans-serif;
font-weight: 700;
font-size: 0.85rem;
letter-spacing: 0.1em;
text-transform: uppercase;
cursor: pointer;
position: relative;
clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
transition: all 0.3s ease;
}
.cyber-button:hover {
background: var(--cyber-cyan);
color: var(--cyber-bg-void);
box-shadow: var(--cyber-glow-cyan);
}
/* Magenta variant */
.cyber-button--magenta {
color: var(--cyber-magenta);
border-color: var(--cyber-magenta);
}
.cyber-button--magenta:hover {
background: var(--cyber-magenta);
color: var(--cyber-bg-void);
box-shadow: var(--cyber-glow-magenta);
}
/* Filled variant */
.cyber-button--filled {
background: var(--cyber-cyan);
color: var(--cyber-bg-void);
}
.cyber-button--filled:hover {
box-shadow: var(--cyber-glow-cyan);
filter: brightness(1.2);
}
.cyber-nav {
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1400px;
margin: 0 auto;
padding: 16px 40px;
background: rgba(10, 10, 15, 0.85);
backdrop-filter: blur(12px);
border-bottom: 1px solid rgba(0, 240, 255, 0.1);
}
.cyber-nav__logo {
font-family: 'Orbitron', sans-serif;
font-weight: 900;
font-size: 1.2rem;
color: var(--cyber-cyan);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.15em;
text-shadow: 0 0 8px rgba(0, 240, 255, 0.4);
}
.cyber-nav__links {
display: flex;
gap: 28px;
list-style: none;
margin: 0;
padding: 0;
}
.cyber-nav__links a {
font-family: 'Share Tech Mono', monospace;
font-size: 0.85rem;
color: var(--cyber-text-secondary);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.08em;
transition: color 0.2s ease, text-shadow 0.2s ease;
}
.cyber-nav__links a:hover,
.cyber-nav__links a.active {
color: var(--cyber-cyan);
text-shadow: 0 0 8px rgba(0, 240, 255, 0.4);
}
.cyber-hero {
position: relative;
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 80px 40px;
background: var(--cyber-bg-void);
overflow: hidden;
}
/* Scan line overlay */
.cyber-hero::before {
content: '';
position: absolute;
inset: 0;
background: repeating-linear-gradient(
0deg,
transparent,
transparent 2px,
rgba(0, 240, 255, 0.02) 2px,
rgba(0, 240, 255, 0.02) 4px
);
pointer-events: none;
z-index: 2;
}
/* Grid floor effect */
.cyber-hero::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 40%;
background:
linear-gradient(to bottom, transparent, rgba(0, 240, 255, 0.03)),
repeating-linear-gradient(90deg, transparent, transparent 79px, rgba(0, 240, 255, 0.06) 79px, rgba(0, 240, 255, 0.06) 80px),
repeating-linear-gradient(0deg, transparent, transparent 79px, rgba(0, 240, 255, 0.06) 79px, rgba(0, 240, 255, 0.06) 80px);
transform: perspective(500px) rotateX(45deg);
transform-origin: bottom;
pointer-events: none;
z-index: 1;
}
.cyber-hero__content {
position: relative;
z-index: 3;
max-width: 800px;
}
.cyber-hero__content h1 {
font-size: clamp(2.5rem, 6vw, 5rem);
color: var(--cyber-cyan);
text-shadow: 0 0 20px rgba(0, 240, 255, 0.5), 0 0 60px rgba(0, 240, 255, 0.15);
margin-bottom: 1.5rem;
}
.cyber-hero__content p {
font-size: 1.1rem;
color: var(--cyber-text-secondary);
max-width: 600px;
margin: 0 auto 2.5rem;
line-height: 1.8;
}
@media (max-width: 768px) {
.cyber-hero {
min-height: auto;
padding: 60px 20px;
}
}
@keyframes cyber-glitch {
0%, 100% { clip-path: inset(0 0 0 0); transform: translate(0); }
20% { clip-path: inset(20% 0 60% 0); transform: translate(-3px, 2px); }
40% { clip-path: inset(60% 0 10% 0); transform: translate(3px, -1px); }
60% { clip-path: inset(40% 0 30% 0); transform: translate(-2px, 1px); }
80% { clip-path: inset(10% 0 70% 0); transform: translate(2px, -2px); }
}
.cyber-glitch {
position: relative;
}
.cyber-glitch::before,
.cyber-glitch::after {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.cyber-glitch::before {
color: var(--cyber-magenta);
animation: cyber-glitch 3s infinite linear alternate;
z-index: -1;
}
.cyber-glitch::after {
color: var(--cyber-cyan);
animation: cyber-glitch 2s infinite linear alternate-reverse;
z-index: -1;
}
.cyber-scanlines {
position: relative;
}
.cyber-scanlines::after {
content: '';
position: absolute;
inset: 0;
background: repeating-linear-gradient(
0deg,
transparent,
transparent 2px,
rgba(0, 0, 0, 0.15) 2px,
rgba(0, 0, 0, 0.15) 4px
);
pointer-events: none;
}
.cyber-table {
width: 100%;
border-collapse: collapse;
font-family: 'Share Tech Mono', monospace;
font-size: 0.85rem;
}
.cyber-table th {
font-family: 'Orbitron', sans-serif;
font-weight: 500;
font-size: 0.7rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--cyber-cyan);
text-align: left;
padding: 12px 16px;
border-bottom: 1px solid rgba(0, 240, 255, 0.2);
}
.cyber-table td {
padding: 10px 16px;
color: var(--cyber-text-primary);
border-bottom: 1px solid rgba(0, 240, 255, 0.06);
}
.cyber-table tr:hover td {
background: rgba(0, 240, 255, 0.04);
}
text-shadow and box-shadowclip-path for angular, cut-corner shapes on buttons and panelsbackdrop-filter: blur() to create holographic translucent panels| Aesthetic | Relationship to Cyberpunk |
|---|---|
| Synthwave | Shares the neon-on-dark palette and 1980s roots, but Synthwave is nostalgic and celebratory while Cyberpunk is dystopian and critical |
| Vaporwave | Both reference technology culture, but Vaporwave is ironic and pastel while Cyberpunk is earnest and high-contrast |
| Y2K Futurism | Late-90s techno-optimism with chrome and glass; Cyberpunk is the darker, more cynical cousin |
| Silicon Dreams | Shares digital themes but with a cleaner, more corporate-utopian presentation |
| RGB Gamer | Overlaps in neon-on-dark color schemes but lacks the narrative dystopian context |
| Glassmorphism | The translucent panel technique is shared; Cyberpunk uses it within a darker, grittier frame |
| 8-Bit | Both reference digital culture; 8-Bit is retro and playful, Cyberpunk is forward-looking and tense |
| Steampunk | Both are “-punk” aesthetics that critique technology and society, but from different eras (Victorian vs. near-future) |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cyberpunk Page</title>
<link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=Share+Tech+Mono&display=swap" rel="stylesheet">
<style>
:root {
--cyber-bg-void: #0a0a0f;
--cyber-bg-panel: #1a1a2e;
--cyber-bg-elevated: #2a2a3e;
--cyber-cyan: #00f0ff;
--cyber-magenta: #ff0080;
--cyber-green: #00ff41;
--cyber-amber: #ffb800;
--cyber-red: #ff1744;
--cyber-text-primary: #e0e0ec;
--cyber-text-secondary: #6a6a8a;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: var(--cyber-bg-void);
color: var(--cyber-text-primary);
font-family: 'Share Tech Mono', monospace;
font-size: 0.95rem;
line-height: 1.7;
}
h1, h2, h3 {
font-family: 'Orbitron', sans-serif;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
line-height: 1.2;
}
/* Navigation */
nav {
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1400px;
margin: 0 auto;
padding: 16px 40px;
border-bottom: 1px solid rgba(0, 240, 255, 0.1);
}
nav a.logo {
font-family: 'Orbitron', sans-serif;
font-weight: 900;
font-size: 1.1rem;
color: var(--cyber-cyan);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.15em;
text-shadow: 0 0 8px rgba(0, 240, 255, 0.4);
}
nav ul { display: flex; gap: 28px; list-style: none; }
nav ul a {
font-family: 'Share Tech Mono', monospace;
color: var(--cyber-text-secondary);
text-decoration: none;
text-transform: uppercase;
font-size: 0.85rem;
letter-spacing: 0.08em;
transition: color 0.2s, text-shadow 0.2s;
}
nav ul a:hover {
color: var(--cyber-cyan);
text-shadow: 0 0 8px rgba(0, 240, 255, 0.4);
}
/* Hero */
.hero {
position: relative;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
min-height: 80vh;
padding: 80px 40px;
overflow: hidden;
}
/* Scan lines */
.hero::before {
content: '';
position: absolute;
inset: 0;
background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0, 240, 255, 0.02) 2px, rgba(0, 240, 255, 0.02) 4px);
pointer-events: none;
}
.hero-content { position: relative; z-index: 2; max-width: 700px; }
.hero h1 {
font-size: clamp(2.5rem, 6vw, 4.5rem);
color: var(--cyber-cyan);
text-shadow: 0 0 20px rgba(0, 240, 255, 0.5), 0 0 60px rgba(0, 240, 255, 0.15);
margin-bottom: 1.5rem;
}
.hero p {
color: var(--cyber-text-secondary);
font-size: 1rem;
margin-bottom: 2.5rem;
}
.btn {
display: inline-block;
background: transparent;
color: var(--cyber-cyan);
border: 1px solid var(--cyber-cyan);
padding: 14px 36px;
font-family: 'Orbitron', sans-serif;
font-weight: 700;
font-size: 0.85rem;
letter-spacing: 0.1em;
text-transform: uppercase;
text-decoration: none;
cursor: pointer;
clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
transition: all 0.3s;
}
.btn:hover {
background: var(--cyber-cyan);
color: var(--cyber-bg-void);
box-shadow: 0 0 10px rgba(0, 240, 255, 0.5), 0 0 40px rgba(0, 240, 255, 0.15);
}
/* Features */
.features {
padding: 80px 0;
border-top: 1px solid rgba(0, 240, 255, 0.08);
}
.features h2 {
text-align: center;
font-size: 1.8rem;
color: var(--cyber-text-primary);
margin-bottom: 48px;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
max-width: 1200px;
margin: 0 auto;
padding: 0 40px;
}
.feature {
background: rgba(26, 26, 46, 0.6);
border: 1px solid rgba(0, 240, 255, 0.12);
padding: 28px;
position: relative;
transition: border-color 0.3s, box-shadow 0.3s;
}
.feature:hover {
border-color: rgba(0, 240, 255, 0.35);
box-shadow: 0 0 10px rgba(0, 240, 255, 0.1);
}
.feature-label {
font-family: 'Orbitron', sans-serif;
font-size: 0.65rem;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--cyber-cyan);
margin-bottom: 12px;
}
.feature h3 { font-size: 1.1rem; margin-bottom: 0.75rem; }
.feature p { color: var(--cyber-text-secondary); font-size: 0.9rem; }
/* CTA */
.cta {
text-align: center;
padding: 80px 40px;
border-top: 1px solid rgba(0, 240, 255, 0.08);
}
.cta h2 {
font-size: 2rem;
color: var(--cyber-magenta);
text-shadow: 0 0 15px rgba(255, 0, 128, 0.4);
margin-bottom: 1rem;
}
.cta p {
color: var(--cyber-text-secondary);
margin-bottom: 2rem;
}
.cta .btn {
color: var(--cyber-magenta);
border-color: var(--cyber-magenta);
}
.cta .btn:hover {
background: var(--cyber-magenta);
color: var(--cyber-bg-void);
box-shadow: 0 0 10px rgba(255, 0, 128, 0.5), 0 0 40px rgba(255, 0, 128, 0.15);
}
/* Footer */
footer {
border-top: 1px solid rgba(0, 240, 255, 0.08);
text-align: center;
padding: 30px 40px;
color: var(--cyber-text-secondary);
font-size: 0.8rem;
}
@media (max-width: 768px) {
.hero { min-height: auto; padding: 60px 20px; }
nav { padding: 12px 20px; }
nav ul { gap: 16px; }
}
</style>
</head>
<body>
<nav>
<a href="#" class="logo">NeoKorp</a>
<ul>
<li><a href="#">Systems</a></li>
<li><a href="#">Network</a></li>
<li><a href="#">Decrypt</a></li>
<li><a href="#">Access</a></li>
</ul>
</nav>
<section class="hero">
<div class="hero-content">
<h1>Jack into the grid</h1>
<p>Next-generation neural interface systems for the connected megacity. Bypass the corporate firewalls. Reclaim your data sovereignty.</p>
<a href="#" class="btn">Initialize</a>
</div>
</section>
<section class="features">
<h2>System Modules</h2>
<div class="features-grid">
<div class="feature">
<div class="feature-label">// module.01</div>
<h3>Neural Uplink</h3>
<p>Direct cortical interface with sub-millisecond latency. Full-spectrum data transfer through encrypted channels.</p>
</div>
<div class="feature">
<div class="feature-label">// module.02</div>
<h3>Ghost Protocol</h3>
<p>Zero-trace network traversal. Your digital footprint dissolves the moment you disconnect from the node.</p>
</div>
<div class="feature">
<div class="feature-label">// module.03</div>
<h3>Ice Breaker</h3>
<p>Advanced intrusion countermeasures. Adaptive algorithms that evolve faster than corporate defense systems.</p>
</div>
</div>
</section>
<section class="cta">
<h2>Ready to disconnect?</h2>
<p>The megacorps control the network. We offer an alternative.</p>
<a href="#" class="btn">Go dark</a>
</section>
<footer>
<p>[ NEOKORP SYSTEMS ] // Built in the neon glow of a dying world</p>
</footer>
</body>
</html>