Skip to content

Вопросы на собеседовании: Веб-дизайнер

100 реальных вопросов с образцовыми ответами и пояснениями для уровня Middle.

Смотреть пример резюме: Веб-дизайнер

Тренировка флешкарточками

Интервальное повторение · Hunter Pass

Вопросы

componentsdesign-systemsystem-design

Дизайн-система должна выстраивать переиспользуемые решения от низкоуровневых основ до полных паттернов взаимодействия.

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

Зачем это спрашивают: Интервьюер проверяет, понимаете ли вы архитектуру системы как слои с разной ответственностью и частотой переиспользования.

componentsdesign-systemsystem-design

Полезная граница компонента заключает одну узнаваемую ответственность со стабильным контрактом.

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

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

components

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

  • Размер, акцент и состояние взаимодействия являются типичными осями вариантов, потому что назначение и анатомия компонента сохраняются.
  • Структурное изменение с другой семантикой, например чекбокс вместо переключателя, требует отдельного компонента несмотря на визуальное сходство.
  • Независимые настройки лучше выразить свойствами или композицией, чтобы не создавать вариант для каждого сочетания.
  • Каждому разрешённому сочетанию нужен реальный случай применения; техническая возможность ещё не делает его частью API.

Зачем это спрашивают: Интервьюер оценивает, умеете ли вы сдерживать рост вариантов и сохранять осмысленные различия компонентов.

componentssystem-design

Состояния взаимодействия должны отражать разные условия пользователя или системы с явными визуальными и поведенческими правилами.

  • Hover, focus-visible и pressed описывают разные моменты ввода, поэтому их нельзя сводить к одному более тёмному стилю.
  • Selected, checked и expanded сохраняются после действия, а pressed обычно длится только во время активации.
  • Loading должен сохранять контекст и предотвращать повторное действие, но не смешиваться с disabled, который означает недоступность.
  • Состояниям ошибки и успеха нужен текстовый или другой нецветовой признак, а не только оттенок рамки.

Зачем это спрашивают: Сильный ответ различает временные, сохраняемые, связанные с доступностью действия и валидационные состояния, а не просто перечисляет экраны.

componentsdesign-systemdesign

Эти три слоя идут от исходных значений к смыслу, а затем к решению конкретного компонента.

  • Примитив вроде blue-600 или space-300 называет значение, но не указывает место применения.
  • Семантический токен вроде color-action-primary или space-content-gap называет роль, которая сохраняется при смене темы.
  • Компонентный токен вроде button-primary-background решает локальную задачу и обычно ссылается на семантический токен.
  • Компоненты должны использовать самый высокий осмысленный слой, чтобы изменения исходной палитры не проникали во все макеты и файлы кода.

Зачем это спрашивают: Интервьюер проверяет, можете ли вы объяснить абстракцию токенов и разные виды связанности, которые сокращает каждый слой.

tokens

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

  • color-text-primary может ссылаться на gray-950 в светлом режиме и gray-050 в тёмном, а ссылки компонентов останутся прежними.
  • Режим бренда может перенаправить роли действий на другую палитру без дублирования каждого токена кнопки или ссылки.
  • Цепочки алиасов должны оставаться достаточно короткими, чтобы при отладке можно было пройти от значения компонента к источнику.
  • Режимы должны отражать независимые контексты вроде темы или плотности, а не хранить несвязанные разовые исключения.

Зачем это спрашивают: Сильный ответ связывает алиасы с поддерживаемой темизацией и учитывает цену непрозрачных цепочек зависимостей.

design-systemdesigntokens

Устойчивое название токена описывает роль и иерархию, не встраивая временное визуальное значение.

  • Название color-text-muted останется верным, если приглушённый текст изменится с серого на тонированный нейтральный цвет.
  • Единый порядок вроде категории, понятия, свойства и состояния делает токены предсказуемыми и удобными для поиска.
  • Суффиксы состояний должны быть явными, например action-primary-background-hover вместо action-blue-dark.
  • Таксономия обязана работать в Figma и коде, поэтому для разделителей и зарезервированных слов нужно согласованное правило преобразования.

Зачем это спрашивают: Интервьюер оценивает, переживут ли ваши названия визуальные изменения и переход между инструментами.

system-designdesigndesign-system

Управление определяет, как система принимает, изменяет, документирует и выводит из использования общие решения.

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

Зачем это спрашивают: Сильный ответ описывает управление как практический жизненный цикл, а не комитет или статичный гайдлайн.

system-designdesigndesign-system

Такая политика позволяет системе развиваться без скрытой поломки существующих продуктов.

  • Замена должна быть опубликована до того, как старый компонент или токен перестанут быть нормальным выбором.
  • Уведомление называет причину, поддерживаемый путь миграции и дату удаления или пересмотра.
  • Ресурсы Figma, пакеты кода и документация должны иметь одинаковый статус, чтобы команды не брали устаревший источник.
  • Немедленное удаление допустимо при серьёзном риске; обычная очистка должна дать потребителям время на переход.

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

componentsa11y

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

  • Компонент задаёт клавиатурное поведение, порядок фокуса, размер цели и видимые состояния вместе с визуальной анатомией.
  • Текст, значки, границы и индикаторы фокуса проверяются на каждой поддерживаемой подложке и в каждом состоянии.
  • Свойства должны упрощать доступный путь, например требовать подпись и отдельно открывать вариант только со значком.
  • Документация обозначает ответственность пользователя компонента, например осмысленный текст кнопки или заголовок диалога.

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

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

  • База 16 пикселей с коэффициентом 1,25 даёт до округления ступени около 16, 20, 25 и 31 пикселя.
  • Малый коэффициент даёт больше спокойных ролей для плотных интерфейсов, а крупный создаёт выразительную иерархию с меньшим числом полезных промежуточных размеров.
  • Рассчитанные значения являются отправными точками: их можно округлить для чистого отображения и назначить семантическим текстовым ролям.
  • Подписи, таблицы данных и акцидентный маркетинговый текст могут требовать контролируемых исключений вместо принуждения к одной последовательности.

Зачем это спрашивают: Интервьюер оценивает, умеете ли вы применять математическую последовательность и не превращать коэффициент в эстетический закон.

typographycss

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

  • Чистое значение vw может стать нечитаемо малым или чрезмерно крупным, если его не сдерживают отдельные пределы.
  • clamp() может объединить минимум и максимум в rem с предпочтительным выражением calc(), смешивающим rem и единицы вьюпорта.
  • Часть в rem лучше сохраняет реакцию на настройки текста в браузере, а часть от вьюпорта даёт постепенную адаптацию макета.
  • Основному тексту нужен узкий диапазон, а каждую роль всё равно следует проверять при масштабировании, переносах и на промежуточной ширине.

Зачем это спрашивают: Сильный ответ объясняет компромисс доступности и предсказуемости внутри плавной формулы, а не просто называет clamp().

typography

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

  • Малые оптические размеры могут иметь более открытые внутрибуквенные просветы, прочные штрихи и свободные интервалы для сохранения чёткости.
  • Акцидентные размеры допускают более тонкие детали, сильный контраст штрихов и плотные пропорции благодаря большему числу пикселей.
  • Вариативный шрифт с осью opsz интерполирует эти изменения, а font-optical-sizing: auto позволяет браузеру с поддержкой свойства получить настройку из размера шрифта.
  • Эффект зависит от гарнитуры, поэтому дизайнеру нужно сравнивать реальные образцы, а не считать любую оптическую ось улучшением выбранной роли.

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

typography

Вариативный шрифт хранит непрерывные оси дизайна в одном ресурсе и даёт более тонкое управление, чем несколько статичных файлов.

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

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

Вертикальный ритм согласует высоту строк и отступы блоков, чтобы связанный текст образовывал повторяемый темп чтения.

  • Интерлиньяж основного текста задаёт самый частый интервал, а у заголовков он может быть плотнее, поскольку акцидентный текст реже переносится.
  • Отступ над заголовком должен обозначать более сильную границу раздела, чем отступ под ним к абзацу.
  • Отступы абзацев, списков и подписей могут использовать кратные или связанные ступени без жёсткой привязки каждого элемента к базовой сетке.
  • Элементам управления и смешанному контенту могут понадобиться оптические поправки, потому что строгая базовая линия способна нарушить внутренний баланс.

Зачем это спрашивают: Интервьюер оценивает, умеете ли вы системно выстраивать отступы текста и допускать обоснованные оптические исключения.

layout

Контентно-зависимая компоновка позволяет контенту и доступному пространству сильнее определять результат, чем фиксированные размеры под конкретный вьюпорт.

  • min-content задаёт наименьшую ширину контента без предотвратимого переполнения, а max-content его идеальную ширину без переносов.
  • Гибкие треки и перенос позволяют композиции адаптироваться до появления необходимости в медиазапросе.
  • min(), max() и clamp() выражают границы, объединяющие ограничения контента, контейнера и вьюпорта.
  • Такое поведение сокращает число брейкпоинтов, но структурные изменения композиции всё равно требуют запросов.

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

cssgridresponsive

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

  • repeat(auto-fit, minmax(16rem, 1fr)) схлопывает пустые треки и распределяет оставшуюся ширину между существующими колонками.
  • Минимум определяет момент, когда следующая колонка перестаёт помещаться, поэтому он должен зависеть от контента карточки, а не названия устройства.
  • Максимум 1fr позволяет трекам делить лишнее место вместо случайного пробела у края контейнера.
  • auto-fill сохраняет места пустых треков, что полезно только при намеренном резервировании структуры сетки.

Зачем это спрашивают: Интервьюер проверяет понимание механики и дизайн-последствий внутренне адаптивной сетки карточек.

csscontainersqueries

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

  • Одна карточка может иметь компактную компоновку в боковой панели и расширенную в основном контенте при одной ширине вьюпорта.
  • Родитель должен создать подходящий контейнер запроса, обычно через container-type: inline-size.
  • Пороги запроса должны отмечать момент, когда собственный контент или анатомия компонента перестают работать.
  • Запросы вьюпорта остаются уместными для изменений страницы, связанных со всем экраном или средой.

Зачем это спрашивают: Сильный ответ различает адаптивность компонента и страницы и понимает место каждого вида запроса.

layoutsystem-designcss

Subgrid позволяет вложенной сетке переиспользовать треки родителя вместо создания несвязанной внутренней сетки.

  • Заголовки, описания и действия карточек могут выравниваться между соседними карточками при разной длине контента.
  • Вложенный элемент участвует в родительских строках или колонках, выбранных для оси subgrid.
  • Общее выравнивание становится структурным и не зависит от продублированных пикселей или фиксированных высот.
  • Subgrid не нужен, если вложенному контенту требуются независимые треки и выравнивание между компонентами отсутствует.

Зачем это спрашивают: Интервьюер оценивает, понимаете ли вы сохранение общей сетки во вложенном контенте.

layoutcss

Логические свойства задают отступы и размеры по направлению текста, а не жёстко по физическим сторонам.

  • 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