// Copyright 2019-present the Flutter authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:rally/colors.dart'; import 'package:rally/home.dart'; import 'package:rally/login.dart'; /// The RallyApp is a MaterialApp with a theme and 2 routes. /// /// The home route is the main page with tabs for sub pages. /// The login route is the initial route. class RallyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Rally', theme: _buildRallyTheme(), home: HomePage(), initialRoute: '/login', routes: {'/login': (context) => LoginPage()}, ); } ThemeData _buildRallyTheme() { final ThemeData base = ThemeData.dark(); return ThemeData( scaffoldBackgroundColor: RallyColors.primaryBackground, primaryColor: RallyColors.primaryBackground, textTheme: _buildRallyTextTheme(base.textTheme), inputDecorationTheme: InputDecorationTheme( labelStyle: TextStyle(color: RallyColors.gray, fontWeight: FontWeight.w500), filled: true, fillColor: RallyColors.inputBackground, focusedBorder: InputBorder.none, ), ); } TextTheme _buildRallyTextTheme(TextTheme base) { return base .copyWith( body1: base.body1.copyWith( fontFamily: 'Roboto Condensed', fontSize: 14, fontWeight: FontWeight.w400, ), body2: base.body2.copyWith( fontFamily: 'Eczar', fontSize: 40, fontWeight: FontWeight.w400, letterSpacing: 1.4, ), button: base.button.copyWith( fontFamily: 'Roboto Condensed', fontWeight: FontWeight.w700, letterSpacing: 2.8, ), headline: base.body2.copyWith( fontFamily: 'Eczar', fontSize: 40, fontWeight: FontWeight.w600, letterSpacing: 1.4, ), ) .apply( displayColor: Colors.white, bodyColor: Colors.white, ); } }