Как сделать интерфейс приятным: мелочи, что решают всё
Один сайт хочется потрогать. Другой - закрыть. Разница в деталях
Из чего складывается ощущение «дорого» в интерфейсе: отступы, тени, скругления, отклик кнопок, зона нажатия. И как попросить всё это у ИИ простыми словами.
Что значит «приятный интерфейс» простыми словами
Представь два кофе навынос. Первый - стакан мятый, крышка села косо, по боку ползёт капля. Второй - стакан плотный, крышка щёлкнула ровно, держать приятно. Кофе внутри один и тот же. Но первый ты выбросишь по дороге, а второй захочешь сфоткать.
С интерфейсами ровно так же. Говорят «сайт выглядит дёшево» или «как-то самопально» - и это почти никогда не про одну большую ошибку. Это сумма микродеталей. Отступы чуть разные. Кнопка не реагирует на палец. Углы у карточки и кнопки внутри неё дерутся. Цифры в счётчике дёргаются туда-сюда.
Поймать каждую мелочь по отдельности глаз не успевает. А вместе они складываются в одно ощущение, и мозг тихо шепчет: «тут что-то не так». Доверие к продукту утекает - а ты даже не понял, в какой момент.
Зачем вайбкодеру разбираться в деталях интерфейса
Собрал сайт за вечер с ИИ - вроде работает, но «выглядит как набросок в блокноте». Знакомо? Дело почти всегда в этих самых мелочах. Разберёшься в них - и сразу:
- перестанешь кидать ИИ расплывчатое «сделай красивее» и начнёшь давать конкретные правила. На конкретику модель отвечает в разы точнее;
- за 15 минут доведёшь сырой интерфейс до состояния «стоп, это что, готовый продукт?»;
- сам поставишь диагноз, когда друг скажет «выглядит дёшево, а почему - не пойму»;
- не убьёшь скорость сайта кривыми анимациями. Классическая ловушка новичка, и в неё легко влететь.
Между «накидал на коленке» и «выглядит дорого» лежит десяток деталей. Все они помещаются в один промпт. Сейчас пройдём по каждой.
Какие приёмы делают интерфейс приятным на ощупь
Скругления углов: как настроить, чтобы не спорили
Возьми карточку со скруглёнными углами, а внутри неё - кнопку, тоже скруглённую. Если радиус у них одинаковый, угол кнопки буквально втыкается в угол карточки. И глаз спотыкается на ровном месте, хотя ты вроде ничего не сломал.
Правило простое:
внешний радиус = внутренний радиус + отступ
Называется это концентрические скругления Концентрические скругления - когда вложенные скруглённые элементы повторяют изгиб друг друга, как круги на воде. Внешний угол чуть круглее внутреннего ровно на величину отступа между ними. . Отступ большой - не мучайся с формулой, считай элементы просто разными поверхностями. Цель не в математической точности до пикселя. Цель - чтобы углы выглядели заодно.
Кнопка должна отзываться на палец: ховер, нажатие, фокус
Хорошая кнопка - как хорошая клавиша на ноутбуке: жмёшь, и она чуть проседает. Это тактильное чувство, что нажатие сработало, а не провалилось в пустоту.
- Наведение (ховер): плавно меняется цвет или тень.
- Нажатие: кнопка чуть уменьшается,
scale(0.96)- будто ты продавил её пальцем. - Фокус: заметная рамка, когда по кнопке прошлись клавишей Tab. Это про доступность: без рамки человек, который ходит по сайту с клавиатуры, просто теряется на странице.
Почему «анимируй всё» - худший промпт для скорости
Соблазн сказать ИИ «сделай плавным вообще всё» огромный. Но за этой фразой прячется transition: all - команда «следи за изменением любого свойства». Браузер начинает отслеживать кучу лишнего и тормозит. Особенно на телефонах, где запаса мощности и так нет.
Как надо: перечислить конкретные свойства, которые реально меняются. Цвет фона. Тень. Размер. Так быстрее, легче и предсказуемее.
- Перечислены конкретные свойства: цвет, тень, transform.
- Появление мягкое: чуть прозрачности плюс лёгкий сдвиг вверх.
- Исчезновение короче появления (около 150 мс) - не заставляет ждать.
- Нажатие даёт тактильный отклик без лишнего цирка.
-
transition: all- браузер следит за всем подряд и лагает. - Всё прыгает, мигает и отвлекает от сути.
- Иконки меняются рывком, без плавного перетекания.
- Анимации такие долгие, что бесит ждать конца.
Мелочи, которые делают интерфейс «дорогим»
Эти штуки незаметны, пока они на месте, и сразу лезут в глаза, когда их нет:
- Зона нажатия. Кликабельный элемент - не меньше 44×44 пикселя, даже если сама иконка крошечная. Иначе попасть пальцем на телефоне превращается в мини-игру «снайпер».
- Табличные цифры. В счётчиках, таймерах и ценах включай табличные цифры Табличные цифры (tabular-nums) - режим шрифта, где все цифры одинаковой ширины. Тогда меняющееся число не дёргает соседние элементы туда-сюда. , чтобы при смене значения число не прыгало и не толкало соседей.
- Контур у картинок. Тонкая полупрозрачная обводка (чёрная на светлом фоне, белая на тёмном), чтобы край картинки не сливался с фоном. И запомни: контур нейтральный, не крась его в фирменный цвет.
- Перенос текста. Заголовки переноси «сбалансированно» (
text-wrap: balance), короткие описания - «красиво» (text-wrap: pretty), чтобы на последней строке не висело одинокое слово-сирота.
Пример из жизни: лендинг, который выглядит самопально
Собрал с ИИ лендинг для своей мини-студии. Друзья смотрят и хмыкают: «ну… норм, но как-то самопально». А ты в упор не видишь, что не так, - вроде всё на месте, цвета даже приятные.
А не так вот что:
- Кнопки никак не реагируют на наведение и нажатие - сайт ощущается «мёртвым».
- У карточек и кнопок внутри них одинаковые скругления - углы дерутся.
- Счётчик подписчиков дёргает соседний текст каждый раз, как меняется цифра.
- Картинки сливаются с фоном, будто их прилепили в последнюю секунду.
Ни одну из этих мелочей друг не назовёт по имени. А вместе они орут «самопально». Вот промпт, который чинит всё за один заход:
Сделай этот интерфейс более отполированным. Пройдись по деталям:
- Кнопки и кликабельные карточки: добавь плавный ховер (цвет и тень),
лёгкое уменьшение при нажатии примерно до 96 процентов, и заметную
рамку при фокусе с клавиатуры.
- Скругления: у вложенных элементов внешний радиус = внутренний плюс
отступ, чтобы углы не спорили.
- Анимации: перечисли конкретные свойства, которые меняются. Никогда
не используй transition all. Появление мягкое, исчезновение короче.
- Все цифры в счётчиках и ценах сделай табличными, чтобы не прыгали.
- У картинок добавь тонкий нейтральный контур, чтобы край не сливался
с фоном.
- Любой кликабельный элемент - минимум 44 на 44 пикселя для пальца.
Покажи список того, что поменял: было и стало.
Частые ошибки, из-за которых интерфейс выглядит дёшево
- Просить «сделай красивее» и ждать чуда. Слишком размыто. Дай конкретику: отступы, ховеры, скругления.
- Ставить
transition: allради экономии времени. Сэкономишь минуту сейчас - получишь лаги на телефонах потом. Перечисляй свойства поимённо. - Делать кликабельные иконки крошечными. Мышкой на десктопе попадёшь, пальцем на телефоне - уже лотерея. Держи 44×44.
- Забывать про состояние нажатия и фокуса. Без отклика интерфейс ощущается сломанным, даже если внутри всё пашет.
- Красить контур картинки в фирменный цвет. Выглядит как баг. Контур всегда нейтральный - чёрный или белый, полупрозрачный.
- Анимировать ради анимации. Если всё дёргается и мигает - это не «живо», это «голова кружится». Меньше движения, но плавно.
TL;DR - если коротко
- «Выглядит дёшево» - это сумма мелочей: кривые отступы, резкие анимации, плоские кнопки. По одной незаметно, вместе - бесит.
- Концентрические скругления: внешний радиус = внутренний плюс отступ. Иначе углы дерутся.
- Кнопка должна отзываться на палец: чуть проседает при нажатии, плавный ховер, видимый фокус. Тогда она живая, а не нарисованная.
- Зона нажатия минимум 44×44 пикселя, цифры - табличные (не прыгают), у картинок - тонкий контур.
- «Анимируй всё» - худший промпт. За ним
transition: all, и оно тормозит. Называй конкретные свойства. - Суперсила вайбкодера - не двигать пиксели, а знать, что попросить.