UX FLOW • Сергей Мухин
О важности концептуального виденья Сейчас я и команда в основном работаем над созданием движка низкоуровневой вёрстки для SDUI-фреймворка. И недавно я получил неожиданную просьбу от тимлида разработки: сформулировать концептуальное видение проекта😱 Оказалось…
Дополнение про виденье
Принципы — это далеко не весь манифест, но, пожалуй, самая неспецифичная для проекта его часть. Как это должно работать: при принятии архитектурного решения — заводить компонент или нет — команда возвращается к принципам, перечитывает их и исходит из них.
Казалось бы, всё довольно очевидно, но я бы не писал манифест, если бы это действительно было так. Например, в противовес такому абстрактному подходу есть мышление «от кейса». И был случай, когда мы чуть не поступили вопреки здравому смыслу. Описывая свойства контейнеров, всерьёз обсуждали поддержку max-height и max-width, но отказ от min-height и min-width в первой итерации — просто потому что «нет кейса». К счастью, здравый смысл победил, и мы поддержали все четыре свойства. А что если бы нет?
Вот в таких ситуациях особенно важно, чтобы вся команда была синхронизирована на уровне виденья.
- -
🛫 Канал: UXFLOW • Сергей Мухин
Сайт: uxflow.ru
Принципы — это далеко не весь манифест, но, пожалуй, самая неспецифичная для проекта его часть. Как это должно работать: при принятии архитектурного решения — заводить компонент или нет — команда возвращается к принципам, перечитывает их и исходит из них.
Казалось бы, всё довольно очевидно, но я бы не писал манифест, если бы это действительно было так. Например, в противовес такому абстрактному подходу есть мышление «от кейса». И был случай, когда мы чуть не поступили вопреки здравому смыслу. Описывая свойства контейнеров, всерьёз обсуждали поддержку max-height и max-width, но отказ от min-height и min-width в первой итерации — просто потому что «нет кейса». К счастью, здравый смысл победил, и мы поддержали все четыре свойства. А что если бы нет?
Вот в таких ситуациях особенно важно, чтобы вся команда была синхронизирована на уровне виденья.
- -
Сайт: uxflow.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9💯4
Недавно прорабатывал анимации изменений контента в списках для SDUI-контейнера. Решил оттолкнуться от того, что уже используется в нативной ДС.
Нашёл достаточно подробный гайд, но вот с анимациями возникли вопросы. При сложных изменениях все триггеры срабатывали одновременно, и в итоге все анимации играли параллельно. Местами они перекрывали друг друга и выглядело это грязновато — особенно когда анимация «уплотнения» списка накладывалась на исчезновение элементов.
Плюс, на мой взгляд, это ещё и не выполняет важную функцию анимации — объяснять пользователю, что вообще происходит с контентом.
Давайте немного интерактива, а за одно и проверим мою гипотезу:
Как вы думаете, что произошло со списком в анимации из превью?
А я пока допишу пост о том, что там на самом деле, как я подошёл к задаче и что получилось в итоге. 😉
- -
🛫 Канал: UXFLOW • Сергей Мухин
Сайт: uxflow.ru
Нашёл достаточно подробный гайд, но вот с анимациями возникли вопросы. При сложных изменениях все триггеры срабатывали одновременно, и в итоге все анимации играли параллельно. Местами они перекрывали друг друга и выглядело это грязновато — особенно когда анимация «уплотнения» списка накладывалась на исчезновение элементов.
Плюс, на мой взгляд, это ещё и не выполняет важную функцию анимации — объяснять пользователю, что вообще происходит с контентом.
Давайте немного интерактива, а за одно и проверим мою гипотезу:
Как вы думаете, что произошло со списком в анимации из превью?
А я пока допишу пост о том, что там на самом деле, как я подошёл к задаче и что получилось в итоге. 😉
- -
Сайт: uxflow.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2
Анимации, продолжение
Кто ответил что-то вроде «удаление одного элемента и добавление другого » — оказался прав. Остальные нет😂
Что я в итоге сделал:
Разделил анимации появления и исчезновения ещё на две:
1️⃣ собственно появление/исчезновение элемента
2️⃣ уплотнение/расширение списка (когда слот удалённого элемента схлопывается).
Все эти штуки я обозначил как «базовые типы» и ввёл принцип последовательности: запрет одновременного воспроизведения двух и более разных базовых типов.
То есть если нужно удалить сразу 10 ячеек — это ок, для них можно сыграть одинаковые анимации параллельно. Но любые другие типы изменений должны идти строго последовательно.
Такое поведение проще просчитать, легче комбинировать и конфигурировать. А при сложных изменениях благодаря последовательности становится наглядно видно, что вообще происходит.
Ну а результат для того же самого сценария «удаление → затем добавление» — смотрите ниже.👇
- -
🛫 Канал: UXFLOW • Сергей Мухин
Сайт: uxflow.ru
Кто ответил что-то вроде «
Что я в итоге сделал:
Разделил анимации появления и исчезновения ещё на две:
Все эти штуки я обозначил как «базовые типы» и ввёл принцип последовательности: запрет одновременного воспроизведения двух и более разных базовых типов.
То есть если нужно удалить сразу 10 ячеек — это ок, для них можно сыграть одинаковые анимации параллельно. Но любые другие типы изменений должны идти строго последовательно.
Такое поведение проще просчитать, легче комбинировать и конфигурировать. А при сложных изменениях благодаря последовательности становится наглядно видно, что вообще происходит.
Ну а результат для того же самого сценария «удаление → затем добавление» — смотрите ниже.
- -
Сайт: uxflow.ru
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
Переменные в Фигме. Боль, JSON и AI.
Сейчас делаю концепт новой архитектуры цветов. Одна из фич — гибкое склонение токенов по группам.
Например, цвет primary может склоняться по:
🔵 оттенку (neutral, positive, brand…),
🔵 семантической группе (accent, contrast, inversed),
🔵 платформе (web, iOS, Android),
🔵 и, финально, теме — день/ночь.
Это даёт гибкость, расширяемость и задел на важные механики в будущем. Например, на действительно гибкую темизацию.
Но! Фигма так нативно и красиво не умеет. Только через костыль.
Во-первых, сразу отказываемся от идеи переключать оттенки модами (neutral, positive, negative… . вот эта штука). Очень хотелось бы, но нет уверенности, что хватит лимита по количеству модов — не хочется загонять себя в ограничения на старте.
И даже без этого, чтобы переключать остальные группы через моды, на первом слое нужно объявить всё логическое произведение групп (перемножить их между собой). И получается жесть.
Допустим, семантические группы мы выносим в моды. Но все остальные измерения зашиваем в уникальные переменные вида:
И это ещё нужно продублировать для каждого (!!!) оттенка. И так для каждого токена.
Зато в следующих коллекциях можно всё красиво связать с модами, скрыть промежуточные коллекции от публикации и получить аккуратное управление. Но какой ценой? Вручную это обслуживать почти нереально.
И тут внезапно на сцену выходят нейросети.
Даже обычный ChatGPT уже неплохо редактирует JSON. Достаточно:
1️⃣ экспортировать переменные из Фигмы через любой бесплатный плагин,
2️⃣ скормить JSON в нейронку,
3️⃣ внести правки,
4️⃣ импортировать обратно.
Да, бэкапы сохраняем постоянно — это база.
А если настроить это аккуратно через специализированные ИИ-инструменты (тот же Codex) и связать всё через что-нибудь вроде Cursor с Фигмой, можно автоматизировать часть рутины, обложить правилами и со временем минимизировать галлюцинации и лишние пояснения.
В общем, кажется, это первый в моей личной практике внятный кейс, когда ИИ реально упрощает работу с дизайн-системой.
- -
🛫 Канал: UXFLOW • Сергей Мухин
Сайт: uxflow.ru
Сейчас делаю концепт новой архитектуры цветов. Одна из фич — гибкое склонение токенов по группам.
Например, цвет primary может склоняться по:
Это даёт гибкость, расширяемость и задел на важные механики в будущем. Например, на действительно гибкую темизацию.
Но! Фигма так нативно и красиво не умеет. Только через костыль.
Во-первых, сразу отказываемся от идеи переключать оттенки модами (neutral, positive, negative… . вот эта штука). Очень хотелось бы, но нет уверенности, что хватит лимита по количеству модов — не хочется загонять себя в ограничения на старте.
И даже без этого, чтобы переключать остальные группы через моды, на первом слое нужно объявить всё логическое произведение групп (перемножить их между собой). И получается жесть.
Допустим, семантические группы мы выносим в моды. Но все остальные измерения зашиваем в уникальные переменные вида:
day\web\primary
day\ios\primary
day\android\primary
night\web\primary
night\ios\primary
night\android\primaryИ это ещё нужно продублировать для каждого (!!!) оттенка. И так для каждого токена.
Зато в следующих коллекциях можно всё красиво связать с модами, скрыть промежуточные коллекции от публикации и получить аккуратное управление. Но какой ценой? Вручную это обслуживать почти нереально.
И тут внезапно на сцену выходят нейросети.
Даже обычный ChatGPT уже неплохо редактирует JSON. Достаточно:
Да, бэкапы сохраняем постоянно — это база.
А если настроить это аккуратно через специализированные ИИ-инструменты (тот же Codex) и связать всё через что-нибудь вроде Cursor с Фигмой, можно автоматизировать часть рутины, обложить правилами и со временем минимизировать галлюцинации и лишние пояснения.
В общем, кажется, это первый в моей личной практике внятный кейс, когда ИИ реально упрощает работу с дизайн-системой.
- -
Сайт: uxflow.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍3😁2🤯1
Ищем продуктового дизайнера в команду дизайн-системы Т-Банка — с фокусом на дизайн-токены и автоматизацию.
Что предстоит делать
— Вместе со мной развивать и сопровождать систему дизайн-токенов: расширять, улучшать и модернизировать её.
— Участвовать в проектировании процессов синхронизации токенов между дизайном (Figma) и кодом, автоматизировать экспорт и импорт (JSON и др.).
— Работать с продуктовыми командами, frontend-разработчиками и менеджерами: помогать находить компромиссы и принимать архитектурные решения.
— Готовить и поддерживать документацию, гайды и обучающие материалы, проводить воркшопы и ревью для команд-потребителей.
— Обеспечивать качество системы: accessibility, тестирование токенов и контроль обратной совместимости изменений.
— Инициировать улучшения: ускорять процессы, развивать CI/CD для токенов и экспериментировать с масштабируемостью и производительностью.
Формат: удалёнка, гибрид или офис.
Присылайте ваши CV и кейсы по дизайн-системам Ангелине.
🔎 Смотреть вакансию
- -
🛫 Канал: UXFLOW • Сергей Мухин
Сайт: uxflow.ru
Что предстоит делать
— Вместе со мной развивать и сопровождать систему дизайн-токенов: расширять, улучшать и модернизировать её.
— Участвовать в проектировании процессов синхронизации токенов между дизайном (Figma) и кодом, автоматизировать экспорт и импорт (JSON и др.).
— Работать с продуктовыми командами, frontend-разработчиками и менеджерами: помогать находить компромиссы и принимать архитектурные решения.
— Готовить и поддерживать документацию, гайды и обучающие материалы, проводить воркшопы и ревью для команд-потребителей.
— Обеспечивать качество системы: accessibility, тестирование токенов и контроль обратной совместимости изменений.
— Инициировать улучшения: ускорять процессы, развивать CI/CD для токенов и экспериментировать с масштабируемостью и производительностью.
Формат: удалёнка, гибрид или офис.
Присылайте ваши CV и кейсы по дизайн-системам Ангелине.
- -
Сайт: uxflow.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10
UX FLOW • Сергей Мухин
Недавно прорабатывал анимации изменений контента в списках для SDUI-контейнера. Решил оттолкнуться от того, что уже используется в нативной ДС. Нашёл достаточно подробный гайд, но вот с анимациями возникли вопросы. При сложных изменениях все триггеры срабатывали…
Недавно пришлось все же докручивать анимации списков, которые я постил ранее.
В итоге не удалось совсем уйти от наложений. Сформулировал правило и сохраняя принцип последовательности, и в итоге все вписалось органично.
Но вот демо анимации пришлось перевести из фигмы в Protopie.
- -
🛫 Канал: UXFLOW • Сергей Мухин
Сайт: uxflow.ru
В итоге не удалось совсем уйти от наложений. Сформулировал правило и сохраняя принцип последовательности, и в итоге все вписалось органично.
Но вот демо анимации пришлось перевести из фигмы в Protopie.
- -
Сайт: uxflow.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9
This media is not supported in your browser
VIEW IN TELEGRAM
Вот так теперь выглядит та же анимация удаление+появление
- -
🛫 Канал: UXFLOW • Сергей Мухин
Сайт: uxflow.ru
- -
Сайт: uxflow.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14