| // Copyright 2016 The Chromium 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/foundation.dart'; |
| import 'package:flutter/material.dart'; |
| |
| class ShrineStyle extends TextStyle { |
| const ShrineStyle.roboto(double size, FontWeight weight, Color color) |
| : super(inherit: false, color: color, fontSize: size, fontWeight: weight, textBaseline: TextBaseline.alphabetic); |
| |
| const ShrineStyle.abrilFatface(double size, FontWeight weight, Color color) |
| : super(inherit: false, color: color, fontFamily: 'AbrilFatface', fontSize: size, fontWeight: weight, textBaseline: TextBaseline.alphabetic); |
| } |
| |
| TextStyle robotoRegular12(Color color) => new ShrineStyle.roboto(12.0, FontWeight.w500, color); |
| TextStyle robotoLight12(Color color) => new ShrineStyle.roboto(12.0, FontWeight.w300, color); |
| TextStyle robotoRegular14(Color color) => new ShrineStyle.roboto(14.0, FontWeight.w500, color); |
| TextStyle robotoMedium14(Color color) => new ShrineStyle.roboto(14.0, FontWeight.w600, color); |
| TextStyle robotoLight14(Color color) => new ShrineStyle.roboto(14.0, FontWeight.w300, color); |
| TextStyle robotoRegular16(Color color) => new ShrineStyle.roboto(16.0, FontWeight.w500, color); |
| TextStyle robotoRegular20(Color color) => new ShrineStyle.roboto(20.0, FontWeight.w500, color); |
| TextStyle abrilFatfaceRegular24(Color color) => new ShrineStyle.abrilFatface(24.0, FontWeight.w500, color); |
| TextStyle abrilFatfaceRegular34(Color color) => new ShrineStyle.abrilFatface(34.0, FontWeight.w500, color); |
| |
| /// The TextStyles and Colors used for titles, labels, and descriptions. This |
| /// InheritedWidget is shared by all of the routes and widgets created for |
| /// the Shrine app. |
| class ShrineTheme extends InheritedWidget { |
| ShrineTheme({ Key key, @required Widget child }) |
| : assert(child != null), |
| super(key: key, child: child); |
| |
| final Color cardBackgroundColor = Colors.white; |
| final Color appBarBackgroundColor = Colors.white; |
| final Color dividerColor = const Color(0xFFD9D9D9); |
| final Color priceHighlightColor = const Color(0xFFFFE0E0); |
| |
| final TextStyle appBarTitleStyle = robotoRegular20(Colors.black87); |
| final TextStyle vendorItemStyle = robotoRegular12(const Color(0xFF81959D)); |
| final TextStyle priceStyle = robotoRegular14(Colors.black87); |
| final TextStyle featureTitleStyle = abrilFatfaceRegular34(const Color(0xFF0A3142)); |
| final TextStyle featurePriceStyle = robotoRegular16(Colors.black87); |
| final TextStyle featureStyle = robotoLight14(Colors.black54); |
| final TextStyle orderTitleStyle = abrilFatfaceRegular24(Colors.black87); |
| final TextStyle orderStyle = robotoLight14(Colors.black54); |
| final TextStyle vendorTitleStyle = robotoMedium14(Colors.black87); |
| final TextStyle vendorStyle = robotoLight14(Colors.black54); |
| final TextStyle quantityMenuStyle = robotoLight14(Colors.black54); |
| |
| static ShrineTheme of(BuildContext context) => context.inheritFromWidgetOfExactType(ShrineTheme); |
| |
| @override |
| bool updateShouldNotify(ShrineTheme old) => false; |
| } |