Главная проблема CSS в большом проекте — глобальность: любое правило может задеть чужой компонент. Подходы решают её по-разному.
| подход | идея | цена |
|---|---|---|
| БЭМ | соглашение об именах: card__title--active | дисциплина, длинные классы |
| CSS Modules | классы автоматически уникальны для файла | нужна сборка |
| CSS-in-JS (styled-components, Emotion) | стили в компоненте, динамика из пропсов | цена в рантайме, сложности с SSR |
| Tailwind | утилитарные классы прямо в разметке | длинная разметка, свой словарь |
Что важно знать
- Изоляция стилей компонента и общий слой токенов (цвета, отступы, шрифты) в переменных.
- Для React-проектов сейчас чаще встречаются CSS Modules и Tailwind; CSS-in-JS с рантаймом уходит из-за серверных компонентов.
- Препроцессоры (Sass) всё ещё распространены, но переменные, вложенность и
@layerв чистом CSS закрывают большую часть задач.