惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
IT之家
IT之家
T
The Blog of Author Tim Ferriss
V
V2EX
博客园 - 聂微东
The Cloudflare Blog
Blog — PlanetScale
Blog — PlanetScale
A
About on SuperTechFans
U
Unit 42
Vercel News
Vercel News
L
LangChain Blog
博客园 - 司徒正美
H
Help Net Security
Recent Announcements
Recent Announcements
Recorded Future
Recorded Future
V
Visual Studio Blog
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
Y
Y Combinator Blog
C
Check Point Blog
博客园 - 三生石上(FineUI控件)
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
The Register - Security
The Register - Security
The GitHub Blog
The GitHub Blog
B
Blog RSS Feed
F
Fortinet All Blogs
B
Blog
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
云风的 BLOG
云风的 BLOG
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
F
Full Disclosure
有赞技术团队
有赞技术团队
罗磊的独立博客
博客园_首页
MyScale Blog
MyScale Blog
aimingoo的专栏
aimingoo的专栏
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium
Engineering at Meta
Engineering at Meta
量子位
I
InfoQ
小众软件
小众软件
P
Proofpoint News Feed

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Сабглифы, гайдлайн на 50 страниц и 2500 иконок: пересобрали всю систему, когда «просто» захотели освежить иконки
Тима Прилипко · 2026-06-16 · via Все публикации подряд на Хабре

Средний

7 мин

5

Привет друзья! Меня зовут Тима, я дизайнер в дизайн-системе Альфа-Бизнес.  Когда в крупном финтех-продукте заходит речь об обновлении иконок, со стороны это кажется легкой творческой задачей на пару недель: сел, порисовал в Figma, выгрузил — готово. Но в реальности бигтеха любая попытка просто «освежить визуал» моментально сталкивается с суровой инфраструктурой, сотнями легаси-компонентов и хаосом, который годами копился в коде и макетах.

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

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

История началась с довольно простой задачи — обновить иконки. Но чем дальше я погружался, тем понятнее становилось, что история здесь шире рядового редизайна.

Зачем всё это

В B2B-продуктах интерфейс почти всегда плотный. Действия, документы, риски, шаблоны, роли, сервисы. В таких интерфейсах как нигде, важны акценты и структура. Особенно это чувствуется на экранах, где есть всё и сразу: таблицы, действия, статусы, сервисы, документы. Там текст перестаёт справляться с навигацией в одиночку. 

Пользователю нужно быстро ориентироваться среди похожих сущностей. И тут на помощь приходят иконки. Они становятся визуальными ориентирами, «якорями», которые помогают быстрее разобраться в интерфейсе.

Когда система иконок собрана здраво, интерфейс читается почти автоматически. Взгляд цепляется за знакомые формы, мозг быстрее распознаёт нужные объекты. Когда нет — экран превращается в равномерный шум.

Предвестники изменений

За последний год интерфейсы Альфа-Бизнес качественно шагнули вперёд. Интерфейсы становятся легче, аккуратнее, выразительнее. В дополнении к изменению интерфейсов у Альфы появился свой собственный шрифт — Alfa Interface Sans. Вместе с обновлениями меняется общее ощущение интерфейса: ритм, плотность, работа с воздухом, характер форм.

На этом фоне старые иконки начали «звенеть». Они перестали совпадать по весу, пластике и внутреннему ритму.

Старые, массивные иконки  выделяются по весу и ломают ритм страницы

Старые, массивные иконки  выделяются по весу и ломают ритм страницы

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

  • где-то иконка не по гайду заехала в набор (ага, конечно же в виде исключения) и расползлась по интерфейсам;

  • где-то команда нарисовала странную иконку;

  • где-то выбрали не ту метафору;

  • где-то не заменили старую версию.

Постепенно таких шероховатостей становится всё больше и больше. В какой-то момент это начинает влиять на все интерфейсы банка. Оказывается, что одно и то же действие обозначается по-разному, похожие сущности выглядят как разные, а в библиотеке, макетах и коде живут разные версии одних и тех же иконок.

Любая локальная правка добавляет ещё одно исключение, а система продолжает расползаться как масляное пятно, и, к сожалению, это почти невозможно исправить точечно.

Стало ясно, речь уже не про обновление UI. Если просто перерисовать иконки, через какое-то время всё вернётся к тому с чего началось...

Поиск стиля

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

Мы провели несколько дизайн-сессий, где определили:

  • характер форм;

  • общий уровень строгости;

  • детализацию, радиусы и насыщенность линий;

  • поведение иконок в разных размерах;

  • работу с деталями и мелкими элементами;

  • составные метафоры;

  • совместимость со шрифтом Alfa Sans;

  • читаемость на плотных B2B-экранах;

  • поведение набора в новых интерфейсах и концептах.

При этом мы учитывали весь Альфа-Банк целиком, а не только Альфа-Бизнес. Стиль должен масштабироваться на все продукты и хорошо работать на любой платформе. 

Проверяли иконки и на базовых глифах и на сложных метафорах. На базовых получается быстрее нащупать интонацию, а сложные быстро показывают, где подход даёт сбой.

В итоге через этот этап прошло больше десяти полноценных стилевых концептов и больше сотни тестовых иконок. Постепенно из этого начал складываться общий визуальный язык.

В поиске баланса

Были решения, которые не всегда совпадали с ожиданиями. Иногда хотелось сделать иконку выразительнее, но она начинала выбиваться из общего ряда, а где-то слишком рациональное решение делало набор излишне сухим. 

Обязательно фиксируйте ход мысли и спорные прямо в процессе. На длинной дистанции такая фактура не даст потерять логику при тиражировании.

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

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

Размеры и начертания

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

Параллельно нужно было подружить набор с новым визуальным языком Альфа-Бизнес и новым Alfa Sans. Мы отдельно примеряли иконки рядом с разными начертаниями шрифта, проверяли. Проверяли, как они ощущаются в плотных таблицах, сайдпанелях, меню, списках и формах.

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

Здесь важный момент: иконку нельзя просто масштабировать. При уменьшении или увеличении она начинает выглядеть иначе — меняется толщина линий, радиусы, насыщенность формы, что напрямую влияет на читаемость. Поэтому для каждого размера и каждого стиля мы делали отдельные версии. Метафора оставалась той же, но детали подстраивались под конкретный масштаб.

Также сделали то, что давно нужно было сделать — избавились от маечных размеров (S, M, XL). Архитектура стала проще и набор будет проще масштабироваться. 

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

Сложные иконки

С ростом набора начали появляться случаи, которые не решаются одной простой метафорой. Похожие сущности, тонкие различия, составные метафоры — всё это требует более гибкого подхода. Если для каждого случая рисовать отдельную иконку, система быстро теряет управляемость.

Поэтому появился промежуточный уровень — сабглифы: небольшие микроиконки, которые я вынес в отдельные компоненты. Их можно комбинировать с базовой формой и тем самым уточнять смысл. Это позволяет не раздувать набор и сохранить его логическую структуру.

Ищите замысловатые и неоднозначные кейсы. В нашем случае такими кейсами были иконки продуктов Альфа-Бизнес. Они где-то разные, где-то похожие и их много. Мы выделили их в отдельную касту иконок (иконки продукта), которые запрещено переиспользовать в другом контексте.

Доработка нейминга

Мы не стали шатать систему нейминга концептуально. Имя импорта иконки формируется из названия, у которого есть устоявшиеся правила. Важно было сохранить этот флоу для дизайнеров и разработчиков, чтобы не ломать существующие процессы ради формального улучшения.

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

Закрепление правил

Пока над иконками работаешь один или в небольшой команде, многое держится в головах, комментариях в фигме, заметках в тетради. Потом правила неизбежно требуют систематизации.

Дизайнеры в Альфе самостоятельно рисуют новые иконки, если в библиотеке нет необходимой. Необходимо организовать передачу знаний и правил в удобном формате.

Поэтому мы собрали гайд, который работает не только как витрина, но и как инструмент. Его задача — помочь принимать решения без постоянных обсуждений. В итоге родился интерактивный документ на 50 страниц, с чек-листами, полезными ссылками и блок-схемами.

Для тестирования гайда мы собрали группу дизайнеров. Они проверяли, можно ли по нему нормально работать, не конфликтуют ли правила, всё ли понятно. (Ребята, если вы читаете эту статью, спасибо ещё раз!) 

В итоге в процессе тиражирования пересобирали гайд раз 10 и это нормально!

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

Систематизация

Чтобы производство иконок вписалось в продуктовый процесс нужно было, чтобы иконки стали частью продуктового процесса — со своей логикой хранения, проверки и поставки. Вместо формы иконок на первый план выходят процессы.

Для удобства дизайнеров мы решили хранить рядом не слитые исходники иконок в слоях. Их можно использовать как референс или рабочую основу. Иконки больше не нужно рисовать с нуля, можно взять готовую (или её часть) и модифицировать по общей логике.

Параллельно донастроили процесс экспорта в код. Ручной экспорт на таком масштабе быстро становится узким местом, которое отнимает время и приводит к ошибкам.

Ещё разработали отдельный плагин для подготовки иконки к публикации: автоматическая модификация заливки для Android, проверка целостности форм, нейминга и наличия алиасов для поиска. Это сняло с плеч дизайнеров бóльшую часть рутинной проверки и сделало процесс предсказуемее.

Итог

Сейчас отрисовано 2500+ иконок, новые рисуются руками дизайнеров из команд, вопросов в чате стало меньше, а процесс поставки стабильнее.

Но впереди ещё туча работы: глобальная миграция, внедрение в компоненты и проработка анимации. 

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

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


Подписывайтесь на Телеграм-канал Alfa Digital — там рассказываем о работе в IT, делимся новостями, анонсами митапов и квартирников, рассказываем о технологиях, делимся советами наших экспертов, вакансиями и стажировками, иногда шутим.

Читайте также: