MATERIAL NAVBAR

$ ng generate @angular/material:material-nav --name=modules/intranet/components/navbar –spec=false


Modificar estilo en styles.scss
/* You can add global styles to this file, and also import other style files */
@import "~@angular/material/prebuilt-themes/indigo-pink.css";
html,
body {
  height100%;
}

body {
  margin0;
}


Editar el archivo navbar.component.css
.sidenav-container {
  height100%;
}

.sidenav {
  width200px;
  background-colorrgb(426384);
}

.sidenav {
  mat-toolbar {
    background-colorrgb(426384);
  }

}

.mat-list-item {
  colorwhite;
}

.sidenav > .mat-nav-list > a:hover {
  background-colorrgb(6686104);
}

.active-list-item {
  background-colorrgb(6686104!important;
}

.span-usuario {
  width200px;
  heightauto;
  colorwhite;
  font-size15px;
  text-aligncenter;
  paddingauto;
  margin-top4px;
  margin-bottom8px;
}

.mat-toolbar {
  height58px;
}

.mat-toolbar.mat-primary {
  positionsticky;
  top0;
}

.spacer {
  flex1 1 auto;
}

mat-toolbar a {
  displayinline-block;
  margin0 10px;
  colorwhite;
  text-decorationnone;
}

.img-responsive {
  widthauto;
  height42px;
}

.mat-nav-list {
  padding-top0px;
}

mat-icon {
  margin-right5px;
}

.child-link {
  background-color#6f7f8e;
  content"";
  height8px;
  width8px;
  z-index1;
  border-radius50%;
  margin-right10px;
}

.selected {
  border-top1px solid #546371;
  border-bottom1px solid #1f2f3f;
}
/* .selected div a{
  border-right: 5px solid #1abb9c;
} */

Editar el archivo navbar.component.html
<mat-sidenav-container class="sidenav-container">
  <mat-sidenav #drawer class="sidenav" fixedInViewport="true"
    [attr.role]="(isHandset$ | async) ? 'dialog' : 'navigation'" [mode]="(isHandset$ | async) ? 'over' : 'side'"
    [opened]="!(isHandset$ | async)">
    <mat-toolbar>
      <img class="img-responsive" src="./assets/images/icons/perficon.png">
    </mat-toolbar>
    <div class="span-usuario">
      <span>
        TECNICO INFORMATICO
        <br>
        (U.A.)
      </span>
    </div>
    <mat-nav-list>
      <a mat-list-item [routerLink]="['/intranet/home']" routerLinkActive="active-list-item"
        [ngClass]="{'selected':showSubmenu1}" (click)="showSubmenu1 = !showSubmenu1">
        <mat-icon>home</mat-icon> Home
      </a>
      <a mat-list-item routerLinkActive="active-list-item" [ngClass]="{'selected':showSubmenu2}"
        (click)="showSubmenu2 = !showSubmenu2">
        <mat-icon>assignment</mat-icon> Configuracion
        <span class="spacer"></span>
        <mat-icon>expand_more</mat-icon>
      </a>
      <div *ngIf="showSubmenu2">
        <a mat-list-item [routerLink]="['/intranet/configuracion/maestras']" routerLinkActive="active-list-item"
          [ngStyle]="{'padding-left': '20px'}">
          <span class="child-link"></span>
          Maestras
        </a>
      </div>

      <a mat-list-item routerLinkActive="active-list-item" [ngClass]="{'selected':showSubmenu3}"
        (click)="showSubmenu3 = !showSubmenu3">
        <mat-icon>dynamic_feed</mat-icon> Administracion
        <span class="spacer"></span>
        <mat-icon>expand_more</mat-icon>
      </a>
      <div *ngIf="showSubmenu3">
        <a mat-list-item [routerLink]="['/intranet/administracion/productos']" routerLinkActive="active-list-item"
          [ngStyle]="{'padding-left': '20px'}">
          <span class="child-link"></span>
          Productos
        </a>
      </div>
      <div *ngIf="showSubmenu3">
        <a mat-list-item [routerLink]="['/intranet/administracion/proveedores']" routerLinkActive="active-list-item"
          [ngStyle]="{'padding-left': '20px'}">
          <span class="child-link"></span>
          Proveedores
        </a>
      </div>
    </mat-nav-list>
  </mat-sidenav>
  <mat-sidenav-content>
    <mat-toolbar>
      <button type="button" aria-label="Toggle sidenav" mat-icon-button (click)="drawer.toggle()"
        *ngIf="isHandset$ | async">
        <mat-icon aria-label="Side nav toggle icon">menu</mat-icon>
      </button>
      <span>Facturador electronico</span>

      <span class="spacer"></span>
      <button mat-button [matMenuTriggerFor]="usuario">
        AMILCAR
        <!-- <span>(Jefe Unidad Territorial)</span> -->
        <mat-icon>expand_more</mat-icon>
      </button>
      <mat-menu #usuario="matMenu" xPosition="after" [overlapTrigger]="false">
        <button mat-menu-item (click)="salir()">Salir</button>
      </mat-menu>
    </mat-toolbar>
    <!-- Add Content Here -->
    <ng-content></ng-content>
  </mat-sidenav-content>
</mat-sidenav-container>

Editar el archivo navbar.component.ts
import { ComponentInputOnInitInject } from '@angular/core';
import { BreakpointObserverBreakpointsBreakpointState } from '@angular/cdk/layout';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { UsuarioService } from 'src/app/core/services/usuario.service';
import { Router } from '@angular/router';

@Component({
  selector: 'navbar',
  templateUrl: './navbar.component.html',
  styleUrls: ['./navbar.component.scss']
})
export class NavbarComponent implements OnInit {
  @Input() showSubmenu1boolean;
  @Input() showSubmenu2boolean;

  isHandset$Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset)
    .pipe(
      map(result => result.matches)
    );

  constructor(
    private breakpointObserverBreakpointObserver,
    @Inject(UsuarioServiceprivate userUsuarioService,
    private routerRouter) { }

  ngOnInit() {
    if (this.user.getId == null) {
      this.router.navigate(['/sesion/login']);
    }
  }
}

Agregar el el archivo home.component.html lo siguiente:
<navbar [showSubmenu1]="true">
  <h2>Hola mundo</h2>
</navbar>

Adicional mente es necesario agregar algunos componentes del materiales en el archivo material.modules.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MatButtonModuleMatToolbarModuleMatSidenavModuleMatMenuModule } from '@angular/material';
import { ResponsiveRowsDirective } from '../core/directives/responsive-rows.directive';
import { UppercasedDirective } from '../core/directives/uppercased.directive';
import { ReactiveFormsModule } from '@angular/forms';
import { LayoutModule } from '@angular/cdk/layout';
import { HttpClientModule } from '@angular/common/http';

@NgModule({
  declarations: [],
  imports: [
    CommonModule,
    
    MatButtonModule,
    MatToolbarModule,
    MatSidenavModule,
    MatMenuModule,
  ],
  exports: [
    MatButtonModule,
    MatToolbarModule,
    MatSidenavModule,
    MatMenuModule,
  ]
})

export class MaterialModule { }

Y para la imagen en el toolbar es necesario agregar un logo en: