Feature: Login-Effekte pro Person (Akzentfarbe + Sound + Begruessung)

- UserEffekt: Baka = rot + Fanfare, Tinker = tuerkis + Chime, Standard-Ping
- MeloTheme: dynamische Akzentfarbe via ValueNotifier (Theme wechselt live)
- Ausloeser: App-Start (wenn Token vorhanden) + nach erfolgreichem Login
- Assets: 3 kurze WAV-Sounds (assets/sounds/)
- Web: /whoami-Endpoint (Caddy) + Willkommens-Banner auf baka-net.de
This commit is contained in:
Hermes (Server)
2026-07-31 15:34:04 +02:00
parent 9a880b0f21
commit 19e4aac62e
8 changed files with 113 additions and 14 deletions
+12 -6
View File
@@ -9,12 +9,18 @@ class MeloTheme {
static const Color textPrimaer = Color(0xFFFFFFFF);
static const Color textSekundaer = Color(0xFF888888);
/// Akzentfarbe wechselt pro angemeldeter Person (Login-Effekt).
/// UI hängt per ValueListenableBuilder an [akzentNotifier].
static final ValueNotifier<Color> akzentNotifier = ValueNotifier<Color>(rot);
static Color get akzent => akzentNotifier.value;
static set akzent(Color farbe) => akzentNotifier.value = farbe;
static ThemeData get theme => ThemeData(
brightness: Brightness.dark,
scaffoldBackgroundColor: schwarz,
colorScheme: const ColorScheme.dark(
primary: rot,
secondary: rot,
colorScheme: ColorScheme.dark(
primary: akzent,
secondary: akzent,
surface: schwarz,
),
appBarTheme: const AppBarTheme(
@@ -22,9 +28,9 @@ class MeloTheme {
foregroundColor: textPrimaer,
elevation: 0,
),
bottomNavigationBarTheme: const BottomNavigationBarThemeData(
bottomNavigationBarTheme: BottomNavigationBarThemeData(
backgroundColor: schwarz,
selectedItemColor: rot,
selectedItemColor: akzent,
unselectedItemColor: textSekundaer,
),
cardTheme: CardThemeData(
@@ -35,7 +41,7 @@ class MeloTheme {
),
chipTheme: ChipThemeData(
backgroundColor: dunkel1,
selectedColor: rot,
selectedColor: akzent,
labelStyle: const TextStyle(color: textPrimaer),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20),