Для иконки и текста используйте inline-flex, align-items:center и gap; размеры и отступы задавайте через согласованные tokens и относительные единицы.
Это имеет смысл — закрытие публичного контракта предотвращает непреднамеренное отклонение API, а дискриминированные объединения — сильная причина предпочесть `type`. Когда вы реализуете эту кнопку так, чтобы она была пиксельно точной и отзывчивой, как вы обрабатываете пространство и выравнивание, чтобы иконка+метка оставались визуально согласованными на разных точках прерывания и при изменениях размера шрифта?
Для иконки и текста используйте inline-flex, align-items:center и gap; размеры и отступы задавайте через согласованные tokens и относительные единицы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для иконки и текста используйте inline-flex, align-items:center и gap; размеры и отступы задавайте через согласованные tokens и относительные единицы.
Иконке обычно запрещают сжатие, а тексту задают понятный line-height и правила переноса. Проверяйте длинные подписи, увеличение шрифта, focus и разные ширины экрана. Логику дискриминированного union нельзя заменить оформлением: типы и адаптивная вёрстка решают разные задачи.