Проверяет подход к модификации переиспользуемого UI-компонента в одном месте без нарушения его общей целостности.
Переиспользуемые компоненты создаются для единообразия и экономии времени. Когда дизайнер просит изменить внешний вид в одном конкретном месте, важно не сломать остальные использования. Нужно найти баланс между гибкостью и стабильностью.
variant или size, который меняет стили. Это самый чистый способ, если изменение укладывается в логику компонента.className, можно добавить свой класс и перебить стили, но это хрупко и может сломаться при изменении внутренней структуры.Допустим, есть кнопка Button с базовыми стилями. Нужно сделать её красной только в одном месте.
// Button.jsx
function Button({ variant = 'primary', className, ...props }) {
return <button className={`btn btn-${variant} ${className}`} {...props} />;
}
// Использование в конкретном месте
<Button variant="danger">Удалить</Button>
// Или через CSS-переменные
<div className="special-context">
<Button className="special-btn">Особый</Button>
</div>
/* CSS */
.special-context .special-btn {
--btn-bg: red;
}Лучше всего сначала попробовать пропсы или CSS-переменные, так как они сохраняют предсказуемость. Если изменение уникально и не вписывается в дизайн-систему, используйте композицию. Избегайте глобальных переопределений, чтобы не создавать скрытые зависимости.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию