Иконка «Добавить на главный экран» Meta для iOS не подходит

Теперь, когда вышла iOS 16.4, я использовал функцию «Добавить на главный экран» (A2HS), чтобы добавить несколько форумов Discourse на главный экран своего iPhone, включая этот форум, Meta.

Когда я добавляю Meta на главный экран в iOS, это выглядит так:

Если присмотреться, то можно заметить, что это на самом деле прозрачное изображение с почти чёрной рамкой, окружённое чёрным фоном. Как только вы это увидите, вы уже не сможете этого не замечать.

Я считаю, что это «apple touch icon»:

https://d11a6trkgmumsb.cloudfront.net/optimized/3X/a/c/ac166452701ce353fa6c8865e99879e8cacfb960_2_180x180.png

Apple автоматически добавляет чёрный фон к этой иконке, создавая два разных оттенка чёрного на иконке.

Хуже того, когда вы нажимаете на иконку, а затем возвращаетесь на главный экран, iOS на мгновение показывает прозрачную иконку, а через секунду рисует чёрный фон.

(Жаль, что Apple не оставляет его прозрачным! Эта иконка выглядит довольно хорошо… хотя бы секунду.)

Я думаю, лучшее решение — заменить «apple touch icon» Meta на иконку без прозрачности. Я использовал пипетку в Photoshop, чтобы заполнить квадрат подходящим почти чёрным фоном, вот так:

Гораздо лучше. Не стесняйтесь использовать мою версию или создать свою собственную, если хотите!

9 лайков

Кроме того, я предлагаю, чтобы Discourse отображал значок «apple touch icon» в настройках на чёрном фоне, чтобы администраторам сайта было более очевидно, что произойдёт, если они попытаются использовать прозрачный значок в качестве «apple touch icon».

РЕДАКТИРОВАНИЕ: Было бы ещё лучше, если бы в настройках администратора значок «apple touch icon» отображался со скруглёнными углами и на чёрном фоне, чтобы администраторы сайта могли видеть, что изображение будет иметь скругление углов, предоставляемое Apple. На одном из других форумов, где я состою, был значок «apple touch icon» с цветной рамкой, и, разумеется, он выглядел ужасно, когда Apple добавила скруглённые углы…

6 лайков

Однако эта область вокруг цвета является частью логотипа. Не уверен, что чёрный на чёрном выглядит правильно. Тёмно-серый на чёрном смотрится лучше, чем альтернативный вариант. Эта область образует букву D в слове Discourse; без неё мы видим лишь перекрывающиеся речевые пузыри.

Версия в тёмной теме инвертирует чёрный:

3 лайка

Хм, я полагаю. Возможно, это?

… Не знаю. Может, вам стоит поговорить с настоящим дизайнером или кем-то подобным!

7 лайков

Я обновил apple-иконку meta на белый фон с нашим логотипом спереди. Теперь должно выглядеть намного лучше :+1:

Спасибо, что обратили на это наше внимание.

11 лайков

Значительно ли изменился масштаб? Определённо, он кажется немного маленьким, теряясь в море белого.

3 лайка

Масштаб действительно изменился, так как белый фон также требовал немного уменьшить иконку, чтобы белое пространство её окружало.

Однако это можно скорректировать, поскольку обратная связь показала, что иконка кажется меньше, чем хотелось бы пользователям.

2 лайка

Что случилось со старым логотипом, который использовался на мобильных устройствах, и почему мы перешли на другой дизайн?

Логотип был изменён, потому что ранее использовавшийся прозрачный PNG-файл при добавлении на главный экран заменял прозрачность на чёрный цвет, что фактически закрывало часть логотипа.

Его заменили на иконку с явным белым фоном, чтобы логотип корректно отображался при добавлении на главный экран.

3 лайка

Я вас понимаю, но я думаю, что мы точно можем сделать её крупнее.

На данный момент:

  • DiscourseHub имеет большой логотип Discourse (окружённый белым)
  • Meta PWA имеет меньший логотип Discourse (окружённый белым)

Можем ли мы просто изменить это так, чтобы в DiscourseHub использовался старый логотип, который немного выходил за границы?

1 лайк

Вот они рядом:

2 лайка

С точки зрения дизайна, я думаю, что нам действительно стоит уменьшить логотип и в приложении DiscourseHub.

Сравнивая их рядом, иконка слева лучше располагает логотип для баланса, чем версия Hub справа.

4 лайка

Это теперь моя новая вкладка в Firefox. Судя по всему, белый фон на иконке выглядит очень нестандартно.

3 лайка

Почему Firefox использует иконку apple touch? Я ожидал, что Firefox будет использовать одну из иконок, указанных в https://meta.discourse.org/manifest.webmanifest.

Действительно, я думал, что именно поэтому в Discourse есть два отдельных параметра: «иконка манифеста» и «иконка apple touch», поскольку Apple игнорирует прозрачность и применяет маску со скруглёнными углами, тогда как другие браузеры должны следовать стандарту Web Manifest, поддерживая прозрачность.

2 лайка

И Chrome (иконки вкладок на Android), и Firefox (страница новой вкладки) используют apple-touch-icon как версию favicon с высоким разрешением, и оба были затронуты этим изменением.

Насколько мне известно, этот файл используется только для функций PWA, например, для значка при добавлении на главный экран.

2 лайка

Я только что заметил, что иконка Android PWA этого форума тоже немного сломана.

Я только что запустил Android Studio, открыл эмулятор Pixel 4 с Android API 31, установил последнюю версию Google Chrome и добавил Meta на главный экран. Иконка выглядит так:

Как я понимаю, проблема в том, что в https://meta.discourse.org/manifest.webmanifest указан вариант с двумя иконками: одна для цели «any», а другая — для цели «maskable». Иконка «maskable» подразумевает, что с неё можно вырезать круг радиусом 40%.

К счастью, существует чётко определённая и стандартизированная «минимальная безопасная зона», которую поддерживают все платформы. Важные элементы вашей иконки, например логотип, должны находиться внутри круглой области в центре иконки радиусом 40% от ширины иконки. Внешние 10% по краям могут быть обрезаны.

Вы можете проверить, какие части ваших иконок попадают в безопасную зону, с помощью Chrome DevTools. Откройте Progressive Web App, запустите DevTools и перейдите на панель Application. В разделе Icons выберите опцию Show only the minimum safe area for maskable icons. Иконки будут обрезаны так, чтобы была видна только безопасная область. Если ваш логотип виден внутри этой зоны, всё в порядке.

Вот как выглядит панель Manifest для Meta в Chrome DevTools, когда я включаю «Show only the minimum safe area for maskable icons»:

Поскольку иконка должна быть maskable, Android/Chrome вырезает из неё круглую часть по центру, что приводит к плохому результату.

Я также протестировал иконку Apple Touch Icon, которую @Stephen описал как «тонущую в море белого», в качестве maskable-иконки в манифесте через Chrome DevTools. Но даже эта иконка оказывается чуть слишком большой для стандартного размера maskable-иконки: нижний левый угол обрезается.

2 лайка

У меня на Chrome для Android это не воспроизводится. Для Chrome на Android значок новой вкладки, похоже, просто favicon.

Можете ли вы найти какую-либо документацию о том, какой иконку использует Firefox для страницы новой вкладки?

Если Firefox не использует иконку из манифеста для страницы новой вкладки, то я бы ожидал, что он хотя бы использует одну из иконок <link rel="icon">.

Возможно, Firefox возвращается к apple-touch-icon, потому что <link rel="icon"> слишком маленький?

Кстати, можно иметь несколько элементов <link rel="icon"> с разными атрибутами sizes. Думаю, было бы логично использовать два таких элемента: первый указывает на favicon, а второй — на иконку из манифеста с большим значением sizes. Скорее всего, это заставит Firefox использовать лучшую, более крупную иконку. :thinking:

В более широком смысле, я думаю, мораль этой истории такова:

  1. На самом деле это своего рода проект — разобраться, какие иконки используются где и почему.
  2. Панель администратора Discourse не предоставляет администраторам почти достаточных рекомендаций, чтобы сделать всё правильно.

Панель администратора должна:

  • Запрещать прозрачность в иконках манифеста и apple-touch-icon.
  • Отображать иконку манифеста в виде круга с радиусом 40%, как это делает Chrome DevTools.
  • Отображать apple-touch-icon со скруглёнными краями, как это делает Apple.

С такими возможностями дизайнер мог бы начать пытаться решить проблему загрузки иконок, которые хорошо выглядят во всех следующих случаях:

  • iOS A2HS
  • Android A2HS
  • Страницы новых вкладок для Firefox, Chrome и Safari
2 лайка