Build a Cyber Gesture OS in Flutter – Premium Hacker Style UI
Demo :
Click Video πππ
Features Section
• Full Gesture Navigation OS
• Floating Dock
• Swipe Menu
• Cyber Glass Blur UI
• One File Flutter Architecture
• Haptic Feedback
• Edge Back Gesture
• Premium Hacker Style Design
• Full Source Code Included
Code :
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() => runApp(NeoOS());
class NeoOS extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(debugShowCheckedModeBanner: false, home: Home());
}
}
class Home extends StatefulWidget {
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> {
bool menuOpen = false;
int page = 0;
void openMenu() {
HapticFeedback.mediumImpact();
setState(() => menuOpen = true);
}
void closeMenu() {
HapticFeedback.lightImpact();
setState(() => menuOpen = false);
}
void go(int p) {
setState(() {
page = p;
menuOpen = false;
});
}
Widget pageUI() {
if (page == 1) return pageScreen("SECURITY CENTER", Icons.security);
if (page == 2) return pageScreen("SETTINGS", Icons.settings);
return Center(
child: Text("NEO GESTURE OS",
style: TextStyle(color: Colors.cyanAccent, fontSize: 28, letterSpacing: 4)));
}
Widget pageScreen(String title, IconData icon) => Center(
child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [
Icon(icon, size: 80, color: Colors.cyanAccent),
SizedBox(height: 10),
Text(title, style: TextStyle(fontSize: 22))
]),
);
@override
Widget build(BuildContext context) {
return Scaffold(
body: GestureDetector(
onVerticalDragEnd: (d) {
if (d.primaryVelocity! < -200) openMenu();
if (d.primaryVelocity! > 200) closeMenu();
},
onHorizontalDragEnd: (d) {
if (d.primaryVelocity! > 200 && page != 0) setState(() => page = 0);
},
child: Stack(children: [
Container(
decoration: BoxDecoration(
gradient: LinearGradient(colors: [Colors.black, Colors.blueGrey.shade900]),
),
child: pageUI(),
),
// Floating Dock
Positioned(
bottom: 35,
left: 30,
right: 30,
child: Container(
padding: EdgeInsets.all(14),
decoration: BoxDecoration(
color: Colors.black.withOpacity(0.5),
borderRadius: BorderRadius.circular(40),
border: Border.all(color: Colors.cyanAccent),
boxShadow: [BoxShadow(color: Colors.cyanAccent, blurRadius: 20)],
),
child: Row(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
dockBtn(Icons.home, 0),
dockBtn(Icons.security, 1),
dockBtn(Icons.settings, 2),
]),
),
),
// Swipe Up Menu
AnimatedPositioned(
duration: Duration(milliseconds: 500),
curve: Curves.easeOutExpo,
bottom: menuOpen ? 0 : -350,
left: 0,
right: 0,
child: ClipRRect(
borderRadius: BorderRadius.vertical(top: Radius.circular(30)),
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
child: Container(
height: 350,
color: Colors.black.withOpacity(0.7),
child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [
menuTile("Security", 1),
menuTile("Settings", 2),
SizedBox(height: 10),
menuTile("Close", 0),
]),
),
),
),
),
]),
),
);
}
Widget dockBtn(IconData icon, int p) => GestureDetector(
onTap: () => go(p),
child: Icon(icon, color: Colors.cyanAccent, size: 28),
);
Widget menuTile(String text, int p) => GestureDetector(
onTap: () => go(p),
child: Container(
margin: EdgeInsets.symmetric(vertical: 10),
padding: EdgeInsets.all(15),
width: 200,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
border: Border.all(color: Colors.cyanAccent),
),
child: Center(child: Text(text)),
),
);
}
Comments
Post a Comment