|
| 1 | +/** Nav control mixin defaults */ |
| 2 | +[esl-carousel-nav]:not([active]) { |
| 3 | + display: none; |
| 4 | +} |
| 5 | + |
| 6 | +[esl-carousel-nav][disabled] { |
| 7 | + pointer-events: none; |
| 8 | +} |
| 9 | + |
| 10 | +:root { |
| 11 | + // variable to make clickable area larger |
| 12 | + --esl-carousel-arrow-size: 40px; |
| 13 | + --esl-carousel-arrow-padding: 0px; |
| 14 | + --esl-carousel-arrow-bg: grey; |
| 15 | +} |
| 16 | + |
1 | 17 | /** Arrow navigation styles */
|
2 | 18 | .esl-carousel-nav-container {
|
3 | 19 | position: relative;
|
4 |
| - // variable to make clickable area larger |
5 |
| - --esl-carousel-arrow-padding: 0px; |
6 |
| - --esl-carousel-arrow-size: 40px; |
| 20 | + |
7 | 21 | /* stylelint-disable-next-line */
|
8 | 22 | --esl-carousel-arrow-offset: calc((var(--esl-carousel-arrow-size) + var(--esl-carousel-arrow-padding) + var(--esl-carousel-side-space)) * -1);
|
9 |
| - --esl-carousel-arrow-bg: grey; |
| 23 | +} |
10 | 24 |
|
11 |
| - .esl-carousel-arrow { |
12 |
| - position: absolute; |
13 |
| - z-index: 3; |
14 |
| - top: 50%; |
15 |
| - transform: translateY(-50%); |
16 |
| - padding: var(--esl-carousel-arrow-padding); |
17 |
| - |
18 |
| - display: grid; |
19 |
| - place-content: center; |
20 |
| - |
21 |
| - background: none; |
22 |
| - border: none; |
23 |
| - cursor: pointer; |
24 |
| - appearance: none; |
25 |
| - filter: drop-shadow(0 0 4px var(--esl-carousel-arrow-bg)); |
26 |
| - |
27 |
| - opacity: 0.75; |
28 |
| - |
29 |
| - &:hover { |
30 |
| - opacity: 1; |
31 |
| - } |
32 |
| - |
33 |
| - &[disabled] { |
34 |
| - opacity: 0.25; |
35 |
| - } |
36 |
| - &[disabled='hidden'] { |
37 |
| - visibility: hidden; |
38 |
| - } |
39 |
| - } |
| 25 | +.esl-carousel-arrow { |
| 26 | + position: absolute; |
| 27 | + z-index: 3; |
| 28 | + top: 50%; |
| 29 | + transform: translateY(-50%); |
| 30 | + padding: var(--esl-carousel-arrow-padding); |
40 | 31 |
|
41 |
| - // Positioning |
42 |
| - .esl-carousel-arrow.prev { |
43 |
| - left: var(--esl-carousel-arrow-offset); |
| 32 | + display: grid; |
| 33 | + place-content: center; |
44 | 34 |
|
45 |
| - &.inner { |
46 |
| - left: 0; |
47 |
| - } |
48 |
| - } |
| 35 | + background: none; |
| 36 | + border: none; |
| 37 | + cursor: pointer; |
| 38 | + appearance: none; |
| 39 | + filter: drop-shadow(0 0 4px var(--esl-carousel-arrow-bg)); |
49 | 40 |
|
50 |
| - .esl-carousel-arrow.next { |
51 |
| - right: var(--esl-carousel-arrow-offset); |
| 41 | + opacity: 0.75; |
52 | 42 |
|
53 |
| - &.inner { |
54 |
| - right: 0; |
55 |
| - } |
| 43 | + &:hover { |
| 44 | + opacity: 1; |
56 | 45 | }
|
57 | 46 |
|
58 |
| - .esl-carousel-arrow::before { |
59 |
| - content: ''; |
60 |
| - display: block; |
61 |
| - width: var(--esl-carousel-arrow-size); |
62 |
| - height: var(--esl-carousel-arrow-size); |
63 |
| - background: var(--esl-carousel-arrow-bg); |
64 |
| - clip-path: polygon(20% 50%, 70% 0%, 80% 5%, 35% 50%, 80% 95%, 70% 100%); |
| 47 | + &[disabled] { |
| 48 | + opacity: 0.25; |
| 49 | + } |
| 50 | +} |
| 51 | + |
| 52 | +// Positioning |
| 53 | +.esl-carousel-arrow.prev { |
| 54 | + left: var(--esl-carousel-arrow-offset); |
| 55 | + |
| 56 | + &.inner { |
| 57 | + left: 0; |
65 | 58 | }
|
| 59 | +} |
66 | 60 |
|
67 |
| - .esl-carousel-arrow.next::before { |
68 |
| - transform: scaleX(-1); |
| 61 | +.esl-carousel-arrow.next { |
| 62 | + right: var(--esl-carousel-arrow-offset); |
| 63 | + |
| 64 | + &.inner { |
| 65 | + right: 0; |
69 | 66 | }
|
70 | 67 | }
|
| 68 | + |
| 69 | +// Arrow icon |
| 70 | +.esl-carousel-arrow::before { |
| 71 | + content: ''; |
| 72 | + display: block; |
| 73 | + width: var(--esl-carousel-arrow-size); |
| 74 | + height: var(--esl-carousel-arrow-size); |
| 75 | + background: var(--esl-carousel-arrow-bg); |
| 76 | + clip-path: polygon(20% 50%, 70% 0%, 80% 5%, 35% 50%, 80% 95%, 70% 100%); |
| 77 | +} |
| 78 | + |
| 79 | +.esl-carousel-arrow.next::before { |
| 80 | + transform: scaleX(-1); |
| 81 | +} |
0 commit comments