При создании нового Angular-проекта можно сразу указать использование SCSS:
ng new my-app --style=scss
Для существующего проекта нужно:
angular.json
:"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
}
.css
файлы в .scss
Позволяют хранить часто используемые значения:
// _variables.scss
$primary-color: #3f51b5;
$secondary-color: #ff4081;
// Использование в компоненте:
.header {
background-color: $primary-color;
}
Упрощает структуру стилей:
.card {
padding: 1rem;
&-header {
font-size: 1.2rem;
}
&:hover {
box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
}
Позволяют повторно использовать куски кода:
@mixin flex-center($direction: row) {
display: flex;
justify-content: center;
align-items: center;
flex-direction: $direction;
}
.container {
@include flex-center(column);
}
Можно разбивать стили на модули:
// styles.scss
@import 'variables';
@import 'mixins';
@import 'components/buttons';
Структура проекта:
src/
├── styles/
│ ├── _variables.scss
│ ├── _mixins.scss
│ └── components/
│ ├── _buttons.scss
│ └── _cards.scss
├── app/
└── styles.scss
Компонентные стили:
ViewEncapsulation
(обычно Emulated
):host {
--local-padding: 1rem;
}
.component-class {
padding: var(--local-padding);
}
Глобальные vs локальные стили:
styles.scss
Angular CLI автоматически компилирует SCSS в CSS во время сборки. Для кастомных настроек можно использовать:
// angular.json
"projects": {
"my-app": {
"architect": {
"build": {
"options": {
"stylePreprocessorOptions": {
"includePaths": ["src/styles"]
}
}
}
}
}
}
angular.json
:"build": {
"options": {
"sourceMap": true,
"extractCss": true
}
}
ng serve --source-map
для разработкиAngular отлично интегрирован с SCSS/SASS, предоставляя мощные инструменты для организации стилей. Использование препроцессоров значительно улучшает поддерживаемость и масштабируемость CSS-кода в больших проектах.