Skip to content

Commit

Permalink
feat!: adapt to yaru compact sizes (#763)
Browse files Browse the repository at this point in the history
* feat!: adapt to yaru compact sizes

See #383

* fix option button

* fix popupbutton

* Update to yaru ^1.0.0

* chore: update goldens
  • Loading branch information
Feichtmeier committed Aug 15, 2023
1 parent 8675ed1 commit aeb809a
Show file tree
Hide file tree
Showing 231 changed files with 22 additions and 20 deletions.
2 changes: 1 addition & 1 deletion example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ dependencies:
provider: ^6.0.2
safe_change_notifier: ^0.3.1
ubuntu_service: ^0.2.4
yaru: ">=0.10.0 <1.0.0"
yaru: ^1.0.0
yaru_icons: ">=1.0.0 <3.0.0"
yaru_widgets:
path: ../
Expand Down
6 changes: 3 additions & 3 deletions lib/constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
const kYaruPagePadding = 20.0;

/// The default height of [YaruTitleBar].
const kYaruTitleBarHeight = 47.0;
const kYaruTitleBarHeight = 46.0;

/// The default border radius for Yaru-style banners.
const kYaruBannerRadius = 10.0;
Expand All @@ -18,7 +18,7 @@ const kYaruButtonRadius = 6.0;
const kYaruMasterDetailBreakpoint = 620.0;

/// The best height for any item inside a [YaruTitleBar]
const kYaruTitleBarItemHeight = 35.0;
const kYaruTitleBarItemHeight = 34.0;

/// The default icon size
const kYaruIconSize = 16.0;
const kYaruIconSize = 20.0;
5 changes: 3 additions & 2 deletions lib/src/widgets/yaru_choice_chip_bar.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:yaru_icons/yaru_icons.dart';
import 'package:yaru_widgets/constants.dart';

/// A list of [ChoiceChipBar]s wrapped either in a controllable [ListView] or [Wrap].
class YaruChoiceChipBar extends StatefulWidget {
Expand All @@ -13,8 +14,8 @@ class YaruChoiceChipBar extends StatefulWidget {
this.animationDuration = const Duration(milliseconds: 300),
this.navigationStep = 100.0,
this.animationCurve = Curves.bounceIn,
this.radius = 34.0,
this.chipHeight = 34.0,
this.radius = kYaruTitleBarItemHeight,
this.chipHeight = kYaruTitleBarItemHeight,
this.wrapScrollDirection = Axis.horizontal,
this.wrapAlignment = WrapAlignment.start,
this.wrapRunAlignment = WrapAlignment.start,
Expand Down
9 changes: 5 additions & 4 deletions lib/src/widgets/yaru_icon_button.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:yaru_widgets/constants.dart';

/// An [IconButton] with a default fixed size of 40x40.
class YaruIconButton extends StatelessWidget {
Expand All @@ -9,11 +10,11 @@ class YaruIconButton extends StatelessWidget {
this.constraints,
this.enableFeedback = true,
this.focusNode,
this.iconSize = 40.0,
this.iconSize = kYaruIconSize,
this.isSelected,
this.mouseCursor,
this.onPressed,
this.padding = const EdgeInsets.all(8.0),
this.padding,
this.selectedIcon,
this.splashRadius,
this.style,
Expand All @@ -32,7 +33,7 @@ class YaruIconButton extends StatelessWidget {
final bool? isSelected;
final MouseCursor? mouseCursor;
final VoidCallback? onPressed;
final EdgeInsetsGeometry padding;
final EdgeInsetsGeometry? padding;
final Widget? selectedIcon;
final double? splashRadius;
final ButtonStyle? style;
Expand Down Expand Up @@ -99,7 +100,7 @@ class YaruIconButton extends StatelessWidget {
isSelected: isSelected,
mouseCursor: mouseCursor,
onPressed: onPressed,
padding: padding,
padding: padding ?? EdgeInsets.zero,
selectedIcon: selectedIcon,
splashRadius: splashRadius,
style: defaultStyleOf(context).merge(style),
Expand Down
11 changes: 5 additions & 6 deletions lib/src/widgets/yaru_option_button.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:yaru_widgets/constants.dart';

/// An [OutlinedButton] with a default size of 40x40.
///
Expand Down Expand Up @@ -28,10 +29,7 @@ class YaruOptionButton extends OutlinedButton {
required Widget child,
}) : super(
style: _styleFrom(padding: EdgeInsets.zero).merge(style),
child: IconTheme.merge(
data: const IconThemeData(size: 24),
child: child,
),
child: child,
);

/// Creates a [YaruOptionButton] with a color disk.
Expand All @@ -53,8 +51,9 @@ class YaruOptionButton extends OutlinedButton {

static ButtonStyle _styleFrom({EdgeInsetsGeometry? padding}) {
return OutlinedButton.styleFrom(
minimumSize: const Size.square(40),
maximumSize: const Size.square(40),
minimumSize: const Size.square(kYaruTitleBarItemHeight),
maximumSize: const Size.square(kYaruTitleBarItemHeight),
fixedSize: const Size.square(kYaruTitleBarItemHeight),
padding: padding,
);
}
Expand Down
6 changes: 3 additions & 3 deletions lib/src/widgets/yaru_popup_menu_button.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:yaru_icons/yaru_icons.dart';
import 'package:yaru_widgets/constants.dart';

import 'yaru_check_button.dart';

Expand All @@ -18,7 +19,7 @@ class YaruPopupMenuButton<T> extends StatelessWidget {
this.padding = const EdgeInsets.symmetric(horizontal: 5),
this.childPadding = const EdgeInsets.symmetric(horizontal: 5),
this.enabled = true,
this.offset = const Offset(0, 40),
this.offset = const Offset(0, kYaruTitleBarItemHeight),
this.enableFeedback,
this.constraints,
this.elevation,
Expand Down Expand Up @@ -99,11 +100,10 @@ class YaruPopupMenuButton<T> extends StatelessWidget {
child: child,
),
SizedBox(
height: 40,
height: kYaruTitleBarItemHeight,
child: icon ??
const Icon(
YaruIcons.pan_down,
size: 20,
),
),
],
Expand Down
1 change: 1 addition & 0 deletions lib/src/widgets/yaru_title_bar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ class YaruTitleBar extends StatelessWidget implements PreferredSizeWidget {
.merge(titleBarTheme.titleTextStyle);

final defaultBorder = BorderSide(
strokeAlign: -1,
color: light
? Colors.black.withOpacity(highContrast ? 1 : 0.1)
: Colors.white.withOpacity(highContrast ? 1 : 0.06),
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ environment:
dependencies:
flutter:
sdk: flutter
yaru: ">=0.10.0 <1.0.0"
yaru: ^1.0.0
yaru_icons: ">=1.0.0 <3.0.0"
yaru_window: ^0.1.1

Expand Down
Binary file modified test/widgets/goldens/yaru_back_button-hovered-dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_back_button-hovered-light.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_back_button-normal-dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_back_button-normal-light.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_back_button-pressed-dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_back_button-pressed-light.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-clip-dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-clip-light.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-custom-dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-custom-light.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-default-dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-default-light.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-margin-clip-dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-margin-clip-light.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-margin-dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-margin-light.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-padding-clip-dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-padding-clip-light.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-padding-dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-padding-light.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_border_container-padding-margin-dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/widgets/goldens/yaru_check_button-checked-focused-light.png
Binary file modified test/widgets/goldens/yaru_check_button-checked-hovered-light.png
Binary file modified test/widgets/goldens/yaru_check_button-checked-light.png
Binary file modified test/widgets/goldens/yaru_check_button-checked-pressed-light.png
Binary file modified test/widgets/goldens/yaru_check_button-tristate-hovered-light.png
Binary file modified test/widgets/goldens/yaru_check_button-tristate-light.png
Binary file modified test/widgets/goldens/yaru_check_button-tristate-pressed-light.png
Binary file modified test/widgets/goldens/yaru_check_button-unchecked-light.png
Binary file modified test/widgets/goldens/yaru_check_button-unckecked-focused-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-checked-disabled-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-checked-focused-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-checked-hovered-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-checked-pressed-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-tristate-disabled-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-tristate-focused-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-tristate-hovered-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-tristate-pressed-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-unckecked-disabled-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-unckecked-focused-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-unckecked-hovered-light.png
Binary file modified test/widgets/goldens/yaru_checkbox-unckecked-pressed-light.png
Binary file modified test/widgets/goldens/yaru_checkbox_list_tile-checked-light.png
Binary file modified test/widgets/goldens/yaru_checkbox_list_tile-tristate-light.png
Binary file modified test/widgets/goldens/yaru_checkbox_list_tile-unchecked-light.png
Binary file modified test/widgets/goldens/yaru_close_button-hovered-dark.png
Binary file modified test/widgets/goldens/yaru_close_button-hovered-light.png
Binary file modified test/widgets/goldens/yaru_close_button-normal-dark.png
Binary file modified test/widgets/goldens/yaru_close_button-normal-light.png
Binary file modified test/widgets/goldens/yaru_close_button-pressed-dark.png
Binary file modified test/widgets/goldens/yaru_close_button-pressed-light.png
Binary file modified test/widgets/goldens/yaru_icon_button-disabled-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-disabled-light.png
Binary file modified test/widgets/goldens/yaru_icon_button-focused-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-focused-light.png
Binary file modified test/widgets/goldens/yaru_icon_button-hovered-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-hovered-light.png
Binary file modified test/widgets/goldens/yaru_icon_button-normal-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-normal-light.png
Binary file modified test/widgets/goldens/yaru_icon_button-pressed-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-pressed-light.png
Binary file modified test/widgets/goldens/yaru_icon_button-selected-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-selected-disabled-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-selected-focused-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-selected-focused-light.png
Binary file modified test/widgets/goldens/yaru_icon_button-selected-hovered-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-selected-hovered-light.png
Binary file modified test/widgets/goldens/yaru_icon_button-selected-light.png
Binary file modified test/widgets/goldens/yaru_icon_button-selected-pressed-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-selected-pressed-light.png
Binary file modified test/widgets/goldens/yaru_icon_button-unselected-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-unselected-focused-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-unselected-hovered-dark.png
Binary file modified test/widgets/goldens/yaru_icon_button-unselected-light.png
Binary file modified test/widgets/goldens/yaru_master_detail-page-landscape-dark.png
Binary file modified test/widgets/goldens/yaru_master_detail-page-landscape-light.png
Binary file modified test/widgets/goldens/yaru_master_detail-page-portrait-dark.png
Binary file modified test/widgets/goldens/yaru_master_detail-page-portrait-light.png
Binary file modified test/widgets/goldens/yaru_navigation_page-compact-dark.png
Binary file modified test/widgets/goldens/yaru_navigation_page-compact-light.png
Binary file modified test/widgets/goldens/yaru_navigation_page-labelled-dark.png
Binary file modified test/widgets/goldens/yaru_navigation_page-labelled-light.png
Binary file modified test/widgets/goldens/yaru_option_button-disabled-dark.png
Binary file modified test/widgets/goldens/yaru_option_button-disabled-light.png
Binary file modified test/widgets/goldens/yaru_option_button-focused-dark.png
Binary file modified test/widgets/goldens/yaru_option_button-focused-light.png
Binary file modified test/widgets/goldens/yaru_option_button-hovered-dark.png
Binary file modified test/widgets/goldens/yaru_option_button-hovered-light.png
Binary file modified test/widgets/goldens/yaru_option_button-normal-dark.png
Binary file modified test/widgets/goldens/yaru_option_button-normal-light.png
Binary file modified test/widgets/goldens/yaru_option_button-pressed-dark.png
Binary file modified test/widgets/goldens/yaru_option_button-pressed-light.png
Binary file modified test/widgets/goldens/yaru_popup_menu_button-disabled-dark.png
Binary file modified test/widgets/goldens/yaru_popup_menu_button-disabled-light.png
Binary file modified test/widgets/goldens/yaru_popup_menu_button-hovered-dark.png
Binary file modified test/widgets/goldens/yaru_popup_menu_button-hovered-light.png
Binary file modified test/widgets/goldens/yaru_popup_menu_button-normal-dark.png
Binary file modified test/widgets/goldens/yaru_popup_menu_button-normal-light.png
Binary file modified test/widgets/goldens/yaru_popup_menu_item-checked-light.png
Binary file modified test/widgets/goldens/yaru_popup_menu_item-unchecked-light.png
Binary file modified test/widgets/goldens/yaru_radio-checked-disabled-light.png
Binary file modified test/widgets/goldens/yaru_radio-checked-focused-light.png
Binary file modified test/widgets/goldens/yaru_radio-checked-hovered-light.png
Binary file modified test/widgets/goldens/yaru_radio-checked-pressed-light.png
Binary file modified test/widgets/goldens/yaru_radio-unckecked-disabled-light.png
Binary file modified test/widgets/goldens/yaru_radio-unckecked-focused-light.png
Binary file modified test/widgets/goldens/yaru_radio-unckecked-hovered-light.png
Binary file modified test/widgets/goldens/yaru_radio-unckecked-pressed-light.png
Binary file modified test/widgets/goldens/yaru_radio_button-checked-focused-light.png
Binary file modified test/widgets/goldens/yaru_radio_button-checked-hovered-light.png
Binary file modified test/widgets/goldens/yaru_radio_button-checked-light.png
Binary file modified test/widgets/goldens/yaru_radio_button-checked-pressed-light.png
Binary file modified test/widgets/goldens/yaru_radio_button-unchecked-light.png
Binary file modified test/widgets/goldens/yaru_radio_list_tile-checked-light.png
Binary file modified test/widgets/goldens/yaru_radio_list_tile-checked-pressed-light.png
Binary file modified test/widgets/goldens/yaru_radio_list_tile-unchecked-light.png
Binary file modified test/widgets/goldens/yaru_switch-checked-disabled-light.png
Binary file modified test/widgets/goldens/yaru_switch-checked-focused-light.png
Binary file modified test/widgets/goldens/yaru_switch-checked-hovered-light.png
Binary file modified test/widgets/goldens/yaru_switch-checked-pressed-light.png
Binary file modified test/widgets/goldens/yaru_switch-unchecked-light.png
Binary file modified test/widgets/goldens/yaru_switch-unckecked-disabled-light.png
Binary file modified test/widgets/goldens/yaru_switch-unckecked-focused-light.png
Binary file modified test/widgets/goldens/yaru_switch-unckecked-hovered-light.png
Binary file modified test/widgets/goldens/yaru_switch-unckecked-pressed-light.png
Binary file modified test/widgets/goldens/yaru_switch_button-off-disabled-light.png
Binary file modified test/widgets/goldens/yaru_switch_button-off-focused-light.png
Binary file modified test/widgets/goldens/yaru_switch_button-off-hovered-light.png
Binary file modified test/widgets/goldens/yaru_switch_button-off-light.png
Binary file modified test/widgets/goldens/yaru_switch_button-off-pressed-light.png
Binary file modified test/widgets/goldens/yaru_switch_button-on-disabled-light.png
Binary file modified test/widgets/goldens/yaru_switch_button-on-focused-light.png
Binary file modified test/widgets/goldens/yaru_switch_button-on-hovered-light.png
Binary file modified test/widgets/goldens/yaru_switch_button-on-light.png
Binary file modified test/widgets/goldens/yaru_switch_button-on-pressed-light.png
Binary file modified test/widgets/goldens/yaru_switch_list_tile-off-disabled-light.png
Binary file modified test/widgets/goldens/yaru_switch_list_tile-off-focused-light.png
Binary file modified test/widgets/goldens/yaru_switch_list_tile-off-hovered-light.png
Binary file modified test/widgets/goldens/yaru_switch_list_tile-off-light.png
Binary file modified test/widgets/goldens/yaru_switch_list_tile-off-pressed-light.png
Binary file modified test/widgets/goldens/yaru_switch_list_tile-on-disabled-light.png
Binary file modified test/widgets/goldens/yaru_switch_list_tile-on-focused-light.png
Binary file modified test/widgets/goldens/yaru_switch_list_tile-on-hovered-light.png
Binary file modified test/widgets/goldens/yaru_switch_list_tile-on-light.png
Binary file modified test/widgets/goldens/yaru_switch_list_tile-on-pressed-light.png
Binary file modified test/widgets/goldens/yaru_title_bar-closable-dark.png
Binary file modified test/widgets/goldens/yaru_title_bar-closable-light.png
Binary file modified test/widgets/goldens/yaru_title_bar-dialog-dark.png
Binary file modified test/widgets/goldens/yaru_title_bar-dialog-light.png
Binary file modified test/widgets/goldens/yaru_title_bar-dialog-red-dark.png
Binary file modified test/widgets/goldens/yaru_title_bar-dialog-red-light.png
Binary file modified test/widgets/goldens/yaru_title_bar-empty-dark.png
Binary file modified test/widgets/goldens/yaru_title_bar-empty-light.png
Binary file modified test/widgets/goldens/yaru_title_bar-inactive-dark.png
Binary file modified test/widgets/goldens/yaru_title_bar-inactive-light.png
Binary file modified test/widgets/goldens/yaru_title_bar-maximizable-dark.png
Binary file modified test/widgets/goldens/yaru_title_bar-maximizable-light.png
Binary file modified test/widgets/goldens/yaru_title_bar-restorable-dark.png
Binary file modified test/widgets/goldens/yaru_title_bar-restorable-light.png
Binary file modified test/widgets/goldens/yaru_window_control-close-hovered-light.png
Binary file modified test/widgets/goldens/yaru_window_control-close-light.png
Binary file modified test/widgets/goldens/yaru_window_control-close-pressed-light.png
Binary file modified test/widgets/goldens/yaru_window_control-maximize-light.png
Binary file modified test/widgets/goldens/yaru_window_control-minimize-light.png
Binary file modified test/widgets/goldens/yaru_window_control-restore-light.png

0 comments on commit aeb809a

Please sign in to comment.