// Copyright 2014 The Flutter Authors. 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 Color _lightFillColor = Colors.black; static const Color _darkFillColor = Colors.white; static final Color _lightFocusColor = Colors.black.withOpacity(0.12); static final 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( backgroundColor: colorScheme.background, elevation: 0, iconTheme: IconThemeData(color: colorScheme.primary), ), iconTheme: IconThemeData(color: colorScheme.onPrimary), canvasColor: colorScheme.background, scaffoldBackgroundColor: colorScheme.background, highlightColor: Colors.transparent, focusColor: focusColor, snackBarTheme: SnackBarThemeData( behavior: SnackBarBehavior.floating, backgroundColor: Color.alphaBlend(_lightFillColor.withOpacity(0.80), _darkFillColor), contentTextStyle: _textTheme.titleMedium!.apply(color: _darkFillColor), ), ); } static const ColorScheme lightColorScheme = ColorScheme( primary: Color(0xFFB93C5D), primaryContainer: Color(0xFF117378), secondary: Color(0xFFEFF3F3), secondaryContainer: Color(0xFFFAFBFB), background: Color(0xFFE6EBEB), surface: Color(0xFFFAFBFB), onBackground: Colors.white, error: _lightFillColor, onError: _lightFillColor, onPrimary: _lightFillColor, onSecondary: Color(0xFF322942), onSurface: Color(0xFF241E30), brightness: Brightness.light, ); static const ColorScheme darkColorScheme = ColorScheme( primary: Color(0xFFFF8383), primaryContainer: Color(0xFF1CDEC9), secondary: Color(0xFF4D1F7C), secondaryContainer: Color(0xFF451B6F), background: Color(0xFF241E30), surface: Color(0xFF1F1929), onBackground: Color(0x0DFFFFFF), // White with 0.05 opacity error: _darkFillColor, onError: _darkFillColor, onPrimary: _darkFillColor, onSecondary: _darkFillColor, onSurface: _darkFillColor, brightness: Brightness.dark, ); static const FontWeight _regular = FontWeight.w400; static const FontWeight _medium = FontWeight.w500; static const FontWeight _semiBold = FontWeight.w600; static const FontWeight _bold = FontWeight.w700; static final TextTheme _textTheme = TextTheme( headlineMedium: GoogleFonts.montserrat(fontWeight: _bold, fontSize: 20.0), bodySmall: GoogleFonts.oswald(fontWeight: _semiBold, fontSize: 16.0), headlineSmall: GoogleFonts.oswald(fontWeight: _medium, fontSize: 16.0), titleMedium: GoogleFonts.montserrat(fontWeight: _medium, fontSize: 16.0), labelSmall: GoogleFonts.montserrat(fontWeight: _medium, fontSize: 12.0), bodyLarge: GoogleFonts.montserrat(fontWeight: _regular, fontSize: 14.0), titleSmall: GoogleFonts.montserrat(fontWeight: _medium, fontSize: 14.0), bodyMedium: GoogleFonts.montserrat(fontWeight: _regular, fontSize: 16.0), titleLarge: GoogleFonts.montserrat(fontWeight: _bold, fontSize: 16.0), labelLarge: GoogleFonts.montserrat(fontWeight: _semiBold, fontSize: 14.0), ); }