diff --git a/lib/ui/admin_dashboard.dart b/lib/ui/admin_dashboard.dart index 183d4e1..ff4a509 100644 --- a/lib/ui/admin_dashboard.dart +++ b/lib/ui/admin_dashboard.dart @@ -5,6 +5,7 @@ import '../function/admin_controller.dart'; import '../theme/app_palette.dart'; import 'app_notice.dart'; import 'login_screen.dart'; +import 'title_pill.dart'; // ========================================== // ๐Ÿ› ๏ธ 5. ๊ด€๋ฆฌ์ž ๋Œ€์‹œ๋ณด๋“œ (DB ์ดˆ๊ธฐํ™” ์•”ํ˜ธ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณด์ • ์™„๋ฃŒ) @@ -73,9 +74,13 @@ class _AdminDashboardState extends State { return Scaffold( backgroundColor: AppPalette.mist, appBar: AppBar( - title: const Text('๊ด€๋ฆฌ์ž ์‹œ์Šคํ…œ'), - backgroundColor: AppPalette.ink, - foregroundColor: AppPalette.paper, + backgroundColor: Colors.transparent, + foregroundColor: AppPalette.ink, + elevation: 0, + centerTitle: true, + title: const TitlePill( + child: Text('๊ด€๋ฆฌ์ž ์‹œ์Šคํ…œ', style: TextStyle(color: Colors.white)), + ), actions: [ IconButton( icon: const Icon(Icons.logout), diff --git a/lib/ui/dashboard_settings_page.dart b/lib/ui/dashboard_settings_page.dart index f81cd02..e1cf1c6 100644 --- a/lib/ui/dashboard_settings_page.dart +++ b/lib/ui/dashboard_settings_page.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import '../models/dashboard_tile_layout.dart'; import '../theme/app_palette.dart'; +import 'title_pill.dart'; class DashboardSettingsPage extends StatelessWidget { const DashboardSettingsPage({super.key}); @@ -12,10 +13,13 @@ class DashboardSettingsPage extends StatelessWidget { return Scaffold( backgroundColor: AppPalette.mist, appBar: AppBar( - title: const Text('์„ค์ •'), - backgroundColor: AppPalette.ink, - foregroundColor: AppPalette.paper, + backgroundColor: Colors.transparent, + foregroundColor: AppPalette.ink, elevation: 0, + centerTitle: true, + title: const TitlePill( + child: Text('์„ค์ •', style: TextStyle(color: Colors.white)), + ), ), body: ListView( padding: const EdgeInsets.all(16), diff --git a/lib/ui/device_checkout_ledger_page.dart b/lib/ui/device_checkout_ledger_page.dart index 47eaae2..bbef001 100644 --- a/lib/ui/device_checkout_ledger_page.dart +++ b/lib/ui/device_checkout_ledger_page.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import '../function/device_checkout_ledger_controller.dart'; import '../theme/app_palette.dart'; import 'app_notice.dart'; +import 'title_pill.dart'; class DeviceCheckoutLedgerPage extends StatefulWidget { final String? teacherId; @@ -89,13 +90,19 @@ class _DeviceCheckoutLedgerPageState extends State { return Scaffold( backgroundColor: AppPalette.mist, appBar: AppBar( - title: const Text( - '์Šค๋งˆํŠธ๊ธฐ๊ธฐ ๋ฐ˜์ถœ ๋Œ€์žฅ', - style: TextStyle(fontWeight: FontWeight.bold), - ), - backgroundColor: AppPalette.ink, - foregroundColor: Colors.white, + backgroundColor: Colors.transparent, + foregroundColor: AppPalette.ink, elevation: 0, + centerTitle: true, + title: const TitlePill( + child: Text( + '์Šค๋งˆํŠธ๊ธฐ๊ธฐ ๋ฐ˜์ถœ ๋Œ€์žฅ', + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), actions: [ IconButton( icon: const Icon(Icons.refresh_rounded), diff --git a/lib/ui/device_checkout_request_screen.dart b/lib/ui/device_checkout_request_screen.dart index c588b17..bc116a8 100644 --- a/lib/ui/device_checkout_request_screen.dart +++ b/lib/ui/device_checkout_request_screen.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import '../function/device_checkout_controller.dart'; import '../theme/app_palette.dart'; import 'app_notice.dart'; +import 'title_pill.dart'; class DeviceCheckoutRequestScreen extends StatefulWidget { final String studentId; @@ -82,13 +83,19 @@ class _DeviceCheckoutRequestScreenState return Scaffold( backgroundColor: AppPalette.mist, appBar: AppBar( - title: const Text( - '์Šค๋งˆํŠธ๊ธฐ๊ธฐ ๋ฐ˜์ถœ ์‹ ์ฒญ', - style: TextStyle(fontWeight: FontWeight.bold), - ), - backgroundColor: AppPalette.ink, - foregroundColor: Colors.white, + backgroundColor: Colors.transparent, + foregroundColor: AppPalette.ink, elevation: 0, + centerTitle: true, + title: const TitlePill( + child: Text( + '์Šค๋งˆํŠธ๊ธฐ๊ธฐ ๋ฐ˜์ถœ ์‹ ์ฒญ', + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), ), body: SingleChildScrollView( padding: const EdgeInsets.all(24.0), diff --git a/lib/ui/nfc_poccket_checkin_screen.dart b/lib/ui/nfc_poccket_checkin_screen.dart index c803b33..c3982e1 100644 --- a/lib/ui/nfc_poccket_checkin_screen.dart +++ b/lib/ui/nfc_poccket_checkin_screen.dart @@ -5,7 +5,9 @@ import 'dart:io' show Platform; import 'package:flutter/foundation.dart' show kIsWeb; import 'package:flutter/material.dart'; import '../function/nfc_pocket_checkin_controller.dart'; +import '../theme/app_palette.dart'; import 'app_notice.dart'; +import 'title_pill.dart'; class NfcPocketCheckInScreen extends StatefulWidget { final String studentId; // ๋กœ๊ทธ์ธ๋œ ํ•™์ƒ ํ•™๋ฒˆ (์˜ˆ: "2061") @@ -158,14 +160,19 @@ class _NfcPocketCheckInScreenState extends State { return Scaffold( appBar: AppBar( - title: const Text( - "์ž์Šต์‹ค NFC ์ถœ์„์ฒดํฌ", - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, + backgroundColor: Colors.transparent, + foregroundColor: AppPalette.ink, + elevation: 0, + centerTitle: true, + title: const TitlePill( + child: Text( + "์ž์Šต์‹ค NFC ์ถœ์„์ฒดํฌ", + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + ), ), ), - backgroundColor: const Color.fromARGB(255, 48, 48, 52), ), body: Center( child: Padding( diff --git a/lib/ui/nfc_tag_writer_screen.dart b/lib/ui/nfc_tag_writer_screen.dart index 02db293..5ae805f 100644 --- a/lib/ui/nfc_tag_writer_screen.dart +++ b/lib/ui/nfc_tag_writer_screen.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import '../function/nfc_tag_writer_controller.dart'; import '../theme/app_palette.dart'; import 'app_notice.dart'; +import 'title_pill.dart'; class NfcTagWriterScreen extends StatefulWidget { const NfcTagWriterScreen({super.key}); @@ -53,9 +54,16 @@ class _NfcTagWriterScreenState extends State { return Scaffold( backgroundColor: AppPalette.mist, appBar: AppBar( - title: const Text("NFC ์ฃผ๋จธ๋‹ˆ ํƒœ๊ทธ ์“ฐ๊ธฐ"), - backgroundColor: AppPalette.ink, - foregroundColor: AppPalette.paper, + backgroundColor: Colors.transparent, + foregroundColor: AppPalette.ink, + elevation: 0, + centerTitle: true, + title: const TitlePill( + child: Text( + "NFC ์ฃผ๋จธ๋‹ˆ ํƒœ๊ทธ ์“ฐ๊ธฐ", + style: TextStyle(color: Colors.white), + ), + ), ), body: Padding( padding: const EdgeInsets.all(24.0), diff --git a/lib/ui/teacher_register_screen.dart b/lib/ui/teacher_register_screen.dart index 87ee51f..3cb51e4 100644 --- a/lib/ui/teacher_register_screen.dart +++ b/lib/ui/teacher_register_screen.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import '../function/teacher_register_controller.dart'; import '../theme/app_palette.dart'; import 'app_notice.dart'; +import 'title_pill.dart'; class TeacherRegisterScreen extends StatefulWidget { const TeacherRegisterScreen({super.key}); @@ -61,9 +62,13 @@ class _TeacherRegisterScreenState extends State { return Scaffold( backgroundColor: AppPalette.mist, appBar: AppBar( - title: const Text('๊ต์‚ฌ ํšŒ์›๊ฐ€์ž…'), - backgroundColor: AppPalette.ink, - foregroundColor: AppPalette.paper, + backgroundColor: Colors.transparent, + foregroundColor: AppPalette.ink, + elevation: 0, + centerTitle: true, + title: const TitlePill( + child: Text('๊ต์‚ฌ ํšŒ์›๊ฐ€์ž…', style: TextStyle(color: Colors.white)), + ), ), body: SingleChildScrollView( padding: const EdgeInsets.all(24.0), diff --git a/lib/ui/teacher_student_management_page.dart b/lib/ui/teacher_student_management_page.dart index 0a2673d..462fe19 100644 --- a/lib/ui/teacher_student_management_page.dart +++ b/lib/ui/teacher_student_management_page.dart @@ -7,6 +7,7 @@ import '../function/excel_file_picker.dart'; import '../function/teacher_student_management_controller.dart'; import '../theme/app_palette.dart'; import 'app_notice.dart'; +import 'title_pill.dart'; // ๐Ÿ“ "์‹ค์‹œ๊ฐ„ ์ถœ์„ ํ™•์ธ" ๋ชฉ๋ก(teacher_attendance_page.dart)์˜ ํƒ€์ผ ๊ทœ๊ฒฉ๊ณผ ๋™์ผํ•˜๊ฒŒ ๋งž์ถ˜๋‹ค. const double kAttendanceTileWidth = 220; @@ -658,13 +659,19 @@ class _TeacherStudentManagementPageState return Scaffold( backgroundColor: AppPalette.mist, appBar: AppBar( - title: const Text( - 'ํ•™์ƒ ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„ผํ„ฐ', - style: TextStyle(fontWeight: FontWeight.bold), - ), - backgroundColor: AppPalette.ink, - foregroundColor: AppPalette.paper, + backgroundColor: Colors.transparent, + foregroundColor: AppPalette.ink, elevation: 0, + centerTitle: true, + title: const TitlePill( + child: Text( + 'ํ•™์ƒ ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„ผํ„ฐ', + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), ), body: SingleChildScrollView( padding: const EdgeInsets.all(24.0), diff --git a/lib/ui/title_pill.dart b/lib/ui/title_pill.dart new file mode 100644 index 0000000..a1ec1ff --- /dev/null +++ b/lib/ui/title_pill.dart @@ -0,0 +1,22 @@ +// ๐Ÿชถ ๊ฒ€์ • AppBar ๋Œ€์‹  ์“ฐ๋Š” ๋‘ฅ๊ทผ ์ œ๋ชฉ ์•Œ์•ฝ. ์‹ค์‹œ๊ฐ„ ์ถœ์„ ํ˜„ํ™ฉ ํ™”๋ฉด๊ณผ ํ†ค์„ ๋งž์ถ”๋˜, +// ํฌ๊ธฐ๋Š” ์ค„์ด์ง€ ์•Š๊ณ  ๊ฐ ํ™”๋ฉด์ด ์›๋ž˜ ์“ฐ๋˜ ํฐํŠธ ์Šคํƒ€์ผ์„ ๊ทธ๋Œ€๋กœ ๋„˜๊ฒจ๋ฐ›๋Š”๋‹ค. +import 'package:flutter/material.dart'; +import '../theme/app_palette.dart'; + +class TitlePill extends StatelessWidget { + final Widget child; + + const TitlePill({super.key, required this.child}); + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10), + decoration: BoxDecoration( + color: AppPalette.ink, + borderRadius: BorderRadius.circular(999), + ), + child: child, + ); + } +}