Two versions of one photo under a draggable divider: pull the handle to wipe between them, with the 'after' side clipped rather than resized so nothing shifts, labels that fade out as the handle approaches them, and arrow keys for fine control. The demo compares a colour grade.
Placeholder photos by Paul Pastourmatzis on Unsplash. Replace them with your own before launch.
The after layer has `clip-path: inset(0 calc(100% − var(--p)) 0 0)`; the handle sits at `left: var(--p)`. The range input is `position: absolute; inset: 0; opacity: 0; cursor: ew-resize` with `aria-label` and `aria-valuetext`, so dragging anywhere on the frame moves the divider. Labels fade when `--p` comes within 18 % of their side.
From prompt to a block in your page.
The preview is the shipped element inside a neutral demo page. Hover, click, focus: the one interaction it is about is live.
Token sets re-tint it live. The prompt carries the one you chose.
A paste-in snippet, or a component for Next.js, React, Vue, Astro, WordPress, Shopify or Webflow.
It quotes the markup, styles and script verbatim with the tokens and the rules that keep it self-contained.
It inherits your page's font and width; the tokens live on :root; several instances share one script.