Pixel Sweep
imageProA photo that dissolves into view square by square behind a ragged sweeping front, from a solid colour or a mosaic of itself.
Opening soon
Pro cannot be bought yet. The page opens when payment is ready.
Preview
The preview could not load.
Live demo. The theme switches the demo itself.
Code
pixel-sweep.tsxPro
The code is locked
Pixel Sweep is part of Manniche UI Pro. A key unlocks the source of all 60 effects.
Opening soon€49 · Introductory price until 31 December 2026. €79 after that.
- One-off payment
- One developer
- Your key arrives by email straight away
- No VAT (§ 19 UStG)
Have a key? Get the code with the CLI or MCP.
The key lives in MANNICHE_PRO_KEY, never in your code or a URL. How to set it up
CLI
npx shadcn@latest add @manniche-pro/pixel-sweepMCP
claude mcp add --transport http manniche-ui https://mikkelmanniche.dk/api/mcp --header "Authorization: Bearer $MANNICHE_PRO_KEY"Props
PixelSweepProps
| Prop | Type | Default | What it does |
|---|---|---|---|
src required | string | – | The photo. |
alt required | string | – | Describes the photo for screen readers. |
direction | PixelSweepDirection | 'right' | The way the reveal travels. right starts at the left edge and sweeps to the right. |
cellSize | number | 22 | Size of one square in CSS pixels. |
cover | string | '#0e0e10' | What the photo hides under: a hex colour, or mosaic for the photo itself in blocks of one colour (needs CORS on cross-origin photos, otherwise it falls back to a dark grey). |
edgeNoise | number | 0.55 | 0 is a straight front; 1 is a ragged, scattered one with tongues running ahead. |
duration | number | 1500 | Length of the sweep in milliseconds. |
easing | PixelSweepEasing | 'in-out' | Pace of the sweep. |
delay | number | 0 | Wait in milliseconds before the sweep starts. |
play | boolean | – | Leave it out to reveal once, when a third of the box has scrolled into view. true reveals, false covers the photo again, each with the same sweep. |
seed | number | 7 | Changes the scatter pattern, so several on a page do not dissolve alike. |
onRevealComplete | () => void | – | Called once the photo is fully revealed. |
fit | 'cover' | 'contain' | 'cover' | cover crops the photo to fill the box, contain shows all of it. |
focusX | number | 0.5 | Horizontal focus point from 0 (left) to 1 (right), used when cover crops the photo. |
focusY | number | 0.5 | Vertical focus point from 0 (top) to 1 (bottom), used when cover crops the photo. |
children | ReactNode | – | Content shown on top of the photo. |
className | string | – | – |
A11y
No accessibility notes written yet.
The notes come with the source when Pro opens.