Dark mode illusion studio
Left picks what each theme sees. Right shapes how the two are woven together. Everything renders on your machine — share a link only if you want one.
Light mode shows
What people on a white background see.
Drop an image or click to browse
PNG, JPEG, WebP, GIF · never leaves your device
Dark mode shows
What people on a black background see.
Drop an image or click to browse
PNG, JPEG, WebP, GIF · never leaves your device
Add something to at least one layer. The other half defaults to a flat fill, which is a perfectly good “only visible in one theme” effect on its own.
Mask
Classic 1px alternation. The tightest, most invisible weave.
1px is nearly invisible at full size but blurs to grey in a thumbnail. Bigger cells survive downscaling.
How many pixels go to the light image. Most of X is on dark mode — pushing this down favours them.
How do you make an image that changes in dark mode?
Upload two images and Duality solves the alpha channel that makes both appear. The file it produces is an ordinary PNG — no script, no animation, no device detection. Each app you post it to composites that PNG over its own theme background, white in light mode and black in dark mode, and the transparency decides which of your two pictures surfaces. It takes about twenty seconds:
- Pick your light-mode image — what people on white backgrounds see. It should be the brighter of the two.
- Pick your dark-mode image — what people on black backgrounds see. It has to be darker than the light image at every pixel; that's the one hard constraint.
- Choose a render mode. Interlace keeps both images at full contrast but leaves a fine visible weave. Blend is perfectly smooth but washes both images out.
- Adjust tone until the preview holds. Raise contrast, drop gamma on the light layer and raise it on the dark one. Leave saturation at zero unless the colour is worth some ghosting.
- Check the fidelity readout, and preview against the Dim, Slack and iOS surfaces rather than only your own theme.
- Download the PNG and post it. Keep it under 5 MB so X doesn't re-encode it to JPEG and destroy the effect.
Everything runs in your browser by default. Download and Copy never leave this device; Share link is opt-in and only sends the final PNG. No account is needed, and the tool is free. If a result isn't working, it's almost always tone — the step-by-step guide covers the fixes, and the maths explains why they work. Before posting, check where the effect survives.