How the X long-press reveal works
X keeps PNG files that contain transparency (fully opaque uploads get re-encoded as JPEG). In the timeline, your image is composited over the app theme background and downscaled — so a 1-pixel pattern of transparent holes optically fuses with that background. On the Light theme, a 50% checkerboard washes the area toward white and it visually disappears. When someone taps / long-presses, X opens the media viewer over a near-black background at a different scale: the same pixels now fuse with black and the area reads as visible (slightly darkened) — that's the reveal.
Why PNG-8? Indexed color (≤256 entries + a transparent palette slot via the tRNS chunk) keeps files small and stable, so X preserves your exact pixel pattern instead of resampling it away. This app writes the PNG-8 byte stream itself and re-decodes every export to verify it.
Workflow
- Open your base image. Optionally Add layer for a separate clothes/accessory PNG, then use Mask from alpha to mask exactly that shape in one click.
- Paint the front layer with the brush — or drop a separate overlay image as a layer and hit Mask from alpha. Paint nothing to hide the whole image.
- Add text stamps (“TAP & HOLD!!”) so viewers know to interact.
- Check both previews — press & hold the preview to simulate the tap.
- Export PNG-8 and post from x.com on desktop web.
Best practices for a reliable effect
- Export at ≥1200 px wide so the timeline always downsamples (that's what blends the pattern).
- The hide is strongest for viewers on the Light theme. Dim/Dark users see something closer to the reveal — check all three themes in the preview.
- Enable full-view compensation to counter the darkening in the expanded viewer. It works best on mid/dark tones; very bright colors clamp at 255.
- Keep the file under 5 MB (X's PNG limit). Reduce width or palette if warned.
- Rendering differs slightly across X clients and versions — the previews are a faithful simulation, not a guarantee. Do one test post.
- Label your posts per X's media policies (mark sensitive media where applicable).
Limitations (v1)
- Undo/redo covers mask edits. Layer moves/deletes are not in history yet.
- PNG-8 alpha is binary: semi-transparent source pixels are thresholded at 50%.
- No multi-touch pinch zoom yet — desktop-first, use the wheel.
Shortcuts
| V move | B brush | E erase | W wand |
| T text | H/Space pan | [ ] brush size | 0 fit view |
| Ctrl+Z undo | Ctrl+Shift+Z redo | Ctrl+S save project | Ctrl+E export |