소재 2는 코어의 요소에 대한 테마 기반을 사용합니다. Sass와 mixins를 사용하여 스타일을 수정하거나 앱에 맞는 테마를 정의 할 수 있습니다. 이 사용 방법은 다음과 같습니다
첫째, 공식 문서를 사용하여 테마를 만들 :
둘째, 선택한 구성 요소의 믹스 인을 만들 :
이것을 완료하는 방법은 쉽습니다.
* .scss에는 구성 요소 (구조체 스타일)의 일반 스타일이 포함되고 * .html 파일에는 yout 구성 요소의 HTML 구조가 포함됩니다. 예를 들어 는 :
<div>
<button md-raised-button routerLink="/stock">STOCK OF PRODUCTS</button>
</div>
지금,라는 새로운 파일을 생성 : 'my_component_styleded.component.html.scss-theme.scss'디렉토리에, 그리고 버튼 요소를 개인에 대한 추적 코드와 함께 믹스 인을 사용 :
@import '[email protected]/material/theming';
@mixin my_component_styleded-theme($theme) {
$primary: map-get($theme, primary);
$accent: map-get($theme, accent);
div {
button {
color: $accent;
&:hover, &:focus {
color: $primary;
border-left: 5px solid mat-color($accent);
}
}
}
}
다른 변수를 Sass와 다른 것으로 선언 할 수 있습니다.
마지막으로, 당신은 앱의 주요 style.scss이 믹스 인을 추가해야합니다 : - style.scss -
@import '[email protected]/material/theming';
@include mat-core();
// Custom component themes:
@import 'app/components/my_component_styleded/my_component_styleded.component.scss-theme';
@mixin custom_component-theme($asis-light-theme) {
@include my_component_styleded-theme($asis-light-theme);
}
// Light Theme
@include angular-material-theme($asis-light-theme);
@include custom-component-theme($asis-light-theme);
)
난에 대답을 매우 비슷한 질문이 여기에 있습니다 : http://stackoverflow.com/a/39379754/13825 – Gopherkhan
[Material2 구성 요소에 스타일 적용]이 가능한 복제가 불가능합니다 (http://stackoverflow.com/questions/38360065/applying-style-to). -material2-component-does-not-work) – Gopherkhan