60 lines
2.0 KiB
Dart
60 lines
2.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:google_fonts/google_fonts.dart';
|
|
|
|
class AppTheme {
|
|
// Cyberpunk Color Palette
|
|
static const Color neonBlue = Color(0xFF00F0FF);
|
|
static const Color neonPurple = Color(0xFFBC13FE);
|
|
static const Color neonGreen = Color(0xFF0AFF99);
|
|
static const Color darkBg = Color(0xFF050510);
|
|
static const Color darkSurface = Color(0xFF13132B);
|
|
static const Color textPrimary = Color(0xFFE0E0FF);
|
|
static const Color textSecondary = Color(0xFFA0A0C0);
|
|
|
|
static final ThemeData darkTheme = ThemeData(
|
|
useMaterial3: true,
|
|
brightness: Brightness.dark,
|
|
scaffoldBackgroundColor: darkBg,
|
|
|
|
// Typography
|
|
textTheme: GoogleFonts.outfitTextTheme(ThemeData.dark().textTheme).copyWith(
|
|
displayLarge: const TextStyle(color: textPrimary, fontWeight: FontWeight.bold),
|
|
displayMedium: const TextStyle(color: textPrimary, fontWeight: FontWeight.bold),
|
|
bodyLarge: const TextStyle(color: textPrimary),
|
|
bodyMedium: const TextStyle(color: textSecondary),
|
|
),
|
|
|
|
// Color Scheme
|
|
colorScheme: const ColorScheme.dark(
|
|
primary: neonBlue,
|
|
secondary: neonPurple,
|
|
surface: darkBg, // Use darkBg as surface or stick to darkSurface? Let's use darkBg here as background replacement
|
|
error: Color(0xFFFF2A6D),
|
|
onPrimary: Colors.black,
|
|
onSecondary: Colors.white,
|
|
onSurface: textPrimary,
|
|
),
|
|
|
|
// Component Themes
|
|
appBarTheme: const AppBarTheme(
|
|
backgroundColor: Colors.transparent,
|
|
elevation: 0,
|
|
centerTitle: true,
|
|
titleTextStyle: TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: textPrimary),
|
|
),
|
|
|
|
bottomNavigationBarTheme: const BottomNavigationBarThemeData(
|
|
backgroundColor: darkSurface,
|
|
selectedItemColor: neonBlue,
|
|
unselectedItemColor: textSecondary,
|
|
type: BottomNavigationBarType.fixed,
|
|
showSelectedLabels: true,
|
|
showUnselectedLabels: true,
|
|
),
|
|
|
|
iconTheme: const IconThemeData(
|
|
color: neonBlue,
|
|
),
|
|
);
|
|
}
|