Neo-Brutalism
Warning Tape
Two scrolling yellow-black hazard stripe bands frame a bold "UNDER CONSTRUCTION" label that gently pulses. Pure CSS, zero JS logic.
csslight complexitymoderate 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
Maintenance pages, coming-soon placeholders, neo-brutalist hero sections needing high-contrast industrial energy.
When not to
Polished, minimal, or light-background UIs — background is hardcoded dark (#111) and aesthetic is intentionally abrasive.
Working with an AI agent
Every component ships agent-ready metadata. An example instruction for this one:
Change the label text to "SITE OFFLINE", set stripe color to #ff3b3b (red), and slow the scroll animation to 2.4s. Theme: dark tokens live in :root, the light variant in :root[data-theme="light"]; ?theme=light or a {type:'forever:theme'} postMessage switches at runtime.
Safe to edit
- stripe scroll speed (1.2s in bru-stripe-scroll animation)
- stripe color (#ffe640 in repeating-linear-gradient)
- label title text (UNDER CONSTRUCTION)
- label subtitle text (DO NOT CROSS THIS LINE)
- stripe height (72px)
- pulse animation duration (1.4s)
- theme tokens (:root dark defaults + [data-theme=light] overrides)
Keep intact
- prefers-reduced-motion guard (reduce check)
- visibilitychange pause/play handlers
- IIFE wrapper
- bru-animate class toggle pattern
- theme hook (?theme= bootstrap + forever:theme message listener + theme tokens)
Known limitations
- Background color hardcoded #111 — must edit CSS to change dark surround
- Stripe scroll direction is fixed left-to-right; reversing requires negating background-position end value
More Neo-Brutalism components
- Newspaper TickerTwo rows of bold uppercase headlines scroll in opposite directions with red accent highlights — pure CSS marquee in neo-brutalist black-and-cream style.
- Error ManifestoA neo-brutalist error card with hard shadow and border cycles its text color between white, red, and yellow in stepped CSS keyframe flashes.
- Receipt CardA neo-brutalist receipt card with lime-green monospace text on black; line items fade in one-by-one with a staggered delay, revealing a running total.
- Data GridA neo-brutalist 5-row data grid showing node load % and status; cells flash cyan, lime, or red every 800ms to reflect ERR/WARN/OK states.