themes.dart 2.75 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4 5 6
// 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';

7 8
final ThemeData kLightGalleryTheme = _buildLightTheme();
final ThemeData kDarkGalleryTheme = _buildDarkTheme();
9 10 11

TextTheme _buildTextTheme(TextTheme base) {
  return base.copyWith(
12
    headline6: base.headline6.copyWith(
13 14 15 16 17 18
      fontFamily: 'GoogleSans',
    ),
  );
}

ThemeData _buildDarkTheme() {
19
  const Color primaryColor = Color(0xFF0175c2);
20 21 22 23
  const Color secondaryColor = Color(0xFF13B9FD);
  final ColorScheme colorScheme = const ColorScheme.dark().copyWith(
    primary: primaryColor,
    secondary: secondaryColor,
24
    onPrimary: secondaryColor,
25
  );
26 27 28
  final ThemeData base = ThemeData(
    brightness: Brightness.dark,
    accentColorBrightness: Brightness.dark,
29
    colorScheme: colorScheme,
30
    primaryColor: primaryColor,
31 32
    primaryColorDark: const Color(0xFF0050a0),
    primaryColorLight: secondaryColor,
33 34
    buttonColor: primaryColor,
    indicatorColor: Colors.white,
35
    toggleableActiveColor: const Color(0xFF6997DF),
36
    accentColor: secondaryColor,
37 38 39
    canvasColor: const Color(0xFF202124),
    scaffoldBackgroundColor: const Color(0xFF202124),
    backgroundColor: const Color(0xFF202124),
40
    errorColor: const Color(0xFFB00020),
41 42
    buttonTheme: ButtonThemeData(
      colorScheme: colorScheme,
43 44
      textTheme: ButtonTextTheme.primary,
    ),
45 46
  );
  return base.copyWith(
47 48 49 50 51 52 53
    textTheme: _buildTextTheme(base.textTheme),
    primaryTextTheme: _buildTextTheme(base.primaryTextTheme),
    accentTextTheme: _buildTextTheme(base.accentTextTheme),
  );
}

ThemeData _buildLightTheme() {
54
  const Color primaryColor = Color(0xFF0175c2);
55 56 57 58 59
  const Color secondaryColor = Color(0xFF13B9FD);
  final ColorScheme colorScheme = const ColorScheme.light().copyWith(
    primary: primaryColor,
    secondary: secondaryColor,
  );
60 61 62
  final ThemeData base = ThemeData(
    brightness: Brightness.light,
    accentColorBrightness: Brightness.dark,
63
    colorScheme: colorScheme,
64 65 66
    primaryColor: primaryColor,
    buttonColor: primaryColor,
    indicatorColor: Colors.white,
67
    toggleableActiveColor: const Color(0xFF1E88E5),
68 69
    splashColor: Colors.white24,
    splashFactory: InkRipple.splashFactory,
70
    accentColor: secondaryColor,
71 72 73
    canvasColor: Colors.white,
    scaffoldBackgroundColor: Colors.white,
    backgroundColor: Colors.white,
74
    errorColor: const Color(0xFFB00020),
75 76
    buttonTheme: ButtonThemeData(
      colorScheme: colorScheme,
77 78
      textTheme: ButtonTextTheme.primary,
    ),
79 80
  );
  return base.copyWith(
81 82 83 84 85
    textTheme: _buildTextTheme(base.textTheme),
    primaryTextTheme: _buildTextTheme(base.primaryTextTheme),
    accentTextTheme: _buildTextTheme(base.accentTextTheme),
  );
}