Skip to content

Commit 4409c1c

Browse files
committed
logo: Use new design, and support fancy Android features
Fixes #415. Fixes #1254. Fixes #1401. Fixes #1402. Thanks to Vlad for developing the new design through several iterations. Changes from the old version include: * The background gradient is more saturated. (#1254) * The "BETA" label is cleaner, and has a more balanced layout relative to the main "Z" of the logo. (#415) * The icon is "adaptive" using the API introduced in Android 8, which lets it be handled more nicely by Android launchers / home screens that want to put the app icon in a circle (like on Pixel) or an iOS-style squircle (like on Samsung devices). In particular this should avoid it getting shrunk and placed on a bed of white padding. (#1402, originally filed on zulip-mobile in 2020.) * The assets include a monochrome foreground icon, which makes the app work with the "themed icons" introduced in Android 13, for users who choose to enable that. (#1401, originally filed on zulip-mobile by a user report last year.) This commit continues to use "BETA" versions of the logo for the actual app, but also adds the corresponding non-beta versions of the source SVGs so that we can smoothly switch to those when it comes time to launch the app. The relevant area in Figma is around here: https://www.figma.com/design/1JTNtYo9memgW7vV6d0ygq/Zulip-Mobile?node-id=6549-5962&t=mMvSGpqwbgJBIv6U-0 but the exact story of these source files is somewhat complicated, because there are a number of technical requirements and it's taken several rounds of iteration between design and engineering to get to this result. Specifically: * zulip-white-z-beta-on-transparent.svg was "beta-foreground.svg" from Vlad here: https://chat.zulip.org/#narrow/channel/530-mobile-design/topic/updated.20app.20icon/near/2072480 * zulip-white-z-on-transparent.svg and zulip-gradient.svg were from Vlad in this message (as code blocks): https://chat.zulip.org/#narrow/channel/530-mobile-design/topic/updated.20app.20icon/near/2038233 * Then zulip-combined.svg was "app_icon_1.svg" here: https://chat.zulip.org/#narrow/channel/530-mobile-design/topic/updated.20app.20icon/near/2030417 which I produced as described in that message from "app_icon.svg" here: https://chat.zulip.org/#narrow/channel/530-mobile-design/topic/updated.20app.20icon/near/2030569 * And zulip-beta-combined.svg I assembled myself, in a text editor, out of those pieces. * I also wrote ic_launcher.xml.
1 parent 76c0080 commit 4409c1c

35 files changed

+66
-38
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3+
<background android:drawable="@mipmap/ic_launcher_background"/>
4+
<foreground android:drawable="@mipmap/ic_launcher_monochrome"/>
5+
<monochrome android:drawable="@mipmap/ic_launcher_monochrome"/>
6+
</adaptive-icon>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Lines changed: 20 additions & 0 deletions
Loading

assets/app-icons/zulip-combined.svg

Lines changed: 10 additions & 0 deletions
Loading

assets/app-icons/zulip-gradient.svg

Lines changed: 9 additions & 0 deletions
Loading

assets/app-icons/zulip-icon-circle-beta.svg

Lines changed: 0 additions & 10 deletions
This file was deleted.

assets/app-icons/zulip-icon-square-beta.svg

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 4 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

tools/generate-logos

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,23 +45,18 @@ jq --version >/dev/null 2>&1 \
4545
|| die "Need jq -- try 'apt install jq'."
4646

4747

48+
# White Z above "BETA", on transparent background.
49+
# TODO(#715): use the non-beta version
50+
src_icon_foreground="${root_dir}"/assets/app-icons/zulip-white-z-beta-on-transparent.svg
4851

49-
# Suppose (for comments below) this points to a zulip.git worktree.
50-
# zulip_root="${root_dir%/*}"/zulip
52+
# Gradient-colored square, full-bleed.
53+
src_icon_background="${root_dir}"/assets/app-icons/zulip-gradient.svg
5154

52-
# White Z in gradient-colored circle.
53-
# src_icon_circle="${zulip_root}"/static/images/logo/zulip-icon-circle.svg
54-
55-
# White Z in gradient-colored circle with BETA banner.
56-
# Contains a near-verbatim copy of ${src_icon_circle}.
57-
src_icon_circle_beta="${root_dir}"/assets/app-icons/zulip-icon-circle-beta.svg
58-
59-
# White Z in gradient-colored square, full-bleed.
60-
# src_icon_square="${zulip_root}"/static/images/logo/zulip-icon-square.svg
61-
62-
# White Z in gradient-colored square, full-bleed, with BETA banner.
63-
# Contains a near-verbatim copy of ${src_icon_square}.
64-
src_icon_square_beta="${root_dir}"/assets/app-icons/zulip-icon-square-beta.svg
55+
# Combination of ${src_icon_foreground} upon ${src_icon_background}...
56+
# more or less. (The foreground layer is larger, with less padding,
57+
# and the SVG is different in random other ways.)
58+
# TODO(#715): use the non-beta version
59+
src_icon_combined="${root_dir}"/assets/app-icons/zulip-beta-combined.svg
6560

6661

6762
make_one_ios_app_icon() {
@@ -72,7 +67,7 @@ make_one_ios_app_icon() {
7267
local output_basename=Icon-"${size_pt}x${size_pt}@${scale}x".png
7368
local output="${iconset}"/"${output_basename}"
7469
if [ ! -f "${output}" ]; then
75-
rsvg-convert "${src_icon_square_beta}" -w "${size_px}" -o "${output}"
70+
rsvg-convert "${src_icon_combined}" -w "${size_px}" -o "${output}"
7671
fi
7772

7873
printf >>"${contents}" \
@@ -152,9 +147,10 @@ make_android_icon() {
152147
}
153148

154149
make_android() {
155-
# Launcher icon goes in a mipmap:
150+
# Launcher icons go into mipmaps:
156151
# https://developer.android.com/training/multiscreen/screendensities#mipmap
157-
make_android_icon "${src_icon_circle_beta}" 48 main mipmap ic_launcher
152+
make_android_icon "${src_icon_background}" 108 main mipmap ic_launcher_background
153+
make_android_icon "${src_icon_foreground}" 48 main mipmap ic_launcher_monochrome
158154
}
159155

160156
make_ios

0 commit comments

Comments
 (0)