Left file: appwork-v1_2_2/angular-starter/src/styles.scss  
Right file: appwork-v1_3_0/angular-starter/src/styles.scss  
1 @mixin keyframes($name) { = 1 @mixin keyframes($name) {
2   @-webkit-keyframes #{$name} {   2   @-webkit-keyframes #{$name} {
3     @content;   3     @content;
4   }   4   }
5   @-moz-keyframes #{$name} {   5   @-moz-keyframes #{$name} {
6     @content;   6     @content;
7   }   7   }
8   @keyframes #{$name} {   8   @keyframes #{$name} {
9     @content;   9     @content;
10   }   10   }
11 }   11 }
12     12  
13 // Remove outline on desktops   13 // Remove outline on desktops
14 @media(min-width: 720px) {   14 @media(min-width: 720px) {
15   ngb-carousel,   15   ngb-carousel,
16   .dropdown-item,   16   .dropdown-item,
17   ngb-datepicker,   17   ngb-datepicker,
18   ngb-rating {   18   ngb-rating {
19     outline: 0 !important;   19     outline: 0 !important;
20   }   20   }
21 }   21 }
22     22  
    <> 23 // Fix horizontal scrollbar issue when .dropdown-menu-right element is shown
23 .dropdown-menu-right {   24 .layout-wrapper {
24   right: auto !important;   25   overflow: hidden;
25 } = 26 }
26     27  
27 // *******************************************************************************   28 // *******************************************************************************
28 // * Page transition   29 // * Page transition
29     30  
30 .router-transitions {   31 .router-transitions {
31   opacity: 1;   32   opacity: 1;
32   transition: opacity .2s;   33   transition: opacity .2s;
33     34  
34   body.app-loading & {   35   body.app-loading & {
35     opacity: .75;   36     opacity: .75;
36   }   37   }
37 }   38 }
38     39  
39 // *******************************************************************************   40 // *******************************************************************************
40 // * Tooltip and popover animations <> 41 // * Animations
41   = 42  
42 @include keyframes(ngTooltipAnimation) { <> 43 @include keyframes(ngFloatingElementAnimation) {
43   0% { opacity: 0; } = 44   0% { opacity: 0; }
44   100% { opacity: 1; }   45   100% { opacity: 1; }
45 }   46 }
46     47  
    <> 48 .default-style,
      49 .material-style {
47 ngb-tooltip-window {   50   .tooltip,
      51   .popover {
48   animation: ngTooltipAnimation .25s;   52     animation: ngFloatingElementAnimation .25s;
      53   }
      54   .dropdown-menu {
      55     animation: ngFloatingElementAnimation .1s;
      56   }
49 } = 57 }
50     58  
51 // *******************************************************************************   59 // *******************************************************************************
52 // * Modal animations   60 // * Modal animations
53     61  
54 @include keyframes(ngModalBackdropAnimation) {   62 @include keyframes(ngModalBackdropAnimation) {
55   0% { opacity: 0; }   63   0% { opacity: 0; }
56   100% { opacity: .5; }   64   100% { opacity: .5; }
57 }   65 }
58 @include keyframes(ngMaterialModalBackdropAnimation) {   66 @include keyframes(ngMaterialModalBackdropAnimation) {
59   0% { opacity: 0; }   67   0% { opacity: 0; }
60   100% { opacity: .2; }   68   100% { opacity: .2; }
61 }   69 }
62 @include keyframes(ngDefaultModalAnimation) {   70 @include keyframes(ngDefaultModalAnimation) {
63   0% {   71   0% {
64     opacity: 0;   72     opacity: 0;
65     transform: translateY(150px) scale(.8);   73     transform: translateY(150px) scale(.8);
66   }   74   }
67   100% {   75   100% {
68     opacity: 1;   76     opacity: 1;
69     transform: translateY(0) scale(1);   77     transform: translateY(0) scale(1);
70   }   78   }
71 }   79 }
72 @include keyframes(ngTopModalAnimation) {   80 @include keyframes(ngTopModalAnimation) {
73   0% {   81   0% {
74     opacity: 0;   82     opacity: 0;
75     transform: translateY(-100%);   83     transform: translateY(-100%);
76   }   84   }
77   100% {   85   100% {
78     opacity: 1;   86     opacity: 1;
79     transform: translateY(0);   87     transform: translateY(0);
80   }   88   }
81 }   89 }
82 @include keyframes(ngSlideModalAnimation) {   90 @include keyframes(ngSlideModalAnimation) {
83   0% {   91   0% {
84     opacity: 0;   92     opacity: 0;
85     transform: translateX(100%);   93     transform: translateX(100%);
86   }   94   }
87   100% {   95   100% {
88     opacity: 1;   96     opacity: 1;
89     transform: translateX(0);   97     transform: translateX(0);
90   }   98   }
91 }   99 }
92 @include keyframes(ngRtlSlideModalAnimation) {   100 @include keyframes(ngRtlSlideModalAnimation) {
93   0% {   101   0% {
94     opacity: 0;   102     opacity: 0;
95     transform: translateX(-100%);   103     transform: translateX(-100%);
96   }   104   }
97   100% {   105   100% {
98     opacity: 1;   106     opacity: 1;
99     transform: translateX(0);   107     transform: translateX(0);
100   }   108   }
101 }   109 }
102 @include keyframes(ngFillInModalAnimation) {   110 @include keyframes(ngFillInModalAnimation) {
103   0% {   111   0% {
104     opacity: 0;   112     opacity: 0;
105     transform: scale(.5, .5);   113     transform: scale(.5, .5);
106   }   114   }
107   100% {   115   100% {
108     opacity: 1;   116     opacity: 1;
109     transform: scale(1, 1);   117     transform: scale(1, 1);
110   }   118   }
111 }   119 }
112     120  
113 ngb-modal-backdrop.modal-backdrop {   121 ngb-modal-backdrop.modal-backdrop {
114   opacity: .5;   122   opacity: .5;
115   animation: ngModalBackdropAnimation .15s ease-out;   123   animation: ngModalBackdropAnimation .15s ease-out;
116 }   124 }
117     125  
118 ngb-modal-window {   126 ngb-modal-window {
119   &.modal .modal-dialog {   127   &.modal .modal-dialog {
120     animation: ngDefaultModalAnimation .15s ease-out;   128     animation: ngDefaultModalAnimation .15s ease-out;
121   }   129   }
122     130  
123   &.modal-top .modal-dialog {   131   &.modal-top .modal-dialog {
124     animation: ngTopModalAnimation .15s ease-out;   132     animation: ngTopModalAnimation .15s ease-out;
125   }   133   }
126     134  
127   &.modal-slide .modal-dialog {   135   &.modal-slide .modal-dialog {
128     animation: ngSlideModalAnimation .15s ease-out;   136     animation: ngSlideModalAnimation .15s ease-out;
129   }   137   }
130     138  
131   &.modal-fill-in .modal-dialog {   139   &.modal-fill-in .modal-dialog {
132     animation: ngFillInModalAnimation .15s ease-out;   140     animation: ngFillInModalAnimation .15s ease-out;
133   }   141   }
134     142  
135   [dir=rtl] &.modal-slide .modal-dialog {   143   [dir=rtl] &.modal-slide .modal-dialog {
136     animation: ngRtlSlideModalAnimation .15s ease-out;   144     animation: ngRtlSlideModalAnimation .15s ease-out;
137   }   145   }
138 }   146 }
139     147  
140 .material-style ngb-modal-backdrop.modal-backdrop {   148 .material-style ngb-modal-backdrop.modal-backdrop {
141   opacity: .2;   149   opacity: .2;
142   animation: ngMaterialModalBackdropAnimation .15s ease-out;   150   animation: ngMaterialModalBackdropAnimation .15s ease-out;
143 }   151 }
144     152  
145 // Prevent horizontal scrollbar   153 // Prevent horizontal scrollbar
146 [dir=rtl] .dz-hidden-input {   154 [dir=rtl] .dz-hidden-input {
147   right: 0 !important;   155   right: 0 !important;
148   left: auto !important;   156   left: auto !important;
149 }   157 }
150     158  
151 // *******************************************************************************   159 // *******************************************************************************
152 // * Accordion   160 // * Accordion
153     161  
154 ngb-accordion .card-header > * > .btn.btn-link { <> 162 ngb-accordion .card-header .btn.btn-link {
155   width: 100%; = 163   width: 100%;
156   padding: 0;   164   padding: 0;
157   text-align: inherit;   165   text-align: inherit;
158   white-space: normal;   166   white-space: normal;
159   vertical-align: inherit; +-    
160   border: 0; = 167   border: 0;
161   font-size: .894rem;   168   font-size: .894rem;
162 }   169 }
163     170  
164 .ngb-accordion-with-icon .card-header > * > .btn.btn-link { <> 171 .ngb-accordion-with-icon .card-header .btn.btn-link {
165   display: flex; = 172   display: flex;
166   justify-content: space-between;   173   justify-content: space-between;
167 }   174 }
168     175  
169 // *******************************************************************************   176 // *******************************************************************************
170 // * Typeahead   177 // * Typeahead
171     178  
172 ngb-typeahead-window .dropdown-item {   179 ngb-typeahead-window .dropdown-item {
173   cursor: pointer;   180   cursor: pointer;
174 }   181 }