CRT screen
A realistic CRT filter to really take your UI back in time. Fully customizable.
Notes.txt
Notes.txt
Notes.txt
script.bash
npx shadcn@latest add https://www.ui95.dev/r/crt-screen.jsonRun it in a Radix shadcn project that already has the UI95 theme.
Scoped is the default: the effect covers the box and its children, and the overlay never takes the pointer. Pass fullscreen to lay it over the whole viewport instead; curvature, aberration and bloom then filter the whole document, which costs more on large pages. Put padding and backgrounds on the children, not on CrtScreen, so the warp and the overlay share one box. Scanlines and grain are alpha black and white at device resolution and follow the barrel curve. Under curvature, clicks land at the undistorted position of the element. Portals opened from inside a scoped CrtScreen (dialogs, menus, toasts) mount on the body and escape the effect; use fullscreen to cover them. Reduced motion freezes the grain and turns flicker off.
CrtScreen
| Prop | Type | Default |
|---|---|---|
| speed | number | - |
| frame | number | - |
| fps | number | - |
| scanlines | number | - |
| scanlineDensity | number | - |
| noise | number | - |
| vignette | number | - |
| mask | number | - |
| flicker | number | - |
| bloom | number | - |
| curvature | number | - |
| aberration | number | - |
| roll | boolean | - |
| preset | CrtPresetName | defaultCrtPreset |
| fullscreen | boolean | false |
Updated Nov 6, 2026