less-rails-semantic_ui 1.7.3.0 → 1.8.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/assets/javascripts/semantic_ui/definitions/behaviors/api.js +22 -11
  3. data/assets/javascripts/semantic_ui/definitions/behaviors/form.js +259 -43
  4. data/assets/javascripts/semantic_ui/definitions/modules/checkbox.js +1 -1
  5. data/assets/javascripts/semantic_ui/definitions/modules/dropdown.js +204 -105
  6. data/assets/javascripts/semantic_ui/definitions/modules/popup.js +4 -3
  7. data/assets/javascripts/semantic_ui/definitions/modules/search.js +310 -152
  8. data/assets/javascripts/semantic_ui/definitions/modules/sidebar.js +18 -7
  9. data/assets/javascripts/semantic_ui/definitions/modules/sticky.js +1 -1
  10. data/assets/javascripts/semantic_ui/definitions/modules/transition.js +35 -23
  11. data/assets/stylesheets/semantic_ui/definitions/collections/form.less +2 -2
  12. data/assets/stylesheets/semantic_ui/definitions/collections/grid.less +30 -0
  13. data/assets/stylesheets/semantic_ui/definitions/collections/menu.less +13 -11
  14. data/assets/stylesheets/semantic_ui/definitions/elements/button.less +16 -2
  15. data/assets/stylesheets/semantic_ui/definitions/elements/header.less +70 -31
  16. data/assets/stylesheets/semantic_ui/definitions/elements/label.less +3 -3
  17. data/assets/stylesheets/semantic_ui/definitions/elements/list.less +8 -18
  18. data/assets/stylesheets/semantic_ui/definitions/modules/checkbox.less +54 -27
  19. data/assets/stylesheets/semantic_ui/definitions/modules/modal.less +2 -1
  20. data/assets/stylesheets/semantic_ui/definitions/modules/popup.less +5 -0
  21. data/assets/stylesheets/semantic_ui/definitions/modules/sidebar.less +1 -0
  22. data/assets/stylesheets/semantic_ui/definitions/modules/transition.less +0 -5
  23. data/assets/stylesheets/semantic_ui/themes/default/collections/menu.variables +7 -5
  24. data/assets/stylesheets/semantic_ui/themes/default/collections/table.variables +1 -1
  25. data/assets/stylesheets/semantic_ui/themes/default/elements/button.variables +2 -2
  26. data/assets/stylesheets/semantic_ui/themes/default/elements/header.variables +20 -9
  27. data/assets/stylesheets/semantic_ui/themes/default/elements/label.variables +5 -3
  28. data/assets/stylesheets/semantic_ui/themes/default/globals/site.variables +1 -0
  29. data/assets/stylesheets/semantic_ui/themes/default/modules/accordion.variables +5 -6
  30. data/assets/stylesheets/semantic_ui/themes/default/modules/modal.variables +3 -2
  31. data/assets/stylesheets/semantic_ui/themes/default/modules/popup.variables +3 -3
  32. data/assets/stylesheets/semantic_ui/themes/default/modules/transition.overrides +690 -222
  33. data/assets/stylesheets/semantic_ui/themes/default/modules/transition.variables +1 -1
  34. data/lib/less/rails/semantic_ui/version.rb +1 -1
  35. metadata +3 -3
@@ -5,6 +5,7 @@
5
5
  @background: @white;
6
6
  @border: none;
7
7
  @width: 90%;
8
+ @zIndex: 1001;
8
9
  @xOffset: -(@width / 2);
9
10
  @borderRadius: @defaultBorderRadius;
10
11
  @boxShadow: 0 1px 4px 1px rgba(0, 0, 0, 0.3);
@@ -24,8 +25,8 @@
24
25
  /* Header */
25
26
  @headerMargin: 0em;
26
27
  @headerVerticalPadding: 1.2rem;
27
- @headerHorizontalpadding: 2rem;
28
- @headerPadding: @headerVerticalPadding @headerHorizontalpadding;
28
+ @headerHorizontalPadding: 2rem;
29
+ @headerPadding: @headerVerticalPadding @headerHorizontalPadding;
29
30
  @headerBackground: @subtleGradient @white;
30
31
  @headerColor: @darkTextColor;
31
32
  @headerFontSize: 1.6em;
@@ -6,7 +6,7 @@
6
6
  Element
7
7
  --------------------*/
8
8
 
9
- @zIndex: 900;
9
+ @zIndex: 1900;
10
10
  @background: @white;
11
11
 
12
12
  @maxWidth: 250px;
@@ -60,8 +60,8 @@
60
60
  Coupling
61
61
  --------------------*/
62
62
 
63
- /* (padding * @medium) */
64
- @nestedGridMargin: -0.7rem -0.875rem;
63
+ /* Grid Inside Popup */
64
+ @nestedGridMargin: -0.7rem -0.875rem; /* (padding * @medium) */
65
65
  @nestedGridWidth: ~"calc(100% + 1.75rem)";
66
66
 
67
67
  /*-------------------
@@ -1,250 +1,216 @@
1
1
  /*******************************
2
- Animations
2
+ Transitions
3
3
  *******************************/
4
4
 
5
+ /*
6
+ Some transitions adapted from Animate CSS
7
+ https://github.com/daneden/animate.css
8
+
9
+ Additional transitions adapted from Glide
10
+ by Nick Pettit - https://github.com/nickpettit/glide
11
+ */
12
+
5
13
  /*--------------
6
- Emphasis
14
+ Browse
7
15
  ---------------*/
8
16
 
9
- .flash.transition {
10
- animation-name: flash;
11
- }
12
- .shake.transition {
13
- animation-name: shake;
14
- }
15
- .bounce.transition {
16
- animation-name: bounce;
17
- }
18
- .tada.transition {
19
- animation-name: tada;
17
+ .browse.transition.in {
18
+ animation-name: browseIn;
20
19
  }
21
- /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
22
- .pulse.transition {
23
- animation-name: pulse;
20
+ .browse.transition.out,
21
+ .browse.transition.out.left {
22
+ animation-name: browseOutLeft;
24
23
  }
25
-
26
- /* Flash */
27
- @keyframes flash {
28
- 0%, 50%, 100% {
29
- opacity: 1;
30
- }
31
- 25%, 75% {
32
- opacity: 0;
33
- }
24
+ .browse.transition.out.right {
25
+ animation-name: browseOutRight;
34
26
  }
35
27
 
36
- /* Shake */
37
- @keyframes shake {
38
- 0%, 100% {
39
- transform: translateX(0);
40
- }
41
- 10%, 30%, 50%, 70%, 90% {
42
- transform: translateX(-10px);
43
- }
44
- 20%, 40%, 60%, 80% {
45
- transform: translateX(10px);
28
+ /* In */
29
+ @keyframes browseIn {
30
+ 0% {
31
+ transform: scale(0.8) translateZ(0px);
32
+ z-index: -1;
46
33
  }
47
- }
48
-
49
- /* Bounce */
50
- @keyframes bounce {
51
- 0%, 20%, 50%, 80%, 100% {
52
- transform: translateY(0);
34
+ 10% {
35
+ transform: scale(0.8) translateZ(0px);
36
+ z-index: -1;
37
+ opacity: 0.7;
53
38
  }
54
- 40% {
55
- transform: translateY(-30px);
39
+ 80% {
40
+ transform: scale(1.05) translateZ(0px);
41
+ opacity: 1;
42
+ z-index: 999;
56
43
  }
57
- 60% {
58
- transform: translateY(-15px);
44
+ 100% {
45
+ transform: scale(1) translateZ(0px);
46
+ z-index: 999;
59
47
  }
60
48
  }
61
49
 
62
- /* Tada */
63
- @keyframes tada {
50
+ /* Out */
51
+ @keyframes browseOutLeft {
64
52
  0% {
65
- transform: scale(1);
66
- }
67
- 10%, 20% {
68
- transform: scale(0.9) rotate(-3deg);
53
+ z-index: 999;
54
+ transform: translateX(0%) rotateY(0deg) rotateX(0deg);
69
55
  }
70
- 30%, 50%, 70%, 90% {
71
- transform: scale(1.1) rotate(3deg);
56
+ 50% {
57
+ z-index: -1;
58
+ transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
72
59
  }
73
- 40%, 60%, 80% {
74
- transform: scale(1.1) rotate(-3deg);
60
+ 80% {
61
+ opacity: 1;
75
62
  }
76
63
  100% {
77
- transform: scale(1) rotate(0);
64
+ z-index: -1;
65
+ transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
66
+ opacity: 0;
78
67
  }
79
68
  }
80
-
81
- /* Pulse */
82
- @keyframes pulse {
69
+ @keyframes browseOutRight {
83
70
  0% {
84
- transform: scale(1);
85
- opacity: 1;
71
+ z-index: 999;
72
+ transform: translateX(0%) rotateY(0deg) rotateX(0deg);
86
73
  }
87
74
  50% {
88
- transform: scale(0.9);
89
- opacity: 0.7;
75
+ z-index: 1;
76
+ transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
90
77
  }
91
- 100% {
92
- transform: scale(1);
78
+ 80% {
93
79
  opacity: 1;
94
80
  }
95
-
81
+ 100% {
82
+ z-index: 1;
83
+ transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
84
+ opacity: 0;
85
+ }
96
86
  }
97
87
 
98
88
 
99
89
  /*--------------
100
- Slide
90
+ Drop
101
91
  ---------------*/
102
92
 
103
- .slide.down.transition.in {
104
- animation-name: slideIn;
105
- transform-origin: 50% 0%;
106
- -ms-transform-origin: 50% 0%;
107
- -webkit-transform-origin: 50% 0%;
108
- }
109
- .slide.down.transition.out {
110
- animation-name: slideOut;
111
- transform-origin: 50% 0%;
93
+ .drop.transition {
94
+ transform-origin: top center;
95
+ animation-duration: 0.5s;
96
+ animation-timing-function: cubic-bezier(0.34, 1.61, 0.7, 1);
112
97
  }
113
-
114
- .slide.up.transition.in {
115
- animation-name: slideIn;
116
- transform-origin: 50% 100%;
98
+ .drop.transition.in {
99
+ animation-name: dropIn;
117
100
  }
118
- .slide.up.transition.out {
119
- animation-name: slideOut;
120
- transform-origin: 50% 100%;
101
+ .drop.transition.out {
102
+ animation-name: dropOut;
121
103
  }
122
104
 
123
- @keyframes slideIn {
105
+ /* Drop */
106
+ @keyframes dropIn {
124
107
  0% {
125
108
  opacity: 0;
126
- transform: scaleY(0);
109
+ transform: scale(0);
127
110
  }
128
111
  100% {
129
112
  opacity: 1;
130
- transform: scaleY(1);
113
+ transform: scale(1);
131
114
  }
132
115
  }
133
- @keyframes slideOut {
116
+ @keyframes dropOut {
134
117
  0% {
135
118
  opacity: 1;
136
- transform: scaleY(1);
119
+ transform: scale(1);
137
120
  }
138
121
  100% {
139
122
  opacity: 0;
140
- transform: scaleY(0);
123
+ transform: scale(0);
141
124
  }
142
125
  }
143
126
 
144
-
145
-
146
127
  /*--------------
147
- Flips
128
+ Fade
148
129
  ---------------*/
149
130
 
150
- .flip.transition.in,
151
- .flip.transition.out {
152
- perspective: 2000px;
131
+ .transition.fade.in {
132
+ animation-name: fadeIn;
153
133
  }
154
- .horizontal.flip.transition.in {
155
- animation-name: horizontalFlipIn;
134
+ .transition.fade.in.up {
135
+ animation-name: fadeInUp;
156
136
  }
157
- .horizontal.flip.transition.out {
158
- animation-name: horizontalFlipOut;
137
+ .transition.fade.in.down {
138
+ animation-name: fadeInDown;
159
139
  }
160
- .vertical.flip.transition.in {
161
- animation-name: verticalFlipIn;
140
+ .transition.fade.in.left {
141
+ animation-name: fadeInLeft;
162
142
  }
163
- .vertical.flip.transition.out {
164
- animation-name: verticalFlipOut;
143
+ .transition.fade.in.right {
144
+ animation-name: fadeInRight;
165
145
  }
166
146
 
167
- /* Horizontal */
168
- @keyframes horizontalFlipIn {
147
+ .transition.fade.out {
148
+ animation-name: fadeOut;
149
+ }
150
+ .transition.fade.out.up {
151
+ animation-name: fadeOutUp;
152
+ }
153
+ .transition.fade.out.down {
154
+ animation-name: fadeOutDown;
155
+ }
156
+ .transition.fade.out.left {
157
+ animation-name: fadeOutLeft;
158
+ }
159
+ .transition.fade.out.right {
160
+ animation-name: fadeOutRight;
161
+ }
162
+
163
+ /* In */
164
+ @keyframes fadeIn {
169
165
  0% {
170
- transform: rotateY(-90deg);
171
166
  opacity: 0;
172
167
  }
173
168
  100% {
174
- transform: rotateY(0deg);
175
169
  opacity: 1;
176
170
  }
177
171
  }
178
- /* Horizontal */
179
- @keyframes horizontalFlipOut {
172
+ @keyframes fadeInUp {
180
173
  0% {
181
- transform: rotateY(0deg);
182
- opacity: 1;
174
+ opacity: 0;
175
+ transform: translateY(10%);
183
176
  }
184
177
  100% {
185
- transform: rotateY(90deg);
186
- opacity: 0;
178
+ opacity: 1;
179
+ transform: translateY(0%);
187
180
  }
188
181
  }
189
-
190
- /* Vertical */
191
- @keyframes verticalFlipIn {
182
+ @keyframes fadeInDown {
192
183
  0% {
193
- transform: rotateX(-90deg);
194
184
  opacity: 0;
185
+ transform: translateY(-10%);
195
186
  }
196
187
  100% {
197
- transform: rotateX(0deg);
198
188
  opacity: 1;
189
+ transform: translateY(0%);
199
190
  }
200
191
  }
201
- @keyframes verticalFlipOut {
192
+ @keyframes fadeInLeft {
202
193
  0% {
203
- transform: rotateX(0deg);
204
- opacity: 1;
194
+ opacity: 0;
195
+ transform: translateX(10%);
205
196
  }
206
197
  100% {
207
- transform: rotateX(-90deg);
208
- opacity: 0;
198
+ opacity: 1;
199
+ transform: translateX(0%);
209
200
  }
210
201
  }
211
-
212
- /*--------------
213
- Fades
214
- ---------------*/
215
-
216
- .fade.transition.in {
217
- animation-name: fadeIn;
218
- }
219
- .fade.transition.out {
220
- animation-name: fadeOut;
221
- }
222
-
223
- .fade.up.transition.in {
224
- animation-name: fadeUpIn;
225
- }
226
- .fade.up.transition.out {
227
- animation-name: fadeUpOut;
228
- }
229
-
230
- .fade.down.transition.in {
231
- animation-name: fadeDownIn;
232
- }
233
- .fade.down.transition.out {
234
- animation-name: fadeDownOut;
235
- }
236
-
237
-
238
- /* Fade */
239
- @keyframes fadeIn {
202
+ @keyframes fadeInRight {
240
203
  0% {
241
204
  opacity: 0;
205
+ transform: translateX(-10%);
242
206
  }
243
207
  100% {
244
208
  opacity: 1;
209
+ transform: translateX(0%);
245
210
  }
246
211
  }
247
212
 
213
+ /* Out */
248
214
  @keyframes fadeOut {
249
215
  0% {
250
216
  opacity: 1;
@@ -253,49 +219,109 @@
253
219
  opacity: 0;
254
220
  }
255
221
  }
256
-
257
- /* Fade Up */
258
- @keyframes fadeUpIn {
222
+ @keyframes fadeOutUp {
259
223
  0% {
224
+ opacity: 1;
225
+ transform: translateY(0%);
226
+ }
227
+ 100% {
260
228
  opacity: 0;
261
229
  transform: translateY(10%);
262
230
  }
263
- 100% {
231
+ }
232
+ @keyframes fadeOutDown {
233
+ 0% {
264
234
  opacity: 1;
265
235
  transform: translateY(0%);
266
236
  }
237
+ 100% {
238
+ opacity: 0;
239
+ transform: translateY(-10%);
240
+ }
267
241
  }
268
-
269
- @keyframes fadeUpOut {
242
+ @keyframes fadeOutLeft {
270
243
  0% {
271
244
  opacity: 1;
272
- transform: translateY(0%);
245
+ transform: translateX(0%);
273
246
  }
274
247
  100% {
275
248
  opacity: 0;
276
- transform: translateY(10%);
249
+ transform: translateX(10%);
250
+ }
251
+ }
252
+ @keyframes fadeOutRight {
253
+ 0% {
254
+ opacity: 1;
255
+ transform: translateX(0%);
277
256
  }
257
+ 100% {
258
+ opacity: 0;
259
+ transform: translateX(-10%);
260
+ }
261
+ }
262
+
263
+ /*--------------
264
+ Flips
265
+ ---------------*/
266
+
267
+ .flip.transition.in,
268
+ .flip.transition.out {
269
+ perspective: 2000px;
270
+ }
271
+ .horizontal.flip.transition.in {
272
+ animation-name: horizontalFlipIn;
273
+ }
274
+ .horizontal.flip.transition.out {
275
+ animation-name: horizontalFlipOut;
276
+ }
277
+ .vertical.flip.transition.in {
278
+ animation-name: verticalFlipIn;
279
+ }
280
+ .vertical.flip.transition.out {
281
+ animation-name: verticalFlipOut;
278
282
  }
279
283
 
280
- /* Fade Down */
281
- @keyframes fadeDownIn {
284
+ /* In */
285
+ @keyframes horizontalFlipIn {
282
286
  0% {
287
+ transform: perspective(2000px) rotateY(-90deg);
283
288
  opacity: 0;
284
- transform: translateY(-10%);
285
289
  }
286
290
  100% {
291
+ transform: perspective(2000px) rotateY(0deg);
287
292
  opacity: 1;
288
- transform: translateY(0%);
289
293
  }
290
294
  }
291
- @keyframes fadeDownOut {
295
+ @keyframes verticalFlipIn {
292
296
  0% {
297
+ transform: perspective(2000px) rotateX(-90deg);
298
+ opacity: 0;
299
+ }
300
+ 100% {
301
+ transform: perspective(2000px) rotateX(0deg);
302
+ opacity: 1;
303
+ }
304
+ }
305
+
306
+ /* Out */
307
+ @keyframes horizontalFlipOut {
308
+ 0% {
309
+ transform: perspective(2000px) rotateY(0deg);
293
310
  opacity: 1;
294
- transform: translateY(0%);
295
311
  }
296
312
  100% {
313
+ transform: perspective(2000px) rotateY(90deg);
314
+ opacity: 0;
315
+ }
316
+ }
317
+ @keyframes verticalFlipOut {
318
+ 0% {
319
+ transform: perspective(2000px) rotateX(0deg);
320
+ opacity: 1;
321
+ }
322
+ 100% {
323
+ transform: perspective(2000px) rotateX(-90deg);
297
324
  opacity: 0;
298
- transform: translateY(-10%);
299
325
  }
300
326
  }
301
327
 
@@ -310,7 +336,7 @@
310
336
  animation-name: scaleOut;
311
337
  }
312
338
 
313
- /* Scale */
339
+ /* In */
314
340
  @keyframes scaleIn {
315
341
  0% {
316
342
  opacity: 0;
@@ -321,6 +347,8 @@
321
347
  transform: scale(1);
322
348
  }
323
349
  }
350
+
351
+ /* Out */
324
352
  @keyframes scaleOut {
325
353
  0% {
326
354
  opacity: 1;
@@ -333,113 +361,553 @@
333
361
  }
334
362
 
335
363
  /*--------------
336
- Drop
364
+ Fly
337
365
  ---------------*/
338
366
 
339
- .drop.transition {
367
+ .transition.fly {
368
+ animation-duration: 0.6s;
369
+ transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
370
+ }
371
+ .transition.fly.in {
372
+ animation-name: flyIn;
373
+ }
374
+ .transition.fly.in.up {
375
+ animation-name: flyInUp;
376
+ }
377
+ .transition.fly.in.down {
378
+ animation-name: flyInDown;
379
+ }
380
+ .transition.fly.in.right {
381
+ animation-name: flyInRight;
382
+ }
383
+ .transition.fly.in.left {
384
+ animation-name: flyInLeft;
385
+ }
386
+ .transition.fly.out {
387
+ animation-name: flyOut;
388
+ }
389
+ .transition.fly.out.up {
390
+ animation-name: flyOutUp;
391
+ }
392
+ .transition.fly.out.down {
393
+ animation-name: flyOutDown;
394
+ }
395
+ .transition.fly.out.right {
396
+ animation-name: flyOutRight;
397
+ }
398
+ .transition.fly.out.left {
399
+ animation-name: flyOutLeft;
400
+ }
401
+
402
+ /* In */
403
+ @keyframes flyIn {
404
+ 0% {
405
+ opacity: 0;
406
+ transform: scale3d(.3, .3, .3);
407
+ }
408
+ 20% {
409
+ transform: scale3d(1.1, 1.1, 1.1);
410
+ }
411
+ 40% {
412
+ transform: scale3d(.9, .9, .9);
413
+ }
414
+ 60% {
415
+ opacity: 1;
416
+ transform: scale3d(1.03, 1.03, 1.03);
417
+ }
418
+ 80% {
419
+ transform: scale3d(.97, .97, .97);
420
+ }
421
+ 100% {
422
+ opacity: 1;
423
+ transform: scale3d(1, 1, 1);
424
+ }
425
+ }
426
+ @keyframes flyInUp {
427
+ 0% {
428
+ opacity: 0;
429
+ transform: translate3d(0, 1500px, 0);
430
+ }
431
+ 60% {
432
+ opacity: 1;
433
+ transform: translate3d(0, -20px, 0);
434
+ }
435
+ 75% {
436
+ transform: translate3d(0, 10px, 0);
437
+ }
438
+ 90% {
439
+ transform: translate3d(0, -5px, 0);
440
+ }
441
+ 100% {
442
+ transform: translate3d(0, 0, 0);
443
+ }
444
+ }
445
+ @keyframes flyInDown {
446
+ 0% {
447
+ opacity: 0;
448
+ transform: translate3d(0, -1500px, 0);
449
+ }
450
+ 60% {
451
+ opacity: 1;
452
+ transform: translate3d(0, 25px, 0);
453
+ }
454
+ 75% {
455
+ transform: translate3d(0, -10px, 0);
456
+ }
457
+ 90% {
458
+ transform: translate3d(0, 5px, 0);
459
+ }
460
+ 100% {
461
+ transform: none;
462
+ }
463
+ }
464
+ @keyframes flyInLeft {
465
+ 0% {
466
+ opacity: 0;
467
+ transform: translate3d(1500px, 0, 0);
468
+ }
469
+ 60% {
470
+ opacity: 1;
471
+ transform: translate3d(-25px, 0, 0);
472
+ }
473
+ 75% {
474
+ transform: translate3d(10px, 0, 0);
475
+ }
476
+ 90% {
477
+ transform: translate3d(-5px, 0, 0);
478
+ }
479
+ 100% {
480
+ transform: none;
481
+ }
482
+ }
483
+ @keyframes flyInRight {
484
+ 0% {
485
+ opacity: 0;
486
+ transform: translate3d(-1500px, 0, 0);
487
+ }
488
+ 60% {
489
+ opacity: 1;
490
+ transform: translate3d(25px, 0, 0);
491
+ }
492
+ 75% {
493
+ transform: translate3d(-10px, 0, 0);
494
+ }
495
+ 90% {
496
+ transform: translate3d(5px, 0, 0);
497
+ }
498
+ 100% {
499
+ transform: none;
500
+ }
501
+ }
502
+
503
+ /* Out */
504
+ @keyframes flyOut {
505
+ 20% {
506
+ transform: scale3d(.9, .9, .9);
507
+ }
508
+ 50%, 55% {
509
+ opacity: 1;
510
+ transform: scale3d(1.1, 1.1, 1.1);
511
+ }
512
+ 100% {
513
+ opacity: 0;
514
+ transform: scale3d(.3, .3, .3);
515
+ }
516
+ }
517
+ @keyframes flyOutUp {
518
+ 20% {
519
+ transform: translate3d(0, 10px, 0);
520
+ }
521
+ 40%, 45% {
522
+ opacity: 1;
523
+ transform: translate3d(0, -20px, 0);
524
+ }
525
+ 100% {
526
+ opacity: 0;
527
+ transform: translate3d(0, 2000px, 0);
528
+ }
529
+ }
530
+ @keyframes flyOutDown {
531
+ 20% {
532
+ transform: translate3d(0, -10px, 0);
533
+ }
534
+ 40%, 45% {
535
+ opacity: 1;
536
+ transform: translate3d(0, 20px, 0);
537
+ }
538
+ 100% {
539
+ opacity: 0;
540
+ transform: translate3d(0, -2000px, 0);
541
+ }
542
+ }
543
+ @keyframes flyOutRight {
544
+ 20% {
545
+ opacity: 1;
546
+ transform: translate3d(20px, 0, 0);
547
+ }
548
+ 100% {
549
+ opacity: 0;
550
+ transform: translate3d(-2000px, 0, 0);
551
+ }
552
+ }
553
+ @keyframes flyOutLeft {
554
+ 20% {
555
+ opacity: 1;
556
+ transform: translate3d(-20px, 0, 0);
557
+ }
558
+ 100% {
559
+ opacity: 0;
560
+ transform: translate3d(2000px, 0, 0);
561
+ }
562
+ }
563
+
564
+ /*--------------
565
+ Slide
566
+ ---------------*/
567
+
568
+ .transition.slide.in,
569
+ .transition.slide.in.down {
570
+ animation-name: slideInY;
340
571
  transform-origin: top center;
341
- animation-timing-function: cubic-bezier(0.34, 1.61, 0.7, 1);
342
572
  }
343
- .drop.transition.in {
344
- animation-name: dropIn;
573
+ .transition.slide.in.up {
574
+ animation-name: slideInY;
575
+ transform-origin: bottom center;
345
576
  }
346
- .drop.transition.out {
347
- animation-name: dropOut;
577
+ .transition.slide.in.left {
578
+ animation-name: slideInX;
579
+ transform-origin: center right;
580
+ }
581
+ .transition.slide.in.right {
582
+ animation-name: slideInX;
583
+ transform-origin: center left;
348
584
  }
349
585
 
350
- /* Scale */
351
- @keyframes dropIn {
586
+ .transition.slide.out,
587
+ .transition.slide.out.down {
588
+ animation-name: slideOutY;
589
+ transform-origin: top center;
590
+ }
591
+ .transition.slide.out.up {
592
+ animation-name: slideOutY;
593
+ transform-origin: bottom center;
594
+ }
595
+ .transition.slide.out.left {
596
+ animation-name: slideOutX;
597
+ transform-origin: center right;
598
+ }
599
+ .transition.slide.out.right {
600
+ animation-name: slideOutX;
601
+ transform-origin: center left;
602
+ }
603
+
604
+ /* In */
605
+ @keyframes slideInY {
352
606
  0% {
353
607
  opacity: 0;
354
- transform: scale(0);
608
+ transform: scaleY(0);
355
609
  }
356
610
  100% {
357
611
  opacity: 1;
358
- transform: scale(1);
612
+ transform: scaleY(1);
359
613
  }
360
614
  }
361
- @keyframes dropOut {
615
+ @keyframes slideInX {
362
616
  0% {
617
+ opacity: 0;
618
+ transform: scaleX(0);
619
+ }
620
+ 100% {
363
621
  opacity: 1;
364
- transform: scale(1);
622
+ transform: scaleX(1);
623
+ }
624
+ }
625
+
626
+ /* Out */
627
+ @keyframes slideOutY {
628
+ 0% {
629
+ opacity: 1;
630
+ transform: scaleY(1);
365
631
  }
366
632
  100% {
367
633
  opacity: 0;
368
- transform: scale(0);
634
+ transform: scaleY(0);
635
+ }
636
+ }
637
+ @keyframes slideOutX {
638
+ 0% {
639
+ opacity: 1;
640
+ transform: scaleX(1);
641
+ }
642
+ 100% {
643
+ opacity: 0;
644
+ transform: scaleX(0);
369
645
  }
370
646
  }
371
647
 
648
+
372
649
  /*--------------
373
- Browse
650
+ Swing
374
651
  ---------------*/
375
652
 
376
- .browse.transition.in {
377
- animation-name: browseIn;
378
- animation-timing-function: ease;
653
+ .transition.swing {
654
+ perspective: 1000px;
655
+ animation-duration: 0.5s;
656
+ transition-timing-function: ease-in;
379
657
  }
380
- .browse.transition.out,
381
- .browse.transition.out.left {
382
- animation-name: browseOutLeft;
383
- animation-timing-function: ease;
658
+ .transition.swing.in,
659
+ .transition.swing.in.down {
660
+ transform-origin: top center;
661
+ animation-name: swingInX;
384
662
  }
385
- .browse.transition.out.right {
386
- animation-name: browseOutRight;
387
- animation-timing-function: ease;
663
+ .transition.swing.in.up {
664
+ transform-origin:bottom center;
665
+ animation-name: swingInX;
666
+ }
667
+ .transition.swing.in.left {
668
+ transform-origin: center right;
669
+ animation-name: swingInY;
670
+ }
671
+ .transition.swing.in.right {
672
+ transform-origin: center left;
673
+ animation-name: swingInY;
388
674
  }
389
675
 
390
- @keyframes browseIn {
676
+ .transition.swing.out.down,
677
+ .transition.swing.out {
678
+ transform-origin: top center;
679
+ animation-name: swingOutDown;
680
+ }
681
+ .transition.swing.out.up {
682
+ transform-origin:bottom center;
683
+ animation-name: swingOutUp;
684
+ }
685
+ .transition.swing.out.left {
686
+ transform-origin: center right;
687
+ animation-name: swingOutLeft;
688
+ }
689
+ .transition.swing.out.right {
690
+ transform-origin: center left;
691
+ animation-name: swingOutRight;
692
+ }
693
+
694
+ /* In */
695
+ @keyframes swingInX {
391
696
  0% {
392
- transform: scale(0.8) translateZ(0px);
393
- z-index: -1;
697
+ transform: perspective(1000px) rotateX(90deg);
698
+ opacity: 0;
394
699
  }
395
- 10% {
396
- transform: scale(0.8) translateZ(0px);
397
- z-index: -1;
398
- opacity: 0.7;
700
+ 40% {
701
+ transform: perspective(1000px) rotateX(-20deg);
702
+ }
703
+ 60% {
704
+ transform: perspective(1000px) rotateX(10deg);
399
705
  }
400
706
  80% {
401
- transform: scale(1.05) translateZ(0px);
707
+ transform: perspective(1000px) rotateX(-5deg);
402
708
  opacity: 1;
403
- z-index: 999;
404
709
  }
405
710
  100% {
406
- transform: scale(1) translateZ(0px);
407
- z-index: 999;
711
+ transform: perspective(1000px) rotateX(0deg);
408
712
  }
409
713
  }
410
- @keyframes browseOutLeft {
714
+ @keyframes swingInY {
411
715
  0% {
412
- z-index: 999;
413
- transform: translateX(0%) rotateY(0deg) rotateX(0deg);
716
+ transform: perspective(1000px) rotateY(-90deg);
717
+ opacity: 0;
414
718
  }
415
- 50% {
416
- z-index: -1;
417
- transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
719
+ 40% {
720
+ transform: perspective(1000px) rotateY(20deg);
721
+ }
722
+ 60% {
723
+ transform: perspective(1000px) rotateY(-10deg);
418
724
  }
419
725
  80% {
726
+ transform: perspective(1000px) rotateY(5deg);
420
727
  opacity: 1;
421
728
  }
422
729
  100% {
423
- z-index: -1;
424
- transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
730
+ transform: perspective(1000px) rotateY(0deg);
731
+ }
732
+ }
733
+
734
+ /* Out */
735
+ @keyframes swingOutUp {
736
+ 0% {
737
+ transform: perspective(1000px) rotateX(0deg);
738
+ }
739
+ 30% {
740
+ transform: perspective(1000px) rotateX(-20deg);
741
+ opacity:1;
742
+ }
743
+ 100% {
744
+ transform: perspective(1000px) rotateX(90deg);
425
745
  opacity: 0;
426
746
  }
427
747
  }
428
- @keyframes browseOutRight {
748
+ @keyframes swingOutDown {
429
749
  0% {
430
- z-index: 999;
431
- transform: translateX(0%) rotateY(0deg) rotateX(0deg);
750
+ transform: perspective(1000px) rotateX(0deg);
751
+ }
752
+ 30% {
753
+ transform: perspective(1000px) rotateX(20deg);
754
+ opacity:1;
755
+ }
756
+ 100% {
757
+ transform: perspective(1000px) rotateX(-90deg);
758
+ opacity: 0;
759
+ }
760
+ }
761
+ @keyframes swingOutLeft {
762
+ 0% {
763
+ transform: perspective(1000px) rotateY(0deg);
764
+ }
765
+ 30% {
766
+ transform: perspective(1000px) rotateY(20deg);
767
+ opacity:1;
768
+ }
769
+ 100% {
770
+ transform: perspective(1000px) rotateY(-90deg);
771
+ opacity: 0;
772
+ }
773
+ }
774
+ @keyframes swingOutRight {
775
+ 0% {
776
+ transform: perspective(1000px) rotateY(0deg);
777
+ }
778
+ 30% {
779
+ transform: perspective(1000px) rotateY(-20deg);
780
+ opacity:1;
781
+ }
782
+ 100% {
783
+ transform: perspective(1000px) rotateY(90deg);
784
+ opacity: 0;
785
+ }
786
+ }
787
+
788
+ /*******************************
789
+ Static Animations
790
+ *******************************/
791
+
792
+ /*--------------
793
+ Emphasis
794
+ ---------------*/
795
+
796
+ .flash.transition {
797
+ animation-name: flash;
798
+ }
799
+ .shake.transition {
800
+ animation-name: shake;
801
+ }
802
+ .bounce.transition {
803
+ animation-name: bounce;
804
+ }
805
+ .tada.transition {
806
+ animation-name: tada;
807
+ }
808
+ .pulse.transition {
809
+ animation-name: pulse;
810
+ }
811
+ .jiggle.transition {
812
+ animation-name: jiggle;
813
+ }
814
+
815
+ /* Flash */
816
+ @keyframes flash {
817
+ 0%, 50%, 100% {
818
+ opacity: 1;
819
+ }
820
+ 25%, 75% {
821
+ opacity: 0;
822
+ }
823
+ }
824
+
825
+ /* Shake */
826
+ @keyframes shake {
827
+ 0%, 100% {
828
+ transform: translateX(0);
829
+ }
830
+ 10%, 30%, 50%, 70%, 90% {
831
+ transform: translateX(-10px);
832
+ }
833
+ 20%, 40%, 60%, 80% {
834
+ transform: translateX(10px);
835
+ }
836
+ }
837
+
838
+ /* Bounce */
839
+ @keyframes bounce {
840
+ 0%, 20%, 50%, 80%, 100% {
841
+ transform: translateY(0);
842
+ }
843
+ 40% {
844
+ transform: translateY(-30px);
845
+ }
846
+ 60% {
847
+ transform: translateY(-15px);
848
+ }
849
+ }
850
+
851
+ /* Tada */
852
+ @keyframes tada {
853
+ 0% {
854
+ transform: scale(1);
855
+ }
856
+ 10%, 20% {
857
+ transform: scale(0.9) rotate(-3deg);
858
+ }
859
+ 30%, 50%, 70%, 90% {
860
+ transform: scale(1.1) rotate(3deg);
861
+ }
862
+ 40%, 60%, 80% {
863
+ transform: scale(1.1) rotate(-3deg);
864
+ }
865
+ 100% {
866
+ transform: scale(1) rotate(0);
867
+ }
868
+ }
869
+
870
+ /* Pulse */
871
+ @keyframes pulse {
872
+ 0% {
873
+ transform: scale(1);
874
+ opacity: 1;
432
875
  }
433
876
  50% {
434
- z-index: 1;
435
- transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
877
+ transform: scale(0.9);
878
+ opacity: 0.7;
436
879
  }
437
- 80% {
880
+ 100% {
881
+ transform: scale(1);
438
882
  opacity: 1;
439
883
  }
884
+
885
+ }
886
+
887
+ /* Rubberband */
888
+ @keyframes jiggle {
889
+ 0% {
890
+ transform: scale3d(1, 1, 1);
891
+ }
892
+ 30% {
893
+ transform: scale3d(1.25, 0.75, 1);
894
+ }
895
+ 40% {
896
+ transform: scale3d(0.75, 1.25, 1);
897
+ }
898
+ 50% {
899
+ transform: scale3d(1.15, 0.85, 1);
900
+ }
901
+ 65% {
902
+ transform: scale3d(.95, 1.05, 1);
903
+ }
904
+ 75% {
905
+ transform: scale3d(1.05, .95, 1);
906
+ }
440
907
  100% {
441
- z-index: 1;
442
- transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
443
- opacity: 0;
908
+ transform: scale3d(1, 1, 1);
444
909
  }
445
- }
910
+ }
911
+
912
+
913
+