aboutsummaryrefslogtreecommitdiffstats
path: root/src/sass/components/menus.scss
blob: b8c8528453c555701bef3029c9c3c21ecb74a62e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
// --------------------------------------------------------------
// Menus
// --------------------------------------------------------------

.plyr__menu {
    display: flex; // Edge fix
    position: relative;

    // Animate the icon
    .plyr__control svg {
        transition: transform 0.3s ease;
    }
    .plyr__control[aria-expanded='true'] {
        svg {
            transform: rotate(90deg);
        }

        // Hide tooltip
        .plyr__tooltip {
            display: none;
        }
    }

    // The actual menu container
    &__container {
        animation: plyr-popup 0.2s ease;
        background: $plyr-menu-bg;
        border-radius: 4px;
        bottom: 100%;
        box-shadow: $plyr-menu-shadow;
        color: $plyr-menu-color;
        font-size: $plyr-font-size-base;
        margin-bottom: 10px;
        position: absolute;
        right: -3px;
        text-align: left;
        white-space: nowrap;
        z-index: 3;

        > div {
            overflow: hidden;
            transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
        }

        // Arrow
        &::after {
            border: 4px solid transparent;
            border-top-color: $plyr-menu-bg;
            content: '';
            height: 0;
            position: absolute;
            right: 15px;
            top: 100%;
            width: 0;
        }

        [role='menu'] {
            padding: $plyr-control-padding;
        }

        [role='menuitem'],
        [role='menuitemradio'] {
            margin-top: 2px;

            &:first-child {
                margin-top: 0;
            }
        }

        // Options
        .plyr__control {
            align-items: center;
            color: $plyr-menu-color;
            display: flex;
            font-size: $plyr-font-size-menu;
            padding: ceil($plyr-control-padding / 2)
                ceil($plyr-control-padding * 1.5);
            user-select: none;
            width: 100%;

            > span {
                align-items: inherit;
                display: flex;
                width: 100%;
            }

            &::after {
                border: 4px solid transparent;
                content: '';
                position: absolute;
                top: 50%;
                transform: translateY(-50%);
            }

            &--forward {
                padding-right: ceil($plyr-control-padding * 4);

                &::after {
                    border-left-color: rgba($plyr-menu-color, 0.8);
                    right: 5px;
                }

                &.plyr__tab-focus::after,
                &:hover::after {
                    border-left-color: currentColor;
                }
            }

            &--back {
                $horizontal-padding: ($plyr-control-padding * 2);
                font-weight: $plyr-font-weight-regular;
                margin: $plyr-control-padding;
                margin-bottom: floor($plyr-control-padding / 2);
                padding-left: ceil($plyr-control-padding * 4);
                position: relative;
                width: calc(100% - #{$horizontal-padding});

                &::after {
                    border-right-color: rgba($plyr-menu-color, 0.8);
                    left: $plyr-control-padding;
                }

                &::before {
                    background: $plyr-menu-border-color;
                    box-shadow: 0 1px 0 $plyr-menu-border-shadow-color;
                    content: '';
                    height: 1px;
                    left: 0;
                    margin-top: ceil($plyr-control-padding / 2);
                    overflow: hidden;
                    position: absolute;
                    right: 0;
                    top: 100%;
                }

                &.plyr__tab-focus::after,
                &:hover::after {
                    border-right-color: currentColor;
                }
            }
        }

        .plyr__control[role='menuitemradio'] {
            padding-left: $plyr-control-padding;

            &::before,
            &::after {
                border-radius: 100%;
            }

            &::before {
                background: rgba(#000, 0.1);
                content: '';
                display: block;
                flex-shrink: 0;
                height: 16px;
                margin-right: $plyr-control-spacing;
                transition: all 0.3s ease;
                width: 16px;
            }

            &::after {
                background: #fff;
                border: 0;
                height: 6px;
                left: 12px;
                opacity: 0;
                top: 50%;
                transform: translateY(-50%) scale(0);
                transition: transform 0.3s ease, opacity 0.3s ease;
                width: 6px;
            }

            &[aria-checked='true'] {
                &::before {
                    background: $plyr-color-main;
                }
                &::after {
                    opacity: 1;
                    transform: translateY(-50%) scale(1);
                }
            }

            &.plyr__tab-focus::before,
            &:hover::before {
                background: rgba(#000, 0.1);
            }
        }

        // Option value
        .plyr__menu__value {
            align-items: center;
            display: flex;
            margin-left: auto;
            margin-right: -($plyr-control-padding - 2);
            overflow: hidden;
            padding-left: ceil($plyr-control-padding * 3.5);
            pointer-events: none;
        }
    }
}