@@ -26,7 +26,7 @@ ThemeData zulipThemeData(BuildContext context) {
2626
2727  switch  (brightness) {
2828    case  Brightness .light:  {
29-       designVariables =  DesignVariables .light () ;
29+       designVariables =  DesignVariables .light;
3030      themeExtensions =  [
3131        ContentTheme .light (context),
3232        designVariables,
@@ -35,7 +35,7 @@ ThemeData zulipThemeData(BuildContext context) {
3535      ];
3636    }
3737    case  Brightness .dark:  {
38-       designVariables =  DesignVariables .dark () ;
38+       designVariables =  DesignVariables .dark;
3939      themeExtensions =  [
4040        ContentTheme .dark (context),
4141        designVariables,
@@ -117,113 +117,111 @@ const kZulipBrandColor = Color.fromRGBO(0x64, 0x92, 0xfe, 1);
117117/// or 
118118///   https://www.figma.com/design/1JTNtYo9memgW7vV6d0ygq/Zulip-Mobile?node-id=2945-49492&t=MEb4vtp7S26nntxm-0 
119119class  DesignVariables  extends  ThemeExtension <DesignVariables > {
120-   DesignVariables .light () : 
121-     this ._(
122-       background:  const  Color (0xffffffff ),
123-       bannerBgIntDanger:  const  Color (0xfff2e4e4 ),
124-       bgBotBar:  const  Color (0xfff6f6f6 ),
125-       bgContextMenu:  const  Color (0xfff2f2f2 ),
126-       bgCounterUnread:  const  Color (0xff666699 ).withValues (alpha:  0.15 ),
127-       bgMenuButtonActive:  Colors .black.withValues (alpha:  0.05 ),
128-       bgMenuButtonSelected:  Colors .white,
129-       bgTopBar:  const  Color (0xfff5f5f5 ),
130-       borderBar:  Colors .black.withValues (alpha:  0.2 ),
131-       borderMenuButtonSelected:  Colors .black.withValues (alpha:  0.2 ),
132-       btnLabelAttLowIntDanger:  const  Color (0xffc0070a ),
133-       btnLabelAttMediumIntDanger:  const  Color (0xffac0508 ),
134-       composeBoxBg:  const  Color (0xffffffff ),
135-       contextMenuCancelText:  const  Color (0xff222222 ),
136-       contextMenuItemBg:  const  Color (0xff6159e1 ),
137-       contextMenuItemText:  const  Color (0xff381da7 ),
138-       editorButtonPressedBg:  Colors .black.withValues (alpha:  0.06 ),
139-       foreground:  const  Color (0xff000000 ),
140-       icon:  const  Color (0xff6159e1 ),
141-       iconSelected:  const  Color (0xff222222 ),
142-       labelCounterUnread:  const  Color (0xff222222 ),
143-       labelEdited:  const  HSLColor .fromAHSL (0.35 , 0 , 0 , 0 ).toColor (),
144-       labelMenuButton:  const  Color (0xff222222 ),
145-       mainBackground:  const  Color (0xfff0f0f0 ),
146-       textInput:  const  Color (0xff000000 ),
147-       title:  const  Color (0xff1a1a1a ),
148-       bgSearchInput:  const  Color (0xffe3e3e3 ),
149-       textMessage:  const  Color (0xff262626 ),
150-       channelColorSwatches:  ChannelColorSwatches .light,
151-       colorMessageHeaderIconInteractive:  Colors .black.withValues (alpha:  0.2 ),
152-       contextMenuCancelBg:  const  Color (0xff797986 ).withValues (alpha:  0.15 ),
153-       contextMenuCancelPressedBg:  const  Color (0xff797986 ).withValues (alpha:  0.20 ),
154-       dmHeaderBg:  const  HSLColor .fromAHSL (1 , 46 , 0.35 , 0.93 ).toColor (),
155-       groupDmConversationIcon:  Colors .black.withValues (alpha:  0.5 ),
156-       groupDmConversationIconBg:  const  Color (0x33808080 ),
157-       inboxItemIconMarker:  const  HSLColor .fromAHSL (0.5 , 0 , 0 , 0.2 ).toColor (),
158-       loginOrDivider:  const  Color (0xffdedede ),
159-       loginOrDividerText:  const  Color (0xff575757 ),
160-       modalBarrierColor:  const  Color (0xff000000 ).withValues (alpha:  0.3 ),
161-       mutedUnreadBadge:  const  HSLColor .fromAHSL (0.5 , 0 , 0 , 0.8 ).toColor (),
162-       navigationButtonBg:  Colors .black.withValues (alpha:  0.05 ),
163-       sectionCollapseIcon:  const  Color (0x7f1e2e48 ),
164-       star:  const  HSLColor .fromAHSL (0.5 , 47 , 1 , 0.41 ).toColor (),
165-       subscriptionListHeaderLine:  const  HSLColor .fromAHSL (0.2 , 240 , 0.1 , 0.5 ).toColor (),
166-       subscriptionListHeaderText:  const  HSLColor .fromAHSL (1.0 , 240 , 0.1 , 0.5 ).toColor (),
167-       unreadCountBadgeTextForChannel:  Colors .black.withValues (alpha:  0.9 ),
168-     );
120+   static  final  light =  DesignVariables ._(
121+     background:  const  Color (0xffffffff ),
122+     bannerBgIntDanger:  const  Color (0xfff2e4e4 ),
123+     bgBotBar:  const  Color (0xfff6f6f6 ),
124+     bgContextMenu:  const  Color (0xfff2f2f2 ),
125+     bgCounterUnread:  const  Color (0xff666699 ).withValues (alpha:  0.15 ),
126+     bgMenuButtonActive:  Colors .black.withValues (alpha:  0.05 ),
127+     bgMenuButtonSelected:  Colors .white,
128+     bgTopBar:  const  Color (0xfff5f5f5 ),
129+     borderBar:  Colors .black.withValues (alpha:  0.2 ),
130+     borderMenuButtonSelected:  Colors .black.withValues (alpha:  0.2 ),
131+     btnLabelAttLowIntDanger:  const  Color (0xffc0070a ),
132+     btnLabelAttMediumIntDanger:  const  Color (0xffac0508 ),
133+     composeBoxBg:  const  Color (0xffffffff ),
134+     contextMenuCancelText:  const  Color (0xff222222 ),
135+     contextMenuItemBg:  const  Color (0xff6159e1 ),
136+     contextMenuItemText:  const  Color (0xff381da7 ),
137+     editorButtonPressedBg:  Colors .black.withValues (alpha:  0.06 ),
138+     foreground:  const  Color (0xff000000 ),
139+     icon:  const  Color (0xff6159e1 ),
140+     iconSelected:  const  Color (0xff222222 ),
141+     labelCounterUnread:  const  Color (0xff222222 ),
142+     labelEdited:  const  HSLColor .fromAHSL (0.35 , 0 , 0 , 0 ).toColor (),
143+     labelMenuButton:  const  Color (0xff222222 ),
144+     mainBackground:  const  Color (0xfff0f0f0 ),
145+     textInput:  const  Color (0xff000000 ),
146+     title:  const  Color (0xff1a1a1a ),
147+     bgSearchInput:  const  Color (0xffe3e3e3 ),
148+     textMessage:  const  Color (0xff262626 ),
149+     channelColorSwatches:  ChannelColorSwatches .light,
150+     colorMessageHeaderIconInteractive:  Colors .black.withValues (alpha:  0.2 ),
151+     contextMenuCancelBg:  const  Color (0xff797986 ).withValues (alpha:  0.15 ),
152+     contextMenuCancelPressedBg:  const  Color (0xff797986 ).withValues (alpha:  0.20 ),
153+     dmHeaderBg:  const  HSLColor .fromAHSL (1 , 46 , 0.35 , 0.93 ).toColor (),
154+     groupDmConversationIcon:  Colors .black.withValues (alpha:  0.5 ),
155+     groupDmConversationIconBg:  const  Color (0x33808080 ),
156+     inboxItemIconMarker:  const  HSLColor .fromAHSL (0.5 , 0 , 0 , 0.2 ).toColor (),
157+     loginOrDivider:  const  Color (0xffdedede ),
158+     loginOrDividerText:  const  Color (0xff575757 ),
159+     modalBarrierColor:  const  Color (0xff000000 ).withValues (alpha:  0.3 ),
160+     mutedUnreadBadge:  const  HSLColor .fromAHSL (0.5 , 0 , 0 , 0.8 ).toColor (),
161+     navigationButtonBg:  Colors .black.withValues (alpha:  0.05 ),
162+     sectionCollapseIcon:  const  Color (0x7f1e2e48 ),
163+     star:  const  HSLColor .fromAHSL (0.5 , 47 , 1 , 0.41 ).toColor (),
164+     subscriptionListHeaderLine:  const  HSLColor .fromAHSL (0.2 , 240 , 0.1 , 0.5 ).toColor (),
165+     subscriptionListHeaderText:  const  HSLColor .fromAHSL (1.0 , 240 , 0.1 , 0.5 ).toColor (),
166+     unreadCountBadgeTextForChannel:  Colors .black.withValues (alpha:  0.9 ),
167+   );
169168
170-   DesignVariables .dark () : 
171-     this ._(
172-       background:  const  Color (0xff000000 ),
173-       bannerBgIntDanger:  const  Color (0xff461616 ),
174-       bgBotBar:  const  Color (0xff222222 ),
175-       bgContextMenu:  const  Color (0xff262626 ),
176-       bgCounterUnread:  const  Color (0xff666699 ).withValues (alpha:  0.37 ),
177-       bgMenuButtonActive:  Colors .black.withValues (alpha:  0.2 ),
178-       bgMenuButtonSelected:  Colors .black.withValues (alpha:  0.25 ),
179-       bgTopBar:  const  Color (0xff242424 ),
180-       borderBar:  Colors .black.withValues (alpha:  0.5 ),
181-       borderMenuButtonSelected:  Colors .white.withValues (alpha:  0.1 ),
182-       btnLabelAttLowIntDanger:  const  Color (0xffff8b7c ),
183-       btnLabelAttMediumIntDanger:  const  Color (0xffff8b7c ),
184-       composeBoxBg:  const  Color (0xff0f0f0f ),
185-       contextMenuCancelText:  const  Color (0xffffffff ).withValues (alpha:  0.75 ),
186-       contextMenuItemBg:  const  Color (0xff7977fe ),
187-       contextMenuItemText:  const  Color (0xff9398fd ),
188-       editorButtonPressedBg:  Colors .white.withValues (alpha:  0.06 ),
189-       foreground:  const  Color (0xffffffff ),
190-       icon:  const  Color (0xff7977fe ),
191-       iconSelected:  Colors .white.withValues (alpha:  0.8 ),
192-       labelCounterUnread:  const  Color (0xffffffff ).withValues (alpha:  0.7 ),
193-       labelEdited:  const  HSLColor .fromAHSL (0.35 , 0 , 0 , 1 ).toColor (),
194-       labelMenuButton:  const  Color (0xffffffff ).withValues (alpha:  0.85 ),
195-       mainBackground:  const  Color (0xff1d1d1d ),
196-       textInput:  const  Color (0xffffffff ).withValues (alpha:  0.9 ),
197-       title:  const  Color (0xffffffff ),
198-       bgSearchInput:  const  Color (0xff313131 ),
199-       textMessage:  const  Color (0xffffffff ).withValues (alpha:  0.8 ),
200-       channelColorSwatches:  ChannelColorSwatches .dark,
201-       contextMenuCancelBg:  const  Color (0xff797986 ).withValues (alpha:  0.15 ), // the same as the light mode in Figma 
202-       contextMenuCancelPressedBg:  const  Color (0xff797986 ).withValues (alpha:  0.20 ), // the same as the light mode in Figma 
203-       // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
204-       colorMessageHeaderIconInteractive:  Colors .white.withValues (alpha:  0.2 ),
205-       dmHeaderBg:  const  HSLColor .fromAHSL (1 , 46 , 0.15 , 0.2 ).toColor (),
206-       // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
207-       groupDmConversationIcon:  Colors .white.withValues (alpha:  0.5 ),
208-       // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
209-       groupDmConversationIconBg:  const  Color (0x33cccccc ),
210-       inboxItemIconMarker:  const  HSLColor .fromAHSL (0.4 , 0 , 0 , 1 ).toColor (),
211-       loginOrDivider:  const  Color (0xff424242 ),
212-       loginOrDividerText:  const  Color (0xffa8a8a8 ),
213-       modalBarrierColor:  const  Color (0xff000000 ).withValues (alpha:  0.5 ),
214-       // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
215-       mutedUnreadBadge:  const  HSLColor .fromAHSL (0.5 , 0 , 0 , 0.6 ).toColor (),
216-       navigationButtonBg:  Colors .white.withValues (alpha:  0.05 ),
217-       // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
218-       sectionCollapseIcon:  const  Color (0x7fb6c8e2 ),
219-       // TODO(design-dark) unchanged in dark theme? 
220-       star:  const  HSLColor .fromAHSL (0.5 , 47 , 1 , 0.41 ).toColor (),
221-       // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
222-       subscriptionListHeaderLine:  const  HSLColor .fromAHSL (0.4 , 240 , 0.1 , 0.75 ).toColor (),
223-       // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
224-       subscriptionListHeaderText:  const  HSLColor .fromAHSL (1.0 , 240 , 0.1 , 0.75 ).toColor (),
225-       unreadCountBadgeTextForChannel:  Colors .white.withValues (alpha:  0.9 ),
226-     );
169+   static  final  dark =  DesignVariables ._(
170+     background:  const  Color (0xff000000 ),
171+     bannerBgIntDanger:  const  Color (0xff461616 ),
172+     bgBotBar:  const  Color (0xff222222 ),
173+     bgContextMenu:  const  Color (0xff262626 ),
174+     bgCounterUnread:  const  Color (0xff666699 ).withValues (alpha:  0.37 ),
175+     bgMenuButtonActive:  Colors .black.withValues (alpha:  0.2 ),
176+     bgMenuButtonSelected:  Colors .black.withValues (alpha:  0.25 ),
177+     bgTopBar:  const  Color (0xff242424 ),
178+     borderBar:  Colors .black.withValues (alpha:  0.5 ),
179+     borderMenuButtonSelected:  Colors .white.withValues (alpha:  0.1 ),
180+     btnLabelAttLowIntDanger:  const  Color (0xffff8b7c ),
181+     btnLabelAttMediumIntDanger:  const  Color (0xffff8b7c ),
182+     composeBoxBg:  const  Color (0xff0f0f0f ),
183+     contextMenuCancelText:  const  Color (0xffffffff ).withValues (alpha:  0.75 ),
184+     contextMenuItemBg:  const  Color (0xff7977fe ),
185+     contextMenuItemText:  const  Color (0xff9398fd ),
186+     editorButtonPressedBg:  Colors .white.withValues (alpha:  0.06 ),
187+     foreground:  const  Color (0xffffffff ),
188+     icon:  const  Color (0xff7977fe ),
189+     iconSelected:  Colors .white.withValues (alpha:  0.8 ),
190+     labelCounterUnread:  const  Color (0xffffffff ).withValues (alpha:  0.7 ),
191+     labelEdited:  const  HSLColor .fromAHSL (0.35 , 0 , 0 , 1 ).toColor (),
192+     labelMenuButton:  const  Color (0xffffffff ).withValues (alpha:  0.85 ),
193+     mainBackground:  const  Color (0xff1d1d1d ),
194+     textInput:  const  Color (0xffffffff ).withValues (alpha:  0.9 ),
195+     title:  const  Color (0xffffffff ),
196+     bgSearchInput:  const  Color (0xff313131 ),
197+     textMessage:  const  Color (0xffffffff ).withValues (alpha:  0.8 ),
198+     channelColorSwatches:  ChannelColorSwatches .dark,
199+     contextMenuCancelBg:  const  Color (0xff797986 ).withValues (alpha:  0.15 ), // the same as the light mode in Figma 
200+     contextMenuCancelPressedBg:  const  Color (0xff797986 ).withValues (alpha:  0.20 ), // the same as the light mode in Figma 
201+     // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
202+     colorMessageHeaderIconInteractive:  Colors .white.withValues (alpha:  0.2 ),
203+     dmHeaderBg:  const  HSLColor .fromAHSL (1 , 46 , 0.15 , 0.2 ).toColor (),
204+     // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
205+     groupDmConversationIcon:  Colors .white.withValues (alpha:  0.5 ),
206+     // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
207+     groupDmConversationIconBg:  const  Color (0x33cccccc ),
208+     inboxItemIconMarker:  const  HSLColor .fromAHSL (0.4 , 0 , 0 , 1 ).toColor (),
209+     loginOrDivider:  const  Color (0xff424242 ),
210+     loginOrDividerText:  const  Color (0xffa8a8a8 ),
211+     modalBarrierColor:  const  Color (0xff000000 ).withValues (alpha:  0.5 ),
212+     // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
213+     mutedUnreadBadge:  const  HSLColor .fromAHSL (0.5 , 0 , 0 , 0.6 ).toColor (),
214+     navigationButtonBg:  Colors .white.withValues (alpha:  0.05 ),
215+     // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
216+     sectionCollapseIcon:  const  Color (0x7fb6c8e2 ),
217+     // TODO(design-dark) unchanged in dark theme? 
218+     star:  const  HSLColor .fromAHSL (0.5 , 47 , 1 , 0.41 ).toColor (),
219+     // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
220+     subscriptionListHeaderLine:  const  HSLColor .fromAHSL (0.4 , 240 , 0.1 , 0.75 ).toColor (),
221+     // TODO(design-dark) need proper dark-theme color (this is ad hoc) 
222+     subscriptionListHeaderText:  const  HSLColor .fromAHSL (1.0 , 240 , 0.1 , 0.75 ).toColor (),
223+     unreadCountBadgeTextForChannel:  Colors .white.withValues (alpha:  0.9 ),
224+   );
227225
228226  DesignVariables ._({
229227    required  this .background,
0 commit comments