Project

General

Profile

1
// Name:            Transition
2
// Description:     Utilities for transitions
3
//
4
// Component:       `uk-transition-*`
5
//
6
// Modifiers:       `uk-transition-fade`
7
//                  `uk-transition-scale-up`
8
//                  `uk-transition-scale-down`
9
//                  `uk-transition-slide-top-*`
10
//                  `uk-transition-slide-bottom-*`
11
//                  `uk-transition-slide-left-*`
12
//                  `uk-transition-slide-right-*`
13
//                  `uk-transition-opaque`
14
//                  `uk-transition-slow`
15
//
16
// Sub-objects:     `uk-transition-toggle`
17
//
18
// States:          `uk-hover`
19
//                  `uk-active`
20
//
21
// ========================================================================
22

    
23

    
24
// Variables
25
// ========================================================================
26

    
27
@transition-duration:                           0.3s;
28

    
29
@transition-scale:                              1.1;
30

    
31
@transition-slide-small-translate:              10px;
32
@transition-slide-medium-translate:             50px;
33

    
34
@transition-slow-duration:                      0.7s;
35

    
36

    
37
/* ========================================================================
38
   Component: Transition
39
 ========================================================================== */
40

    
41
/*
42
 * Using multiple selectors to exclude `uk-transition-toggle`
43
 * Note: Transitions don't work with `uk-postion-center-*` classes because they also use `transform`
44
 *       Just put the transition in an extra `div`
45
 */
46

    
47
.uk-transition-fade,
48
[class*='uk-transition-scale'],
49
[class*='uk-transition-slide'] {
50
    -webkit-transition: @transition-duration ease-out;
51
    transition: @transition-duration ease-out;
52
    -webkit-transition-property: opacity, transform, filter;
53
    transition-property: opacity, transform, filter;
54
}
55

    
56
/*
57
 * Fade
58
 */
59

    
60
.uk-transition-fade { opacity: 0; }
61

    
62
.uk-transition-toggle:hover [class*='uk-transition-fade'],
63
.uk-transition-toggle.uk-hover [class*='uk-transition-fade'] { opacity: 1; }
64

    
65
/*
66
 * Scale
67
 * Note: Using `scale3d` for better image rendering
68
 */
69

    
70
[class*='uk-transition-scale'] { opacity: 0; }
71

    
72
.uk-transition-scale-up {
73
    -webkit-transform: scale3d(1,1,1);
74
    transform: scale3d(1,1,1);
75
}
76

    
77
.uk-transition-toggle:hover .uk-transition-scale-up,
78
.uk-transition-toggle.uk-hover .uk-transition-scale-up {
79
    opacity: 1;
80
    -webkit-transform: scale3d(@transition-scale,@transition-scale,1);
81
    transform: scale3d(@transition-scale,@transition-scale,1);
82
}
83

    
84
.uk-transition-scale-down {
85
    -webkit-transform: scale3d(@transition-scale,@transition-scale,1);
86
    transform: scale3d(@transition-scale,@transition-scale,1);
87
}
88

    
89
.uk-transition-toggle:hover .uk-transition-scale-down,
90
.uk-transition-toggle.uk-hover .uk-transition-scale-down {
91
    opacity: 1;
92
    -webkit-transform: scale3d(1,1,1);
93
    transform: scale3d(1,1,1);
94
}
95

    
96
/*
97
 * Slide
98
 */
99

    
100
[class*='uk-transition-slide'] { opacity: 0; }
101

    
102
.uk-transition-slide-top {
103
    -webkit-transform: translateY(-100%);
104
    transform: translateY(-100%);
105
}
106

    
107
.uk-transition-slide-bottom {
108
    -webkit-transform: translateY(100%);
109
    transform: translateY(100%);
110
}
111

    
112
.uk-transition-slide-left {
113
    -webkit-transform: translateX(-100%);
114
    transform: translateX(-100%);
115
}
116

    
117
.uk-transition-slide-right {
118
    -webkit-transform: translateX(100%);
119
    transform: translateX(100%);
120
}
121

    
122
.uk-transition-slide-top-small {
123
    -webkit-transform: translateY(-@transition-slide-small-translate);
124
    transform: translateY(-@transition-slide-small-translate);
125
}
126

    
127
.uk-transition-slide-bottom-small {
128
    -webkit-transform: translateY(@transition-slide-small-translate);
129
    transform: translateY(@transition-slide-small-translate);
130
}
131

    
132
.uk-transition-slide-left-small {
133
    -webkit-transform: translateX(-@transition-slide-small-translate);
134
    transform: translateX(-@transition-slide-small-translate);
135
}
136

    
137
.uk-transition-slide-right-small {
138
    -webkit-transform: translateX(@transition-slide-small-translate);
139
    transform: translateX(@transition-slide-small-translate);
140
}
141

    
142
.uk-transition-slide-top-medium {
143
    -webkit-transform: translateY(-@transition-slide-medium-translate);
144
    transform: translateY(-@transition-slide-medium-translate);
145
}
146

    
147
.uk-transition-slide-bottom-medium {
148
    -webkit-transform: translateY(@transition-slide-medium-translate);
149
    transform: translateY(@transition-slide-medium-translate);
150
}
151

    
152
.uk-transition-slide-left-medium {
153
    -webkit-transform: translateX(-@transition-slide-medium-translate);
154
    transform: translateX(-@transition-slide-medium-translate);
155
}
156

    
157
.uk-transition-slide-right-medium {
158
    -webkit-transform: translateX(@transition-slide-medium-translate);
159
    transform: translateX(@transition-slide-medium-translate);
160
}
161

    
162
/* Hover */
163
.uk-transition-toggle:hover [class*='uk-transition-slide'],
164
.uk-transition-toggle.uk-hover [class*='uk-transition-slide'] {
165
    opacity: 1;
166
    -webkit-transform: translateX(0) translateY(0);
167
    transform: translateX(0) translateY(0);
168
}
169

    
170

    
171
/* Opacity modifier
172
========================================================================== */
173

    
174
.uk-transition-opaque { opacity: 1; }
175

    
176

    
177
/* Duration modifiers
178
========================================================================== */
179

    
180
.uk-transition-slow { transition-duration: @transition-slow-duration; }
181

    
182

    
183
// Hooks
184
// ========================================================================
185

    
186
.hook-transition-misc;
187

    
188
.hook-transition-misc() {}
(62-62/66)