Angular Material is a popular UI framework based on Material Design for Angular.
In this article, we’ll look at how to use Angular Material into our Angular project.
Sidenav
Angular comes with a sidenav component.
We can add it by writing:
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatButtonModule } from '@angular/material/button';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
MatSidenavModule,
MatButtonModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
app.module.html
<div>
<mat-drawer-container class="example-container" autosize>
<mat-drawer #drawer class="example-sidenav" mode="side">
<p>Auto-resizing sidenav</p>
<p *ngIf="showFiller">Lorem, ipsum dolor sit amet consectetur.</p>
<button (click)="showFiller = !showFiller" mat-raised-button>
Toggle extra text
</button>
</mat-drawer>
<div class="example-sidenav-content">
<button type="button" mat-button (click)="drawer.toggle()">
Toggle sidenav
</button>
</div>
</mat-drawer-container>
</div>
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
showFiller = false;
}
styles.css
.example-container {
height: 100vh;
}
We add the sidenav with the mat-drawer-container
as its container.
mat-drawer
is the sidenav drawer.
The Toggle sidenav button shows the drawer.
The Toggle extra text button closes the drawer.
The filler text display is controlled by showFiller
.
drawer.toggle()
lets us toggle the drawer.
Slide Toggles
We can add a toggle with the mat-slide-toggle
component.
For example, we can write:
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
MatSlideToggleModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
app.component.html
<div>
<mat-slide-toggle color="red" [checked]="true" [disabled]="false">
Slide me!
</mat-slide-toggle>
</div>
We add the MatSlideToggleModule
into our module so that we can add the mat-slide-toggle
component into the template.
checked
sets the checked state.
disabled
makes it disabled if it’s true
.
color
sets the color.
Slider
We can add a slider with the mat-slider
component.
For example, we can write:
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MatSliderModule } from '@angular/material/slider';
import { MatCardModule } from '@angular/material/card';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
MatSliderModule,
MatCardModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
app.component.html
<div>
<mat-card class="example-result-card">
<mat-card-content>
<mat-slider min="1" max="5" step="0.5" value="1.5"></mat-slider>
</mat-card-content>
</mat-card>
</div>
Adding the MatSliderModule
lets us add the mat-slider
to our template.
min
has the minimum allowed value.
max
has the maximum allowed value.
step
has the interval we can set.
value
is the value of the slider.
Conclusion
We can add sidenavs, slide toggles, and sliders into our Angular app with Angular Material.