diff --git a/src/material/card/card.scss b/src/material/card/card.scss index 3c7f621b4572..d531f1bf93e9 100644 --- a/src/material/card/card.scss +++ b/src/material/card/card.scss @@ -1,5 +1,6 @@ @import '../core/style/variables'; @import '../core/style/elevation'; +@import '../core/style/noop-animation'; @import '../../cdk/a11y/a11y'; @@ -9,6 +10,7 @@ $mat-card-header-size: 40px !default; .mat-card { @include mat-elevation-transition; + @include _noop-animation(); display: block; position: relative; padding: $mat-card-padding; diff --git a/src/material/card/card.ts b/src/material/card/card.ts index 431af65b8aca..d885264026ce 100644 --- a/src/material/card/card.ts +++ b/src/material/card/card.ts @@ -12,7 +12,10 @@ import { ChangeDetectionStrategy, Directive, Input, + Optional, + Inject, } from '@angular/core'; +import {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations'; /** @@ -156,9 +159,15 @@ export class MatCardAvatar {} styleUrls: ['card.css'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, - host: {'class': 'mat-card'} + host: { + 'class': 'mat-card', + '[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"', + } }) -export class MatCard {} +export class MatCard { + // @breaking-change 9.0.0 `_animationMode` parameter to be made required. + constructor(@Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode?: string) {} +} /** diff --git a/tools/public_api_guard/material/card.d.ts b/tools/public_api_guard/material/card.d.ts index cc34096281aa..16df62b8f5d7 100644 --- a/tools/public_api_guard/material/card.d.ts +++ b/tools/public_api_guard/material/card.d.ts @@ -1,4 +1,6 @@ export declare class MatCard { + _animationMode?: string | undefined; + constructor(_animationMode?: string | undefined); } export declare class MatCardActions {