문서의 이전 판입니다!
Angular Project에 Angular Material을 추가 설치하려면
npm install --save @angular/material @angular/cdk @angular/animations 또는 ng add @angular/material
Component Segments
| Name | Description |
|---|---|
| address-form | Component with a form group that uses Material Design form controls to prompt for a shipping address |
| navigation | Creates a component with a responsive Material Design sidenav and a toolbar for showing the app name |
| dashboard | Component with multiple Material Design cards and menus which are aligned in a grid layout |
| table | Generates a component with a Material Design data table that supports sorting and pagination |
| tree | Component that interactively visualizes a nested folder structure by using the <mat-tree> component |
Additionally @angular/CDK
| Name | Description |
|---|---|
| drag-drop | Component that uses the @angular/cdk/drag-drop directives for creating an interactive to-do list |
Address form schematic
ng generate @angular/material:address-form <component-name> ng generate @angular/material:nav <component-name> ng generate @angular/material:table <component-name> ng generate @angular/material:dashboard <component-name> ng generate @angular/material:tree <component-name> ng generate @angular/cdk:drag-drop <component-name>
When you want more customization than a pre-built theme offers, you can create your own theme file. pre-built theme 제공보다 더 많은 사용자 정의가 필요한 경우, 자신만의 테마 파일을 작성할 수 있습니다.
A custom theme file does two things: 사용자 정의 테마 파일은 다음 두 가지 작업을 수행합니다.:
A typical theme file will look something like this:
@import '~@angular/material/theming'; // Plus imports for other components in your app. // Include the common styles for Angular Material. We include this here so that you only // have to load a single css file for Angular Material in your app. // Be sure that you only ever include this mixin once! @include mat-core(); // Define the palettes for your theme using the Material Design palettes available in palette.scss // (imported above). For each palette, you can optionally specify a default, lighter, and darker // hue. Available color palettes: https://material.io/design/color/ $candy-app-primary: mat-palette($mat-indigo); $candy-app-accent: mat-palette($mat-pink, A200, A100, A400); // The warn palette is optional (defaults to red). $candy-app-warn: mat-palette($mat-red); // Create the theme object (a Sass map containing all of the palettes). $candy-app-theme: mat-light-theme($candy-app-primary, $candy-app-accent, $candy-app-warn); // Include theme styles for core and each component used in your app. // Alternatively, you can import and @include the theme mixins for each component // that you are using. @include angular-material-theme($candy-app-theme);
Example of defining multiple themes:
@import '~@angular/material/theming'; // Plus imports for other components in your app. // Include the common styles for Angular Material. We include this here so that you only // have to load a single css file for Angular Material in your app. // **Be sure that you only ever include this mixin once!** @include mat-core(); // Define the default theme (same as the example above). $candy-app-primary: mat-palette($mat-indigo); $candy-app-accent: mat-palette($mat-pink, A200, A100, A400); $candy-app-theme: mat-light-theme($candy-app-primary, $candy-app-accent); // Include the default theme styles. @include angular-material-theme($candy-app-theme); // Define an alternate dark theme. $dark-primary: mat-palette($mat-blue-grey); $dark-accent: mat-palette($mat-amber, A200, A100, A400); $dark-warn: mat-palette($mat-deep-orange); $dark-theme: mat-dark-theme($dark-primary, $dark-accent, $dark-warn); // Include the alternative theme styles inside of a block with a CSS class. You can make this // CSS class whatever you want. In this example, any component inside of an element with // `.unicorn-dark-theme` will be affected by this alternate dark theme instead of the default theme. .unicorn-dark-theme { @include angular-material-theme($dark-theme); }
icon https://material.io/tools/icons/?style=baseline css grid