mirror of
https://github.com/timokz/flutter-vienna-hackathon-25.git
synced 2025-11-08 22:44:21 +01:00
79 lines
2.5 KiB
Dart
79 lines
2.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
class GemeindeBauTheme {
|
|
static const _brand = Color(0xFFE20613);
|
|
static const _accent = Color(0xFF009640);
|
|
static const _radius = 14.0;
|
|
|
|
static ThemeData light() => _base(
|
|
ColorScheme.fromSeed(
|
|
seedColor: _brand,
|
|
brightness: Brightness.light,
|
|
).copyWith(
|
|
secondary: _accent,
|
|
),
|
|
);
|
|
|
|
static ThemeData _base(
|
|
ColorScheme scheme,
|
|
) {
|
|
return ThemeData(
|
|
useMaterial3: true,
|
|
colorScheme: scheme,
|
|
scaffoldBackgroundColor: scheme.surface,
|
|
appBarTheme: AppBarTheme(
|
|
backgroundColor: scheme.surface,
|
|
foregroundColor: scheme.onSurface,
|
|
elevation: 0.5,
|
|
// surfaceTintColor: Colors.transparent,
|
|
centerTitle: false,
|
|
),
|
|
bottomSheetTheme: BottomSheetThemeData(
|
|
backgroundColor: scheme.surface,
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius:
|
|
const BorderRadius.vertical(top: Radius.circular(_radius)),
|
|
),
|
|
),
|
|
floatingActionButtonTheme: FloatingActionButtonThemeData(
|
|
backgroundColor: scheme.primary,
|
|
foregroundColor: scheme.onPrimary,
|
|
elevation: 3,
|
|
shape: const StadiumBorder(),
|
|
),
|
|
inputDecorationTheme: InputDecorationTheme(
|
|
filled: true,
|
|
fillColor: scheme.surfaceContainerHighest,
|
|
border: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
borderSide: BorderSide(color: scheme.outlineVariant),
|
|
),
|
|
enabledBorder: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
borderSide: BorderSide(color: scheme.outlineVariant),
|
|
),
|
|
focusedBorder: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
borderSide: BorderSide(color: scheme.primary, width: 2),
|
|
),
|
|
contentPadding:
|
|
const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
|
|
),
|
|
listTileTheme: ListTileThemeData(
|
|
iconColor: scheme.onSurfaceVariant,
|
|
textColor: scheme.onSurface,
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
),
|
|
),
|
|
snackBarTheme: SnackBarThemeData(
|
|
backgroundColor: scheme.inverseSurface,
|
|
contentTextStyle: TextStyle(color: scheme.onInverseSurface),
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
),
|
|
),
|
|
dividerColor: scheme.outlineVariant,
|
|
);
|
|
}
|
|
}
|