@videojs/react 10.0.0-beta.28 → 10.0.0-beta.29

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 (259) hide show
  1. package/dist/default/__generated__/skins/default-video/styles/buttons.css +132 -18
  2. package/dist/default/__generated__/skins/default-video/styles/captions.css +22 -0
  3. package/dist/default/__generated__/skins/default-video/styles/container.css +121 -8
  4. package/dist/default/__generated__/skins/default-video/styles/controls.css +436 -21
  5. package/dist/default/__generated__/skins/default-video/styles/dialog.css +169 -0
  6. package/dist/default/__generated__/skins/default-video/styles/indicator.css +459 -0
  7. package/dist/default/__generated__/skins/default-video/styles/menus.css +254 -0
  8. package/dist/default/__generated__/skins/default-video/styles/overlays.css +26 -2
  9. package/dist/default/__generated__/skins/default-video/styles/popups.css +338 -12
  10. package/dist/default/__generated__/skins/default-video/styles/poster.css +4 -4
  11. package/dist/default/__generated__/skins/default-video/styles/sliders.css +355 -31
  12. package/dist/default/__generated__/skins/default-video/styles/styles.css +2455 -216
  13. package/dist/default/__generated__/skins/default-video/styles/theme.css +4 -19
  14. package/dist/default/__generated__/skins/default-video/styles/video.css +29 -0
  15. package/dist/default/__generated__/skins/minimal-video/styles/base.css +25 -0
  16. package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  17. package/dist/default/__generated__/skins/minimal-video/styles/captions.css +22 -0
  18. package/dist/default/__generated__/skins/minimal-video/styles/container.css +158 -0
  19. package/dist/default/__generated__/skins/minimal-video/styles/controls.css +182 -0
  20. package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  21. package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  22. package/dist/default/__generated__/skins/minimal-video/styles/menus.css +254 -0
  23. package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  24. package/dist/default/__generated__/skins/minimal-video/styles/popups.css +371 -0
  25. package/dist/default/__generated__/skins/minimal-video/styles/poster.css +47 -0
  26. package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  27. package/dist/default/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  28. package/dist/default/__generated__/skins/minimal-video/styles/theme.css +7 -0
  29. package/dist/default/__generated__/skins/minimal-video/styles/video.css +29 -0
  30. package/dist/default/i18n/index.js +2 -1
  31. package/dist/default/i18n/text.js +20 -0
  32. package/dist/default/i18n/text.js.map +1 -0
  33. package/dist/default/icons/dist/react/default/airplay-exit.js +3 -3
  34. package/dist/default/icons/dist/react/default/airplay-exit.js.map +1 -1
  35. package/dist/default/icons/dist/react/minimal/airplay-exit.js +3 -3
  36. package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  37. package/dist/default/index.js +2 -1
  38. package/dist/default/media/hls-background-video/media.js +18 -3
  39. package/dist/default/media/hls-background-video/media.js.map +1 -1
  40. package/dist/default/presets/audio/minimal-skin.css +103 -101
  41. package/dist/default/presets/audio/minimal-skin.js +1 -1
  42. package/dist/default/presets/audio/minimal-skin.tailwind.js +1 -1
  43. package/dist/default/presets/audio/skin.css +68 -69
  44. package/dist/default/presets/audio/skin.js +1 -1
  45. package/dist/default/presets/audio/skin.tailwind.js +1 -1
  46. package/dist/default/presets/live-audio/minimal-skin.css +103 -101
  47. package/dist/default/presets/live-audio/skin.css +68 -69
  48. package/dist/default/presets/live-video/minimal-skin.css +140 -120
  49. package/dist/default/presets/live-video/minimal-skin.js +3 -8
  50. package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
  51. package/dist/default/presets/live-video/minimal-skin.tailwind.js +5 -8
  52. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  53. package/dist/default/presets/live-video/skin.css +89 -76
  54. package/dist/default/presets/live-video/skin.js +3 -8
  55. package/dist/default/presets/live-video/skin.js.map +1 -1
  56. package/dist/default/presets/live-video/skin.tailwind.js +7 -10
  57. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
  58. package/dist/default/presets/video/minimal-skin.css +140 -120
  59. package/dist/default/presets/video/minimal-skin.js +3 -8
  60. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  61. package/dist/default/presets/video/minimal-skin.tailwind.js +5 -8
  62. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  63. package/dist/default/presets/video/skin.css +89 -76
  64. package/dist/default/presets/video/skin.js +3 -8
  65. package/dist/default/presets/video/skin.js.map +1 -1
  66. package/dist/default/presets/video/skin.tailwind.js +6 -9
  67. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  68. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -1
  69. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  70. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +8 -1
  71. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  72. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +10 -10
  73. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  74. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  75. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  76. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
  77. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  78. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  79. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  80. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  81. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  82. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  83. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  84. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
  85. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  86. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  87. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  88. package/dist/default/ui/gesture/gesture.js.map +1 -1
  89. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
  90. package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
  91. package/dist/default/ui/hotkey/hotkey.js.map +1 -1
  92. package/dist/default/ui/menu/context.js +6 -1
  93. package/dist/default/ui/menu/context.js.map +1 -1
  94. package/dist/default/ui/menu/menu-item-indicator.js +3 -2
  95. package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
  96. package/dist/default/ui/menu/menu-radio-item.js +19 -15
  97. package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
  98. package/dist/default/ui/menu/menu-root.js +5 -6
  99. package/dist/default/ui/menu/menu-root.js.map +1 -1
  100. package/dist/default/ui/poster/poster.js +64 -17
  101. package/dist/default/ui/poster/poster.js.map +1 -1
  102. package/dist/default/ui/slider/slider-preview.js.map +1 -1
  103. package/dist/default/utils/use-render.js +2 -8
  104. package/dist/default/utils/use-render.js.map +1 -1
  105. package/dist/dev/__generated__/skins/default-video/styles/buttons.css +132 -18
  106. package/dist/dev/__generated__/skins/default-video/styles/captions.css +22 -0
  107. package/dist/dev/__generated__/skins/default-video/styles/container.css +121 -8
  108. package/dist/dev/__generated__/skins/default-video/styles/controls.css +436 -21
  109. package/dist/dev/__generated__/skins/default-video/styles/dialog.css +169 -0
  110. package/dist/dev/__generated__/skins/default-video/styles/indicator.css +459 -0
  111. package/dist/dev/__generated__/skins/default-video/styles/menus.css +254 -0
  112. package/dist/dev/__generated__/skins/default-video/styles/overlays.css +26 -2
  113. package/dist/dev/__generated__/skins/default-video/styles/popups.css +338 -12
  114. package/dist/dev/__generated__/skins/default-video/styles/poster.css +4 -4
  115. package/dist/dev/__generated__/skins/default-video/styles/sliders.css +355 -31
  116. package/dist/dev/__generated__/skins/default-video/styles/styles.css +2455 -216
  117. package/dist/dev/__generated__/skins/default-video/styles/theme.css +4 -19
  118. package/dist/dev/__generated__/skins/default-video/styles/video.css +29 -0
  119. package/dist/dev/__generated__/skins/minimal-video/styles/base.css +25 -0
  120. package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  121. package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +22 -0
  122. package/dist/dev/__generated__/skins/minimal-video/styles/container.css +158 -0
  123. package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +182 -0
  124. package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  125. package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  126. package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +254 -0
  127. package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  128. package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +371 -0
  129. package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +47 -0
  130. package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  131. package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  132. package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +7 -0
  133. package/dist/dev/__generated__/skins/minimal-video/styles/video.css +29 -0
  134. package/dist/dev/i18n/index.d.ts +2 -1
  135. package/dist/dev/i18n/index.js +2 -1
  136. package/dist/dev/i18n/text.d.ts +11 -0
  137. package/dist/dev/i18n/text.d.ts.map +1 -0
  138. package/dist/dev/i18n/text.js +20 -0
  139. package/dist/dev/i18n/text.js.map +1 -0
  140. package/dist/dev/icons/dist/react/default/airplay-exit.js +3 -3
  141. package/dist/dev/icons/dist/react/default/airplay-exit.js.map +1 -1
  142. package/dist/dev/icons/dist/react/minimal/airplay-exit.js +3 -3
  143. package/dist/dev/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  144. package/dist/dev/icons/index.d.ts +6 -1
  145. package/dist/dev/icons/index.d.ts.map +1 -0
  146. package/dist/dev/icons/minimal/index.d.ts +6 -1
  147. package/dist/dev/icons/minimal/index.d.ts.map +1 -0
  148. package/dist/dev/index.d.ts +3 -2
  149. package/dist/dev/index.js +2 -1
  150. package/dist/dev/media/hls-background-video/media.d.ts +8 -0
  151. package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
  152. package/dist/dev/media/hls-background-video/media.js +18 -3
  153. package/dist/dev/media/hls-background-video/media.js.map +1 -1
  154. package/dist/dev/presets/audio/minimal-skin.css +103 -101
  155. package/dist/dev/presets/audio/minimal-skin.js +1 -1
  156. package/dist/dev/presets/audio/minimal-skin.tailwind.js +1 -1
  157. package/dist/dev/presets/audio/player.d.ts +2 -2
  158. package/dist/dev/presets/audio/skin.css +68 -69
  159. package/dist/dev/presets/audio/skin.js +1 -1
  160. package/dist/dev/presets/audio/skin.tailwind.js +1 -1
  161. package/dist/dev/presets/live-audio/minimal-skin.css +103 -101
  162. package/dist/dev/presets/live-audio/player.d.ts +2 -2
  163. package/dist/dev/presets/live-audio/skin.css +68 -69
  164. package/dist/dev/presets/live-video/minimal-skin.css +140 -120
  165. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
  166. package/dist/dev/presets/live-video/minimal-skin.js +3 -8
  167. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
  168. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  169. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +5 -8
  170. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  171. package/dist/dev/presets/live-video/player.d.ts +2 -2
  172. package/dist/dev/presets/live-video/skin.css +89 -76
  173. package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
  174. package/dist/dev/presets/live-video/skin.js +3 -8
  175. package/dist/dev/presets/live-video/skin.js.map +1 -1
  176. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
  177. package/dist/dev/presets/live-video/skin.tailwind.js +7 -10
  178. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
  179. package/dist/dev/presets/types.d.ts +15 -2
  180. package/dist/dev/presets/types.d.ts.map +1 -1
  181. package/dist/dev/presets/video/minimal-skin.css +140 -120
  182. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  183. package/dist/dev/presets/video/minimal-skin.js +3 -8
  184. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  185. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  186. package/dist/dev/presets/video/minimal-skin.tailwind.js +5 -8
  187. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  188. package/dist/dev/presets/video/player.d.ts +2 -2
  189. package/dist/dev/presets/video/skin.css +89 -76
  190. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  191. package/dist/dev/presets/video/skin.js +3 -8
  192. package/dist/dev/presets/video/skin.js.map +1 -1
  193. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  194. package/dist/dev/presets/video/skin.tailwind.js +6 -9
  195. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  196. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +3 -1
  197. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  198. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +8 -1
  199. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  200. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +10 -10
  201. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  202. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  203. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  204. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
  205. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  206. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  207. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  208. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  209. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  210. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  211. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  212. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
  213. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  214. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  215. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  216. package/dist/dev/ui/gesture/gesture.d.ts +6 -13
  217. package/dist/dev/ui/gesture/gesture.d.ts.map +1 -1
  218. package/dist/dev/ui/gesture/gesture.js.map +1 -1
  219. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts +2 -5
  220. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
  221. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
  222. package/dist/dev/ui/gesture/use-tap-gesture.d.ts +2 -5
  223. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
  224. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
  225. package/dist/dev/ui/hotkey/hotkey.d.ts +6 -12
  226. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -1
  227. package/dist/dev/ui/hotkey/hotkey.js.map +1 -1
  228. package/dist/dev/ui/menu/context.js +6 -1
  229. package/dist/dev/ui/menu/context.js.map +1 -1
  230. package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
  231. package/dist/dev/ui/menu/menu-item-indicator.js +3 -2
  232. package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
  233. package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
  234. package/dist/dev/ui/menu/menu-radio-item.js +19 -15
  235. package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
  236. package/dist/dev/ui/menu/menu-root.js +5 -6
  237. package/dist/dev/ui/menu/menu-root.js.map +1 -1
  238. package/dist/dev/ui/poster/poster.d.ts +15 -4
  239. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  240. package/dist/dev/ui/poster/poster.js +64 -17
  241. package/dist/dev/ui/poster/poster.js.map +1 -1
  242. package/dist/dev/ui/slider/slider-preview.d.ts +5 -9
  243. package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
  244. package/dist/dev/ui/slider/slider-preview.js.map +1 -1
  245. package/dist/dev/utils/use-render.d.ts.map +1 -1
  246. package/dist/dev/utils/use-render.js +2 -8
  247. package/dist/dev/utils/use-render.js.map +1 -1
  248. package/docs/README.md +1 -1
  249. package/docs/concepts/skins.md +97 -96
  250. package/docs/how-to/customize-skins.md +421 -411
  251. package/docs/reference/create-player.md +2 -2
  252. package/docs/reference/menu.md +6 -18
  253. package/docs/reference/popover.md +6 -6
  254. package/docs/reference/poster.md +187 -13
  255. package/docs/reference/slider.md +1 -1
  256. package/docs/reference/time-slider.md +1 -1
  257. package/docs/reference/tooltip.md +10 -10
  258. package/docs/reference/volume-slider.md +1 -1
  259. package/package.json +13 -8
@@ -0,0 +1,459 @@
1
+ @layer videojs.components {
2
+ @scope (.media-skin-video) {
3
+ .media-buffering-indicator {
4
+ pointer-events: none;
5
+ inset: calc(var(--media-spacing) * 0);
6
+ z-index: 10;
7
+ color: #fff;
8
+ place-content: center;
9
+ display: none;
10
+ position: absolute;
11
+ }
12
+
13
+ .media-buffering-indicator:not([data-visible]) {
14
+ --media-spinner-animation: none;
15
+ }
16
+
17
+ .media-buffering-indicator[data-visible] {
18
+ display: grid;
19
+ }
20
+
21
+ .media-buffering-spinner-icon {
22
+ width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
23
+ height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
24
+ filter: drop-shadow(0 1px #00000026);
25
+ }
26
+
27
+ .media-playback-status-icon {
28
+ width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
29
+ height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
30
+ display: none;
31
+ }
32
+
33
+ .media-playback-status-indicator {
34
+ border-radius: var(--media-control-radius);
35
+ padding: calc(var(--media-spacing) * 4);
36
+ text-align: center;
37
+ backdrop-filter: blur(8px);
38
+ background-color: oklab(0% none none / 0.35);
39
+ grid-row-start: 1;
40
+ grid-column-start: 2;
41
+ place-content: center;
42
+ transition-property: opacity, scale;
43
+ transition-duration: 0.2s;
44
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
45
+ display: grid;
46
+ }
47
+
48
+ .media-playback-status-indicator[data-ending-style] {
49
+ opacity: 0;
50
+ transition-duration: 0.1s;
51
+ scale: 0.85;
52
+ }
53
+
54
+ .media-playback-status-indicator[data-starting-style] {
55
+ opacity: 0;
56
+ scale: 0.85;
57
+ }
58
+
59
+ @media (prefers-reduced-motion: reduce) {
60
+ .media-playback-status-indicator,
61
+ .media-playback-status-indicator[data-ending-style],
62
+ .media-seek-indicator-icon,
63
+ .media-status-indicator,
64
+ .media-volume-indicator,
65
+ .media-volume-indicator-fill {
66
+ transition-duration: 50ms;
67
+ }
68
+ }
69
+
70
+ .media-seek-indicator {
71
+ place-content: center;
72
+ gap: calc(var(--media-spacing) * 1);
73
+ padding: calc(var(--media-spacing) * 4);
74
+ text-align: center;
75
+ grid-row-start: 1;
76
+ grid-column-start: 2;
77
+ display: grid;
78
+ }
79
+
80
+ .media-seek-indicator[data-direction='backward'] {
81
+ grid-column-start: 1;
82
+ justify-self: flex-start;
83
+ }
84
+
85
+ .media-seek-indicator[data-direction='forward'] {
86
+ grid-column-start: 3;
87
+ justify-self: flex-end;
88
+ }
89
+
90
+ .media-seek-indicator-icon {
91
+ width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
92
+ height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
93
+ transition-property: translate, opacity;
94
+ transition-duration: 0.2s;
95
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
96
+ display: none;
97
+ }
98
+
99
+ @scope (.media-seek-indicator) {
100
+ &[data-direction] .media-seek-indicator-icon {
101
+ display: block;
102
+ }
103
+ }
104
+
105
+ @scope (.media-seek-indicator) {
106
+ &[data-ending-style] .media-seek-indicator-icon,
107
+ &[data-starting-style] .media-seek-indicator-icon {
108
+ opacity: 0;
109
+ }
110
+ }
111
+
112
+ @scope (.media-seek-indicator) {
113
+ &[data-direction='backward'] .media-seek-indicator-icon {
114
+ scale: -1 1;
115
+ }
116
+ }
117
+
118
+ .media-seek-indicator-value {
119
+ font-variant-numeric: tabular-nums;
120
+ }
121
+
122
+ .media-status-announcer {
123
+ clip-path: inset(50%);
124
+ white-space: nowrap;
125
+ border-width: 0;
126
+ width: 1px;
127
+ height: 1px;
128
+ margin: -1px;
129
+ padding: 0;
130
+ position: absolute;
131
+ overflow: hidden;
132
+ }
133
+
134
+ @scope (.media-status-indicator) {
135
+ &[data-status='captions-off'] .media-status-captions-off-icon,
136
+ &[data-status='captions-on'] .media-status-captions-on-icon,
137
+ &[data-status='fullscreen'] .media-status-fullscreen-enter-icon,
138
+ &[data-status='exit-fullscreen'] .media-status-fullscreen-exit-icon {
139
+ display: block;
140
+ }
141
+ }
142
+
143
+ .media-status-indicator {
144
+ pointer-events: none;
145
+ top: calc(var(--media-spacing) * 3);
146
+ align-items: center;
147
+ gap: calc(var(--media-spacing) * 2);
148
+ border-radius: var(--media-control-radius);
149
+ padding-inline: calc(var(--media-spacing) * 2.5);
150
+ padding-block: calc(var(--media-spacing) * 1);
151
+ color: #fff;
152
+ backdrop-filter: blur(16px) saturate(150%);
153
+ background-color: oklab(0% none none / 0.25);
154
+ font-weight: 500;
155
+ transition-property: opacity, scale, translate;
156
+ transition-duration: 0.1s;
157
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
158
+ display: flex;
159
+ position: absolute;
160
+ box-shadow:
161
+ 0 0 #0000,
162
+ 0 0 #0000,
163
+ 0 0 #0000,
164
+ 0 0 0 1px oklab(0% none none / 0.1),
165
+ 0 1px 3px oklab(0% none none / 0.15),
166
+ 0 1px 2px -1px oklab(0% none none / 0.15);
167
+ }
168
+
169
+ .media-status-indicator:after {
170
+ pointer-events: none;
171
+ inset: calc(var(--media-spacing) * 0);
172
+ z-index: 10;
173
+ border-radius: inherit;
174
+ content: '';
175
+ position: absolute;
176
+ box-shadow:
177
+ 0 0 #0000,
178
+ 0 0 #0000,
179
+ 0 0 #0000,
180
+ 0 0 #0000,
181
+ inset 0 1px #ffffff1a,
182
+ inset 0 0 0 1px #ffffff0d;
183
+ }
184
+
185
+ .media-status-indicator[data-ending-style] {
186
+ opacity: 0;
187
+ translate: 0 -25%;
188
+ scale: 0.9;
189
+ }
190
+
191
+ .media-status-indicator[data-starting-style] {
192
+ opacity: 0;
193
+ scale: 0.9;
194
+ }
195
+
196
+ @media (prefers-contrast: more) {
197
+ .media-status-indicator {
198
+ backdrop-filter: none;
199
+ background-color: #000;
200
+ box-shadow:
201
+ 0 0 #0000,
202
+ 0 0 #0000,
203
+ 0 0 #0000,
204
+ 0 0 0 1px #0000,
205
+ 0 1px 3px #00000026,
206
+ 0 1px 2px -1px #00000026;
207
+ }
208
+
209
+ .media-status-indicator:after {
210
+ content: '';
211
+ box-shadow:
212
+ 0 0 #0000,
213
+ 0 0 #0000,
214
+ 0 0 #0000,
215
+ 0 0 #0000,
216
+ inset 0 1px #ffffff40,
217
+ inset 0 0 0 1px #ffffff20;
218
+ }
219
+
220
+ .media-volume-indicator {
221
+ backdrop-filter: none;
222
+ background-color: #000;
223
+ box-shadow:
224
+ 0 0 #0000,
225
+ 0 0 #0000,
226
+ 0 0 #0000,
227
+ 0 0 0 1px #0000,
228
+ 0 1px 3px #00000026,
229
+ 0 1px 2px -1px #00000026;
230
+ }
231
+
232
+ .media-volume-indicator:after {
233
+ content: '';
234
+ box-shadow:
235
+ 0 0 #0000,
236
+ 0 0 #0000,
237
+ 0 0 #0000,
238
+ 0 0 #0000,
239
+ inset 0 1px #ffffff40,
240
+ inset 0 0 0 1px #ffffff20;
241
+ }
242
+ }
243
+
244
+ @media (forced-colors: active) {
245
+ .media-status-indicator {
246
+ background-color: canvas;
247
+ box-shadow:
248
+ 0 0 #0000,
249
+ 0 0 #0000,
250
+ 0 0 #0000,
251
+ 0 0 0 1px canvastext,
252
+ 0 1px 3px #00000026,
253
+ 0 1px 2px -1px #00000026;
254
+ }
255
+
256
+ .media-status-indicator:after {
257
+ content: '';
258
+ box-shadow:
259
+ 0 0 #0000,
260
+ 0 0 #0000,
261
+ 0 0 #0000,
262
+ 0 0 #0000,
263
+ inset 0 1px canvastext,
264
+ inset 0 0 0 1px canvastext;
265
+ }
266
+
267
+ .media-volume-indicator {
268
+ background-color: canvas;
269
+ box-shadow:
270
+ 0 0 #0000,
271
+ 0 0 #0000,
272
+ 0 0 #0000,
273
+ 0 0 0 1px canvastext,
274
+ 0 1px 3px #00000026,
275
+ 0 1px 2px -1px #00000026;
276
+ }
277
+
278
+ .media-volume-indicator:after {
279
+ content: '';
280
+ box-shadow:
281
+ 0 0 #0000,
282
+ 0 0 #0000,
283
+ 0 0 #0000,
284
+ 0 0 #0000,
285
+ inset 0 1px canvastext,
286
+ inset 0 0 0 1px canvastext;
287
+ }
288
+ }
289
+
290
+ @media (prefers-reduced-transparency: reduce) {
291
+ .media-status-indicator {
292
+ backdrop-filter: none;
293
+ background-color: #000;
294
+ box-shadow:
295
+ 0 0 #0000,
296
+ 0 0 #0000,
297
+ 0 0 #0000,
298
+ 0 0 0 1px #0000,
299
+ 0 1px 3px #00000026,
300
+ 0 1px 2px -1px #00000026;
301
+ }
302
+
303
+ .media-status-indicator:after {
304
+ content: '';
305
+ box-shadow:
306
+ 0 0 #0000,
307
+ 0 0 #0000,
308
+ 0 0 #0000,
309
+ 0 0 #0000,
310
+ inset 0 1px #ffffff40,
311
+ inset 0 0 0 1px #ffffff20;
312
+ }
313
+
314
+ .media-volume-indicator {
315
+ backdrop-filter: none;
316
+ background-color: #000;
317
+ box-shadow:
318
+ 0 0 #0000,
319
+ 0 0 #0000,
320
+ 0 0 #0000,
321
+ 0 0 0 1px #0000,
322
+ 0 1px 3px #00000026,
323
+ 0 1px 2px -1px #00000026;
324
+ }
325
+
326
+ .media-volume-indicator:after {
327
+ content: '';
328
+ box-shadow:
329
+ 0 0 #0000,
330
+ 0 0 #0000,
331
+ 0 0 #0000,
332
+ 0 0 #0000,
333
+ inset 0 1px #ffffff40,
334
+ inset 0 0 0 1px #ffffff20;
335
+ }
336
+ }
337
+
338
+ .media-status-indicator-icon {
339
+ flex-shrink: 0;
340
+ display: none;
341
+ }
342
+
343
+ .media-status-indicator-overlay {
344
+ pointer-events: none;
345
+ inset: calc(var(--media-spacing) * 0);
346
+ color: #fff;
347
+ grid-template-columns: repeat(3, minmax(0, 1fr));
348
+ place-items: center;
349
+ display: grid;
350
+ position: absolute;
351
+ }
352
+
353
+ .media-status-indicator-value {
354
+ margin-left: auto;
355
+ }
356
+
357
+ :where(.media-playback-status-indicator)[data-status='pause'] .media-status-pause-icon,
358
+ :where(.media-status-indicator)[data-status='pip'] .media-status-pip-enter-icon,
359
+ :where(.media-status-indicator)[data-status='exit-pip'] .media-status-pip-exit-icon {
360
+ display: block;
361
+ }
362
+
363
+ @scope (.media-playback-status-indicator) {
364
+ &[data-status='play'] .media-status-play-icon {
365
+ display: block;
366
+ translate: 1px;
367
+ }
368
+ }
369
+
370
+ @scope (.media-volume-indicator) {
371
+ &[data-level='high'] .media-volume-high-indicator-icon {
372
+ display: block;
373
+ }
374
+ }
375
+
376
+ .media-volume-indicator {
377
+ pointer-events: none;
378
+ top: calc(var(--media-spacing) * 3);
379
+ border-radius: var(--media-control-radius);
380
+ color: #fff;
381
+ backdrop-filter: blur(16px) saturate(150%);
382
+ background-color: oklab(0% none none / 0.25);
383
+ width: min(80%, 12rem);
384
+ font-weight: 500;
385
+ transition-property: opacity, scale, translate;
386
+ transition-duration: 0.1s;
387
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
388
+ position: absolute;
389
+ box-shadow:
390
+ 0 0 #0000,
391
+ 0 0 #0000,
392
+ 0 0 #0000,
393
+ 0 0 0 1px oklab(0% none none / 0.1),
394
+ 0 1px 3px oklab(0% none none / 0.15),
395
+ 0 1px 2px -1px oklab(0% none none / 0.15);
396
+ }
397
+
398
+ .media-volume-indicator:after {
399
+ pointer-events: none;
400
+ inset: calc(var(--media-spacing) * 0);
401
+ z-index: 10;
402
+ border-radius: inherit;
403
+ content: '';
404
+ position: absolute;
405
+ box-shadow:
406
+ 0 0 #0000,
407
+ 0 0 #0000,
408
+ 0 0 #0000,
409
+ 0 0 #0000,
410
+ inset 0 1px #ffffff1a,
411
+ inset 0 0 0 1px #ffffff0d;
412
+ }
413
+
414
+ .media-volume-indicator[data-ending-style] {
415
+ opacity: 0;
416
+ translate: 0 -25%;
417
+ scale: 0.9;
418
+ }
419
+
420
+ .media-volume-indicator[data-starting-style] {
421
+ opacity: 0;
422
+ scale: 0.9;
423
+ }
424
+
425
+ .media-volume-indicator-fill {
426
+ justify-content: space-between;
427
+ align-items: center;
428
+ gap: calc(var(--media-spacing) * 2);
429
+ border-radius: inherit;
430
+ background-image: linear-gradient(var(--media-accent-color, white), var(--media-accent-color, white));
431
+ background-size: var(--media-volume-fill, 0%) 100%;
432
+ width: 100%;
433
+ padding-inline: calc(var(--media-spacing) * 2.5);
434
+ padding-block: calc(var(--media-spacing) * 1);
435
+ background-position: 0;
436
+ background-repeat: no-repeat;
437
+ transition-property: background-size;
438
+ transition-duration: 0.2s;
439
+ transition-timing-function: linear;
440
+ display: flex;
441
+ }
442
+
443
+ .media-volume-indicator-icon {
444
+ flex-shrink: 0;
445
+ display: none;
446
+ }
447
+
448
+ .media-volume-indicator-value {
449
+ margin-left: auto;
450
+ }
451
+
452
+ @scope (.media-volume-indicator) {
453
+ &[data-level='low'] .media-volume-low-indicator-icon,
454
+ &[data-level='off'] .media-volume-off-indicator-icon {
455
+ display: block;
456
+ }
457
+ }
458
+ }
459
+ }
@@ -0,0 +1,254 @@
1
+ @layer videojs.components {
2
+ @scope (.media-skin-video) {
3
+ .media-back {
4
+ margin-bottom: calc(var(--media-spacing) * 0.5);
5
+ width: 100%;
6
+ }
7
+
8
+ .media-badge {
9
+ border-radius: var(--media-control-radius);
10
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
11
+ padding-inline: calc(var(--media-spacing) * 1.5);
12
+ font-size: 0.7em;
13
+ font-weight: 600;
14
+ }
15
+
16
+ .media-chevron {
17
+ width: calc(var(--media-spacing) * 3.5);
18
+ height: calc(var(--media-spacing) * 3.5);
19
+ }
20
+
21
+ .media-chevron-flipped {
22
+ rotate: 180deg;
23
+ }
24
+
25
+ .media-hint {
26
+ min-width: calc(var(--media-spacing) * 0);
27
+ align-items: center;
28
+ gap: calc(var(--media-spacing) * 1);
29
+ padding-left: calc(var(--media-spacing) * 2);
30
+ opacity: 0.7;
31
+ margin-left: auto;
32
+ display: inline-flex;
33
+ }
34
+
35
+ .media-hint-label {
36
+ max-width: calc(var(--media-spacing) * 24);
37
+ text-overflow: ellipsis;
38
+ white-space: nowrap;
39
+ overflow: hidden;
40
+ }
41
+
42
+ .media-icon {
43
+ width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
44
+ height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
45
+ opacity: 0.7;
46
+ filter: drop-shadow(0 1px #00000026);
47
+ flex-shrink: 0;
48
+ }
49
+
50
+ @media (hover: hover) {
51
+ @scope (.media-menu-item) {
52
+ &:hover .media-icon {
53
+ opacity: 1;
54
+ }
55
+ }
56
+
57
+ .media-menu-item:hover {
58
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
59
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
60
+ }
61
+ }
62
+
63
+ .media-indicator {
64
+ margin-right: calc(var(--media-spacing) * -1);
65
+ opacity: 0;
66
+ flex-shrink: 0;
67
+ margin-left: auto;
68
+ }
69
+
70
+ @scope (.media-menu-item) {
71
+ &[aria-checked='true'] .media-indicator {
72
+ opacity: 1;
73
+ }
74
+ }
75
+
76
+ .media-item {
77
+ color: inherit;
78
+ font-variant-numeric: tabular-nums;
79
+ justify-content: space-between;
80
+ }
81
+
82
+ .media-item[aria-disabled='true'] {
83
+ pointer-events: none;
84
+ cursor: not-allowed;
85
+ opacity: 0.5;
86
+ }
87
+
88
+ .media-item[data-availability='unavailable'],
89
+ .media-item[data-availability='unsupported'] {
90
+ display: none;
91
+ }
92
+
93
+ .media-menu-group {
94
+ gap: calc(var(--media-spacing) * 0.5);
95
+ anchor-scope: --media-menu-item-highlight-anchor;
96
+ flex-direction: column;
97
+ display: flex;
98
+ position: relative;
99
+ }
100
+
101
+ .media-menu-item {
102
+ cursor: pointer;
103
+ align-items: center;
104
+ gap: calc(var(--media-spacing) * 1.5);
105
+ border-radius: var(--media-surface-radius);
106
+ padding-inline: calc(var(--media-spacing) * 2);
107
+ padding-block: calc(var(--media-spacing) * 1.5);
108
+ text-align: left;
109
+ outline-offset: -2px;
110
+ -webkit-user-select: none;
111
+ user-select: none;
112
+ outline: 2px solid #0000;
113
+ transition-property: color, background-color;
114
+ transition-duration: 0.1s;
115
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
116
+ display: flex;
117
+ position: relative;
118
+ }
119
+
120
+ .media-menu-item:focus-visible {
121
+ outline-offset: 2px;
122
+ outline-color: currentColor;
123
+ }
124
+
125
+ .media-menu-item[data-highlighted] {
126
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
127
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
128
+ }
129
+
130
+ @media (prefers-reduced-motion: reduce) {
131
+ .media-menu-item {
132
+ transition-duration: 50ms;
133
+ }
134
+
135
+ .media-settings {
136
+ transition-duration: 0s, 0s, 0s, 0s, 0.25s, 0.25s;
137
+ }
138
+
139
+ .media-settings-icon {
140
+ transition-duration: 0s;
141
+ }
142
+ }
143
+
144
+ .media-radio-group {
145
+ gap: calc(var(--media-spacing) * 0.5);
146
+ anchor-scope: --media-menu-item-highlight-anchor;
147
+ flex-direction: column;
148
+ display: flex;
149
+ position: relative;
150
+ }
151
+
152
+ .media-separator {
153
+ margin-block: calc(var(--media-spacing) * 1);
154
+ border-color: oklab(100% 0 5.96046e-8 / 0.1);
155
+ border-bottom-style: solid;
156
+ border-bottom-width: 1px;
157
+ }
158
+
159
+ @media (prefers-contrast: more) {
160
+ .media-separator {
161
+ border-color: oklab(100% 0 5.96046e-8 / 0.25);
162
+ }
163
+ }
164
+
165
+ @media (forced-colors: active) {
166
+ .media-separator {
167
+ border-color: canvastext;
168
+ }
169
+ }
170
+
171
+ @media (prefers-reduced-transparency: reduce) {
172
+ .media-separator {
173
+ border-color: oklab(100% 0 5.96046e-8 / 0.25);
174
+ }
175
+ }
176
+
177
+ .media-settings {
178
+ margin: calc(var(--media-spacing) * 0);
179
+ height: var(--media-menu-height);
180
+ max-height: min(var(--media-popover-available-height, 14rem), 14rem);
181
+ width: var(--media-menu-width);
182
+ max-width: var(--media-popover-available-width);
183
+ min-width: calc(var(--media-spacing) * 48);
184
+ overscroll-behavior: none;
185
+ padding: calc(var(--media-spacing) * 1);
186
+ border-style: solid;
187
+ border-width: 0;
188
+ border-radius: 0.75rem;
189
+ transition-property: opacity, filter, transform, scale, width, height;
190
+ transition-duration: 0.1s, 0.1s, 0.1s, 0.1s, 0.25s, 0.25s;
191
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
192
+ overflow: hidden;
193
+ }
194
+
195
+ .media-settings[data-submenu-expanded='true'] > :not([data-submenu]) {
196
+ filter: blur(8px);
197
+ translate: -100%;
198
+ }
199
+
200
+ .media-settings-icon {
201
+ transition-property: transform, translate, scale, rotate;
202
+ transition-duration: 0.15s;
203
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
204
+ }
205
+
206
+ @scope (.media-settings-trigger) {
207
+ &[aria-expanded='true'] .media-settings-icon {
208
+ rotate: 90deg;
209
+ }
210
+ }
211
+
212
+ .media-sr-only {
213
+ clip-path: inset(50%);
214
+ white-space: nowrap;
215
+ border-width: 0;
216
+ width: 1px;
217
+ height: 1px;
218
+ margin: -1px;
219
+ padding: 0;
220
+ position: absolute;
221
+ overflow: hidden;
222
+ }
223
+
224
+ .media-submenu-panel {
225
+ inset-inline: calc(var(--media-spacing) * 0);
226
+ top: calc(var(--media-spacing) * 0);
227
+ z-index: 10;
228
+ max-height: inherit;
229
+ overscroll-behavior: none;
230
+ padding: calc(var(--media-spacing) * 1);
231
+ outline-style: none;
232
+ transition-property: translate, filter;
233
+ transition-duration: 0.25s;
234
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
235
+ position: absolute;
236
+ overflow: auto;
237
+ }
238
+
239
+ .media-submenu-panel[data-ending-style],
240
+ .media-submenu-panel[data-starting-style] {
241
+ pointer-events: none;
242
+ filter: blur(8px);
243
+ translate: 100%;
244
+ }
245
+
246
+ .media-tier {
247
+ padding-left: calc(var(--media-spacing) * 0.5);
248
+ opacity: 0.7;
249
+ font-size: 0.7em;
250
+ font-weight: 600;
251
+ line-height: 1;
252
+ }
253
+ }
254
+ }