From 22c2d5edd8a4b78d4881a011d76ef655c2a66ed3 Mon Sep 17 00:00:00 2001 From: ospab Date: Thu, 9 Jul 2026 23:57:58 +0300 Subject: [PATCH] feat(flutter): update UI theme to monochrome with eagle watermark --- ostp-flutter/assets/logo.png | Bin 0 -> 13328 bytes ostp-flutter/lib/main.dart | 8 +++---- ostp-flutter/lib/ui/home_screen.dart | 34 +++++++-------------------- ostp-flutter/pubspec.yaml | 5 ++-- 4 files changed, 15 insertions(+), 32 deletions(-) create mode 100644 ostp-flutter/assets/logo.png diff --git a/ostp-flutter/assets/logo.png b/ostp-flutter/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..da83aebc97c4ac196c6e5b900982b7ef5e4f22da GIT binary patch literal 13328 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 literal 0 HcmV?d00001 diff --git a/ostp-flutter/lib/main.dart b/ostp-flutter/lib/main.dart index 81def1a..b03f271 100644 --- a/ostp-flutter/lib/main.dart +++ b/ostp-flutter/lib/main.dart @@ -26,11 +26,11 @@ class OstpApp extends StatelessWidget { debugShowCheckedModeBanner: false, theme: ThemeData( brightness: Brightness.dark, - scaffoldBackgroundColor: const Color(0xFF08080F), + scaffoldBackgroundColor: const Color(0xFF000000), colorScheme: const ColorScheme.dark( - primary: Color(0xFF6C72FF), - secondary: Color(0xFF22D3A5), - surface: Color(0xFF151522), + primary: Color(0xFFFFFFFF), + secondary: Color(0xFFAAAAAA), + surface: Color(0xFF111111), ), fontFamily: 'Inter', useMaterial3: true, diff --git a/ostp-flutter/lib/ui/home_screen.dart b/ostp-flutter/lib/ui/home_screen.dart index 31c5548..d552dbf 100644 --- a/ostp-flutter/lib/ui/home_screen.dart +++ b/ostp-flutter/lib/ui/home_screen.dart @@ -479,31 +479,15 @@ class _HomeScreenState extends State with TickerProviderStateMixin { return Scaffold( body: Stack( children: [ - Positioned( - top: -150, right: -100, - child: Container( - width: 400, height: 400, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: theme.colorScheme.primary.withOpacity(0.15), - ), - child: BackdropFilter( - filter: ImageFilter.blur(sigmaX: 100, sigmaY: 100), - child: Container(), - ), - ), - ), - Positioned( - bottom: -100, left: -100, - child: Container( - width: 350, height: 350, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: theme.colorScheme.secondary.withOpacity(0.1), - ), - child: BackdropFilter( - filter: ImageFilter.blur(sigmaX: 100, sigmaY: 100), - child: Container(), + Positioned.fill( + child: Opacity( + opacity: 0.03, + child: Center( + child: Image.asset( + 'assets/logo.png', + width: MediaQuery.of(context).size.shortestSide * 0.6, + color: Colors.white, + ), ), ), ), diff --git a/ostp-flutter/pubspec.yaml b/ostp-flutter/pubspec.yaml index 88185d8..0ca2aaf 100644 --- a/ostp-flutter/pubspec.yaml +++ b/ostp-flutter/pubspec.yaml @@ -72,9 +72,8 @@ flutter: uses-material-design: true # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg + assets: + - assets/logo.png # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/to/resolution-aware-images