Angular+sass(scss)에 의한 컬러 테마 전환 모범 사례
10727 단어 AngularTypeScript자바스크립트scssSass
Angular+sass(scss)에 의한 컬러 테마 전환 모범 사례
이 기사는 Angular Advent Calendar 2018, 10 일째 기사입니다.
TL;DR
목표로 하고 싶은 것
쓰기 동기
생각한 구성
코드 해설
// 適当な値で変数を初期化しておく
$back: #000000;
$font: #000000;
$bttn: #000000;
$btnf: #000000;
// テーマの数だけループする
@for $i from 1 through 2 {
.wrapper#{$i} {
@if $i == 1 {
// テーマごとに色を定義する,1回で良い.
$back : #F4F3EE;
$font : #463F3A;
$bttn : #E0AFA0;
$btnf : #FFFFFF;
} @else {
$back : #000000;
$font : #FFFFFF;
$bttn : #32FFFB;
$btnf : #38005B;
}
// スタイリングは,テーマごとに切り替えなくてよい.
background-color: $back;
color: $font;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
.block{
padding: 20px;
h1 {
font-size: 24px;
padding: 0;
margin: 0;
}
button {
background-color: $bttn;
color: $btnf;
}
}
}
}
.html
<!-- クラス名をバインドしている -->
<div [(class)]="colorTheme">
<div class="block">
<h1>Change Color Theme with .scss and .ts</h1>
<p>
toggle and change theme :)
</p>
</div>
<div class="block">
<button mat-button>This is the Button</button>
</div>
<div class="block">
<mat-slide-toggle (change)="changeColor($event)">
On Dark
</mat-slide-toggle>
</div>
</div>
.ts
import { Component } from '@angular/core';
import { MatSlideToggle } from '@angular/material';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.scss' ]
})
export class AppComponent {
name = 'Angular';
// バインドするテーマ
public colorTheme = 'wrapper1';
constructor(){
this.colorTheme = 'wrapper1';
}
// toggle event
// トグルされるたびに,バインドするクラス名を変更する
public changeColor(e){
if(e.checked) {
// to dark
this.colorTheme = 'wrapper2';
} else {
// to light
this.colorTheme = 'wrapper1';
}
}
}
끝에
내일은 @kimamula씨의 기사입니다.
잘 부탁드립니다.
Reference
이 문제에 관하여(Angular+sass(scss)에 의한 컬러 테마 전환 모범 사례), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/iwashi-kun/items/e3e1d36e5c8470ac0847텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)