@npo/player 1.9.4 → 1.10.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 (88) hide show
  1. package/lib/js/api/getstreamobject.js +1 -2
  2. package/lib/js/api/getstreamobject.js.map +1 -1
  3. package/lib/js/fragments/setfragments.d.ts +3 -2
  4. package/lib/js/fragments/setfragments.js +6 -7
  5. package/lib/js/fragments/setfragments.js.map +1 -1
  6. package/lib/js/playeractions/handlers/error.js.map +1 -1
  7. package/lib/js/playeractions/handlers/processplayerconfig.d.ts +11 -0
  8. package/lib/js/playeractions/handlers/processplayerconfig.js +40 -0
  9. package/lib/js/playeractions/handlers/processplayerconfig.js.map +1 -0
  10. package/lib/js/playeractions/playeractions.d.ts +1 -0
  11. package/lib/js/playeractions/playeractions.js +1 -0
  12. package/lib/js/playeractions/playeractions.js.map +1 -1
  13. package/lib/js/ui/components/controlbar.d.ts +1 -1
  14. package/lib/js/ui/components/controlbar.js +10 -4
  15. package/lib/js/ui/components/controlbar.js.map +1 -1
  16. package/lib/js/ui/components/ctabar.js.map +1 -1
  17. package/lib/js/ui/components/nativemobile/addFragments.d.ts +1 -0
  18. package/lib/js/ui/components/nativemobile/addFragments.js +8 -0
  19. package/lib/js/ui/components/nativemobile/addFragments.js.map +1 -0
  20. package/lib/js/ui/components/nativemobile/buttons.js +1 -1
  21. package/lib/js/ui/components/nativemobile/buttons.js.map +1 -1
  22. package/lib/js/ui/components/nativemobile/controlbar.d.ts +2 -1
  23. package/lib/js/ui/components/nativemobile/controlbar.js +33 -4
  24. package/lib/js/ui/components/nativemobile/controlbar.js.map +1 -1
  25. package/lib/js/ui/components/nativemobile/titlebar.d.ts +2 -0
  26. package/lib/js/ui/components/nativemobile/titlebar.js +8 -0
  27. package/lib/js/ui/components/nativemobile/titlebar.js.map +1 -0
  28. package/lib/js/ui/components/topbar.js +5 -2
  29. package/lib/js/ui/components/topbar.js.map +1 -1
  30. package/lib/js/ui/handlers/listboxhandlers.js +9 -9
  31. package/lib/js/ui/handlers/listboxhandlers.js.map +1 -1
  32. package/lib/js/ui/handlers/nicamhandler.d.ts +1 -1
  33. package/lib/js/ui/handlers/nicamhandler.js +4 -4
  34. package/lib/js/ui/handlers/nicamhandler.js.map +1 -1
  35. package/lib/js/ui/{nativemobileui.js → nativemobileuicontainer.js} +6 -7
  36. package/lib/js/ui/nativemobileuicontainer.js.map +1 -0
  37. package/lib/js/ui/nativemobileuifactory.d.ts +3 -0
  38. package/lib/js/ui/nativemobileuifactory.js +43 -0
  39. package/lib/js/ui/nativemobileuifactory.js.map +1 -0
  40. package/lib/js/ui/uicontainer.js +4 -7
  41. package/lib/js/ui/uicontainer.js.map +1 -1
  42. package/lib/js/utilities/utilities.js +0 -1
  43. package/lib/js/utilities/utilities.js.map +1 -1
  44. package/lib/npoplayer.d.ts +1 -1
  45. package/lib/npoplayer.js +26 -42
  46. package/lib/npoplayer.js.map +1 -1
  47. package/lib/package.json +19 -10
  48. package/lib/src/js/fragments/setfragments.d.ts +3 -2
  49. package/lib/src/js/playeractions/handlers/processplayerconfig.d.ts +11 -0
  50. package/lib/src/js/playeractions/playeractions.d.ts +1 -0
  51. package/lib/src/js/ui/components/controlbar.d.ts +1 -1
  52. package/lib/src/js/ui/components/nativemobile/addFragments.d.ts +1 -0
  53. package/lib/src/js/ui/components/nativemobile/controlbar.d.ts +2 -1
  54. package/lib/src/js/ui/components/nativemobile/titlebar.d.ts +2 -0
  55. package/lib/src/js/ui/handlers/nicamhandler.d.ts +1 -1
  56. package/lib/src/js/ui/nativemobileuifactory.d.ts +3 -0
  57. package/lib/src/npoplayer.d.ts +1 -1
  58. package/package.json +19 -10
  59. package/src/scss/components/_advert.scss +28 -31
  60. package/src/scss/components/_buffering.scss +35 -4
  61. package/src/scss/components/_controlbars.scss +5 -9
  62. package/src/scss/components/_error.scss +6 -4
  63. package/src/scss/components/_hugeplaybacktogglebutton.scss +71 -0
  64. package/src/scss/components/_icons.scss +53 -154
  65. package/src/scss/components/_metadata.scss +22 -0
  66. package/src/scss/components/_nicam.scss +2 -1
  67. package/src/scss/components/_playnext.scss +1 -1
  68. package/src/scss/components/_replay.scss +35 -0
  69. package/src/scss/components/_seekbar.scss +51 -76
  70. package/src/scss/components/_seekbarthumbnail.scss +56 -0
  71. package/src/scss/components/_settingspanel.scss +47 -54
  72. package/src/scss/components/_textbuttons.scss +1 -1
  73. package/src/scss/components/_volumeslider.scss +78 -13
  74. package/src/scss/npoplayer.css +2 -1234
  75. package/src/scss/npoplayer.scss +7 -3
  76. package/src/scss/variants/_player-base.scss +10 -36
  77. package/src/scss/variants/_player-debug.scss +14 -0
  78. package/src/scss/variants/_player-large.scss +18 -40
  79. package/src/scss/variants/_player-medium.scss +11 -43
  80. package/src/scss/variants/_player-native-mobile.scss +5 -0
  81. package/src/scss/variants/_player-small.scss +36 -197
  82. package/src/scss/vars/_colors.scss +7 -12
  83. package/src/scss/vars/_icons.scss +21 -33
  84. package/lib/js/ui/nativemobileui.js.map +0 -1
  85. package/src/scss/components/_container.scss +0 -8
  86. package/src/scss/components/_fonts.scss +0 -19
  87. /package/lib/js/ui/{nativemobileui.d.ts → nativemobileuicontainer.d.ts} +0 -0
  88. /package/lib/src/js/ui/{nativemobileui.d.ts → nativemobileuicontainer.d.ts} +0 -0
@@ -10,21 +10,17 @@
10
10
  .bmpui-controlbar-middle {
11
11
  height: 100%;
12
12
  display: flex;
13
+ left: 0;
14
+ top: 0;
15
+ width: 100%;
13
16
 
14
17
  .bmpui-container-wrapper {
15
18
  display: flex;
16
19
  flex-direction: row;
17
- justify-content: space-evenly; //instead of space-between
20
+ justify-content: space-evenly;
18
21
  align-items: center;
19
22
  padding: 0px;
20
- // gap: 67px;
21
- width: 100%; //Fix for gap pushing buttons out of screen
23
+ width: 100%;
22
24
  margin: 0 auto;
23
25
  }
24
-
25
- button {
26
- // height: 44px;
27
- // width: 44px;
28
- font-size: 2em;
29
- }
30
26
  }
@@ -1,9 +1,10 @@
1
1
  .bmpui-ui-errormessage-overlay {
2
- .bmpui-ui-tvnoisecanvas{
2
+ .bmpui-ui-tvnoisecanvas {
3
3
  display: none;
4
4
  }
5
- &::before{
6
- content: "";
5
+
6
+ &::before {
7
+ content: '';
7
8
  background-color: var(--npo-player-secondarycolor);
8
9
  opacity: 0.7;
9
10
  width: 100%;
@@ -15,8 +16,9 @@
15
16
  position: absolute;
16
17
  }
17
18
  }
19
+
18
20
  .bmpui-ui-errormessage-label {
19
- font-family: 'NPOSansBold';
21
+ font-family: var(--font-bold);
20
22
  font-weight: 700;
21
23
  font-size: 22px;
22
24
  line-height: 130%;
@@ -0,0 +1,71 @@
1
+ &.bmpui-player-state-paused,
2
+ &.bmpui-player-state-prepared,
3
+ &.bmpui-player-state-finished {
4
+ .bmpui-ui-hugeplaybacktogglebutton {
5
+ .bmpui-image {
6
+ animation: none;
7
+ }
8
+ }
9
+ }
10
+
11
+
12
+ /* Icon Play */
13
+ .bmpui-ui-hugeplaybacktogglebutton {
14
+ .bmpui-image {
15
+ cursor: pointer;
16
+ position: relative;
17
+ // animation: none;
18
+ background: none;
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: center;
22
+
23
+ &:after,
24
+ &:before {
25
+ content: '';
26
+ position: absolute;
27
+ height: 88px;
28
+ width: 88px;
29
+ }
30
+
31
+ &:after {
32
+ mask-image: var(--npo-player-icon-play);
33
+ mask-repeat: no-repeat;
34
+ mask-position: center;
35
+ transition: mask-size linear 0.3s;
36
+ mask-size: 40%;
37
+ background-color: var(--npo-player-iconcolor);
38
+ }
39
+
40
+ &:before {
41
+ border-radius: 500px;
42
+ background: rgba(0, 0, 0, 0.5);
43
+ }
44
+
45
+ &:hover {
46
+ &:after {
47
+ mask-size: 55%;
48
+ }
49
+
50
+ &:before {
51
+ background: linear-gradient(90deg, var(--npo-player-primarycolor), var(--npo-player-primarycolor-light));
52
+ background-size: 200% 200%;
53
+ animation: gradientAnimation 2s linear infinite;
54
+ }
55
+ }
56
+ }
57
+ }
58
+
59
+ @keyframes gradientAnimation {
60
+ 0% {
61
+ background-position: 0% 50%;
62
+ }
63
+
64
+ 50% {
65
+ background-position: 100% 50%;
66
+ }
67
+
68
+ 100% {
69
+ background-position: 0% 50%;
70
+ }
71
+ }
@@ -1,241 +1,140 @@
1
1
  .bmpui-ui-rewindbutton,
2
2
  .bmpui-ui-forwardbutton,
3
- .bmpui-ui-subtitlesettingstogglebutton,
4
3
  .bmpui-ui-settingstogglebutton,
5
4
  .bmpui-ui-fullscreentogglebutton,
6
5
  .bmpui-ui-playbacktogglebutton,
7
6
  .bmpui-ui-volumetogglebutton,
8
7
  .bmpui-ui-casttogglebutton,
9
8
  .bmpui-ui-airplaytogglebutton,
10
- .bmpui-ui-piptogglebutton,
11
- .bmpui-ui-audiotracksettingstogglebutton {
12
- padding: 8px;
9
+ .bmpui-ui-piptogglebutton {
10
+ width: 40px;
11
+ height: 40px;
12
+ padding: 0;
13
13
  margin: 0;
14
+ background-size: contain;
15
+ background-color: var(--npo-player-iconcolor);
16
+ background-image: none;
17
+ mask-size: contain;
18
+ mask-position: 50% 50%;
19
+ mask-repeat: no-repeat;
20
+ }
21
+
22
+ .bmpui-ui-settingstogglebutton,
23
+ .bmpui-ui-casttogglebutton,
24
+ .bmpui-ui-airplaytogglebutton,
25
+ .bmpui-ui-piptogglebutton {
26
+ &.bmpui-on {
27
+ background-color: var(--npo-player-iconcolor-active);
28
+ }
14
29
  }
15
30
 
16
31
  .bmpui-controlbar-bottom {
17
32
  .bmpui-container-wrapper {
18
- gap: 8px;
33
+ gap: 20px;
19
34
  }
20
35
  }
21
36
 
22
- /*Forward / backward */
37
+ /* Icon rewind 10 sec */
23
38
  .bmpui-ui-rewindbutton {
24
- background-image: url($icon_backwards);
25
- background-size: contain;
39
+ mask-image: var(--npo-player-icon-backward);
26
40
  }
27
41
 
42
+ /* Icon forward 10 sec */
28
43
  .bmpui-ui-forwardbutton {
29
- background-image: url($icon_forward);
30
- background-size: contain;
44
+ mask-image: var(--npo-player-icon-forward);
31
45
  }
32
46
 
33
47
  .bmpui-ui-rewindbutton:hover,
34
48
  .bmpui-ui-forwardbutton:hover {
35
- -webkit-filter: drop-shadow(0 0 1px #fff);
36
- filter: drop-shadow(0 0 1px #fff);
49
+ filter: drop-shadow(0 0 1px var(--npo-player-iconcolor));
37
50
  }
38
51
 
39
- /* Icon Play */
40
- &.bmpui-player-state-paused, &.bmpui-player-state-prepared, &.bmpui-player-state-finished {
41
- .bmpui-ui-hugeplaybacktogglebutton {
42
- .bmpui-image {
43
- cursor: pointer;
44
- animation: none !important;
45
- position: relative;
46
- background: none;
47
- background-image: none !important;
48
- display: flex;
49
- align-items: center;
50
- justify-content: center;
51
- &:after, &:before{
52
- content: "";
53
- position: absolute;
54
- height: 76px;
55
- width: 76px;
56
- }
57
- &:hover{
58
- &:after{
59
- background-size: 55% !important;
60
- }
61
- }
62
- &:after{
63
- background-image: url($icon_bigplay) !important;
64
- background-repeat: no-repeat;
65
- background-position: center;
66
- transition: background-size linear 0.3s !important;
67
- background-size: 40%;
68
- }
69
- &:before{
70
- border-radius: 500px;
71
- background: rgba(0, 0, 0, 0.5);
72
- }
73
- }
74
- &:hover{
75
- .bmpui-image{
76
- &:before{
77
- background: linear-gradient(90deg, var(--npo-player-primarycolor) 0%, var(--npo-player-primarycolor-light) 100%);
78
- animation: gradientAnimation 2s linear infinite;
79
- }
80
- }
81
- }
82
- }
83
-
84
- @container (min-width: 600px){
85
- .bmpui-ui-hugeplaybacktogglebutton .bmpui-image {
86
- &:after, &:before{
87
- height: 88px;
88
- width: 88px;
89
- }
90
- }
91
- }
92
-
93
- @container (min-width: 1200px){
94
- .bmpui-ui-hugeplaybacktogglebutton .bmpui-image {
95
- &:after, &:before{
96
- height: 100px;
97
- width: 100px;
98
- }
99
- }
100
- }
101
- }
102
-
103
- @keyframes gradientAnimation {
104
- 0% {
105
- background-position: 0% 50%;
106
- }
107
- 50% {
108
- background-position: 100% 50%;
109
- }
110
- 100% {
111
- background-position: 0% 50%;
112
- }
113
- }
114
-
115
- // Loading icon, does not currently work
116
- &.bmpui-ui-uicontainer .bmpui-ui-hugeplaybacktogglebutton.bmpui-on .bmpui-image{
117
- background: none !important;
118
- background-position: center !important;
119
- background-repeat: no-repeat !important;
120
- background-size: 15% !important;
121
- background-image: url($icon_bigplay) !important;
122
- }
123
- &.bmpui-ui-uicontainer:not(.bmpui-player-state-prepared):not(.bmpui-player-state-playing):not(.bmpui-player-state-paused):not(.bmpui-player-state-finished) .bmpui-image {
124
- background-image: none !important;
125
- &:after{
126
- animation: rotation 1s infinite linear;
127
- background-image: url($icon_loading) !important;
128
- background-repeat: no-repeat;
129
- background-position: center;
130
- background-size: 4em;
131
- }
132
- }
133
-
134
- /* Icon Audio Quality */
135
- .bmpui-ui-subtitlesettingstogglebutton {
136
- &.bmpui-off {
137
- background-image: url($icon_subtitles);
138
- }
139
- &.bmpui-on {
140
- background-image: url($icon_subtitles_active);
141
- }
142
- }
143
-
144
- /* Icon Subtitles */
145
- .bmpui-ui-subtitlesettingstogglebutton {
146
- &.bmpui-off {
147
- background-image: url($icon_subtitles);
148
- }
149
- &.bmpui-on {
150
- background-image: url($icon_subtitles_active);
151
- }
152
- }
153
-
154
- /* Icon Small Play + Pause */
52
+ /* Icon Small Play/Pause Toggle */
155
53
  .bmpui-ui-playbacktogglebutton {
156
54
  &.bmpui-off {
157
- background-image: url($icon_playbackplay);
55
+ mask-image: var(--npo-player-icon-play);
158
56
  }
159
- &.bmpui-on {
160
- background-image: url($icon_playbackpause);
161
- }
162
- }
163
57
 
164
- @keyframes rotation {
165
- from {
166
- transform: rotate(0deg);
167
- }
168
- to {
169
- transform: rotate(359deg);
58
+ &.bmpui-on {
59
+ mask-image: var(--npo-player-icon-pause);
170
60
  }
171
61
  }
172
62
 
63
+ /* Icon Full Screen */
173
64
  .bmpui-ui-fullscreentogglebutton {
174
65
  &.bmpui-off {
175
- background-image: url($icon_fullscreen);
66
+ mask-image: var(--npo-player-icon-fullscreen);
176
67
  }
68
+
177
69
  &.bmpui-on {
178
- background-image: url($icon_fullscreen_active);
70
+ mask-image: var(--npo-player-icon-fullscreen-active);
179
71
  }
180
72
  }
181
73
 
182
74
  /* Icon Settings */
183
75
  .bmpui-ui-settingstogglebutton {
184
76
  &.bmpui-off {
185
- background-image: url($icon_settings);
77
+ mask-image: var(--npo-player-icon-settings);
186
78
  }
79
+
187
80
  &.bmpui-on {
188
- background-image: url($icon_settings_active);
81
+ mask-image: var(--npo-player-icon-settings-active);
189
82
  }
190
83
  }
191
84
 
192
85
  /* Icon Cast */
193
86
  .bmpui-ui-casttogglebutton {
194
87
  &.bmpui-off {
195
- background-image: url($icon_cast);
88
+ mask-image: var(--npo-player-icon-cast);
196
89
  }
90
+
197
91
  &.bmpui-on {
198
- background-image: url($icon_cast_active);
92
+ mask-image: var(--npo-player-icon-cast-active);
199
93
  }
200
94
  }
201
95
 
202
96
  /* Icon Airplay */
203
97
  .bmpui-ui-airplaytogglebutton {
204
98
  &.bmpui-off {
205
- background-image: url($icon_airplay);
99
+ mask-image: var(--npo-player-icon-airplay);
206
100
  }
101
+
207
102
  &.bmpui-on {
208
- background-image: url($icon_airplay_active);
103
+ mask-image: var(--npo-player-icon-airplay-active);
209
104
  }
210
105
  }
211
106
 
212
107
  /* Icon PIP */
213
108
  .bmpui-ui-piptogglebutton {
214
109
  &.bmpui-off {
215
- background-image: url($icon_pip);
110
+ mask-image: var(--npo-player-icon-pip);
216
111
  }
112
+
217
113
  &.bmpui-on {
218
- background-image: url($icon_pip_active);
114
+ mask-image: var(--npo-player-icon-pip-active);
219
115
  }
220
116
  }
221
117
 
222
118
  /* Icon Volume */
223
119
  .bmpui-ui-volumetogglebutton.bmpui-muted {
224
- background-image: url($icon_volume_muted);
120
+ mask-image: var(--npo-player-icon-volume-muted);
225
121
  }
122
+
226
123
  .bmpui-ui-volumetogglebutton.bmpui-unmuted[data-bmpui-volume-level-tens='1'],
227
124
  .bmpui-ui-volumetogglebutton.bmpui-unmuted[data-bmpui-volume-level-tens='2'],
228
125
  .bmpui-ui-volumetogglebutton.bmpui-unmuted[data-bmpui-volume-level-tens='3'],
229
126
  .bmpui-ui-volumetogglebutton.bmpui-unmuted[data-bmpui-volume-level-tens='4'] {
230
- background-image: url($icon_volume_1);
127
+ mask-image: var(--npo-player-icon-volume-1);
231
128
  }
129
+
232
130
  .bmpui-ui-volumetogglebutton.bmpui-unmuted[data-bmpui-volume-level-tens='5'],
233
131
  .bmpui-ui-volumetogglebutton.bmpui-unmuted[data-bmpui-volume-level-tens='6'],
234
132
  .bmpui-ui-volumetogglebutton.bmpui-unmuted[data-bmpui-volume-level-tens='7'] {
235
- background-image: url($icon_volume_2);
133
+ mask-image: var(--npo-player-icon-volume-2);
236
134
  }
135
+
237
136
  .bmpui-ui-volumetogglebutton.bmpui-unmuted[data-bmpui-volume-level-tens='8'],
238
137
  .bmpui-ui-volumetogglebutton.bmpui-unmuted[data-bmpui-volume-level-tens='9'],
239
138
  .bmpui-ui-volumetogglebutton.bmpui-unmuted[data-bmpui-volume-level-tens='10'] {
240
- background-image: url($icon_volume_3);
241
- }
139
+ mask-image: var(--npo-player-icon-volume-3);
140
+ }
@@ -0,0 +1,22 @@
1
+ .bmpui-metadata {
2
+ padding: 24px 18px;
3
+ color: var(--npo-player-textcolor);
4
+
5
+ .bmpui-label-metadata-title {
6
+ font-family: var(--fontBold);
7
+ font-style: normal;
8
+ font-weight: 700;
9
+ font-size: 16px;
10
+ line-height: 19.2px;
11
+ }
12
+
13
+ .bmpui-label-metadata-description {
14
+ font-family: var(--fontRegular);
15
+ font-style: normal;
16
+ font-weight: 400;
17
+ font-size: 14px;
18
+ line-height: 20px;
19
+ margin: 4px 0;
20
+ opacity: 0.65;
21
+ }
22
+ }
@@ -2,7 +2,8 @@
2
2
  display: flex;
3
3
  width: 100%;
4
4
  padding-left: 1px; // offset the negative padding on the nicam icon
5
- .nicam-icon{
5
+
6
+ .nicam-icon {
6
7
  display: block;
7
8
  height: 25px;
8
9
  width: 25px;
@@ -26,7 +26,7 @@
26
26
  width: 7.3em;
27
27
  cursor: pointer;
28
28
  transition: background-size linear 0.2s !important;
29
- background-image: url($icon_bigplay) !important;
29
+ background-image: var(--npo-player-icon-play) !important;
30
30
  background-size: 60%;
31
31
  &:hover {
32
32
  background-size: 70%;
@@ -0,0 +1,35 @@
1
+ &.bmpui-player-state-finished {
2
+ .bmpui-ui-playbacktoggle-overlay {
3
+ display: block !important;
4
+
5
+ .bmpui-ui-hugeplaybacktogglebutton {
6
+ background: rgba(3, 14, 30, 0.4);
7
+ }
8
+
9
+ .bmpui-image,
10
+ .bmpui-image:hover {
11
+ &::before {
12
+ display: none;
13
+ }
14
+
15
+ &::after {
16
+ animation: none;
17
+ background-color: transparent;
18
+ background-repeat: no-repeat;
19
+ background-position: 50% 50%;
20
+ background-color: var(--npo-player-iconcolor);
21
+ mask-size: 48px;
22
+ mask-image: url('data:image/svg+xml,<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.2721 14.1005C10.4911 13.3195 10.4911 12.0531 11.2721 11.2721C18.3015 4.24264 29.6985 4.24264 36.728 11.2721C43.7574 18.3015 43.7574 29.6985 36.728 36.7279C29.6985 43.7574 18.3015 43.7574 11.2721 36.7279C10.4911 35.9469 10.4911 34.6805 11.2721 33.8995C12.0532 33.1184 13.3195 33.1184 14.1005 33.8995C19.5679 39.3668 28.4322 39.3668 33.8995 33.8995C39.3669 28.4322 39.3669 19.5678 33.8995 14.1005C28.4322 8.63316 19.5679 8.63316 14.1005 14.1005C13.3195 14.8816 12.0532 14.8816 11.2721 14.1005Z" fill="white"/><path fill-rule="evenodd" clip-rule="evenodd" d="M11.199 4.00983C12.2981 4.11974 13.1 5.09983 12.9901 6.19891L12.2333 13.7666L19.801 13.0098C20.9001 12.8999 21.8802 13.7018 21.9901 14.8009C22.1 15.9 21.2981 16.8801 20.199 16.99L10.199 17.99C9.60213 18.0497 9.00997 17.8383 8.5858 17.4141C8.16163 16.99 7.95025 16.3978 8.00994 15.8009L9.00994 5.8009C9.11985 4.70181 10.0999 3.89992 11.199 4.00983Z" fill="white"/></svg>') !important;
23
+ transition: transform .25s ease-in;
24
+ }
25
+ }
26
+
27
+ .bmpui-image:hover:after {
28
+ transform: rotate(-135deg);
29
+ }
30
+ }
31
+
32
+ .bmpui-ui-playbacktogglebutton.bmpui-off {
33
+ mask-image: url('data:image/svg+xml,<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.2721 14.1005C10.4911 13.3195 10.4911 12.0531 11.2721 11.2721C18.3015 4.24264 29.6985 4.24264 36.728 11.2721C43.7574 18.3015 43.7574 29.6985 36.728 36.7279C29.6985 43.7574 18.3015 43.7574 11.2721 36.7279C10.4911 35.9469 10.4911 34.6805 11.2721 33.8995C12.0532 33.1184 13.3195 33.1184 14.1005 33.8995C19.5679 39.3668 28.4322 39.3668 33.8995 33.8995C39.3669 28.4322 39.3669 19.5678 33.8995 14.1005C28.4322 8.63316 19.5679 8.63316 14.1005 14.1005C13.3195 14.8816 12.0532 14.8816 11.2721 14.1005Z" fill="white"/><path fill-rule="evenodd" clip-rule="evenodd" d="M11.199 4.00983C12.2981 4.11974 13.1 5.09983 12.9901 6.19891L12.2333 13.7666L19.801 13.0098C20.9001 12.8999 21.8802 13.7018 21.9901 14.8009C22.1 15.9 21.2981 16.8801 20.199 16.99L10.199 17.99C9.60213 18.0497 9.00997 17.8383 8.5858 17.4141C8.16163 16.99 7.95025 16.3978 8.00994 15.8009L9.00994 5.8009C9.11985 4.70181 10.0999 3.89992 11.199 4.00983Z" fill="white"/></svg>');
34
+ }
35
+ }
@@ -1,5 +1,15 @@
1
+ $seekbar-height: 4px;
2
+ $seekbar-border-radius: 2px;
3
+
1
4
  .bmpui-ui-seekbar {
5
+ position: relative;
6
+
2
7
  .bmpui-seekbar {
8
+ height: $seekbar-height;
9
+ overflow: hidden;
10
+ border-radius: $seekbar-border-radius;
11
+ margin-top: 5px;
12
+
3
13
  .bmpui-seekbar-marker {
4
14
  background-color: var(--npo-player-primarycolor);
5
15
  }
@@ -11,21 +21,46 @@
11
21
 
12
22
  .bmpui-seekbar-playbackposition {
13
23
  background: linear-gradient(90deg, var(--npo-player-primarycolor) 0%, var(--npo-player-primarycolor-light) 100%);
14
- backdrop-filter: blur(50px);
15
- border-radius: 5px;
16
24
  }
17
25
 
18
- .bmpui-seekbar-bufferlevel,
19
- .bmpui-seekbar-playbackposition {
20
- border-top-left-radius: 5px;
21
- border-bottom-left-radius: 5px;
26
+ .bmpui-seekbar-seekposition {
27
+ display: none;
22
28
  }
23
29
 
30
+ .bmpui-seekbar-playbackposition,
24
31
  .bmpui-seekbar-label,
25
32
  .bmpui-seekbar-backdrop,
26
- .bmpui-seekbar-markers,
27
- .bmpui-ui-seekbar {
28
- border-radius: 5px;
33
+ .bmpui-seekbar-bufferlevel,
34
+ .bmpui-seekbar-markers {
35
+ // to accept the overflow hidden for rounded borders, because elements are scaled, border radius wont look pretty
36
+ position: initial;
37
+ height: $seekbar-height;
38
+ margin: 0;
39
+ }
40
+
41
+ .bmpui-seekbar-marker-interval {
42
+ height: $seekbar-height;
43
+ }
44
+
45
+ .bmpui-seekbar-bufferlevel,
46
+ .bmpui-seekbar-playbackposition,
47
+ .bmpui-seekbar-markers {
48
+ // move up MINUS seekbar-height to make elements visible, because position changed to initial
49
+ margin-top: -$seekbar-height;
50
+ }
51
+
52
+ .bmpui-seekbar-markers {
53
+ position: relative;
54
+ overflow: hidden;
55
+ border-radius: $seekbar-border-radius;
56
+
57
+ .bmpui-seekbar-marker {
58
+ transition: none;
59
+ }
60
+
61
+ > .bmpui-seekbar-marker-unplayable {
62
+ background: var(--npo-player-unavailable);
63
+ }
29
64
  }
30
65
 
31
66
  .bmpui-seekbar-playbackposition-marker {
@@ -35,81 +70,21 @@
35
70
  height: 16px;
36
71
 
37
72
  &:after {
38
- border-radius: 50%;
39
- width: 0;
40
- height: 0;
73
+ content: '';
41
74
  position: absolute;
75
+ border-radius: 50%;
76
+ width: 38px;
77
+ height: 38px;
42
78
  left: -14px;
43
79
  top: -14px;
44
- content: '';
45
80
  opacity: 0.3;
46
81
  background-color: var(--npo-player-white);
82
+ transform: scale(0);
83
+ transition: transform linear 0.1s;
47
84
  }
48
85
 
49
86
  &:hover:after {
50
- width: 38px;
51
- height: 38px;
52
- }
53
- }
54
-
55
- .bmpui-seekbar-markers>.bmpui-seekbar-marker-unplayable {
56
- background: var(--npo-player-unavailable);
57
- backdrop-filter: blur(25px);
58
- height: 0.3125em;
59
- }
60
- }
61
- }
62
-
63
- //Thumbnail
64
- .bmpui-ui-seekbar-label {
65
- .bmpui-seekbar-label-inner {
66
- border-bottom: 0px none;
67
-
68
- &::after {
69
- display: none;
70
- }
71
-
72
- >.bmpui-container-wrapper {
73
- .bmpui-seekbar-thumbnail {
74
- width: 148px;
75
- border-radius: 12px;
76
- border: 2px solid var(--npo-player-white);
77
- border-radius: 12px;
78
- box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.35);
79
- margin-bottom: 4px;
80
-
81
- &[style*=background] {
82
- display: none;
83
- }
84
- }
85
-
86
- .bmpui-seekbar-label-metadata {
87
- background: none;
88
- padding: 0;
89
- position: relative;
90
-
91
- .bmpui-seekbar-label-title,
92
- .bmpui-seekbar-label-time {
93
- font-size: 13px;
94
- line-height: 1;
95
- font-weight: 700;
96
- margin: 4px auto;
97
- }
98
-
99
- .bmpui-seekbar-label-title {
100
- opacity: 0.8;
101
- width: 120px;
102
- overflow: hidden;
103
- white-space: nowrap;
104
- text-overflow: ellipsis;
105
- display: block;
106
- font-family: var(--fontRegular);
107
- }
108
-
109
- .bmpui-seekbar-label-time {
110
- font-family: var(--fontBold);
111
- font-weight: 700;
112
- }
87
+ transform: scale(1);
113
88
  }
114
89
  }
115
90
  }