Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/apursley2012/press-start/llms.txt

Use this file to discover all available pages before exploring further.

Press Start’s visual identity is built on a tightly scoped set of design tokens — a dark-field background, four neon accent colors, and a suite of hand-crafted utility classes that produce glowing text, pixel-art borders, and CRT-style overlays. Every color, shadow, and special effect in the UI traces back to the values documented on this page.

CSS Custom Properties

Five global custom properties are declared on :root in main.css. They drive the hand-authored utility classes (glow-*, pixel-border-*, crt-*) and are available anywhere in the stylesheet via var().
:root {
  --bg-color:     #060309;  /* page background */
  --neon-green:   #39FF14;  /* primary accent */
  --neon-magenta: #FF0099;  /* secondary accent / danger */
  --neon-cyan:    #00F0FF;  /* tertiary accent / info */
  --text-white:   #F5FFF5;  /* default body text */
}
VariableHex ValuePrimary Usage
--bg-color#060309Page background, scrollbar track
--neon-green#39FF14Glow effects, pixel borders, scrollbar thumb
--neon-magenta#FF0099Secondary glows, pixel borders, scrollbar hover, selection highlight
--neon-cyan#00F0FFTertiary glows, focus rings
--text-white#F5FFF5Default text, selection text color

Tailwind arcade- Color Tokens

The Tailwind theme extends the default palette with seven arcade- color tokens. These compile into the full set of bg-arcade-*, text-arcade-*, border-arcade-*, and fill-arcade-* utility classes used throughout the component tree.
TokenHexTailwind ClassesTypical Use
arcade-black#060309bg-arcade-black, text-arcade-blackPage background, overlay fills
arcade-green#39FF14bg-arcade-green, text-arcade-green, border-arcade-greenPrimary headings, active states, borders
arcade-magenta#FF0099bg-arcade-magenta, text-arcade-magenta, border-arcade-magentaSecondary accents, hover highlights, badges
arcade-cyan#00F0FFbg-arcade-cyan, text-arcade-cyan, border-arcade-cyanLinks, focus rings, info indicators
arcade-white#F5FFF5bg-arcade-white, text-arcade-whiteBody text, card backgrounds
arcade-muted#7CFF8Atext-arcade-muted, border-arcade-mutedSubdued labels, placeholder text
arcade-yellow#FFEA00bg-arcade-yellow, text-arcade-yellow, border-arcade-yellowWarnings, score displays, star ratings
Opacity variants (e.g. bg-arcade-black/80, border-arcade-green/30) are generated automatically by Tailwind and used throughout the project for overlays and translucent surfaces.

Glow Text-Shadow Utilities

Three .glow-* utility classes apply a two-layer text-shadow — a tight inner glow at full color and a softer outer halo at 50% opacity — to any text element.
.glow-green {
  text-shadow:
    0 0 5px var(--neon-green),
    0 0 10px rgba(57, 255, 20, 0.5);
}

.glow-magenta {
  text-shadow:
    0 0 5px var(--neon-magenta),
    0 0 10px rgba(255, 0, 153, 0.5);
}

.glow-cyan {
  text-shadow:
    0 0 5px var(--neon-cyan),
    0 0 10px rgba(0, 240, 255, 0.5);
}
Usage example:
<h1 className="font-press text-arcade-green glow-green">
  PRESS START
</h1>

<span className="font-vt323 text-arcade-magenta glow-magenta">
  PLAYER 1
</span>

Pixel Border Utilities

The .pixel-border-* classes simulate a flat, pixel-art style border using box-shadow offsets on all four sides rather than CSS border. A 4px margin ensures the shadow is never clipped by the element’s containing block.
.pixel-border-green {
  box-shadow:
    -4px 0 0 0 var(--neon-green),
     4px 0 0 0 var(--neon-green),
     0 -4px 0 0 var(--neon-green),
     0  4px 0 0 var(--neon-green);
  margin: 4px;
}

.pixel-border-magenta {
  box-shadow:
    -4px 0 0 0 var(--neon-magenta),
     4px 0 0 0 var(--neon-magenta),
     0 -4px 0 0 var(--neon-magenta),
     0  4px 0 0 var(--neon-magenta);
  margin: 4px;
}
Usage example:
<div className="pixel-border-green p-4 bg-arcade-black">
  <p className="text-arcade-green font-press text-xs">HIGH SCORE</p>
</div>

<button className="pixel-border-magenta px-6 py-2 font-press text-arcade-magenta">
  CONTINUE
</button>

CRT Effect Utilities

Four utility classes recreate the look of a cathode-ray tube monitor: a scanline overlay, flicker animation, RGB channel separation, and pixel-crisp image rendering.
/* Fixed full-screen overlay with scanline gradient and vignette */
.crt-overlay {
  pointer-events: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: linear-gradient(
    rgba(18, 16, 16, 0) 50%,
    rgba(0, 0, 0, 0.25) 50%
  );
  background-size: 100% 4px;
  box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.9);
}

/* Continuous opacity flicker driven by the `flicker` keyframe */
.crt-flicker {
  animation: flicker 0.15s infinite;
}

/* Chromatic aberration — red shifted left, blue shifted right */
.crt-rgb-split {
  text-shadow:
    -1px 0 0 rgba(255, 0, 0, 0.5),
     1px 0 0 rgba(0, 0, 255, 0.5);
}

/* Forces pixel-perfect rendering for sprites and pixel art */
.crisp-edges {
  image-rendering: pixelated;
  shape-rendering: crispEdges;
}
ClassEffectTypical Use
crt-overlayFull-screen scanlines + vignetteApp root wrapper
crt-flickerContinuous opacity flickerMonitor startup sequence
crt-rgb-splitRed/blue channel offsetGlitched headings, error states
crisp-edgesPixelated image renderingSprite sheets, pixel-art icons

Custom Scrollbar

The scrollbar is styled globally using WebKit pseudo-elements to match the arcade palette — a near-black track with a neon-green thumb that turns magenta on hover.
::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

::-webkit-scrollbar-track {
  background: var(--bg-color);
  border-left: 2px solid #1a1a1a;
}

::-webkit-scrollbar-thumb {
  background: var(--neon-green);
  border: 2px solid var(--bg-color);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--neon-magenta);
}
The 2px gap between the thumb and its track is achieved with border: 2px solid var(--bg-color) on the thumb, which matches the page background and creates a visual separation without a true margin.

Combining Tokens in JSX

Tokens are designed to be composed freely. Below are representative patterns from the project:
{/* Neon card with green accent border and glowing title */}
<article className="bg-arcade-black border-2 border-arcade-green pixel-border-green p-6">
  <h2 className="font-press text-arcade-green glow-green text-sm mb-4">
    PROJECT NAME
  </h2>
  <p className="font-inter text-arcade-white/80 leading-relaxed">
    Project description goes here.
  </p>
</article>

{/* Magenta badge */}
<span className="bg-arcade-magenta/10 border border-arcade-magenta text-arcade-magenta font-vt323 text-lg px-3 py-1">
  NEW
</span>

{/* Cyan link with focus ring */}
<a
  href="/projects"
  className="text-arcade-cyan hover:text-arcade-white focus:outline-none focus:ring-4 focus:ring-arcade-cyan"
>
  VIEW ALL PROJECTS
</a>

{/* Pixel-art sprite */}
<img
  src="/sprites/character.png"
  alt="Player character"
  className="crisp-edges w-16 h-16"
/>

Build docs developers (and LLMs) love