diff --git a/packages/neon/neon/lib/src/theme/colors.dart b/packages/neon/neon/lib/src/theme/colors.dart index 40ec0da2..46366fab 100644 --- a/packages/neon/neon/lib/src/theme/colors.dart +++ b/packages/neon/neon/lib/src/theme/colors.dart @@ -1,6 +1,4 @@ import 'package:flutter/material.dart'; - -import 'package:meta/meta.dart'; import 'package:nextcloud/nextcloud.dart'; /// [Color] constants which represent Nextcloud's @@ -16,10 +14,24 @@ abstract final class NcColors { /// /// This color is only used at the users discretion. static const Color oledBackground = Colors.black; + + /// Color of a starred item. + static const Color starredColor = Colors.yellow; + + /// Color used to emphasise declining actions. + /// + /// Usually used in conjunction with [NcColors.accept]. + static const Color decline = Colors.red; + + /// Color used to emphasise accepting actions. + /// + /// Usually used in conjunction with [NcColors.decline]. + static const Color accept = Colors.green; } -@internal +/// [UserStatusType] color mapping. extension UserStatusTypeColors on UserStatusType { + /// The color for the user status. Color? get color => switch (this) { UserStatusType.online => const Color(0xFF49B382), UserStatusType.away => const Color(0xFFF4A331), diff --git a/packages/neon/neon/lib/src/utils/confirmation_dialog.dart b/packages/neon/neon/lib/src/utils/confirmation_dialog.dart index 28e5e54a..0f077cf7 100644 --- a/packages/neon/neon/lib/src/utils/confirmation_dialog.dart +++ b/packages/neon/neon/lib/src/utils/confirmation_dialog.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:neon/l10n/localizations.dart'; +import 'package:neon/theme.dart'; Future showConfirmationDialog(final BuildContext context, final String title) async => await showDialog( @@ -10,7 +11,7 @@ Future showConfirmationDialog(final BuildContext context, final String tit actions: [ ElevatedButton( style: ElevatedButton.styleFrom( - backgroundColor: Colors.red, + backgroundColor: NcColors.decline, foregroundColor: Theme.of(context).colorScheme.onPrimary, ), onPressed: () { @@ -20,7 +21,7 @@ Future showConfirmationDialog(final BuildContext context, final String tit ), ElevatedButton( style: ElevatedButton.styleFrom( - backgroundColor: Colors.green, + backgroundColor: NcColors.accept, foregroundColor: Theme.of(context).colorScheme.onPrimary, ), onPressed: () { diff --git a/packages/neon/neon/lib/src/widgets/image_wrapper.dart b/packages/neon/neon/lib/src/widgets/image_wrapper.dart index a080b809..f77b967c 100644 --- a/packages/neon/neon/lib/src/widgets/image_wrapper.dart +++ b/packages/neon/neon/lib/src/widgets/image_wrapper.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; class NeonImageWrapper extends StatelessWidget { const NeonImageWrapper({ required this.child, - required this.color, + this.color = Colors.white, this.size, this.borderRadius, super.key, @@ -16,7 +16,7 @@ class NeonImageWrapper extends StatelessWidget { @override Widget build(final BuildContext context) => ClipRRect( - borderRadius: borderRadius ?? BorderRadius.zero, + borderRadius: borderRadius, child: ColorFiltered( colorFilter: ColorFilter.mode(color, BlendMode.dstATop), child: SizedBox.fromSize( diff --git a/packages/neon/neon/lib/theme.dart b/packages/neon/neon/lib/theme.dart index a9d3fcc8..8b4281ab 100644 --- a/packages/neon/neon/lib/theme.dart +++ b/packages/neon/neon/lib/theme.dart @@ -1,4 +1,5 @@ export 'src/theme/branding.dart'; export 'src/theme/color_scheme.dart'; +export 'src/theme/colors.dart'; export 'src/theme/dialog.dart'; export 'src/theme/neon.dart'; diff --git a/packages/neon/neon_files/lib/neon_files.dart b/packages/neon/neon_files/lib/neon_files.dart index 68280d18..246b507a 100644 --- a/packages/neon/neon_files/lib/neon_files.dart +++ b/packages/neon/neon_files/lib/neon_files.dart @@ -17,6 +17,7 @@ import 'package:neon/models.dart'; import 'package:neon/platform.dart'; import 'package:neon/settings.dart'; import 'package:neon/sort_box.dart'; +import 'package:neon/theme.dart'; import 'package:neon/utils.dart'; import 'package:neon/widgets.dart'; import 'package:neon_files/l10n/localizations.dart'; diff --git a/packages/neon/neon_files/lib/widgets/browser_view.dart b/packages/neon/neon_files/lib/widgets/browser_view.dart index 5a360487..b6e61d00 100644 --- a/packages/neon/neon_files/lib/widgets/browser_view.dart +++ b/packages/neon/neon_files/lib/widgets/browser_view.dart @@ -283,7 +283,7 @@ class _FilesBrowserViewState extends State { child: Icon( Icons.star, size: 14, - color: Colors.yellow, + color: NcColors.starredColor, ), ), ], diff --git a/packages/neon/neon_files/lib/widgets/file_preview.dart b/packages/neon/neon_files/lib/widgets/file_preview.dart index 7a610e78..33fbda24 100644 --- a/packages/neon/neon_files/lib/widgets/file_preview.dart +++ b/packages/neon/neon_files/lib/widgets/file_preview.dart @@ -49,7 +49,6 @@ class FilePreview extends StatelessWidget { ); if (withBackground) { return NeonImageWrapper( - color: Colors.white, borderRadius: borderRadius, child: child, ); diff --git a/packages/neon/neon_news/lib/widgets/feed_icon.dart b/packages/neon/neon_news/lib/widgets/feed_icon.dart index cc0b78d1..ea336f30 100644 --- a/packages/neon/neon_news/lib/widgets/feed_icon.dart +++ b/packages/neon/neon_news/lib/widgets/feed_icon.dart @@ -17,7 +17,6 @@ class NewsFeedIcon extends StatelessWidget { final faviconLink = feed.faviconLink; return NeonImageWrapper( - color: Colors.white, size: Size.square(size), borderRadius: borderRadius, child: faviconLink != null && faviconLink.isNotEmpty