Собственные свойства (Custom Properties), или CSS-переменные, позволяют определять многократно используемые значения (цвета, размеры, шрифты) в CSS.
Препроцессоры CSS (Less, Sass, Stylus) предоставляют функциональность на уровне языка (переменные, миксины, функции, вложенность), которая компилируется в стандартный CSS.
CSS Modules — это подход, при котором каждый CSS-файл считается модулем, а все имена классов и анимаций по умолчанию локализованы. Это достигается путем автоматического генерации уникальных хешированных имен классов, предотвращая конфликты стилей между компонентами.
Импорт в CSS:
css
Директива @import позволяет включать содержимое одного CSS-файла в другой. Важно: @import должен находиться в начале файла, до всех других правил, кроме @charset. Использование @import может увеличить время загрузки страницы из-за последовательных HTTP-запросов для каждого импортированного файла.
В контексте сборщиков (Webpack, Parcel, Rollup) импорт CSS происходит на уровне JavaScript:
javascript
Сборщик обрабатывает этот импорт с помощью соответствующих лоадеров (например, css-loader, style-loader) для объединения и обработки CSS-файлов. Такой подход более эффективен, так как сборщик может комбинировать CSS в один или несколько файлов, применять оптимизации и кэширование.
Сравнение:
| Возможность | CSS @import | Сборщики (JS импорт) |
|---|---|---|
| Запросы | Последовательные HTTP-запросы | Обрабатываются сборщиком, часто объединяются |
| Производительность | Может замедлять загрузку | Более высокая производительность благодаря оптимизациям |
| Обработка | Нет | Поддержка препроцессоров, минификации, автопрефиксеров |
| Локализация классов | Нет | Поддержка CSS Modules |
| Синтаксис | Только в CSS | В JavaScript |