Skip to content

Commit

Permalink
fix: [MDS-510] Fix theme switching color being out of sync in widgets…
Browse files Browse the repository at this point in the history
… - Part 1 (#178)
  • Loading branch information
Kypsis committed May 26, 2023
1 parent f21c258 commit 0e58cd1
Show file tree
Hide file tree
Showing 23 changed files with 828 additions and 792 deletions.
37 changes: 26 additions & 11 deletions example/lib/src/storybook/stories/accordion.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,6 @@ class AccordionStory extends Story {
],
);

final textColorsKnob = context.knobs.nullable.options(
label: "textColor",
description: "MoonColors variants for MoonAccordion text.",
enabled: false,
initial: 0,
// piccolo
options: colorOptions,
);

final textColor = colorTable(context)[textColorsKnob ?? 40];

final iconColorsKnob = context.knobs.nullable.options(
label: "iconColor",
description: "MoonColors variants for MoonAccordion trailing icon.",
Expand Down Expand Up @@ -103,6 +92,28 @@ class AccordionStory extends Story {

final dividerColor = colorTable(context)[dividerColorsKnob ?? 40];

final textColorsKnob = context.knobs.nullable.options(
label: "textColor",
description: "MoonColors variants for MoonAccordion text.",
enabled: false,
initial: 0,
// piccolo
options: colorOptions,
);

final textColor = colorTable(context)[textColorsKnob ?? 40];

final expandedTextColorsKnob = context.knobs.nullable.options(
label: "expandedTextColor",
description: "MoonColors variants for expanded MoonAccordion text.",
enabled: false,
initial: 0,
// piccolo
options: colorOptions,
);

final expandedTextColor = colorTable(context)[expandedTextColorsKnob ?? 40];

final borderRadiusKnob = context.knobs.nullable.sliderInt(
label: "borderRadius",
description: "Border radius for MoonAccordion.",
Expand Down Expand Up @@ -141,6 +152,7 @@ class AccordionStory extends Story {
groupIdentityValue: currentlyOpenAccordionItem,
accordionSize: accordionSizesKnob,
textColor: textColor,
expandedTextColor: expandedTextColor,
borderColor: borderColor,
trailingIconColor: iconColor,
expandedTrailingIconColor: expandedIconColor,
Expand Down Expand Up @@ -169,6 +181,7 @@ class AccordionStory extends Story {
initiallyExpanded: true,
accordionSize: accordionSizesKnob,
textColor: textColor,
expandedTextColor: expandedTextColor,
borderColor: borderColor,
trailingIconColor: iconColor,
expandedTrailingIconColor: expandedIconColor,
Expand Down Expand Up @@ -198,6 +211,7 @@ class AccordionStory extends Story {
initiallyExpanded: true,
hasContentOutside: true,
textColor: textColor,
expandedTextColor: expandedTextColor,
borderColor: borderColor,
trailingIconColor: iconColor,
expandedTrailingIconColor: expandedIconColor,
Expand All @@ -220,6 +234,7 @@ class AccordionStory extends Story {
accordionSize: accordionSizesKnob,
hasContentOutside: true,
textColor: textColor,
expandedTextColor: expandedTextColor,
borderColor: borderColor,
trailingIconColor: iconColor,
expandedTrailingIconColor: expandedIconColor,
Expand Down
17 changes: 16 additions & 1 deletion example/lib/src/storybook/stories/button.dart
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,17 @@ class ButtonStory extends Story {

final borderColor = colorTable(context)[borderColorsKnob ?? 40];

final textColorsKnob = context.knobs.nullable.options(
label: "textColor",
description: "MoonColors variants for MoonButton text.",
enabled: false,
initial: 0,
// piccolo
options: colorOptions,
);

final textColor = colorTable(context)[textColorsKnob ?? 40];

final borderRadiusKnob = context.knobs.nullable.sliderInt(
label: "borderRadius",
description: "Border radius for base MoonButton.",
Expand Down Expand Up @@ -144,6 +155,7 @@ class ButtonStory extends Story {
isFullWidth: setFullWidthKnob,
backgroundColor: backgroundColor,
borderColor: borderColor,
textColor: textColor,
showPulseEffect: showPulseEffectKnob,
showPulseEffectJiggle: showPulseEffectJiggleKnob,
leading: showLeadingKnob ? MoonIcon(resolvedIconVariant) : null,
Expand All @@ -160,6 +172,7 @@ class ButtonStory extends Story {
tooltipMessage: 'This is MoonTooltip',
buttonSize: buttonSizesKnob,
backgroundColor: backgroundColor,
iconColor: textColor,
borderColor: borderColor,
showPulseEffect: showPulseEffectKnob,
showPulseEffectJiggle: showPulseEffectJiggleKnob,
Expand Down Expand Up @@ -213,7 +226,8 @@ class ButtonStory extends Story {
padding: const EdgeInsets.symmetric(horizontal: 8),
showTooltip: showTooltipKnob,
tooltipMessage: 'This is MoonTooltip',
decoration: const ShapeDecorationWithPremultipliedAlpha(
showFocusEffect: false,
decoration: const ShapeDecoration(
image: DecorationImage(
image: AssetImage("assets/images/placeholder-640x359.png"),
fit: BoxFit.cover,
Expand Down Expand Up @@ -242,6 +256,7 @@ class ButtonStory extends Story {
padding: const EdgeInsets.symmetric(horizontal: 8),
showTooltip: showTooltipKnob,
tooltipMessage: 'This is MoonTooltip',
showFocusEffect: false,
decoration: ShapeDecorationWithPremultipliedAlpha(
shadows: const [
BoxShadow(
Expand Down
49 changes: 32 additions & 17 deletions example/lib/src/storybook/stories/chip.dart
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,6 @@ class ChipStory extends Story {
],
);

final textColorsKnob = context.knobs.nullable.options(
label: "textColor",
description: "MoonColors variants for MoonChip text.",
enabled: false,
initial: 0,
// piccolo
options: colorOptions,
);

final textColor = colorTable(context)[textColorsKnob ?? 40];

final activeColorsKnob = context.knobs.nullable.options(
label: "activeColor",
description: "MoonColors variants for active MoonChip.",
Expand All @@ -58,6 +47,17 @@ class ChipStory extends Story {

final backgroundColor = colorTable(context)[backgroundColorsKnob ?? 40];

final activeBackgroundColorsKnob = context.knobs.nullable.options(
label: "activeBackgroundColor",
description: "MoonColors variants for active MoonChip background.",
enabled: false,
initial: 0,
// piccolo
options: colorOptions,
);

final activeBackgroundColor = colorTable(context)[activeBackgroundColorsKnob ?? 40];

final borderColorsKnob = context.knobs.nullable.options(
label: "borderColor",
description: "MoonColors variants for MoonChip border.",
Expand All @@ -69,6 +69,17 @@ class ChipStory extends Story {

final borderColor = colorTable(context)[borderColorsKnob ?? 40];

final textColorsKnob = context.knobs.nullable.options(
label: "textColor",
description: "MoonColors variants for MoonChip text.",
enabled: false,
initial: 0,
// piccolo
options: colorOptions,
);

final textColor = colorTable(context)[textColorsKnob ?? 40];

final borderRadiusKnob = context.knobs.nullable.sliderInt(
label: "borderRadius",
description: "Border radius for MoonChip.",
Expand All @@ -79,9 +90,8 @@ class ChipStory extends Story {

final showBorderKnob = context.knobs.boolean(
label: "showBorder",
description: "Show border when isActive.",
description: "Show border when hovered, focused or isActive is true.",
);

final isActiveKnob = context.knobs.boolean(
label: "isActive",
description: "Whether MoonChip is active/selected.",
Expand Down Expand Up @@ -116,22 +126,26 @@ class ChipStory extends Story {
const SizedBox(height: 32),
MoonChip(
activeColor: activeColor,
textColor: textColor,
borderColor: borderColor,
backgroundColor: backgroundColor,
activeBackgroundColor: activeBackgroundColor,
textColor: textColor,
isActive: isActiveKnob,
borderRadius:
borderRadiusKnob != null ? BorderRadius.circular(borderRadiusKnob.toDouble()) : null,
showBorder: showBorderKnob,
chipSize: chipSizesKnob,
backgroundColor: backgroundColor,
leading: showLeadingKnob ? MoonIcon(resolvedIconVariant) : null,
label: showLabelKnob ? Text(customLabelTextKnob) : null,
trailing: showTrailingKnob ? MoonIcon(resolvedIconVariant) : null,
),
const SizedBox(height: 40),
const TextDivider(text: "Text MoonChip"),
const SizedBox(height: 32),
MoonTextChip(
MoonChip.text(
activeBackgroundColor: activeBackgroundColor,
borderColor: borderColor,
textColor: textColor,
isActive: isActiveKnob,
borderRadius:
borderRadiusKnob != null ? BorderRadius.circular(borderRadiusKnob.toDouble()) : null,
Expand All @@ -148,7 +162,8 @@ class ChipStory extends Story {
isActive: isActiveKnob,
activeColor: context.moonColors!.dodoria100,
backgroundColor: context.moonColors!.krillin100,
hoverEffectColor: context.moonColors!.chiChi10,
activeBackgroundColor: context.moonColors!.chiChi10,
textColor: context.moonTypography!.colors.controlPrimary,
borderWidth: 2,
showBorder: showBorderKnob,
chipSize: chipSizesKnob,
Expand Down
1 change: 1 addition & 0 deletions example/lib/src/storybook/stories/tooltip.dart
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ class TooltipStory extends Story {
borderRadius: BorderRadius.circular(20),
backgroundColor: context.moonColors!.hit,
leading: const MoonIcon(MoonIcons.frame_24),
textColor: context.moonTypography!.colors.controlPrimary,
label: const Text("MoonChip"),
),
const SizedBox(height: 64),
Expand Down
2 changes: 1 addition & 1 deletion lib/moon_design.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ export 'package:moon_design/src/theme/typography/text_styles.dart';
export 'package:moon_design/src/theme/typography/typography.dart';

export 'package:moon_design/src/utils/color_premul_lerp.dart';
export 'package:moon_design/src/utils/color_tween_premul.dart';
export 'package:moon_design/src/utils/extensions.dart';
export 'package:moon_design/src/utils/shape_decoration_premul.dart';
export 'package:moon_design/src/utils/squircle/clip_squircle_rect.dart';
Expand All @@ -52,7 +53,6 @@ export 'package:moon_design/src/widgets/buttons/outlined_button.dart';
export 'package:moon_design/src/widgets/buttons/text_button.dart';
export 'package:moon_design/src/widgets/checkbox/checkbox.dart';
export 'package:moon_design/src/widgets/chips/chip.dart';
export 'package:moon_design/src/widgets/chips/text_chip.dart';
export 'package:moon_design/src/widgets/common/animated_icon_theme.dart';
export 'package:moon_design/src/widgets/common/base_control.dart';
export 'package:moon_design/src/widgets/common/base_segmented_tab_bar.dart';
Expand Down
29 changes: 25 additions & 4 deletions lib/src/theme/accordion/accordion_item_colors.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

import 'package:moon_design/src/theme/colors.dart';
import 'package:moon_design/src/theme/typography/typography.dart';
import 'package:moon_design/src/utils/color_premul_lerp.dart';

@immutable
Expand All @@ -11,17 +12,21 @@ class MoonAccordionItemColors extends ThemeExtension<MoonAccordionItemColors> wi
expandedBackgroundColor: MoonColors.light.gohan,
borderColor: MoonColors.light.beerus,
dividerColor: MoonColors.light.beerus,
trailingIconColor: MoonColors.light.trunks,
expandedTrailingIconColor: MoonColors.light.bulma,
textColor: MoonTypography.light.colors.bodyPrimary,
expandedTextColor: MoonTypography.light.colors.bodyPrimary,
trailingIconColor: MoonTypography.light.colors.bodySecondary,
expandedTrailingIconColor: MoonTypography.light.colors.bodyPrimary,
);

static final dark = MoonAccordionItemColors(
backgroundColor: MoonColors.dark.gohan,
expandedBackgroundColor: MoonColors.dark.gohan,
borderColor: MoonColors.dark.beerus,
dividerColor: MoonColors.dark.beerus,
trailingIconColor: MoonColors.dark.trunks,
expandedTrailingIconColor: MoonColors.dark.bulma,
textColor: MoonTypography.dark.colors.bodyPrimary,
expandedTextColor: MoonTypography.dark.colors.bodyPrimary,
trailingIconColor: MoonTypography.dark.colors.bodySecondary,
expandedTrailingIconColor: MoonTypography.dark.colors.bodyPrimary,
);

/// Accordion item background color.
Expand All @@ -36,6 +41,12 @@ class MoonAccordionItemColors extends ThemeExtension<MoonAccordionItemColors> wi
/// Accordion item divider color.
final Color dividerColor;

/// Accordion item text color.
final Color textColor;

/// Accordion item expanded text color.
final Color expandedTextColor;

/// Accordion item trailing icon color.
final Color trailingIconColor;

Expand All @@ -47,6 +58,8 @@ class MoonAccordionItemColors extends ThemeExtension<MoonAccordionItemColors> wi
required this.expandedBackgroundColor,
required this.borderColor,
required this.dividerColor,
required this.textColor,
required this.expandedTextColor,
required this.trailingIconColor,
required this.expandedTrailingIconColor,
});
Expand All @@ -57,6 +70,8 @@ class MoonAccordionItemColors extends ThemeExtension<MoonAccordionItemColors> wi
Color? expandedBackgroundColor,
Color? borderColor,
Color? dividerColor,
Color? textColor,
Color? expandedTextColor,
Color? trailingIconColor,
Color? expandedTrailingIconColor,
}) {
Expand All @@ -65,6 +80,8 @@ class MoonAccordionItemColors extends ThemeExtension<MoonAccordionItemColors> wi
expandedBackgroundColor: expandedBackgroundColor ?? this.expandedBackgroundColor,
borderColor: borderColor ?? this.borderColor,
dividerColor: dividerColor ?? this.dividerColor,
textColor: textColor ?? this.textColor,
expandedTextColor: expandedTextColor ?? this.expandedTextColor,
trailingIconColor: trailingIconColor ?? this.trailingIconColor,
expandedTrailingIconColor: expandedTrailingIconColor ?? this.expandedTrailingIconColor,
);
Expand All @@ -79,6 +96,8 @@ class MoonAccordionItemColors extends ThemeExtension<MoonAccordionItemColors> wi
expandedBackgroundColor: colorPremulLerp(expandedBackgroundColor, other.expandedBackgroundColor, t)!,
borderColor: colorPremulLerp(borderColor, other.borderColor, t)!,
dividerColor: colorPremulLerp(dividerColor, other.dividerColor, t)!,
textColor: colorPremulLerp(textColor, other.textColor, t)!,
expandedTextColor: colorPremulLerp(expandedTextColor, other.expandedTextColor, t)!,
trailingIconColor: colorPremulLerp(trailingIconColor, other.trailingIconColor, t)!,
expandedTrailingIconColor: colorPremulLerp(expandedTrailingIconColor, other.expandedTrailingIconColor, t)!,
);
Expand All @@ -93,6 +112,8 @@ class MoonAccordionItemColors extends ThemeExtension<MoonAccordionItemColors> wi
..add(ColorProperty("expandedBackgroundColor", expandedBackgroundColor))
..add(ColorProperty("borderColor", borderColor))
..add(ColorProperty("dividerColor", dividerColor))
..add(ColorProperty("textColor", textColor))
..add(ColorProperty("expandedTextColor", expandedTextColor))
..add(ColorProperty("trailingIconColor", trailingIconColor))
..add(ColorProperty("expandedTrailingIconColor", expandedTrailingIconColor));
}
Expand Down
Loading

0 comments on commit 0e58cd1

Please sign in to comment.