Modal and alert styling matches platform conventions
Why it matters
iOS users expect modals to slide up as a sheet with a dismissible drag handle — a centered Material dialog on iOS feels foreign and users miss the close button. On Android, a slide-up sheet where a centered dialog is expected looks like a bug. Using Alert.alert() for simple confirmations inherits the correct system styling for free; building custom-styled replacements almost always gets the platform convention wrong.
Severity rationale
Low because modals still work, but the wrong presentation style undermines the native feel throughout the app.
Remediation
Set presentationStyle per platform on every Modal, and use the native Alert.alert() for any confirm/cancel dialog instead of a custom component:
import { Modal, Alert, Platform } from 'react-native';
<Modal visible={visible} presentationStyle={Platform.OS === 'ios' ? 'pageSheet' : 'overFullScreen'}>{/* content */}</Modal>
Alert.alert('Delete?', 'This cannot be undone.', [
{ text: 'Cancel', style: 'cancel' },
{ text: 'Delete', style: 'destructive' },
]);
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Mobile UX Patterns Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from mobile-ux-patterns·automated