Skip to content

Commit c65347e

Browse files
committed
compose_box: Use new icons from the redesign.
The icons are mainly exported from the Figma design: https://www.figma.com/design/1JTNtYo9memgW7vV6d0ygq/Zulip-Mobile?node-id=544-22131&node-type=CANVAS&t=hNeqhPGojoFpTJnp-0 Except image.svg, which was downloaded from the original source of the icon (https://lucide.dev/icons/image). Due to the limitation of the icon font, image.svg and send.svg have been adjusted with a tool that converts SVG strokes to fills: https://www.npmjs.com/package/oslllo-svg-fixer See also: https://chat.zulip.org/#narrow/stream/243-mobile-team/topic/Icon.20not.20rendering.20correctly/near/1936793 Signed-off-by: Zixuan James Li <[email protected]>
1 parent eb1c818 commit c65347e

File tree

7 files changed

+41
-20
lines changed

7 files changed

+41
-20
lines changed

assets/icons/ZulipIcons.ttf

1.07 KB
Binary file not shown.

assets/icons/camera.svg

Lines changed: 3 additions & 0 deletions
Loading

assets/icons/image.svg

Lines changed: 1 addition & 0 deletions
Loading

assets/icons/paperclip.svg

Lines changed: 3 additions & 0 deletions
Loading

assets/icons/send.svg

Lines changed: 1 addition & 0 deletions
Loading

lib/widgets/compose_box.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import '../model/narrow.dart';
1515
import '../model/store.dart';
1616
import 'autocomplete.dart';
1717
import 'dialog.dart';
18+
import 'icons.dart';
1819
import 'store.dart';
1920
import 'theme.dart';
2021

@@ -642,7 +643,7 @@ class _AttachFileButton extends _AttachUploadsButton {
642643
const _AttachFileButton({required super.contentController, required super.contentFocusNode});
643644

644645
@override
645-
IconData get icon => Icons.attach_file;
646+
IconData get icon => ZulipIcons.paperclip;
646647

647648
@override
648649
String tooltip(ZulipLocalizations zulipLocalizations) =>
@@ -658,7 +659,7 @@ class _AttachMediaButton extends _AttachUploadsButton {
658659
const _AttachMediaButton({required super.contentController, required super.contentFocusNode});
659660

660661
@override
661-
IconData get icon => Icons.image;
662+
IconData get icon => ZulipIcons.image;
662663

663664
@override
664665
String tooltip(ZulipLocalizations zulipLocalizations) =>
@@ -675,7 +676,7 @@ class _AttachFromCameraButton extends _AttachUploadsButton {
675676
const _AttachFromCameraButton({required super.contentController, required super.contentFocusNode});
676677

677678
@override
678-
IconData get icon => Icons.camera_alt;
679+
IconData get icon => ZulipIcons.camera;
679680

680681
@override
681682
String tooltip(ZulipLocalizations zulipLocalizations) =>
@@ -871,7 +872,7 @@ class _SendButtonState extends State<_SendButton> {
871872
tapTargetSize: MaterialTapTargetSize.shrinkWrap,
872873
),
873874
color: foregroundColor,
874-
icon: const Icon(Icons.send),
875+
icon: const Icon(ZulipIcons.send),
875876
onPressed: _send));
876877
}
877878
}
@@ -948,7 +949,7 @@ class _ComposeBoxLayout extends StatelessWidget {
948949
]),
949950
Theme(
950951
data: themeData.copyWith(
951-
iconTheme: themeData.iconTheme.copyWith(color: colorScheme.onSurfaceVariant)),
952+
iconTheme: themeData.iconTheme.copyWith(color: colorScheme.onSurface.withOpacity(0.5))),
952953
child: Row(children: [
953954
_AttachFileButton(contentController: contentController, contentFocusNode: contentFocusNode),
954955
_AttachMediaButton(contentController: contentController, contentFocusNode: contentFocusNode),

lib/widgets/icons.dart

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,50 +36,62 @@ abstract final class ZulipIcons {
3636
/// The Zulip custom icon "bot".
3737
static const IconData bot = IconData(0xf104, fontFamily: "Zulip Icons");
3838

39+
/// The Zulip custom icon "camera".
40+
static const IconData camera = IconData(0xf105, fontFamily: "Zulip Icons");
41+
3942
/// The Zulip custom icon "chevron_right".
40-
static const IconData chevron_right = IconData(0xf105, fontFamily: "Zulip Icons");
43+
static const IconData chevron_right = IconData(0xf106, fontFamily: "Zulip Icons");
4144

4245
/// The Zulip custom icon "clock".
43-
static const IconData clock = IconData(0xf106, fontFamily: "Zulip Icons");
46+
static const IconData clock = IconData(0xf107, fontFamily: "Zulip Icons");
4447

4548
/// The Zulip custom icon "edited".
46-
static const IconData edited = IconData(0xf107, fontFamily: "Zulip Icons");
49+
static const IconData edited = IconData(0xf108, fontFamily: "Zulip Icons");
4750

4851
/// The Zulip custom icon "globe".
49-
static const IconData globe = IconData(0xf108, fontFamily: "Zulip Icons");
52+
static const IconData globe = IconData(0xf109, fontFamily: "Zulip Icons");
5053

5154
/// The Zulip custom icon "group_dm".
52-
static const IconData group_dm = IconData(0xf109, fontFamily: "Zulip Icons");
55+
static const IconData group_dm = IconData(0xf10a, fontFamily: "Zulip Icons");
5356

5457
/// The Zulip custom icon "hash_sign".
55-
static const IconData hash_sign = IconData(0xf10a, fontFamily: "Zulip Icons");
58+
static const IconData hash_sign = IconData(0xf10b, fontFamily: "Zulip Icons");
59+
60+
/// The Zulip custom icon "image".
61+
static const IconData image = IconData(0xf10c, fontFamily: "Zulip Icons");
5662

5763
/// The Zulip custom icon "language".
58-
static const IconData language = IconData(0xf10b, fontFamily: "Zulip Icons");
64+
static const IconData language = IconData(0xf10d, fontFamily: "Zulip Icons");
5965

6066
/// The Zulip custom icon "lock".
61-
static const IconData lock = IconData(0xf10c, fontFamily: "Zulip Icons");
67+
static const IconData lock = IconData(0xf10e, fontFamily: "Zulip Icons");
6268

6369
/// The Zulip custom icon "message_moved".
64-
static const IconData message_moved = IconData(0xf10d, fontFamily: "Zulip Icons");
70+
static const IconData message_moved = IconData(0xf10f, fontFamily: "Zulip Icons");
6571

6672
/// The Zulip custom icon "mute".
67-
static const IconData mute = IconData(0xf10e, fontFamily: "Zulip Icons");
73+
static const IconData mute = IconData(0xf110, fontFamily: "Zulip Icons");
74+
75+
/// The Zulip custom icon "paperclip".
76+
static const IconData paperclip = IconData(0xf111, fontFamily: "Zulip Icons");
6877

6978
/// The Zulip custom icon "read_receipts".
70-
static const IconData read_receipts = IconData(0xf10f, fontFamily: "Zulip Icons");
79+
static const IconData read_receipts = IconData(0xf112, fontFamily: "Zulip Icons");
80+
81+
/// The Zulip custom icon "send".
82+
static const IconData send = IconData(0xf113, fontFamily: "Zulip Icons");
7183

7284
/// The Zulip custom icon "star_filled".
73-
static const IconData star_filled = IconData(0xf110, fontFamily: "Zulip Icons");
85+
static const IconData star_filled = IconData(0xf114, fontFamily: "Zulip Icons");
7486

7587
/// The Zulip custom icon "topic".
76-
static const IconData topic = IconData(0xf111, fontFamily: "Zulip Icons");
88+
static const IconData topic = IconData(0xf115, fontFamily: "Zulip Icons");
7789

7890
/// The Zulip custom icon "unmute".
79-
static const IconData unmute = IconData(0xf112, fontFamily: "Zulip Icons");
91+
static const IconData unmute = IconData(0xf116, fontFamily: "Zulip Icons");
8092

8193
/// The Zulip custom icon "user".
82-
static const IconData user = IconData(0xf113, fontFamily: "Zulip Icons");
94+
static const IconData user = IconData(0xf117, fontFamily: "Zulip Icons");
8395

8496
// END GENERATED ICON DATA
8597
}

0 commit comments

Comments
 (0)