diff --git a/docs/superpowers/specs/2026-05-31-mobile-camera-button-design.md b/docs/superpowers/specs/2026-05-31-mobile-camera-button-design.md new file mode 100644 index 0000000..ce8ad00 --- /dev/null +++ b/docs/superpowers/specs/2026-05-31-mobile-camera-button-design.md @@ -0,0 +1,94 @@ +# Design: Mobile "Open Camera" Button + +**Date:** 2026-05-31 +**Status:** Approved, pending implementation plan + +## Summary + +Add a button to both the **profile screen** and the **event screen** that, on +mobile devices only, opens the device's rear camera when tapped. The button is +a camera-launch affordance — it pops the native camera capture sheet and does +not process the captured image. + +## Motivation + +atmo.quest's connect flow relies on scanning a QR code (each profile exposes a +QR encoding `/c/{did}`). Today users scan with their phone's standalone camera +app. This feature adds an in-page shortcut to open the camera from the profile +and event screens on mobile. + +## Scope and explicit non-goals + +**In scope:** a mobile-only button that opens the native camera capture sheet. + +**Explicit non-goal — no QR decode.** Per the product decision during +brainstorming, the page does **not** process the captured photo. The button is +a v1 stub / camera-launch affordance, **not a working scanner**. Tapping it +opens the camera; whatever photo the user takes is discarded. + +> Web reality that drove this decision: the only no-dependency way for a web +> page to open the camera is ``, which +> opens the **photo-capture sheet**. That sheet takes a still photo and returns +> it to the input — it does **not** do the live QR detection of the standalone +> Camera app, and there is no web API to launch that standalone app. Making the +> button actually connect someone would require adding a decode step (client- +> side JS QR decode, then redirect to the connect URL). That is a deliberate +> future enhancement, not part of this work. + +## Behavior + +- Rendered as a `