Современные интерфейсы собирают из переиспользуемых компонентов: кнопок, полей ввода, карточек, меню. Единый набор компонентов с правилами их применения называют дизайн-системой. Она даёт согласованность (везде одинаковые кнопки), ускоряет работу и упрощает поддержку. Пользователю проще: научившись пользоваться элементом один раз, он узнаёт его везде.
Полезно опираться на устоявшиеся паттерны — привычные решения типовых задач: корзина с иконкой тележки, гамбургер-меню, поиск с лупой, форма входа. Не стоит изобретать оригинальное там, где работает привычное: люди приходят с ожиданиями из других продуктов, и неожиданный интерфейс их путает. Оригинальность хороша в содержании, а не в базовых элементах управления.
Каждый компонент имеет состояния: обычное, при наведении, нажатое, неактивное, с ошибкой, загрузка. Хороший дизайн продумывает их все, а не только «как выглядит, когда всё хорошо». Именно состояния делают интерфейс живым и понятным в реальном использовании.