UNPKG

15.9 kBSCSSView Raw
1@import "../../themes/ionic.globals";
2
3// Adopted from Swiper
4// Most modern mobile touch slider and framework with hardware
5// accelerated transitions.
6//
7// http://www.idangero.us/swiper/
8//
9// Copyright 2016, Vladimir Kharlampidi
10// The iDangero.us
11// http://www.idangero.us/
12//
13// Licensed under MIT
14
15.swiper-container {
16 @include margin-horizontal(auto);
17 @include padding(0);
18
19 position: relative;
20 // Fix of Webkit flickering
21 z-index: 1;
22
23 display: flex;
24 overflow: hidden;
25
26 width: 100%;
27 height: 100%;
28}
29
30.swiper-container-no-flexbox .swiper-slide {
31 @include float(start);
32}
33
34.swiper-container-vertical > .swiper-wrapper {
35 flex-direction: column;
36}
37
38.swiper-wrapper {
39 @include padding(0);
40
41 position: relative;
42 z-index: 1;
43
44 display: flex;
45
46 width: 100%;
47 height: 100%;
48
49 transition-property: transform;
50
51 box-sizing: content-box;
52}
53
54.swiper-container-android .swiper-slide,
55.swiper-wrapper {
56 @include transform(translate3d(0, 0, 0));
57}
58
59.swiper-container-multirow > .swiper-wrapper {
60 flex-wrap: wrap;
61}
62
63.swiper-container-free-mode > .swiper-wrapper {
64 @include margin(0, auto);
65
66 transition-timing-function: ease-out;
67}
68
69.swiper-slide {
70 @include text-align(center);
71
72 position: relative;
73
74 // Center slide text vertically
75 display: flex;
76
77 flex-shrink: 0;
78
79 align-items: center;
80 justify-content: center;
81
82 width: 100%;
83 height: 100%;
84
85 font-size: 18px;
86
87 box-sizing: border-box;
88}
89
90// Auto Height
91.swiper-container-autoheight,
92.swiper-container-autoheight .swiper-slide {
93 height: auto;
94}
95
96.swiper-container-autoheight .swiper-wrapper {
97 align-items: flex-start;
98
99 transition-property: transform, height;
100}
101
102// a11y
103.swiper-container .swiper-notification {
104 @include position(0, null, null, 0);
105
106 position: absolute;
107 z-index: -1000;
108
109 opacity: 0;
110
111 pointer-events: none;
112}
113
114// IE10 Windows Phone 8 Fixes
115.swiper-wp8-horizontal {
116 touch-action: pan-y;
117}
118
119.swiper-wp8-vertical {
120 touch-action: pan-x;
121}
122
123// Arrows
124.swiper-button-prev,
125.swiper-button-next {
126 @include position(50%, null, null, null);
127 @include margin(-22px, null, null, null);
128 @include background-position(center);
129
130 position: absolute;
131 z-index: 10;
132
133 width: 27px;
134 height: 44px;
135
136 background-repeat: no-repeat;
137 background-size: 27px 44px;
138 cursor: pointer;
139}
140
141.swiper-button-prev.swiper-button-disabled,
142.swiper-button-next.swiper-button-disabled {
143 cursor: auto;
144 opacity: .35;
145
146 pointer-events: none;
147}
148
149.swiper-button-prev,
150.swiper-container-rtl .swiper-button-next {
151 @include position-horizontal(10px, auto);
152
153 background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
154}
155
156.swiper-button-prev.swiper-button-black,
157.swiper-container-rtl .swiper-button-next.swiper-button-black {
158 background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
159}
160
161.swiper-button-prev.swiper-button-white,
162.swiper-container-rtl .swiper-button-next.swiper-button-white {
163 background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
164}
165
166.swiper-button-next,
167.swiper-container-rtl .swiper-button-prev {
168 @include position-horizontal(auto, 10px);
169
170 background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
171}
172
173.swiper-button-next.swiper-button-black,
174.swiper-container-rtl .swiper-button-prev.swiper-button-black {
175 background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
176}
177
178.swiper-button-next.swiper-button-white,
179.swiper-container-rtl .swiper-button-prev.swiper-button-white {
180 background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
181}
182
183// Pagination Styles
184.swiper-pagination {
185 @include text-align(center);
186 @include transform(translate3d(0, 0, 0));
187
188 position: absolute;
189 z-index: 10;
190
191 transition: 300ms;
192
193 pointer-events: none;
194}
195
196.swiper-pagination.swiper-pagination-hidden {
197 opacity: 0;
198}
199
200// Common Styles
201.swiper-pagination-fraction,
202.swiper-pagination-custom,
203.swiper-container-horizontal > .swiper-pagination-bullets {
204 @include position(null, null, 10px, 0);
205
206 width: 100%;
207}
208
209// Bullets
210.swiper-pagination-bullet {
211 @include border-radius(100%);
212
213 display: inline-block;
214
215 width: 8px;
216 height: 8px;
217
218 background: #000;
219 opacity: .2;
220
221 pointer-events: auto;
222}
223
224button.swiper-pagination-bullet {
225 @include margin(0);
226 @include padding(0);
227 @include appearance(none);
228
229 border: 0;
230 box-shadow: none;
231}
232
233.swiper-pagination-clickable .swiper-pagination-bullet {
234 cursor: pointer;
235}
236
237.swiper-pagination-white .swiper-pagination-bullet {
238 background: #fff;
239}
240
241.swiper-pagination-bullet-active {
242 background: color($colors, primary);
243 opacity: 1;
244}
245
246.swiper-pagination-white .swiper-pagination-bullet-active {
247 background: #fff;
248}
249
250.swiper-pagination-black .swiper-pagination-bullet-active {
251 background: #000;
252}
253
254.swiper-container-vertical > .swiper-pagination-bullets {
255 @include position(50%, 10px, null, null);
256 @include transform(translate3d(0, -50%, 0));
257}
258
259.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
260 @include margin(5px, 0);
261
262 display: block;
263}
264
265.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
266 @include margin(0, 5px);
267}
268
269// Progress
270.swiper-pagination-progress {
271 position: absolute;
272
273 background: rgba(0, 0, 0, .25);
274}
275
276.swiper-pagination-progress .swiper-pagination-progressbar {
277 @include position(0, null, null, 0);
278 @include transform-origin(start, top);
279
280 position: absolute;
281
282 width: 100%;
283 height: 100%;
284
285 background: color($colors, primary);
286
287 transform: scale(0);
288}
289
290.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar {
291 @include transform-origin(end, top);
292}
293
294.swiper-container-horizontal > .swiper-pagination-progress {
295 @include position(0, null, null, 0);
296
297 width: 100%;
298 height: 4px;
299}
300
301.swiper-container-vertical > .swiper-pagination-progress {
302 @include position(0, null, null, 0);
303
304 width: 4px;
305 height: 100%;
306}
307
308.swiper-pagination-progress.swiper-pagination-white {
309 background: rgba(255, 255, 255, .5);
310}
311
312.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar {
313 background: #fff;
314}
315
316.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar {
317 background: #000;
318}
319
320// 3D Container
321.swiper-container-3d {
322 perspective: 1200px;
323}
324
325.swiper-container-3d .swiper-wrapper,
326.swiper-container-3d .swiper-slide,
327.swiper-container-3d .swiper-slide-shadow-left,
328.swiper-container-3d .swiper-slide-shadow-right,
329.swiper-container-3d .swiper-slide-shadow-top,
330.swiper-container-3d .swiper-slide-shadow-bottom,
331.swiper-container-3d .swiper-cube-shadow {
332 transform-style: preserve-3d;
333}
334
335.swiper-container-3d .swiper-slide-shadow-left,
336.swiper-container-3d .swiper-slide-shadow-right,
337.swiper-container-3d .swiper-slide-shadow-top,
338.swiper-container-3d .swiper-slide-shadow-bottom {
339 @include position(0, null, null, 0);
340
341 position: absolute;
342 z-index: 10;
343
344 width: 100%;
345 height: 100%;
346
347 pointer-events: none;
348}
349
350.swiper-container-3d .swiper-slide-shadow-left {
351 background-image: linear-gradient(to left, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
352}
353
354.swiper-container-3d .swiper-slide-shadow-right {
355 background-image: linear-gradient(to right, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
356}
357
358.swiper-container-3d .swiper-slide-shadow-top {
359 background-image: linear-gradient(to top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
360}
361
362.swiper-container-3d .swiper-slide-shadow-bottom {
363 background-image: linear-gradient(to bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
364}
365
366// Coverflow
367.swiper-container-coverflow .swiper-wrapper,
368.swiper-container-flip .swiper-wrapper {
369 // Windows 8 IE 10 fix
370 perspective: 1200px;
371}
372
373// Cube + Flip
374.swiper-container-cube,
375.swiper-container-flip {
376 overflow: visible;
377}
378
379.swiper-container-cube .swiper-slide,
380.swiper-container-flip .swiper-slide {
381 z-index: 1;
382
383 backface-visibility: hidden;
384
385 pointer-events: none;
386}
387
388.swiper-container-cube .swiper-slide .swiper-slide,
389.swiper-container-flip .swiper-slide .swiper-slide {
390 pointer-events: none;
391}
392
393.swiper-container-cube .swiper-slide-active,
394.swiper-container-flip .swiper-slide-active,
395.swiper-container-cube .swiper-slide-active .swiper-slide-active,
396.swiper-container-flip .swiper-slide-active .swiper-slide-active {
397 pointer-events: auto;
398}
399
400.swiper-container-cube .swiper-slide-shadow-top,
401.swiper-container-flip .swiper-slide-shadow-top,
402.swiper-container-cube .swiper-slide-shadow-bottom,
403.swiper-container-flip .swiper-slide-shadow-bottom,
404.swiper-container-cube .swiper-slide-shadow-left,
405.swiper-container-flip .swiper-slide-shadow-left,
406.swiper-container-cube .swiper-slide-shadow-right,
407.swiper-container-flip .swiper-slide-shadow-right {
408 z-index: 0;
409
410 backface-visibility: hidden;
411}
412
413// Cube
414.swiper-container-cube .swiper-slide {
415 @include transform-origin(0, 0);
416
417 width: 100%;
418 height: 100%;
419
420 visibility: hidden;
421}
422
423.swiper-container-cube.swiper-container-rtl .swiper-slide {
424 @include transform-origin(100%, 0);
425}
426
427.swiper-container-cube .swiper-slide-active,
428.swiper-container-cube .swiper-slide-next,
429.swiper-container-cube .swiper-slide-prev,
430.swiper-container-cube .swiper-slide-next + .swiper-slide {
431 visibility: visible;
432
433 pointer-events: auto;
434}
435
436.swiper-container-cube .swiper-cube-shadow {
437 @include position(null, null, 0, 0);
438
439 position: absolute;
440 z-index: 0;
441
442 width: 100%;
443 height: 100%;
444
445 background: #000;
446 opacity: .6;
447
448 filter: blur(50px);
449}
450
451// Fade
452.swiper-container-fade.swiper-container-free-mode .swiper-slide {
453 transition-timing-function: ease-out;
454}
455
456.swiper-container-fade .swiper-slide {
457 transition-property: opacity;
458
459 pointer-events: none;
460}
461
462.swiper-container-fade .swiper-slide .swiper-slide {
463 pointer-events: none;
464}
465
466.swiper-container-fade .swiper-slide-active,
467.swiper-container-fade .swiper-slide-active .swiper-slide-active {
468 pointer-events: auto;
469}
470
471.swiper-zoom-container {
472 @include text-align(center);
473
474 display: flex;
475
476 align-items: center;
477 justify-content: center;
478
479 width: 100%;
480 height: 100%;
481}
482
483.swiper-zoom-container > img,
484.swiper-zoom-container > svg,
485.swiper-zoom-container > canvas {
486 max-width: 100%;
487 max-height: 100%;
488
489 object-fit: contain;
490}
491
492// Scrollbar
493.swiper-scrollbar {
494 @include border-radius(10px);
495
496 position: relative;
497
498 background: rgba(0, 0, 0, .1);
499
500 touch-action: none;
501}
502
503.swiper-container-horizontal > .swiper-scrollbar {
504 @include position(null, null, 3px, 1%);
505
506 position: absolute;
507 z-index: 50;
508
509 width: 98%;
510 height: 5px;
511}
512
513.swiper-container-vertical > .swiper-scrollbar {
514 @include position(1%, 3px, null, null);
515
516 position: absolute;
517 z-index: 50;
518
519 width: 5px;
520 height: 98%;
521}
522
523.swiper-scrollbar-drag {
524 @include position(0, null, null, 0);
525 @include border-radius(10px);
526
527 position: relative;
528
529 width: 100%;
530 height: 100%;
531
532 background: rgba(0, 0, 0, .5);
533}
534
535.swiper-scrollbar-cursor-drag {
536 cursor: move;
537}
538
539// Preloader
540.swiper-lazy-preloader {
541 @include position(50%, null, null, 50%);
542 @include margin(-21px, null, null, -21px);
543 @include transform-origin(50%);
544
545 position: absolute;
546 z-index: 10;
547
548 width: 42px;
549 height: 42px;
550
551 animation: swiper-preloader-spin 1s steps(12, end) infinite;
552}
553
554.swiper-lazy-preloader::after {
555 @include background-position(50%);
556
557 display: block;
558
559 width: 100%;
560 height: 100%;
561
562 background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
563 background-repeat: no-repeat;
564 background-size: 100%;
565
566 content: "";
567}
568
569.swiper-lazy-preloader-white::after {
570 background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
571}
572
573@keyframes swiper-preloader-spin {
574 100% {
575 transform: rotate(360deg);
576 }
577}
578
579ion-slides {
580 display: block;
581
582 width: 100%;
583 height: 100%;
584}
585
586.slide-zoom {
587 @include text-align(center);
588
589 display: block;
590
591 width: 100%;
592}
593
594.swiper-slide img {
595 width: auto;
596 max-width: 100%;
597 height: auto;
598 max-height: 100%;
599}