@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
@@ -25,73 +25,209 @@
25
25
  }
26
26
  }
27
27
 
28
- @layer videojs.theme {
28
+ @layer videojs.components {
29
+ @scope (.media-skin) {
30
+ video::-webkit-media-text-track-container {
31
+ translate: 0 calc(var(--media-spacing) * -2);
32
+ transition: translate var(--media-controls-transition-duration) ease-out 25ms;
33
+ }
34
+
35
+ :scope.media-theme-default:has([data-controls][data-visible]) video::-webkit-media-text-track-container {
36
+ translate: 0 calc(var(--media-spacing) * -14);
37
+ }
38
+
39
+ :scope.media-theme-minimal:has([data-controls][data-visible]) video::-webkit-media-text-track-container {
40
+ translate: 0 calc(var(--media-spacing) * -18);
41
+ }
42
+
43
+ @container media-root (width > 42rem) {
44
+ :scope.media-theme-minimal:has([data-controls][data-visible]) video::-webkit-media-text-track-container {
45
+ translate: 0 calc(var(--media-spacing) * -12);
46
+ }
47
+ }
48
+ }
49
+ }
50
+
51
+ @layer videojs.theme.base, videojs.theme.variant, videojs.theme.preferences;
52
+
53
+ @layer videojs.theme.base {
54
+ :is(.media-theme-default, .media-theme-minimal) {
55
+ --media-controls-transition-duration: 100ms;
56
+ --media-scale: 1;
57
+ --media-spacing: calc(var(--media-scale-unit, 16px) * var(--media-scale) / 4);
58
+ }
59
+ }
60
+
61
+ @layer videojs.theme.preferences {
62
+ @media (pointer: fine) {
63
+ :is(.media-theme-default, .media-theme-minimal):has([data-controls]:not([data-visible])) {
64
+ --media-controls-transition-duration: 300ms;
65
+ }
66
+ }
67
+
68
+ @media (pointer: coarse) {
69
+ :is(.media-theme-default, .media-theme-minimal):has([data-controls]:not([data-visible])) {
70
+ --media-controls-transition-duration: 150ms;
71
+ }
72
+ }
73
+
74
+ @media (prefers-reduced-motion: reduce) {
75
+ :is(.media-theme-default, .media-theme-minimal) {
76
+ --media-controls-transition-duration: 50ms;
77
+ }
78
+ }
79
+ }
80
+
81
+ @layer videojs.theme.variant {
29
82
  .media-theme-default {
30
- --media-controls-color: oklch(1 0 0);
31
- --media-controls-gap: 0.25rem;
32
- --media-controls-padding: 0.25rem;
33
- --media-control-size: 2.25rem;
34
- --media-control-hover-background: oklch(1 0 0 / 0.12);
35
- --media-font-family: ui-sans-serif, system-ui, sans-serif;
36
- --media-font-size: 0.875rem;
37
- --media-icon-size: 1.125rem;
38
- --media-radius-pill: 9999px;
39
- --media-radius-surface: 0.5rem;
40
- --media-shadow-color: oklch(0 0 0 / 0.35);
41
- --media-slider-buffer-background: oklch(1 0 0 / 0.3);
42
- --media-slider-thumb-size: 0.75rem;
43
- --media-slider-track-background: oklch(1 0 0 / 0.2);
44
- --media-slider-track-size: 0.25rem;
45
- --media-surface-backdrop-blur: 12px;
46
- --media-surface-background: oklch(0.2 0 0 / 0.72);
47
- --media-surface-border: oklch(1 0 0 / 0.16);
83
+ --media-video-border-radius: var(--media-border-radius, 1.75rem);
84
+ --media-control-radius: 9999px;
85
+ --media-surface-radius: calc(var(--media-spacing) * 2);
48
86
  }
49
87
  }
50
88
 
51
89
  @layer videojs.components {
52
90
  @scope (.media-skin-video) {
91
+ .media-airplay-button:not([data-airplay-state='connected']) {
92
+ --media-icon-airplay-fill-animation: none;
93
+ --media-icon-airplay-triangle-animation: none;
94
+ }
95
+
96
+ .media-airplay-enter-icon {
97
+ opacity: 0;
98
+ display: none;
99
+ }
100
+
101
+ @scope (.media-airplay-button) {
102
+ &:not([data-airplay-state='connected']) .media-airplay-enter-icon {
103
+ opacity: 1;
104
+ display: block;
105
+ }
106
+ }
107
+
108
+ .media-airplay-exit-icon {
109
+ opacity: 0;
110
+ display: none;
111
+ }
112
+
113
+ @scope (.media-airplay-button) {
114
+ &[data-airplay-state='connected'] .media-airplay-exit-icon {
115
+ opacity: 1;
116
+ display: block;
117
+ }
118
+ }
119
+
53
120
  .media-button {
54
- width: var(--media-control-size);
55
- height: var(--media-control-size);
121
+ width: calc(var(--media-spacing) * 9);
122
+ height: calc(var(--media-spacing) * 9);
123
+ min-height: calc(var(--media-spacing) * 0);
56
124
  cursor: pointer;
57
- border-radius: var(--media-radius-pill);
125
+ touch-action: manipulation;
126
+ border-radius: var(--media-control-radius);
127
+ padding: calc(var(--media-spacing) * 0);
128
+ text-align: center;
58
129
  color: inherit;
59
130
  outline-offset: -2px;
131
+ -webkit-user-select: none;
132
+ user-select: none;
60
133
  background-color: #0000;
61
134
  border-style: solid;
62
135
  border-width: 0;
63
136
  outline: 2px solid #0000;
64
137
  flex-shrink: 0;
65
138
  place-items: center;
66
- padding: 0;
139
+ transition-property: background-color, color, outline-offset, scale;
140
+ transition-duration: 0.15s;
141
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
67
142
  display: grid;
68
143
  }
69
144
 
70
145
  @media (hover: hover) {
71
146
  .media-button:hover {
72
- background-color: var(--media-control-hover-background);
147
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
148
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
73
149
  }
74
150
  }
75
151
 
76
152
  .media-button:focus-visible {
77
- background-color: var(--media-control-hover-background);
153
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
154
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
78
155
  outline-offset: 2px;
79
156
  outline-color: currentColor;
80
157
  }
81
158
 
159
+ .media-button:not([aria-disabled='true']):active {
160
+ scale: 0.9;
161
+ }
162
+
82
163
  .media-button[aria-disabled='true'] {
83
164
  cursor: not-allowed;
84
165
  opacity: 0.5;
85
166
  }
86
167
 
87
168
  .media-button[aria-expanded='true'] {
88
- background-color: var(--media-control-hover-background);
169
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
170
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
171
+ }
172
+
173
+ @media (prefers-reduced-motion: reduce) {
174
+ .media-button {
175
+ transition-duration: 50ms;
176
+ }
89
177
  }
90
178
 
91
179
  .media-button-icon {
92
- width: var(--media-icon-size);
93
- height: var(--media-icon-size);
94
- filter: drop-shadow(0 1px 0 var(--media-shadow-color));
180
+ width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
181
+ height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
182
+ filter: drop-shadow(0 1px #00000026);
183
+ }
184
+
185
+ .media-captions-off-icon {
186
+ opacity: 0;
187
+ display: none;
188
+ }
189
+
190
+ @scope (.media-captions-button) {
191
+ &:not([data-active]) .media-captions-off-icon {
192
+ opacity: 1;
193
+ display: block;
194
+ }
195
+ }
196
+
197
+ .media-captions-on-icon {
198
+ opacity: 0;
199
+ display: none;
200
+ }
201
+
202
+ @scope (.media-captions-button) {
203
+ &[data-active] .media-captions-on-icon {
204
+ opacity: 1;
205
+ display: block;
206
+ }
207
+ }
208
+
209
+ .media-cast-enter-icon {
210
+ opacity: 0;
211
+ display: none;
212
+ }
213
+
214
+ @scope (.media-cast-button) {
215
+ &:not([data-cast-state='connected']) .media-cast-enter-icon {
216
+ opacity: 1;
217
+ display: block;
218
+ }
219
+ }
220
+
221
+ .media-cast-exit-icon {
222
+ opacity: 0;
223
+ display: none;
224
+ }
225
+
226
+ @scope (.media-cast-button) {
227
+ &[data-cast-state='connected'] .media-cast-exit-icon {
228
+ opacity: 1;
229
+ display: block;
230
+ }
95
231
  }
96
232
 
97
233
  .media-fullscreen-enter-icon {
@@ -130,6 +266,30 @@
130
266
  }
131
267
  }
132
268
 
269
+ .media-pip-enter-icon {
270
+ opacity: 0;
271
+ display: none;
272
+ }
273
+
274
+ @scope (.media-pip-button) {
275
+ &:not([data-pip]) .media-pip-enter-icon {
276
+ opacity: 1;
277
+ display: block;
278
+ }
279
+ }
280
+
281
+ .media-pip-exit-icon {
282
+ opacity: 0;
283
+ display: none;
284
+ }
285
+
286
+ @scope (.media-pip-button) {
287
+ &[data-pip] .media-pip-exit-icon {
288
+ opacity: 1;
289
+ display: block;
290
+ }
291
+ }
292
+
133
293
  .media-play-icon {
134
294
  opacity: 0;
135
295
  display: none;
@@ -155,14 +315,6 @@
155
315
  }
156
316
  }
157
317
 
158
- .media-seek-backward-icon {
159
- scale: -1 1;
160
- }
161
-
162
- .media-seek-button-label {
163
- font-variant-numeric: tabular-nums;
164
- }
165
-
166
318
  .media-volume-high-icon {
167
319
  opacity: 0;
168
320
  display: none;
@@ -203,20 +355,41 @@
203
355
 
204
356
  @layer videojs.components {
205
357
  @scope (.media-skin-video) {
206
- .media-container {
358
+ .media-container,
359
+ :scope.media-container {
207
360
  isolation: isolate;
208
- border-radius: var(--media-radius-surface);
209
- background-color: #000;
361
+ border-radius: var(--media-video-border-radius);
210
362
  width: 100%;
211
363
  height: 100%;
364
+ font-family:
365
+ ui-sans-serif,
366
+ system-ui,
367
+ sans-serif,
368
+ Apple Color Emoji,
369
+ Segoe UI Emoji,
370
+ Segoe UI Symbol,
371
+ Noto Color Emoji;
372
+ font-size: calc(var(--media-spacing) * 3.25);
373
+ -webkit-font-smoothing: auto;
374
+ -moz-osx-font-smoothing: auto;
375
+ outline-offset: -4px;
376
+ --spacing: var(--media-spacing);
377
+ background-color: #000;
378
+ outline: 2px solid #0000;
379
+ line-height: 1.5;
380
+ transition-property: outline-offset, outline-color;
381
+ transition-duration: 0.1s;
382
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
212
383
  display: block;
213
384
  position: relative;
214
385
  overflow: hidden;
215
- container: media-container / inline-size;
386
+ container: media-root / inline-size;
216
387
  }
217
388
 
218
- .media-container:before {
389
+ .media-container:before,
390
+ :scope.media-container:before {
219
391
  pointer-events: none;
392
+ inset: calc(var(--media-spacing) * 0);
220
393
  background-image: var(--media-poster-placeholder, none);
221
394
  background-size: var(--media-object-fit, contain);
222
395
  background-position: var(--media-object-position, center);
@@ -228,263 +401,2282 @@
228
401
  transition-duration: 0.25s;
229
402
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
230
403
  position: absolute;
231
- inset: 0;
232
- }
233
-
234
- .media-container:has(:is(img[data-visible]:not([data-loaded]))):before {
235
- content: '';
236
- opacity: 1;
237
- }
238
-
239
- .media-container video {
240
- border-radius: inherit;
241
- object-fit: var(--media-object-fit, contain);
242
- object-position: var(--media-object-position, center);
243
- width: 100%;
244
- height: 100%;
245
- display: block;
246
404
  }
247
- }
248
- }
249
405
 
250
- @layer videojs.components {
251
- @scope (.media-skin-video) {
252
- .media-controls {
253
- inset-inline: var(--media-controls-gap);
254
- bottom: var(--media-controls-gap);
406
+ .media-container:after,
407
+ :scope.media-container:after {
408
+ pointer-events: none;
409
+ inset: calc(var(--media-spacing) * 0);
255
410
  z-index: 10;
256
- align-items: center;
257
- gap: var(--media-controls-gap);
258
- border-radius: var(--media-radius-pill);
259
- background-color: var(--media-surface-background);
260
- padding: var(--media-controls-padding);
261
- font-family: var(--media-font-family);
262
- font-size: var(--media-font-size);
263
- color: var(--media-controls-color);
411
+ border-radius: inherit;
412
+ content: '';
413
+ position: absolute;
264
414
  box-shadow:
265
415
  0 0 #0000,
266
416
  0 0 #0000,
267
417
  0 0 #0000,
268
418
  0 0 #0000,
269
- 0 0 0 1px var(--media-surface-border),
270
- 0 2px 8px var(--media-shadow-color);
271
- backdrop-filter: blur(var(--media-surface-backdrop-blur));
272
- line-height: 1;
273
- display: flex;
274
- position: absolute;
275
- }
276
-
277
- .media-controls-group-primary {
278
- align-items: center;
279
- gap: var(--media-controls-gap);
280
- display: flex;
281
- }
282
-
283
- .media-controls-group-time {
284
- align-items: center;
285
- gap: var(--media-controls-gap);
286
- flex: 1;
287
- display: flex;
419
+ inset 0 0 0 1px light-dark(#0000001a, #ffffff26);
288
420
  }
289
421
 
290
- .media-time {
291
- font-variant-numeric: tabular-nums;
292
- }
293
- }
294
- }
295
-
296
- @layer videojs.components {
297
- @scope (.media-skin-video) {
298
- .media-overlay {
299
- pointer-events: none;
300
- border-radius: inherit;
301
- background-image: linear-gradient(to top, oklch(0% 0 0 / 0.5), oklch(0% 0 0 / 0.3) 25%, #0000);
302
- position: absolute;
303
- inset: 0;
422
+ .media-container:focus-visible,
423
+ :scope.media-container:focus-visible {
424
+ outline-offset: 2px;
425
+ outline-color: #fff;
304
426
  }
305
- }
306
- }
307
427
 
308
- @layer videojs.components {
309
- @scope (.media-skin-video) {
310
- .media-surface {
311
- background-color: var(--media-surface-background);
312
- color: var(--media-controls-color);
313
- box-shadow:
314
- 0 0 #0000,
315
- 0 0 #0000,
316
- 0 0 #0000,
317
- 0 0 #0000,
318
- 0 0 0 1px var(--media-surface-border),
319
- 0 2px 8px var(--media-shadow-color);
320
- backdrop-filter: blur(var(--media-surface-backdrop-blur));
428
+ .media-container:has(:is(img[data-visible]:not([data-loaded]))):before,
429
+ :scope.media-container:has(:is(img[data-visible]:not([data-loaded]))):before {
430
+ content: '';
431
+ opacity: 1;
321
432
  }
322
433
 
323
- .media-tooltip {
324
- border-radius: var(--media-radius-pill);
325
- white-space: nowrap;
326
- border-style: solid;
327
- border-width: 0;
328
- margin: 0;
329
- padding-block: 0.35rem;
330
- padding-inline: 0.625rem;
434
+ @media (prefers-reduced-motion: reduce) {
435
+ .media-container,
436
+ :scope.media-container {
437
+ transition-duration: 50ms;
438
+ }
331
439
  }
332
440
 
333
- .media-tooltip[data-open] {
334
- align-items: center;
335
- gap: 0.25rem;
336
- display: flex;
337
- }
441
+ @media (forced-colors: active) {
442
+ .media-container:after,
443
+ :scope.media-container:after {
444
+ content: '';
445
+ box-shadow:
446
+ 0 0 #0000,
447
+ 0 0 #0000,
448
+ 0 0 #0000,
449
+ 0 0 #0000,
450
+ inset 0 0 0 1px canvastext;
451
+ }
338
452
 
339
- .media-tooltip-shortcut {
340
- font-size: 0.75em;
341
- font-weight: 600;
453
+ .media-container:focus-visible,
454
+ :scope.media-container:focus-visible {
455
+ outline-color: canvastext;
456
+ }
342
457
  }
343
458
 
344
- .media-volume-popover {
345
- border-radius: var(--media-radius-pill);
346
- border-style: solid;
347
- border-width: 0;
348
- margin: 0;
349
- padding-block: 0.75rem;
459
+ @media (pointer: fine) {
460
+ .media-container:has([data-controls]:not([data-visible])),
461
+ :scope.media-container:has([data-controls]:not([data-visible])) {
462
+ cursor: none;
463
+ }
350
464
  }
351
- }
352
- }
353
465
 
354
- @layer videojs.components {
355
- @scope (.media-skin-video) {
356
- .media-poster {
357
- pointer-events: none;
466
+ .media-container video,
467
+ :scope.media-container video {
358
468
  border-radius: inherit;
359
469
  object-fit: var(--media-object-fit, contain);
360
470
  object-position: var(--media-object-position, center);
361
471
  width: 100%;
362
472
  height: 100%;
363
- transition-property: opacity;
364
- transition-duration: 0.25s;
365
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
366
- position: absolute;
367
- inset: 0;
473
+ display: block;
368
474
  }
369
475
 
370
- .media-poster:not([data-visible]) {
371
- opacity: 0;
476
+ .media-container:fullscreen,
477
+ :scope.media-container:fullscreen {
478
+ --media-video-border-radius: 0;
372
479
  }
373
480
 
374
- .media-poster:before {
375
- pointer-events: none;
376
- background-image: var(--media-poster-placeholder, none);
377
- background-size: var(--media-object-fit, contain);
378
- background-position: var(--media-object-position, center);
481
+ .media-container:fullscreen:after,
482
+ :scope.media-container:fullscreen:after {
379
483
  content: '';
380
- filter: blur(var(--media-poster-placeholder-blur, 20px));
381
- background-repeat: no-repeat;
382
- position: absolute;
383
- inset: 0;
484
+ display: none;
384
485
  }
385
486
 
386
- .media-poster ::slotted(img) {
387
- border-radius: inherit;
388
- object-fit: var(--media-object-fit, contain);
389
- object-position: var(--media-object-position, center);
390
- width: 100%;
391
- height: 100%;
392
- position: absolute;
393
- inset: 0;
487
+ @media (width >= 1280px) {
488
+ .media-container:fullscreen,
489
+ :scope.media-container:fullscreen {
490
+ --media-scale: 1.25;
491
+ }
394
492
  }
395
493
 
396
- .media-poster[data-visible]:not([data-loaded]) {
397
- opacity: 0;
494
+ @media (width >= 1536px) {
495
+ .media-container:fullscreen,
496
+ :scope.media-container:fullscreen {
497
+ --media-scale: 1.5;
498
+ }
499
+ }
500
+
501
+ @media (width >= 1920px) {
502
+ .media-container:fullscreen,
503
+ :scope.media-container:fullscreen {
504
+ --media-scale: 1.75;
505
+ }
506
+ }
507
+
508
+ .media-container:fullscreen video,
509
+ :scope.media-container:fullscreen video {
510
+ object-fit: contain;
398
511
  }
399
512
  }
400
513
  }
401
514
 
402
515
  @layer videojs.components {
403
516
  @scope (.media-skin-video) {
404
- .media-slider {
405
- min-height: var(--media-control-size);
406
- cursor: pointer;
407
- outline-style: none;
408
- flex: 1;
409
- justify-content: center;
517
+ .media-button-group {
410
518
  align-items: center;
411
- min-width: 5rem;
519
+ gap: 1px;
412
520
  display: flex;
413
- position: relative;
414
521
  }
415
522
 
416
- .media-slider[data-orientation='vertical'] {
417
- height: 5rem;
418
- width: var(--media-control-size);
419
- min-width: 0;
523
+ .media-controls-primary {
524
+ inset-inline: calc(var(--media-spacing) * 2);
525
+ bottom: calc(var(--media-spacing) * 2);
526
+ z-index: 10;
527
+ transform-origin: bottom;
528
+ border-radius: var(--media-control-radius);
529
+ padding: calc(var(--media-spacing) * 1);
530
+ color: #fff;
531
+ backdrop-filter: blur(16px) saturate(150%);
532
+ transition-property: filter, opacity, scale, translate;
533
+ transition-duration: var(--media-controls-transition-duration);
534
+ background-color: oklab(100% 0 5.96046e-8 / 0.1);
535
+ align-items: center;
536
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
537
+ display: flex;
538
+ position: absolute;
539
+ box-shadow:
540
+ 0 0 #0000,
541
+ 0 0 #0000,
542
+ 0 0 #0000,
543
+ 0 0 0 1px oklab(0% none none / 0.1),
544
+ 0 1px 3px oklab(0% none none / 0.15),
545
+ 0 1px 2px -1px oklab(0% none none / 0.15);
420
546
  }
421
547
 
422
- .media-slider-buffer {
423
- width: var(--media-slider-buffer);
548
+ .media-controls-primary:after {
549
+ pointer-events: none;
550
+ inset: calc(var(--media-spacing) * 0);
551
+ z-index: 10;
424
552
  border-radius: inherit;
425
- background-color: var(--media-slider-buffer-background);
426
- inset-block: 0;
553
+ content: '';
427
554
  position: absolute;
428
- left: 0;
555
+ box-shadow:
556
+ 0 0 #0000,
557
+ 0 0 #0000,
558
+ 0 0 #0000,
559
+ 0 0 #0000,
560
+ inset 0 1px #ffffff1a,
561
+ inset 0 0 0 1px #ffffff0d;
429
562
  }
430
563
 
431
- .media-slider-buffer[data-orientation='vertical'] {
432
- height: var(--media-slider-buffer);
433
- inset-inline: 0;
434
- width: auto;
564
+ @media (prefers-contrast: more) {
565
+ .media-controls-primary {
566
+ backdrop-filter: none;
567
+ background-color: #000;
568
+ box-shadow:
569
+ 0 0 #0000,
570
+ 0 0 #0000,
571
+ 0 0 #0000,
572
+ 0 0 0 1px #0000,
573
+ 0 1px 3px #00000026,
574
+ 0 1px 2px -1px #00000026;
575
+ }
576
+
577
+ .media-controls-primary:after {
578
+ content: '';
579
+ box-shadow:
580
+ 0 0 #0000,
581
+ 0 0 #0000,
582
+ 0 0 #0000,
583
+ 0 0 #0000,
584
+ inset 0 1px #ffffff40,
585
+ inset 0 0 0 1px #ffffff20;
586
+ }
587
+
588
+ .media-controls-secondary {
589
+ backdrop-filter: none;
590
+ background-color: #000;
591
+ box-shadow:
592
+ 0 0 #0000,
593
+ 0 0 #0000,
594
+ 0 0 #0000,
595
+ 0 0 0 1px #0000,
596
+ 0 1px 3px #00000026,
597
+ 0 1px 2px -1px #00000026;
598
+ }
599
+
600
+ .media-controls-secondary:after {
601
+ content: '';
602
+ box-shadow:
603
+ 0 0 #0000,
604
+ 0 0 #0000,
605
+ 0 0 #0000,
606
+ 0 0 #0000,
607
+ inset 0 1px #ffffff40,
608
+ inset 0 0 0 1px #ffffff20;
609
+ }
610
+ }
611
+
612
+ @container media-root (width < 32rem) {
613
+ @scope (.media-controls-root) {
614
+ &:not([data-visible]) .media-controls-primary {
615
+ pointer-events: none;
616
+ opacity: 0;
617
+ }
618
+ }
619
+
620
+ @media (prefers-reduced-motion: no-preference) {
621
+ @scope (.media-controls-root) {
622
+ &:not([data-visible]) .media-controls-primary {
623
+ translate: 0 calc(var(--media-spacing) * 1);
624
+ scale: 0.95;
625
+ }
626
+ }
627
+
628
+ @scope (.media-controls-root) {
629
+ &:not([data-visible]) .media-controls-secondary {
630
+ translate: 0 calc(var(--media-spacing) * -1);
631
+ scale: 0.95;
632
+ }
633
+ }
634
+ }
635
+
636
+ @scope (.media-controls-root) {
637
+ &:not([data-visible]) .media-controls-secondary {
638
+ pointer-events: none;
639
+ opacity: 0;
640
+ }
641
+ }
642
+ }
643
+
644
+ @container media-root (width >= 32rem) {
645
+ .media-controls-primary {
646
+ display: contents;
647
+ }
648
+
649
+ .media-controls-root {
650
+ inset-inline: calc(var(--media-spacing) * 2);
651
+ bottom: calc(var(--media-spacing) * 2);
652
+ z-index: 10;
653
+ border-radius: var(--media-control-radius);
654
+ color: #fff;
655
+ backdrop-filter: blur(16px) saturate(150%);
656
+ background-color: oklab(100% 0 5.96046e-8 / 0.1);
657
+ align-items: center;
658
+ display: flex;
659
+ position: absolute;
660
+ box-shadow:
661
+ 0 0 #0000,
662
+ 0 0 #0000,
663
+ 0 0 #0000,
664
+ 0 0 0 1px oklab(0% none none / 0.1),
665
+ 0 1px 3px #00000026,
666
+ 0 1px 2px -1px #00000026;
667
+ }
668
+
669
+ .media-controls-root:not([data-visible]) {
670
+ pointer-events: none;
671
+ opacity: 0;
672
+ }
673
+
674
+ .media-controls-root:after {
675
+ pointer-events: none;
676
+ inset: calc(var(--media-spacing) * 0);
677
+ z-index: 10;
678
+ border-radius: inherit;
679
+ content: '';
680
+ position: absolute;
681
+ box-shadow:
682
+ 0 0 #0000,
683
+ 0 0 #0000,
684
+ 0 0 #0000,
685
+ 0 0 #0000,
686
+ inset 0 1px #ffffff1a,
687
+ inset 0 0 0 1px #ffffff0d;
688
+ }
689
+
690
+ @media (prefers-reduced-motion: no-preference) {
691
+ .media-controls-root:not([data-visible]) {
692
+ translate: 0 calc(var(--media-spacing) * 1);
693
+ scale: 0.95;
694
+ }
695
+ }
696
+
697
+ @media (prefers-contrast: more) {
698
+ .media-controls-root {
699
+ backdrop-filter: none;
700
+ background-color: #000;
701
+ box-shadow:
702
+ 0 0 #0000,
703
+ 0 0 #0000,
704
+ 0 0 #0000,
705
+ 0 0 0 1px #0000,
706
+ 0 1px 3px #00000026,
707
+ 0 1px 2px -1px #00000026;
708
+ }
709
+
710
+ .media-controls-root:after {
711
+ content: '';
712
+ box-shadow:
713
+ 0 0 #0000,
714
+ 0 0 #0000,
715
+ 0 0 #0000,
716
+ 0 0 #0000,
717
+ inset 0 1px #ffffff40,
718
+ inset 0 0 0 1px #ffffff20;
719
+ }
720
+ }
721
+
722
+ @media (forced-colors: active) {
723
+ .media-controls-root {
724
+ background-color: canvas;
725
+ box-shadow:
726
+ 0 0 #0000,
727
+ 0 0 #0000,
728
+ 0 0 #0000,
729
+ 0 0 0 1px canvastext,
730
+ 0 1px 3px #00000026,
731
+ 0 1px 2px -1px #00000026;
732
+ }
733
+
734
+ .media-controls-root:after {
735
+ content: '';
736
+ box-shadow:
737
+ 0 0 #0000,
738
+ 0 0 #0000,
739
+ 0 0 #0000,
740
+ 0 0 #0000,
741
+ inset 0 1px canvastext,
742
+ inset 0 0 0 1px canvastext;
743
+ }
744
+ }
745
+
746
+ @media (pointer: fine) {
747
+ @media (prefers-reduced-motion: no-preference) {
748
+ .media-controls-root:not([data-visible]) {
749
+ filter: blur(8px);
750
+ }
751
+ }
752
+ }
753
+
754
+ @media (prefers-reduced-transparency: reduce) {
755
+ .media-controls-root {
756
+ backdrop-filter: none;
757
+ background-color: #000;
758
+ box-shadow:
759
+ 0 0 #0000,
760
+ 0 0 #0000,
761
+ 0 0 #0000,
762
+ 0 0 0 1px #0000,
763
+ 0 1px 3px #00000026,
764
+ 0 1px 2px -1px #00000026;
765
+ }
766
+
767
+ .media-controls-root:after {
768
+ content: '';
769
+ box-shadow:
770
+ 0 0 #0000,
771
+ 0 0 #0000,
772
+ 0 0 #0000,
773
+ 0 0 #0000,
774
+ inset 0 1px #ffffff40,
775
+ inset 0 0 0 1px #ffffff20;
776
+ }
777
+ }
778
+
779
+ .media-controls-secondary {
780
+ display: contents;
781
+ }
782
+ }
783
+
784
+ @media (forced-colors: active) {
785
+ .media-controls-primary {
786
+ background-color: canvas;
787
+ box-shadow:
788
+ 0 0 #0000,
789
+ 0 0 #0000,
790
+ 0 0 #0000,
791
+ 0 0 0 1px canvastext,
792
+ 0 1px 3px #00000026,
793
+ 0 1px 2px -1px #00000026;
794
+ }
795
+
796
+ .media-controls-primary:after {
797
+ content: '';
798
+ box-shadow:
799
+ 0 0 #0000,
800
+ 0 0 #0000,
801
+ 0 0 #0000,
802
+ 0 0 #0000,
803
+ inset 0 1px canvastext,
804
+ inset 0 0 0 1px canvastext;
805
+ }
806
+
807
+ .media-controls-secondary {
808
+ background-color: canvas;
809
+ box-shadow:
810
+ 0 0 #0000,
811
+ 0 0 #0000,
812
+ 0 0 #0000,
813
+ 0 0 0 1px canvastext,
814
+ 0 1px 3px #00000026,
815
+ 0 1px 2px -1px #00000026;
816
+ }
817
+
818
+ .media-controls-secondary:after {
819
+ content: '';
820
+ box-shadow:
821
+ 0 0 #0000,
822
+ 0 0 #0000,
823
+ 0 0 #0000,
824
+ 0 0 #0000,
825
+ inset 0 1px canvastext,
826
+ inset 0 0 0 1px canvastext;
827
+ }
828
+ }
829
+
830
+ @media (prefers-reduced-transparency: reduce) {
831
+ .media-controls-primary {
832
+ backdrop-filter: none;
833
+ background-color: #000;
834
+ box-shadow:
835
+ 0 0 #0000,
836
+ 0 0 #0000,
837
+ 0 0 #0000,
838
+ 0 0 0 1px #0000,
839
+ 0 1px 3px #00000026,
840
+ 0 1px 2px -1px #00000026;
841
+ }
842
+
843
+ .media-controls-primary:after {
844
+ content: '';
845
+ box-shadow:
846
+ 0 0 #0000,
847
+ 0 0 #0000,
848
+ 0 0 #0000,
849
+ 0 0 #0000,
850
+ inset 0 1px #ffffff40,
851
+ inset 0 0 0 1px #ffffff20;
852
+ }
853
+
854
+ .media-controls-secondary {
855
+ backdrop-filter: none;
856
+ background-color: #000;
857
+ box-shadow:
858
+ 0 0 #0000,
859
+ 0 0 #0000,
860
+ 0 0 #0000,
861
+ 0 0 0 1px #0000,
862
+ 0 1px 3px #00000026,
863
+ 0 1px 2px -1px #00000026;
864
+ }
865
+
866
+ .media-controls-secondary:after {
867
+ content: '';
868
+ box-shadow:
869
+ 0 0 #0000,
870
+ 0 0 #0000,
871
+ 0 0 #0000,
872
+ 0 0 #0000,
873
+ inset 0 1px #ffffff40,
874
+ inset 0 0 0 1px #ffffff20;
875
+ }
876
+ }
877
+
878
+ .media-controls-root {
879
+ color: #fff;
880
+ transition-property: filter, opacity, scale, translate;
881
+ transition-duration: var(--media-controls-transition-duration);
882
+ --media-popover-boundary-offset: 0.75rem;
883
+ --media-popover-side-offset: calc(var(--media-spacing) * 3);
884
+ --media-tooltip-boundary-offset: var(--media-popover-boundary-offset);
885
+ --media-tooltip-side-offset: var(--media-popover-side-offset);
886
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
887
+ display: contents;
888
+ }
889
+
890
+ .media-controls-root:is(:where(.media-error-dialog)[data-open] ~ *) {
891
+ display: none !important;
892
+ }
893
+
894
+ @container media-root (width >= 42rem) {
895
+ .media-controls-root {
896
+ inset-inline: calc(var(--media-spacing) * 3);
897
+ bottom: calc(var(--media-spacing) * 3);
898
+ }
899
+ }
900
+
901
+ .media-controls-secondary {
902
+ top: calc(var(--media-spacing) * 2);
903
+ right: calc(var(--media-spacing) * 2);
904
+ z-index: 10;
905
+ transform-origin: top;
906
+ border-radius: var(--media-control-radius);
907
+ padding: calc(var(--media-spacing) * 1);
908
+ color: #fff;
909
+ backdrop-filter: blur(16px) saturate(150%);
910
+ transition-property: filter, opacity, scale, translate;
911
+ transition-duration: var(--media-controls-transition-duration);
912
+ background-color: oklab(100% 0 5.96046e-8 / 0.1);
913
+ align-items: center;
914
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
915
+ display: flex;
916
+ position: absolute;
917
+ box-shadow:
918
+ 0 0 #0000,
919
+ 0 0 #0000,
920
+ 0 0 #0000,
921
+ 0 0 0 1px oklab(0% none none / 0.1),
922
+ 0 1px 3px oklab(0% none none / 0.15),
923
+ 0 1px 2px -1px oklab(0% none none / 0.15);
924
+ }
925
+
926
+ .media-controls-secondary:after {
927
+ pointer-events: none;
928
+ inset: calc(var(--media-spacing) * 0);
929
+ z-index: 10;
930
+ border-radius: inherit;
931
+ content: '';
932
+ position: absolute;
933
+ box-shadow:
934
+ 0 0 #0000,
935
+ 0 0 #0000,
936
+ 0 0 #0000,
937
+ 0 0 #0000,
938
+ inset 0 1px #ffffff1a,
939
+ inset 0 0 0 1px #ffffff0d;
940
+ }
941
+
942
+ .media-time-controls {
943
+ align-items: center;
944
+ gap: calc(var(--media-spacing) * 2.5);
945
+ padding-inline: calc(var(--media-spacing) * 3);
946
+ flex: 1;
947
+ display: flex;
948
+ container: media-time / inline-size;
949
+ }
950
+
951
+ @container media-time (width < 16rem) {
952
+ .media-time-controls > :last-child {
953
+ display: none;
954
+ }
955
+ }
956
+
957
+ .media-time-current {
958
+ font-variant-numeric: tabular-nums;
959
+ }
960
+
961
+ .media-time-remaining {
962
+ cursor: pointer;
963
+ font-variant-numeric: tabular-nums;
964
+ outline-offset: -2px;
965
+ border-radius: 0.25rem;
966
+ outline: 2px solid #0000;
967
+ }
968
+
969
+ .media-time-remaining:focus-visible {
970
+ outline-offset: 2px;
971
+ outline-color: currentColor;
972
+ }
973
+ }
974
+ }
975
+
976
+ @layer videojs.components {
977
+ @scope (.media-skin-video) {
978
+ .media-error-dialog {
979
+ z-index: 20;
980
+ width: calc(100% - 1.5rem);
981
+ max-width: calc(var(--media-spacing) * 72);
982
+ gap: calc(var(--media-spacing) * 3);
983
+ padding: calc(var(--media-spacing) * 3);
984
+ color: #fff;
985
+ backdrop-filter: blur(16px) saturate(150%);
986
+ background-color: oklab(100% 0 5.96046e-8 / 0.1);
987
+ border-radius: 1.75rem;
988
+ outline-style: none;
989
+ flex-direction: column;
990
+ transition:
991
+ opacity 0.35s cubic-bezier(0, 0, 0.2, 1) 0.1s,
992
+ scale 0.35s cubic-bezier(0, 0, 0.2, 1) 0.1s,
993
+ transform 0.35s cubic-bezier(0, 0, 0.2, 1) 0.1s;
994
+ display: flex;
995
+ position: absolute;
996
+ top: 50%;
997
+ left: 50%;
998
+ translate: -50% -50%;
999
+ box-shadow:
1000
+ 0 0 #0000,
1001
+ 0 0 #0000,
1002
+ 0 0 #0000,
1003
+ 0 0 0 1px oklab(0% none none / 0.1),
1004
+ 0 1px 3px oklab(0% none none / 0.15),
1005
+ 0 1px 2px -1px oklab(0% none none / 0.15);
1006
+ }
1007
+
1008
+ .media-error-dialog:not([data-open]) {
1009
+ display: none;
1010
+ }
1011
+
1012
+ .media-error-dialog:after {
1013
+ pointer-events: none;
1014
+ inset: calc(var(--media-spacing) * 0);
1015
+ z-index: 10;
1016
+ border-radius: inherit;
1017
+ content: '';
1018
+ position: absolute;
1019
+ box-shadow:
1020
+ 0 0 #0000,
1021
+ 0 0 #0000,
1022
+ 0 0 #0000,
1023
+ 0 0 #0000,
1024
+ inset 0 1px #ffffff1a,
1025
+ inset 0 0 0 1px #ffffff0d;
1026
+ }
1027
+
1028
+ .media-error-dialog[data-ending-style] {
1029
+ opacity: 0;
1030
+ transition-delay: 0s;
1031
+ scale: 0.5;
1032
+ }
1033
+
1034
+ .media-error-dialog[data-starting-style] {
1035
+ opacity: 0;
1036
+ scale: 0.5;
1037
+ }
1038
+
1039
+ @media (prefers-reduced-motion: reduce) {
1040
+ .media-error-dialog {
1041
+ transition-duration: 50ms;
1042
+ transition-delay: 0s;
1043
+ }
1044
+ }
1045
+
1046
+ @media (prefers-contrast: more) {
1047
+ .media-error-dialog {
1048
+ backdrop-filter: none;
1049
+ background-color: #000;
1050
+ box-shadow:
1051
+ 0 0 #0000,
1052
+ 0 0 #0000,
1053
+ 0 0 #0000,
1054
+ 0 0 0 1px #0000,
1055
+ 0 1px 3px #00000026,
1056
+ 0 1px 2px -1px #00000026;
1057
+ }
1058
+
1059
+ .media-error-dialog:after {
1060
+ content: '';
1061
+ box-shadow:
1062
+ 0 0 #0000,
1063
+ 0 0 #0000,
1064
+ 0 0 #0000,
1065
+ 0 0 #0000,
1066
+ inset 0 1px #ffffff40,
1067
+ inset 0 0 0 1px #ffffff20;
1068
+ }
1069
+ }
1070
+
1071
+ @media (forced-colors: active) {
1072
+ .media-error-dialog {
1073
+ background-color: canvas;
1074
+ box-shadow:
1075
+ 0 0 #0000,
1076
+ 0 0 #0000,
1077
+ 0 0 #0000,
1078
+ 0 0 0 1px canvastext,
1079
+ 0 1px 3px #00000026,
1080
+ 0 1px 2px -1px #00000026;
1081
+ }
1082
+
1083
+ .media-error-dialog:after {
1084
+ content: '';
1085
+ box-shadow:
1086
+ 0 0 #0000,
1087
+ 0 0 #0000,
1088
+ 0 0 #0000,
1089
+ 0 0 #0000,
1090
+ inset 0 1px canvastext,
1091
+ inset 0 0 0 1px canvastext;
1092
+ }
1093
+ }
1094
+
1095
+ @media (prefers-reduced-transparency: reduce) {
1096
+ .media-error-dialog {
1097
+ backdrop-filter: none;
1098
+ background-color: #000;
1099
+ box-shadow:
1100
+ 0 0 #0000,
1101
+ 0 0 #0000,
1102
+ 0 0 #0000,
1103
+ 0 0 0 1px #0000,
1104
+ 0 1px 3px #00000026,
1105
+ 0 1px 2px -1px #00000026;
1106
+ }
1107
+
1108
+ .media-error-dialog:after {
1109
+ content: '';
1110
+ box-shadow:
1111
+ 0 0 #0000,
1112
+ 0 0 #0000,
1113
+ 0 0 #0000,
1114
+ 0 0 #0000,
1115
+ inset 0 1px #ffffff40,
1116
+ inset 0 0 0 1px #ffffff20;
1117
+ }
1118
+ }
1119
+
1120
+ .media-error-dialog-close {
1121
+ height: calc(var(--media-spacing) * 9);
1122
+ background-color: var(--media-accent-color, oklch(100% 0 0));
1123
+ width: 100%;
1124
+ padding-inline: calc(var(--media-spacing) * 4);
1125
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
1126
+ font-weight: 500;
1127
+ }
1128
+
1129
+ .media-error-dialog-description {
1130
+ padding-inline: calc(var(--media-spacing) * 2);
1131
+ padding-bottom: calc(var(--media-spacing) * 1.5);
1132
+ overflow-wrap: anywhere;
1133
+ opacity: 0.7;
1134
+ }
1135
+
1136
+ .media-error-dialog-title {
1137
+ padding-inline: calc(var(--media-spacing) * 2);
1138
+ padding-top: calc(var(--media-spacing) * 2);
1139
+ font-size: calc(var(--media-spacing) * 3.25);
1140
+ font-weight: 600;
1141
+ line-height: 1.25;
1142
+ }
1143
+ }
1144
+ }
1145
+
1146
+ @layer videojs.components {
1147
+ @scope (.media-skin-video) {
1148
+ .media-buffering-indicator {
1149
+ pointer-events: none;
1150
+ inset: calc(var(--media-spacing) * 0);
1151
+ z-index: 10;
1152
+ color: #fff;
1153
+ place-content: center;
1154
+ display: none;
1155
+ position: absolute;
1156
+ }
1157
+
1158
+ .media-buffering-indicator:not([data-visible]) {
1159
+ --media-spinner-animation: none;
1160
+ }
1161
+
1162
+ .media-buffering-indicator[data-visible] {
1163
+ display: grid;
1164
+ }
1165
+
1166
+ .media-buffering-spinner-icon {
1167
+ width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
1168
+ height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
1169
+ filter: drop-shadow(0 1px #00000026);
1170
+ }
1171
+
1172
+ .media-playback-status-icon {
1173
+ width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
1174
+ height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
1175
+ display: none;
1176
+ }
1177
+
1178
+ .media-playback-status-indicator {
1179
+ border-radius: var(--media-control-radius);
1180
+ padding: calc(var(--media-spacing) * 4);
1181
+ text-align: center;
1182
+ backdrop-filter: blur(8px);
1183
+ background-color: oklab(0% none none / 0.35);
1184
+ grid-row-start: 1;
1185
+ grid-column-start: 2;
1186
+ place-content: center;
1187
+ transition-property: opacity, scale;
1188
+ transition-duration: 0.2s;
1189
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
1190
+ display: grid;
1191
+ }
1192
+
1193
+ .media-playback-status-indicator[data-ending-style] {
1194
+ opacity: 0;
1195
+ transition-duration: 0.1s;
1196
+ scale: 0.85;
1197
+ }
1198
+
1199
+ .media-playback-status-indicator[data-starting-style] {
1200
+ opacity: 0;
1201
+ scale: 0.85;
1202
+ }
1203
+
1204
+ @media (prefers-reduced-motion: reduce) {
1205
+ .media-playback-status-indicator,
1206
+ .media-playback-status-indicator[data-ending-style],
1207
+ .media-seek-indicator-icon,
1208
+ .media-status-indicator,
1209
+ .media-volume-indicator,
1210
+ .media-volume-indicator-fill {
1211
+ transition-duration: 50ms;
1212
+ }
1213
+ }
1214
+
1215
+ .media-seek-indicator {
1216
+ place-content: center;
1217
+ gap: calc(var(--media-spacing) * 1);
1218
+ padding: calc(var(--media-spacing) * 4);
1219
+ text-align: center;
1220
+ grid-row-start: 1;
1221
+ grid-column-start: 2;
1222
+ display: grid;
1223
+ }
1224
+
1225
+ .media-seek-indicator[data-direction='backward'] {
1226
+ grid-column-start: 1;
1227
+ justify-self: flex-start;
1228
+ }
1229
+
1230
+ .media-seek-indicator[data-direction='forward'] {
1231
+ grid-column-start: 3;
1232
+ justify-self: flex-end;
1233
+ }
1234
+
1235
+ .media-seek-indicator-icon {
1236
+ width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
1237
+ height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
1238
+ transition-property: translate, opacity;
1239
+ transition-duration: 0.2s;
1240
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1241
+ display: none;
1242
+ }
1243
+
1244
+ @scope (.media-seek-indicator) {
1245
+ &[data-direction] .media-seek-indicator-icon {
1246
+ display: block;
1247
+ }
1248
+ }
1249
+
1250
+ @scope (.media-seek-indicator) {
1251
+ &[data-ending-style] .media-seek-indicator-icon,
1252
+ &[data-starting-style] .media-seek-indicator-icon {
1253
+ opacity: 0;
1254
+ }
1255
+ }
1256
+
1257
+ @scope (.media-seek-indicator) {
1258
+ &[data-direction='backward'] .media-seek-indicator-icon {
1259
+ scale: -1 1;
1260
+ }
1261
+ }
1262
+
1263
+ .media-seek-indicator-value {
1264
+ font-variant-numeric: tabular-nums;
1265
+ }
1266
+
1267
+ .media-status-announcer {
1268
+ clip-path: inset(50%);
1269
+ white-space: nowrap;
1270
+ border-width: 0;
1271
+ width: 1px;
1272
+ height: 1px;
1273
+ margin: -1px;
1274
+ padding: 0;
1275
+ position: absolute;
1276
+ overflow: hidden;
1277
+ }
1278
+
1279
+ @scope (.media-status-indicator) {
1280
+ &[data-status='captions-off'] .media-status-captions-off-icon,
1281
+ &[data-status='captions-on'] .media-status-captions-on-icon,
1282
+ &[data-status='fullscreen'] .media-status-fullscreen-enter-icon,
1283
+ &[data-status='exit-fullscreen'] .media-status-fullscreen-exit-icon {
1284
+ display: block;
1285
+ }
1286
+ }
1287
+
1288
+ .media-status-indicator {
1289
+ pointer-events: none;
1290
+ top: calc(var(--media-spacing) * 3);
1291
+ align-items: center;
1292
+ gap: calc(var(--media-spacing) * 2);
1293
+ border-radius: var(--media-control-radius);
1294
+ padding-inline: calc(var(--media-spacing) * 2.5);
1295
+ padding-block: calc(var(--media-spacing) * 1);
1296
+ color: #fff;
1297
+ backdrop-filter: blur(16px) saturate(150%);
1298
+ background-color: oklab(0% none none / 0.25);
1299
+ font-weight: 500;
1300
+ transition-property: opacity, scale, translate;
1301
+ transition-duration: 0.1s;
1302
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
1303
+ display: flex;
1304
+ position: absolute;
1305
+ box-shadow:
1306
+ 0 0 #0000,
1307
+ 0 0 #0000,
1308
+ 0 0 #0000,
1309
+ 0 0 0 1px oklab(0% none none / 0.1),
1310
+ 0 1px 3px oklab(0% none none / 0.15),
1311
+ 0 1px 2px -1px oklab(0% none none / 0.15);
1312
+ }
1313
+
1314
+ .media-status-indicator:after {
1315
+ pointer-events: none;
1316
+ inset: calc(var(--media-spacing) * 0);
1317
+ z-index: 10;
1318
+ border-radius: inherit;
1319
+ content: '';
1320
+ position: absolute;
1321
+ box-shadow:
1322
+ 0 0 #0000,
1323
+ 0 0 #0000,
1324
+ 0 0 #0000,
1325
+ 0 0 #0000,
1326
+ inset 0 1px #ffffff1a,
1327
+ inset 0 0 0 1px #ffffff0d;
1328
+ }
1329
+
1330
+ .media-status-indicator[data-ending-style] {
1331
+ opacity: 0;
1332
+ translate: 0 -25%;
1333
+ scale: 0.9;
1334
+ }
1335
+
1336
+ .media-status-indicator[data-starting-style] {
1337
+ opacity: 0;
1338
+ scale: 0.9;
1339
+ }
1340
+
1341
+ @media (prefers-contrast: more) {
1342
+ .media-status-indicator {
1343
+ backdrop-filter: none;
1344
+ background-color: #000;
1345
+ box-shadow:
1346
+ 0 0 #0000,
1347
+ 0 0 #0000,
1348
+ 0 0 #0000,
1349
+ 0 0 0 1px #0000,
1350
+ 0 1px 3px #00000026,
1351
+ 0 1px 2px -1px #00000026;
1352
+ }
1353
+
1354
+ .media-status-indicator:after {
1355
+ content: '';
1356
+ box-shadow:
1357
+ 0 0 #0000,
1358
+ 0 0 #0000,
1359
+ 0 0 #0000,
1360
+ 0 0 #0000,
1361
+ inset 0 1px #ffffff40,
1362
+ inset 0 0 0 1px #ffffff20;
1363
+ }
1364
+
1365
+ .media-volume-indicator {
1366
+ backdrop-filter: none;
1367
+ background-color: #000;
1368
+ box-shadow:
1369
+ 0 0 #0000,
1370
+ 0 0 #0000,
1371
+ 0 0 #0000,
1372
+ 0 0 0 1px #0000,
1373
+ 0 1px 3px #00000026,
1374
+ 0 1px 2px -1px #00000026;
1375
+ }
1376
+
1377
+ .media-volume-indicator:after {
1378
+ content: '';
1379
+ box-shadow:
1380
+ 0 0 #0000,
1381
+ 0 0 #0000,
1382
+ 0 0 #0000,
1383
+ 0 0 #0000,
1384
+ inset 0 1px #ffffff40,
1385
+ inset 0 0 0 1px #ffffff20;
1386
+ }
1387
+ }
1388
+
1389
+ @media (forced-colors: active) {
1390
+ .media-status-indicator {
1391
+ background-color: canvas;
1392
+ box-shadow:
1393
+ 0 0 #0000,
1394
+ 0 0 #0000,
1395
+ 0 0 #0000,
1396
+ 0 0 0 1px canvastext,
1397
+ 0 1px 3px #00000026,
1398
+ 0 1px 2px -1px #00000026;
1399
+ }
1400
+
1401
+ .media-status-indicator:after {
1402
+ content: '';
1403
+ box-shadow:
1404
+ 0 0 #0000,
1405
+ 0 0 #0000,
1406
+ 0 0 #0000,
1407
+ 0 0 #0000,
1408
+ inset 0 1px canvastext,
1409
+ inset 0 0 0 1px canvastext;
1410
+ }
1411
+
1412
+ .media-volume-indicator {
1413
+ background-color: canvas;
1414
+ box-shadow:
1415
+ 0 0 #0000,
1416
+ 0 0 #0000,
1417
+ 0 0 #0000,
1418
+ 0 0 0 1px canvastext,
1419
+ 0 1px 3px #00000026,
1420
+ 0 1px 2px -1px #00000026;
1421
+ }
1422
+
1423
+ .media-volume-indicator:after {
1424
+ content: '';
1425
+ box-shadow:
1426
+ 0 0 #0000,
1427
+ 0 0 #0000,
1428
+ 0 0 #0000,
1429
+ 0 0 #0000,
1430
+ inset 0 1px canvastext,
1431
+ inset 0 0 0 1px canvastext;
1432
+ }
1433
+ }
1434
+
1435
+ @media (prefers-reduced-transparency: reduce) {
1436
+ .media-status-indicator {
1437
+ backdrop-filter: none;
1438
+ background-color: #000;
1439
+ box-shadow:
1440
+ 0 0 #0000,
1441
+ 0 0 #0000,
1442
+ 0 0 #0000,
1443
+ 0 0 0 1px #0000,
1444
+ 0 1px 3px #00000026,
1445
+ 0 1px 2px -1px #00000026;
1446
+ }
1447
+
1448
+ .media-status-indicator:after {
1449
+ content: '';
1450
+ box-shadow:
1451
+ 0 0 #0000,
1452
+ 0 0 #0000,
1453
+ 0 0 #0000,
1454
+ 0 0 #0000,
1455
+ inset 0 1px #ffffff40,
1456
+ inset 0 0 0 1px #ffffff20;
1457
+ }
1458
+
1459
+ .media-volume-indicator {
1460
+ backdrop-filter: none;
1461
+ background-color: #000;
1462
+ box-shadow:
1463
+ 0 0 #0000,
1464
+ 0 0 #0000,
1465
+ 0 0 #0000,
1466
+ 0 0 0 1px #0000,
1467
+ 0 1px 3px #00000026,
1468
+ 0 1px 2px -1px #00000026;
1469
+ }
1470
+
1471
+ .media-volume-indicator:after {
1472
+ content: '';
1473
+ box-shadow:
1474
+ 0 0 #0000,
1475
+ 0 0 #0000,
1476
+ 0 0 #0000,
1477
+ 0 0 #0000,
1478
+ inset 0 1px #ffffff40,
1479
+ inset 0 0 0 1px #ffffff20;
1480
+ }
1481
+ }
1482
+
1483
+ .media-status-indicator-icon {
1484
+ flex-shrink: 0;
1485
+ display: none;
1486
+ }
1487
+
1488
+ .media-status-indicator-overlay {
1489
+ pointer-events: none;
1490
+ inset: calc(var(--media-spacing) * 0);
1491
+ color: #fff;
1492
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1493
+ place-items: center;
1494
+ display: grid;
1495
+ position: absolute;
1496
+ }
1497
+
1498
+ .media-status-indicator-value {
1499
+ margin-left: auto;
1500
+ }
1501
+
1502
+ :where(.media-playback-status-indicator)[data-status='pause'] .media-status-pause-icon,
1503
+ :where(.media-status-indicator)[data-status='pip'] .media-status-pip-enter-icon,
1504
+ :where(.media-status-indicator)[data-status='exit-pip'] .media-status-pip-exit-icon {
1505
+ display: block;
1506
+ }
1507
+
1508
+ @scope (.media-playback-status-indicator) {
1509
+ &[data-status='play'] .media-status-play-icon {
1510
+ display: block;
1511
+ translate: 1px;
1512
+ }
1513
+ }
1514
+
1515
+ @scope (.media-volume-indicator) {
1516
+ &[data-level='high'] .media-volume-high-indicator-icon {
1517
+ display: block;
1518
+ }
1519
+ }
1520
+
1521
+ .media-volume-indicator {
1522
+ pointer-events: none;
1523
+ top: calc(var(--media-spacing) * 3);
1524
+ border-radius: var(--media-control-radius);
1525
+ color: #fff;
1526
+ backdrop-filter: blur(16px) saturate(150%);
1527
+ background-color: oklab(0% none none / 0.25);
1528
+ width: min(80%, 12rem);
1529
+ font-weight: 500;
1530
+ transition-property: opacity, scale, translate;
1531
+ transition-duration: 0.1s;
1532
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
1533
+ position: absolute;
1534
+ box-shadow:
1535
+ 0 0 #0000,
1536
+ 0 0 #0000,
1537
+ 0 0 #0000,
1538
+ 0 0 0 1px oklab(0% none none / 0.1),
1539
+ 0 1px 3px oklab(0% none none / 0.15),
1540
+ 0 1px 2px -1px oklab(0% none none / 0.15);
1541
+ }
1542
+
1543
+ .media-volume-indicator:after {
1544
+ pointer-events: none;
1545
+ inset: calc(var(--media-spacing) * 0);
1546
+ z-index: 10;
1547
+ border-radius: inherit;
1548
+ content: '';
1549
+ position: absolute;
1550
+ box-shadow:
1551
+ 0 0 #0000,
1552
+ 0 0 #0000,
1553
+ 0 0 #0000,
1554
+ 0 0 #0000,
1555
+ inset 0 1px #ffffff1a,
1556
+ inset 0 0 0 1px #ffffff0d;
1557
+ }
1558
+
1559
+ .media-volume-indicator[data-ending-style] {
1560
+ opacity: 0;
1561
+ translate: 0 -25%;
1562
+ scale: 0.9;
1563
+ }
1564
+
1565
+ .media-volume-indicator[data-starting-style] {
1566
+ opacity: 0;
1567
+ scale: 0.9;
1568
+ }
1569
+
1570
+ .media-volume-indicator-fill {
1571
+ justify-content: space-between;
1572
+ align-items: center;
1573
+ gap: calc(var(--media-spacing) * 2);
1574
+ border-radius: inherit;
1575
+ background-image: linear-gradient(var(--media-accent-color, white), var(--media-accent-color, white));
1576
+ background-size: var(--media-volume-fill, 0%) 100%;
1577
+ width: 100%;
1578
+ padding-inline: calc(var(--media-spacing) * 2.5);
1579
+ padding-block: calc(var(--media-spacing) * 1);
1580
+ background-position: 0;
1581
+ background-repeat: no-repeat;
1582
+ transition-property: background-size;
1583
+ transition-duration: 0.2s;
1584
+ transition-timing-function: linear;
1585
+ display: flex;
1586
+ }
1587
+
1588
+ .media-volume-indicator-icon {
1589
+ flex-shrink: 0;
1590
+ display: none;
1591
+ }
1592
+
1593
+ .media-volume-indicator-value {
1594
+ margin-left: auto;
1595
+ }
1596
+
1597
+ @scope (.media-volume-indicator) {
1598
+ &[data-level='low'] .media-volume-low-indicator-icon,
1599
+ &[data-level='off'] .media-volume-off-indicator-icon {
1600
+ display: block;
1601
+ }
1602
+ }
1603
+ }
1604
+ }
1605
+
1606
+ @layer videojs.components {
1607
+ @scope (.media-skin-video) {
1608
+ .media-back {
1609
+ margin-bottom: calc(var(--media-spacing) * 0.5);
1610
+ width: 100%;
1611
+ }
1612
+
1613
+ .media-badge {
1614
+ border-radius: var(--media-control-radius);
1615
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
1616
+ padding-inline: calc(var(--media-spacing) * 1.5);
1617
+ font-size: 0.7em;
1618
+ font-weight: 600;
1619
+ }
1620
+
1621
+ .media-chevron {
1622
+ width: calc(var(--media-spacing) * 3.5);
1623
+ height: calc(var(--media-spacing) * 3.5);
1624
+ }
1625
+
1626
+ .media-chevron-flipped {
1627
+ rotate: 180deg;
1628
+ }
1629
+
1630
+ .media-hint {
1631
+ min-width: calc(var(--media-spacing) * 0);
1632
+ align-items: center;
1633
+ gap: calc(var(--media-spacing) * 1);
1634
+ padding-left: calc(var(--media-spacing) * 2);
1635
+ opacity: 0.7;
1636
+ margin-left: auto;
1637
+ display: inline-flex;
1638
+ }
1639
+
1640
+ .media-hint-label {
1641
+ max-width: calc(var(--media-spacing) * 24);
1642
+ text-overflow: ellipsis;
1643
+ white-space: nowrap;
1644
+ overflow: hidden;
1645
+ }
1646
+
1647
+ .media-icon {
1648
+ width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
1649
+ height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
1650
+ opacity: 0.7;
1651
+ filter: drop-shadow(0 1px #00000026);
1652
+ flex-shrink: 0;
1653
+ }
1654
+
1655
+ @media (hover: hover) {
1656
+ @scope (.media-menu-item) {
1657
+ &:hover .media-icon {
1658
+ opacity: 1;
1659
+ }
1660
+ }
1661
+
1662
+ .media-menu-item:hover {
1663
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
1664
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
1665
+ }
1666
+ }
1667
+
1668
+ .media-indicator {
1669
+ margin-right: calc(var(--media-spacing) * -1);
1670
+ opacity: 0;
1671
+ flex-shrink: 0;
1672
+ margin-left: auto;
1673
+ }
1674
+
1675
+ @scope (.media-menu-item) {
1676
+ &[aria-checked='true'] .media-indicator {
1677
+ opacity: 1;
1678
+ }
1679
+ }
1680
+
1681
+ .media-item {
1682
+ color: inherit;
1683
+ font-variant-numeric: tabular-nums;
1684
+ justify-content: space-between;
1685
+ }
1686
+
1687
+ .media-item[aria-disabled='true'] {
1688
+ pointer-events: none;
1689
+ cursor: not-allowed;
1690
+ opacity: 0.5;
1691
+ }
1692
+
1693
+ .media-item[data-availability='unavailable'],
1694
+ .media-item[data-availability='unsupported'] {
1695
+ display: none;
1696
+ }
1697
+
1698
+ .media-menu-group {
1699
+ gap: calc(var(--media-spacing) * 0.5);
1700
+ anchor-scope: --media-menu-item-highlight-anchor;
1701
+ flex-direction: column;
1702
+ display: flex;
1703
+ position: relative;
1704
+ }
1705
+
1706
+ .media-menu-item {
1707
+ cursor: pointer;
1708
+ align-items: center;
1709
+ gap: calc(var(--media-spacing) * 1.5);
1710
+ border-radius: var(--media-surface-radius);
1711
+ padding-inline: calc(var(--media-spacing) * 2);
1712
+ padding-block: calc(var(--media-spacing) * 1.5);
1713
+ text-align: left;
1714
+ outline-offset: -2px;
1715
+ -webkit-user-select: none;
1716
+ user-select: none;
1717
+ outline: 2px solid #0000;
1718
+ transition-property: color, background-color;
1719
+ transition-duration: 0.1s;
1720
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1721
+ display: flex;
1722
+ position: relative;
1723
+ }
1724
+
1725
+ .media-menu-item:focus-visible {
1726
+ outline-offset: 2px;
1727
+ outline-color: currentColor;
1728
+ }
1729
+
1730
+ .media-menu-item[data-highlighted] {
1731
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
1732
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
1733
+ }
1734
+
1735
+ @media (prefers-reduced-motion: reduce) {
1736
+ .media-menu-item {
1737
+ transition-duration: 50ms;
1738
+ }
1739
+
1740
+ .media-settings {
1741
+ transition-duration: 0s, 0s, 0s, 0s, 0.25s, 0.25s;
1742
+ }
1743
+
1744
+ .media-settings-icon {
1745
+ transition-duration: 0s;
1746
+ }
1747
+ }
1748
+
1749
+ .media-radio-group {
1750
+ gap: calc(var(--media-spacing) * 0.5);
1751
+ anchor-scope: --media-menu-item-highlight-anchor;
1752
+ flex-direction: column;
1753
+ display: flex;
1754
+ position: relative;
1755
+ }
1756
+
1757
+ .media-separator {
1758
+ margin-block: calc(var(--media-spacing) * 1);
1759
+ border-color: oklab(100% 0 5.96046e-8 / 0.1);
1760
+ border-bottom-style: solid;
1761
+ border-bottom-width: 1px;
1762
+ }
1763
+
1764
+ @media (prefers-contrast: more) {
1765
+ .media-separator {
1766
+ border-color: oklab(100% 0 5.96046e-8 / 0.25);
1767
+ }
1768
+ }
1769
+
1770
+ @media (forced-colors: active) {
1771
+ .media-separator {
1772
+ border-color: canvastext;
1773
+ }
1774
+ }
1775
+
1776
+ @media (prefers-reduced-transparency: reduce) {
1777
+ .media-separator {
1778
+ border-color: oklab(100% 0 5.96046e-8 / 0.25);
1779
+ }
1780
+ }
1781
+
1782
+ .media-settings {
1783
+ margin: calc(var(--media-spacing) * 0);
1784
+ height: var(--media-menu-height);
1785
+ max-height: min(var(--media-popover-available-height, 14rem), 14rem);
1786
+ width: var(--media-menu-width);
1787
+ max-width: var(--media-popover-available-width);
1788
+ min-width: calc(var(--media-spacing) * 48);
1789
+ overscroll-behavior: none;
1790
+ padding: calc(var(--media-spacing) * 1);
1791
+ border-style: solid;
1792
+ border-width: 0;
1793
+ border-radius: 0.75rem;
1794
+ transition-property: opacity, filter, transform, scale, width, height;
1795
+ transition-duration: 0.1s, 0.1s, 0.1s, 0.1s, 0.25s, 0.25s;
1796
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
1797
+ overflow: hidden;
1798
+ }
1799
+
1800
+ .media-settings[data-submenu-expanded='true'] > :not([data-submenu]) {
1801
+ filter: blur(8px);
1802
+ translate: -100%;
1803
+ }
1804
+
1805
+ .media-settings-icon {
1806
+ transition-property: transform, translate, scale, rotate;
1807
+ transition-duration: 0.15s;
1808
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1809
+ }
1810
+
1811
+ @scope (.media-settings-trigger) {
1812
+ &[aria-expanded='true'] .media-settings-icon {
1813
+ rotate: 90deg;
1814
+ }
1815
+ }
1816
+
1817
+ .media-sr-only {
1818
+ clip-path: inset(50%);
1819
+ white-space: nowrap;
1820
+ border-width: 0;
1821
+ width: 1px;
1822
+ height: 1px;
1823
+ margin: -1px;
1824
+ padding: 0;
1825
+ position: absolute;
1826
+ overflow: hidden;
1827
+ }
1828
+
1829
+ .media-submenu-panel {
1830
+ inset-inline: calc(var(--media-spacing) * 0);
1831
+ top: calc(var(--media-spacing) * 0);
1832
+ z-index: 10;
1833
+ max-height: inherit;
1834
+ overscroll-behavior: none;
1835
+ padding: calc(var(--media-spacing) * 1);
1836
+ outline-style: none;
1837
+ transition-property: translate, filter;
1838
+ transition-duration: 0.25s;
1839
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
1840
+ position: absolute;
1841
+ overflow: auto;
1842
+ }
1843
+
1844
+ .media-submenu-panel[data-ending-style],
1845
+ .media-submenu-panel[data-starting-style] {
1846
+ pointer-events: none;
1847
+ filter: blur(8px);
1848
+ translate: 100%;
1849
+ }
1850
+
1851
+ .media-tier {
1852
+ padding-left: calc(var(--media-spacing) * 0.5);
1853
+ opacity: 0.7;
1854
+ font-size: 0.7em;
1855
+ font-weight: 600;
1856
+ line-height: 1;
1857
+ }
1858
+ }
1859
+ }
1860
+
1861
+ @layer videojs.components {
1862
+ @scope (.media-skin-video) {
1863
+ .media-overlay {
1864
+ pointer-events: none;
1865
+ inset: calc(var(--media-spacing) * 0);
1866
+ border-radius: inherit;
1867
+ opacity: 0;
1868
+ transition-property: opacity, backdrop-filter;
1869
+ transition-duration: var(--media-controls-transition-duration);
1870
+ background-image: linear-gradient(
1871
+ to top,
1872
+ oklab(0% none none / 0.5) 0%,
1873
+ oklab(0% none none / 0.3) 25%,
1874
+ #0000 100%
1875
+ );
1876
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
1877
+ position: absolute;
1878
+ }
1879
+
1880
+ .media-overlay:is(:where(.media-error-dialog)[data-open] ~ *) {
1881
+ opacity: 1;
1882
+ backdrop-filter: blur(16px) saturate(150%);
1883
+ }
1884
+
1885
+ .media-overlay:is(:where(.media-buffering-indicator)[data-visible] ~ *) {
1886
+ opacity: 1;
1887
+ backdrop-filter: blur(4px);
1888
+ background-color: oklab(0% none none / 0.35);
1889
+ }
1890
+
1891
+ .media-overlay:is(:where(.media-controls-root)[data-visible] ~ *) {
1892
+ opacity: 1;
1893
+ }
1894
+ }
1895
+ }
1896
+
1897
+ @layer videojs.components {
1898
+ @scope (.media-skin-video) {
1899
+ .media-popover {
1900
+ margin: calc(var(--media-spacing) * 0);
1901
+ color: inherit;
1902
+ border-style: solid;
1903
+ border-width: 0;
1904
+ transition-property: opacity, filter, transform, scale;
1905
+ transition-duration: 0.1s;
1906
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
1907
+ overflow: visible;
1908
+ }
1909
+
1910
+ .media-popover:before {
1911
+ pointer-events: auto;
1912
+ content: '';
1913
+ position: absolute;
1914
+ }
1915
+
1916
+ .media-popover[data-ending-style],
1917
+ .media-popover[data-starting-style] {
1918
+ opacity: 0;
1919
+ filter: blur(4px);
1920
+ scale: 0.95;
1921
+ }
1922
+
1923
+ .media-popover[data-side='bottom'] {
1924
+ transform-origin: top;
1925
+ }
1926
+
1927
+ .media-popover[data-side='bottom']:before {
1928
+ inset-inline: calc(var(--media-spacing) * 0);
1929
+ content: '';
1930
+ height: var(--media-popover-side-offset);
1931
+ bottom: 100%;
1932
+ }
1933
+
1934
+ .media-popover[data-side='left'] {
1935
+ transform-origin: 100%;
1936
+ }
1937
+
1938
+ .media-popover[data-side='left']:before {
1939
+ inset-block: calc(var(--media-spacing) * 0);
1940
+ content: '';
1941
+ width: var(--media-popover-side-offset);
1942
+ left: 100%;
1943
+ }
1944
+
1945
+ .media-popover[data-side='right'] {
1946
+ transform-origin: 0;
1947
+ }
1948
+
1949
+ .media-popover[data-side='right']:before {
1950
+ inset-block: calc(var(--media-spacing) * 0);
1951
+ content: '';
1952
+ width: var(--media-popover-side-offset);
1953
+ right: 100%;
1954
+ }
1955
+
1956
+ .media-popover[data-side='top'] {
1957
+ transform-origin: bottom;
1958
+ }
1959
+
1960
+ .media-popover[data-side='top']:before {
1961
+ inset-inline: calc(var(--media-spacing) * 0);
1962
+ content: '';
1963
+ height: var(--media-popover-side-offset);
1964
+ top: 100%;
1965
+ }
1966
+
1967
+ @media (prefers-reduced-motion: reduce) {
1968
+ .media-popover,
1969
+ .media-tooltip,
1970
+ .media-volume-popover {
1971
+ transition-duration: 0s;
1972
+ }
1973
+ }
1974
+
1975
+ .media-surface {
1976
+ color: #fff;
1977
+ backdrop-filter: blur(16px) saturate(150%);
1978
+ background-color: oklab(100% 0 5.96046e-8 / 0.1);
1979
+ position: relative;
1980
+ box-shadow:
1981
+ 0 0 #0000,
1982
+ 0 0 #0000,
1983
+ 0 0 #0000,
1984
+ 0 0 0 1px oklab(0% none none / 0.1),
1985
+ 0 1px 3px oklab(0% none none / 0.15),
1986
+ 0 1px 2px -1px oklab(0% none none / 0.15);
1987
+ }
1988
+
1989
+ .media-surface:after {
1990
+ pointer-events: none;
1991
+ inset: calc(var(--media-spacing) * 0);
1992
+ z-index: 10;
1993
+ border-radius: inherit;
1994
+ content: '';
1995
+ position: absolute;
1996
+ box-shadow:
1997
+ 0 0 #0000,
1998
+ 0 0 #0000,
1999
+ 0 0 #0000,
2000
+ 0 0 #0000,
2001
+ inset 0 1px #ffffff1a,
2002
+ inset 0 0 0 1px #ffffff0d;
2003
+ }
2004
+
2005
+ @media (prefers-contrast: more) {
2006
+ .media-surface {
2007
+ backdrop-filter: none;
2008
+ background-color: #000;
2009
+ box-shadow:
2010
+ 0 0 #0000,
2011
+ 0 0 #0000,
2012
+ 0 0 #0000,
2013
+ 0 0 0 1px #0000,
2014
+ 0 1px 3px #00000026,
2015
+ 0 1px 2px -1px #00000026;
2016
+ }
2017
+
2018
+ .media-surface:after {
2019
+ content: '';
2020
+ box-shadow:
2021
+ 0 0 #0000,
2022
+ 0 0 #0000,
2023
+ 0 0 #0000,
2024
+ 0 0 #0000,
2025
+ inset 0 1px #ffffff40,
2026
+ inset 0 0 0 1px #ffffff20;
2027
+ }
2028
+ }
2029
+
2030
+ @media (forced-colors: active) {
2031
+ .media-surface {
2032
+ background-color: canvas;
2033
+ box-shadow:
2034
+ 0 0 #0000,
2035
+ 0 0 #0000,
2036
+ 0 0 #0000,
2037
+ 0 0 0 1px canvastext,
2038
+ 0 1px 3px #00000026,
2039
+ 0 1px 2px -1px #00000026;
2040
+ }
2041
+
2042
+ .media-surface:after {
2043
+ content: '';
2044
+ box-shadow:
2045
+ 0 0 #0000,
2046
+ 0 0 #0000,
2047
+ 0 0 #0000,
2048
+ 0 0 #0000,
2049
+ inset 0 1px canvastext,
2050
+ inset 0 0 0 1px canvastext;
2051
+ }
2052
+ }
2053
+
2054
+ @media (prefers-reduced-transparency: reduce) {
2055
+ .media-surface {
2056
+ backdrop-filter: none;
2057
+ background-color: #000;
2058
+ box-shadow:
2059
+ 0 0 #0000,
2060
+ 0 0 #0000,
2061
+ 0 0 #0000,
2062
+ 0 0 0 1px #0000,
2063
+ 0 1px 3px #00000026,
2064
+ 0 1px 2px -1px #00000026;
2065
+ }
2066
+
2067
+ .media-surface:after {
2068
+ content: '';
2069
+ box-shadow:
2070
+ 0 0 #0000,
2071
+ 0 0 #0000,
2072
+ 0 0 #0000,
2073
+ 0 0 #0000,
2074
+ inset 0 1px #ffffff40,
2075
+ inset 0 0 0 1px #ffffff20;
2076
+ }
2077
+ }
2078
+
2079
+ .media-tooltip {
2080
+ margin: calc(var(--media-spacing) * 0);
2081
+ border-radius: var(--media-control-radius);
2082
+ padding-inline: calc(var(--media-spacing) * 2.5);
2083
+ white-space: nowrap;
2084
+ color: inherit;
2085
+ border-style: solid;
2086
+ border-width: 0;
2087
+ padding-block: 0.35rem;
2088
+ transition-property: opacity, filter, transform, scale;
2089
+ transition-duration: 0.1s;
2090
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
2091
+ overflow: visible;
2092
+ }
2093
+
2094
+ .media-tooltip:before {
2095
+ pointer-events: auto;
2096
+ content: '';
2097
+ position: absolute;
2098
+ }
2099
+
2100
+ .media-tooltip[data-ending-style] {
2101
+ opacity: 0;
2102
+ filter: blur(4px);
2103
+ scale: 0.95;
2104
+ }
2105
+
2106
+ .media-tooltip[data-open] {
2107
+ align-items: center;
2108
+ gap: calc(var(--media-spacing) * 1);
2109
+ display: flex;
2110
+ }
2111
+
2112
+ .media-tooltip[data-starting-style] {
2113
+ opacity: 0;
2114
+ filter: blur(4px);
2115
+ scale: 0.95;
2116
+ }
2117
+
2118
+ .media-tooltip[data-side='bottom'] {
2119
+ transform-origin: top;
2120
+ }
2121
+
2122
+ .media-tooltip[data-side='bottom']:before {
2123
+ inset-inline: calc(var(--media-spacing) * 0);
2124
+ content: '';
2125
+ height: var(--media-tooltip-side-offset);
2126
+ bottom: 100%;
2127
+ }
2128
+
2129
+ .media-tooltip[data-side='left'] {
2130
+ transform-origin: 100%;
2131
+ }
2132
+
2133
+ .media-tooltip[data-side='left']:before {
2134
+ inset-block: calc(var(--media-spacing) * 0);
2135
+ content: '';
2136
+ width: var(--media-tooltip-side-offset);
2137
+ left: 100%;
2138
+ }
2139
+
2140
+ .media-tooltip[data-side='right'] {
2141
+ transform-origin: 0;
2142
+ }
2143
+
2144
+ .media-tooltip[data-side='right']:before {
2145
+ inset-block: calc(var(--media-spacing) * 0);
2146
+ content: '';
2147
+ width: var(--media-tooltip-side-offset);
2148
+ right: 100%;
2149
+ }
2150
+
2151
+ .media-tooltip[data-side='top'] {
2152
+ transform-origin: bottom;
2153
+ }
2154
+
2155
+ .media-tooltip[data-side='top']:before {
2156
+ inset-inline: calc(var(--media-spacing) * 0);
2157
+ content: '';
2158
+ height: var(--media-tooltip-side-offset);
2159
+ top: 100%;
2160
+ }
2161
+
2162
+ .media-tooltip-shortcut {
2163
+ min-width: calc(var(--media-spacing) * 6);
2164
+ text-align: center;
2165
+ background-color: currentColor;
2166
+ border-radius: 0.25rem;
2167
+ padding: 0.1em;
2168
+ font-size: 0.75em;
2169
+ font-weight: 600;
2170
+ line-height: 1.25;
2171
+ }
2172
+
2173
+ @supports (color: color-mix(in lab, red, red)) {
2174
+ .media-tooltip-shortcut {
2175
+ background-color: color-mix(in oklab, currentcolor 30%, transparent);
2176
+ }
2177
+ }
2178
+
2179
+ .media-volume-popover {
2180
+ margin: calc(var(--media-spacing) * 0);
2181
+ border-radius: var(--media-control-radius);
2182
+ padding-block: calc(var(--media-spacing) * 3);
2183
+ color: inherit;
2184
+ border-style: solid;
2185
+ border-width: 0;
2186
+ transition-property: opacity, filter, transform, scale;
2187
+ transition-duration: 0.1s;
2188
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
2189
+ overflow: visible;
2190
+ }
2191
+
2192
+ .media-volume-popover:before {
2193
+ pointer-events: auto;
2194
+ content: '';
2195
+ position: absolute;
2196
+ }
2197
+
2198
+ .media-volume-popover:has(:is(media-volume-slider[data-hidden])) {
2199
+ display: none;
2200
+ }
2201
+
2202
+ .media-volume-popover[data-ending-style],
2203
+ .media-volume-popover[data-starting-style] {
2204
+ opacity: 0;
2205
+ filter: blur(4px);
2206
+ scale: 0.95;
2207
+ }
2208
+
2209
+ .media-volume-popover[data-side='bottom'] {
2210
+ transform-origin: top;
2211
+ }
2212
+
2213
+ .media-volume-popover[data-side='bottom']:before {
2214
+ inset-inline: calc(var(--media-spacing) * 0);
2215
+ content: '';
2216
+ height: var(--media-popover-side-offset);
2217
+ bottom: 100%;
2218
+ }
2219
+
2220
+ .media-volume-popover[data-side='left'] {
2221
+ transform-origin: 100%;
2222
+ }
2223
+
2224
+ .media-volume-popover[data-side='left']:before {
2225
+ inset-block: calc(var(--media-spacing) * 0);
2226
+ content: '';
2227
+ width: var(--media-popover-side-offset);
2228
+ left: 100%;
2229
+ }
2230
+
2231
+ .media-volume-popover[data-side='right'] {
2232
+ transform-origin: 0;
2233
+ padding: calc(var(--media-spacing) * 0);
2234
+ backdrop-filter: none;
2235
+ background-color: #0000;
2236
+ box-shadow:
2237
+ 0 0 #0000,
2238
+ 0 0 #0000,
2239
+ 0 0 #0000,
2240
+ 0 0,
2241
+ 0 0 #0000;
2242
+ }
2243
+
2244
+ .media-volume-popover[data-side='right']:before {
2245
+ inset-block: calc(var(--media-spacing) * 0);
2246
+ content: '';
2247
+ width: var(--media-popover-side-offset);
2248
+ right: 100%;
2249
+ }
2250
+
2251
+ .media-volume-popover[data-side='right']:after {
2252
+ content: '';
2253
+ display: none;
2254
+ }
2255
+
2256
+ .media-volume-popover[data-side='top'] {
2257
+ transform-origin: bottom;
2258
+ }
2259
+
2260
+ .media-volume-popover[data-side='top']:before {
2261
+ inset-inline: calc(var(--media-spacing) * 0);
2262
+ content: '';
2263
+ height: var(--media-popover-side-offset);
2264
+ top: 100%;
2265
+ }
2266
+ }
2267
+ }
2268
+
2269
+ @layer videojs.components {
2270
+ @scope (.media-skin-video) {
2271
+ .media-poster {
2272
+ pointer-events: none;
2273
+ inset: calc(var(--media-spacing) * 0);
2274
+ border-radius: inherit;
2275
+ object-fit: var(--media-object-fit, contain);
2276
+ object-position: var(--media-object-position, center);
2277
+ width: 100%;
2278
+ height: 100%;
2279
+ transition-property: opacity;
2280
+ transition-duration: 0.25s;
2281
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2282
+ position: absolute;
2283
+ }
2284
+
2285
+ .media-poster:not([data-visible]) {
2286
+ opacity: 0;
2287
+ }
2288
+
2289
+ .media-poster:before {
2290
+ pointer-events: none;
2291
+ inset: calc(var(--media-spacing) * 0);
2292
+ background-image: var(--media-poster-placeholder, none);
2293
+ background-size: var(--media-object-fit, contain);
2294
+ background-position: var(--media-object-position, center);
2295
+ content: '';
2296
+ filter: blur(var(--media-poster-placeholder-blur, 20px));
2297
+ background-repeat: no-repeat;
2298
+ position: absolute;
2299
+ }
2300
+
2301
+ .media-poster ::slotted(img) {
2302
+ inset: calc(var(--media-spacing) * 0);
2303
+ border-radius: inherit;
2304
+ object-fit: var(--media-object-fit, contain);
2305
+ object-position: var(--media-object-position, center);
2306
+ width: 100%;
2307
+ height: 100%;
2308
+ position: absolute;
2309
+ }
2310
+
2311
+ .media-poster[data-visible][src]:not([data-loaded]) {
2312
+ opacity: 0;
2313
+ }
2314
+ }
2315
+ }
2316
+
2317
+ @layer videojs.components {
2318
+ @scope (.media-skin-video) {
2319
+ .media-chapter-title {
2320
+ max-width: var(--media-slider-preview-max-width);
2321
+ min-width: calc(var(--media-spacing) * 0);
2322
+ padding-inline: calc(var(--media-spacing) * 3);
2323
+ text-overflow: ellipsis;
2324
+ white-space: nowrap;
2325
+ overflow: hidden;
2326
+ }
2327
+
2328
+ .media-chapter-title:empty {
2329
+ display: none;
2330
+ }
2331
+
2332
+ .media-preview-value {
2333
+ max-width: var(--media-slider-preview-max-width);
2334
+ transform-origin: bottom;
2335
+ translate: -50% calc(var(--media-spacing) * 2);
2336
+ font-variant-numeric: tabular-nums;
2337
+ opacity: 0;
2338
+ filter: blur(16px);
2339
+ flex-direction: column;
2340
+ align-items: center;
2341
+ transition-property: filter, opacity, scale;
2342
+ transition-duration: 0.15s;
2343
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
2344
+ display: flex;
2345
+ position: absolute;
2346
+ bottom: calc(100% + 2.625rem);
2347
+ left: 50%;
2348
+ scale: 0.8;
2349
+ }
2350
+
2351
+ @scope (.media-slider-preview) {
2352
+ &[data-interactive]:not([data-pointing]):not([data-dragging]) .media-preview-value,
2353
+ &[data-pointing] .media-preview-value {
2354
+ opacity: 1;
2355
+ filter: none;
2356
+ scale: 1;
2357
+ }
2358
+ }
2359
+
2360
+ @media (prefers-reduced-motion: reduce) {
2361
+ .media-preview-value {
2362
+ transition-duration: 50ms;
2363
+ }
2364
+
2365
+ .media-slider-preview:before {
2366
+ content: '';
2367
+ transition-duration: 50ms;
2368
+ }
2369
+
2370
+ .media-slider-thumb,
2371
+ .media-thumbnail,
2372
+ .media-thumbnail-image {
2373
+ transition-duration: 50ms;
2374
+ }
2375
+ }
2376
+
2377
+ .media-slider {
2378
+ cursor: pointer;
2379
+ border-radius: var(--media-control-radius);
2380
+ outline-style: none;
2381
+ flex: 1;
2382
+ justify-content: center;
2383
+ align-items: center;
2384
+ display: flex;
2385
+ position: relative;
2386
+ }
2387
+
2388
+ .media-slider[data-orientation='horizontal'] {
2389
+ height: calc(var(--media-spacing) * 8);
2390
+ min-width: calc(var(--media-spacing) * 20);
2391
+ }
2392
+
2393
+ .media-slider[data-orientation='vertical'] {
2394
+ height: calc(var(--media-spacing) * 20);
2395
+ width: calc(var(--media-spacing) * 8);
2396
+ min-width: calc(var(--media-spacing) * 0);
2397
+ }
2398
+
2399
+ .media-slider-buffer {
2400
+ inset-block: calc(var(--media-spacing) * 0);
2401
+ left: calc(var(--media-spacing) * 0);
2402
+ width: var(--media-slider-buffer);
2403
+ border-radius: inherit;
2404
+ background-color: currentColor;
2405
+ position: absolute;
2406
+ }
2407
+
2408
+ @supports (color: color-mix(in lab, red, red)) {
2409
+ .media-slider-buffer,
2410
+ .media-slider-chapter-track {
2411
+ background-color: color-mix(in oklab, currentcolor 20%, transparent);
2412
+ }
2413
+
2414
+ .media-slider-thumb:focus-visible {
2415
+ outline-color: color-mix(in oklab, currentcolor 15%, transparent);
2416
+ }
2417
+
2418
+ .media-slider-track {
2419
+ background-color: color-mix(in oklab, currentcolor 20%, transparent);
2420
+ }
2421
+ }
2422
+
2423
+ .media-slider-buffer[data-orientation='vertical'] {
2424
+ inset-inline: calc(var(--media-spacing) * 0);
435
2425
  top: auto;
436
- bottom: 0;
2426
+ bottom: calc(var(--media-spacing) * 0);
2427
+ height: var(--media-slider-buffer);
2428
+ width: auto;
2429
+ }
2430
+
2431
+ .media-slider-chapter {
2432
+ inset: calc(var(--media-spacing) * 0);
2433
+ min-height: calc(var(--media-spacing) * 0);
2434
+ min-width: calc(var(--media-spacing) * 0);
2435
+ --media-chapter-inset-end: 0.5;
2436
+ --media-chapter-inset-start: 0.5;
2437
+ justify-content: center;
2438
+ align-items: center;
2439
+ display: flex;
2440
+ position: absolute;
2441
+ }
2442
+
2443
+ .media-slider-chapter:first-child {
2444
+ --media-chapter-inset-start: 0;
2445
+ }
2446
+
2447
+ .media-slider-chapter:last-child {
2448
+ --media-chapter-inset-end: 0;
2449
+ }
2450
+
2451
+ .media-slider-chapter[data-orientation='horizontal'] {
2452
+ clip-path: inset(0 calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start));
2453
+ }
2454
+
2455
+ .media-slider-chapter[data-orientation='vertical'] {
2456
+ clip-path: inset(calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start) 0);
2457
+ }
2458
+
2459
+ .media-slider-chapter-track {
2460
+ isolation: isolate;
2461
+ border-radius: var(--media-control-radius);
2462
+ -webkit-user-select: none;
2463
+ user-select: none;
2464
+ background-color: currentColor;
2465
+ position: relative;
2466
+ overflow: hidden;
2467
+ }
2468
+
2469
+ .media-slider-chapter-track[data-orientation='horizontal'] {
2470
+ height: calc(var(--media-spacing) * 1);
2471
+ width: 100%;
2472
+ clip-path: inset(
2473
+ 0 calc(100% - var(--media-slider-chapter-end) + var(--media-spacing) * var(--media-chapter-inset-end)) 0
2474
+ calc(var(--media-slider-chapter-start) + var(--media-spacing) * var(--media-chapter-inset-start)) round
2475
+ var(--media-control-radius)
2476
+ );
2477
+ }
2478
+
2479
+ @scope (.media-slider-chapter) {
2480
+ &[data-highlighted] .media-slider-chapter-track[data-orientation='horizontal'] {
2481
+ height: calc(var(--media-spacing) * 1.75);
2482
+ }
2483
+ }
2484
+
2485
+ .media-slider-chapter-track[data-orientation='vertical'] {
2486
+ height: 100%;
2487
+ width: calc(var(--media-spacing) * 1);
2488
+ clip-path: inset(
2489
+ calc(100% - var(--media-slider-chapter-end) + var(--media-spacing) * var(--media-chapter-inset-end)) 0
2490
+ calc(var(--media-slider-chapter-start) + var(--media-spacing) * var(--media-chapter-inset-start)) 0 round
2491
+ var(--media-control-radius)
2492
+ );
2493
+ }
2494
+
2495
+ @scope (.media-slider-chapter) {
2496
+ &[data-highlighted] .media-slider-chapter-track[data-orientation='vertical'] {
2497
+ width: calc(var(--media-spacing) * 1.75);
2498
+ }
2499
+ }
2500
+
2501
+ @media (prefers-reduced-motion: no-preference) {
2502
+ .media-slider-chapter-track {
2503
+ transition-property: height, width;
2504
+ transition-duration: 0.2s;
2505
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
2506
+ }
2507
+ }
2508
+
2509
+ .media-slider-chapters {
2510
+ width: 100%;
2511
+ height: 100%;
2512
+ min-height: calc(var(--media-spacing) * 0);
2513
+ min-width: calc(var(--media-spacing) * 0);
2514
+ border-radius: inherit;
2515
+ flex: 1;
2516
+ align-items: center;
2517
+ display: flex;
2518
+ position: relative;
437
2519
  }
438
2520
 
439
2521
  .media-slider-fill {
2522
+ inset-block: calc(var(--media-spacing) * 0);
2523
+ left: calc(var(--media-spacing) * 0);
440
2524
  width: var(--media-slider-fill);
441
2525
  border-radius: inherit;
442
- inset-block: 0;
443
- background-color: currentColor;
2526
+ background-color: var(--media-accent-color, oklch(100% 0 0));
444
2527
  position: absolute;
445
- left: 0;
2528
+ }
2529
+
2530
+ @scope (.media-slider) {
2531
+ &[data-dragging] .media-slider-fill[data-orientation='horizontal'] {
2532
+ width: var(--media-slider-pointer);
2533
+ }
446
2534
  }
447
2535
 
448
2536
  .media-slider-fill[data-orientation='vertical'] {
2537
+ inset-inline: calc(var(--media-spacing) * 0);
2538
+ top: auto;
2539
+ bottom: calc(var(--media-spacing) * 0);
449
2540
  height: var(--media-slider-fill);
450
- inset-inline: 0;
451
2541
  width: auto;
452
- top: auto;
453
- bottom: 0;
2542
+ }
2543
+
2544
+ @scope (.media-slider) {
2545
+ &[data-dragging] .media-slider-fill[data-orientation='vertical'] {
2546
+ height: var(--media-slider-pointer);
2547
+ }
454
2548
  }
455
2549
 
456
2550
  .media-slider-preview {
2551
+ height: calc(var(--media-spacing) * 1);
2552
+ min-width: var(--media-slider-preview-max-width);
2553
+ --media-slider-preview-max-height: calc(var(--media-spacing) * 32);
2554
+ --media-slider-preview-max-width: min(calc(var(--media-spacing) * 48), 100cqi);
457
2555
  position: relative;
458
2556
  }
459
2557
 
2558
+ .media-slider-preview:before {
2559
+ pointer-events: none;
2560
+ z-index: 1;
2561
+ width: calc(var(--media-spacing) * 1);
2562
+ height: calc(var(--media-spacing) * 1);
2563
+ border-radius: var(--media-control-radius);
2564
+ opacity: 0;
2565
+ content: '';
2566
+ background-color: currentColor;
2567
+ transition-property: opacity, scale;
2568
+ transition-duration: 0.2s;
2569
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
2570
+ position: absolute;
2571
+ top: 50%;
2572
+ left: 50%;
2573
+ translate: -50% -50%;
2574
+ scale: 0.5;
2575
+ }
2576
+
2577
+ .media-slider-preview[data-pointing]:not([data-dragging]):before {
2578
+ content: '';
2579
+ opacity: 1;
2580
+ scale: 1;
2581
+ }
2582
+
460
2583
  .media-slider-thumb {
461
2584
  top: 50%;
462
2585
  left: var(--media-slider-fill);
463
- width: var(--media-slider-thumb-size);
464
- height: var(--media-slider-thumb-size);
465
- border-radius: var(--media-radius-pill);
2586
+ z-index: 10;
2587
+ border-radius: var(--media-control-radius);
2588
+ outline-offset: -4px;
466
2589
  background-color: currentColor;
2590
+ outline: 4px solid #0000;
2591
+ transition-property: opacity, height, width, outline-offset, left, top;
2592
+ transition-duration: 0.15s;
2593
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
467
2594
  position: absolute;
468
2595
  translate: -50% -50%;
469
2596
  }
470
2597
 
2598
+ @media (hover: hover) {
2599
+ .media-slider-thumb:hover {
2600
+ outline-offset: 0px;
2601
+ outline-color: currentColor;
2602
+ }
2603
+
2604
+ @supports (color: color-mix(in lab, red, red)) {
2605
+ .media-slider-thumb:hover {
2606
+ outline-color: color-mix(in oklab, currentcolor 15%, transparent);
2607
+ }
2608
+ }
2609
+
2610
+ @scope (.media-slider) {
2611
+ &:hover .media-slider-thumb-interactive {
2612
+ opacity: 1;
2613
+ }
2614
+ }
2615
+ }
2616
+
2617
+ .media-slider-thumb:focus-visible {
2618
+ outline-offset: 0px;
2619
+ outline-color: currentColor;
2620
+ }
2621
+
2622
+ @scope (.media-slider) {
2623
+ &[data-dragging] .media-slider-thumb[data-orientation='horizontal'] {
2624
+ left: var(--media-slider-pointer);
2625
+ }
2626
+ }
2627
+
471
2628
  .media-slider-thumb[data-orientation='vertical'] {
472
2629
  top: calc(100% - var(--media-slider-fill));
473
2630
  left: 50%;
474
2631
  }
475
2632
 
2633
+ @scope (.media-slider) {
2634
+ &[data-dragging] .media-slider-thumb[data-orientation='vertical'] {
2635
+ top: calc(100% - var(--media-slider-pointer));
2636
+ }
2637
+ }
2638
+
2639
+ .media-slider-thumb-interactive {
2640
+ width: calc(var(--media-spacing) * 2.5);
2641
+ height: calc(var(--media-spacing) * 2.5);
2642
+ opacity: 0;
2643
+ }
2644
+
2645
+ @scope (.media-slider) {
2646
+ &:focus-within .media-slider-thumb-interactive,
2647
+ &:active .media-slider-thumb-interactive {
2648
+ width: calc(var(--media-spacing) * 3);
2649
+ height: calc(var(--media-spacing) * 3);
2650
+ }
2651
+ }
2652
+
2653
+ .media-slider-thumb-interactive:focus-visible {
2654
+ opacity: 1;
2655
+ }
2656
+
2657
+ .media-slider-thumb-persistent {
2658
+ width: calc(var(--media-spacing) * 3);
2659
+ height: calc(var(--media-spacing) * 3);
2660
+ }
2661
+
476
2662
  .media-slider-track {
477
- height: var(--media-slider-track-size);
478
- border-radius: var(--media-radius-pill);
479
- background-color: var(--media-slider-track-background);
2663
+ isolation: isolate;
2664
+ border-radius: var(--media-control-radius);
2665
+ -webkit-user-select: none;
2666
+ user-select: none;
2667
+ background-color: currentColor;
480
2668
  width: 100%;
481
2669
  position: relative;
482
2670
  overflow: hidden;
483
2671
  }
484
2672
 
2673
+ .media-slider-track[data-orientation='horizontal'] {
2674
+ height: calc(var(--media-spacing) * 1);
2675
+ }
2676
+
485
2677
  .media-slider-track[data-orientation='vertical'] {
486
2678
  height: 100%;
487
- width: var(--media-slider-track-size);
2679
+ width: calc(var(--media-spacing) * 1);
488
2680
  }
489
2681
 
490
2682
  .media-slider-value {
@@ -492,22 +2684,69 @@
492
2684
  }
493
2685
 
494
2686
  .media-spinner-icon {
495
- width: var(--media-icon-size);
496
- height: var(--media-icon-size);
497
- filter: drop-shadow(0 1px 0 var(--media-shadow-color));
2687
+ width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
2688
+ height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
2689
+ opacity: 0;
2690
+ filter: drop-shadow(0 1px #00000026);
2691
+ position: absolute;
2692
+ top: 50%;
2693
+ left: 50%;
2694
+ translate: -50% -50%;
2695
+ }
2696
+
2697
+ @scope (.media-thumbnail) {
2698
+ &:has([role='img'][data-loading]) .media-spinner-icon {
2699
+ opacity: 1;
2700
+ }
498
2701
  }
499
2702
 
500
2703
  .media-thumbnail {
501
- border-radius: var(--media-radius-surface);
2704
+ pointer-events: none;
2705
+ max-width: var(--media-slider-preview-max-width);
2706
+ transform-origin: bottom;
2707
+ translate: -50% calc(var(--media-spacing) * 2);
2708
+ opacity: 0;
2709
+ filter: blur(16px);
2710
+ background-color: oklab(0% none none / 0.9);
2711
+ border-radius: 0.75rem;
2712
+ transition-property: filter, opacity, scale;
2713
+ transition-duration: 0.15s;
2714
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
502
2715
  position: absolute;
503
- bottom: calc(100% + 0.75rem);
2716
+ bottom: calc(100% + 2.25rem);
2717
+ left: 50%;
504
2718
  overflow: hidden;
2719
+ scale: 0.8;
2720
+ }
2721
+
2722
+ @scope (.media-slider-preview) {
2723
+ &[data-interactive]:not([data-pointing]):not([data-dragging]) .media-thumbnail,
2724
+ &[data-pointing] .media-thumbnail {
2725
+ opacity: 1;
2726
+ filter: none;
2727
+ scale: 1;
2728
+ }
2729
+ }
2730
+
2731
+ .media-thumbnail:has([data-loading]) {
2732
+ aspect-ratio: 16 / 9;
2733
+ width: var(--media-slider-preview-max-width);
505
2734
  }
506
2735
 
507
2736
  .media-thumbnail-image {
508
- max-width: 12rem;
509
- max-height: 7rem;
2737
+ max-height: var(--media-slider-preview-max-height);
2738
+ max-width: var(--media-slider-preview-max-width);
2739
+ border-radius: inherit;
2740
+ transition-property: opacity;
2741
+ transition-duration: 0.15s;
2742
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
510
2743
  display: block;
2744
+ position: relative;
2745
+ overflow: clip;
2746
+ }
2747
+
2748
+ .media-thumbnail-image[data-loading] {
2749
+ opacity: 0;
511
2750
  }
512
2751
  }
513
2752
  }