Files
HouseHoldKeaper/lib/core/theme/app_theme.dart
Jean-Luc Makiola 51738f78bc feat(01-01): add core infrastructure, localization, and Wave 0 tests
- AppDatabase with schemaVersion 1, in-memory executor for testing
- Database provider with @Riverpod(keepAlive: true)
- AppTheme with sage green seed ColorScheme and warm surface overrides
- ThemeNotifier with SharedPreferences persistence, defaults to system
- Full German ARB localization (15 keys) with proper umlauts
- Minimal main.dart with ProviderScope placeholder
- Drift schema v1 captured via make-migrations
- All .g.dart files generated via build_runner
- Wave 0 tests: database (3), color scheme (6), theme (3), localization (2) -- 14 total, all passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 19:59:44 +01:00

46 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
class AppTheme {
AppTheme._();
static ThemeData lightTheme() {
final colorScheme = ColorScheme.fromSeed(
seedColor: const Color(0xFF7A9A6D),
brightness: Brightness.light,
dynamicSchemeVariant: DynamicSchemeVariant.tonalSpot,
).copyWith(
surface: const Color(0xFFF5F0E8),
surfaceContainerLowest: const Color(0xFFFAF7F2),
surfaceContainerLow: const Color(0xFFF2EDE4),
surfaceContainer: const Color(0xFFEDE7DC),
surfaceContainerHigh: const Color(0xFFE7E0D5),
surfaceContainerHighest: const Color(0xFFE0D9CE),
);
return ThemeData(
useMaterial3: true,
colorScheme: colorScheme,
);
}
static ThemeData darkTheme() {
final colorScheme = ColorScheme.fromSeed(
seedColor: const Color(0xFF7A9A6D),
brightness: Brightness.dark,
dynamicSchemeVariant: DynamicSchemeVariant.tonalSpot,
).copyWith(
surface: const Color(0xFF2A2520),
surfaceContainerLowest: const Color(0xFF1E1A16),
surfaceContainerLow: const Color(0xFF322D27),
surfaceContainer: const Color(0xFF3A342E),
surfaceContainerHigh: const Color(0xFF433D36),
surfaceContainerHighest: const Color(0xFF4D463F),
);
return ThemeData(
useMaterial3: true,
colorScheme: colorScheme,
);
}
}