Files
dragon_ledger/lib/Services/theme_service.dart

48 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
/// Ein Service für die Verwaltung der App-Themes.
///
/// Diese Klasse stellt Methoden bereit,
/// um das helle und dunkle Theme der App zu definieren.
class ThemeService {
/// Die Hauptfarbe der App, die als Basis für das Farbschema verwendet wird.
/// Ein helles Blau mit dem Hex-Wert #50A7FA.
static const Color color = Color(0xFF50A7FA);
/// Erstellt und gibt das helle Theme der App zurück.
static ThemeData getLightTheme() => ThemeData(
brightness: Brightness.light,
colorScheme: ColorScheme.fromSeed(seedColor: color),
);
/// Erstellt und gibt das dunkle Theme der App zurück.
static ThemeData getDarkTheme() => ThemeData(
brightness: Brightness.dark,
colorScheme: ColorScheme.fromSeed(
seedColor: color,
brightness: Brightness.dark,
),
);
/// Gibt die "Erfolgreich"-Farbe des Farbschemas zurück
static Color getSuccessColor({required final Brightness brightness}) {
final hsl = HSLColor.fromColor(color);
const double greenHue = 120;
final double saturation = (hsl.saturation * 0.7).clamp(0.0, 1.0);
final double lightness = brightness == Brightness.dark
? (hsl.lightness * 0.4).clamp(0.0, 1.0)
: (hsl.lightness * 1.2).clamp(0.0, 1.0);
final successHsl = HSLColor.fromAHSL(
hsl.alpha,
greenHue,
saturation,
lightness,
);
return successHsl.toColor();
}
}