less-rails-semantic_ui 1.7.3.0 → 1.8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+