Я в интернете

РСС    Джейсон-фид

Есть автоматические трансляции в Тумблер и Же-же. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

Блог

Обновление справочника за 20 октября 2026

Справочник обновился.

Во-первых, добавились подробные статьи «Выключатель» и «Слайдер» в виде большого совета на сайте бюро.

Во-вторых, появились ещё несколько терминов. В частности, разблокирована буква Э! Для тех, кому не нравились «Заусенцы» и «Пипка», теперь есть «Упячка». В паре мест добавились иллюстрации. Всё новое и дополненное разом показывает, если вписать в поиск заклинание «r02».

В-третьих, при переходе по внутренним зелёненьким ссылкам стало сильно лучше понятно, куда тебе указывают, а также после таких переходов заработала браузерная кнопка «Назад».

А ещё у справочника появился логотип.

Кофейные места Баку: где пить спешелти и работать

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

▪ 42 Coffee Roasters. Хагани, 73с. Кофе вкусный, вайфай есть, но не налили воду — такого я ещё не встречал нигде.

Кофейня «42 кофе ростерс» (42 Coffee Roasters) в Баку
Кофейня «42 кофе ростерс»

▪ Social Bee. Самеда Вургуна, 51а. Место приятное, кофе один раз сделали прекрасный, а второй раз — плохой. Внутренний балкончик с видом на окно на улицу нависает над баром. Вокруг приятный район.

Кофейня «Соушел би»

Нажмите «Без чаевых» и можно оплачивать

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

Пока новый интерфейс с чаевыми мне попадался раз пять, и во всех случаях кассир говорил:
— Нажмите «Без чаевых» и можно оплачивать.

Интересно, для кого и чего эту фичу придумали, если даже в самих заведениях все прекрасно понимают, что это просто раздражающая помеха, и заученно инструктируют, как её обойти?

Включение и выключение

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

Раньше выключатели физически замыкали и размыкали электрическую цепь. С появлением электронного управления возникли промежуточные состояния. Например, у некоторых телевизоров есть «жёсткий» выключатель на корпусе, и они включаются с пульта только когда он включён. Если выключить такой телевизор только с пульта, он переходит в режим ожидания (standby) и светит красным огоньком. У многих посудомоечных машин или электронных термометров есть отдельная кнопка включения. Всё, что она делает — включает возможность нажать следом кнопку стирки или измерения температуры.

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

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

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

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

Нейронка бы молча сделала зелёный огонёк

Я вот подумал дальше про зелёный огонёк.

Представим, что задание добавить зелёный огонёк клиент даёт не дизайнеру, который потом идёт ко мне утверждать макеты, а сразу нейросети. Она послушно его добавит: аккуратно встроит с учётом правил дизайн-системы, применит какой-нибудь скилл чтобы красиво анимировать. Всё будет сделано на высшем уровне, и клиент подумает: ну всё, дизайнеры мне не нужны. Многие клиенты уже так и думают.

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

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

С людьми ровно то же самое! Я понимаю, что тоже раздражаю, когда вместо того, чтобы «просто сделать», начинаю докапываться до того, зачем меня о чём-то просят. Но мне за это как раз и платят.

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

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

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

Зелёный огонёк, что программа исправна

У меня очередной пример того, как можно сделать дикий интерфейс и не заметить этого.

Дизайнер работает над сложным внутренним продуктом, показывает интерфейс и говорит:
— Тут просят в уголке добавить индикатор связи с сервером, какой-то зелёный огонёк. Но в наших макетах место для такого индикатора не предусмотрено. Куда его тут приделать?

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

И вот здесь мне интересно, дорогие читатели: вам уже очевидно, что происходит какая-то хрень, или пока рассуждение кажется логичным?

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

Оказывается, если связь пропала, работник должен то ли временно перестать работать, то ли что-то перезагрузить, то ли позвать старшего, то ли ещё каким-нибудь способом разобраться с проблемой. Но в нарушение принципа «Без обучения» об этом нигде не сказано! Работник должен где-то заранее, из других источников, узнать, что отсутствие зелёного огонька означает необходимость каких-то действий, и не забыть об этом.

Допустим теперь, наш работник всё это знает и помнит. Представьте: работа кипит, экраны сменяют друг друга, работник жмёт кнопки. И вот в уголке пропадает зелёный огонёк. Но остальные-то 99,99% экрана продолжают выглядеть так, будто всё в порядке и можно работать дальше. Мы зачем-то показываем человеку рабочий интерфейс, хотя сами уже знаем, что пользоваться им сейчас не надо; надо звать старшего и вот это всё.

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

Не надо так.

Стабильное меню на новом сайте

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

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

Идея решения простая: каждый пункт меню должен всегда занимать столько места, сколько занимал бы, будь он жирным, даже когда на самом деле он не жирный. Но как это сделать?

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

Можно положить внутрь каждого пункта невидимую жирную копию текста, распорку. Это лишний элемент в разметке, тоже не идеально, но смириться можно. Я не нашёл решения совсем без изменения разметки, но зато нашёл, как обойтись атрибутом, без лишних элементов: слово, жирность которого нужно мерить, ставится в атрибут, а потом в ЦССе делается псевдоэлемент, контент которого берётся из этого атрибута. Так уже неплохо.

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

Соответственно надо как-то так сверстать, чтобы подчёркнутая часть осталась по ширине видимого текста, а вокруг неё уже была обёртка по ширине жирного текста, которая бы влияла только на лейаут меню. При этом ради Фиттса область нажатия пункта меню у меня дотянута до середины отступа с соседним пунктом. То есть сама ссылка на самом деле больше и чем её обычный текст, и чем её жирный текст. И да, все эти отступы ещё и адаптивятся по-всякому.

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

В общем, теперь всё распутал: атрибут, используемый ЦССом для измерения жирного текста, стоит у обёртки, а сам текст пункта меню стоит у элемента внутри. Любой пункт можно делать и жирным, и обычным, и подчёркивание при наведении всегда остаётся ровно под буквами. Кликать можно в отступ между пунктами, и ничего никуда не прыгает при переключении. Жирность как бы переезжает с пункта на пункт при переключении, но каждый из них остаётся на своём месте. И расстояние между пунктами растягивается так, чтобы всегда было видно, что есть ещё пункты за краем. Красота!

Как Артём Горбунов показал мне справочник Атабекова

Когда-то в начале моей работы в бюро Артём Горбунов рассказал мне о справочнике Атабекова:

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

В каждой статье — гора знаний, многие классно иллюстрированы примерами или объяснениями. Посмотрите, какая красота:

Особенно мне нравятся вот такой фарш, как справа, когда на иллюстрации тридцать (!) картинок, а в тексте они коротко прокомментированы:

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

Словарь-справочник проектировщика пользовательского интерфейса

Представляю новый раздел на моём сайте — Словарь-справочник проектировщика пользовательского интерфейса. Мы запускаем его небольшой редакцией, состоящей из Александры Озкан, Настасьи Тулаевой и меня в роли главреда.

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

Это не просто перечень определений — их и так можно найти в интернете. К каждому термину в справочнике мы предъявляли простое требование: от его наличия должна быть польза. В редких случаях определение полезно само по себе, но чаще всего мы задавали вопрос к каждому термину так: что проектировщику нужно знать об этом? И старались дать качественный ответ.

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

На интерфейсном курсе: обсуждаем компоновку окна

Здесь у участника курса несколько нелогично организовано окно, и я рассуждаю о том, как можно было бы переорганизовать. 5 минут:

Это фрагмент № 207 онлайн-курса «Пользовательский интерфейс и представление информации». Записано на курсе 13 декабря 2024 года.

Идёт запись на ноябрьский курс, сейчас −20%. В рассрочку это 6320 ₽ / мес.

Почитать о курсе
Программа, отзывы, запись

Это лучший курс об интерфейсе. И про адаптивность там тоже есть лекция большая.

Ранее Ctrl + ↓