From 2f228e4591edfe98665ba9bb52568fcb223764a5 Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 22 Feb 2026 06:17:08 -0800 Subject: [PATCH] feat: integrate robot logo into web admin and Flutter app - Add logo.svg (green robot character) to project root - Web admin: replace text "IT" badge with SVG logo in sidebar - Web admin: add logo image to login, register, invite pages - Web admin: add SVG favicon and apple-touch-icon metadata - Flutter: add flutter_svg dependency, replace text "IT0" with logo on login page Co-Authored-By: Claude Opus 4.6 --- it0-web-admin/public/icons/favicon.svg | 33 ++++++++++++++++ it0-web-admin/public/icons/logo.svg | 39 +++++++++++++++++++ .../src/app/(auth)/invite/[token]/page.tsx | 1 + it0-web-admin/src/app/(auth)/login/page.tsx | 1 + .../src/app/(auth)/register/page.tsx | 1 + it0-web-admin/src/app/layout.tsx | 1 + .../components/layout/sidebar.tsx | 4 +- it0_app/assets/icons/logo.svg | 39 +++++++++++++++++++ .../auth/presentation/pages/login_page.dart | 8 ++-- it0_app/pubspec.yaml | 1 + logo.svg | 39 +++++++++++++++++++ 11 files changed, 161 insertions(+), 6 deletions(-) create mode 100644 it0-web-admin/public/icons/favicon.svg create mode 100644 it0-web-admin/public/icons/logo.svg create mode 100644 it0_app/assets/icons/logo.svg create mode 100644 logo.svg diff --git a/it0-web-admin/public/icons/favicon.svg b/it0-web-admin/public/icons/favicon.svg new file mode 100644 index 0000000..048481a --- /dev/null +++ b/it0-web-admin/public/icons/favicon.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/it0-web-admin/public/icons/logo.svg b/it0-web-admin/public/icons/logo.svg new file mode 100644 index 0000000..789bbca --- /dev/null +++ b/it0-web-admin/public/icons/logo.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AI AGENT + diff --git a/it0-web-admin/src/app/(auth)/invite/[token]/page.tsx b/it0-web-admin/src/app/(auth)/invite/[token]/page.tsx index 2d63971..b488ad3 100644 --- a/it0-web-admin/src/app/(auth)/invite/[token]/page.tsx +++ b/it0-web-admin/src/app/(auth)/invite/[token]/page.tsx @@ -111,6 +111,7 @@ export default function AcceptInvitePage() { return (
+ IT0

{t('appTitle')}

{t('inviteTitle')}

diff --git a/it0-web-admin/src/app/(auth)/login/page.tsx b/it0-web-admin/src/app/(auth)/login/page.tsx index 5d8b593..4fd939b 100644 --- a/it0-web-admin/src/app/(auth)/login/page.tsx +++ b/it0-web-admin/src/app/(auth)/login/page.tsx @@ -53,6 +53,7 @@ export default function LoginPage() { return (
+ IT0

{t('appTitle')}

{t('adminConsole')}

diff --git a/it0-web-admin/src/app/(auth)/register/page.tsx b/it0-web-admin/src/app/(auth)/register/page.tsx index f60e72c..7cdd995 100644 --- a/it0-web-admin/src/app/(auth)/register/page.tsx +++ b/it0-web-admin/src/app/(auth)/register/page.tsx @@ -71,6 +71,7 @@ export default function RegisterPage() { return (
+ IT0

{t('appTitle')}

{t('createAccount')}

diff --git a/it0-web-admin/src/app/layout.tsx b/it0-web-admin/src/app/layout.tsx index 3125ae3..4da3a80 100644 --- a/it0-web-admin/src/app/layout.tsx +++ b/it0-web-admin/src/app/layout.tsx @@ -8,6 +8,7 @@ const inter = Inter({ subsets: ['latin'] }); export const metadata: Metadata = { title: 'IT0 Admin Console', description: 'IT Operations Intelligent Agent - Administration Console', + icons: { icon: '/icons/favicon.svg', apple: '/icons/logo.svg' }, }; export default function RootLayout({ diff --git a/it0-web-admin/src/presentation/components/layout/sidebar.tsx b/it0-web-admin/src/presentation/components/layout/sidebar.tsx index 4dadf8e..8393650 100644 --- a/it0-web-admin/src/presentation/components/layout/sidebar.tsx +++ b/it0-web-admin/src/presentation/components/layout/sidebar.tsx @@ -167,9 +167,7 @@ export function Sidebar() { {/* Logo area */}
-
- IT -
+ IT0 {!collapsed && (

{t('appName')}

diff --git a/it0_app/assets/icons/logo.svg b/it0_app/assets/icons/logo.svg new file mode 100644 index 0000000..789bbca --- /dev/null +++ b/it0_app/assets/icons/logo.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AI AGENT + diff --git a/it0_app/lib/features/auth/presentation/pages/login_page.dart b/it0_app/lib/features/auth/presentation/pages/login_page.dart index d83eb78..999b8d5 100644 --- a/it0_app/lib/features/auth/presentation/pages/login_page.dart +++ b/it0_app/lib/features/auth/presentation/pages/login_page.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'package:go_router/go_router.dart'; import '../../../../core/theme/app_colors.dart'; import '../../data/providers/auth_provider.dart'; @@ -30,9 +31,10 @@ class _LoginPageState extends ConsumerState { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - const Text( - 'IT0', - style: TextStyle(fontSize: 48, fontWeight: FontWeight.bold), + SvgPicture.asset( + 'assets/icons/logo.svg', + width: 100, + height: 100, ), const SizedBox(height: 8), const Text( diff --git a/it0_app/pubspec.yaml b/it0_app/pubspec.yaml index e520791..7edeed9 100644 --- a/it0_app/pubspec.yaml +++ b/it0_app/pubspec.yaml @@ -34,6 +34,7 @@ dependencies: # UI fl_chart: ^0.67.0 flutter_markdown: ^0.7.0 + flutter_svg: ^2.0.10+1 # Push Notifications firebase_core: ^2.27.0 diff --git a/logo.svg b/logo.svg new file mode 100644 index 0000000..789bbca --- /dev/null +++ b/logo.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AI AGENT +