// 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'; import 'package:gallery/studies/crane/colors.dart'; final ThemeData craneTheme = _buildCraneTheme(); IconThemeData _customIconTheme(IconThemeData original, Color color) { return original.copyWith(color: color); } ThemeData _buildCraneTheme() { final ThemeData base = ThemeData.light(); return base.copyWith( colorScheme: ColorScheme.light().copyWith( primary: cranePurple800, secondary: craneRed700, ), accentColor: cranePurple700, primaryColor: cranePurple800, buttonColor: craneRed700, hintColor: craneWhite60, indicatorColor: cranePrimaryWhite, scaffoldBackgroundColor: cranePrimaryWhite, cardColor: cranePrimaryWhite, textSelectionColor: cranePurple700, errorColor: craneErrorOrange, highlightColor: Colors.transparent, buttonTheme: ButtonThemeData( textTheme: ButtonTextTheme.accent, ), textTheme: _buildCraneTextTheme(base.textTheme), primaryTextTheme: _buildCraneTextTheme(base.primaryTextTheme), accentTextTheme: _buildCraneTextTheme(base.accentTextTheme), iconTheme: _customIconTheme(base.iconTheme, craneWhite60), primaryIconTheme: _customIconTheme(base.iconTheme, cranePrimaryWhite), ); } TextTheme _buildCraneTextTheme(TextTheme base) { return GoogleFonts.ralewayTextTheme( base.copyWith( display4: base.display4.copyWith( fontWeight: FontWeight.w300, fontSize: 96, ), display3: base.display3.copyWith( fontWeight: FontWeight.w400, fontSize: 60, ), display2: base.display2.copyWith( fontWeight: FontWeight.w600, fontSize: 48, ), display1: base.display1.copyWith( fontWeight: FontWeight.w600, fontSize: 34, ), headline: base.headline.copyWith( fontWeight: FontWeight.w600, fontSize: 24, ), title: base.title.copyWith( fontWeight: FontWeight.w600, fontSize: 20, ), subhead: base.subhead.copyWith( fontWeight: FontWeight.w500, fontSize: 16, letterSpacing: 0.5, ), subtitle: base.subtitle.copyWith( fontWeight: FontWeight.w600, fontSize: 12, color: craneGrey, ), body2: base.body2.copyWith( fontWeight: FontWeight.w500, fontSize: 16, ), body1: base.body1.copyWith( fontWeight: FontWeight.w400, fontSize: 14, ), button: base.button.copyWith( fontWeight: FontWeight.w600, fontSize: 13, letterSpacing: 0.8, ), caption: base.caption.copyWith( fontWeight: FontWeight.w500, fontSize: 12, color: craneGrey, ), overline: base.overline.copyWith( fontWeight: FontWeight.w600, fontSize: 12, ), ), ); }