Angular Material 6x - قسمت هفتم - کار با انواع قالبها
نویسنده: وحید نصیری
تاریخ: ۱۳۹۷/۰۴/۲۶ ۸:۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
<mat-card>
Main Theme:
<button mat-raised-button color="primary">
Primary
</button>
<button mat-raised-button color="accent">
Accent
</button>
<button mat-raised-button color="warn">
Warning
</button>
</mat-card> @import '~@angular/material/theming'; @include mat-core(); $candy-app-primary: mat-palette($mat-indigo); $candy-app-accent: mat-palette($mat-pink, A200, A100, A400); $candy-app-warn: mat-palette($mat-red); $candy-app-theme: mat-light-theme($candy-app-primary, $candy-app-accent, $candy-app-warn); @include angular-material-theme($candy-app-theme);
ng new MyProjectName --style=sass
"styles": [ "node_modules/material-design-icons/iconfont/material-icons.css", "src/styles.css", "src/custom.theme.scss" ],
/* @import "~@angular/material/prebuilt-themes/indigo-pink.css"; */
body {
margin: 0;
} @import '~@angular/material/theming';
@include mat-core();
$my-app-primary: mat-palette($mat-blue-grey);
$my-app-accent: mat-palette($mat-pink, 500, 900, A100);
$my-app-warn: mat-palette($mat-deep-orange);
$my-app-theme: mat-light-theme($my-app-primary, $my-app-accent, $my-app-warn);
@include angular-material-theme($my-app-theme);
.alternate-theme {
$alternate-primary: mat-palette($mat-light-blue);
$alternate-accent: mat-palette($mat-yellow, 400);
$alternate-theme: mat-light-theme($alternate-primary, $alternate-accent);
@include angular-material-theme($alternate-theme);
} <mat-card class="alternate-theme">
Alternate Theme:
<button mat-raised-button color="primary">
Primary
</button>
<button mat-raised-button color="accent">
Accent
</button>
<button mat-raised-button color="warn">
Warning
</button>
</mat-card>
<mat-menu #menu="matMenu">
<button mat-menu-item (click)="openAddContactDialog()">New Contact</button>
<button mat-menu-item (click)="toggleTheme.emit()">Toggle theme</button>
</mat-menu> export class ToolbarComponent implements OnInit {
@Output() toggleTheme = new EventEmitter<void>(); <app-toolbar (toggleTheme)="toggleTheme()" (toggleSidenav)="sidenav.toggle()"></app-toolbar>
export class SidenavComponent {
isAlternateTheme = false;
toggleTheme() {
this.isAlternateTheme = !this.isAlternateTheme;
}
} <mat-sidenav-container fxLayout="row" class="app-sidenav-container" fxFill [class.alternate-theme]="isAlternateTheme">
<mat-menu #menu="matMenu">
<button mat-menu-item (click)="openAddContactDialog()">New Contact</button>
<button mat-menu-item (click)="toggleTheme.emit()">Toggle theme</button>
<button mat-menu-item (click)="toggleDir.emit()">Toggle dir</button>
</mat-menu> export class ToolbarComponent implements OnInit {
@Output() toggleDir = new EventEmitter<void>(); <app-toolbar (toggleDir)="toggleDir()" (toggleTheme)="toggleTheme()" (toggleSidenav)="sidenav.toggle()"></app-toolbar>
export class SidenavComponent implements OnInit, OnDestroy {
dir = "ltr";
toggleDir() {
this.dir = this.dir === "ltr" ? "rtl" : "ltr";
}
} <mat-sidenav-container fxLayout="row" class="app-sidenav-container" fxFill [dir]="dir" [class.alternate-theme]="isAlternateTheme">
@import '~@angular/material/theming';
@include mat-core();
$green-primary: mat-palette($mat-green,A700);
$green-accent: mat-palette($mat-green, A700, A200, A700);
$green-warn: mat-palette($mat-green,A700);
$green-app-theme: mat-light-theme($green-primary, $green-accent, $green-warn);
.green{
@include angular-material-theme($green-app-theme);
}
$yellow-primary: mat-palette($mat-yellow,A200);
$yellow-accent: mat-palette($mat-green, A700, A200, A700);
// The warn palette is optional (defaults to red).
$yellow-app-warn: mat-palette($mat-green,A700);
// Create the theme object (a Sass map containing all of the palettes).
$yellow-app-theme: mat-light-theme($yellow-primary, $yellow-accent, $yellow-app-warn);
.yellow{
@include angular-material-theme($yellow-app-theme);
} <div [ngClass]="themeClass" color="primary">
<mat-toolbar #toolbar color="primary">
<p>تست قالب پویا</p>
<a routerLink='' mat-button>خانه</a>
<button mat-button [matMenuTriggerFor]="menu">قالب</button>
<mat-menu #menu="matMenu">
<button mat-menu-item (click)="changeTheme('')">پیشفرض</button>
<button mat-menu-item (click)="changeTheme('green')">سبز</button>
<button mat-menu-item (click)="changeTheme('yellow')">زرد</button>
</mat-menu>
</mat-toolbar>
</div> import { Component } from '@angular/core';
import { Http } from '@angular/http';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app';
themeClass = localStorage.getItem('nameOfThemeClass');
constructor() {
}
ngOnInit() {
}
changeTheme(theme) {
this.themeClass = theme;
localStorage.setItem('nameOfThemeClass', this.themeClass);
}
}