UI + UXCross-Device And Physical Interactionstandard
Camera capture
Provide a camera capture flow with explicit user invocation, contextual permission rationale, live preview, active-camera indicator, framing and quality guidance, capture feedback, review before upload, retake and edit controls, file or manual fallback, cancel recovery, and guaranteed media-track cleanup.
Users need to create new photo or video media inside the task.
The product can show live preview, quality guidance, capture review, and fallback paths.
The capture output affects evidence, verification, documentation, support, profile identity, or visual record quality.
Avoid when
Existing file upload, text entry, barcode input, or manual confirmation is sufficient.
The task is privacy-sensitive and cannot provide clear purpose, retention, fallback, and cancellation behavior.
The product cannot safely handle permission denial, unavailable camera, stream cleanup, or review before submit.
The camera would be used only for novelty or to force mobile-only behavior.
Problem it prevents
Camera capture can reduce manual entry and prove visual context, but camera access is permission-gated, privacy-sensitive, hardware-dependent, and failure-prone; without explicit preview, quality review, fallback, and stream cleanup, users can capture the wrong media, expose private surroundings, or get blocked by permission denial.
Pattern anatomy
What a strong implementation has to make clear
User need
The task asks users to create new images or video for receipts, documents, identity evidence, damage reports, profile photos, QR-like visual data, support diagnostics, deposits, or field work.
Pattern promise
Provide a camera capture flow with explicit user invocation, contextual permission rationale, live preview, active-camera indicator, framing and quality guidance, capture feedback, review before upload, retake and edit controls, file or manual fallback, cancel recovery, and guaranteed media-track cleanup.
Required state
Unsupported browser or insecure-context state with upload or manual alternative.
Recovery path
Camera activates without an explicit user action.
Access contract
Provide file upload, manual entry, or assisted alternatives for users who cannot use a camera.
Quality bar
The difference between expert and weak execution
Strong implementation
Specific, visible, recoverable
A receipt scanner asks users to Scan receipt, explains camera use, shows a live preview with document edges, captures a frozen preview, then offers Retake, Crop, Upload file, and Attach to claim.
A damage report flow labels the rear camera, shows a privacy indicator and steady frame guide, warns when the image is blurry, and keeps Submit disabled until a reviewable photo is captured.
A user starts Scan receipt, grants camera access, sees Align the whole receipt, captures a photo, reviews blur feedback, retakes, then attaches the corrected image.
A user denies camera access in a clinic and completes the same identity-document step by uploading a saved image.
Weak implementation
Vague, hidden, hard to recover from
The page opens the camera on load, hides the active-stream indicator, and starts recording before users choose a task.
The capture button uploads immediately with no frozen preview, retake, crop, or file fallback.
A user closes a capture sheet but the camera light stays on and the preview remains active in the background.
A user captures a child ID photo and the app leaves it visible in recent previews after cancel.
UI guidance
Render camera capture as a deliberate media-acquisition surface with purpose text, camera permission state, selected camera, live preview, privacy indicator, framing guide, capture button, shutter feedback, review preview, retake, crop or rotate, submit, cancel, and upload fallback.
Show what will happen to the captured image or video before access is requested: target object, required quality, storage or retention, whether the stream is active, and whether users can complete the task without camera access.
UX guidance
Use camera capture when users need to create new visual evidence, scan a document, attach a receipt, capture damage, verify an object, or record a short video from a device camera.
Design the lifecycle from unsupported state through permission, device choice, preview, framing guidance, capture, frozen result, quality repair, retake, review, upload or attach, cancellation, and stream cleanup.
Implementation contract
What the implementation must handle
States
Unsupported browser or insecure-context state with upload or manual alternative.
Camera permission not requested, granted, denied, and revoked states.
Start capture state with purpose, target object, and privacy explanation.
Device selection or front/rear camera switch state when multiple cameras are available.
Interaction
The camera stream starts only after a deliberate user action and contextual permission rationale.
Users can see whether camera access is inactive, requesting, active, paused, denied, unsupported, or stopped.
The live preview names the selected camera and shows framing guidance that matches the task's quality requirement.
Capture freezes the result and moves to review; upload or submit does not happen from the shutter press alone unless the task is explicitly low-risk and reversible.
Accessibility
Provide file upload, manual entry, or assisted alternatives for users who cannot use a camera.
Label capture, retake, switch camera, stop, upload fallback, crop, rotate, cancel, and submit controls programmatically and visibly.
Do not rely on visual framing alone; provide text guidance and error feedback for blur, glare, missing subject, or wrong orientation.
Keep keyboard focus inside modal or full-screen capture only when that surface owns a clear exit and return path.
Review
What explicit user action starts the camera, and what purpose text appears before permission?
What can users do when camera permission is denied, the camera is already in use, or the browser does not support capture?
Does the preview show active camera state, selected camera, framing guide, and quality guidance?
Is the shutter action separate from final upload or submission, and can users retake or replace the capture?
Interactive lab
Inspect the states before you copy the pattern
Create and review new media from a live camera
Inspect unsupported, permission, live preview, switch camera, framing guide, low light, blur warning, capture, review, retake, crop, upload fallback, denied permission, upload pending, upload failed, saved, cancel cleanup, and sensitive capture states; compare auto start, no indicator, instant upload, no fallback, stream leak, wrong camera, no review, and stored after cancel failures.
Camera capture
Interactive demo is ready
Launch the live UI/UX lab when you want to inspect states, keyboard behavior, and common failure modes.
State To Inspect
Unsupported browser or insecure-context state with upload or manual alternative.
Supports upload fallback, accept filtering, selected files, and capture hints.
Full agent/debug reference
Problem Context
The task asks users to create new images or video for receipts, documents, identity evidence, damage reports, profile photos, QR-like visual data, support diagnostics, deposits, or field work.
Users may be on mobile, desktop webcam, tablet, kiosk, assistive technology, low light, poor network, denied permissions, unsupported browsers, shared devices, or privacy-sensitive locations.
The product may need still images, video snippets, facing-mode choice, resolution constraints, crop, rotation, blur or glare detection, metadata handling, upload progress, redaction, or retention notice.
Camera capture is often adjacent to file upload, permission request, sensitive-data reveal, full-screen takeover, drag-and-drop upload, and future QR or barcode scanning flows.
Selection Rules
Choose camera capture when the product must create new camera media and users need live preview, framing, capture, review, and retake behavior.
Use file upload when existing local files are acceptable and live camera access, active media stream, and shutter feedback are not the main interaction.
Use permission request for the standalone access rationale and timing; camera capture includes the permission ask only as one state inside the capture lifecycle.
Use sensitive-data reveal when captured content needs masking, timed reveal, redaction, or audit after acquisition.
Use full-screen takeover when the capture task needs an immersive temporary mode with its own navigation and exit contract.
Use drag-and-drop upload when users move existing files into a drop zone rather than create a new photo or video.
Prefer explicit user action before starting the stream; never activate the camera only because a page, route, carousel, or modal loaded.
Offer upload, manual entry, skip, or assisted alternatives before or immediately after permission denial.
Capture is not submission: freeze the frame, show what was captured, and require review for consequential workflows.
Stop tracks and clear unsaved previews on cancel, close, submit, route change, timeout, or permission revocation.
Required States
Unsupported browser or insecure-context state with upload or manual alternative.
Camera permission not requested, granted, denied, and revoked states.
Start capture state with purpose, target object, and privacy explanation.
Device selection or front/rear camera switch state when multiple cameras are available.
Live preview state with active camera indicator, framing guide, and stop control.
Captured still or recorded clip state with frozen preview.
Review state with retake, crop, rotate, replace, submit, and cancel controls.
Upload fallback, file fallback, manual entry, or skip state when camera fails or is denied.
Upload pending, upload failed, retry, saved, attached, or submitted state.
Cancel or dirty-exit state that explains whether captured media will be discarded.
Stream cleanup state after cancel, submit, permission loss, or navigation.
Sensitive capture state for IDs, faces, addresses, payment cards, private spaces, minors, or location-revealing images.
Interaction Contract
The camera stream starts only after a deliberate user action and contextual permission rationale.
Users can see whether camera access is inactive, requesting, active, paused, denied, unsupported, or stopped.
The live preview names the selected camera and shows framing guidance that matches the task's quality requirement.
Capture freezes the result and moves to review; upload or submit does not happen from the shutter press alone unless the task is explicitly low-risk and reversible.
Retake, replace with file, cancel, and submit controls are reachable by keyboard and touch.
Camera denial, unavailable device, unsatisfied constraints, upload failure, and network loss preserve the task and expose alternatives.
Closing, canceling, leaving the route, submitting, or losing permission stops the media tracks and removes unsaved sensitive previews.
Captured media metadata, storage, retention, and review boundaries are disclosed when the content is sensitive or externally submitted.
Implementation Checklist
Define capture purpose, target object, allowed media type, required resolution, facing mode, quality checks, fallback path, retention rule, and downstream validation before requesting camera access.
Use a secure context and request media only from an explicit capture action; handle permission denied, not found, not readable, overconstrained, and aborted states.
Show active-stream status, selected camera, switch-camera control, framing overlay, quality feedback, and stop or cancel control while preview is live.
Freeze the captured frame or clip for review and keep capture state separate from upload, submitted record, file fallback, and sensitive reveal state.
Provide retake, crop, rotate, replace, upload file, manual entry, submit, cancel, retry upload, and discard-review paths where relevant.
Stop all media tracks on cancel, close, successful submit, route change, component unmount, permission revocation, and timeout.
Avoid persisting raw images, EXIF, location metadata, faces, IDs, or private-space previews unless users understand the purpose and retention.
Test mobile front and rear cameras, desktop webcams, denied permission, no camera, camera in use, low light, high zoom, keyboard, screen reader, file fallback, slow upload, and privacy-sensitive cancellation.
Common Generated-UI Mistakes
Opening the camera automatically on page load or hover.
Treating the shutter button as final upload for consequential tasks.
Hiding the live preview, active camera state, stop control, or selected camera.
Blocking the workflow when camera permission is denied even though upload or manual entry would work.
Leaving the camera stream active after close, cancel, navigation, or submit.
Using camera capture when a normal file upload or text field would be simpler and less invasive.
Saving sensitive captured media or metadata after users cancel.
Showing quality errors only after final submission instead of during preview or review.
Critique Questions
What explicit user action starts the camera, and what purpose text appears before permission?
What can users do when camera permission is denied, the camera is already in use, or the browser does not support capture?
Does the preview show active camera state, selected camera, framing guide, and quality guidance?
Is the shutter action separate from final upload or submission, and can users retake or replace the capture?
When are media tracks stopped, and how is unsaved sensitive media cleared?
Which metadata, images, frames, or thumbnails are stored, for how long, and who can access them?
Is this really camera capture, or would file upload, permission request, full-screen takeover, or sensitive-data reveal own the main problem?
Accessibility
Provide file upload, manual entry, or assisted alternatives for users who cannot use a camera.
Label capture, retake, switch camera, stop, upload fallback, crop, rotate, cancel, and submit controls programmatically and visibly.
Do not rely on visual framing alone; provide text guidance and error feedback for blur, glare, missing subject, or wrong orientation.
Keep keyboard focus inside modal or full-screen capture only when that surface owns a clear exit and return path.
Announce permission, live preview, capture success, quality warnings, upload progress, failure, and saved state through text and status messaging.
Avoid motion-only shutter feedback and color-only quality indicators.
Respect zoom, screen readers, switch control, reduced motion, mobile orientation, and one-handed operation.
Make camera denial and unsupported states completeable without requiring users to change browser settings.