Skip to content

OverlaysPro

16 effects for the overlays family · every one loops · pure CSS unless a card says otherwise

The previews are open to everyone; the code of these effects comes with WunderUI Core and Pro.

!

The severity stripe draws after the alert lands.

Pure CSSOverlays

It scales out of the arrow, not out of its own centre. One transform-origin placed on the anchor point does the whole job, and it stays correct when the popover flips side.

Pure CSSOverlays
⌘K Search …

The shell blurs in first, results cascade after. Both under 200 ms in production.

Pure CSSOverlays

The scrim fades first and the panel arrives a beat later. The exit is faster and travels less than the entrance, because leaving should not ask for the same attention as arriving.

Pure CSSOverlays

A four-point polygon opening past the corners. Percentages beyond 0–100 are what make it cover.

Pure CSSOverlays
@wunderui

It grows out of the edge nearest the trigger, not out of its own middle. The transform-origin is what carries the relationship; without it the card looks unrelated to what opened it.

Pure CSSOverlays
Notification

Moving the transform-origin during the animation bends a straight translate into an arc. One property, no path.

Pure CSSOverlays

It lingers at 87° as a thin slit before it turns flat. The pause is the whole effect.

Pure CSSOverlays
Open

The exit is the part nobody gets for free. allow-discrete animates all the way to display:none. Baseline since 08/2024.

Modern CSSOverlays
Copy link

500 ms before the first one, 0 ms inside the same group.

Pure CSSOverlays

The list overshoots, then settles back.

Pure CSSOverlays
👍

The button springs, the particles leave.

Pure CSSOverlays

It rests on a snap point before it goes full height.

Pure CSSOverlays

The opening stalls at a third of the way before completing. The stutter is deliberate and it is what names the family.

Pure CSSOverlays

A new message pushes the stack back and down; the newest is always frontmost.

Pure CSSOverlays

A full turn and a half, so it reads as arriving rather than growing.

Pure CSSOverlays