Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tweak dark theme #1213

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

Gaurav-Kushwaha-1225
Copy link

@Gaurav-Kushwaha-1225 Gaurav-Kushwaha-1225 commented Dec 27, 2024

About Changes

This PR updates the color variables in DesignVariables and MessageListTheme for a slightly higher contrast in dark theme according to the values in the figma file.

Fixes: #973

Screenshots

Before After

@alya
Copy link
Collaborator

alya commented Dec 27, 2024

Please clean up your commit history and post again to request a review. See here for guidelines.

@Gaurav-Kushwaha-1225
Copy link
Author

Please clean up your commit history and post again to request a review. See here for guidelines.

I’ve cleaned up the commit history by removing unnecessary merge commits into the TweakDarkTheme branch and combining related changes into a single commit for clarity.

This is my first time using rebase -i. During the process, I used pick, squash, and drop commands for various commits. I initially thought there would be separate commit messages for each, but later realized they were combined into one during the rebase.
Although, it asked to enter three commit messages after rebasing, Idk why it happened. Could you please explain why all commit messages were merged into one?
I’d like to understand this better for future contributions.

Apologies for any confusion.

Please review the updated PR.

@gnprice
Copy link
Member

gnprice commented Dec 27, 2024

The #git help channel on chat.zulip.org is a good place to ask questions about using Git.

@Gaurav-Kushwaha-1225
Copy link
Author

Please clean up your commit history and post again to request a review. See here for guidelines.

Hi @alya, please review the updated PR.

@alya
Copy link
Collaborator

alya commented Jan 6, 2025

Thanks! I'll let other folks take a look at this one.

@gnprice gnprice added the maintainer review PR ready for review by Zulip maintainers label Jan 7, 2025
@PIG208
Copy link
Member

PIG208 commented Jan 8, 2025

Hi! Please read through the commit style guide (also previously linked by Alya) linked in our README and fix the commit message: https://github.com/zulip/zulip-flutter?tab=readme-ov-file#submitting-a-pull-request

Copy link
Member

@PIG208 PIG208 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! I noted the differences between this revision and the Figma design after going through lib/widgets/message_list.dart and some part of lib/widgets/compose_box.dart for colors used in the widgets.

Some of the comments are just about different colors being used, and others request the addition/removal of variables. It should be fine to include color adjustments all in a single commit, but for adding/removing variables, let's try to have separate commits for the ones added, so it is easier to see which variables they replace. Consider using the NFC tag if a commit is a pure refactor.

I think there are also changes to the autocomplete window, but that should be addressed in #995,

lib/widgets/message_list.dart Outdated Show resolved Hide resolved
labelEdited: const HSLColor.fromAHSL(0.35, 0, 0, 1).toColor(),
labelMenuButton: const Color(0xffffffff).withValues(alpha: 0.85),
mainBackground: const Color(0xff1d1d1d),
textInput: const Color(0xffffffff).withValues(alpha: 0.9),
title: const Color(0xffffffff),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at this, I see an opportunity to remove colorMessageHeaderIconInteractive (below this) and use title with the right opacity at places where colorMessageHeaderIconInteractive is used. Because it is adjusting something that was not previously a part of the design, let's do that in a separate commit.

Copy link
Author

@Gaurav-Kushwaha-1225 Gaurav-Kushwaha-1225 Jan 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If colorMessageHeaderIconInteractive is removed from DesignVariables (and use title at places where it is used), it must be removed from both the light and dark themes.

In the dark theme, colorMessageHeaderIconInteractive is identical to title but with a different opacity.

      title: const Color(0xffffffff),
      colorMessageHeaderIconInteractive: Colors.white.withValues(alpha: 0.2),

However, in the light theme, colorMessageHeaderIconInteractive and title have distinct values (Colors.black.withValues(alpha: 0.2) and Color(0xff1a1a1a)), not just a difference in opacity.

      title: const Color(0xff1a1a1a),
      colorMessageHeaderIconInteractive: Colors.black.withValues(alpha: 0.2),

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. Let's make sure that we stick to the design. In Figma, I see that we use title for that element, so we should do just that.

It was also hinted that designVariables.colorMessageHeaderIconInteractive is meant to be temporary before we have a color specified in a design:

              // TODO(design) copies the recipient header in web; is there a better color?
              color: designVariables.colorMessageHeaderIconInteractive, size: 14)),

so it should be fine to remove it.

dateSeparatorText: const HSLColor.fromAHSL(0.5, 0, 0, 1).toColor(),
dmRecipientHeaderBg: const HSLColor.fromAHSL(1, 0, 0, 0.14).toColor(),
messageTimestamp: const HSLColor.fromAHSL(0.5, 0, 0, 1).toColor(),
recipientHeaderText: const HSLColor.fromAHSL(0.9, 0, 0, 1).toColor(),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both this and senderName are the same as DesignVariables.title (and title is the variable used in Figma), so let's use that for consistency with the design, and remove these variables, all in its separate commit.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here also,
If senderName and recipientHeaderText is removed from MessageListTheme (and use title at places where it is used), it must be removed from both the light and dark themes.

In the dark theme, both these values are identical to title but with a different opacity.

      recipientHeaderText: const HSLColor.fromAHSL(0.9, 0, 0, 1).toColor(),
      senderName: const HSLColor.fromAHSL(0.9, 0, 0, 1).toColor(),
      title: const Color(0xffffffff),

However, in the light theme, both of them and title have distinct values not just a difference in opacity.

      recipientHeaderText: const HSLColor.fromAHSL(1, 0, 0, 0.15).toColor(),
      senderName: const HSLColor.fromAHSL(1, 0, 0, 0.2).toColor(),
      title: const Color(0xff1a1a1a),

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly, we should refer to the Figma design. Because the design uses title in light/dark mode, we should use the same variable as well.

lib/widgets/message_list.dart Outdated Show resolved Hide resolved
lib/widgets/theme.dart Outdated Show resolved Hide resolved
Gaurav-Kushwaha-1225 added a commit to Gaurav-Kushwaha-1225/zulip-flutter that referenced this pull request Jan 12, 2025
Adjusted the colors for `foreground` in
`DesignVariables` and `dateSeparator` in `MessageListTheme`
as asked.
`foreground`: zulip#1213 (comment)
`dateSeparator`: zulip#1213 (comment)
Gaurav-Kushwaha-1225 added a commit to Gaurav-Kushwaha-1225/zulip-flutter that referenced this pull request Jan 12, 2025
Added `labelTime` variable in `MessageListTheme`
that replaces the `dateSeparatorText` and
`messageTimestamp` variable according to the latest
design.

`labelTime`: zulip#1213 (comment)
Gaurav-Kushwaha-1225 added a commit to Gaurav-Kushwaha-1225/zulip-flutter that referenced this pull request Jan 12, 2025
Adjusted the colors for `foreground` in
`DesignVariables` and `dateSeparator` in
`MessageListTheme` as asked.

`foreground`: zulip#1213 (comment)
`dateSeparator`: zulip#1213 (comment)
Gaurav-Kushwaha-1225 added a commit to Gaurav-Kushwaha-1225/zulip-flutter that referenced this pull request Jan 12, 2025
Added `labelTime` variable in `MessageListTheme`
that replaces the `dateSeparatorText` and
`messageTimestamp` variable according to the latest
design.

`labelTime`: zulip#1213 (comment)
Gaurav-Kushwaha-1225 added a commit to Gaurav-Kushwaha-1225/zulip-flutter that referenced this pull request Jan 15, 2025
Adjusted the colors for `foreground` in
`DesignVariables` and `dateSeparator` in
`MessageListTheme` as asked.

`foreground`: zulip#1213 (comment)
`dateSeparator`: zulip#1213 (comment)
Gaurav-Kushwaha-1225 added a commit to Gaurav-Kushwaha-1225/zulip-flutter that referenced this pull request Jan 15, 2025
Added `labelTime` variable in `MessageListTheme`
that replaces the `dateSeparatorText` and
`messageTimestamp` variable according to the latest
design.

`labelTime`: zulip#1213 (comment)
Gaurav-Kushwaha-1225 added a commit to Gaurav-Kushwaha-1225/zulip-flutter that referenced this pull request Jan 15, 2025
Added `labelTime` variable in `MessageListTheme`
that replaces the `dateSeparatorText` and
`messageTimestamp` variable according to the latest
design.

`labelTime`: zulip#1213 (comment)
Adjusted the colors for `foreground` in
`DesignVariables` and `dateSeparator` in `MessageListTheme`
as asked.
`foreground`: zulip#1213 (comment)
`dateSeparator`: zulip#1213 (comment)
Added `labelTime` variable in `MessageListTheme`
that replaces the `dateSeparatorText` and
`messageTimestamp` variable according to the latest
design.

`labelTime`: zulip#1213 (comment)
Removed `colorMessageHeaderIconInteractive` from
`DesignVariables` and used `title` in place of it
as per the design guidelines.
discussion: zulip#1213 (comment)
Removed `senderName` & `recipientHeaderText` from
`MessageListTheme` and used `title` in place of it
as per the design guidelines.
discussion: zulip#1213 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintainer review PR ready for review by Zulip maintainers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Tweak dark theme for slightly higher contrast
5 participants