12 CSS Retro UI Designs

12 hand-coded retro / vintage UI designs covering the era-aesthetics search demand actually targets: pixel-faithful Windows 95, CRT terminal with scanlines, 8-bit pixel-art HUD, neo-brutalism, skeuomorphic cassette deck, vaporwave, retro arcade, an interactive ASCII bash shell, 90s Web 1.0 guestbook, Y2K aqua-gloss, vintage storefront, and a draggable-window desktop portfolio. 10 of 12 are 100% pure CSS — no framework dependency, no 98.css/NES.css external. MIT-licensed.

10 pure CSS2 light JSPublished

Related12 CSS Neon Designs22 CSS Brutalism16 CSS Glitch Text Effects

Retro Windows 95 UI (CSS Template) — preview
01 / 12Pure CSS

Retro Windows 95 UI (CSS Template)

A pixel-faithful Windows 95 desktop rebuilt in pure CSS — raised/inset bevels via split border-colors, the conic-gradient Start orb, a checkbox-hack Start menu, draggable-looking title bars, dotted focus rings and a working taskbar with tray clock. Pixelify Sans + VT323 on the classic teal hatched wallpaper.

Published

Retro Futuristic Terminal UI Code — preview
02 / 12Pure CSS

Retro Futuristic Terminal UI Code

A boot-sequence CRT terminal with curved glass: layered scanlines, rolling interlace, vignette curvature, phosphor glow and a flicker keyframe, plus staggered line-by-line teletype reveal and a blinking block cursor. Share Tech Mono / Orbitron on deep green, ANSI-coloured output and ASCII headline — zero JS.

Published

8 Bit Pixel Art UI Elements & Buttons — preview
03 / 12Pure CSS

8 Bit Pixel Art UI Elements & Buttons

An 8-bit RPG HUD kit drawn entirely with layered box-shadows — no border-radius, no images: chunky pixel panels, a heart-based HP row, a stepped XP bar, coin counter, type-on dialogue box and depressible 3D pixel buttons. Press Start 2P + VT323 on a 16-colour dusk palette with a CRT grid.

Published

Neo Brutalist UI Components Examples — preview
04 / 12Pure CSS

Neo Brutalist UI Components Examples

A neo-brutalist component board: 3px black strokes, blunt offset hard-shadows that grow on hover, clashing primaries, an inset-shadow text field, a stepped checkbox-hack toggle, badges, stat tiles and a punch-down CTA. Archivo Black + Space Grotesk on a dotted cream grid — deliberately anti-minimal.

Published

Retro Cassette Player UI Web Component — preview
05 / 12Pure CSS

Retro Cassette Player UI Web Component

A skeuomorphic tape deck modelled in pure CSS gradients — moulded plastic body with inset highlights, a recessed window with two spinning reels, an LCD with an animated VU meter, real pressable transport keys with travel, and three rotary knobs with pointer ticks. Major Mono Display + Oswald, warm 80s-hi-fi tones.

Published

Vaporwave Aesthetic Website Theme Design — preview
06 / 12Pure CSS

Vaporwave Aesthetic Website Theme Design

A vaporwave scene assembled from CSS masks and gradients only — a halftone striped sun bobbing on the horizon, an infinite scrolling neon perspective grid floor, chrome gradient-clip title type with a glitch shudder, and a translucent retro window card. Monoton + Yatra One + Space Mono in pink/cyan/purple.

Published

Retro Arcade Game UI Kit — preview
07 / 12Pure CSS

Retro Arcade Game UI Kit

A full arcade cabinet UI kit: an animated rainbow marquee, a bezelled CRT attract-screen with scanlines, hue-shifting logo, marching sprites and a blinking PUSH START, plus a control panel with a wiggling joystick and four glossy convex pressable buttons. Press Start 2P + Silkscreen on a neon-magenta cab.

Published

ASCII Art Web Interface Code — preview
08 / 12CSS + JS

ASCII Art Web Interface Code

A live, typeable bash shell with an ASCII logo, ANSI-coloured output and a blinking caret — type real commands (help, ls, neofetch, cowsay, echo, clear) and watch them execute. The phosphor look, window chrome and caret are pure CSS; a tiny vanilla-JS interpreter drives the interactivity. IBM Plex Mono on a hatched dark room.

Published

90s Website Guestbook Widget — preview
09 / 12Pure CSS

90s Website Guestbook Widget

An authentic Web 1.0 GeoCities-era homepage: a rainbow banner with a blinking hit counter, a scrolling marquee, ridge/inset bevelled tables, a sign-the-guestbook form with vintage entries, a webring, 88×31-style badges and an animated UNDER CONSTRUCTION sign. Times + Comic Neue + Courier Prime on tiled teal.

Published

Y2K Style Web UI Kit — preview
10 / 12Pure CSS

Y2K Style Web UI Kit

A glossy Y2K / Aqua interface — candy jelly buttons with specular top-gloss and a 3D push, a pinstripe-animated progress pill, a frosted aqua titlebar with gel orbs, and a glassy toggle switch. Michroma + Rajdhani on an icy aqua-to-lilac gradient with chrome-clip headline type, pure CSS gloss.

Published

Retro Clothing Store Web UI Design — preview
11 / 12Pure CSS

Retro Clothing Store Web UI Design

A vintage mail-order catalogue storefront: a double-rule masthead, halftone-textured paper, ticket-stub price tags, a wax-seal discount badge, a product grid with diagonal-weave thumbnails that lift on hover, and an old-school phone-order footer. Bebas Neue + DM Serif Display + Courier Prime in rust/mustard/teal.

Published

Retro Desktop Portfolio Website Template — preview
12 / 12CSS + JS

Retro Desktop Portfolio Website Template

A classic desktop-OS portfolio: a System-style menu bar with live clock, desktop folder icons, and stacked windows (about / projects / contact) you can drag and bring-to-focus. The chrome — pin-striped title bars, gel close dots, dashed dividers — is pure CSS; focus + drag are tiny vanilla JS. Pixelify Sans + Space Mono on a dotted teal desktop.

Published

FAQ

Frequently asked questions

How do I build a Windows 95 UI in pure CSS without a framework like 98.css or XP.css?
98.css and XP.css are popular CSS frameworks that recreate Win98/XP — but they're external dependencies (an extra ~30 KB), they hard-code their own class names you have to adopt, and customising them means fighting their cascade. Demo #01 ships the same Win95 fidelity built from scratch in pure CSS so you can copy the bits you need and skip the framework. The core mechanics: raised/inset bevels via split border-color (top + left = white/grey light, right + bottom = dark grey/black, no gradients needed — same trick the original Windows GDI used), the iconic Start orb built with a conic-gradient for the four-color flag, a checkbox-hack Start menu (hidden <input type="checkbox"> + :checked sibling selectors so the menu opens with zero JS), dotted focus rings using outline: 1px dotted, and a working taskbar tray clock via CSS only. Fonts: Pixelify Sans + VT323 for the authentic look. Most "retro UI" tutorials online either point you at the 98.css framework or skip the raised/inset bevel mechanic entirely — both are competitor gaps fixed here.
How do I make a CRT terminal effect with scanlines in pure CSS?
Demo #02 ships the canonical recipe: three layered effects on a single dark surface. (1) Horizontal scanlines via a repeating linear-gradient at 2px intervals: background: repeating-linear-gradient(to bottom, transparent 0 1px, rgba(0,255,0,0.04) 1px 2px) overlaid via a ::before pseudo-element. (2) Phosphor glow on text via text-shadow: 0 0 4px currentColor, 0 0 12px currentColor — the green-on-black halo. (3) Subtle curvature via border-radius + an inner box-shadow that simulates the slight pillow distortion CRT tubes had at the corners. Add a boot-reveal animation (@keyframes typing each line then a cursor blink) and the effect is complete. Most "CRT effect" tutorials reach for WebGL or canvas filters; the pure-CSS version uses zero JavaScript and runs entirely on the compositor. Browser support: every evergreen browser since 2018.
How do you make 8-bit pixel-art UI elements in pure CSS without an SVG?
Demo #03 uses the multi-layered box-shadow trick — a single empty <div> (no markup overhead) becomes a multi-color pixel sprite by listing dozens of 1px-spaced box-shadow entries. Each shadow declaration places one "pixel" at an exact offset: box-shadow: 1px 0 0 #ff0, 2px 0 0 #ff0, 1px 1px 0 #f00, .... The result is a real pixel-art icon rendered in pure CSS at any size that respects image-rendering: pixelated. The same technique drives 8-bit button bevels (top edge = bright color, right + bottom = darker shade — the classic NES "3D" look). Demo #03 ships a complete HUD with health bar (chunky pixel segments), inventory grid, dialog box, and four button variants. Compared to using SVG pixel art, the CSS approach is purely declarative — no separate asset files to manage, infinitely scalable, and the colors are CSS variables you can theme.
What's neo-brutalism in UI design and how do I build it in CSS?
Neo-brutalism is the deliberate-ugly aesthetic that swept design Twitter in 2021-2023 and remains a strong differentiator for indie SaaS / dev tools (Gumroad, Linear's marketing site, Vercel ship demos). The recipe is intentionally hostile to traditional polish: thick black borders (border: 4px solid #000), hard offset shadows with zero blur (box-shadow: 8px 8px 0 #000) that snap to a flat plane instead of softly fading, zero border-radius (sharp corners only), saturated primary colors on big flat fills (hot pink, electric yellow, lime green, cobalt), oversized condensed sans-serif typography (Archivo Black, Space Grotesk Bold), and visible button press — on :active the box-shadow collapses to 0 and the element translates 3px 3px to fake the depression. Demo #04 ships a complete component toggle board with checkboxes, buttons, cards, badges, and pills all in this aesthetic. Browser support: anything. The hardest part is the design discipline of NOT softening the edges.
How do I make a vaporwave / synthwave background in CSS?
Demo #06 is the canonical vaporwave aesthetic with the three signature elements all rendered in CSS (no images). (1) Sun gradient: an absolutely-positioned circle with background: linear-gradient(180deg, #ff71ce, #ff8b3d, #ffea00) and a mask-image: linear-gradient(to top, transparent 0%, black 50%) so the sun fades into the horizon. (2) Perspective grid floor: a 2D grid via background-image: linear-gradient(to right, #ff00ff 1px, transparent 1px), linear-gradient(to bottom, #ff00ff 1px, transparent 1px) tilted with transform: perspective(400px) rotateX(60deg) for the iconic Tron-style receding floor. (3) Statue silhouettes / palm trees via clip-path: polygon(...) on solid fills — pure SVG-shaped CSS, no image assets. Pair with Bebas Neue or Monoton typography, the #ff71ce hot-pink + #00f0ff cyan palette, and an animated filter: hue-rotate for the optional color shift. Most vaporwave "how to" articles online show the palette and call it done — they skip the perspective grid + masked sun + clip-path silhouettes that actually make the aesthetic recognizable.
What's a working ASCII art web interface and how does the bash interpreter work?
Demo #08 ships an interactive ASCII shell — a real command interpreter that parses commands (ls, cd, cat, help, clear, whoami, etc.) from a virtual filesystem and renders output in monospace text within an ASCII-bordered panel. The CSS handles the entire visual chrome — the ASCII border (built with Unicode box-drawing characters ┌ ─ ┐ │ └ ┘), the green-on-black monospace surface, the prompt cursor that blinks via @keyframes, the scrollable output history. JavaScript handles only the command parsing + virtual filesystem (~80 lines, no dependencies). Compared to a real terminal emulator (xterm.js: ~250 KB, hyperterm: even bigger), this is a stylistic ASCII shell that's perfect for a portfolio or 404 page or developer tool landing. The competitor gap: every "ASCII art on the web" article shows static ASCII figlet text; this one is actually interactive.
How do I recreate a 90s website / Web 1.0 aesthetic in modern CSS?
Demo #09 is a faithful 1996-era guestbook page with all six period-correct elements: a tiled background via background-image with a Geocities-style starfield, a hit counter using a CSS-only animated odometer with each digit in a flipping panel, marquee text (using the modern CSS animation equivalent of the deprecated <marquee> tag — no need for the legacy element), an animated GIF placeholder using a stepped CSS animation that cycles through frames, under construction blink via animation: blink 1s step-end infinite, and a webring footer with the iconic prev/random/next links + ring buttons. Typography is Comic Sans MS (this is the one place where it's actually correct). What makes this useful in 2026: nostalgia design is a strong genre for indie SaaS, retro-themed event sites, and developer portfolios. Most "90s website CSS" tutorials online stop at the tiled background; this demo ships the full kit.
What's Y2K aesthetic in web design and how is it different from vaporwave?
Y2K (the late-90s through ~2003 aesthetic) and vaporwave are often confused but they're distinct. Y2K is the actual visual language of that era — chrome / aqua / liquid metal gradients (Apple's Aqua interface, WinXP Luna theme), bubble buttons with glossy highlights, transparent vinyl-style overlays, jellybean shapes, holographic / iridescent foils, and a palette of pearl whites, sky blues, baby pinks. Vaporwave is a 2010s INTERPRETATION of mid-90s nostalgia — different palette (hot pink + cyan), different references (Greco-Roman statues, dolphins, Windows 95 error dialogs as ironic memes), more digital-decay textures. Demo #10 ships the Y2K kit: aqua-gloss buttons with the iconic three-layer gradient (light to mid to dark with a top highlight stripe), bubble-shaped input fields, pearl-effect cards, chrome typography via background-clip text gradients, and a working checkbox-driven theme toggle. The Y2K aesthetic is having a real revival in 2023-2026 fashion + design; demo #10 captures the canonical patterns.
How do I build a draggable window / desktop portfolio in CSS + minimal JS?
Demo #12 is a fully draggable retro desktop portfolio — multiple windows the visitor can grab by the title bar and drag around the canvas, with z-index focus (clicking a window brings it to the front), a minimize/maximize/close trio per window, and a working taskbar. The visual chrome is 100% CSS — the title bar, window controls (red/yellow/green Mac dots OR Windows-style square X), inset/raised bevels, the desktop wallpaper. The drag + focus mechanics are ~60 lines of vanilla JS using pointerdown / pointermove / pointerup to track the drag delta and update transform: translate on the active window. Falls back gracefully without JS: windows render in CSS Grid as a static portfolio layout. Used by Rauno Freiberg, Henry Heffernan, and Bruno Simon as personal-site signatures — the draggable desktop is a strong portfolio differentiator that most "portfolio template" lists skip entirely.
Are these retro UI demos responsive and accessible?
Yes on both. Every demo has a sensible mobile breakpoint — the Win95 desktop (#01) reflows to a single window on narrow screens, the cassette deck (#05) keeps its proportions but shrinks, the desktop portfolio (#12) collapses to a stacked-window mobile view rather than trying to be draggable on touch. Every interactive surface is a real <button>, <a>, <input>, or <label>-wrapped checkbox — no clickable <div>s — so keyboard navigation and screen readers work. The CRT (#02), 8-bit HUD (#03), and vaporwave (#06) demos all respect @media (prefers-reduced-motion: reduce) and disable continuous animations for visitors with that OS preference. All 12 demos are MIT-licensed for both personal AND commercial projects; copy any demo's HTML + CSS from the code panel and drop it into your project.
Which retro demo should I use for my project?
Quick decision guide. Indie SaaS landing page: Demo #04 (neo-brutalism) — the aesthetic signals "made by humans, not a template" and stands out in a sea of polished SaaS sites. Developer tool / CLI product: Demo #02 (CRT terminal) or Demo #08 (ASCII shell) for the cyberpunk dev-tool aesthetic; pairs especially well with terminal-first products. Game / Twitch overlay / Discord bot landing: Demo #03 (8-bit pixel) or Demo #07 (arcade cabinet) — both nail the gaming nostalgia. Personal portfolio: Demo #12 (draggable desktop) is the highest-effort, highest-reward — visitors play with your portfolio AS the portfolio. Or Demo #01 (Win95) for a slightly less interactive version of the same idea. Marketing / lifestyle brand: Demo #06 (vaporwave) or Demo #10 (Y2K) for nostalgia-driven branding. 404 page / event site / fun side project: Demo #09 (90s guestbook) for the lo-fi maximalist Web 1.0 feel. Demo #11 (retro storefront) is the most production-ready of the kit — drop-in vintage catalogue aesthetic for fashion, vinyl, or any product that benefits from a curated retail vibe.

Related collections

9 CSS 3D Designs preview

9 CSS 3D Designs

9 hand-coded CSS 3D scenes built with real transforms, perspective, and preserve-3d — iridescent flip cards, a midnight coverflow carousel, kinetic tilt pricing cards, a page-turn flipbook, a Bauhaus drag-cube navigator, a modular synth control panel, a luxury hover-flip product showcase, a 5×5 spinning cube matrix, and a 60-orb DNA double helix. No WebGL, no libraries.

22 CSS Brutalism preview

22 CSS Brutalism

22 hand-coded brutalist and neubrutalist CSS designs covering the full spectrum of the aesthetic — from the anti-design brutalism of 2014-2018 (raw system fonts, zero border radius, monochrome density, visible structure) through to the neubrutalism of 2021-present (bright pastel fills, thick black borders, hard offset shadows with zero blur, rounded blocks). The neubrutalist half ships SaaS pricing cards with sticker badges, a pastel admin dashboard, signup forms, rotated feature cards, an offset-shadow navbar, a playful button set, a native dialog modal, a testimonial wall, blog cards, chunky toggles, a landing hero, an image gallery, stats panels and a rounded footer. The brutalist half covers product grids, raw form controls, a monochrome data dashboard, a portfolio index, indie SaaS pricing, Windows 95 desktop chrome, editorial long-read and a streetwear catalog. Every design is scoped under a .brt-NN prefix for no-collision pasting, guards prefers-reduced-motion, and ports unchanged to React, Vue, Svelte, Astro, Next.js and Tailwind.

22 CSS Dark Mode UI preview

22 CSS Dark Mode UI

22 hand-coded CSS dark-mode UI patterns — prefers-color-scheme root strategy, data-theme attribute override, color-mix token system, light-dark() function, sidebar navigation, dashboard card grid, modal dialog, focus-ring contrast audit, three-state switcher, code editor surface, OLED true black, layered slate, aurora dim and more.

Search CodeFronts

Loading…