From 90f6f5a3c40321e47524d8729f29fe213c52a821 Mon Sep 17 00:00:00 2001 From: crisbeto Date: Tue, 3 Oct 2017 22:01:14 +0200 Subject: [PATCH 1/3] fix(snack-bar): add content fade in animation Adds a subtle fade in animation to the snack bar content. Fixes #7502. --- src/lib/snack-bar/simple-snack-bar.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/lib/snack-bar/simple-snack-bar.ts b/src/lib/snack-bar/simple-snack-bar.ts index a10c004c61d8..569b455bda80 100644 --- a/src/lib/snack-bar/simple-snack-bar.ts +++ b/src/lib/snack-bar/simple-snack-bar.ts @@ -7,6 +7,7 @@ */ import {Component, ViewEncapsulation, Inject, ChangeDetectionStrategy} from '@angular/core'; +import {trigger, state, style, transition, animate} from '@angular/animations'; import {MatSnackBarRef} from './snack-bar-ref'; import {MAT_SNACK_BAR_DATA} from './snack-bar-config'; @@ -23,7 +24,15 @@ import {MAT_SNACK_BAR_DATA} from './snack-bar-config'; encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, + animations: [ + trigger('contentFade', [ + state('void', style({opacity: '0'})), + state('visible', style({opacity: '1'})), + transition('void => visible', animate('350ms linear')) + ]) + ], host: { + '[@contentFade]': '"visible"', 'class': 'mat-simple-snackbar', } }) From 0d7494364c8c487ce71564ead1c20c0af7bb9c7b Mon Sep 17 00:00:00 2001 From: crisbeto Date: Wed, 4 Oct 2017 19:57:05 +0200 Subject: [PATCH 2/3] refactor: address feedback --- src/lib/snack-bar/simple-snack-bar.scss | 1 + src/lib/snack-bar/simple-snack-bar.ts | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/lib/snack-bar/simple-snack-bar.scss b/src/lib/snack-bar/simple-snack-bar.scss index f052fe4d29f3..dc25b4c8fc21 100644 --- a/src/lib/snack-bar/simple-snack-bar.scss +++ b/src/lib/snack-bar/simple-snack-bar.scss @@ -8,6 +8,7 @@ $mat-snack-bar-button-margin: 48px !default; display: flex; justify-content: space-between; line-height: 20px; + opacity: 1; } .mat-simple-snackbar-action { diff --git a/src/lib/snack-bar/simple-snack-bar.ts b/src/lib/snack-bar/simple-snack-bar.ts index 569b455bda80..4ad947759d25 100644 --- a/src/lib/snack-bar/simple-snack-bar.ts +++ b/src/lib/snack-bar/simple-snack-bar.ts @@ -8,6 +8,7 @@ import {Component, ViewEncapsulation, Inject, ChangeDetectionStrategy} from '@angular/core'; import {trigger, state, style, transition, animate} from '@angular/animations'; +import {AnimationCurves, AnimationDurations} from '@angular/material/core'; import {MatSnackBarRef} from './snack-bar-ref'; import {MAT_SNACK_BAR_DATA} from './snack-bar-config'; @@ -26,13 +27,14 @@ import {MAT_SNACK_BAR_DATA} from './snack-bar-config'; changeDetection: ChangeDetectionStrategy.OnPush, animations: [ trigger('contentFade', [ - state('void', style({opacity: '0'})), - state('visible', style({opacity: '1'})), - transition('void => visible', animate('350ms linear')) + transition(':enter', [ + style({opacity: '0'}), + animate(`${AnimationDurations.COMPLEX} ${AnimationCurves.STANDARD_CURVE}`) + ]) ]) ], host: { - '[@contentFade]': '"visible"', + '[@contentFade]': '', 'class': 'mat-simple-snackbar', } }) From 9f3bd4605702b130fd388e80e9b347efb133ccf8 Mon Sep 17 00:00:00 2001 From: crisbeto Date: Fri, 6 Oct 2017 20:58:50 +0200 Subject: [PATCH 3/3] chore: linting error --- src/lib/snack-bar/simple-snack-bar.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/snack-bar/simple-snack-bar.ts b/src/lib/snack-bar/simple-snack-bar.ts index 4ad947759d25..255268db6788 100644 --- a/src/lib/snack-bar/simple-snack-bar.ts +++ b/src/lib/snack-bar/simple-snack-bar.ts @@ -7,7 +7,7 @@ */ import {Component, ViewEncapsulation, Inject, ChangeDetectionStrategy} from '@angular/core'; -import {trigger, state, style, transition, animate} from '@angular/animations'; +import {trigger, style, transition, animate} from '@angular/animations'; import {AnimationCurves, AnimationDurations} from '@angular/material/core'; import {MatSnackBarRef} from './snack-bar-ref'; import {MAT_SNACK_BAR_DATA} from './snack-bar-config';