Angular Material offers a wide variety of UI components based on the Material Design specification. While learning the development of Angular application it becomes a hassle to import individual Material Components everytime you're using a new material component.
Overcome this easily by creating a typescript file, say material.module.ts in your module and import all Material Components into the typescript file. After creating the imports array, create a corresponding exports array. Voila! now simply import the material.module.ts into your main module and use all Material Components.
Going a step further, if you're familiar with Sharing modules concept. Create a shared module with all the Material Components import/export typescript file. Now the same concept above can be extended to any number of modules with a simple import of the shared module. Basically you need to create one boilerplate of all imports/exports(material.module.ts) in your shared module and import it once every module.
Note: In production, all these imports will add bulk overhead which is not advised. Therefore, replace the mass imports of everything, with only those imports that are absolutely necessary.
material.module.ts
import { NgModule } from '@angular/core'; import { MatAutocompleteModule } from '@angular/material/autocomplete'; import { MatBadgeModule } from '@angular/material/badge'; import { MatBottomSheetModule } from '@angular/material/bottom-sheet'; import { MatButtonModule } from '@angular/material/button'; import { MatButtonToggleModule } from '@angular/material/button-toggle'; import { MatCardModule } from '@angular/material/card'; import { MatCheckboxModule } from '@angular/material/checkbox'; import { MatChipsModule } from '@angular/material/chips'; import { MatCommonModule } from '@angular/material/core'; import { MatDatepickerModule } from '@angular/material/datepicker'; import { MatDialogModule } from '@angular/material/dialog'; import { MatDividerModule } from '@angular/material/divider'; import { MatExpansionModule } from '@angular/material/expansion'; import { FormControl } from '@angular/forms'; import { MatFormFieldModule } from '@angular/material/form-field'; import { FormsModule } from '@angular/forms'; import { MatGridListModule } from '@angular/material/grid-list'; import { MatIconModule } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; import { MatListModule } from '@angular/material/list'; import { MatMenuModule } from '@angular/material/menu'; import { NgForm } from '@angular/forms'; import { MatPaginatorModule } from '@angular/material/paginator'; import { MatProgressBarModule } from '@angular/material/progress-bar'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatRadioModule } from '@angular/material/radio'; import { ReactiveFormsModule } from '@angular/forms'; import { MatRippleModule } from '@angular/material/core'; import { MatSelectModule } from '@angular/material/select'; import { MatSidenavModule } from '@angular/material/sidenav'; import { MatSlideToggleModule } from '@angular/material/slide-toggle'; import { MatSliderModule } from '@angular/material/slider'; import { MatSnackBarModule } from '@angular/material/snack-bar'; import { MatSortModule } from '@angular/material/sort'; import { MatStepperModule } from '@angular/material/stepper'; import { MatTableModule } from '@angular/material/table'; import { MatTabsModule } from '@angular/material/tabs'; import { MatToolbarModule } from '@angular/material/toolbar'; import { MatTooltipModule } from '@angular/material/tooltip'; import { MatTreeModule } from '@angular/material/tree'; @NgModule({ declarations: [], imports: [ MatAutocompleteModule, MatBadgeModule, MatBottomSheetModule, MatButtonModule, MatButtonToggleModule, MatCardModule, MatCheckboxModule, MatChipsModule, MatCommonModule, MatDatepickerModule, MatDialogModule, MatDividerModule, MatExpansionModule, FormControl, MatFormFieldModule, FormsModule, MatGridListModule, MatIconModule, MatInputModule, MatListModule, MatMenuModule, NgForm, MatPaginatorModule, MatProgressBarModule, MatProgressSpinnerModule, MatRadioModule, ReactiveFormsModule, MatRippleModule, MatSelectModule, MatSidenavModule, MatSlideToggleModule, MatSliderModule, MatSnackBarModule, MatSortModule, MatStepperModule, MatTableModule, MatTabsModule, MatToolbarModule, MatTooltipModule, MatTreeModule, ], exports: [ MatAutocompleteModule, MatBadgeModule, MatBottomSheetModule, MatButtonModule, MatButtonToggleModule, MatCardModule, MatCheckboxModule, MatChipsModule, MatCommonModule, MatDatepickerModule, MatDialogModule, MatDividerModule, MatExpansionModule, FormControl, MatFormFieldModule, FormsModule, MatGridListModule, MatIconModule, MatInputModule, MatListModule, MatMenuModule, NgForm, MatPaginatorModule, MatProgressBarModule, MatProgressSpinnerModule, MatRadioModule, ReactiveFormsModule, MatRippleModule, MatSelectModule, MatSidenavModule, MatSlideToggleModule, MatSliderModule, MatSnackBarModule, MatSortModule, MatStepperModule, MatTableModule, MatTabsModule, MatToolbarModule, MatTooltipModule, MatTreeModule, ] }) export class MaterialModule { }
Make sure to omit BroswerModule from imports of your material module file