🚀 LayerX
A powerful, lightweight, and flexible Flutter overlay & dialog management system
✨ Features
-
🔥 Global overlay control (no BuildContext required)
-
🧠 Modal stack management (auto back button handling)
-
⚡ Future-based API (await everything)
-
🧩 Fully customizable dialogs
-
📦 Built-in:
- Dialog / Confirm / Alert
- Input dialog
- BottomSheet / ActionSheet
- Toast / Notification
- Loading / Progress
-
🎯 Smooth animations & minimal boilerplate
📦 Installation
Add this to your pubspec.yaml:
dependencies:
layerx: ^1.0.0
⚡ Quick Start
1️⃣ Initialize
MaterialApp(
builder: LayerX.init(),
)
2️⃣ Use anywhere (NO context!)
LayerX.toast("Hello World");
await LayerX.show("Done");
final ok = await LayerX.confirm("Are you sure?");
🧩 Examples
✅ Dialog
await LayerX.show("Operation completed");
❓ Confirm
final result = await LayerX.confirm("Delete this item?");
✏️ Input
final text = await LayerX.input(
title: "Input",
hint: "Enter something",
);
🧱 Custom Dialog
final result = await LayerX.custom<String>(
Builder(
builder: (context) {
return Card(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text("Custom Dialog"),
ElevatedButton(
onPressed: () => LayerX.dismiss(context, "OK"),
child: const Text("Close"),
),
],
),
);
},
),
);
🍞 Toast
LayerX.toast("Hello");
LayerX.toast(
"From center",
fromBottom: false,
);
🍞 Simple Toast (legacy)
LayerX.toastSimple("Simple message");
🔔 Notification
LayerX.notification(
title: "Success",
message: "Saved successfully",
);
📥 Bottom Sheet
await LayerX.bottomSheet(
Container(height: 200, child: Center(child: Text("Sheet"))),
);
📋 Action Sheet
final index = await LayerX.actionSheet(
options: ["A", "B", "C"],
);
⏳ Loading
LayerX.loading();
// do something...
LayerX.dismissLoading();
🔄 Wrap with Loading
await LayerX.wrapLoading(() async {
await Future.delayed(Duration(seconds: 2));
});
📊 Progress
LayerX.progress(0.6);
LayerX.dismissProgress();
⚙️ Configuration
LayerX.config(
delay: Duration(milliseconds: 200),
minShow: Duration(milliseconds: 400),
);
🧠 Why LayerX?
Most dialog solutions in Flutter:
- ❌ Require
BuildContext - ❌ Hard to manage multiple overlays
- ❌ No unified API
LayerX solves all of them:
- ✅ Global control
- ✅ Stack-based modal system
- ✅ Clean & consistent API
- ✅ Works anywhere
🏗 Architecture
LayerX is built on top of:
Overlay- Global modal stack
- Animation wrappers
This enables:
- Precise control
- Better UX
- Cleaner code
📱 Example App
See /example folder for full demo.
🤝 Contributing
PRs are welcome! If you find a bug or have suggestions, feel free to open an issue.
📄 License
MIT License