website_designs

Dreamcore

Overview

Dreamcore is a surrealist internet aesthetic defined by liminal spaces, uncanny emptiness, VHS distortion, and the eerie nostalgia of places that feel familiar yet deeply wrong. It draws from half-remembered dreams, abandoned architecture, and the glitchy imperfection of degraded analog media. In digital design, Dreamcore manifests as unsettling layouts with washed-out palettes, off-kilter typography, static noise overlays, and compositions that provoke a sense of disorientation and vague unease – as if the viewer has wandered into a space that exists between waking and sleep.

Visual Characteristics

Core Design Traits

Design Principles

Color Palette

Swatch Hex Role
Void White #F0EDE4 Primary background, empty liminal space
Fluorescent Yellow #E8E4A0 Uncanny lighting, ambient wash
Static Grey #A8A8A0 Noise texture, muted surfaces
Pool Blue #7BA7BC Desaturated water, sky tones
Liminal Green #8B9E72 Sickly institutional surfaces
VHS Purple #7B6B8A Chromatic aberration accent
Faded Pink #C8A8A8 Warm distortion, skin tones
Monitor Black #1A1A1E Deep shadows, text
Hallway Beige #CCC4B0 Institutional walls, carpet tones
Error Red #A04040 Warning, glitch accent

CSS Custom Properties

:root {
  --dream-void: #F0EDE4;
  --dream-fluorescent: #E8E4A0;
  --dream-static: #A8A8A0;
  --dream-pool: #7BA7BC;
  --dream-liminal: #8B9E72;
  --dream-vhs: #7B6B8A;
  --dream-faded-pink: #C8A8A8;
  --dream-monitor: #1A1A1E;
  --dream-hallway: #CCC4B0;
  --dream-error: #A04040;
}

Typography

Font Weight(s) Usage Link
Space Mono 400, 700 Primary text; monospaced, system-terminal feel Space Mono
Courier Prime 400, 700 Body text; typewriter-quality mono with a worn texture Courier Prime
Inter 300, 400, 500 System UI text, labels, interface elements Inter
Creepster 400 Decorative accent for unsettling headers (use sparingly) Creepster
VT323 400 Pixel-style monospace for retro terminal and error messages VT323

Font Pairing Suggestions

Heading Body Mood
Space Mono 700 Courier Prime 400 Terminal log, institutional signage
VT323 400 Inter 300 Retro CRT meets modern liminal
Inter 500 Space Mono 400 Clean but off: corporate unreality

CSS Example

@import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Courier+Prime:wght@400;700&family=VT323&display=swap');

body {
  font-family: 'Space Mono', 'Courier New', monospace;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--dream-monitor);
  -webkit-font-smoothing: auto;
}

h1, h2, h3 {
  font-family: 'Space Mono', monospace;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--dream-static);
}

.system-text {
  font-family: 'VT323', monospace;
  font-size: 1.25rem;
  color: var(--dream-liminal);
}

Layout Principles

CSS / Design Techniques

Liminal Card

.dream-card {
  background: var(--dream-void);
  border: 1px solid var(--dream-static);
  padding: 48px;
  max-width: 500px;
  position: relative;
  box-shadow: 0 0 40px rgba(26, 26, 30, 0.04);
}

.dream-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(168, 168, 160, 0.03) 2px,
    rgba(168, 168, 160, 0.03) 4px
  );
  pointer-events: none;
}

VHS Distortion Overlay

.dream-vhs-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 1000;
  background: repeating-linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.02) 0px,
    rgba(0, 0, 0, 0.02) 1px,
    transparent 1px,
    transparent 3px
  );
}

.dream-vhs-overlay::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(
    ellipse at center,
    transparent 60%,
    rgba(26, 26, 30, 0.08) 100%
  );
}

Glitch Button

.dream-button {
  background: transparent;
  color: var(--dream-monitor);
  border: 1px solid var(--dream-static);
  padding: 12px 32px;
  font-family: 'Space Mono', monospace;
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  position: relative;
  transition: all 0.3s ease;
}

.dream-button:hover {
  background: var(--dream-fluorescent);
  border-color: var(--dream-monitor);
  color: var(--dream-monitor);
  text-shadow:
    2px 0 var(--dream-error),
    -2px 0 var(--dream-pool);
}

Empty Hero Section

.dream-hero {
  background: var(--dream-hallway);
  min-height: 80vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.dream-hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    linear-gradient(180deg, rgba(240,237,228,0.3) 0%, transparent 30%, transparent 70%, rgba(240,237,228,0.3) 100%);
  pointer-events: none;
}

.dream-hero h1 {
  font-family: 'Space Mono', monospace;
  font-size: 1.5rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color: var(--dream-static);
  position: relative;
}

.dream-hero .subtitle {
  font-family: 'VT323', monospace;
  font-size: 1rem;
  color: var(--dream-liminal);
  margin-top: 24px;
  position: relative;
}

System Message

.dream-system {
  font-family: 'VT323', monospace;
  font-size: 1.1rem;
  color: var(--dream-liminal);
  background: rgba(26, 26, 30, 0.03);
  border-left: 2px solid var(--dream-static);
  padding: 12px 20px;
  margin: 32px 0;
}

.dream-system::before {
  content: '> ';
  color: var(--dream-error);
}

Fluorescent Navigation

.dream-nav {
  background: var(--dream-void);
  border-bottom: 1px solid rgba(168, 168, 160, 0.3);
  padding: 24px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.dream-nav a {
  font-family: 'Space Mono', monospace;
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--dream-static);
  text-decoration: none;
  transition: color 0.3s ease;
}

.dream-nav a:hover {
  color: var(--dream-monitor);
  text-shadow:
    1px 0 var(--dream-error),
    -1px 0 var(--dream-pool);
}

Design Do’s and Don’ts

Do

Don’t

Aesthetic Relationship
Weirdcore Close sibling; both use surreal, unsettling imagery but Weirdcore is more aggressively distorted and chaotic
Vaporwave Shares VHS nostalgia and surreal digital spaces; Vaporwave is more colorful, ironic, and consumer-culture-focused
Liminal Space Overlapping category; liminal spaces are the primary subject matter of Dreamcore photography
Y2K Both reference late-90s/early-2000s digital aesthetics; Y2K is optimistic and glossy while Dreamcore is eerie and degraded
Dark Academia Both mine nostalgia for old institutional spaces; Dark Academia is scholarly and warm while Dreamcore is cold and empty
Brutalism (web) Shares raw, uncomfortable design choices and rejection of UX conventions; Brutalism is aggressive while Dreamcore is passively unsettling

Quick-Start HTML Template

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Dreamcore Layout</title>
  <link href="https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=VT323&display=swap" rel="stylesheet">
  <style>
    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

    body {
      font-family: 'Space Mono', 'Courier New', monospace;
      font-size: 0.95rem;
      line-height: 1.7;
      color: #1A1A1E;
      background: #F0EDE4;
      min-height: 100vh;
      position: relative;
    }

    /* Scanline overlay */
    body::after {
      content: '';
      position: fixed;
      top: 0; left: 0; right: 0; bottom: 0;
      pointer-events: none;
      z-index: 1000;
      background: repeating-linear-gradient(
        0deg,
        rgba(0,0,0,0.015) 0px,
        rgba(0,0,0,0.015) 1px,
        transparent 1px,
        transparent 3px
      );
    }

    .nav {
      background: #F0EDE4;
      border-bottom: 1px solid rgba(168,168,160,0.3);
      padding: 24px 40px;
      display: flex;
      justify-content: space-between;
    }

    .nav a {
      font-size: 0.75rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: #A8A8A0;
      text-decoration: none;
    }

    .hero {
      background: #CCC4B0;
      min-height: 70vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      position: relative;
    }

    .hero::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      background: linear-gradient(180deg,
        rgba(240,237,228,0.3) 0%, transparent 30%,
        transparent 70%, rgba(240,237,228,0.3) 100%);
    }

    .hero h1 {
      font-size: 1.4rem;
      font-weight: 400;
      text-transform: uppercase;
      letter-spacing: 0.3em;
      color: #A8A8A0;
      position: relative;
    }

    .hero .sub {
      font-family: 'VT323', monospace;
      font-size: 1rem;
      color: #8B9E72;
      margin-top: 24px;
      position: relative;
    }

    .content {
      max-width: 600px;
      margin: 100px auto;
      padding: 0 40px;
    }

    .card {
      background: #F0EDE4;
      border: 1px solid #A8A8A0;
      padding: 48px;
      margin-bottom: 60px;
      position: relative;
    }

    .card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      background: repeating-linear-gradient(
        0deg, transparent, transparent 2px,
        rgba(168,168,160,0.03) 2px,
        rgba(168,168,160,0.03) 4px
      );
      pointer-events: none;
    }

    .card h2 {
      font-size: 0.85rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.15em;
      color: #A8A8A0;
      margin-bottom: 16px;
    }

    .card p {
      color: rgba(26,26,30,0.6);
      font-size: 0.9rem;
    }

    .system {
      font-family: 'VT323', monospace;
      font-size: 1.1rem;
      color: #8B9E72;
      border-left: 2px solid #A8A8A0;
      padding: 12px 20px;
      margin: 40px 0;
    }

    .system::before {
      content: '> ';
      color: #A04040;
    }

    .button {
      display: inline-block;
      margin-top: 20px;
      background: transparent;
      color: #1A1A1E;
      border: 1px solid #A8A8A0;
      padding: 10px 28px;
      font-family: 'Space Mono', monospace;
      font-size: 0.8rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      text-decoration: none;
    }
  </style>
</head>
<body>
  <nav class="nav">
    <a href="#">room_0x00</a>
    <div>
      <a href="#">corridor</a>
      <a href="#" style="margin-left:24px;">exit</a>
    </div>
  </nav>
  <header class="hero">
    <h1>You are here</h1>
    <div class="sub">location unknown . . . do you remember this place?</div>
  </header>
  <main class="content">
    <div class="system">this room should not exist</div>
    <div class="card">
      <h2>Room 14</h2>
      <p>The fluorescent lights hum at a frequency you cannot name.
         The carpet smells like 1997. No one else is here.</p>
      <a href="#" class="button">enter</a>
    </div>
    <div class="card">
      <h2>The Pool</h2>
      <p>Still water reflects a ceiling that should not be this high.
         The clock on the wall reads a time that has not happened yet.</p>
      <a href="#" class="button">enter</a>
    </div>
  </main>
</body>
</html>