Retro & Glitch
VHS tracking distortion
VHS test-pattern color bars with 46-slice horizontal jitter, random tear events, a rolling tracking bar, and chroma-split REC text on a dark vermillion background.
css+canvasmedium complexityintense motion
Open on the canvas to copy the code → Free account · 3 copies a day · membership goes unlimited
Worth keeping?
Votes steer what gets built next — sign in to cast one, free to read
When to use it
Retro/lo-fi hero backgrounds, VHS-aesthetic landing pages, glitch art screensavers, or 80s/90s nostalgia UI themes.
When not to
Contexts requiring legible text overlays or calm ambient motion — the constant jitter and tear make reading difficult and can be visually fatiguing.
Working with an AI agent
Every component ships agent-ready metadata. An example instruction for this one:
Change the color bars palette from the current 5-color array to a classic SMPTE set by replacing bands with ['#c0c0c0','#c0c000','#00c0c0','#00c000','#c000c0','#C08459','#000000'], and slow the animation by changing t+=0.03 to t+=0.015.
Safe to edit
- color bars palette (bands array)
- slice jitter intensity (Math.sin multiplier *2 and random range *40-20)
- tracking bar speed (t*0.13 multiplier)
- chroma-split offset distance (cx±3)
- canvas resolution ratio (innerWidth*.55 / innerHeight*.55)
Keep intact
- canvas self-drawImage slice loop (critical for scanline effect without pixel readback)
- visibilitychange pause/play guards
- prefers-reduced-motion check (t+=reduce?0:0.03)
Known limitations
- Canvas self-drawImage compositing accumulates noise per frame — clearing with fillRect each tick partially resets but jitter bleeds; on some GPU/browser combos edges artifact
- Canvas resolution fixed at 55% of viewport — sharp on retina but pixelated look is intentional; changing the ratio alters the VHS aesthetic
- No click or hover interactivity — purely ambient
More Retro & Glitch components
- CRT scanline screenGreen-phosphor CRT terminal: rolling CSS scanlines, vignette, glowing oscilloscope wave, blinking boot-text rows, and random canvas glitch flashes.
- Pixel-art sprite marchThree rows of 8x8 two-frame pixel sprites march across a scrolling starfield at varying speeds; pointer horizontal position controls march speed.
- ASCII shimmerGrid of ASCII ramp characters shimmers through interfering radial and plasma waves in green-teal hues; character density and wave center follow the pointer.
- Dot-matrix tickerAmber LED dot-matrix marquee scrolling GAME OVER / INSERT COIN / HIGH SCORE across a dim dot grid. Custom 5x7 bitmap font with pulsing brightness per column.
- Neon arcade signPink neon ARCADE sign with CSS flicker animations and a yellow chasing-light marquee around a glowing pink border frame.
- Fake terminal typingGreen-on-black CRT terminal auto-types a fake boot sequence with randomized keystroke delays, scanline overlay, and blinking block cursor; loops continuously.