Holographic UI is a futuristic design aesthetic that simulates the look and feel of projected light interfaces – translucent panels hovering in space, prismatic color shifts, and sci-fi control panels rendered in shimmering iridescent hues. Rooted in decades of science fiction film and television (from the holographic displays of Star Wars and Minority Report to the transparent command consoles of Iron Man and Prometheus), the aesthetic imagines what interfaces would look like if they were made entirely of light rather than physical materials.
The visual language centers on translucency, light diffraction, and the spectral decomposition of white light into its rainbow constituents. Unlike Glassmorphism, which simulates frosted physical glass, Holographic UI evokes weightless photonic projections – surfaces that shimmer, refract, and shift color as the viewing angle changes. Panels appear to float in a dark void, bordered by softly glowing edges that suggest energy containment fields. Data is rendered in clean, luminous typography that appears to be etched in light itself.
Color palettes draw from the physics of light diffraction: spectral cyans, magentas, violets, and teals shift and blend across surfaces in gradient patterns that mimic the rainbow caustics seen on holographic foil, soap bubbles, and CD-ROM surfaces. Backgrounds are overwhelmingly dark – deep navy, near-black, or transparent void – so that the holographic elements appear to emit their own radiance. The result is an aesthetic that feels simultaneously advanced and ethereal, technical and magical.
In modern web and UI design, Holographic UI builds upon the layered visual appeal of Glassmorphism and adds shimmering light effects, spectral overlays, and a sense of dynamic energy. GPU-accelerated compositing and improved browser rendering pipelines now make it practical to use translucent panels, subtle glows, stacked layers of digital light, and animated gradient shifts as functional interface elements in production environments. The aesthetic is particularly effective for tech products, creative portfolios, data dashboards, and any application where a sense of cutting-edge sophistication is desired.
The Holographic UI palette is derived from the visible light spectrum as decomposed through a prism. The foundation is deep darkness, upon which spectral colors are projected as luminous accents. Iridescent gradients blend multiple spectral hues across single surfaces, while individual accent colors serve specific functional roles.
| Swatch | Hex | Role / Usage |
|---|---|---|
| Void Black | #050510 |
Deepest background, outer space void |
| Deep Space | #0A0A1A |
Primary surface background |
| Nebula Navy | #0D1025 |
Elevated panels, card backgrounds |
| Cosmic Indigo | #151535 |
Secondary surfaces, modal overlays |
| Holo Cyan | #00E5FF |
Primary accent, interactive elements, links |
| Prism Magenta | #FF00E5 |
Secondary accent, highlights, notifications |
| Spectral Violet | #8B5CF6 |
Tertiary accent, decorative gradients |
| Refraction Teal | #00D4AA |
Success states, confirmations, positive indicators |
| Diffraction Pink | #FF6EC7 |
Warm accent, badges, soft highlights |
| Laser Blue | #3B82F6 |
Information states, secondary interactive elements |
| Photon White | #E8EAFF |
Primary text, high-contrast elements |
| Ghost Light | #A0A4C0 |
Secondary text, captions, muted labels |
| Beam Silver | #6B70A0 |
Disabled states, tertiary text, placeholders |
| Grid Line | #1A1A3A |
Structural lines, subtle dividers, borders |
| Holo Gradient Start | #00E5FF |
Iridescent gradient starting color |
| Holo Gradient End | #FF00E5 |
Iridescent gradient ending color |
:root {
/* Backgrounds */
--holo-bg-void: #050510;
--holo-bg-deep: #0a0a1a;
--holo-bg-nebula: #0d1025;
--holo-bg-cosmic: #151535;
/* Spectral accents */
--holo-cyan: #00e5ff;
--holo-magenta: #ff00e5;
--holo-violet: #8b5cf6;
--holo-teal: #00d4aa;
--holo-pink: #ff6ec7;
--holo-blue: #3b82f6;
/* Text */
--holo-text-primary: #e8eaff;
--holo-text-secondary: #a0a4c0;
--holo-text-muted: #6b70a0;
/* Structural */
--holo-grid: #1a1a3a;
--holo-border: rgba(0, 229, 255, 0.15);
--holo-border-bright: rgba(0, 229, 255, 0.4);
/* Glows */
--holo-glow-cyan: 0 0 12px rgba(0, 229, 255, 0.5), 0 0 40px rgba(0, 229, 255, 0.15);
--holo-glow-magenta: 0 0 12px rgba(255, 0, 229, 0.5), 0 0 40px rgba(255, 0, 229, 0.15);
--holo-glow-violet: 0 0 12px rgba(139, 92, 246, 0.5), 0 0 40px rgba(139, 92, 246, 0.15);
/* Iridescent gradient */
--holo-gradient: linear-gradient(
135deg,
#00e5ff 0%,
#8b5cf6 25%,
#ff00e5 50%,
#ff6ec7 75%,
#00e5ff 100%
);
/* Glass surface */
--holo-glass: rgba(13, 16, 37, 0.6);
--holo-glass-border: rgba(0, 229, 255, 0.12);
}
Holographic UI typography is sleek, geometric, and futuristic. Letterforms should feel precision-engineered and luminous, as though projected by light rather than printed with ink. Display type is typically wide, geometric, and uppercase with generous letter-spacing. Body text favors clean sans-serifs or monospaced fonts that evoke technical readouts and data terminals. Thin to medium weights work best, as they reinforce the impression of light-etched characters.
| Font | Weight(s) | Usage | Link |
|---|---|---|---|
| Orbitron | 400, 500, 700, 900 | Display headings, hero text, branding | Orbitron |
| Exo 2 | 300, 400, 500, 700 | Headings, subheadings, UI labels | Exo 2 |
| Rajdhani | 300, 400, 500, 600, 700 | Navigation, condensed labels, buttons | Rajdhani |
| Space Grotesk | 300, 400, 500, 700 | Body text, descriptions, clean readability | Space Grotesk |
| IBM Plex Mono | 300, 400, 500 | Data readouts, code blocks, terminal output | IBM Plex Mono |
| Share Tech Mono | 400 | Monospaced labels, coordinates, HUD text | Share Tech Mono |
| Electrolize | 400 | Dashboard labels, data-heavy interfaces | Electrolize |
| Outfit | 200, 300, 400, 500 | Soft geometric sans-serif body text | Outfit |
| Heading Font | Body Font | Character |
|---|---|---|
| Orbitron (700) | Space Grotesk (400) | High-tech command center, maximum sci-fi |
| Exo 2 (600) | IBM Plex Mono (400) | Clean futuristic dashboard, data-oriented |
| Rajdhani (600) | Outfit (300) | Elegant holographic, lightweight and airy |
| Orbitron (500) | Share Tech Mono (400) | HUD-style interface, military/aerospace |
| Electrolize (400) | Space Grotesk (300) | Minimalist sci-fi, understated futurism |
/* Import fonts */
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700;900&family=Space+Grotesk:wght@300;400;500&family=IBM+Plex+Mono:wght@300;400&display=swap');
/* Headings: geometric, uppercase, luminous */
h1, h2, h3, h4, h5, h6 {
font-family: 'Orbitron', 'Exo 2', sans-serif;
font-weight: 700;
color: var(--holo-text-primary);
text-transform: uppercase;
letter-spacing: 0.08em;
line-height: 1.2;
}
/* Display / Hero text with holographic glow */
.holo-display {
font-family: 'Orbitron', sans-serif;
font-size: clamp(2.5rem, 6vw, 5rem);
font-weight: 900;
letter-spacing: 0.12em;
text-transform: uppercase;
background: var(--holo-gradient);
background-size: 200% auto;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: holo-shift 4s linear infinite;
}
@keyframes holo-shift {
to { background-position: 200% center; }
}
/* Body text: clean, readable */
body {
font-family: 'Space Grotesk', sans-serif;
font-size: 1rem;
font-weight: 300;
line-height: 1.7;
color: var(--holo-text-primary);
-webkit-font-smoothing: antialiased;
}
/* Data readout / monospaced */
.holo-data {
font-family: 'IBM Plex Mono', 'Share Tech Mono', monospace;
font-size: 0.85rem;
color: var(--holo-cyan);
letter-spacing: 0.04em;
line-height: 1.5;
}
/* UI labels */
.holo-label {
font-family: 'Orbitron', sans-serif;
font-weight: 500;
font-size: 0.7rem;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--holo-text-muted);
}
.holo-card {
background: rgba(13, 16, 37, 0.6);
backdrop-filter: blur(16px) saturate(140%);
-webkit-backdrop-filter: blur(16px) saturate(140%);
border: 1px solid rgba(0, 229, 255, 0.12);
border-radius: 12px;
padding: 32px;
position: relative;
overflow: hidden;
transition: border-color 0.4s ease, box-shadow 0.4s ease;
}
/* Iridescent shimmer overlay */
.holo-card::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(
135deg,
rgba(0, 229, 255, 0.05) 0%,
rgba(139, 92, 246, 0.05) 33%,
rgba(255, 0, 229, 0.05) 66%,
rgba(0, 229, 255, 0.05) 100%
);
background-size: 300% 300%;
animation: shimmer 8s ease-in-out infinite;
pointer-events: none;
border-radius: inherit;
}
@keyframes shimmer {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
.holo-card:hover {
border-color: rgba(0, 229, 255, 0.35);
box-shadow: var(--holo-glow-cyan);
}
/* Corner accent brackets */
.holo-card::after {
content: '';
position: absolute;
inset: 6px;
border: 1px solid transparent;
border-image: linear-gradient(
135deg,
rgba(0, 229, 255, 0.3),
transparent 30%,
transparent 70%,
rgba(255, 0, 229, 0.3)
) 1;
pointer-events: none;
}
/* Card grid */
.holo-card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 24px;
}
.holo-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
background: rgba(0, 229, 255, 0.08);
color: var(--holo-cyan);
border: 1px solid rgba(0, 229, 255, 0.3);
border-radius: 8px;
padding: 14px 36px;
font-family: 'Orbitron', sans-serif;
font-weight: 600;
font-size: 0.8rem;
letter-spacing: 0.12em;
text-transform: uppercase;
text-decoration: none;
cursor: pointer;
position: relative;
overflow: hidden;
transition: all 0.3s ease;
}
/* Iridescent sweep on hover */
.holo-btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(0, 229, 255, 0.15),
rgba(139, 92, 246, 0.15),
rgba(255, 0, 229, 0.15),
transparent
);
transition: left 0.5s ease;
}
.holo-btn:hover::before {
left: 100%;
}
.holo-btn:hover {
background: rgba(0, 229, 255, 0.15);
border-color: rgba(0, 229, 255, 0.6);
box-shadow: var(--holo-glow-cyan);
transform: translateY(-1px);
}
/* Magenta variant */
.holo-btn--magenta {
background: rgba(255, 0, 229, 0.08);
color: var(--holo-magenta);
border-color: rgba(255, 0, 229, 0.3);
}
.holo-btn--magenta:hover {
background: rgba(255, 0, 229, 0.15);
border-color: rgba(255, 0, 229, 0.6);
box-shadow: var(--holo-glow-magenta);
}
/* Filled variant */
.holo-btn--filled {
background: linear-gradient(135deg, var(--holo-cyan), var(--holo-violet));
color: var(--holo-bg-void);
border: none;
}
.holo-btn--filled:hover {
box-shadow: var(--holo-glow-cyan);
filter: brightness(1.15);
}
.holo-nav {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 40px;
background: rgba(5, 5, 16, 0.8);
backdrop-filter: blur(20px) saturate(150%);
-webkit-backdrop-filter: blur(20px) saturate(150%);
border-bottom: 1px solid rgba(0, 229, 255, 0.08);
}
/* Iridescent bottom border accent */
.holo-nav::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(
90deg,
transparent,
var(--holo-cyan) 20%,
var(--holo-violet) 50%,
var(--holo-magenta) 80%,
transparent
);
opacity: 0.4;
}
.holo-nav__logo {
font-family: 'Orbitron', sans-serif;
font-weight: 900;
font-size: 1.1rem;
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.15em;
background: var(--holo-gradient);
background-size: 200% auto;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: holo-shift 6s linear infinite;
}
.holo-nav__links {
display: flex;
gap: 32px;
list-style: none;
margin: 0;
padding: 0;
}
.holo-nav__links a {
font-family: 'Space Grotesk', sans-serif;
font-size: 0.85rem;
font-weight: 400;
color: var(--holo-text-secondary);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.06em;
transition: color 0.3s ease, text-shadow 0.3s ease;
position: relative;
}
.holo-nav__links a:hover,
.holo-nav__links a.active {
color: var(--holo-cyan);
text-shadow: 0 0 10px rgba(0, 229, 255, 0.4);
}
.holo-nav__links a.active::after {
content: '';
position: absolute;
bottom: -6px;
left: 0;
right: 0;
height: 2px;
background: var(--holo-cyan);
box-shadow: 0 0 8px rgba(0, 229, 255, 0.5);
border-radius: 1px;
}
.holo-hero {
position: relative;
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 100px 40px;
background: var(--holo-bg-void);
overflow: hidden;
}
/* Radial glow behind hero content */
.holo-hero::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 800px;
height: 800px;
background: radial-gradient(
circle,
rgba(0, 229, 255, 0.08) 0%,
rgba(139, 92, 246, 0.05) 30%,
rgba(255, 0, 229, 0.03) 60%,
transparent 70%
);
pointer-events: none;
}
/* Grid floor projection */
.holo-hero::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 40%;
background:
linear-gradient(to bottom, transparent, rgba(0, 229, 255, 0.02)),
repeating-linear-gradient(
90deg, transparent, transparent 79px,
rgba(0, 229, 255, 0.04) 79px, rgba(0, 229, 255, 0.04) 80px
),
repeating-linear-gradient(
0deg, transparent, transparent 79px,
rgba(0, 229, 255, 0.04) 79px, rgba(0, 229, 255, 0.04) 80px
);
transform: perspective(600px) rotateX(50deg);
transform-origin: bottom;
pointer-events: none;
z-index: 0;
}
.holo-hero__content {
position: relative;
z-index: 2;
max-width: 800px;
}
.holo-hero__content h1 {
font-size: clamp(2.5rem, 6vw, 5rem);
margin-bottom: 1.5rem;
background: var(--holo-gradient);
background-size: 200% auto;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: holo-shift 5s linear infinite;
filter: drop-shadow(0 0 30px rgba(0, 229, 255, 0.3));
}
.holo-hero__content p {
font-size: 1.15rem;
color: var(--holo-text-secondary);
max-width: 600px;
margin: 0 auto 2.5rem;
line-height: 1.8;
}
.holo-surface {
position: relative;
background: var(--holo-bg-nebula);
border-radius: 16px;
padding: 2px;
overflow: hidden;
}
/* Animated iridescent border */
.holo-surface::before {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
background: linear-gradient(
135deg,
var(--holo-cyan),
var(--holo-violet),
var(--holo-magenta),
var(--holo-pink),
var(--holo-cyan)
);
background-size: 400% 400%;
animation: iridescent-border 6s ease-in-out infinite;
z-index: -1;
}
@keyframes iridescent-border {
0%, 100% { background-position: 0% 50%; }
25% { background-position: 100% 0%; }
50% { background-position: 100% 100%; }
75% { background-position: 0% 100%; }
}
.holo-surface__inner {
background: var(--holo-bg-nebula);
border-radius: 14px;
padding: 32px;
}
.holo-scanlines {
position: relative;
}
.holo-scanlines::after {
content: '';
position: absolute;
inset: 0;
background: repeating-linear-gradient(
0deg,
transparent,
transparent 3px,
rgba(0, 229, 255, 0.015) 3px,
rgba(0, 229, 255, 0.015) 4px
);
pointer-events: none;
z-index: 10;
}
.holo-table {
width: 100%;
border-collapse: collapse;
font-family: 'IBM Plex Mono', monospace;
font-size: 0.85rem;
}
.holo-table th {
font-family: 'Orbitron', sans-serif;
font-weight: 500;
font-size: 0.7rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--holo-cyan);
text-align: left;
padding: 14px 16px;
border-bottom: 1px solid rgba(0, 229, 255, 0.15);
}
.holo-table td {
padding: 12px 16px;
color: var(--holo-text-primary);
border-bottom: 1px solid rgba(0, 229, 255, 0.05);
}
.holo-table tr:hover td {
background: rgba(0, 229, 255, 0.03);
}
.holo-table tr:hover td:first-child {
box-shadow: inset 3px 0 0 var(--holo-cyan);
}
.holo-input {
background: rgba(13, 16, 37, 0.5);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border: 1px solid rgba(0, 229, 255, 0.12);
border-radius: 8px;
padding: 14px 20px;
color: var(--holo-text-primary);
font-family: 'Space Grotesk', sans-serif;
font-size: 0.95rem;
outline: none;
transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.holo-input::placeholder {
color: var(--holo-text-muted);
}
.holo-input:focus {
border-color: rgba(0, 229, 255, 0.4);
box-shadow: 0 0 0 3px rgba(0, 229, 255, 0.08), var(--holo-glow-cyan);
}
backdrop-filter: blur() with subtle saturation boosts to create translucent panel depthbox-shadow and text-shadow to make elements appear self-luminous| Aesthetic | Relationship to Holographic UI |
|---|---|
| Glassmorphism | Shares the translucent, blurred panel approach, but Glassmorphism simulates physical frosted glass while Holographic UI simulates projected light |
| Cyberpunk | Both use neon-on-dark palettes and sci-fi UI conventions, but Cyberpunk is dystopian and gritty while Holographic UI is clean and aspirational |
| Dark Mode Neon | Shares the dark background and luminous accent philosophy, but without the iridescent color-shifting and translucent layering |
| Synthwave | Both reference retro-futuristic aesthetics with neon glows, but Synthwave is rooted in 1980s nostalgia while Holographic UI is forward-looking |
| Laser Grid | Shares the perspective grid floors and neon line work, but Laser Grid is specifically retro (1980s wireframe) while Holographic UI is more advanced |
| Frutiger Aero | Both use translucency and layered depth, but Frutiger Aero pairs glass with organic nature imagery and warm optimism |
| Chromecore | Both evoke high-tech surfaces, but Chromecore focuses on reflective metallic solids while Holographic UI focuses on immaterial light projections |
| Aurora Gradient | Shares the multi-color gradient approach, but Aurora is soft, natural (inspired by aurora borealis) while Holographic UI is sharp and technological |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Holographic UI</title>
<link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700;900&family=Space+Grotesk:wght@300;400;500&family=IBM+Plex+Mono:wght@300;400&display=swap" rel="stylesheet">
<style>
/* ========================================
CSS Custom Properties
======================================== */
:root {
--holo-bg-void: #050510;
--holo-bg-deep: #0a0a1a;
--holo-bg-nebula: #0d1025;
--holo-bg-cosmic: #151535;
--holo-cyan: #00e5ff;
--holo-magenta: #ff00e5;
--holo-violet: #8b5cf6;
--holo-teal: #00d4aa;
--holo-pink: #ff6ec7;
--holo-blue: #3b82f6;
--holo-text-primary: #e8eaff;
--holo-text-secondary: #a0a4c0;
--holo-text-muted: #6b70a0;
--holo-grid: #1a1a3a;
--holo-border: rgba(0, 229, 255, 0.12);
--holo-glow-cyan: 0 0 12px rgba(0, 229, 255, 0.5), 0 0 40px rgba(0, 229, 255, 0.15);
--holo-glow-magenta: 0 0 12px rgba(255, 0, 229, 0.5), 0 0 40px rgba(255, 0, 229, 0.15);
--holo-glow-violet: 0 0 12px rgba(139, 92, 246, 0.5), 0 0 40px rgba(139, 92, 246, 0.15);
--holo-gradient: linear-gradient(
135deg,
#00e5ff 0%,
#8b5cf6 25%,
#ff00e5 50%,
#ff6ec7 75%,
#00e5ff 100%
);
}
/* ========================================
Reset & Base
======================================== */
*, *::before, *::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Space Grotesk', sans-serif;
font-size: 1rem;
font-weight: 300;
line-height: 1.7;
color: var(--holo-text-primary);
background: var(--holo-bg-void);
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
}
h1, h2, h3, h4 {
font-family: 'Orbitron', sans-serif;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
line-height: 1.2;
}
/* ========================================
Animations
======================================== */
@keyframes holo-shift {
to { background-position: 200% center; }
}
@keyframes shimmer {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
@keyframes float-up {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-8px); }
}
@keyframes pulse-glow {
0%, 100% { opacity: 0.4; }
50% { opacity: 0.8; }
}
@keyframes particle-drift {
0% { transform: translateY(0) translateX(0); opacity: 0; }
10% { opacity: 1; }
90% { opacity: 1; }
100% { transform: translateY(-100vh) translateX(20px); opacity: 0; }
}
/* ========================================
Navigation
======================================== */
nav {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
display: flex;
align-items: center;
justify-content: space-between;
padding: 18px 48px;
background: rgba(5, 5, 16, 0.85);
backdrop-filter: blur(20px) saturate(150%);
-webkit-backdrop-filter: blur(20px) saturate(150%);
}
nav::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(
90deg,
transparent,
var(--holo-cyan) 20%,
var(--holo-violet) 50%,
var(--holo-magenta) 80%,
transparent
);
opacity: 0.4;
}
.logo {
font-family: 'Orbitron', sans-serif;
font-weight: 900;
font-size: 1.1rem;
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.15em;
background: var(--holo-gradient);
background-size: 200% auto;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: holo-shift 6s linear infinite;
}
nav ul {
display: flex;
gap: 32px;
list-style: none;
}
nav ul a {
font-family: 'Space Grotesk', sans-serif;
font-size: 0.85rem;
font-weight: 400;
color: var(--holo-text-secondary);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.06em;
transition: color 0.3s, text-shadow 0.3s;
}
nav ul a:hover {
color: var(--holo-cyan);
text-shadow: 0 0 10px rgba(0, 229, 255, 0.4);
}
/* ========================================
Hero Section
======================================== */
.hero {
position: relative;
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 120px 40px 80px;
overflow: hidden;
}
/* Central radial glow */
.hero::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 900px;
height: 900px;
background: radial-gradient(
circle,
rgba(0, 229, 255, 0.07) 0%,
rgba(139, 92, 246, 0.04) 30%,
rgba(255, 0, 229, 0.02) 55%,
transparent 70%
);
pointer-events: none;
}
/* Grid floor */
.hero::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 40%;
background:
linear-gradient(to bottom, transparent, rgba(0, 229, 255, 0.015)),
repeating-linear-gradient(
90deg, transparent, transparent 79px,
rgba(0, 229, 255, 0.035) 79px, rgba(0, 229, 255, 0.035) 80px
),
repeating-linear-gradient(
0deg, transparent, transparent 79px,
rgba(0, 229, 255, 0.035) 79px, rgba(0, 229, 255, 0.035) 80px
);
transform: perspective(600px) rotateX(50deg);
transform-origin: bottom;
pointer-events: none;
}
.hero-content {
position: relative;
z-index: 2;
max-width: 780px;
}
.hero-content h1 {
font-size: clamp(2.5rem, 6vw, 4.5rem);
font-weight: 900;
letter-spacing: 0.1em;
margin-bottom: 1.5rem;
background: var(--holo-gradient);
background-size: 200% auto;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: holo-shift 5s linear infinite;
filter: drop-shadow(0 0 30px rgba(0, 229, 255, 0.25));
}
.hero-content .subtitle {
font-family: 'IBM Plex Mono', monospace;
font-size: 0.8rem;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--holo-text-muted);
margin-bottom: 1rem;
}
.hero-content p {
font-size: 1.1rem;
color: var(--holo-text-secondary);
max-width: 560px;
margin: 0 auto 2.5rem;
line-height: 1.8;
}
/* Floating particles in hero */
.particles {
position: absolute;
inset: 0;
overflow: hidden;
pointer-events: none;
z-index: 1;
}
.particle {
position: absolute;
width: 2px;
height: 2px;
background: var(--holo-cyan);
border-radius: 50%;
box-shadow: 0 0 6px rgba(0, 229, 255, 0.6);
animation: particle-drift linear infinite;
}
.particle:nth-child(1) { left: 10%; bottom: 0; animation-duration: 12s; animation-delay: 0s; }
.particle:nth-child(2) { left: 25%; bottom: 0; animation-duration: 16s; animation-delay: 2s; }
.particle:nth-child(3) { left: 40%; bottom: 0; animation-duration: 10s; animation-delay: 4s; background: var(--holo-violet); box-shadow: 0 0 6px rgba(139, 92, 246, 0.6); }
.particle:nth-child(4) { left: 55%; bottom: 0; animation-duration: 14s; animation-delay: 1s; }
.particle:nth-child(5) { left: 70%; bottom: 0; animation-duration: 11s; animation-delay: 3s; background: var(--holo-magenta); box-shadow: 0 0 6px rgba(255, 0, 229, 0.6); }
.particle:nth-child(6) { left: 85%; bottom: 0; animation-duration: 15s; animation-delay: 5s; }
.particle:nth-child(7) { left: 50%; bottom: 0; animation-duration: 13s; animation-delay: 6s; background: var(--holo-pink); box-shadow: 0 0 6px rgba(255, 110, 199, 0.6); }
.particle:nth-child(8) { left: 33%; bottom: 0; animation-duration: 17s; animation-delay: 7s; }
/* ========================================
Buttons
======================================== */
.btn {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(0, 229, 255, 0.08);
color: var(--holo-cyan);
border: 1px solid rgba(0, 229, 255, 0.3);
border-radius: 8px;
padding: 14px 36px;
font-family: 'Orbitron', sans-serif;
font-weight: 600;
font-size: 0.8rem;
letter-spacing: 0.12em;
text-transform: uppercase;
text-decoration: none;
cursor: pointer;
position: relative;
overflow: hidden;
transition: all 0.3s ease;
}
.btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(0, 229, 255, 0.12),
rgba(139, 92, 246, 0.12),
rgba(255, 0, 229, 0.12),
transparent
);
transition: left 0.5s ease;
}
.btn:hover::before { left: 100%; }
.btn:hover {
background: rgba(0, 229, 255, 0.15);
border-color: rgba(0, 229, 255, 0.6);
box-shadow: var(--holo-glow-cyan);
transform: translateY(-2px);
}
.btn--magenta {
background: rgba(255, 0, 229, 0.08);
color: var(--holo-magenta);
border-color: rgba(255, 0, 229, 0.3);
}
.btn--magenta:hover {
background: rgba(255, 0, 229, 0.15);
border-color: rgba(255, 0, 229, 0.6);
box-shadow: var(--holo-glow-magenta);
}
.btn-group {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
/* ========================================
Section Divider
======================================== */
.divider {
height: 1px;
background: linear-gradient(
90deg,
transparent,
rgba(0, 229, 255, 0.2) 15%,
rgba(139, 92, 246, 0.3) 50%,
rgba(255, 0, 229, 0.2) 85%,
transparent
);
margin: 0;
border: none;
}
/* ========================================
Features Section
======================================== */
.features {
padding: 100px 40px;
max-width: 1200px;
margin: 0 auto;
}
.features h2 {
text-align: center;
font-size: 1.8rem;
margin-bottom: 16px;
color: var(--holo-text-primary);
}
.features .section-subtitle {
text-align: center;
font-family: 'IBM Plex Mono', monospace;
font-size: 0.8rem;
color: var(--holo-text-muted);
letter-spacing: 0.1em;
text-transform: uppercase;
margin-bottom: 60px;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 24px;
}
.feature-card {
background: rgba(13, 16, 37, 0.6);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid var(--holo-border);
border-radius: 12px;
padding: 32px;
position: relative;
overflow: hidden;
transition: border-color 0.4s, box-shadow 0.4s, transform 0.4s;
}
/* Iridescent shimmer */
.feature-card::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(
135deg,
rgba(0, 229, 255, 0.04) 0%,
rgba(139, 92, 246, 0.04) 33%,
rgba(255, 0, 229, 0.04) 66%,
rgba(0, 229, 255, 0.04) 100%
);
background-size: 300% 300%;
animation: shimmer 8s ease-in-out infinite;
pointer-events: none;
border-radius: inherit;
}
.feature-card:hover {
border-color: rgba(0, 229, 255, 0.3);
box-shadow: var(--holo-glow-cyan);
transform: translateY(-4px);
}
.feature-card .card-label {
font-family: 'IBM Plex Mono', monospace;
font-size: 0.7rem;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--holo-cyan);
margin-bottom: 16px;
}
.feature-card .card-icon {
width: 48px;
height: 48px;
border: 1px solid rgba(0, 229, 255, 0.2);
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 20px;
background: rgba(0, 229, 255, 0.05);
}
.feature-card h3 {
font-size: 1.05rem;
margin-bottom: 12px;
letter-spacing: 0.06em;
}
.feature-card p {
color: var(--holo-text-secondary);
font-size: 0.9rem;
line-height: 1.7;
}
/* ========================================
Stats Bar
======================================== */
.stats {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1px;
background: var(--holo-grid);
max-width: 1200px;
margin: 0 auto;
}
.stat {
background: var(--holo-bg-deep);
padding: 40px 32px;
text-align: center;
}
.stat-value {
font-family: 'Orbitron', sans-serif;
font-size: 2rem;
font-weight: 700;
background: var(--holo-gradient);
background-size: 200% auto;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: holo-shift 5s linear infinite;
margin-bottom: 8px;
}
.stat-label {
font-family: 'IBM Plex Mono', monospace;
font-size: 0.7rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--holo-text-muted);
}
/* ========================================
Holographic Panel / Showcase
======================================== */
.showcase {
padding: 100px 40px;
max-width: 1200px;
margin: 0 auto;
}
.showcase-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
align-items: center;
}
.showcase-text h2 {
font-size: 1.6rem;
margin-bottom: 1rem;
text-align: left;
}
.showcase-text p {
color: var(--holo-text-secondary);
margin-bottom: 1.5rem;
line-height: 1.8;
}
.showcase-text ul {
list-style: none;
padding: 0;
}
.showcase-text ul li {
padding: 8px 0;
padding-left: 24px;
position: relative;
color: var(--holo-text-secondary);
font-size: 0.9rem;
}
.showcase-text ul li::before {
content: '';
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 8px;
height: 8px;
background: var(--holo-cyan);
border-radius: 50%;
box-shadow: 0 0 8px rgba(0, 229, 255, 0.5);
}
.showcase-visual {
position: relative;
padding: 2px;
border-radius: 16px;
overflow: hidden;
}
/* Animated iridescent border */
.showcase-visual::before {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
background: linear-gradient(
135deg,
var(--holo-cyan),
var(--holo-violet),
var(--holo-magenta),
var(--holo-pink),
var(--holo-cyan)
);
background-size: 400% 400%;
animation: shimmer 6s ease-in-out infinite;
z-index: 0;
}
.showcase-panel {
position: relative;
z-index: 1;
background: var(--holo-bg-nebula);
border-radius: 14px;
padding: 40px;
font-family: 'IBM Plex Mono', monospace;
font-size: 0.8rem;
}
.panel-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 24px;
padding-bottom: 16px;
border-bottom: 1px solid rgba(0, 229, 255, 0.1);
}
.panel-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--holo-cyan);
box-shadow: 0 0 8px rgba(0, 229, 255, 0.5);
}
.panel-dot.magenta { background: var(--holo-magenta); box-shadow: 0 0 8px rgba(255, 0, 229, 0.5); }
.panel-dot.violet { background: var(--holo-violet); box-shadow: 0 0 8px rgba(139, 92, 246, 0.5); }
.panel-title {
font-family: 'Orbitron', sans-serif;
font-size: 0.65rem;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--holo-text-muted);
}
.panel-line {
padding: 4px 0;
color: var(--holo-text-secondary);
}
.panel-line .key { color: var(--holo-cyan); }
.panel-line .val { color: var(--holo-text-primary); }
.panel-line .comment { color: var(--holo-text-muted); }
/* ========================================
CTA Section
======================================== */
.cta {
text-align: center;
padding: 100px 40px;
position: relative;
overflow: hidden;
}
.cta::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 600px;
height: 600px;
background: radial-gradient(
circle,
rgba(139, 92, 246, 0.06) 0%,
rgba(255, 0, 229, 0.03) 40%,
transparent 70%
);
pointer-events: none;
}
.cta-inner {
position: relative;
z-index: 1;
}
.cta h2 {
font-size: 2rem;
margin-bottom: 1rem;
background: var(--holo-gradient);
background-size: 200% auto;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: holo-shift 5s linear infinite;
}
.cta p {
color: var(--holo-text-secondary);
font-size: 1.05rem;
max-width: 500px;
margin: 0 auto 2rem;
}
/* ========================================
Footer
======================================== */
footer {
padding: 32px 40px;
text-align: center;
color: var(--holo-text-muted);
font-family: 'IBM Plex Mono', monospace;
font-size: 0.75rem;
letter-spacing: 0.08em;
border-top: 1px solid var(--holo-grid);
}
footer a {
color: var(--holo-cyan);
text-decoration: none;
}
footer a:hover {
text-shadow: 0 0 8px rgba(0, 229, 255, 0.4);
}
/* ========================================
Responsive
======================================== */
@media (max-width: 768px) {
nav {
padding: 14px 20px;
}
nav ul {
gap: 16px;
}
.hero {
min-height: auto;
padding: 100px 20px 60px;
}
.features {
padding: 60px 20px;
}
.features-grid {
grid-template-columns: 1fr;
}
.stats {
grid-template-columns: repeat(2, 1fr);
}
.showcase {
padding: 60px 20px;
}
.showcase-grid {
grid-template-columns: 1fr;
gap: 32px;
}
.cta {
padding: 60px 20px;
}
}
</style>
</head>
<body>
<!-- Navigation -->
<nav>
<a href="#" class="logo">Prism//OS</a>
<ul>
<li><a href="#" class="active">Dashboard</a></li>
<li><a href="#">Systems</a></li>
<li><a href="#">Analytics</a></li>
<li><a href="#">Deploy</a></li>
</ul>
</nav>
<!-- Hero Section -->
<section class="hero">
<div class="particles">
<div class="particle"></div>
<div class="particle"></div>
<div class="particle"></div>
<div class="particle"></div>
<div class="particle"></div>
<div class="particle"></div>
<div class="particle"></div>
<div class="particle"></div>
</div>
<div class="hero-content">
<div class="subtitle">[ Holographic Interface v4.2 ]</div>
<h1>Light-Based Computing</h1>
<p>Next-generation photonic interface systems. Translucent control surfaces projected through coherent light arrays for zero-latency interaction.</p>
<div class="btn-group">
<a href="#" class="btn">Initialize System</a>
<a href="#" class="btn btn--magenta">View Spectrum</a>
</div>
</div>
</section>
<hr class="divider">
<!-- Features Section -->
<section class="features">
<h2>Core Systems</h2>
<div class="section-subtitle">// Active Holographic Modules</div>
<div class="features-grid">
<div class="feature-card">
<div class="card-label">sys.projection</div>
<div class="card-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#00e5ff" stroke-width="1.5">
<polygon points="12,2 22,8.5 22,15.5 12,22 2,15.5 2,8.5"/>
<line x1="12" y1="2" x2="12" y2="22"/>
<line x1="2" y1="8.5" x2="22" y2="8.5"/>
</svg>
</div>
<h3>Photon Rendering</h3>
<p>Real-time holographic projection engine with prismatic light diffraction. Sub-pixel accuracy across multi-layer translucent displays.</p>
</div>
<div class="feature-card">
<div class="card-label">sys.spectral</div>
<div class="card-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#8b5cf6" stroke-width="1.5">
<circle cx="12" cy="12" r="10"/>
<path d="M12 2 A10 10 0 0 1 22 12"/>
<circle cx="12" cy="12" r="4"/>
</svg>
</div>
<h3>Spectral Analysis</h3>
<p>Full-spectrum chromatic decomposition for data visualization. Map complex datasets onto iridescent color gradients with real-time updates.</p>
</div>
<div class="feature-card">
<div class="card-label">sys.interface</div>
<div class="card-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ff00e5" stroke-width="1.5">
<rect x="3" y="3" width="18" height="18" rx="3"/>
<line x1="3" y1="9" x2="21" y2="9"/>
<line x1="9" y1="9" x2="9" y2="21"/>
</svg>
</div>
<h3>Gesture Control</h3>
<p>Mid-air gesture recognition through photonic field detection. Interact with holographic panels without physical contact surfaces.</p>
</div>
</div>
</section>
<hr class="divider">
<!-- Stats Bar -->
<section class="stats">
<div class="stat">
<div class="stat-value">99.97%</div>
<div class="stat-label">Projection Uptime</div>
</div>
<div class="stat">
<div class="stat-value">0.3ms</div>
<div class="stat-label">Render Latency</div>
</div>
<div class="stat">
<div class="stat-value">16M</div>
<div class="stat-label">Color Channels</div>
</div>
<div class="stat">
<div class="stat-value">512</div>
<div class="stat-label">Layer Depth</div>
</div>
</section>
<hr class="divider">
<!-- Showcase / Panel Section -->
<section class="showcase">
<div class="showcase-grid">
<div class="showcase-text">
<h2>Translucent Layer Architecture</h2>
<p>Our holographic rendering pipeline supports up to 512 independent translucent layers, each with individual opacity, blur, and chromatic shift controls.</p>
<ul>
<li>Dynamic depth sorting with parallax response</li>
<li>Per-layer iridescent color mapping</li>
<li>Adaptive luminance based on ambient light</li>
<li>Zero-latency gesture passthrough across layers</li>
</ul>
</div>
<div class="showcase-visual">
<div class="showcase-panel">
<div class="panel-header">
<span class="panel-dot"></span>
<span class="panel-dot magenta"></span>
<span class="panel-dot violet"></span>
<span class="panel-title">System Diagnostics</span>
</div>
<div class="panel-line"><span class="comment">// Holographic render pipeline</span></div>
<div class="panel-line"><span class="key">projection_mode</span>: <span class="val">coherent_light</span></div>
<div class="panel-line"><span class="key">layer_count</span>: <span class="val">128 active</span></div>
<div class="panel-line"><span class="key">chromatic_shift</span>: <span class="val">enabled</span></div>
<div class="panel-line"><span class="key">diffraction_idx</span>: <span class="val">0.9847</span></div>
<div class="panel-line"><span class="key">spectral_range</span>: <span class="val">380nm - 740nm</span></div>
<div class="panel-line"><span class="key">opacity_layers</span>: <span class="val">[0.15, 0.30, 0.60, 0.85]</span></div>
<div class="panel-line"><span class="comment">// All systems nominal</span></div>
<div class="panel-line"><span class="key">status</span>: <span style="color: var(--holo-teal);">OPERATIONAL</span></div>
</div>
</div>
</div>
</section>
<hr class="divider">
<!-- CTA Section -->
<section class="cta">
<div class="cta-inner">
<h2>Enter the Light</h2>
<p>Experience the next evolution of human-computer interaction. Holographic interfaces, projected from pure photonic energy.</p>
<a href="#" class="btn">Activate Prism//OS</a>
</div>
</section>
<!-- Footer -->
<footer>
<p>[ <a href="#">Prism//OS</a> ] — Holographic Interface Systems — Projected in light, designed for the future.</p>
</footer>
</body>
</html>
-webkit- prefix for backdrop-filter: Safari and older WebKit browsers require -webkit-backdrop-filter alongside the standard property for translucent panel effects to render correctlybackdrop-filter: blur() triggers GPU compositing; stacking more than two or three translucent layers with blur will cause noticeable performance degradation, especially on mobile devices and lower-end hardwarebackground-size: 200% auto with background-position animation for smooth gradient shifts; this is far more performant than animating the gradient stops themselves, which forces repaintingwill-change: transform or will-change: opacity to elements with continuous animations (particles, floating panels) to hint GPU acceleration, but remove the property from static elements to avoid unnecessary memory consumption@supports fallback for browsers without backdrop-filter support: fall back to a solid semi-transparent dark background so that content remains readable even without the holographic translucency effectbackground-size values reasonable (200%-400%); extremely large background sizes (1000%+) consume more GPU memory and provide diminishing visual returns on the smoothness of the color shiftpointer-events: none on all decorative overlay layers (scan lines, particles, shimmer effects) to ensure they never interfere with user interaction on the functional UI elements beneath them