blob: de0846902bacb6ef0524f8b7091a9b9a4d0d4de6 [file] [log] [blame]
// 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),
);
}