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