Skip to content

Commit 11ab341

Browse files
theme: Replace streamMessageBgDefault with bgMessageRegular
The `streamMessageBgDefault` giving colors to the background of both Stream messages and DMs UI, has been changed to a darker version for the dark theme, using a new `bgMessageRegular` variable in the `MessageListTheme`, according to the Figma design. It's just a refactor of variable for the light theme. Figma: https://www.figma.com/design/1JTNtYo9memgW7vV6d0ygq/Zulip-Mobile?node-id=4993-20811&t=vu2wWOBiVb0BB6Vz-0 discussion: zulip#1213 (comment)
1 parent 6bb8680 commit 11ab341

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

lib/widgets/content.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -893,7 +893,7 @@ class WebsitePreview extends StatelessWidget {
893893
// TODO(#488) use different color for non-message contexts
894894
// TODO(#647) use different color for highlighted messages
895895
// TODO(#681) use different color for DM messages
896-
color: MessageListTheme.of(context).streamMessageBgDefault,
896+
color: MessageListTheme.of(context).bgMessageRegular,
897897
child: ClipRect(
898898
child: ConstrainedBox(
899899
constraints: BoxConstraints(maxHeight: 80),

lib/widgets/message_list.dart

+9-9
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ import 'theme.dart';
2929
/// Message-list styles that differ between light and dark themes.
3030
class MessageListTheme extends ThemeExtension<MessageListTheme> {
3131
static final light = MessageListTheme._(
32+
bgMessageRegular: const HSLColor.fromAHSL(1, 0, 0, 1).toColor(),
3233
dateSeparator: Colors.black,
3334
dmRecipientHeaderBg: const HSLColor.fromAHSL(1, 46, 0.35, 0.93).toColor(),
3435
labelTime: const HSLColor.fromAHSL(0.49, 0, 0, 0).toColor(),
3536
senderBotIcon: const HSLColor.fromAHSL(1, 180, 0.08, 0.65).toColor(),
36-
streamMessageBgDefault: Colors.white,
3737
streamRecipientHeaderChevronRight: Colors.black.withValues(alpha: 0.3),
3838

3939
// From the Figma mockup at:
@@ -51,11 +51,11 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
5151
);
5252

5353
static final dark = MessageListTheme._(
54+
bgMessageRegular: const HSLColor.fromAHSL(1, 0, 0, 0.11).toColor(),
5455
dateSeparator: Colors.white,
5556
dmRecipientHeaderBg: const HSLColor.fromAHSL(1, 46, 0.15, 0.2).toColor(),
5657
labelTime: const HSLColor.fromAHSL(0.5, 0, 0, 1).toColor(),
5758
senderBotIcon: const HSLColor.fromAHSL(1, 180, 0.05, 0.5).toColor(),
58-
streamMessageBgDefault: const HSLColor.fromAHSL(1, 0, 0, 0.15).toColor(),
5959
streamRecipientHeaderChevronRight: Colors.white.withValues(alpha: 0.3),
6060

6161
// 0.75 opacity from here:
@@ -72,11 +72,11 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
7272
);
7373

7474
MessageListTheme._({
75+
required this.bgMessageRegular,
7576
required this.dateSeparator,
7677
required this.dmRecipientHeaderBg,
7778
required this.labelTime,
7879
required this.senderBotIcon,
79-
required this.streamMessageBgDefault,
8080
required this.streamRecipientHeaderChevronRight,
8181
required this.unreadMarker,
8282
required this.unreadMarkerGap,
@@ -93,34 +93,34 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
9393
return extension!;
9494
}
9595

96+
final Color bgMessageRegular;
9697
final Color dateSeparator;
9798
final Color dmRecipientHeaderBg;
9899
final Color labelTime;
99100
final Color senderBotIcon;
100-
final Color streamMessageBgDefault;
101101
final Color streamRecipientHeaderChevronRight;
102102
final Color unreadMarker;
103103
final Color unreadMarkerGap;
104104
final Color unsubscribedStreamRecipientHeaderBg;
105105

106106
@override
107107
MessageListTheme copyWith({
108+
Color? bgMessageRegular,
108109
Color? dateSeparator,
109110
Color? dmRecipientHeaderBg,
110111
Color? labelTime,
111112
Color? senderBotIcon,
112-
Color? streamMessageBgDefault,
113113
Color? streamRecipientHeaderChevronRight,
114114
Color? unreadMarker,
115115
Color? unreadMarkerGap,
116116
Color? unsubscribedStreamRecipientHeaderBg,
117117
}) {
118118
return MessageListTheme._(
119+
bgMessageRegular: bgMessageRegular ?? this.bgMessageRegular,
119120
dateSeparator: dateSeparator ?? this.dateSeparator,
120121
dmRecipientHeaderBg: dmRecipientHeaderBg ?? this.dmRecipientHeaderBg,
121122
labelTime: labelTime ?? this.labelTime,
122123
senderBotIcon: senderBotIcon ?? this.senderBotIcon,
123-
streamMessageBgDefault: streamMessageBgDefault ?? this.streamMessageBgDefault,
124124
streamRecipientHeaderChevronRight: streamRecipientHeaderChevronRight ?? this.streamRecipientHeaderChevronRight,
125125
unreadMarker: unreadMarker ?? this.unreadMarker,
126126
unreadMarkerGap: unreadMarkerGap ?? this.unreadMarkerGap,
@@ -134,11 +134,11 @@ class MessageListTheme extends ThemeExtension<MessageListTheme> {
134134
return this;
135135
}
136136
return MessageListTheme._(
137+
bgMessageRegular: Color.lerp(bgMessageRegular, other.bgMessageRegular, t)!,
137138
dateSeparator: Color.lerp(dateSeparator, other.dateSeparator, t)!,
138139
dmRecipientHeaderBg: Color.lerp(dmRecipientHeaderBg, other.dmRecipientHeaderBg, t)!,
139140
labelTime: Color.lerp(labelTime, other.labelTime, t)!,
140141
senderBotIcon: Color.lerp(senderBotIcon, other.senderBotIcon, t)!,
141-
streamMessageBgDefault: Color.lerp(streamMessageBgDefault, other.streamMessageBgDefault, t)!,
142142
streamRecipientHeaderChevronRight: Color.lerp(streamRecipientHeaderChevronRight, other.streamRecipientHeaderChevronRight, t)!,
143143
unreadMarker: Color.lerp(unreadMarker, other.unreadMarker, t)!,
144144
unreadMarkerGap: Color.lerp(unreadMarkerGap, other.unreadMarkerGap, t)!,
@@ -913,7 +913,7 @@ class DateSeparator extends StatelessWidget {
913913
final line = BorderSide(width: 0, color: messageListTheme.dateSeparator);
914914

915915
// TODO(#681) use different color for DM messages
916-
return ColoredBox(color: messageListTheme.streamMessageBgDefault,
916+
return ColoredBox(color: messageListTheme.bgMessageRegular,
917917
child: Padding(
918918
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 2),
919919
child: Row(children: [
@@ -960,7 +960,7 @@ class MessageItem extends StatelessWidget {
960960
child: _UnreadMarker(
961961
isRead: message.flags.contains(MessageFlag.read),
962962
child: ColoredBox(
963-
color: messageListTheme.streamMessageBgDefault,
963+
color: messageListTheme.bgMessageRegular,
964964
child: Column(children: [
965965
MessageWithPossibleSender(item: item),
966966
if (trailingWhitespace != null && item.isLastInBlock) SizedBox(height: trailingWhitespace!),

test/widgets/message_list_test.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -268,17 +268,17 @@ void main() {
268268
return widget.color;
269269
}
270270

271-
check(backgroundColor()).isSameColorAs(MessageListTheme.light.streamMessageBgDefault);
271+
check(backgroundColor()).isSameColorAs(MessageListTheme.light.bgMessageRegular);
272272

273273
tester.platformDispatcher.platformBrightnessTestValue = Brightness.dark;
274274
await tester.pump();
275275

276276
await tester.pump(kThemeAnimationDuration * 0.4);
277277
final expectedLerped = MessageListTheme.light.lerp(MessageListTheme.dark, 0.4);
278-
check(backgroundColor()).isSameColorAs(expectedLerped.streamMessageBgDefault);
278+
check(backgroundColor()).isSameColorAs(expectedLerped.bgMessageRegular);
279279

280280
await tester.pump(kThemeAnimationDuration * 0.6);
281-
check(backgroundColor()).isSameColorAs(MessageListTheme.dark.streamMessageBgDefault);
281+
check(backgroundColor()).isSameColorAs(MessageListTheme.dark.bgMessageRegular);
282282
});
283283

284284
group('fetch initial batch of messages', () {

0 commit comments

Comments
 (0)