∞ forever components

Neo-Brutalism

Newspaper Ticker

Two rows of bold uppercase headlines scroll in opposite directions with red accent highlights — pure CSS marquee in neo-brutalist black-and-cream style.

csslight complexitymoderate motionmobile-ready

Open on the canvas to copy the code → Free account · 3 copies a day · membership goes unlimited

Live demo — the real component, running in a sandbox. One self-contained HTML file, zero dependencies. Open it on the canvas →
1

When to use it

News tickers, event dashboards, or portfolio hero banners needing scrolling text with editorial urgency.

When not to

Contexts requiring readable static text — continuous scroll makes sustained reading impossible.

Working with an AI agent

Every component ships agent-ready metadata. An example instruction for this one:

Change row 1 speed to 12s (edit `.bru-t1` animation duration), swap accent color from #ff2d00 to #0055ff, and add a third ticker row. 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

  • row 1 scroll speed (18s in .bru-t1)
  • row 2 scroll speed (24s in .bru-t2)
  • accent color (#ff2d00 on em)
  • headline text (span elements)
  • background color (#fffbe6)
  • theme tokens (:root dark defaults + [data-theme=light] overrides)

Keep intact

  • duplicate span blocks (required for seamless 50% translate loop)
  • bru-reduced prefers-reduced-motion guard
  • visibilitychange pause/play handler
  • IIFE wrapper
  • theme hook (?theme= bootstrap + forever:theme message listener + theme tokens)

Known limitations

  • Each track requires content duplicated exactly twice for the seamless loop — adding spans must be mirrored
  • Reduced-motion users see static non-scrolling headlines with no animated fallback

tickernewsbrutalismmarqueetypographylooptext-animation

More Neo-Brutalism components

  • 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.
  • Warning TapeTwo scrolling yellow-black hazard stripe bands frame a bold "UNDER CONSTRUCTION" label that gently pulses. Pure CSS, zero JS logic.
  • 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.