mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

Fixes https://github.com/flutter/flutter/issues/143482 This brings in the gallery more or less as is: * Removed localizations * Ensure tests still run (locally verified, will switch CI later). * Removed deferred components * Fixup pubspec
103 lines
3.0 KiB
Dart
103 lines
3.0 KiB
Dart
// Copyright 2014 The Flutter 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/material.dart';
|
|
import 'package:google_fonts/google_fonts.dart';
|
|
|
|
import '../../layout/letter_spacing.dart';
|
|
import '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: const ColorScheme.light().copyWith(
|
|
primary: cranePurple800,
|
|
secondary: craneRed700,
|
|
error: craneErrorOrange,
|
|
),
|
|
hintColor: craneWhite60,
|
|
indicatorColor: cranePrimaryWhite,
|
|
scaffoldBackgroundColor: cranePrimaryWhite,
|
|
cardColor: cranePrimaryWhite,
|
|
highlightColor: Colors.transparent,
|
|
textTheme: _buildCraneTextTheme(base.textTheme),
|
|
textSelectionTheme: const TextSelectionThemeData(
|
|
selectionColor: cranePurple700,
|
|
),
|
|
primaryTextTheme: _buildCraneTextTheme(base.primaryTextTheme),
|
|
iconTheme: _customIconTheme(base.iconTheme, craneWhite60),
|
|
primaryIconTheme: _customIconTheme(base.iconTheme, cranePrimaryWhite),
|
|
);
|
|
}
|
|
|
|
TextTheme _buildCraneTextTheme(TextTheme base) {
|
|
return GoogleFonts.ralewayTextTheme(
|
|
base.copyWith(
|
|
displayLarge: base.displayLarge!.copyWith(
|
|
fontWeight: FontWeight.w300,
|
|
fontSize: 96,
|
|
),
|
|
displayMedium: base.displayMedium!.copyWith(
|
|
fontWeight: FontWeight.w400,
|
|
fontSize: 60,
|
|
),
|
|
displaySmall: base.displaySmall!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
fontSize: 48,
|
|
),
|
|
headlineMedium: base.headlineMedium!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
fontSize: 34,
|
|
),
|
|
headlineSmall: base.headlineSmall!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
fontSize: 24,
|
|
),
|
|
titleLarge: base.titleLarge!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
fontSize: 20,
|
|
),
|
|
titleMedium: base.titleMedium!.copyWith(
|
|
fontWeight: FontWeight.w500,
|
|
fontSize: 16,
|
|
letterSpacing: letterSpacingOrNone(0.5),
|
|
),
|
|
titleSmall: base.titleSmall!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
fontSize: 12,
|
|
color: craneGrey,
|
|
),
|
|
bodyLarge: base.bodyLarge!.copyWith(
|
|
fontWeight: FontWeight.w500,
|
|
fontSize: 16,
|
|
),
|
|
bodyMedium: base.bodyMedium!.copyWith(
|
|
fontWeight: FontWeight.w400,
|
|
fontSize: 14,
|
|
),
|
|
labelLarge: base.labelLarge!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
fontSize: 13,
|
|
letterSpacing: letterSpacingOrNone(0.8),
|
|
),
|
|
bodySmall: base.bodySmall!.copyWith(
|
|
fontWeight: FontWeight.w500,
|
|
fontSize: 12,
|
|
color: craneGrey,
|
|
),
|
|
labelSmall: base.labelSmall!.copyWith(
|
|
fontWeight: FontWeight.w600,
|
|
fontSize: 12,
|
|
),
|
|
),
|
|
);
|
|
}
|