@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,77 @@
1
+ @layer videojs.components {
2
+ @scope (.media-skin-video-minimal) {
3
+ .media-error-dialog {
4
+ pointer-events: none;
5
+ inset: calc(var(--media-spacing) * 0);
6
+ z-index: 20;
7
+ justify-content: center;
8
+ align-items: center;
9
+ gap: calc(var(--media-spacing) * 3);
10
+ width: 100%;
11
+ height: 100%;
12
+ padding: calc(var(--media-spacing) * 4);
13
+ color: #fff;
14
+ outline-style: none;
15
+ flex-direction: column;
16
+ transition:
17
+ opacity 0.15s cubic-bezier(0, 0, 0.2, 1) 0.1s,
18
+ scale 0.15s cubic-bezier(0, 0, 0.2, 1) 0.1s,
19
+ transform 0.15s cubic-bezier(0, 0, 0.2, 1) 0.1s;
20
+ display: flex;
21
+ position: absolute;
22
+ }
23
+
24
+ .media-error-dialog:not([data-open]) {
25
+ display: none;
26
+ }
27
+
28
+ .media-error-dialog[data-ending-style] {
29
+ opacity: 0;
30
+ transition-delay: 0s;
31
+ scale: 0.5;
32
+ }
33
+
34
+ .media-error-dialog[data-starting-style] {
35
+ opacity: 0;
36
+ scale: 0.5;
37
+ }
38
+
39
+ @media (prefers-reduced-motion: reduce) {
40
+ .media-error-dialog {
41
+ transition-duration: 50ms;
42
+ transition-delay: 0s;
43
+ }
44
+ }
45
+
46
+ .media-error-dialog > * {
47
+ pointer-events: auto;
48
+ }
49
+
50
+ .media-error-dialog-close {
51
+ height: calc(var(--media-spacing) * 9);
52
+ width: 100%;
53
+ max-width: calc(var(--media-spacing) * 64);
54
+ background-color: var(--media-accent-color, oklch(100% 0 0));
55
+ padding-inline: calc(var(--media-spacing) * 4);
56
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
57
+ font-weight: 500;
58
+ }
59
+
60
+ .media-error-dialog-description {
61
+ width: 100%;
62
+ max-width: calc(var(--media-spacing) * 64);
63
+ padding-bottom: calc(var(--media-spacing) * 1.5);
64
+ overflow-wrap: anywhere;
65
+ opacity: 0.7;
66
+ }
67
+
68
+ .media-error-dialog-title {
69
+ width: 100%;
70
+ max-width: calc(var(--media-spacing) * 64);
71
+ padding-top: calc(var(--media-spacing) * 1.5);
72
+ color: calc(var(--media-spacing) * 3.75);
73
+ font-weight: 600;
74
+ line-height: 1.25;
75
+ }
76
+ }
77
+ }
@@ -0,0 +1,322 @@
1
+ @layer videojs.components {
2
+ @scope (.media-skin-video-minimal) {
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 #0003);
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
+ padding: calc(var(--media-spacing) * 4);
35
+ text-align: center;
36
+ grid-row-start: 1;
37
+ grid-column-start: 2;
38
+ place-content: center;
39
+ transition-property: opacity, scale;
40
+ transition-duration: 0.2s;
41
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
42
+ display: grid;
43
+ }
44
+
45
+ .media-playback-status-indicator[data-ending-style] {
46
+ opacity: 0;
47
+ transition-duration: 0.1s;
48
+ scale: 0.85;
49
+ }
50
+
51
+ .media-playback-status-indicator[data-starting-style] {
52
+ opacity: 0;
53
+ scale: 0.85;
54
+ }
55
+
56
+ @media (prefers-reduced-motion: reduce) {
57
+ .media-playback-status-indicator,
58
+ .media-playback-status-indicator[data-ending-style],
59
+ .media-seek-indicator-icon,
60
+ .media-status-indicator,
61
+ .media-volume-indicator,
62
+ .media-volume-indicator-fill {
63
+ transition-duration: 50ms;
64
+ }
65
+ }
66
+
67
+ .media-seek-indicator {
68
+ place-content: center;
69
+ gap: calc(var(--media-spacing) * 1);
70
+ padding: calc(var(--media-spacing) * 4);
71
+ text-align: center;
72
+ grid-row-start: 1;
73
+ grid-column-start: 2;
74
+ display: grid;
75
+ }
76
+
77
+ .media-seek-indicator[data-direction='backward'] {
78
+ grid-column-start: 1;
79
+ justify-self: flex-start;
80
+ }
81
+
82
+ .media-seek-indicator[data-direction='forward'] {
83
+ grid-column-start: 3;
84
+ justify-self: flex-end;
85
+ }
86
+
87
+ .media-seek-indicator-icon {
88
+ width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
89
+ height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
90
+ transition-property: translate, opacity;
91
+ transition-duration: 0.2s;
92
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
93
+ display: none;
94
+ }
95
+
96
+ @scope (.media-seek-indicator) {
97
+ &[data-direction] .media-seek-indicator-icon {
98
+ display: block;
99
+ }
100
+ }
101
+
102
+ @scope (.media-seek-indicator) {
103
+ &[data-ending-style] .media-seek-indicator-icon,
104
+ &[data-starting-style] .media-seek-indicator-icon {
105
+ opacity: 0;
106
+ }
107
+ }
108
+
109
+ @scope (.media-seek-indicator) {
110
+ &[data-direction='backward'] .media-seek-indicator-icon {
111
+ scale: -1 1;
112
+ }
113
+ }
114
+
115
+ .media-seek-indicator-value {
116
+ font-variant-numeric: tabular-nums;
117
+ }
118
+
119
+ .media-status-announcer {
120
+ clip-path: inset(50%);
121
+ white-space: nowrap;
122
+ border-width: 0;
123
+ width: 1px;
124
+ height: 1px;
125
+ margin: -1px;
126
+ padding: 0;
127
+ position: absolute;
128
+ overflow: hidden;
129
+ }
130
+
131
+ @scope (.media-status-indicator) {
132
+ &[data-status='captions-off'] .media-status-captions-off-icon,
133
+ &[data-status='captions-on'] .media-status-captions-on-icon,
134
+ &[data-status='fullscreen'] .media-status-fullscreen-enter-icon,
135
+ &[data-status='exit-fullscreen'] .media-status-fullscreen-exit-icon {
136
+ display: block;
137
+ }
138
+ }
139
+
140
+ .media-status-indicator {
141
+ pointer-events: none;
142
+ inset-inline: calc(var(--media-spacing) * 0);
143
+ top: calc(var(--media-spacing) * 0);
144
+ justify-content: center;
145
+ align-items: center;
146
+ gap: calc(var(--media-spacing) * 2);
147
+ background-image: linear-gradient(
148
+ to bottom,
149
+ oklch(0% 0 0 / 0.35),
150
+ oklch(0% 0 0 / 0.2) calc(var(--media-spacing) * 12),
151
+ transparent
152
+ );
153
+ width: 100%;
154
+ padding-inline: calc(var(--media-spacing) * 2.5);
155
+ padding-top: calc(var(--media-spacing) * 3);
156
+ padding-bottom: calc(var(--media-spacing) * 32);
157
+ font-weight: 500;
158
+ transition-property: opacity, scale, translate;
159
+ transition-duration: 0.1s;
160
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
161
+ display: flex;
162
+ position: absolute;
163
+ }
164
+
165
+ .media-status-indicator[data-ending-style],
166
+ .media-status-indicator[data-starting-style] {
167
+ opacity: 0;
168
+ scale: 1;
169
+ }
170
+
171
+ @media (prefers-reduced-motion: no-preference) {
172
+ .media-status-indicator[data-ending-style],
173
+ .media-volume-indicator[data-ending-style] {
174
+ translate: 0 -100%;
175
+ }
176
+ }
177
+
178
+ .media-status-indicator-icon {
179
+ flex-shrink: 0;
180
+ display: none;
181
+ }
182
+
183
+ .media-status-indicator-overlay {
184
+ pointer-events: none;
185
+ inset: calc(var(--media-spacing) * 0);
186
+ color: #fff;
187
+ grid-template-columns: repeat(3, minmax(0, 1fr));
188
+ place-items: center;
189
+ display: grid;
190
+ position: absolute;
191
+ }
192
+
193
+ .media-status-indicator-value {
194
+ margin-left: auto;
195
+ }
196
+
197
+ :where(.media-playback-status-indicator)[data-status='pause'] .media-status-pause-icon,
198
+ :where(.media-status-indicator)[data-status='pip'] .media-status-pip-enter-icon,
199
+ :where(.media-status-indicator)[data-status='exit-pip'] .media-status-pip-exit-icon {
200
+ display: block;
201
+ }
202
+
203
+ @scope (.media-playback-status-indicator) {
204
+ &[data-status='play'] .media-status-play-icon {
205
+ display: block;
206
+ translate: 1px;
207
+ }
208
+ }
209
+
210
+ @scope (.media-volume-indicator) {
211
+ &[data-level='high'] .media-volume-high-indicator-icon {
212
+ display: block;
213
+ }
214
+ }
215
+
216
+ .media-volume-indicator {
217
+ pointer-events: none;
218
+ inset-inline: calc(var(--media-spacing) * 0);
219
+ top: calc(var(--media-spacing) * 0);
220
+ background-image: linear-gradient(
221
+ to bottom,
222
+ oklch(0% 0 0 / 0.35),
223
+ oklch(0% 0 0 / 0.2) calc(var(--media-spacing) * 12),
224
+ transparent
225
+ );
226
+ width: 100%;
227
+ padding-inline: calc(var(--media-spacing) * 2.5);
228
+ padding-top: calc(var(--media-spacing) * 3);
229
+ padding-bottom: calc(var(--media-spacing) * 32);
230
+ justify-content: center;
231
+ font-weight: 500;
232
+ transition-property: opacity, scale, translate;
233
+ transition-duration: 0.1s;
234
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
235
+ position: absolute;
236
+ }
237
+
238
+ .media-volume-indicator[data-ending-style],
239
+ .media-volume-indicator[data-starting-style] {
240
+ opacity: 0;
241
+ scale: 1;
242
+ }
243
+
244
+ .media-volume-indicator-fill {
245
+ justify-content: space-between;
246
+ align-items: center;
247
+ gap: calc(var(--media-spacing) * 2);
248
+ border-radius: inherit;
249
+ background-color: oklab(0% none none / 0.25);
250
+ background-image: linear-gradient(var(--media-accent-color, white), var(--media-accent-color, white));
251
+ background-size: var(--media-volume-fill, 0%) 100%;
252
+ width: min(80%, 14rem);
253
+ padding-inline: calc(var(--media-spacing) * 2.5);
254
+ padding-block: calc(var(--media-spacing) * 1);
255
+ background-position: 0;
256
+ background-repeat: no-repeat;
257
+ transition-property: background-size;
258
+ transition-duration: 0.2s;
259
+ transition-timing-function: linear;
260
+ display: flex;
261
+ box-shadow:
262
+ 0 0 #0000,
263
+ 0 0 #0000,
264
+ 0 0 #0000,
265
+ 0 0 0 1px oklab(100% 0 5.96046e-8 / 0.1),
266
+ 0 1px 3px oklab(0% none none / 0.2),
267
+ 0 1px 2px -1px oklab(0% none none / 0.2);
268
+ }
269
+
270
+ @media (prefers-contrast: more) {
271
+ .media-volume-indicator-fill {
272
+ box-shadow:
273
+ 0 0 #0000,
274
+ 0 0 #0000,
275
+ 0 0 #0000,
276
+ 0 0 #0000,
277
+ 0 1px 3px #0003,
278
+ 0 1px 2px -1px #0003;
279
+ }
280
+ }
281
+
282
+ @media (forced-colors: active) {
283
+ .media-volume-indicator-fill {
284
+ box-shadow:
285
+ 0 0 #0000,
286
+ 0 0 #0000,
287
+ 0 0 #0000,
288
+ 0 0 #0000,
289
+ 0 1px 3px #0003,
290
+ 0 1px 2px -1px #0003;
291
+ }
292
+ }
293
+
294
+ @media (prefers-reduced-transparency: reduce) {
295
+ .media-volume-indicator-fill {
296
+ box-shadow:
297
+ 0 0 #0000,
298
+ 0 0 #0000,
299
+ 0 0 #0000,
300
+ 0 0 #0000,
301
+ 0 1px 3px #0003,
302
+ 0 1px 2px -1px #0003;
303
+ }
304
+ }
305
+
306
+ .media-volume-indicator-icon {
307
+ flex-shrink: 0;
308
+ display: none;
309
+ }
310
+
311
+ .media-volume-indicator-value {
312
+ margin-left: auto;
313
+ }
314
+
315
+ @scope (.media-volume-indicator) {
316
+ &[data-level='low'] .media-volume-low-indicator-icon,
317
+ &[data-level='off'] .media-volume-off-indicator-icon {
318
+ display: block;
319
+ }
320
+ }
321
+ }
322
+ }
@@ -0,0 +1,254 @@
1
+ @layer videojs.components {
2
+ @scope (.media-skin-video-minimal) {
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 #0003);
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
+ }
@@ -0,0 +1,35 @@
1
+ @layer videojs.components {
2
+ @scope (.media-skin-video-minimal) {
3
+ .media-overlay {
4
+ pointer-events: none;
5
+ inset: calc(var(--media-spacing) * 0);
6
+ border-radius: inherit;
7
+ opacity: 0;
8
+ transition-property: opacity, backdrop-filter;
9
+ transition-duration: var(--media-controls-transition-duration);
10
+ background-image: linear-gradient(
11
+ to top,
12
+ oklab(0% none none / 0.5) 0%,
13
+ oklab(0% none none / 0.3) 25%,
14
+ #0000 100%
15
+ );
16
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
17
+ position: absolute;
18
+ }
19
+
20
+ .media-overlay:is(:where(.media-error-dialog)[data-open] ~ *) {
21
+ opacity: 1;
22
+ backdrop-filter: blur(16px) saturate(150%);
23
+ }
24
+
25
+ .media-overlay:is(:where(.media-buffering-indicator)[data-visible] ~ *) {
26
+ opacity: 1;
27
+ backdrop-filter: blur(4px);
28
+ background-color: oklab(0% none none / 0.35);
29
+ }
30
+
31
+ .media-overlay:is(:where(.media-controls-root)[data-visible] ~ *) {
32
+ opacity: 1;
33
+ }
34
+ }
35
+ }