No.205 · CTAs
Halftone CTA
A tall CTA banner where slow gold paint drifts beneath a fixed halftone grid, visible only through the dots.
The prompt
The design brief behind this component — reuse it to regenerate, remix, or explain it.
Build a tall, centred call-to-action banner (min 480px, 20px radius, hairline border, near-black #0a0908). Cover it with a faint halftone dot grid: a radial-gradient dot (1.15px solid, soft to 1.45px) tiled every 6px at 11% white. Behind the grid, paint four large blurred gold blobs (#e0a352, #c9791f, #8a6d1f, #b8863f; filter: blur(18px)) on an oversized layer (inset −35%) that drifts on a 20s loop — translating ±8%, rotating ±6° and scaling up to 1.1. The trick: that paint is only visible *through the dots*. Put the same dot pattern as a mask-image (mask-size 6px) on a non-moving wrapper around the paint, with mix-blend-mode: screen, so the grid itself stays perfectly still while gold light swims through it like a halftone print coming alive. A radial scrim darkens the centre so the stack stays legible: a soft pill badge, a large 600-weight heading (clamp 2.25–4rem, −0.03em tracking, 1.1 line height), a muted 30rem paragraph, and a gold pill button whose 120° gradient (#b8863f → amber → #f6c98a → amber → #b8863f, 200% wide) shimmers back and forth every 7s — twice as fast on hover, where it also lifts 1px and gains a warm glow. Provide a light theme (ink dots on paper, multiply blend). Under reduced motion the paint and shimmer stop.
Notes
- Interaction
- Hover or focus on the button doubles the shimmer speed, lifts it 1px and adds a gold glow.
- Motion
- Paint drift 20s ease-in-out; button shimmer 7s (3.5s on hover); hover transitions 200–300ms.
- Accessibility
- Semantic <h2> and a real link. All decorative layers are aria-hidden. The scrim keeps text contrast high over the moving paint. Reduced motion freezes both loops.
- Responsive
- Heading scales with container width (cqi units); padding and min-height step down below 640px.