Unlock Lifetime Full Access 50% off

Sections / Gems / Cursor and pointer effects

Loupe

A magnifying glass that shows the layer under your picture: the plan under the building, the x-ray under the product, the sketch under the painting. The lens magnifies the hidden layer, bends it at the thick glass edge and splits colour at the rim in the direction it moves. It drifts on its own until someone takes it; one button opens the whole layer.

Included with Full Access
Open the demo
Loupe: six frames of the gem in motion
Kind
Cursor and pointer effects
Interaction
pointer lens · two layers · autopilot · keyboard · chromatic rim · canvas
Dependencies
None
Licence
Licensed with Full Access, for the sites you build; do not resell the gem itself

Formats

  • Webflow (native)
  • Figma (layers)
  • Framer component
  • HTML
  • Prompts for Claude Code, Cursor, Lovable, v0, Bolt

Copy to Webflow pastes a native section with the gem in an Embed inside it. Copy to Figma pastes a frame of its best moment, text and controls as layers. Copy to Framer pastes a component with its options as controls. HTML is one self-contained snippet. Each prompt (Claude Code, Cursor, Lovable, v0, Bolt) carries the exact files, so your agent installs this gem, not a lookalike. With the MCP server, ask your agent for get_section("loupe").

Behaviour and accessibility

  • The lens drifts slowly on its own, follows the pointer when it is over the picture, and goes back to drifting when it leaves; a tap places it on touch screens, and dragging still scrolls the page.
  • The picture is a focusable group named with both layers' descriptions; arrow keys move the lens (Shift for bigger steps), + and - resize it, Home centres it.
  • The reveal button (aria-pressed) opens the whole hidden layer and back; scene changes and reveals are announced politely.
  • Drawing stops entirely off screen, in a background tab, and whenever the lens is still and nobody is steering.
  • With prefers-reduced-motion: no drift, no spring or crossfade; the lens jumps to where it is sent and the reveal cuts.

Options

OptionTypeDefaultWhat
scenesLoupeScene[]2 built inThe scenes, each a picture and the layer under it. One or more.
radiusnumber0Lens radius in px; 0 sizes it from the box (20 % of the shorter side, 70 to 200 px).
zoomnumber1.6Magnification inside the lens.
rimnumber3Strength of the colour split at the rim, in px. 0 turns it off.
autopilotbooleantrueLet the lens drift on its own while nobody is steering it.
controlsbooleantrueShow the caption, the reveal button and (with two or more scenes) the arrows.
labelstring"Loupe"Accessible name of the gem.
startIndexnumber0Scene shown first.
onReveal(revealed: boolean) => voidCalled when the whole hidden layer is opened or closed.
onChange(index: number) => voidCalled after every scene change with the new index.