/
animations.less
133 lines (120 loc) · 3.37 KB
/
animations.less
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/* This file contains css3 animation code
Please read this, before playing with it:
http://www.html5rocks.com/en/tutorials/speed/high-performance-animations/
tl;dr is:
"
Today transforms are the best properties to animate because the GPU
can assist with the heavy lifting, so where you can limit your animations to these, do so.
opacity
translate
rotate
scale
"
*/
/* animation for alert boxes. */
.anim-alert {
&.ng-leave {
transition: all 400ms cubic-bezier(0.250, 0.250, 0.750, 0.750);
}
&.ng-enter{
transition: all 100ms cubic-bezier(0.250, 0.250, 0.750, 0.750);
}
&.ng-leave.ng-leave-active,
&.ng-enter {
opacity: 0;
transform: translateY(-70px);
-webkit-transform: translateY(-70px);
}
&.ng-enter.ng-enter-active,
&.ng-leave {
opacity: 1;
transform: translateY(0);
-webkit-transform: translateY(0px);
}
}
/* animation for validation tooltips in force forms */
.anim-popover {
&.ng-enter,
&.ng-leave{
transition: all 500ms cubic-bezier(0.000, 0.915, 0.480, 0.995);
/* The animation preparation code */
}
&.ng-enter,
&.ng-leave.ng-leave-active {
/* The animation code itself */
opacity: 0;
transform: translateY(-150px) scale(.2);
-webkit-transform: translateY(-150px) scale(.2);
}
&.ng-leave,
&.ng-enter.ng-enter-active {
/* The animation code itself */
opacity: 1;
-webkit-transform: translateY(0px) scale(1);
}
}
/* steps details animation */
.anim-stepdetails {
&.ng-hide-add,
&.ng-hide-remove{
display:block!important;
transition: all 200ms cubic-bezier(0.000, 0.915, 0.480, 0.995);
/* The animation preparation code */
}
/* The animation code itself */
opacity: 1;
transform: translateY(0px);
-webkit-transform: translateY(0px);
&.ng-hide{
/* The animation code itself */
opacity: 0;
transform: translateY(-20px);
-webkit-transform: translateY(-20px);
}
}
/* rotate animation for fold-unfold of details */
.rotate {
transition: -webkit-transform 100ms;
transition: transform 100ms;
&.rotate-90 {
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
}
&.rotate-0{
-webkit-transform: rotate(1deg);
transform: rotate(1deg);
}
}
/* heart-like pulse animation, used to show live stuff like current builds */
@-webkit-keyframes pulse_animation {
0% { -webkit-transform: scale(0.9); }
30% { -webkit-transform: scale(0.9); }
40% { -webkit-transform: scale(1.08); }
50% { -webkit-transform: scale(0.9); }
60% { -webkit-transform: scale(0.9); }
70% { -webkit-transform: scale(1.05); }
80% { -webkit-transform: scale(0.9); }
100% { -webkit-transform: scale(0.9); }
}
@keyframes pulse_animation {
0% { transform: scale(0.9); }
30% { transform: scale(0.9); }
40% { transform: scale(1.08); }
50% { transform: scale(0.9); }
60% { transform: scale(0.9); }
70% { transform: scale(1.05); }
80% { transform: scale(0.9); }
100% { transform: scale(0.9); }
}
.pulse {
-webkit-animation-name: 'pulse_animation';
-webkit-animation-duration: 1000ms;
-webkit-transform-origin:70% 70%;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
animation-name: 'pulse_animation';
animation-duration: 1000ms;
transform-origin:70% 70%;
animation-iteration-count: infinite;
animation-timing-function: linear;
}