Files
GameTime/watch_app/lib/presentation/watch_theme.dart

72 lines
2.2 KiB
Dart

import 'package:flutter/material.dart';
ThemeData watchTheme() {
const background = Color(0xFF080A12);
const surface = Color(0xFF141824);
const text = Color(0xFFF5F1E8);
const muted = Color(0xFFA7ADBA);
const accent = Color(0xFFD72638);
final textTheme = Typography.whiteMountainView.copyWith(
labelSmall: const TextStyle(
fontSize: 10,
fontWeight: FontWeight.w800,
color: muted,
),
bodySmall: const TextStyle(fontSize: 11, color: muted, height: 1.15),
bodyMedium: const TextStyle(fontSize: 13, color: text, height: 1.15),
titleSmall: const TextStyle(
fontSize: 16,
fontWeight: FontWeight.w800,
color: text,
height: 1.05,
),
displayLarge: const TextStyle(
fontSize: 44,
fontWeight: FontWeight.w900,
color: text,
height: 0.95,
fontFeatures: [FontFeature.tabularFigures()],
),
);
return ThemeData(
useMaterial3: true,
brightness: Brightness.dark,
scaffoldBackgroundColor: background,
colorScheme: const ColorScheme.dark(
primary: accent,
onPrimary: Colors.white,
secondary: Color(0xFFC9A24A),
surface: surface,
onSurface: text,
onSurfaceVariant: muted,
error: Color(0xFFFF4D5E),
),
textTheme: textTheme,
filledButtonTheme: FilledButtonThemeData(
style: FilledButton.styleFrom(
minimumSize: const Size.fromHeight(38),
padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 10),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
textStyle: textTheme.labelLarge?.copyWith(
fontSize: 13,
fontWeight: FontWeight.w800,
),
),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
minimumSize: const Size.fromHeight(38),
padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 10),
side: const BorderSide(color: Color(0xFF303748)),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
textStyle: textTheme.labelLarge?.copyWith(
fontSize: 13,
fontWeight: FontWeight.w800,
),
),
),
);
}