Вопросы на собеседовании: Веб-дизайнер
100 реальных вопросов с образцовыми ответами и пояснениями для уровня Middle.
Смотреть пример резюме: Веб-дизайнер →Тренировка флешкарточками
Интервальное повторение · Hunter Pass
Вопросы
Дизайн-система должна выстраивать переиспользуемые решения от низкоуровневых основ до полных паттернов взаимодействия.
- Основы задают общие правила цвета, типографики, отступов, эффектов глубины и движения, не предписывая целый интерфейс.
- Примитивы превращают эти правила в сфокусированные строительные блоки: текст, значок, кнопку и поле ввода.
- Составные компоненты объединяют примитивы в устойчивые единицы, например поле поиска, карточку или диалог.
- Паттерны описывают совместную работу компонентов в потоках вроде авторизации или фильтрации, но не становятся жёсткими шаблонами страниц.
Зачем это спрашивают: Интервьюер проверяет, понимаете ли вы архитектуру системы как слои с разной ответственностью и частотой переиспользования.
Полезная граница компонента заключает одну узнаваемую ответственность со стабильным контрактом.
- Повторяемые структура, поведение и семантика доступности являются более вескими основаниями для компонента, чем одно визуальное сходство.
- Независимо меняющийся контент должен передаваться через свойства или слоты, а не требовать отсоединения компонента.
- Компонент, открывающий каждый внутренний слой, становится хрупким, потому что пользователи создают неподдерживаемые сочетания.
- Слишком мелкое деление усложняет сборку, а один крупный компонент трудно переиспользовать вне исходного контекста.
Зачем это спрашивают: Сильный ответ уравновешивает инкапсуляцию и композицию, а не превращает каждый повторяющийся фрейм в компонент.
Различие относится к варианту, если меняет конечную поддерживаемую ось того же контракта компонента.
- Размер, акцент и состояние взаимодействия являются типичными осями вариантов, потому что назначение и анатомия компонента сохраняются.
- Структурное изменение с другой семантикой, например чекбокс вместо переключателя, требует отдельного компонента несмотря на визуальное сходство.
- Независимые настройки лучше выразить свойствами или композицией, чтобы не создавать вариант для каждого сочетания.
- Каждому разрешённому сочетанию нужен реальный случай применения; техническая возможность ещё не делает его частью API.
Зачем это спрашивают: Интервьюер оценивает, умеете ли вы сдерживать рост вариантов и сохранять осмысленные различия компонентов.
Состояния взаимодействия должны отражать разные условия пользователя или системы с явными визуальными и поведенческими правилами.
- Hover, focus-visible и pressed описывают разные моменты ввода, поэтому их нельзя сводить к одному более тёмному стилю.
- Selected, checked и expanded сохраняются после действия, а pressed обычно длится только во время активации.
- Loading должен сохранять контекст и предотвращать повторное действие, но не смешиваться с disabled, который означает недоступность.
- Состояниям ошибки и успеха нужен текстовый или другой нецветовой признак, а не только оттенок рамки.
Зачем это спрашивают: Сильный ответ различает временные, сохраняемые, связанные с доступностью действия и валидационные состояния, а не просто перечисляет экраны.
Эти три слоя идут от исходных значений к смыслу, а затем к решению конкретного компонента.
- Примитив вроде blue-600 или space-300 называет значение, но не указывает место применения.
- Семантический токен вроде color-action-primary или space-content-gap называет роль, которая сохраняется при смене темы.
- Компонентный токен вроде button-primary-background решает локальную задачу и обычно ссылается на семантический токен.
- Компоненты должны использовать самый высокий осмысленный слой, чтобы изменения исходной палитры не проникали во все макеты и файлы кода.
Зачем это спрашивают: Интервьюер проверяет, можете ли вы объяснить абстракцию токенов и разные виды связанности, которые сокращает каждый слой.
Алиасы позволяют стабильным названиям ролей получать разные значения в каждом поддерживаемом контексте.
- color-text-primary может ссылаться на gray-950 в светлом режиме и gray-050 в тёмном, а ссылки компонентов останутся прежними.
- Режим бренда может перенаправить роли действий на другую палитру без дублирования каждого токена кнопки или ссылки.
- Цепочки алиасов должны оставаться достаточно короткими, чтобы при отладке можно было пройти от значения компонента к источнику.
- Режимы должны отражать независимые контексты вроде темы или плотности, а не хранить несвязанные разовые исключения.
Зачем это спрашивают: Сильный ответ связывает алиасы с поддерживаемой темизацией и учитывает цену непрозрачных цепочек зависимостей.
Устойчивое название токена описывает роль и иерархию, не встраивая временное визуальное значение.
- Название color-text-muted останется верным, если приглушённый текст изменится с серого на тонированный нейтральный цвет.
- Единый порядок вроде категории, понятия, свойства и состояния делает токены предсказуемыми и удобными для поиска.
- Суффиксы состояний должны быть явными, например action-primary-background-hover вместо action-blue-dark.
- Таксономия обязана работать в Figma и коде, поэтому для разделителей и зарезервированных слов нужно согласованное правило преобразования.
Зачем это спрашивают: Интервьюер оценивает, переживут ли ваши названия визуальные изменения и переход между инструментами.
Управление определяет, как система принимает, изменяет, документирует и выводит из использования общие решения.
- Критерии вклада отделяют повторяющуюся потребность продукта от локального паттерна, которому не место в основной библиотеке.
- Назначенные владельцы проверяют последствия для визуального оформления, взаимодействия, доступности и реализации до публикации.
- Примечания к выпуску и руководство по миграции объясняют потребителям изменение и необходимые действия.
- Обратная связь и данные использования показывают недостающие возможности, дубли компонентов и правила, которые команды регулярно обходят.
Зачем это спрашивают: Сильный ответ описывает управление как практический жизненный цикл, а не комитет или статичный гайдлайн.
Такая политика позволяет системе развиваться без скрытой поломки существующих продуктов.
- Замена должна быть опубликована до того, как старый компонент или токен перестанут быть нормальным выбором.
- Уведомление называет причину, поддерживаемый путь миграции и дату удаления или пересмотра.
- Ресурсы Figma, пакеты кода и документация должны иметь одинаковый статус, чтобы команды не брали устаревший источник.
- Немедленное удаление допустимо при серьёзном риске; обычная очистка должна дать потребителям время на переход.
Зачем это спрашивают: Интервьюер проверяет, понимаете ли вы управление изменениями для множества потребителей дизайн-системы.
Доступность должна быть частью контракта компонента, а не необязательной заметкой для каждого дизайнера экрана.
- Компонент задаёт клавиатурное поведение, порядок фокуса, размер цели и видимые состояния вместе с визуальной анатомией.
- Текст, значки, границы и индикаторы фокуса проверяются на каждой поддерживаемой подложке и в каждом состоянии.
- Свойства должны упрощать доступный путь, например требовать подпись и отдельно открывать вариант только со значком.
- Документация обозначает ответственность пользователя компонента, например осмысленный текст кнопки или заголовок диалога.
Зачем это спрашивают: Сильный ответ разделяет встроенные гарантии компонента и решения доступности, зависящие от контекста применения.
Модульная шкала получает связанные размеры умножением базового размера на выбранный коэффициент.
- База 16 пикселей с коэффициентом 1,25 даёт до округления ступени около 16, 20, 25 и 31 пикселя.
- Малый коэффициент даёт больше спокойных ролей для плотных интерфейсов, а крупный создаёт выразительную иерархию с меньшим числом полезных промежуточных размеров.
- Рассчитанные значения являются отправными точками: их можно округлить для чистого отображения и назначить семантическим текстовым ролям.
- Подписи, таблицы данных и акцидентный маркетинговый текст могут требовать контролируемых исключений вместо принуждения к одной последовательности.
Зачем это спрашивают: Интервьюер оценивает, умеете ли вы применять математическую последовательность и не превращать коэффициент в эстетический закон.
Сочетание единиц позволяет тексту реагировать на доступную ширину и не делает вьюпорт единственным источником масштаба.
- Чистое значение vw может стать нечитаемо малым или чрезмерно крупным, если его не сдерживают отдельные пределы.
- clamp() может объединить минимум и максимум в rem с предпочтительным выражением calc(), смешивающим rem и единицы вьюпорта.
- Часть в rem лучше сохраняет реакцию на настройки текста в браузере, а часть от вьюпорта даёт постепенную адаптацию макета.
- Основному тексту нужен узкий диапазон, а каждую роль всё равно следует проверять при масштабировании, переносах и на промежуточной ширине.
Зачем это спрашивают: Сильный ответ объясняет компромисс доступности и предсказуемости внутри плавной формулы, а не просто называет clamp().
Оптический размер использует рисунок знаков, адаптированный к предполагаемому размеру отображения, вместо геометрического масштабирования одного контура.
- Малые оптические размеры могут иметь более открытые внутрибуквенные просветы, прочные штрихи и свободные интервалы для сохранения чёткости.
- Акцидентные размеры допускают более тонкие детали, сильный контраст штрихов и плотные пропорции благодаря большему числу пикселей.
- Вариативный шрифт с осью opsz интерполирует эти изменения, а font-optical-sizing: auto позволяет браузеру с поддержкой свойства получить настройку из размера шрифта.
- Эффект зависит от гарнитуры, поэтому дизайнеру нужно сравнивать реальные образцы, а не считать любую оптическую ось улучшением выбранной роли.
Зачем это спрашивают: Интервьюер проверяет, понимаете ли вы адаптацию рисунка букв к размеру и её реализацию в вариативном шрифте.
Вариативный шрифт хранит непрерывные оси дизайна в одном ресурсе и даёт более тонкое управление, чем несколько статичных файлов.
- Стандартные оси включают насыщенность, ширину, наклон, курсив и оптический размер, а семейство может добавлять собственные оси.
- Промежуточные насыщенности позволяют настраивать иерархию без синтеза начертания, которого не рисовал автор гарнитуры.
- Один вариативный файл может заменить несколько статичных, но широкий набор символов и множество осей всё равно способны сделать его крупным.
- Перед тем как опираться на эти возможности в дизайне, нужно проверить поддержку браузеров, запасные стили, диапазоны осей и лицензию.
Зачем это спрашивают: Сильный ответ рассматривает вариативные шрифты и как типографическую возможность, и как компромисс доставки.
Вертикальный ритм согласует высоту строк и отступы блоков, чтобы связанный текст образовывал повторяемый темп чтения.
- Интерлиньяж основного текста задаёт самый частый интервал, а у заголовков он может быть плотнее, поскольку акцидентный текст реже переносится.
- Отступ над заголовком должен обозначать более сильную границу раздела, чем отступ под ним к абзацу.
- Отступы абзацев, списков и подписей могут использовать кратные или связанные ступени без жёсткой привязки каждого элемента к базовой сетке.
- Элементам управления и смешанному контенту могут понадобиться оптические поправки, потому что строгая базовая линия способна нарушить внутренний баланс.
Зачем это спрашивают: Интервьюер оценивает, умеете ли вы системно выстраивать отступы текста и допускать обоснованные оптические исключения.
Контентно-зависимая компоновка позволяет контенту и доступному пространству сильнее определять результат, чем фиксированные размеры под конкретный вьюпорт.
- min-content задаёт наименьшую ширину контента без предотвратимого переполнения, а max-content его идеальную ширину без переносов.
- Гибкие треки и перенос позволяют композиции адаптироваться до появления необходимости в медиазапросе.
- min(), max() и clamp() выражают границы, объединяющие ограничения контента, контейнера и вьюпорта.
- Такое поведение сокращает число брейкпоинтов, но структурные изменения композиции всё равно требуют запросов.
Зачем это спрашивают: Сильный ответ объясняет адаптивность от контента и её границы, а не выдаёт её за замену всем брейкпоинтам.
Это сочетание создаёт столько треков, сколько помещается, и защищает полезный минимум каждого из них.
- repeat(auto-fit, minmax(16rem, 1fr)) схлопывает пустые треки и распределяет оставшуюся ширину между существующими колонками.
- Минимум определяет момент, когда следующая колонка перестаёт помещаться, поэтому он должен зависеть от контента карточки, а не названия устройства.
- Максимум 1fr позволяет трекам делить лишнее место вместо случайного пробела у края контейнера.
- auto-fill сохраняет места пустых треков, что полезно только при намеренном резервировании структуры сетки.
Зачем это спрашивают: Интервьюер проверяет понимание механики и дизайн-последствий внутренне адаптивной сетки карточек.
Контейнерные запросы позволяют компоненту реагировать на пространство родителя, а не на размер всего окна браузера.
- Одна карточка может иметь компактную компоновку в боковой панели и расширенную в основном контенте при одной ширине вьюпорта.
- Родитель должен создать подходящий контейнер запроса, обычно через container-type: inline-size.
- Пороги запроса должны отмечать момент, когда собственный контент или анатомия компонента перестают работать.
- Запросы вьюпорта остаются уместными для изменений страницы, связанных со всем экраном или средой.
Зачем это спрашивают: Сильный ответ различает адаптивность компонента и страницы и понимает место каждого вида запроса.
Subgrid позволяет вложенной сетке переиспользовать треки родителя вместо создания несвязанной внутренней сетки.
- Заголовки, описания и действия карточек могут выравниваться между соседними карточками при разной длине контента.
- Вложенный элемент участвует в родительских строках или колонках, выбранных для оси subgrid.
- Общее выравнивание становится структурным и не зависит от продублированных пикселей или фиксированных высот.
- Subgrid не нужен, если вложенному контенту требуются независимые треки и выравнивание между компонентами отсутствует.
Зачем это спрашивают: Интервьюер оценивает, понимаете ли вы сохранение общей сетки во вложенном контенте.
Логические свойства задают отступы и размеры по направлению текста, а не жёстко по физическим сторонам.
- margin-inline-start следует началу строки LTR или RTL, а margin-left всегда относится к физической левой стороне.
- inline-size и block-size соответствуют строчной и блочной осям, включая вертикальные режимы письма.
- Логические padding, border и inset сокращают отдельные переопределения при смене направления языка.
- Физическое свойство остаётся уместным, когда нужна именно сторона экрана, например для закреплённого элемента управления.
Зачем это спрашивают: Интервьюер проверяет, может ли спецификация макета следовать направлению языка и режиму письма без лишних переопределений.
Закрытые вопросы
- 21
Почему визуальное изменение порядка в адаптивных макетах нужно применять осторожно?
responsivelayout - 22
Чем требования WCAG AA и AAA к контрасту текста отличаются друг от друга?
a11ycolorwcag - 23
Что WCAG требует от нетекстового контраста компонентов интерфейса?
componentsa11ytypes - 24
Что критерий Focus Appearance в WCAG 2.2 добавляет к простому наличию индикатора фокуса?
wcaga11y - 25
Чем Focus Not Obscured уровня AA отличается от AAA в WCAG 2.2?
wcaga11y - 26
Чем последовательные, расходящиеся и категориальные цветовые шкалы отличаются в визуализации данных?
datavizcolor - 27
Почему веб-дизайн нужно проверять в режиме принудительных цветов или высокой контрастности?
colordesigna11y - 28
Что даёт OKLCH при построении цветовой шкалы для веба?
color - 29
Почему прозрачность может сделать цветовой контраст ненадёжным?
colora11y - 30
Как длительность микровзаимодействия должна зависеть от его назначения?
animation - 31
Как кривые ускорения меняют смысл движения в интерфейсе?
animationmotiontypes - 32
Что должна сохранять версия интерфейса с уменьшенным движением?
motion - 33
Почему transform и opacity обычно безопаснее для анимации, чем свойства компоновки?
animationcsslayout - 34
Из каких основных частей состоит микровзаимодействие?
- 35
Как движение поддерживает пространственную непрерывность интерфейса?
motionanimationtypes - 36
Из каких систем состоит информационная архитектура?
system-design - 37
Чем открытая, закрытая и гибридная сортировка карточек отличаются друг от друга?
algorithms - 38
В чём компромисс между шириной и глубиной навигации?
- 39
Почему узнавание обычно создаёт меньшую когнитивную нагрузку, чем вспоминание?
- 40
Когда полезно прогрессивное раскрытие и что оно может скрыть слишком сильно?
- 41
Когда должна запускаться валидация формы?
formsvalidation - 42
Что делает встроенное сообщение об ошибке валидации эффективным?
validation - 43
Как следует обозначать обязательные и необязательные поля?
communication - 44
Как input type, inputmode и autocomplete улучшают дизайн формы?
formsdesign - 45
Как коллекции, режимы, области применения и алиасы переменных Figma должны работать вместе?
figma - 46
Как минимальные и максимальные размеры взаимодействуют с Hug contents и Fill container во вложенном Auto Layout?
layoutcontainers - 47
Что даёт раскрытие свойств вложенных экземпляров в компоненте Figma?
figmacomponents - 48
Что переменные и условная логика добавляют в прототип Figma?
figmaprototypesprototyping - 49
Как дизайн-токены должны переноситься из Figma в код?
figmadesigntokens - 50
Что должна включать проверка дизайна в разных браузерах и на разных устройствах?
designcoverage - 51
В продукте десятки визуально похожих элементов управления, но нет дизайн-системы; как бы вы начали её строить, не останавливая работу над фичами?
system-designdesigndesign-system - 52
В библиотеке токенов названия исходных цветов, семантические роли и названия компонентов смешаны в одном слое; как бы вы её переработали?
colorlayerscomponents - 53
Библиотека Figma и реализованная библиотека компонентов разошлись; как бы вы снова их синхронизировали?
figmacomponentsiac - 54
Как бы вы добавили тёмную тему в продукт, спроектированный только для светлых фонов?
renderingcompositiondesign - 55
Команда просит новый компонент дизайн-системы, похожий на существующую карточку с одним дополнительным действием; что бы вы сделали?
system-designdesigncomponents - 56
Как бы вы добавили компактный и комфортный режимы плотности в существующую библиотеку компонентов?
components - 57
Обновление бренда меняет шрифт, радиусы и акцентный цвет во всём legacy-продукте; как бы вы безопасно его применили?
colorbranding - 58
Как бы вы заменили устаревший компонент поля ввода на множестве существующих экранов?
components - 59
После обновления токена отступов некоторые компоненты в Storybook выглядят неправильно, а в Figma всё верно; как бы вы искали причину?
componentsstorybooktokens - 60
Как бы вы спроектировали статусные цвета, которые остаются последовательными и доступными в светлой, тёмной и фирменной темах?
colorbrandingrendering - 61
У страницы услуги низкая конверсия; как бы вы подошли к редизайну, не считая заранее, что причина в визуальном оформлении?
design - 62
Пользователи бросают оформление заказа, но команда знает только итоговую долю завершений; как бы вы переработали сценарий?
- 63
Дашборд стал перегруженным после добавления виджетов несколькими командами; как бы вы восстановили ясную иерархию?
hierarchy - 64
Как бы вы переработали страницу настроек, где пользователи не понимают, какие изменения влияют на весь аккаунт, а какие только на них?
- 65
На странице поиска фильтры, сортировка, сохранённые представления и массовые действия конкурируют за место; как бы вы её упростили?
algorithms - 66
Из обращений в поддержку видно, что пользователи не находят прошлые счета; как бы вы переработали эту часть аккаунта?
- 67
После редизайна страницы заявки CTA получает меньше кликов, но завершённых заявок стало больше; как бы вы оценили результат?
- 68
Пользователи часто уходят на середине многошагового онбординга; как бы вы его улучшили?
onboarding - 69
Как бы вы спроектировали адаптивную операционную таблицу с сортировкой, действиями строк и множеством колонок?
responsivedesignschema - 70
Как бы вы адаптировали десктопный аналитический дашборд с графиками, KPI-карточками и панелью фильтров под малые экраны?
- 71
У разработки есть три статичных размера заголовка, и она просит одно плавное правило; как бы вы его вывели?
- 72
График работает на десктопе, но на мобильном легенда и подсказка закрывают данные; как бы вы его переработали?
- 73
Как бы вы поступили с боковой панелью, полезной на широком экране, но сжимающей основную задачу на средней ширине?
- 74
Как бы вы сделали адаптивную сетку карточек устойчивой к намного более длинному переведённому тексту?
gridresponsive - 75
Десктопное приложение теряет элементы управления или получает горизонтальную прокрутку при масштабе браузера 200%; как бы вы исправили дизайн?
scalingdesign - 76
Как бы вы адаптировали десктопный почтовый интерфейс со списком и областью чтения под планшет и мобильный экран?
rendering - 77
Как бы вы спроектировали закреплённую панель действий длинной мобильной формы, не закрывающую контент и экранную клавиатуру?
formsdesign - 78
Как бы вы исправили модальное окно, которое работает с мышью, но запутывает пользователя клавиатуры?
- 79
После отправки формы скринридер плохо сообщает об ошибках; как бы вы переработали этот опыт?
formsa11y - 80
Как бы вы спроектировали доступный autocomplete combobox для выбора клиента из большого списка?
design - 81
Канбан-доска опирается на перетаскивание; как бы вы сделали перемещение карточки доступным, не убирая drag and drop?
agile - 82
После удаления элемента фокус прыгает в начало страницы; как бы вы определили правильное поведение?
- 83
Как бы вы спроектировали toast-уведомления для пользователей клавиатуры и скринридера?
design - 84
Как бы вы спроектировали загрузку, пустое состояние, ошибку и частичные данные для доступной панели дашборда?
design - 85
Как бы вы сделали сложную таблицу данных понятной пользователям скринридера?
- 86
В tooltip находится инструкция, необходимая для использования кнопки-значка; как бы вы исправили взаимодействие?
- 87
Как бы вы разбили длинную рабочую форму на шаги?
forms - 88
Как бы вы спроектировали сохранение и продолжение многошаговой формы?
formsdesign - 89
Как бы вы спроектировали условные поля формы без путаницы в макете и клавиатурном порядке?
layoutdesignforms - 90
Отправка может занимать несколько секунд, и пользователи создают дубли повторным нажатием; как бы вы исправили сценарий?
- 91
Как бы вы спроектировали шаг загрузки нескольких документов, где часть файлов может завершиться ошибкой?
design - 92
Как бы вы переработали платёжную форму, которая одновременно возвращает ошибки полей и общее сообщение об отклонении карты?
forms - 93
Как бы вы спроектировали адресную форму для разных стран, не показывая все возможные поля сразу?
formsdesign - 94
Как бы вы спроектировали шаг проверки данных, где можно редактировать прошлые разделы и не терять место?
design - 95
Разработчик говорит, что предложенное взаимодействие слишком дорого реализовать к релизу; как бы вы ответили?
- 96
Как бы вы передали компонент с адаптивным макетом, асинхронными состояниями и несколькими темами в разработку?
componentsresponsiveasync - 97
Реализованная страница отличается от Figma на нескольких брейкпоинтах; как бы вы провели дизайн-QA вместе с разработчиком?
figmadesignresponsive - 98
Как бы вы осовременили legacy-раздел аккаунта, сохранив старую фирменную шапку и фиксированные поля бэкенда?
branding - 99
Как бы вы расставили приоритеты дизайн-долга, если в бэклоге есть непоследовательные отступы, недоступные элементы и дубли компонентов?
backlogdesigncomponents - 100
Срочная фича принесла локальные стили и отсоединённые компоненты Figma; как бы вы провели чистку, не задерживая следующий релиз?
figmacomponentsstyle