Design System Problems

Permission Request UI

January 15, 2026 • 5 min read

Permission Request UI

Permission request UI encompasses the screens and messages that prepare users for system permission prompts and explain why applications need access to sensitive capabilities like camera, location, notifications, and contacts. iOS and Android handle permissions differently, requiring design systems to specify appropriate patterns for each platform.

What Is Permission Request UI

Permission request UI bridges user interaction and system permission dialogs. System permission prompts are standardized and cannot be customized. Pre-permission screens (priming screens) explain why the permission is needed before triggering the system prompt, increasing grant rates and user understanding.

iOS and Android have different permission systems. iOS shows permission prompts once per permission; if denied, users must grant through Settings. Android allows re-requesting with rationale for previously denied permissions. These differences affect how design systems approach permission UI.

Effective permission UI explains benefits, requests at contextually appropriate moments, and handles denial gracefully without blocking application functionality unnecessarily.

How Permission Request UI Works

Pre-permission screens explain the value of granting permission before the system prompt appears. Clear benefit statements help users understand what they gain by allowing access.

Permission UI Components:

Pre-Permission Screen:
- Clear benefit explanation
- Visual showing permission use
- Primary action to proceed
- Secondary action to skip/later
- No system prompt yet triggered

Contextual Trigger:
- Request when feature needs permission
- Not during onboarding unless essential
- Explain specific use case
- Show related feature context

System Prompt Timing:
- iOS: Triggers standard system dialog
- Android: Triggers runtime permission dialog
- Cannot customize system prompts
- One chance on iOS (re-prompt requires Settings)

Denial Handling:
- Don't break the app
- Explain limited functionality
- Provide path to Settings
- Allow feature without permission if possible

Permission Types:
- Camera: Photo/video capture
- Microphone: Audio recording
- Location: GPS and location services
- Notifications: Push notification delivery
- Contacts: Address book access
- Photos: Photo library access

Contextual timing requests permissions when users attempt related features. Requesting camera permission when users tap a camera button feels natural. Requesting all permissions during onboarding feels intrusive.

Denial handling maintains app functionality where possible. Features requiring permissions should degrade gracefully. Clear explanation of reduced functionality and paths to Settings help users who change their minds.

Settings deep linking helps users who want to grant previously denied permissions. Both iOS and Android allow linking to app settings where users can modify permission grants.

Key Considerations

Common Questions

When should permissions be requested?

Just-in-time requests when features need them work best. Users understand why permission is needed when it is directly relevant to what they are trying to do.

Onboarding requests should be limited to essential permissions. Notifications might be requested during onboarding if critical to app function. Camera can wait until users try to take photos.

Avoid requesting permissions before demonstrating value. Let users experience the app before asking for sensitive access.

Batch requests (asking for everything at once) reduce grant rates. Request permissions individually when relevant.

What makes effective pre-permission messaging?

Benefit-focused messaging explains what users gain. “Allow location to find restaurants near you” beats “We need your location.”

Specific use cases help users understand. Showing exactly how the permission enables a feature they want increases grants.

No pressure language respects user choice. “You can change this later in Settings” reduces anxiety about the decision.

Visual context showing the feature helps users connect permission to benefit.

How should denied permissions be handled?

Do not repeatedly prompt. iOS only allows one system prompt. Android should show rationale but not spam users.

Explain reduced functionality clearly. When users deny, show what they cannot do and why, without being punitive.

Provide Settings access. Clear paths to Settings help users who reconsider.

Maintain app value. Core functionality should work without optional permissions. Permission denial should not render the app useless.

Summary

Permission request UI prepares users for system permission prompts through benefit-focused pre-permission screens. Contextual timing requests permissions when relevant features are accessed. Denial handling maintains app functionality while providing paths to grant permissions later. iOS and Android permission systems differ, requiring platform-appropriate strategies in cross-platform design systems.

Buoy scans your codebase for design system inconsistencies before they ship

Detect Design Drift Free
← Back to Cross Platform Consistency