91 lines
2.7 KiB
Dart
91 lines
2.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
/// Application theme and MaterialApp configuration.
|
|
class CaptionTransApp extends StatelessWidget {
|
|
const CaptionTransApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
title: 'Caption Trans',
|
|
debugShowCheckedModeBanner: false,
|
|
theme: _buildDarkTheme(),
|
|
home: const _AppShell(),
|
|
);
|
|
}
|
|
|
|
ThemeData _buildDarkTheme() {
|
|
final colorScheme = ColorScheme.fromSeed(
|
|
seedColor: const Color(0xFF6C63FF),
|
|
brightness: Brightness.dark,
|
|
surface: const Color(0xFF1A1A2E),
|
|
);
|
|
|
|
return ThemeData(
|
|
useMaterial3: true,
|
|
brightness: Brightness.dark,
|
|
colorScheme: colorScheme,
|
|
scaffoldBackgroundColor: const Color(0xFF0F0F1A),
|
|
cardTheme: CardThemeData(
|
|
color: const Color(0xFF1A1A2E),
|
|
elevation: 0,
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(16),
|
|
side: BorderSide(
|
|
color: Colors.white.withValues(alpha: 0.08),
|
|
),
|
|
),
|
|
),
|
|
elevatedButtonTheme: ElevatedButtonThemeData(
|
|
style: ElevatedButton.styleFrom(
|
|
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 14),
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
),
|
|
),
|
|
),
|
|
inputDecorationTheme: InputDecorationTheme(
|
|
filled: true,
|
|
fillColor: Colors.white.withValues(alpha: 0.05),
|
|
border: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
borderSide: BorderSide.none,
|
|
),
|
|
enabledBorder: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
borderSide: BorderSide(
|
|
color: Colors.white.withValues(alpha: 0.1),
|
|
),
|
|
),
|
|
focusedBorder: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
borderSide: BorderSide(color: colorScheme.primary),
|
|
),
|
|
),
|
|
dropdownMenuTheme: DropdownMenuThemeData(
|
|
inputDecorationTheme: InputDecorationTheme(
|
|
filled: true,
|
|
fillColor: Colors.white.withValues(alpha: 0.05),
|
|
border: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
borderSide: BorderSide.none,
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
/// App shell — wraps the home page (placeholder for now, actual import in main.dart).
|
|
class _AppShell extends StatelessWidget {
|
|
const _AppShell();
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
// This will be overridden by the actual home import in main.dart
|
|
return const Scaffold(
|
|
body: Center(child: CircularProgressIndicator()),
|
|
);
|
|
}
|
|
}
|