| // Copyright 2019 The Flutter team. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:flutter/material.dart'; |
| import 'package:google_fonts/google_fonts.dart'; |
| |
| class GalleryThemeData { |
| static const _lightFillColor = Colors.black; |
| static const _darkFillColor = Colors.white; |
| |
| static Color _lightFocusColor = Colors.black.withOpacity(0.12); |
| static Color _darkFocusColor = Colors.white.withOpacity(0.12); |
| |
| static ThemeData lightThemeData = |
| themeData(lightColorScheme, _lightFocusColor); |
| static ThemeData darkThemeData = themeData(darkColorScheme, _darkFocusColor); |
| |
| static ThemeData themeData(ColorScheme colorScheme, Color focusColor) { |
| return ThemeData( |
| colorScheme: colorScheme, |
| textTheme: _textTheme, |
| appBarTheme: AppBarTheme( |
| textTheme: _textTheme.apply(bodyColor: colorScheme.onPrimary), |
| color: colorScheme.background, |
| elevation: 0, |
| iconTheme: IconThemeData(color: colorScheme.primary), |
| brightness: colorScheme.brightness, |
| ), |
| iconTheme: IconThemeData(color: colorScheme.onPrimary), |
| canvasColor: colorScheme.background, |
| scaffoldBackgroundColor: colorScheme.background, |
| highlightColor: Colors.transparent, |
| accentColor: colorScheme.primary, |
| focusColor: focusColor, |
| snackBarTheme: SnackBarThemeData( |
| behavior: SnackBarBehavior.floating, |
| backgroundColor: Color.alphaBlend( |
| _lightFillColor.withOpacity(0.80), |
| _darkFillColor, |
| ), |
| contentTextStyle: _textTheme.subhead.apply(color: _darkFillColor), |
| ), |
| ); |
| } |
| |
| static ColorScheme lightColorScheme = ColorScheme( |
| primary: const Color(0xFFB93C5D), |
| primaryVariant: const Color(0xFF117378), |
| secondary: const Color(0xFFEFF3F3), |
| secondaryVariant: const Color(0xFFFAFBFB), |
| background: const Color(0xFFE6EBEB), |
| surface: const Color(0xFFFAFBFB), |
| onBackground: Colors.white, |
| error: _lightFillColor, |
| onError: _lightFillColor, |
| onPrimary: _lightFillColor, |
| onSecondary: const Color(0xFF322942), |
| onSurface: const Color(0xFF241E30), |
| brightness: Brightness.light, |
| ); |
| |
| static ColorScheme darkColorScheme = ColorScheme( |
| primary: const Color(0xFFFF8383), |
| primaryVariant: const Color(0xFF1CDEC9), |
| secondary: const Color(0xFF4D1F7C), |
| secondaryVariant: const Color(0xFF451B6F), |
| background: const Color(0xFF241E30), |
| surface: const Color(0xFF1F1929), |
| onBackground: Colors.white.withOpacity(0.05), |
| error: _darkFillColor, |
| onError: _darkFillColor, |
| onPrimary: _darkFillColor, |
| onSecondary: _darkFillColor, |
| onSurface: _darkFillColor, |
| brightness: Brightness.dark, |
| ); |
| |
| static const _regular = FontWeight.w400; |
| static const _medium = FontWeight.w500; |
| static const _semiBold = FontWeight.w600; |
| static const _bold = FontWeight.w700; |
| |
| static TextTheme _textTheme = TextTheme( |
| display1: GoogleFonts.montserrat(fontWeight: _bold, fontSize: 20.0), |
| caption: GoogleFonts.oswald(fontWeight: _semiBold, fontSize: 16.0), |
| headline: GoogleFonts.oswald(fontWeight: _medium, fontSize: 16.0), |
| subhead: GoogleFonts.montserrat(fontWeight: _medium, fontSize: 16.0), |
| overline: GoogleFonts.montserrat(fontWeight: _medium, fontSize: 12.0), |
| body2: GoogleFonts.montserrat(fontWeight: _regular, fontSize: 14.0), |
| subtitle: GoogleFonts.montserrat(fontWeight: _medium, fontSize: 14.0), |
| body1: GoogleFonts.montserrat(fontWeight: _regular, fontSize: 16.0), |
| title: GoogleFonts.montserrat(fontWeight: _bold, fontSize: 16.0), |
| button: GoogleFonts.montserrat(fontWeight: _semiBold, fontSize: 14.0), |
| ); |
| } |