prism_adaptive_dialog
Adaptive dialogs for Flutter — modal bottom sheets on phones, centered
dialogs on tablets and desktops, from a single call. The companion to
prism_adaptive_scaffold.
Pure Flutter — no platform channels, works on all six platforms.
Features
- ✅ One call → bottom sheet on compact, centered dialog on medium+
- ✅ Full override control per window class (
PresentationStyle) - ✅ Pre-styled actions:
cancel,primary,destructive - ✅ Optional
title, barrier dismissal, safe areas, max width - ✅ Material 3 by default; adapts to your
ThemeData - ✅ All six Flutter platforms: Android, iOS, macOS, Windows, Linux, Web
Installation
dependencies:
prism_adaptive_dialog: ^0.1.0
Usage
final confirmed = await PrismAdaptiveDialog.show<bool>(
context,
title: 'Delete item?',
builder: (context) => const Text('This cannot be undone.'),
actions: [
AdaptiveDialogAction.cancel(context),
AdaptiveDialogAction.destructive(
context,
label: 'Delete',
onPressed: () => Navigator.pop(context, true),
),
],
);
On a 400px-wide phone this opens as a bottom sheet; on a 1200px desktop it opens as a centered dialog. Same code, correct UX everywhere.
Force a specific presentation
PrismAdaptiveDialog.show(
context,
presentation: PresentationStyle.dialog, // always centered
// presentation: PresentationStyle.bottomSheet, // always a sheet
builder: (context) => const Text('Content'),
);
With prism_adaptive_scaffold
Breakpoints are shared, so dialogs inside PrismAdaptiveScaffold layouts
automatically pick the right presentation for the current window class.
License
MIT — see LICENSE.
Libraries
- prism_adaptive_dialog
- Adaptive dialogs for Flutter — bottom sheets on phones, centered dialogs on desktop, from a single call.