60 lines
1.7 KiB
Dart
60 lines
1.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
abstract final class AppColors {
|
|
static const Color background = Color(0xFF070B14);
|
|
static const Color surface = Color(0xFF111827);
|
|
static const Color surfaceElevated = Color(0xFF1A2332);
|
|
static const Color accent = Color(0xFF22D3EE);
|
|
static const Color accentMuted = Color(0xFF0891B2);
|
|
static const Color textPrimary = Color(0xFFF8FAFC);
|
|
static const Color textSecondary = Color(0xFF94A3B8);
|
|
static const Color success = Color(0xFF34D399);
|
|
}
|
|
|
|
ThemeData buildAppTheme() {
|
|
const ColorScheme scheme = ColorScheme.dark(
|
|
primary: AppColors.accent,
|
|
onPrimary: AppColors.background,
|
|
secondary: AppColors.accentMuted,
|
|
surface: AppColors.surface,
|
|
onSurface: AppColors.textPrimary,
|
|
error: Color(0xFFF87171),
|
|
);
|
|
|
|
return ThemeData(
|
|
useMaterial3: true,
|
|
brightness: Brightness.dark,
|
|
colorScheme: scheme,
|
|
scaffoldBackgroundColor: AppColors.background,
|
|
textTheme: const TextTheme(
|
|
headlineLarge: TextStyle(
|
|
fontSize: 36,
|
|
fontWeight: FontWeight.w700,
|
|
height: 1.15,
|
|
letterSpacing: -0.5,
|
|
color: AppColors.textPrimary,
|
|
),
|
|
headlineMedium: TextStyle(
|
|
fontSize: 28,
|
|
fontWeight: FontWeight.w600,
|
|
color: AppColors.textPrimary,
|
|
),
|
|
titleLarge: TextStyle(
|
|
fontSize: 18,
|
|
fontWeight: FontWeight.w600,
|
|
color: AppColors.textPrimary,
|
|
),
|
|
bodyLarge: TextStyle(
|
|
fontSize: 16,
|
|
height: 1.5,
|
|
color: AppColors.textSecondary,
|
|
),
|
|
labelLarge: TextStyle(
|
|
fontSize: 16,
|
|
fontWeight: FontWeight.w600,
|
|
color: AppColors.background,
|
|
),
|
|
),
|
|
);
|
|
}
|