@videojs/html 10.0.0-beta.7 → 10.0.0-beta.9
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.
- package/cdn/audio-minimal.dev.js +9 -9
- package/cdn/audio-minimal.dev.js.map +1 -1
- package/cdn/audio-minimal.js +1 -1
- package/cdn/audio-minimal.js.map +1 -1
- package/cdn/audio.dev.js +9 -9
- package/cdn/audio.dev.js.map +1 -1
- package/cdn/audio.js +1 -1
- package/cdn/audio.js.map +1 -1
- package/cdn/background.dev.js +14 -1
- package/cdn/background.dev.js.map +1 -1
- package/cdn/background.js +1 -1
- package/cdn/background.js.map +1 -1
- package/cdn/{create-player-Dv7K1Ezk.js → create-player-4kACDl5S.js} +3 -2
- package/cdn/create-player-4kACDl5S.js.map +1 -0
- package/cdn/{create-player-QjiNZlh7.js → create-player-DxN4WCxY.js} +3 -3
- package/cdn/create-player-DxN4WCxY.js.map +1 -0
- package/cdn/media/simple-hls-video.dev.js +22 -4
- package/cdn/media/simple-hls-video.dev.js.map +1 -1
- package/cdn/media/simple-hls-video.js +1 -1
- package/cdn/media/simple-hls-video.js.map +1 -1
- package/cdn/{player-CztIlNio.js → player-DVYGAHSo.js} +2 -2
- package/cdn/{player-CztIlNio.js.map → player-DVYGAHSo.js.map} +1 -1
- package/cdn/{player-Dvj38jlr.js → player-u-bvetUg.js} +2 -2
- package/cdn/{player-Dvj38jlr.js.map → player-u-bvetUg.js.map} +1 -1
- package/cdn/{poster-O0SI05LC.js → poster-BoF67sLZ.js} +3 -3
- package/cdn/{poster-O0SI05LC.js.map → poster-BoF67sLZ.js.map} +1 -1
- package/cdn/{poster-C4WHg3BH.js → poster-CkKPGKQ1.js} +2 -2
- package/cdn/{poster-C4WHg3BH.js.map → poster-CkKPGKQ1.js.map} +1 -1
- package/cdn/video-minimal.dev.js +12 -12
- package/cdn/video-minimal.dev.js.map +1 -1
- package/cdn/video-minimal.js +1 -1
- package/cdn/video-minimal.js.map +1 -1
- package/cdn/video.dev.js +12 -12
- package/cdn/video.dev.js.map +1 -1
- package/cdn/video.js +1 -1
- package/cdn/video.js.map +1 -1
- package/cdn/{volume-slider-BqzTytgB.js → volume-slider-Bv1urvub.js} +2 -2
- package/cdn/{volume-slider-BqzTytgB.js.map → volume-slider-Bv1urvub.js.map} +1 -1
- package/cdn/{volume-slider-CfhOO9RM.js → volume-slider-DYG1mki7.js} +2 -2
- package/cdn/{volume-slider-CfhOO9RM.js.map → volume-slider-DYG1mki7.js.map} +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/background/skin.js +6 -0
- package/dist/default/_virtual/inline-css_src/define/background/skin.js.map +1 -0
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.css +161 -141
- package/dist/default/define/audio/minimal-skin.js +1 -1
- package/dist/default/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/audio/skin.css +164 -132
- package/dist/default/define/audio/skin.js +1 -1
- package/dist/default/define/audio/skin.js.map +1 -1
- package/dist/default/define/audio/skin.tailwind.js +1 -1
- package/dist/default/define/audio/skin.tailwind.js.map +1 -1
- package/dist/default/define/background/skin.js +10 -0
- package/dist/default/define/background/skin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.css +224 -192
- package/dist/default/define/video/minimal-skin.js +1 -1
- package/dist/default/define/video/minimal-skin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/video/skin.css +238 -189
- package/dist/default/define/video/skin.js +1 -1
- package/dist/default/define/video/skin.js.map +1 -1
- package/dist/default/define/video/skin.tailwind.js +1 -1
- package/dist/default/define/video/skin.tailwind.js.map +1 -1
- package/dist/default/media/simple-hls-video/index.js +1 -0
- package/dist/default/media/simple-hls-video/index.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +4 -3
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js +4 -3
- package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/error.js +2 -2
- package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/seek.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +5 -3
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +8 -2
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +4 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +15 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +9 -2
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/background/skin.js +6 -0
- package/dist/dev/_virtual/inline-css_src/define/background/skin.js.map +1 -0
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/dev/define/audio/minimal-skin.css +161 -141
- package/dist/dev/define/audio/minimal-skin.js +5 -5
- package/dist/dev/define/audio/minimal-skin.js.map +1 -1
- package/dist/dev/define/audio/minimal-skin.tailwind.js +5 -5
- package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/audio/skin.css +164 -132
- package/dist/dev/define/audio/skin.js +5 -5
- package/dist/dev/define/audio/skin.js.map +1 -1
- package/dist/dev/define/audio/skin.tailwind.js +5 -5
- package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
- package/dist/dev/define/background/skin.d.ts.map +1 -1
- package/dist/dev/define/background/skin.js +10 -0
- package/dist/dev/define/background/skin.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.css +224 -192
- package/dist/dev/define/video/minimal-skin.js +8 -8
- package/dist/dev/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.js +8 -8
- package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/video/skin.css +238 -189
- package/dist/dev/define/video/skin.js +8 -8
- package/dist/dev/define/video/skin.js.map +1 -1
- package/dist/dev/define/video/skin.tailwind.js +8 -8
- package/dist/dev/define/video/skin.tailwind.js.map +1 -1
- package/dist/dev/media/simple-hls-video/index.js +1 -0
- package/dist/dev/media/simple-hls-video/index.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +4 -3
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js +4 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js +2 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +5 -3
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +8 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +4 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +15 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +9 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/package.json +9 -9
- package/cdn/audio-minimal.css +0 -1
- package/cdn/audio.css +0 -1
- package/cdn/background.css +0 -1
- package/cdn/create-player-Dv7K1Ezk.js.map +0 -1
- package/cdn/create-player-QjiNZlh7.js.map +0 -1
- package/cdn/video-minimal.css +0 -1
- package/cdn/video.css +0 -1
|
@@ -1,103 +1,3 @@
|
|
|
1
|
-
/* ==========================================================================
|
|
2
|
-
Icon State Visibility for Video Skins
|
|
3
|
-
|
|
4
|
-
Data-attribute-driven visibility rules for multi-state icon buttons.
|
|
5
|
-
Uses :is() with both element selectors (for HTML custom element wrappers)
|
|
6
|
-
and class selectors (for React rendered SVG elements).
|
|
7
|
-
========================================================================== */
|
|
8
|
-
|
|
9
|
-
/* --- All icons hidden by default --- */
|
|
10
|
-
|
|
11
|
-
.media-button--play .media-icon--restart,
|
|
12
|
-
.media-button--play .media-icon--play,
|
|
13
|
-
.media-button--play .media-icon--pause,
|
|
14
|
-
.media-button--mute .media-icon--volume-off,
|
|
15
|
-
.media-button--mute .media-icon--volume-low,
|
|
16
|
-
.media-button--mute .media-icon--volume-high,
|
|
17
|
-
.media-button--fullscreen .media-icon--fullscreen-enter,
|
|
18
|
-
.media-button--fullscreen .media-icon--fullscreen-exit,
|
|
19
|
-
.media-button--pip .media-icon--pip-enter,
|
|
20
|
-
.media-button--pip .media-icon--pip-exit,
|
|
21
|
-
.media-button--captions .media-icon--captions-off,
|
|
22
|
-
.media-button--captions .media-icon--captions-on {
|
|
23
|
-
display: none;
|
|
24
|
-
opacity: 0;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/* --- Active icon per state --- */
|
|
28
|
-
|
|
29
|
-
/* Play: ended → restart */
|
|
30
|
-
.media-button--play[data-ended] .media-icon--restart,
|
|
31
|
-
/* Play: paused (not ended) → play */
|
|
32
|
-
.media-button--play:not([data-ended])[data-paused] .media-icon--play,
|
|
33
|
-
/* Play: playing (not paused, not ended) → pause */
|
|
34
|
-
.media-button--play:not([data-paused]):not([data-ended]) .media-icon--pause,
|
|
35
|
-
/* Mute: muted → volume off */
|
|
36
|
-
.media-button--mute[data-muted] .media-icon--volume-off,
|
|
37
|
-
/* Mute: volume low (not muted) → volume low */
|
|
38
|
-
.media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low,
|
|
39
|
-
/* Mute: volume high (not muted, not low) → volume high */
|
|
40
|
-
.media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high,
|
|
41
|
-
/* Fullscreen: not fullscreen → enter */
|
|
42
|
-
.media-button--fullscreen:not([data-fullscreen]) .media-icon--fullscreen-enter,
|
|
43
|
-
/* Fullscreen: fullscreen → exit */
|
|
44
|
-
.media-button--fullscreen[data-fullscreen] .media-icon--fullscreen-exit,
|
|
45
|
-
/* Picture-in-Picture: not active → enter */
|
|
46
|
-
.media-button--pip:not([data-pip]) .media-icon--pip-enter,
|
|
47
|
-
/* Picture-in-Picture: active → exit */
|
|
48
|
-
.media-button--pip[data-pip] .media-icon--pip-exit,
|
|
49
|
-
/* Captions: not active → captions off */
|
|
50
|
-
.media-button--captions:not([data-active]) .media-icon--captions-off,
|
|
51
|
-
/* Captions: active → captions on */
|
|
52
|
-
.media-button--captions[data-active] .media-icon--captions-on {
|
|
53
|
-
display: block;
|
|
54
|
-
opacity: 1;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/* ==========================================================================
|
|
58
|
-
Tooltip Label State Visibility for Video Skins
|
|
59
|
-
|
|
60
|
-
Data-attribute-driven visibility rules for multi-state tooltip labels.
|
|
61
|
-
Uses adjacent sibling selectors to match button state → tooltip content.
|
|
62
|
-
========================================================================== */
|
|
63
|
-
|
|
64
|
-
/* --- All multi-state labels hidden by default --- */
|
|
65
|
-
|
|
66
|
-
.media-tooltip-label {
|
|
67
|
-
display: none;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/* --- Active label per state --- */
|
|
71
|
-
|
|
72
|
-
/* Play: ended → replay */
|
|
73
|
-
.media-button--play[data-ended] + .media-tooltip .media-tooltip-label--replay,
|
|
74
|
-
/* Play: paused (not ended) → play */
|
|
75
|
-
.media-button--play:not([data-ended])[data-paused] + .media-tooltip
|
|
76
|
-
.media-tooltip-label--play,
|
|
77
|
-
/* Play: playing (not paused, not ended) → pause */
|
|
78
|
-
.media-button--play:not([data-paused]):not([data-ended]) + .media-tooltip
|
|
79
|
-
.media-tooltip-label--pause,
|
|
80
|
-
/* Fullscreen: not fullscreen → enter */
|
|
81
|
-
.media-button--fullscreen:not([data-fullscreen]) + .media-tooltip
|
|
82
|
-
.media-tooltip-label--enter-fullscreen,
|
|
83
|
-
/* Fullscreen: fullscreen → exit */
|
|
84
|
-
.media-button--fullscreen[data-fullscreen] + .media-tooltip
|
|
85
|
-
.media-tooltip-label--exit-fullscreen,
|
|
86
|
-
/* Captions: not active → enable */
|
|
87
|
-
.media-button--captions:not([data-active]) + .media-tooltip
|
|
88
|
-
.media-tooltip-label--enable-captions,
|
|
89
|
-
/* Captions: active → disable */
|
|
90
|
-
.media-button--captions[data-active] + .media-tooltip
|
|
91
|
-
.media-tooltip-label--disable-captions,
|
|
92
|
-
/* PiP: not in pip → enter */
|
|
93
|
-
.media-button--pip:not([data-pip]) + .media-tooltip
|
|
94
|
-
.media-tooltip-label--enter-pip,
|
|
95
|
-
/* PiP: in pip → exit */
|
|
96
|
-
.media-button--pip[data-pip] + .media-tooltip
|
|
97
|
-
.media-tooltip-label--exit-pip {
|
|
98
|
-
display: block;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
1
|
/* ==========================================================================
|
|
102
2
|
Reset
|
|
103
3
|
========================================================================== */
|
|
@@ -145,6 +45,8 @@
|
|
|
145
45
|
letter-spacing: normal;
|
|
146
46
|
-webkit-font-smoothing: auto;
|
|
147
47
|
-moz-osx-font-smoothing: auto;
|
|
48
|
+
|
|
49
|
+
--media-controls-radius: var(--media-border-radius, 1rem);
|
|
148
50
|
}
|
|
149
51
|
|
|
150
52
|
/* ==========================================================================
|
|
@@ -183,27 +85,20 @@
|
|
|
183
85
|
backdrop-filter: blur(0) saturate(1.5);
|
|
184
86
|
opacity: 0;
|
|
185
87
|
pointer-events: none;
|
|
88
|
+
transition-property: opacity, backdrop-filter;
|
|
89
|
+
transition-duration: var(--media-controls-transition-duration);
|
|
90
|
+
transition-delay: var(--media-controls-transition-delay);
|
|
91
|
+
transition-timing-function: ease-out;
|
|
92
|
+
}
|
|
186
93
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
transition-delay: 500ms;
|
|
191
|
-
transition-timing-function: ease-out;
|
|
192
|
-
|
|
193
|
-
@media (prefers-reduced-motion: reduce) {
|
|
194
|
-
transition-duration: 100ms;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
94
|
+
.media-minimal-skin .media-error ~ .media-overlay {
|
|
95
|
+
transition-duration: var(--media-error-dialog-transition-duration);
|
|
96
|
+
transition-delay: var(--media-error-dialog-transition-delay);
|
|
197
97
|
}
|
|
198
98
|
|
|
199
99
|
.media-minimal-skin .media-controls[data-visible] ~ .media-overlay,
|
|
200
100
|
.media-minimal-skin .media-error[data-open] ~ .media-overlay {
|
|
201
101
|
opacity: 1;
|
|
202
|
-
|
|
203
|
-
@media (pointer: fine) {
|
|
204
|
-
transition-duration: 150ms;
|
|
205
|
-
transition-delay: 0ms;
|
|
206
|
-
}
|
|
207
102
|
}
|
|
208
103
|
|
|
209
104
|
.media-minimal-skin .media-error[data-open] ~ .media-overlay {
|
|
@@ -232,61 +127,6 @@
|
|
|
232
127
|
Error Dialog
|
|
233
128
|
========================================================================== */
|
|
234
129
|
|
|
235
|
-
.media-minimal-skin .media-error {
|
|
236
|
-
position: absolute;
|
|
237
|
-
inset: 0;
|
|
238
|
-
z-index: 20;
|
|
239
|
-
display: flex;
|
|
240
|
-
align-items: center;
|
|
241
|
-
justify-content: center;
|
|
242
|
-
pointer-events: none;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
.media-minimal-skin .media-error__dialog {
|
|
246
|
-
display: flex;
|
|
247
|
-
flex-direction: column;
|
|
248
|
-
gap: 0.75rem;
|
|
249
|
-
max-width: 16rem;
|
|
250
|
-
padding: 1rem;
|
|
251
|
-
color: oklch(1 0 0);
|
|
252
|
-
font-size: 0.875rem;
|
|
253
|
-
text-shadow: 0 1px 0 oklch(0 0 0 / 0.5);
|
|
254
|
-
transition-property: opacity, scale;
|
|
255
|
-
transition-duration: 500ms;
|
|
256
|
-
transition-delay: 100ms;
|
|
257
|
-
transition-timing-function: linear(
|
|
258
|
-
0,
|
|
259
|
-
0.034 1.5%,
|
|
260
|
-
0.763 9.7%,
|
|
261
|
-
1.066 13.9%,
|
|
262
|
-
1.198 19.9%,
|
|
263
|
-
1.184 21.8%,
|
|
264
|
-
0.963 37.5%,
|
|
265
|
-
0.997 50.9%,
|
|
266
|
-
1
|
|
267
|
-
);
|
|
268
|
-
|
|
269
|
-
/* Simple, fast transition for reduced motion users */
|
|
270
|
-
@media (prefers-reduced-motion: reduce) {
|
|
271
|
-
transition-duration: 100ms;
|
|
272
|
-
transition-delay: 0ms;
|
|
273
|
-
transition-timing-function: ease-out;
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
.media-minimal-skin .media-error[data-starting-style] .media-error__dialog,
|
|
278
|
-
.media-minimal-skin .media-error[data-ending-style] .media-error__dialog {
|
|
279
|
-
opacity: 0;
|
|
280
|
-
scale: 0.5;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
.media-minimal-skin .media-error__content {
|
|
284
|
-
display: flex;
|
|
285
|
-
flex-direction: column;
|
|
286
|
-
gap: 0.5rem;
|
|
287
|
-
padding: 0.375rem 0;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
130
|
.media-minimal-skin .media-error__title {
|
|
291
131
|
font-weight: 600;
|
|
292
132
|
line-height: 1.25;
|
|
@@ -306,6 +146,10 @@
|
|
|
306
146
|
}
|
|
307
147
|
}
|
|
308
148
|
|
|
149
|
+
.media-minimal-skin .media-error[data-open] ~ .media-controls * {
|
|
150
|
+
visibility: hidden;
|
|
151
|
+
}
|
|
152
|
+
|
|
309
153
|
/* ==========================================================================
|
|
310
154
|
Controls
|
|
311
155
|
========================================================================== */
|
|
@@ -384,16 +228,11 @@
|
|
|
384
228
|
justify-content: center;
|
|
385
229
|
flex-shrink: 0;
|
|
386
230
|
padding: 0.5rem 1rem;
|
|
387
|
-
background: oklch(1 0 0);
|
|
388
231
|
border: none;
|
|
389
|
-
border-radius:
|
|
232
|
+
border-radius: calc(var(--media-controls-radius) - var(--media-controls-padding));
|
|
390
233
|
outline: 2px solid transparent;
|
|
391
234
|
outline-offset: -2px;
|
|
392
|
-
|
|
393
|
-
font-weight: 500;
|
|
394
|
-
text-align: center;
|
|
395
|
-
text-shadow: inherit;
|
|
396
|
-
transition-property: background-color, color, outline-offset, scale;
|
|
235
|
+
transition-property: background-color, outline-offset, scale;
|
|
397
236
|
transition-duration: 150ms;
|
|
398
237
|
transition-timing-function: ease-out;
|
|
399
238
|
cursor: pointer;
|
|
@@ -405,6 +244,10 @@
|
|
|
405
244
|
outline-offset: 2px;
|
|
406
245
|
}
|
|
407
246
|
|
|
247
|
+
&:active {
|
|
248
|
+
scale: 0.98;
|
|
249
|
+
}
|
|
250
|
+
|
|
408
251
|
&[disabled] {
|
|
409
252
|
opacity: 0.5;
|
|
410
253
|
filter: grayscale(1);
|
|
@@ -416,21 +259,42 @@
|
|
|
416
259
|
}
|
|
417
260
|
}
|
|
418
261
|
|
|
419
|
-
/*
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
262
|
+
/* biome-ignore lint/correctness/noUnknownProperty: corner-shape is an emerging CSS spec */
|
|
263
|
+
@supports (corner-shape: squircle) {
|
|
264
|
+
.media-minimal-skin .media-button {
|
|
265
|
+
border-radius: var(--media-controls-radius);
|
|
266
|
+
/* biome-ignore lint/correctness/noUnknownProperty: corner-shape is an emerging CSS spec */
|
|
267
|
+
corner-shape: squircle;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/* Primary button variant */
|
|
272
|
+
.media-minimal-skin .media-button--primary {
|
|
273
|
+
background: oklch(1 0 0);
|
|
274
|
+
color: oklch(0 0 0);
|
|
275
|
+
font-weight: 500;
|
|
276
|
+
text-align: center;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/* Subtle button variant */
|
|
280
|
+
.media-minimal-skin .media-button--subtle {
|
|
425
281
|
background: transparent;
|
|
426
282
|
color: inherit;
|
|
283
|
+
text-shadow: inherit;
|
|
427
284
|
|
|
428
285
|
&:hover,
|
|
429
286
|
&:focus-visible,
|
|
430
287
|
&[aria-expanded="true"] {
|
|
431
|
-
|
|
432
|
-
text-decoration: none;
|
|
288
|
+
background: oklch(from currentColor l c h / 0.1);
|
|
433
289
|
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/* Icon button variant */
|
|
293
|
+
.media-minimal-skin .media-button--icon {
|
|
294
|
+
display: grid;
|
|
295
|
+
width: 2.375rem;
|
|
296
|
+
padding: 0;
|
|
297
|
+
aspect-ratio: 1;
|
|
434
298
|
|
|
435
299
|
&:active {
|
|
436
300
|
scale: 0.9;
|
|
@@ -447,7 +311,7 @@
|
|
|
447
311
|
position: absolute;
|
|
448
312
|
right: -1px;
|
|
449
313
|
bottom: -3px;
|
|
450
|
-
font-size:
|
|
314
|
+
font-size: 10px;
|
|
451
315
|
font-weight: 480;
|
|
452
316
|
font-variant-numeric: tabular-nums;
|
|
453
317
|
}
|
|
@@ -733,7 +597,8 @@
|
|
|
733
597
|
color: inherit;
|
|
734
598
|
overflow: visible;
|
|
735
599
|
transition-property: scale, opacity, filter;
|
|
736
|
-
transition-duration:
|
|
600
|
+
transition-duration: var(--media-popup-transition-duration);
|
|
601
|
+
transition-timing-function: var(--media-popup-transition-timing-function);
|
|
737
602
|
|
|
738
603
|
&[data-starting-style],
|
|
739
604
|
&[data-ending-style] {
|
|
@@ -859,6 +724,106 @@
|
|
|
859
724
|
font-family: inherit;
|
|
860
725
|
}
|
|
861
726
|
|
|
727
|
+
/* ==========================================================================
|
|
728
|
+
Icon State Visibility for Video Skins
|
|
729
|
+
|
|
730
|
+
Data-attribute-driven visibility rules for multi-state icon buttons.
|
|
731
|
+
Uses :is() with both element selectors (for HTML custom element wrappers)
|
|
732
|
+
and class selectors (for React rendered SVG elements).
|
|
733
|
+
========================================================================== */
|
|
734
|
+
|
|
735
|
+
/* --- All icons hidden by default --- */
|
|
736
|
+
|
|
737
|
+
.media-button--play .media-icon--restart,
|
|
738
|
+
.media-button--play .media-icon--play,
|
|
739
|
+
.media-button--play .media-icon--pause,
|
|
740
|
+
.media-button--mute .media-icon--volume-off,
|
|
741
|
+
.media-button--mute .media-icon--volume-low,
|
|
742
|
+
.media-button--mute .media-icon--volume-high,
|
|
743
|
+
.media-button--fullscreen .media-icon--fullscreen-enter,
|
|
744
|
+
.media-button--fullscreen .media-icon--fullscreen-exit,
|
|
745
|
+
.media-button--pip .media-icon--pip-enter,
|
|
746
|
+
.media-button--pip .media-icon--pip-exit,
|
|
747
|
+
.media-button--captions .media-icon--captions-off,
|
|
748
|
+
.media-button--captions .media-icon--captions-on {
|
|
749
|
+
display: none;
|
|
750
|
+
opacity: 0;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
/* --- Active icon per state --- */
|
|
754
|
+
|
|
755
|
+
/* Play: ended → restart */
|
|
756
|
+
.media-button--play[data-ended] .media-icon--restart,
|
|
757
|
+
/* Play: paused (not ended) → play */
|
|
758
|
+
.media-button--play:not([data-ended])[data-paused] .media-icon--play,
|
|
759
|
+
/* Play: playing (not paused, not ended) → pause */
|
|
760
|
+
.media-button--play:not([data-paused]):not([data-ended]) .media-icon--pause,
|
|
761
|
+
/* Mute: muted → volume off */
|
|
762
|
+
.media-button--mute[data-muted] .media-icon--volume-off,
|
|
763
|
+
/* Mute: volume low (not muted) → volume low */
|
|
764
|
+
.media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low,
|
|
765
|
+
/* Mute: volume high (not muted, not low) → volume high */
|
|
766
|
+
.media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high,
|
|
767
|
+
/* Fullscreen: not fullscreen → enter */
|
|
768
|
+
.media-button--fullscreen:not([data-fullscreen]) .media-icon--fullscreen-enter,
|
|
769
|
+
/* Fullscreen: fullscreen → exit */
|
|
770
|
+
.media-button--fullscreen[data-fullscreen] .media-icon--fullscreen-exit,
|
|
771
|
+
/* Picture-in-Picture: not active → enter */
|
|
772
|
+
.media-button--pip:not([data-pip]) .media-icon--pip-enter,
|
|
773
|
+
/* Picture-in-Picture: active → exit */
|
|
774
|
+
.media-button--pip[data-pip] .media-icon--pip-exit,
|
|
775
|
+
/* Captions: not active → captions off */
|
|
776
|
+
.media-button--captions:not([data-active]) .media-icon--captions-off,
|
|
777
|
+
/* Captions: active → captions on */
|
|
778
|
+
.media-button--captions[data-active] .media-icon--captions-on {
|
|
779
|
+
display: block;
|
|
780
|
+
opacity: 1;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
/* ==========================================================================
|
|
784
|
+
Tooltip Label State Visibility for Video Skins
|
|
785
|
+
|
|
786
|
+
Data-attribute-driven visibility rules for multi-state tooltip labels.
|
|
787
|
+
Uses adjacent sibling selectors to match button state → tooltip content.
|
|
788
|
+
========================================================================== */
|
|
789
|
+
|
|
790
|
+
/* --- All multi-state labels hidden by default --- */
|
|
791
|
+
|
|
792
|
+
.media-tooltip-label {
|
|
793
|
+
display: none;
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
/* --- Active label per state --- */
|
|
797
|
+
|
|
798
|
+
/* Play: ended → replay */
|
|
799
|
+
.media-button--play[data-ended] + .media-tooltip .media-tooltip-label--replay,
|
|
800
|
+
/* Play: paused (not ended) → play */
|
|
801
|
+
.media-button--play:not([data-ended])[data-paused] + .media-tooltip
|
|
802
|
+
.media-tooltip-label--play,
|
|
803
|
+
/* Play: playing (not paused, not ended) → pause */
|
|
804
|
+
.media-button--play:not([data-paused]):not([data-ended]) + .media-tooltip
|
|
805
|
+
.media-tooltip-label--pause,
|
|
806
|
+
/* Fullscreen: not fullscreen → enter */
|
|
807
|
+
.media-button--fullscreen:not([data-fullscreen]) + .media-tooltip
|
|
808
|
+
.media-tooltip-label--enter-fullscreen,
|
|
809
|
+
/* Fullscreen: fullscreen → exit */
|
|
810
|
+
.media-button--fullscreen[data-fullscreen] + .media-tooltip
|
|
811
|
+
.media-tooltip-label--exit-fullscreen,
|
|
812
|
+
/* Captions: not active → enable */
|
|
813
|
+
.media-button--captions:not([data-active]) + .media-tooltip
|
|
814
|
+
.media-tooltip-label--enable-captions,
|
|
815
|
+
/* Captions: active → disable */
|
|
816
|
+
.media-button--captions[data-active] + .media-tooltip
|
|
817
|
+
.media-tooltip-label--disable-captions,
|
|
818
|
+
/* PiP: not in pip → enter */
|
|
819
|
+
.media-button--pip:not([data-pip]) + .media-tooltip
|
|
820
|
+
.media-tooltip-label--enter-pip,
|
|
821
|
+
/* PiP: in pip → exit */
|
|
822
|
+
.media-button--pip[data-pip] + .media-tooltip
|
|
823
|
+
.media-tooltip-label--exit-pip {
|
|
824
|
+
display: block;
|
|
825
|
+
}
|
|
826
|
+
|
|
862
827
|
|
|
863
828
|
/* ==========================================================================
|
|
864
829
|
Root
|
|
@@ -869,8 +834,21 @@
|
|
|
869
834
|
background: oklch(0 0 0);
|
|
870
835
|
--media-border-color: oklch(0 0 0 / 0.15);
|
|
871
836
|
--media-video-border-radius: var(--media-border-radius, 0.75rem);
|
|
837
|
+
--media-controls-padding: 0.375rem;
|
|
872
838
|
--media-controls-transition-duration: 100ms;
|
|
873
839
|
--media-controls-transition-delay: 0ms;
|
|
840
|
+
--media-controls-transition-timing-function: ease-out;
|
|
841
|
+
--media-error-dialog-transition-duration: 250ms;
|
|
842
|
+
--media-error-dialog-transition-delay: 100ms;
|
|
843
|
+
--media-error-dialog-transition-timing-function: ease-out;
|
|
844
|
+
--media-popup-transition-duration: 100ms;
|
|
845
|
+
--media-popup-transition-timing-function: ease-out;
|
|
846
|
+
|
|
847
|
+
@media (prefers-reduced-motion: reduce) {
|
|
848
|
+
--media-error-dialog-transition-duration: 50ms;
|
|
849
|
+
--media-error-dialog-transition-delay: 0ms;
|
|
850
|
+
--media-popup-transition-duration: 0ms;
|
|
851
|
+
}
|
|
874
852
|
|
|
875
853
|
@media (prefers-color-scheme: dark) {
|
|
876
854
|
--media-border-color: oklch(1 0 0 / 0.15);
|
|
@@ -886,7 +864,7 @@
|
|
|
886
864
|
--media-controls-transition-duration: 150ms;
|
|
887
865
|
}
|
|
888
866
|
@media (prefers-reduced-motion: reduce) {
|
|
889
|
-
--media-controls-transition-duration:
|
|
867
|
+
--media-controls-transition-duration: 50ms;
|
|
890
868
|
}
|
|
891
869
|
}
|
|
892
870
|
|
|
@@ -907,6 +885,60 @@
|
|
|
907
885
|
}
|
|
908
886
|
}
|
|
909
887
|
|
|
888
|
+
/* ==========================================================================
|
|
889
|
+
Error Dialog
|
|
890
|
+
========================================================================== */
|
|
891
|
+
|
|
892
|
+
.media-minimal-skin--video .media-error {
|
|
893
|
+
position: absolute;
|
|
894
|
+
inset: 0;
|
|
895
|
+
z-index: 20;
|
|
896
|
+
display: flex;
|
|
897
|
+
align-items: center;
|
|
898
|
+
justify-content: center;
|
|
899
|
+
pointer-events: none;
|
|
900
|
+
outline: none;
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
.media-minimal-skin--video .media-error__dialog {
|
|
904
|
+
display: flex;
|
|
905
|
+
flex-direction: column;
|
|
906
|
+
gap: 0.75rem;
|
|
907
|
+
max-width: 16rem;
|
|
908
|
+
padding: 1rem;
|
|
909
|
+
color: oklch(1 0 0);
|
|
910
|
+
text-shadow: 0 1px 0 oklch(0 0 0 / 0.5);
|
|
911
|
+
transition-property: opacity, scale;
|
|
912
|
+
transition-duration: var(--media-error-dialog-transition-duration);
|
|
913
|
+
transition-delay: var(--media-error-dialog-transition-delay);
|
|
914
|
+
transition-timing-function: var(--media-error-dialog-transition-timing-function);
|
|
915
|
+
pointer-events: auto;
|
|
916
|
+
}
|
|
917
|
+
|
|
918
|
+
.media-minimal-skin--video .media-error[data-starting-style] .media-error__dialog,
|
|
919
|
+
.media-minimal-skin--video .media-error[data-ending-style] .media-error__dialog {
|
|
920
|
+
opacity: 0;
|
|
921
|
+
scale: 0.5;
|
|
922
|
+
}
|
|
923
|
+
.media-minimal-skin--video .media-error[data-ending-style] .media-error__dialog {
|
|
924
|
+
transition-delay: 0ms;
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
.media-minimal-skin--video .media-error__content {
|
|
928
|
+
display: flex;
|
|
929
|
+
flex-direction: column;
|
|
930
|
+
gap: 0.5rem;
|
|
931
|
+
padding: 0.375rem 0;
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
.media-minimal-skin--video .media-error__title {
|
|
935
|
+
font-size: 1.125rem;
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
.media-minimal-skin--video .media-error[data-open] ~ .media-controls {
|
|
939
|
+
display: none;
|
|
940
|
+
}
|
|
941
|
+
|
|
910
942
|
/* ==========================================================================
|
|
911
943
|
Controls (hide/show behavior)
|
|
912
944
|
========================================================================== */
|
|
@@ -917,11 +949,11 @@
|
|
|
917
949
|
inset-inline: 0;
|
|
918
950
|
z-index: 10;
|
|
919
951
|
gap: 0.5rem;
|
|
920
|
-
padding: 2rem
|
|
952
|
+
padding: 2rem var(--media-controls-padding) var(--media-controls-padding) var(--media-controls-padding);
|
|
921
953
|
color: var(--media-color-primary, oklch(1 0 0));
|
|
922
954
|
transition-duration: var(--media-controls-transition-duration);
|
|
923
955
|
transition-delay: var(--media-controls-transition-delay);
|
|
924
|
-
transition-timing-function:
|
|
956
|
+
transition-timing-function: var(--media-controls-transition-timing-function);
|
|
925
957
|
|
|
926
958
|
@media (pointer: fine) {
|
|
927
959
|
will-change: translate, filter, opacity;
|
|
@@ -981,7 +1013,7 @@
|
|
|
981
1013
|
Slider preview
|
|
982
1014
|
========================================================================== */
|
|
983
1015
|
|
|
984
|
-
.media-minimal-skin .media-slider__preview {
|
|
1016
|
+
.media-minimal-skin--video .media-slider__preview {
|
|
985
1017
|
position: absolute;
|
|
986
1018
|
left: var(--media-slider-pointer);
|
|
987
1019
|
bottom: calc(100% + 0.5rem);
|
|
@@ -1017,7 +1049,7 @@
|
|
|
1017
1049
|
max-height: 6rem;
|
|
1018
1050
|
}
|
|
1019
1051
|
}
|
|
1020
|
-
.media-minimal-skin .media-slider[data-pointing] .media-slider__preview:has([role="img"]:not([data-hidden])) {
|
|
1052
|
+
.media-minimal-skin--video .media-slider[data-pointing] .media-slider__preview:has([role="img"]:not([data-hidden])) {
|
|
1021
1053
|
opacity: 1;
|
|
1022
1054
|
scale: 1;
|
|
1023
1055
|
filter: blur(0);
|
|
@@ -39,7 +39,7 @@ function getTemplateHTML() {
|
|
|
39
39
|
<media-controls class="media-controls">
|
|
40
40
|
<media-tooltip-group>
|
|
41
41
|
<div class="media-button-group">
|
|
42
|
-
<media-play-button commandfor="play-tooltip" class="media-button media-button--icon media-button--play">
|
|
42
|
+
<media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
|
|
43
43
|
${renderIcon("restart", { class: "media-icon media-icon--restart" })}
|
|
44
44
|
${renderIcon("play", { class: "media-icon media-icon--play" })}
|
|
45
45
|
${renderIcon("pause", { class: "media-icon media-icon--pause" })}
|
|
@@ -50,7 +50,7 @@ function getTemplateHTML() {
|
|
|
50
50
|
<span class="media-tooltip-label media-tooltip-label--pause">Pause</span>
|
|
51
51
|
</media-tooltip>
|
|
52
52
|
|
|
53
|
-
<media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--icon media-button--seek">
|
|
53
|
+
<media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--subtle media-button--icon media-button--seek">
|
|
54
54
|
<span class="media-icon__container">
|
|
55
55
|
${renderIcon("seek", { class: "media-icon media-icon--flipped" })}
|
|
56
56
|
<span class="media-icon__label">${SEEK_TIME}</span>
|
|
@@ -60,7 +60,7 @@ function getTemplateHTML() {
|
|
|
60
60
|
Seek backward ${SEEK_TIME} seconds
|
|
61
61
|
</media-tooltip>
|
|
62
62
|
|
|
63
|
-
<media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--icon media-button--seek">
|
|
63
|
+
<media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--subtle media-button--icon media-button--seek">
|
|
64
64
|
<span class="media-icon__container">
|
|
65
65
|
${renderIcon("seek", { class: "media-icon" })}
|
|
66
66
|
<span class="media-icon__label">${SEEK_TIME}</span>
|
|
@@ -96,12 +96,12 @@ function getTemplateHTML() {
|
|
|
96
96
|
</div>
|
|
97
97
|
|
|
98
98
|
<div class="media-button-group">
|
|
99
|
-
<media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--icon media-button--playback-rate"></media-playback-rate-button>
|
|
99
|
+
<media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--subtle media-button--icon media-button--playback-rate"></media-playback-rate-button>
|
|
100
100
|
<media-tooltip id="playback-rate-tooltip" side="top" class="media-tooltip">
|
|
101
101
|
Toggle playback rate
|
|
102
102
|
</media-tooltip>
|
|
103
103
|
|
|
104
|
-
<media-mute-button commandfor="video-volume-popover" class="media-button media-button--icon media-button--mute">
|
|
104
|
+
<media-mute-button commandfor="video-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
|
|
105
105
|
${renderIcon("volume-off", { class: "media-icon media-icon--volume-off" })}
|
|
106
106
|
${renderIcon("volume-low", { class: "media-icon media-icon--volume-low" })}
|
|
107
107
|
${renderIcon("volume-high", { class: "media-icon media-icon--volume-high" })}
|
|
@@ -116,7 +116,7 @@ function getTemplateHTML() {
|
|
|
116
116
|
</media-volume-slider>
|
|
117
117
|
</media-popover>
|
|
118
118
|
|
|
119
|
-
<media-captions-button commandfor="captions-tooltip" class="media-button media-button--icon media-button--captions">
|
|
119
|
+
<media-captions-button commandfor="captions-tooltip" class="media-button media-button--subtle media-button--icon media-button--captions">
|
|
120
120
|
${renderIcon("captions-off", { class: "media-icon media-icon--captions-off" })}
|
|
121
121
|
${renderIcon("captions-on", { class: "media-icon media-icon--captions-on" })}
|
|
122
122
|
</media-captions-button>
|
|
@@ -124,7 +124,7 @@ function getTemplateHTML() {
|
|
|
124
124
|
Toggle captions
|
|
125
125
|
</media-tooltip>
|
|
126
126
|
|
|
127
|
-
<media-pip-button commandfor="pip-tooltip" class="media-button media-button--icon media-button--pip">
|
|
127
|
+
<media-pip-button commandfor="pip-tooltip" class="media-button media-button--subtle media-button--icon media-button--pip">
|
|
128
128
|
${renderIcon("pip-enter", { class: "media-icon media-icon--pip-enter" })}
|
|
129
129
|
${renderIcon("pip-exit", { class: "media-icon media-icon--pip-exit" })}
|
|
130
130
|
</media-pip-button>
|
|
@@ -133,7 +133,7 @@ function getTemplateHTML() {
|
|
|
133
133
|
<span class="media-tooltip-label media-tooltip-label--exit-pip">Exit picture-in-picture</span>
|
|
134
134
|
</media-tooltip>
|
|
135
135
|
|
|
136
|
-
<media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--icon media-button--fullscreen">
|
|
136
|
+
<media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--subtle media-button--icon media-button--fullscreen">
|
|
137
137
|
${renderIcon("fullscreen-enter", { class: "media-icon media-icon--fullscreen-enter" })}
|
|
138
138
|
${renderIcon("fullscreen-exit", { class: "media-icon media-icon--fullscreen-exit" })}
|
|
139
139
|
</media-fullscreen-button>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-skin.js","names":["styles"],"sources":["../../../../src/define/video/minimal-skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport { createStyles, SkinMixin } from '../skin-mixin';\nimport styles from './minimal-skin.css?inline';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/buffering-indicator';\nimport '../ui/controls';\nimport '../ui/fullscreen-button';\nimport '../ui/mute-button';\nimport '../ui/pip-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/poster';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-minimal-skin media-minimal-skin--video\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <media-poster>\n <slot name=\"poster\"></slot>\n </media-poster>\n\n <media-buffering-indicator class=\"media-buffering-indicator\">\n ${renderIcon('spinner', { class: 'media-icon' })}\n </media-buffering-indicator>\n\n <media-controls class=\"media-controls\">\n <media-tooltip-group>\n <div class=\"media-button-group\">\n <media-play-button commandfor=\"play-tooltip\" class=\"media-button media-button--icon media-button--play\">\n ${renderIcon('restart', { class: 'media-icon media-icon--restart' })}\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--replay\">Replay</span>\n <span class=\"media-tooltip-label media-tooltip-label--play\">Play</span>\n <span class=\"media-tooltip-label media-tooltip-label--pause\">Pause</span>\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--flipped' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"media-tooltip\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"media-tooltip\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n </div>\n\n <div class=\"media-time-controls\">\n <media-time-group class=\"media-time\">\n <media-time type=\"current\" class=\"media-time__value media-time__value--current\"></media-time>\n <media-time-separator class=\"media-time__separator\"></media-time-separator>\n <media-time type=\"duration\" class=\"media-time__value media-time__value--duration\"></media-time>\n </media-time-group>\n\n <media-time-slider class=\"media-slider\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n <media-slider-buffer class=\"media-slider__buffer\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n\n <div class=\"media-preview media-slider__preview\">\n <div class=\"media-preview__thumbnail-wrapper\">\n <media-slider-thumbnail class=\"media-preview__thumbnail\"></media-slider-thumbnail>\n </div>\n <media-slider-value type=\"pointer\" class=\"media-preview__timestamp\"></media-slider-value>\n ${renderIcon('spinner', { class: 'media-preview__spinner media-icon' })}\n </div>\n </media-time-slider>\n </div>\n\n <div class=\"media-button-group\">\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"media-button media-button--icon media-button--playback-rate\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"media-tooltip\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"video-volume-popover\" class=\"media-button media-button--icon media-button--mute\">\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n </media-mute-button>\n\n <media-popover id=\"video-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb media-slider__thumb--persistent\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n\n <media-captions-button commandfor=\"captions-tooltip\" class=\"media-button media-button--icon media-button--captions\">\n ${renderIcon('captions-off', { class: 'media-icon media-icon--captions-off' })}\n ${renderIcon('captions-on', { class: 'media-icon media-icon--captions-on' })}\n </media-captions-button>\n <media-tooltip id=\"captions-tooltip\" side=\"top\" class=\"media-tooltip\">\n Toggle captions\n </media-tooltip>\n\n <media-pip-button commandfor=\"pip-tooltip\" class=\"media-button media-button--icon media-button--pip\">\n ${renderIcon('pip-enter', { class: 'media-icon media-icon--pip-enter' })}\n ${renderIcon('pip-exit', { class: 'media-icon media-icon--pip-exit' })}\n </media-pip-button>\n <media-tooltip id=\"pip-tooltip\" side=\"top\" class=\"media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enter-pip\">Enter picture-in-picture</span>\n <span class=\"media-tooltip-label media-tooltip-label--exit-pip\">Exit picture-in-picture</span>\n </media-tooltip>\n\n <media-fullscreen-button commandfor=\"fullscreen-tooltip\" class=\"media-button media-button--icon media-button--fullscreen\">\n ${renderIcon('fullscreen-enter', { class: 'media-icon media-icon--fullscreen-enter' })}\n ${renderIcon('fullscreen-exit', { class: 'media-icon media-icon--fullscreen-exit' })}\n </media-fullscreen-button>\n <media-tooltip id=\"fullscreen-tooltip\" side=\"top\" class=\"media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enter-fullscreen\">Enter fullscreen</span>\n <span class=\"media-tooltip-label media-tooltip-label--exit-fullscreen\">Exit fullscreen</span>\n </media-tooltip>\n </div>\n </media-tooltip-group>\n </media-controls>\n\n <div class=\"media-overlay\"></div>\n </media-container>\n `;\n}\n\nexport class MinimalVideoSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'video-minimal-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalVideoSkinElement.tagName, MinimalVideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalVideoSkinElement.tagName]: MinimalVideoSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;;;;;;;;;;;UAWR,WAAW,WAAW,EAAE,OAAO,cAAc,CAAC,CAAC;;;;;;;gBAOzC,WAAW,WAAW,EAAE,OAAO,kCAAkC,CAAC,CAAC;gBACnE,WAAW,QAAQ,EAAE,OAAO,+BAA+B,CAAC,CAAC;gBAC7D,WAAW,SAAS,EAAE,OAAO,gCAAgC,CAAC,CAAC;;;;;;;;6EAQF,CAAC,UAAU;;kBAEtE,WAAW,QAAQ,EAAE,OAAO,kCAAkC,CAAC,CAAC;kDAChC,UAAU;;;;8BAI9B,UAAU;;;4EAGoC,UAAU;;kBAEpE,WAAW,QAAQ,EAAE,OAAO,cAAc,CAAC,CAAC;kDACZ,UAAU;;;;6BAI/B,UAAU;;;;;;;;;;;;;;;;;;;;;;;kBAuBrB,WAAW,WAAW,EAAE,OAAO,qCAAqC,CAAC,CAAC;;;;;;;;;;;;gBAYxE,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;gBACzE,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;gBACzE,WAAW,eAAe,EAAE,OAAO,sCAAsC,CAAC,CAAC;;;;;;;;;;;;;gBAa3E,WAAW,gBAAgB,EAAE,OAAO,uCAAuC,CAAC,CAAC;gBAC7E,WAAW,eAAe,EAAE,OAAO,sCAAsC,CAAC,CAAC;;;;;;;gBAO3E,WAAW,aAAa,EAAE,OAAO,oCAAoC,CAAC,CAAC;gBACvE,WAAW,YAAY,EAAE,OAAO,mCAAmC,CAAC,CAAC;;;;;;;;gBAQrE,WAAW,oBAAoB,EAAE,OAAO,2CAA2C,CAAC,CAAC;gBACrF,WAAW,mBAAmB,EAAE,OAAO,0CAA0C,CAAC,CAAC;;;;;;;;;;;;;;AAenG,IAAa,0BAAb,cAA6C,UAAU,gBAAgB,CAAC;;iBAC5C;;;gBACV,aAAaA,qBAAO;;;yBACX;;;AAG3B,eAAe,OAAO,wBAAwB,SAAS,wBAAwB"}
|
|
1
|
+
{"version":3,"file":"minimal-skin.js","names":["styles"],"sources":["../../../../src/define/video/minimal-skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport { createStyles, SkinMixin } from '../skin-mixin';\nimport styles from './minimal-skin.css?inline';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/buffering-indicator';\nimport '../ui/controls';\nimport '../ui/fullscreen-button';\nimport '../ui/mute-button';\nimport '../ui/pip-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/poster';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-minimal-skin media-minimal-skin--video\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <media-poster>\n <slot name=\"poster\"></slot>\n </media-poster>\n\n <media-buffering-indicator class=\"media-buffering-indicator\">\n ${renderIcon('spinner', { class: 'media-icon' })}\n </media-buffering-indicator>\n\n <media-controls class=\"media-controls\">\n <media-tooltip-group>\n <div class=\"media-button-group\">\n <media-play-button commandfor=\"play-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--play\">\n ${renderIcon('restart', { class: 'media-icon media-icon--restart' })}\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--replay\">Replay</span>\n <span class=\"media-tooltip-label media-tooltip-label--play\">Play</span>\n <span class=\"media-tooltip-label media-tooltip-label--pause\">Pause</span>\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"media-button media-button--subtle media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--flipped' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"media-tooltip\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"media-button media-button--subtle media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"media-tooltip\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n </div>\n\n <div class=\"media-time-controls\">\n <media-time-group class=\"media-time\">\n <media-time type=\"current\" class=\"media-time__value media-time__value--current\"></media-time>\n <media-time-separator class=\"media-time__separator\"></media-time-separator>\n <media-time type=\"duration\" class=\"media-time__value media-time__value--duration\"></media-time>\n </media-time-group>\n\n <media-time-slider class=\"media-slider\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n <media-slider-buffer class=\"media-slider__buffer\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n\n <div class=\"media-preview media-slider__preview\">\n <div class=\"media-preview__thumbnail-wrapper\">\n <media-slider-thumbnail class=\"media-preview__thumbnail\"></media-slider-thumbnail>\n </div>\n <media-slider-value type=\"pointer\" class=\"media-preview__timestamp\"></media-slider-value>\n ${renderIcon('spinner', { class: 'media-preview__spinner media-icon' })}\n </div>\n </media-time-slider>\n </div>\n\n <div class=\"media-button-group\">\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--playback-rate\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"media-tooltip\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"video-volume-popover\" class=\"media-button media-button--subtle media-button--icon media-button--mute\">\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n </media-mute-button>\n\n <media-popover id=\"video-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb media-slider__thumb--persistent\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n\n <media-captions-button commandfor=\"captions-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--captions\">\n ${renderIcon('captions-off', { class: 'media-icon media-icon--captions-off' })}\n ${renderIcon('captions-on', { class: 'media-icon media-icon--captions-on' })}\n </media-captions-button>\n <media-tooltip id=\"captions-tooltip\" side=\"top\" class=\"media-tooltip\">\n Toggle captions\n </media-tooltip>\n\n <media-pip-button commandfor=\"pip-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--pip\">\n ${renderIcon('pip-enter', { class: 'media-icon media-icon--pip-enter' })}\n ${renderIcon('pip-exit', { class: 'media-icon media-icon--pip-exit' })}\n </media-pip-button>\n <media-tooltip id=\"pip-tooltip\" side=\"top\" class=\"media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enter-pip\">Enter picture-in-picture</span>\n <span class=\"media-tooltip-label media-tooltip-label--exit-pip\">Exit picture-in-picture</span>\n </media-tooltip>\n\n <media-fullscreen-button commandfor=\"fullscreen-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--fullscreen\">\n ${renderIcon('fullscreen-enter', { class: 'media-icon media-icon--fullscreen-enter' })}\n ${renderIcon('fullscreen-exit', { class: 'media-icon media-icon--fullscreen-exit' })}\n </media-fullscreen-button>\n <media-tooltip id=\"fullscreen-tooltip\" side=\"top\" class=\"media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enter-fullscreen\">Enter fullscreen</span>\n <span class=\"media-tooltip-label media-tooltip-label--exit-fullscreen\">Exit fullscreen</span>\n </media-tooltip>\n </div>\n </media-tooltip-group>\n </media-controls>\n\n <div class=\"media-overlay\"></div>\n </media-container>\n `;\n}\n\nexport class MinimalVideoSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'video-minimal-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalVideoSkinElement.tagName, MinimalVideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalVideoSkinElement.tagName]: MinimalVideoSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;;;;;;;;;;;UAWR,WAAW,WAAW,EAAE,OAAO,cAAc,CAAC,CAAC;;;;;;;gBAOzC,WAAW,WAAW,EAAE,OAAO,kCAAkC,CAAC,CAAC;gBACnE,WAAW,QAAQ,EAAE,OAAO,+BAA+B,CAAC,CAAC;gBAC7D,WAAW,SAAS,EAAE,OAAO,gCAAgC,CAAC,CAAC;;;;;;;;6EAQF,CAAC,UAAU;;kBAEtE,WAAW,QAAQ,EAAE,OAAO,kCAAkC,CAAC,CAAC;kDAChC,UAAU;;;;8BAI9B,UAAU;;;4EAGoC,UAAU;;kBAEpE,WAAW,QAAQ,EAAE,OAAO,cAAc,CAAC,CAAC;kDACZ,UAAU;;;;6BAI/B,UAAU;;;;;;;;;;;;;;;;;;;;;;;kBAuBrB,WAAW,WAAW,EAAE,OAAO,qCAAqC,CAAC,CAAC;;;;;;;;;;;;gBAYxE,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;gBACzE,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;gBACzE,WAAW,eAAe,EAAE,OAAO,sCAAsC,CAAC,CAAC;;;;;;;;;;;;;gBAa3E,WAAW,gBAAgB,EAAE,OAAO,uCAAuC,CAAC,CAAC;gBAC7E,WAAW,eAAe,EAAE,OAAO,sCAAsC,CAAC,CAAC;;;;;;;gBAO3E,WAAW,aAAa,EAAE,OAAO,oCAAoC,CAAC,CAAC;gBACvE,WAAW,YAAY,EAAE,OAAO,mCAAmC,CAAC,CAAC;;;;;;;;gBAQrE,WAAW,oBAAoB,EAAE,OAAO,2CAA2C,CAAC,CAAC;gBACrF,WAAW,mBAAmB,EAAE,OAAO,0CAA0C,CAAC,CAAC;;;;;;;;;;;;;;AAenG,IAAa,0BAAb,cAA6C,UAAU,gBAAgB,CAAC;;iBAC5C;;;gBACV,aAAaA,qBAAO;;;yBACX;;;AAG3B,eAAe,OAAO,wBAAwB,SAAS,wBAAwB"}
|