From 6f09eeca0e0c7a63bfcc0b0ee4aa3f3e98a764df Mon Sep 17 00:00:00 2001 From: Hugo Pointcheval Date: Fri, 7 Apr 2023 17:14:22 +0200 Subject: [PATCH 1/4] feat(ui_kit): make skillcard header icon customizable --- .../lib/cards/skill_card/skill_cards.dart | 27 +++++++++- .../wyatt_ui_kit/example/macos/Podfile.lock | 4 +- .../cards/skill_card/skill_card.dart | 1 - .../cards/skill_card/skill_card.g.dart | 4 +- .../skill_card/widgets/skill_card_header.dart | 51 +++++-------------- 5 files changed, 43 insertions(+), 44 deletions(-) diff --git a/packages/wyatt_ui_kit/example/lib/cards/skill_card/skill_cards.dart b/packages/wyatt_ui_kit/example/lib/cards/skill_card/skill_cards.dart index cdae6bb3..d6118471 100644 --- a/packages/wyatt_ui_kit/example/lib/cards/skill_card/skill_cards.dart +++ b/packages/wyatt_ui_kit/example/lib/cards/skill_card/skill_cards.dart @@ -36,7 +36,18 @@ class SkillCards extends StatelessWidget { children: [ SkillCard( gradient: const [Colors.red, Colors.orange], - icon: Icons.ac_unit_sharp, + icon: Container( + padding: const EdgeInsets.all(15), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.white.withOpacity(0.04), + ), + child: const GradientIcon( + Icons.ac_unit_sharp, + gradient: + LinearGradient(colors: [Colors.red, Colors.orange]), + ), + ), title: 'Lorem Ipsum'.wrap(), description: 'Cupidatat reprehenderit aliqua eiusmod Lorem. ' 'Qui ipsum id ea ea nulla labore aute ullamco aute ' @@ -54,7 +65,19 @@ class SkillCards extends StatelessWidget { const Gap(20), SkillCard( gradient: const [Colors.blue, Colors.green], - icon: Icons.ac_unit_sharp, + icon: Container( + padding: const EdgeInsets.all(15), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.white.withOpacity(0.04), + ), + child: const GradientIcon( + Icons.ac_unit_sharp, + gradient: LinearGradient( + colors: [Colors.blue, Colors.green], + ), + ), + ), title: 'Lorem Ipsum'.wrap(), description: 'Cupidatat reprehenderit aliqua eiusmod Lorem. ' 'Qui ipsum id ea ea nulla labore aute ullamco aute ' diff --git a/packages/wyatt_ui_kit/example/macos/Podfile.lock b/packages/wyatt_ui_kit/example/macos/Podfile.lock index 9127443a..9af1d710 100644 --- a/packages/wyatt_ui_kit/example/macos/Podfile.lock +++ b/packages/wyatt_ui_kit/example/macos/Podfile.lock @@ -22,8 +22,8 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - path_provider_foundation: 37748e03f12783f9de2cb2c4eadfaa25fe6d4852 - shared_preferences_foundation: 297b3ebca31b34ec92be11acd7fb0ba932c822ca + path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9 + shared_preferences_foundation: 986fc17f3d3251412d18b0265f9c64113a8c2472 PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 diff --git a/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/skill_card.dart b/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/skill_card.dart index e24b58fd..bf8bd339 100644 --- a/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/skill_card.dart +++ b/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/skill_card.dart @@ -62,7 +62,6 @@ class SkillCard extends SkillCardComponent with $SkillCardCWMixin { secondaryBackgroundColors: secondaryBackgroundColors, icon: icon, title: title, - gradient: gradient, ), const Gap(25), if (description != null) ...[ diff --git a/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/skill_card.g.dart b/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/skill_card.g.dart index e66fe9e2..14c5fa28 100644 --- a/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/skill_card.g.dart +++ b/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/skill_card.g.dart @@ -10,7 +10,7 @@ class $SkillCardCWProxyImpl implements $SkillCardComponentCWProxy { const $SkillCardCWProxyImpl(this._value); final SkillCard _value; @override - SkillCard icon(IconData? icon) => this(icon: icon); + SkillCard icon(Widget? icon) => this(icon: icon); @override SkillCard gradient(List? gradient) => this(gradient: gradient); @override @@ -48,7 +48,7 @@ class $SkillCardCWProxyImpl implements $SkillCardComponentCWProxy { SkillCard key(Key? key) => this(key: key); @override SkillCard call({ - IconData? icon, + Widget? icon, List? gradient, TextWrapper? title, TextWrapper? description, diff --git a/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/widgets/skill_card_header.dart b/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/widgets/skill_card_header.dart index 73db1624..17339fad 100644 --- a/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/widgets/skill_card_header.dart +++ b/packages/wyatt_ui_kit/lib/src/components/cards/skill_card/widgets/skill_card_header.dart @@ -18,61 +18,38 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:wyatt_ui_components/wyatt_ui_components.dart'; import 'package:wyatt_ui_kit/src/components/cards/widgets/card_text.dart'; -import 'package:wyatt_ui_kit/src/components/gradients/gradient_icon.dart'; -import 'package:wyatt_ui_kit/src/domain/card_theme_extension.dart'; class SkillCardHeader extends StatelessWidget { const SkillCardHeader({ super.key, this.icon, this.title, - this.gradient, this.secondaryBackgroundColors, }); - final IconData? icon; + final Widget? icon; final TextWrapper? title; - final List? gradient; final Color? secondaryBackgroundColors; @override Widget build(BuildContext context) => Column( children: [ if (icon != null) ...[ - Container( - padding: const EdgeInsets.all(10), - decoration: BoxDecoration( - shape: BoxShape.circle, - color: secondaryBackgroundColors ?? - Theme.of(context) - .extension() - ?.secondaryBackgroundColor, - ), - child: gradient != null - ? GradientIcon( - icon, - size: 45, - gradient: LinearGradient(colors: gradient!), - ) - : Icon( - icon, - size: 45, - ), - ), + icon!, const Gap(25), - Column( - children: [ - if (title != null) ...[ - CardText( - title!, - textType: TextType.title, - style: title!.style, - gradientColors: title!.gradientColors, - ), - ], - ], - ) ], + Column( + children: [ + if (title != null) ...[ + CardText( + title!, + textType: TextType.title, + style: title!.style, + gradientColors: title!.gradientColors, + ), + ], + ], + ) ], ); } -- 2.47.2 From 30a7cc4894c998138a793dc286ad49f86e6f9900 Mon Sep 17 00:00:00 2001 From: Hugo Pointcheval Date: Fri, 7 Apr 2023 17:14:43 +0200 Subject: [PATCH 2/4] feat(ui_component): generate new skillcard component --- .../lib/src/domain/entities/cards/skill_card_component.dart | 2 +- .../lib/src/domain/entities/cards/skill_card_component.g.dart | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/wyatt_ui_components/lib/src/domain/entities/cards/skill_card_component.dart b/packages/wyatt_ui_components/lib/src/domain/entities/cards/skill_card_component.dart index db5dc73f..555c126e 100644 --- a/packages/wyatt_ui_components/lib/src/domain/entities/cards/skill_card_component.dart +++ b/packages/wyatt_ui_components/lib/src/domain/entities/cards/skill_card_component.dart @@ -43,7 +43,7 @@ abstract class SkillCardComponent extends CardComponent super.key, }); - final IconData? icon; + final Widget? icon; final List? gradient; final TextWrapper? title; final TextWrapper? description; diff --git a/packages/wyatt_ui_components/lib/src/domain/entities/cards/skill_card_component.g.dart b/packages/wyatt_ui_components/lib/src/domain/entities/cards/skill_card_component.g.dart index 86094931..0ccc0cb3 100644 --- a/packages/wyatt_ui_components/lib/src/domain/entities/cards/skill_card_component.g.dart +++ b/packages/wyatt_ui_components/lib/src/domain/entities/cards/skill_card_component.g.dart @@ -7,7 +7,7 @@ part of 'skill_card_component.dart'; // ************************************************************************** abstract class $SkillCardComponentCWProxy { - SkillCardComponent icon(IconData? icon); + SkillCardComponent icon(Widget? icon); SkillCardComponent gradient(List? gradient); SkillCardComponent title(TextWrapper? title); SkillCardComponent description(TextWrapper? description); @@ -25,7 +25,7 @@ abstract class $SkillCardComponentCWProxy { SkillCardComponent background(Widget? background); SkillCardComponent key(Key? key); SkillCardComponent call({ - IconData? icon, + Widget? icon, List? gradient, TextWrapper? title, TextWrapper? description, -- 2.47.2 From 8c06f98624751c9d4d4a4f9d6e301670718069f3 Mon Sep 17 00:00:00 2001 From: Hugo Pointcheval Date: Fri, 7 Apr 2023 17:26:35 +0200 Subject: [PATCH 3/4] feat(ui_kit): make top bar selector customizable --- .../bars/widgets/navigation_item.dart | 71 ++++++++++++++----- .../src/domain/top_bar_theme_extension.dart | 5 ++ 2 files changed, 58 insertions(+), 18 deletions(-) diff --git a/packages/wyatt_ui_kit/lib/src/components/bars/widgets/navigation_item.dart b/packages/wyatt_ui_kit/lib/src/components/bars/widgets/navigation_item.dart index 824a7781..8b608cb0 100644 --- a/packages/wyatt_ui_kit/lib/src/components/bars/widgets/navigation_item.dart +++ b/packages/wyatt_ui_kit/lib/src/components/bars/widgets/navigation_item.dart @@ -33,8 +33,28 @@ class NavigationItem extends StatelessWidget { children: [ if (selected) Container( - height: 5, - width: 70, + height: ThemeHelper.getThemeElement( + [ + context + .themeExtension() + ?.selectedIndicatorHeight, + // TODO: move default value + 5, + ], + valueValidator: (value) => value != null, + transform: (value) => value, + ), + width: ThemeHelper.getThemeElement( + [ + context + .themeExtension() + ?.selectedIndicatorWidth, + // TODO: move default value + 70, + ], + valueValidator: (value) => value != null, + transform: (value) => value, + ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(100), color: ThemeHelper.getThemeElement( @@ -49,22 +69,37 @@ class NavigationItem extends StatelessWidget { ), ), ), - SizedBox( - height: 50, - child: Center( - child: Text( - item.data, - style: ThemeHelper.getThemeElement( - [ - context.textTheme.titleMedium, - context - .themeExtension() - ?.subTitleStyle, - item.style, - ], - combine: (value, element) => value?.merge(element), - valueValidator: (value) => value != null, - transform: (value) => value, + ConstrainedBox( + constraints: BoxConstraints( + minWidth: ThemeHelper.getThemeElement( + [ + context + .themeExtension() + ?.selectedIndicatorWidth, + // TODO: move default value + 70, + ], + valueValidator: (value) => value != null, + transform: (value) => value, + ) ?? double.infinity, + ), + child: SizedBox( + height: 50, + child: Center( + child: Text( + item.data, + style: ThemeHelper.getThemeElement( + [ + context.textTheme.titleMedium, + context + .themeExtension() + ?.subTitleStyle, + item.style, + ], + combine: (value, element) => value?.merge(element), + valueValidator: (value) => value != null, + transform: (value) => value, + ), ), ), ), diff --git a/packages/wyatt_ui_kit/lib/src/domain/top_bar_theme_extension.dart b/packages/wyatt_ui_kit/lib/src/domain/top_bar_theme_extension.dart index 54965797..42a34410 100644 --- a/packages/wyatt_ui_kit/lib/src/domain/top_bar_theme_extension.dart +++ b/packages/wyatt_ui_kit/lib/src/domain/top_bar_theme_extension.dart @@ -25,6 +25,8 @@ abstract class TopBarThemeExtension this.secondaryColor, this.titleStyle, this.subTitleStyle, + this.selectedIndicatorHeight, + this.selectedIndicatorWidth, }); final MultiColor? backgroundColors; @@ -33,4 +35,7 @@ abstract class TopBarThemeExtension final TextStyle? titleStyle; final TextStyle? subTitleStyle; + + final double? selectedIndicatorHeight; + final double? selectedIndicatorWidth; } -- 2.47.2 From 3679efece1bfc9f278ac60d84e001901d6a9e1c3 Mon Sep 17 00:00:00 2001 From: Hugo Pointcheval Date: Tue, 11 Apr 2023 16:16:29 +0200 Subject: [PATCH 4/4] feat'ui_kit): increase top bar leading width --- .../lib/src/components/bars/top_navigation_bar.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wyatt_ui_kit/lib/src/components/bars/top_navigation_bar.dart b/packages/wyatt_ui_kit/lib/src/components/bars/top_navigation_bar.dart index e1a9b971..36cabf61 100644 --- a/packages/wyatt_ui_kit/lib/src/components/bars/top_navigation_bar.dart +++ b/packages/wyatt_ui_kit/lib/src/components/bars/top_navigation_bar.dart @@ -96,7 +96,7 @@ class TopNavigationBar extends TopNavigationBarComponent ), primary: primary ?? true, excludeHeaderSemantics: excludeHeaderSemantics ?? false, - leadingWidth: 200, + leadingWidth: 300, title: Row( mainAxisSize: MainAxisSize.min, children: navigationItems != null -- 2.47.2