Таббар – элемент интерфейса, упрощающий навигацию в приложении. Причем достаточно популярный: для этой статьи я скачал 500 аппов и лишь в 14 его не было.
Может показаться, что таббар – это просто. Но, как показывает практика, это ощущение обманчиво, и классный таббар от убогого отличает множество деталей.
Сегодня будет много анти-примеров – все для того, чтобы вы не наступали на грабли, на которые кто-то уже наступил.
И, как всегда, подписывайтесь на канал и делитесь с коллегами – я это очень ценю.
Структура статьи
Для удобства статью я разбил на блоки. Так будет легче для восприятия. Каждый из блоков содержит в себе детальный чек-лист.
1. Наличие и расположение
Таббар используется
Во многих случаях таббар более эффективен по сравнению с меню, т.к. до него не приходится тянуться через весь экран, а разделы доступны в 1 касание.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/bc4/f01/b9b/bc4f01b9b45a804157f9199f9418ed1c.png)
Если таббар, то без меню
Решили использовать таббар? Отказывайтесь от бургер-меню вверху экрана, иначе они начнут конкурировать за внимание пользователя.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/baa/2a9/e95/baa2a9e9538d355fa5ae010f206a41d2.png)
Не слишком большой
Таббар фиксирован и перекрывает собой часть контента на экране. Поэтому будет лучше, если он не будет занимать слишком много места по высоте.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/f02/f03/ca1/f02f03ca162e73510a99a17127f80cc3.png)
Не слишком мелкий
При этом не стоит перегибать палку и делать его слишком мелким – иначе может возникнуть риск промахов при нажатии на элементы.
Не сливается с экраном
Спроектируйте таббар так, чтобы он воспринимался, как отдельный элемент и не сливался с остальными элементами интерфейса.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/411/55b/7de/41155b7de0660d9ef5bfa06ef2736bbf.png)
Выделение тенью
Часто можно встретить выделение таббара ненавязчивой тенью, которая не привлекает к себе внимания, но дает понять, что таббар – отдельный элемент.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/b16/aa0/027/b16aa002762f6b8b2d45a7d1e5d9a10c.png)
Выделение линией
В качестве менее броской альтернативы тени таббар на фоне остальных элементов экрана можно выделить за счет тонкой разделительной линии.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/460/f03/ca9/460f03ca959485a1df5363918628ed7a.png)
Объект поверх контента
У некоторых компаний таббар реализован в виде отдельного объекта, расположенного поверх контента и не прилипающего к границам экрана.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/076/476/4d8/0764764d86a0bae5d0bddd6624401c14.png)
Выделение цветом?
Чаще всего цвет фона таббара нейтральный. Но если вы решили выделить таббар цветом, убедитесь, что это не будет смотреться слишком «кричаще».
![❓ ❓](https://habrastorage.org/getpro/habr/upload_files/596/764/6e6/5967646e6157608299cd9cfa88423210.png)
Таббар с эффектом размытия?
Такое исполнение может смотреться достаточно интересно. Но важно отработать риск, что из-за полупрозрачного фона текст элементов не всегда будет легко считываться.
![❓ ❓](https://habrastorage.org/getpro/habr/upload_files/601/960/119/601960119ea0db49ef7d48d7aa1a391b.png)
2. Состав элементов таббара
Элементов не слишком много
Не стоит перегружать таббар большим числом элементов, иначе они начнут смотреться слишком скомкано. Порог в 5 элементов лучше не превышать.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/423/e65/c60/423e65c6015688ead72713fbecbdae02.png)
Элементов не слишком мало
И наоборот, если таббар используется для размещения буквально пары элементов, могут возникнуть вопросы к его целесообразности.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/38d/55a/8b4/38d55a8b403c65afe74fbde12f0db747.png)
Ключевые разделы
В таббар лучше вынести лишь ключевые разделы. Все вторичные разделы могут со временем вызвать раздражение, т.к. при использовании они будут видны постоянно.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/c98/e4c/885/c98e4c885ad678aa9500f01ce7e6fa29.png)
Раздел «Ещё»
Если все требуемые разделы не помещаются в таббар, их можно собрать в общем элементе верхнего уровня, при тапе по которому будут доступны все остальные.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/fc6/d74/286/fc6d74286161a32536c3297548ac8857.png)
Привязка к контексту
Элементы таббара могут быть динамическими: например, если пользователь еще не авторизовался, вместо элемента «Профиль» его может встретить элемент «Войти».
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/f2f/f10/1b1/f2ff101b1a619e231899543649a8aa80.png)
3. Иконки разделов
Репрезентативны
Сделайте иконки репрезентативными разделам, которые за ними скрываются. Не создавайте дополнительную когнитивную нагрузку на пользователя.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/3fa/844/dd4/3fa844dd4dab7bc7922a7770fd8af1d5.png)
Понятны
Даже если иконка отражает суть раздела, убедитесь, что сама по себе она понятна пользователям. Например, здесь сразу не догадаешься, что имел в виду автор.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/727/475/f31/727475f3115b79269008de445bd24f80.png)
Подстраиваются под контекст
Некоторые специально обновляют иконки таббара под контекст. Например, под праздники. Главное, чтобы новый дизайн не затруднял восприятие.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/237/72c/2c4/23772c2c46f35cf6803340e4494587a7.png)
В едином стиле
Как и в случае с быстрыми действиями, иконки в таббаре отображаются в 1 ряд, и лучше, если они будут реализованы в едином стиле.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/684/4b5/38f/6844b538fb0e9f38df5d2ab286357017.png)
Контрастны
Хоть серые иконки разделов – это частая практика, не стоит делать их слишком блеклыми, иначе у клиента может возникнуть ощущение, что они неактивны.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/634/a45/921/634a459210489130438aa78a209d587e.png)
Единая толщина
В частности, если иконки выполнены линиями разной толщины, конечно же, большинство пользователей это не заметят, но такого лучше не допускать:
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/765/b27/151/765b271519c47f3efa54fc27642f544f.png)
В хорошем качестве
Гигиенический момент: иконки должны быть загружены в хорошем качестве, не должны пикселить или размываться. В идеале – в векторном формате.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/08a/d82/89c/08ad8289c3755bf16e20b84360cee1d2.png)
Без мелких деталей
Задача иконки – облегчить восприятие раздела. Добавляя в нее мелкие и трудно различимые детали, мы можем достичь противоположного эффекта.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/ea6/04c/f1d/ea604cf1d9714c18e4beec8e09dbbac1.png)
Не слишком крупные
Опять же, везде важна золотая середина. Слишком крупные иконки могут смотреться неэстетично. Анти-пример, разумеется, есть в наличии:
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/2b3/1d2/6ee/2b31d26eeba691c1e286465d2c12efdb.png)
Без разделителей
Разделители между иконками в таббаре – крайне редкая практика. Вероятно, этому есть причина. Но я просто не мог обойти такое исполнение стороной:
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/89f/425/383/89f42538348ddd7ee5cf2038c2ae468f.png)
Реализованы с отступами
Таббар должен «дышать»: иконки не должны прилипать к его границам. Поэтому лучше снабдить элементы отступами.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/cb4/175/a45/cb4175a45e77592ad1deb698543cabc4.png)
4. Названия разделов
Добавлены
Особенно если в таббаре есть нестандартные разделы, снабдите иконки подписями, чтобы облегчить их восприятие.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/0e9/131/c1d/0e9131c1d40c769df906d2e00b0ce9f1.png)
Контрастны
Сделайте текст разделов достаточно контрастным по отношению к фону таббара. Иначе, опять же, можно вызвать проблемы с его читаемостью.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/8c8/ebc/f04/8c8ebcf044ab6406ccdd020798e4f5f9.png)
Размер шрифта не мелкий
Из-за ограничений размера самого таббара размер шрифта в нем будет небольшим. Но не стоит уходить в крайности и делать его нечитаемым:
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/0a5/f4a/9de/0a5f4a9dea99e681bad6a6ad2f07f1de.png)
Толщина шрифта достаточна
Из-за ограничений размера самого таббара размер шрифта в нем будет небольшим. Поэтому лучше не воздержаться от слишком тонких начертаний шрифта.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/a7e/eba/1d0/a7eeba1d088a67775d79345bde6ec5e7.png)
Краткие
Пространство в таббаре сильно ограничено. Поэтому будет лучше, если тексты подписей к разделам будут максимально краткими.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/65d/b07/696/65db0769626966b5ca6602d7d1cee047.png)
Понятные
Возможно не всем клиентам будут понятны ваши изначальные формулировки разделов и целевых действий. Поэтому не поленитесь – подключите к задаче UX-редактора.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/ea4/89f/f13/ea489ff136b962369e723d26ec29a57e.png)
С отступами
Будет лучше, если тексты разделов не будут прилипать вплотную к иконкам и между ними будут отступы.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/0a3/d9b/4e7/0a3d9b4e7d35cdb21ec7322704dd0859.png)
Выровнены
Подписи должны быть выровнены относительно друг друга. Иначе может возникнуть ощущение, что к разработке и дизайну относились спустя рукава.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/c14/420/d86/c14420d8620eb86d4a57780ae7af3cd5.png)
Видны полностью
Разместите тексты в таббаре так, чтобы они не перекрывались системной полоской iOS. От такого исполнения лучше воздержаться:
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/64e/6e9/8c0/64e6e98c0390aa5b025ba66aa422c3e3.png)
Локализованы
Если вы делаете локализацию приложения на другие языки, не забудьте перевести текст разделов в таббаре.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/fc6/d8e/ed8/fc6d8eed8b99ca0dd9c71e2fdd806cee.png)
Локализация корректна
Лучше не ограничиваться Google Translate и привлечь к переводу носителей языка / сервисы локализации. Иначе тексты могут быть не совсем понятны аудитории:
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/e11/ef3/559/e11ef3559d45b44d35fe12ee0d13efae.png)
Единый размер шрифта
Некоторые при локализации решают сэкономить ресурсы и вместо проработки текстов сделать размер шрифта динамическим. Получается так себе:
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/0ad/1b0/d7a/0ad1b0d7aeebd7008a7409c82909940f.png)
Тексты не обрезаются
А некоторые открывают для себя волшебные возможности обрезания текста, если он не впишется. Аудитория и в этом случае будет разработчикам «благодарна»:
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/ac9/639/123/ac9639123aa723ba2c9da46922a75da7.png)
5. Бейджи и маркеры
Используются
Размещение бейджей и маркеров поверх иконок таббара позволяет привлечь внимание к разделу или целевому действию.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/60e/146/6c3/60e1466c3bbe1652b00e1023e710ef13.png)
Визуализация стандартна
Используйте стандартную визуализацию бейджей. Лучше если они будут схожи по дизайну со стандартными бейджами на иконках приложений в iOS.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/778/9ba/57f/7789ba57f4f33ebc0040d922ca443318.png)
Не перекрывают иконки
Хоть бейджи и созданы для привлечения внимания, они не должны визуально «кричать» – в том числе слишком сильно перекрывать собой иконки таббара.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/986/f2d/835/986f2d83521dedad8d99dfe5dbbbcced.png)
Осторожнее со знаком «!»
Восклицательный знак в кружке чаще всего ассоциируется с ошибкой, и привлекать таким образом внимание к тому, что пользователь просто не авторизован, не стоит.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/472/a47/824/472a47824d6eb9cb2b8ced3f79a73344.png)
Число в бейдже корректно
Базовый момент: число в бейдже должно соответствовать числу уведомлений или «задач», стоящих перед пользователем.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/605/983/925/605983925ceae2966660147d2fbdacf6.png)
Изначальное число минимально
Встречаются кейсы, когда сразу после установки приложения клиент сталкивается с тем, что у него несколько десятков задач. Как говорится, «добро пожаловать!»
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/d69/cb2/dc2/d69cb2dc2ae73520c242c77ea202b8cd.png)
Точка vs. бейдж
Если вам требуется лишь привлечь внимание к разделу без фокуса на количестве уведомлений, бейдж можно заменить точкой – смотреться будет более лаконично.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/df0/97e/f79/df097ef79e52265f23b092f273e5ac2f.png)
6. Переключение разделов
Моментально
Спроектируйте подгрузку данных так, чтобы переключение между разделами при тапе было моментальным и не возникало никаких значимых задержек.
Реакция на касание
Добавление незначительной реакции элементов таббара на касание при переключении разделов может сделать интерфейс более отзывчивым.
Микро-анимация
С помощью микро-анимации можно сделать переключение между разделами более явным и визуально приятным.
Переход из быстрых действий
Если в быстрых действиях в приложении вы используете ссылки на разделы из таббара, убедитесь, что он корректно реагирует и выделяет нужный раздел.
Тактильная обратная связь
Также при переключении разделов таббара можно добавить незначительную вибрацию, дополнительно подтверждающую это действие.
7. Highlight активного раздела
Активный раздел подсвечен
Одна из основных задач таббара – это навигация. Поэтому активный раздел лучше всегда подсвечивать.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/5ab/1bd/371/5ab1bd3710d12c864c8d05316d85ef49.png)
Без визуальной конкуренции
Некоторые, помимо разделов таббара также выделяют цветом какой-то основной. В результате это усложняет навигацию: в каком разделе сейчас находится клиент?
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/d15/e6f/cc8/d15e6fcc8138a74e35701d976aea99ef.png)
Изменение цвета иконки
Выделить активный раздел в рамках таббара можно просто за счет изменения цвета его иконки. Смотреться будет неплохо:
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/158/45d/2c9/15845d2c9a39080e89c1c2adbf97738e.png)
Заливка vs. контур
Можно пойти дальше и добавить к иконке активного раздела заливку, в то время как остальные будут отображаться лишь в контуре:
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/a74/cb7/9e2/a74cb79e25733d3b27b2f72243157955.png)
Градиентная заливка
Интересный пример выделения элемента – это заливка иконки не одним цветом, а градиентом в соответствии с корпоративными цветами:
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/40b/742/874/40b742874a9756ff72ae27de772c8192.png)
Разноцветные иконки?
Иногда иконки можно встретить в 2 и более цветах. Что думаете по этому поводу? Хорошо или не очень? Что стоит учесть? Напишите в комментариях.
![❓ ❓](https://habrastorage.org/getpro/habr/upload_files/cd0/7c4/992/cd07c4992165e1b740ce7cecfee43117.png)
Фоновая подсветка
Особенно если интерфейс приложения темный, фоновая подсветка раздела может стать хорошей альтернативой выделению иконки и текста цветом.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/a22/b24/2f8/a22b242f87f124820c169bca1a90b202.png)
Текст виден
Некоторые выделяют иконку, но скрывают текст текущего раздела, тем самым затрудняя восприятие на уровне пользователя.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/881/545/4ef/8815454ef6df384b31bd7a95a957d593.png)
Форматирование текста
Также в активном разделе часто можно встретить изменение цвета текста по аналогии с цветом иконки и незначительное увеличение толщины шрифта.
![✅ ✅](https://habrastorage.org/getpro/habr/upload_files/ec1/ff9/188/ec1ff918800e8764994ba4b3d0a4d49b.png)
Цвет текста vs. иконки
Возможно, это вкусовщина. Но делать подпись в другом цвете по отношению и к иконке, и к неактивному состоянию – перебор. Что думаете по этому поводу?
![❓ ❓](https://habrastorage.org/getpro/habr/upload_files/d02/8f1/243/d028f1243126bab625c2ad5f2e5a4ed4.png)
Подчеркивание?
Также спорная практика: активный элемент становится менее заметен, а полоска подчеркивания начинает перекликаться с системной полоской внизу.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/4cf/0c5/4fe/4cf0c54fe9d5056ca739da507cf95c82.png)
Без выделения фона
Выделение фона активного элемента встречается очень редко, и высоки шансы, что такой способ подсветки активного раздела будет выглядеть «не очень» изящно:
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/1f0/2a6/015/1f02a60151f127b81de9b730f18abf5d.png)
Выделение заметно
Основная цель выделения должна выполняться: активный элемент должен быть хорошо заметен как на фоне других элементов, так и на фоне таббара в целом.
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/abe/1ec/275/abe1ec275c26237ac4b1fbc8cf8586ae.png)
Легко воспринимается
Выделяя активный раздел на фоне остальных, убедитесь, что он будет визуально легко восприниматься и не будет «резать глаз»:
![❌ ❌](https://habrastorage.org/getpro/habr/upload_files/631/0c8/f59/6310c8f59ce0f031b214ba7830152888.png)
8. Пара интересных идей
Контекстное меню
При зажатии элемента таббара (long press) можно вызывать контекстное меню с релевантными действиями. Главное, чтобы пользователи знали об этой функции.
Настройка таббара
Ну и последнее. Есть техническая возможность дать клиенту самому настроить состав таббара. Как считаете, где бы это могло пригодиться? Напишите в комментариях.
To be continued...
Хоть таббар и кажется достаточно простым, при его проектировании можно совершить много ошибок. Избежать их позволяет именно насмотренность. Надеюсь, что помогаю вам ее прокачивать.
Следующие статьи будут с таким же уровнем детализации. Продолжаем создавать базу знаний по UX/UI мобильных приложений.
Не забудьте подписаться на канал в Telegram и поделиться этим постом с друзьями и коллегами. Будем на связи.