Update `ColorScheme` to show the newly added color roles (#2299)

This PR is to fix #2289 and add newly added `ColorScheme` roles since
https://github.com/flutter/flutter/pull/144273

---------

Co-authored-by: Parker Lougheed <parlough@gmail.com>
pull/2302/head
Qun Cheng 1 year ago committed by GitHub
parent 10776a097c
commit 649e0e4db9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -55,7 +55,8 @@ class ColorPalettesScreen extends StatelessWidget {
const TextSpan( const TextSpan(
text: 'To create color schemes based on a ' text: 'To create color schemes based on a '
'platform\'s implementation of dynamic color, ' 'platform\'s implementation of dynamic color, '
'use the '), 'use the ',
),
TextSpan( TextSpan(
text: 'dynamic_color', text: 'dynamic_color',
style: const TextStyle(decoration: TextDecoration.underline), style: const TextStyle(decoration: TextDecoration.underline),
@ -75,7 +76,8 @@ class ColorPalettesScreen extends StatelessWidget {
); );
return Expanded( return Expanded(
child: LayoutBuilder(builder: (context, constraints) { child: LayoutBuilder(
builder: (context, constraints) {
if (constraints.maxWidth < narrowScreenWidthThreshold) { if (constraints.maxWidth < narrowScreenWidthThreshold) {
return SingleChildScrollView( return SingleChildScrollView(
child: Column( child: Column(
@ -123,7 +125,8 @@ class ColorPalettesScreen extends StatelessWidget {
), ),
); );
} }
}), },
),
); );
} }
} }
@ -136,7 +139,7 @@ class ColorSchemeView extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Column( return Column(
children: [ children: <Widget>[
ColorGroup( ColorGroup(
children: [ children: [
ColorChip( ColorChip(
@ -162,6 +165,31 @@ class ColorSchemeView extends StatelessWidget {
], ],
), ),
divider, divider,
ColorGroup(
children: [
ColorChip(
label: 'primaryFixed',
color: colorScheme.primaryFixed,
onColor: colorScheme.onPrimaryFixed,
),
ColorChip(
label: 'onPrimaryFixed',
color: colorScheme.onPrimaryFixed,
onColor: colorScheme.primaryFixed,
),
ColorChip(
label: 'primaryFixedDim',
color: colorScheme.primaryFixedDim,
onColor: colorScheme.onPrimaryFixedVariant,
),
ColorChip(
label: 'onPrimaryFixedVariant',
color: colorScheme.onPrimaryFixedVariant,
onColor: colorScheme.primaryFixedDim,
),
],
),
divider,
ColorGroup( ColorGroup(
children: [ children: [
ColorChip( ColorChip(
@ -187,6 +215,31 @@ class ColorSchemeView extends StatelessWidget {
], ],
), ),
divider, divider,
ColorGroup(
children: [
ColorChip(
label: 'secondaryFixed',
color: colorScheme.secondaryFixed,
onColor: colorScheme.onSecondaryFixed,
),
ColorChip(
label: 'onSecondaryFixed',
color: colorScheme.onSecondaryFixed,
onColor: colorScheme.secondaryFixed,
),
ColorChip(
label: 'secondaryFixedDim',
color: colorScheme.secondaryFixedDim,
onColor: colorScheme.onSecondaryFixedVariant,
),
ColorChip(
label: 'onSecondaryFixedVariant',
color: colorScheme.onSecondaryFixedVariant,
onColor: colorScheme.secondaryFixedDim,
),
],
),
divider,
ColorGroup( ColorGroup(
children: [ children: [
ColorChip( ColorChip(
@ -212,6 +265,31 @@ class ColorSchemeView extends StatelessWidget {
], ],
), ),
divider, divider,
ColorGroup(
children: [
ColorChip(
label: 'tertiaryFixed',
color: colorScheme.tertiaryFixed,
onColor: colorScheme.onTertiaryFixed,
),
ColorChip(
label: 'onTertiaryFixed',
color: colorScheme.onTertiaryFixed,
onColor: colorScheme.tertiaryFixed,
),
ColorChip(
label: 'tertiaryFixedDim',
color: colorScheme.tertiaryFixedDim,
onColor: colorScheme.onTertiaryFixedVariant,
),
ColorChip(
label: 'onTertiaryFixedVariant',
color: colorScheme.onTertiaryFixedVariant,
onColor: colorScheme.tertiaryFixedDim,
),
],
),
divider,
ColorGroup( ColorGroup(
children: [ children: [
ColorChip( ColorChip(
@ -239,29 +317,55 @@ class ColorSchemeView extends StatelessWidget {
divider, divider,
ColorGroup( ColorGroup(
children: [ children: [
ColorChip(
label: 'surfaceDim',
color: colorScheme.surfaceDim,
onColor: colorScheme.onSurface,
),
ColorChip( ColorChip(
label: 'surface', label: 'surface',
color: colorScheme.surface, color: colorScheme.surface,
onColor: colorScheme.onSurface, onColor: colorScheme.onSurface,
), ),
ColorChip( ColorChip(
label: 'onSurface', label: 'surfaceBright',
color: colorScheme.onSurface, color: colorScheme.surfaceBright,
onColor: colorScheme.surface, onColor: colorScheme.onSurface,
), ),
ColorChip( ColorChip(
label: 'surfaceContainerHighest', label: 'surfaceContainerLowest',
color: colorScheme.surfaceContainerHighest, color: colorScheme.surfaceContainerLowest,
onColor: colorScheme.surfaceContainerHighest, onColor: colorScheme.onSurface,
),
ColorChip(
label: 'surfaceContainerLow',
color: colorScheme.surfaceContainerLow,
onColor: colorScheme.onSurface,
),
ColorChip(
label: 'surfaceContainer',
color: colorScheme.surfaceContainer,
onColor: colorScheme.onSurface,
),
ColorChip(
label: 'surfaceContainerHigh',
color: colorScheme.surfaceContainerHigh,
onColor: colorScheme.onSurface,
), ),
ColorChip( ColorChip(
label: 'surfaceContainerHighest', label: 'surfaceContainerHighest',
color: colorScheme.surfaceContainerHighest, color: colorScheme.surfaceContainerHighest,
onColor: colorScheme.surfaceContainerHighest, onColor: colorScheme.onSurface,
),
ColorChip(
label: 'onSurface',
color: colorScheme.onSurface,
onColor: colorScheme.surface,
), ),
ColorChip( ColorChip(
label: 'surfaceTint', label: 'onSurfaceVariant',
color: colorScheme.surfaceTint, color: colorScheme.onSurfaceVariant,
onColor: colorScheme.surfaceContainerHighest,
), ),
], ],
), ),
@ -271,16 +375,13 @@ class ColorSchemeView extends StatelessWidget {
ColorChip( ColorChip(
label: 'outline', label: 'outline',
color: colorScheme.outline, color: colorScheme.outline,
onColor: null,
), ),
ColorChip( ColorChip(
label: 'outlineVariant', label: 'shadow',
color: colorScheme.outlineVariant, color: colorScheme.shadow,
), onColor: null,
],
), ),
divider,
ColorGroup(
children: [
ColorChip( ColorChip(
label: 'inverseSurface', label: 'inverseSurface',
color: colorScheme.inverseSurface, color: colorScheme.inverseSurface,
@ -298,30 +399,6 @@ class ColorSchemeView extends StatelessWidget {
), ),
], ],
), ),
divider,
ColorGroup(
children: [
ColorChip(
label: 'background',
color: colorScheme.surface,
onColor: colorScheme.onSurface,
),
ColorChip(
label: 'onSurface',
color: colorScheme.onSurface,
onColor: colorScheme.surface,
),
ColorChip(
label: 'scrim',
color: colorScheme.scrim,
),
ColorChip(
label: 'shadow',
color: colorScheme.shadow,
),
],
),
divider,
], ],
); );
} }
@ -330,7 +407,7 @@ class ColorSchemeView extends StatelessWidget {
class ColorGroup extends StatelessWidget { class ColorGroup extends StatelessWidget {
const ColorGroup({super.key, required this.children}); const ColorGroup({super.key, required this.children});
final List<Widget> children; final List<ColorChip> children;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

@ -311,9 +311,8 @@ class _ColorSeedButton extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return PopupMenuButton( return PopupMenuButton(
icon: Icon( icon: const Icon(
Icons.palette_outlined, Icons.palette_outlined,
color: Theme.of(context).colorScheme.surfaceContainerHighest,
), ),
tooltip: 'Select a seed color', tooltip: 'Select a seed color',
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
@ -365,16 +364,14 @@ class _ColorImageButton extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return PopupMenuButton( return PopupMenuButton(
icon: Icon( icon: const Icon(
Icons.image_outlined, Icons.image_outlined,
color: Theme.of(context).colorScheme.surfaceContainerHighest,
), ),
tooltip: 'Select a color extraction image', tooltip: 'Select a color extraction image',
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
itemBuilder: (context) { itemBuilder: (context) {
return List.generate(ColorImageProvider.values.length, (index) { return List.generate(ColorImageProvider.values.length, (index) {
ColorImageProvider currentImageProvider = final currentImageProvider = ColorImageProvider.values[index];
ColorImageProvider.values[index];
return PopupMenuItem( return PopupMenuItem(
value: index, value: index,
@ -392,8 +389,7 @@ class _ColorImageButton extends StatelessWidget {
child: ClipRRect( child: ClipRRect(
borderRadius: BorderRadius.circular(8.0), borderRadius: BorderRadius.circular(8.0),
child: Image( child: Image(
image: NetworkImage( image: NetworkImage(currentImageProvider.url),
ColorImageProvider.values[index].url),
), ),
), ),
), ),

@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// ignore_for_file: avoid_types_on_closure_parameters
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:material_3_demo/color_palettes_screen.dart'; import 'package:material_3_demo/color_palettes_screen.dart';
@ -70,6 +69,6 @@ void main() {
)); ));
expect(find.text('Light ColorScheme'), findsOneWidget); expect(find.text('Light ColorScheme'), findsOneWidget);
expect(find.text('Dark ColorScheme'), findsOneWidget); expect(find.text('Dark ColorScheme'), findsOneWidget);
expect(find.byType(ColorGroup, skipOffstage: false), findsNWidgets(16)); expect(find.byType(ColorGroup, skipOffstage: false), findsNWidgets(18));
}); });
} }

Loading…
Cancel
Save