Note : By default SideNavbar is hidden
material.module.ts
import { NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material'; import { MatProgressSpinnerModule} from '@angular/material/progress-spinner'; import { MatBadgeModule } from '@angular/material/badge'; import { MatButtonToggleModule} from '@angular/material/button-toggle'; import { MatIconModule} from '@angular/material/icon'; import { MatToolbarModule} from '@angular/material/toolbar'; import {MatSidenavModule} from '@angular/material/sidenav'; const MaterialComponent = [ MatButtonModule, MatButtonToggleModule, MatIconModule, MatBadgeModule, MatProgressSpinnerModule, MatToolbarModule, MatSidenavModule ]; @NgModule({ imports: [ MaterialComponent, ], exports: [ MaterialComponent ] }) export class MaterialModule { }
app.module.ts
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { MaterialModule } from './material/material.module'; import { FormsModule } from '@angular/forms'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, BrowserAnimationsModule, MaterialModule, FormsModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
app.component.ts
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { opened = false; title = 'GettingStarted'; log(state){ console.log(state); } }
app.component.html
<mat-sidenav-container> <!-- default is mode over --> <!-- mode push pushes over the content with an overlay--> <!-- mode side pushes over the content without an overlay and does not auto closes --> <mat-sidenav #sidenav (opened)="log('Opened')" (closed)="log('closed')" mode="side" [(opened)]="opened">Sidenav</mat-sidenav> <mat-sidenav-content>Main <button (click)="opened=!opened">Toggle Opened</button> <button (click)="sidenav.open()">Open</button> <button (click)="sidenav.close()">Close</button> <button (click)="sidenav.toggle()">Toggle</button> </mat-sidenav-content> </mat-sidenav-container>
app.component.css
mat-sidenav-container{ height: 100%; } mat-sidenav, mat-sidenav-content{ padding: 16px; } mat-sidenav{ background: lightcoral; width: 200px; }
Output: