@videojs/html 10.2.0 → 10.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/dist/default/define/audio/compat-skin.css +72 -5
  2. package/dist/default/define/audio/compat-skin2.js +1 -1
  3. package/dist/default/define/audio/neutral-skin.css +23 -5
  4. package/dist/default/define/audio/neutral-skin2.js +1 -1
  5. package/dist/default/define/audio/scaffold-skin.css +63 -4
  6. package/dist/default/define/audio/scaffold-skin2.js +1 -1
  7. package/dist/default/define/audio/skin.css +21 -5
  8. package/dist/default/define/audio/skin2.js +1 -1
  9. package/dist/default/define/extensions/google-analytics.js +6 -0
  10. package/dist/default/define/live-audio/compat-skin.css +54 -5
  11. package/dist/default/define/live-audio/compat-skin2.js +1 -1
  12. package/dist/default/define/live-audio/neutral-skin.css +8 -4
  13. package/dist/default/define/live-audio/neutral-skin2.js +1 -1
  14. package/dist/default/define/live-audio/scaffold-skin.css +45 -4
  15. package/dist/default/define/live-audio/scaffold-skin2.js +1 -1
  16. package/dist/default/define/live-audio/skin.css +6 -4
  17. package/dist/default/define/live-audio/skin2.js +1 -1
  18. package/dist/default/define/live-video/compat-skin.css +115 -13
  19. package/dist/default/define/live-video/compat-skin2.js +1 -1
  20. package/dist/default/define/live-video/neutral-skin.css +82 -14
  21. package/dist/default/define/live-video/neutral-skin2.js +1 -1
  22. package/dist/default/define/live-video/scaffold-skin.css +95 -13
  23. package/dist/default/define/live-video/scaffold-skin2.js +1 -1
  24. package/dist/default/define/live-video/skin.css +96 -16
  25. package/dist/default/define/live-video/skin2.js +1 -1
  26. package/dist/default/define/media/dailymotion-video.js +11 -0
  27. package/dist/default/define/media/mixcloud-audio.js +11 -0
  28. package/dist/default/define/media/soundcloud-audio.js +11 -0
  29. package/dist/default/define/video/compat-skin.css +115 -13
  30. package/dist/default/define/video/compat-skin2.js +1 -1
  31. package/dist/default/define/video/neutral-skin.css +83 -14
  32. package/dist/default/define/video/neutral-skin2.js +1 -1
  33. package/dist/default/define/video/scaffold-skin.css +95 -13
  34. package/dist/default/define/video/scaffold-skin2.js +1 -1
  35. package/dist/default/define/video/skin.css +94 -16
  36. package/dist/default/define/video/skin2.js +1 -1
  37. package/dist/default/extensions/google-analytics/extension.js +75 -0
  38. package/dist/default/extensions/mux-data/extension.js +7 -2
  39. package/dist/default/internal/skins/compat-audio/skin.css +72 -5
  40. package/dist/default/internal/skins/compat-audio/template.js +1 -1
  41. package/dist/default/internal/skins/compat-live-audio/skin.css +54 -5
  42. package/dist/default/internal/skins/compat-live-video/skin.css +115 -13
  43. package/dist/default/internal/skins/compat-video/skin.css +115 -13
  44. package/dist/default/internal/skins/default-audio/skin.css +21 -5
  45. package/dist/default/internal/skins/default-live-audio/skin.css +6 -4
  46. package/dist/default/internal/skins/default-live-video/skin.css +96 -16
  47. package/dist/default/internal/skins/default-video/skin.css +94 -16
  48. package/dist/default/internal/skins/neutral-audio/skin.css +23 -5
  49. package/dist/default/internal/skins/neutral-live-audio/skin.css +8 -4
  50. package/dist/default/internal/skins/neutral-live-video/skin.css +82 -14
  51. package/dist/default/internal/skins/neutral-video/skin.css +83 -14
  52. package/dist/default/internal/skins/scaffold-audio/skin.css +63 -4
  53. package/dist/default/internal/skins/scaffold-audio/template.js +1 -1
  54. package/dist/default/internal/skins/scaffold-live-audio/skin.css +45 -4
  55. package/dist/default/internal/skins/scaffold-live-video/skin.css +95 -13
  56. package/dist/default/internal/skins/scaffold-video/skin.css +95 -13
  57. package/dist/default/media/dailymotion-video/adapter.js +31 -0
  58. package/dist/default/media/hls-background-video/adapter.js +7 -0
  59. package/dist/default/media/mixcloud-audio/adapter.js +16 -0
  60. package/dist/default/media/soundcloud-audio/adapter.js +16 -0
  61. package/dist/default/player/element.js +1 -5
  62. package/dist/default/presets/background/skin.js +2 -2
  63. package/dist/default/presets/skin.js +4 -3
  64. package/dist/default/ui/dialog/element.js +13 -1
  65. package/dist/default/ui/gesture/element.js +3 -0
  66. package/dist/default/ui/media-button-element.js +10 -1
  67. package/dist/default/ui/playback-rate-button/element.js +7 -2
  68. package/dist/default/ui/playback-rate-radio-group/element.js +10 -3
  69. package/dist/default/ui/radio-options/controller.js +18 -5
  70. package/dist/default/version.js +1 -1
  71. package/dist/dev/define/audio/compat-skin.css +72 -5
  72. package/dist/dev/define/audio/compat-skin2.js +1 -1
  73. package/dist/dev/define/audio/compat-skin2.js.map +1 -1
  74. package/dist/dev/define/audio/neutral-skin.css +23 -5
  75. package/dist/dev/define/audio/neutral-skin2.js +1 -1
  76. package/dist/dev/define/audio/neutral-skin2.js.map +1 -1
  77. package/dist/dev/define/audio/scaffold-skin.css +63 -4
  78. package/dist/dev/define/audio/scaffold-skin2.js +1 -1
  79. package/dist/dev/define/audio/scaffold-skin2.js.map +1 -1
  80. package/dist/dev/define/audio/skin.css +21 -5
  81. package/dist/dev/define/audio/skin2.js +1 -1
  82. package/dist/dev/define/audio/skin2.js.map +1 -1
  83. package/dist/dev/define/extensions/google-analytics.d.ts +11 -0
  84. package/dist/dev/define/extensions/google-analytics.js +8 -0
  85. package/dist/dev/define/extensions/google-analytics.js.map +1 -0
  86. package/dist/dev/define/live-audio/compat-skin.css +54 -5
  87. package/dist/dev/define/live-audio/compat-skin2.js +1 -1
  88. package/dist/dev/define/live-audio/compat-skin2.js.map +1 -1
  89. package/dist/dev/define/live-audio/neutral-skin.css +8 -4
  90. package/dist/dev/define/live-audio/neutral-skin2.js +1 -1
  91. package/dist/dev/define/live-audio/neutral-skin2.js.map +1 -1
  92. package/dist/dev/define/live-audio/scaffold-skin.css +45 -4
  93. package/dist/dev/define/live-audio/scaffold-skin2.js +1 -1
  94. package/dist/dev/define/live-audio/scaffold-skin2.js.map +1 -1
  95. package/dist/dev/define/live-audio/skin.css +6 -4
  96. package/dist/dev/define/live-audio/skin2.js +1 -1
  97. package/dist/dev/define/live-audio/skin2.js.map +1 -1
  98. package/dist/dev/define/live-video/compat-skin.css +115 -13
  99. package/dist/dev/define/live-video/compat-skin2.js +1 -1
  100. package/dist/dev/define/live-video/compat-skin2.js.map +1 -1
  101. package/dist/dev/define/live-video/neutral-skin.css +82 -14
  102. package/dist/dev/define/live-video/neutral-skin2.js +1 -1
  103. package/dist/dev/define/live-video/neutral-skin2.js.map +1 -1
  104. package/dist/dev/define/live-video/scaffold-skin.css +95 -13
  105. package/dist/dev/define/live-video/scaffold-skin2.js +1 -1
  106. package/dist/dev/define/live-video/scaffold-skin2.js.map +1 -1
  107. package/dist/dev/define/live-video/skin.css +96 -16
  108. package/dist/dev/define/live-video/skin2.js +1 -1
  109. package/dist/dev/define/live-video/skin2.js.map +1 -1
  110. package/dist/dev/define/media/dailymotion-video.d.ts +15 -0
  111. package/dist/dev/define/media/dailymotion-video.js +13 -0
  112. package/dist/dev/define/media/dailymotion-video.js.map +1 -0
  113. package/dist/dev/define/media/mixcloud-audio.d.ts +15 -0
  114. package/dist/dev/define/media/mixcloud-audio.js +13 -0
  115. package/dist/dev/define/media/mixcloud-audio.js.map +1 -0
  116. package/dist/dev/define/media/soundcloud-audio.d.ts +15 -0
  117. package/dist/dev/define/media/soundcloud-audio.js +13 -0
  118. package/dist/dev/define/media/soundcloud-audio.js.map +1 -0
  119. package/dist/dev/define/video/compat-skin.css +115 -13
  120. package/dist/dev/define/video/compat-skin2.js +1 -1
  121. package/dist/dev/define/video/compat-skin2.js.map +1 -1
  122. package/dist/dev/define/video/neutral-skin.css +83 -14
  123. package/dist/dev/define/video/neutral-skin2.js +1 -1
  124. package/dist/dev/define/video/neutral-skin2.js.map +1 -1
  125. package/dist/dev/define/video/scaffold-skin.css +95 -13
  126. package/dist/dev/define/video/scaffold-skin2.js +1 -1
  127. package/dist/dev/define/video/scaffold-skin2.js.map +1 -1
  128. package/dist/dev/define/video/skin.css +94 -16
  129. package/dist/dev/define/video/skin2.js +1 -1
  130. package/dist/dev/define/video/skin2.js.map +1 -1
  131. package/dist/dev/extensions/google-analytics/extension.d.ts +52 -0
  132. package/dist/dev/extensions/google-analytics/extension.js +77 -0
  133. package/dist/dev/extensions/google-analytics/extension.js.map +1 -0
  134. package/dist/dev/extensions/google-analytics/index.d.ts +2 -0
  135. package/dist/dev/extensions/mux-data/extension.d.ts +4 -1
  136. package/dist/dev/extensions/mux-data/extension.js +7 -2
  137. package/dist/dev/extensions/mux-data/extension.js.map +1 -1
  138. package/dist/dev/index.d.ts +3 -3
  139. package/dist/dev/internal/skins/compat-audio/skin.css +72 -5
  140. package/dist/dev/internal/skins/compat-audio/template.js +1 -1
  141. package/dist/dev/internal/skins/compat-audio/template.js.map +1 -1
  142. package/dist/dev/internal/skins/compat-live-audio/skin.css +54 -5
  143. package/dist/dev/internal/skins/compat-live-video/skin.css +115 -13
  144. package/dist/dev/internal/skins/compat-video/skin.css +115 -13
  145. package/dist/dev/internal/skins/default-audio/skin.css +21 -5
  146. package/dist/dev/internal/skins/default-live-audio/skin.css +6 -4
  147. package/dist/dev/internal/skins/default-live-video/skin.css +96 -16
  148. package/dist/dev/internal/skins/default-video/skin.css +94 -16
  149. package/dist/dev/internal/skins/neutral-audio/skin.css +23 -5
  150. package/dist/dev/internal/skins/neutral-live-audio/skin.css +8 -4
  151. package/dist/dev/internal/skins/neutral-live-video/skin.css +82 -14
  152. package/dist/dev/internal/skins/neutral-video/skin.css +83 -14
  153. package/dist/dev/internal/skins/scaffold-audio/skin.css +63 -4
  154. package/dist/dev/internal/skins/scaffold-audio/template.js +1 -1
  155. package/dist/dev/internal/skins/scaffold-audio/template.js.map +1 -1
  156. package/dist/dev/internal/skins/scaffold-live-audio/skin.css +45 -4
  157. package/dist/dev/internal/skins/scaffold-live-video/skin.css +95 -13
  158. package/dist/dev/internal/skins/scaffold-video/skin.css +95 -13
  159. package/dist/dev/media/dailymotion-video/adapter.d.ts +17 -0
  160. package/dist/dev/media/dailymotion-video/adapter.js +47 -0
  161. package/dist/dev/media/dailymotion-video/adapter.js.map +1 -0
  162. package/dist/dev/media/dailymotion-video/index.d.ts +2 -0
  163. package/dist/dev/media/hls-background-video/adapter.d.ts +6 -1
  164. package/dist/dev/media/hls-background-video/adapter.js +7 -0
  165. package/dist/dev/media/hls-background-video/adapter.js.map +1 -1
  166. package/dist/dev/media/mixcloud-audio/adapter.d.ts +11 -0
  167. package/dist/dev/media/mixcloud-audio/adapter.js +52 -0
  168. package/dist/dev/media/mixcloud-audio/adapter.js.map +1 -0
  169. package/dist/dev/media/mixcloud-audio/index.d.ts +2 -0
  170. package/dist/dev/media/soundcloud-audio/adapter.d.ts +11 -0
  171. package/dist/dev/media/soundcloud-audio/adapter.js +53 -0
  172. package/dist/dev/media/soundcloud-audio/adapter.js.map +1 -0
  173. package/dist/dev/media/soundcloud-audio/index.d.ts +2 -0
  174. package/dist/dev/player/element.js +1 -5
  175. package/dist/dev/player/element.js.map +1 -1
  176. package/dist/dev/presets/background/skin.d.ts +2 -1
  177. package/dist/dev/presets/background/skin.js +2 -2
  178. package/dist/dev/presets/background/skin.js.map +1 -1
  179. package/dist/dev/presets/skin.d.ts +4 -3
  180. package/dist/dev/presets/skin.js +4 -3
  181. package/dist/dev/presets/skin.js.map +1 -1
  182. package/dist/dev/ui/dialog/element.js +13 -1
  183. package/dist/dev/ui/dialog/element.js.map +1 -1
  184. package/dist/dev/ui/gesture/element.js +3 -0
  185. package/dist/dev/ui/gesture/element.js.map +1 -1
  186. package/dist/dev/ui/media-button-element.d.ts +9 -0
  187. package/dist/dev/ui/media-button-element.js +10 -1
  188. package/dist/dev/ui/media-button-element.js.map +1 -1
  189. package/dist/dev/ui/play-button/element.d.ts +2 -0
  190. package/dist/dev/ui/playback-rate-button/element.d.ts +9 -1
  191. package/dist/dev/ui/playback-rate-button/element.js +7 -2
  192. package/dist/dev/ui/playback-rate-button/element.js.map +1 -1
  193. package/dist/dev/ui/playback-rate-radio-group/element.d.ts +4 -0
  194. package/dist/dev/ui/playback-rate-radio-group/element.js +10 -3
  195. package/dist/dev/ui/playback-rate-radio-group/element.js.map +1 -1
  196. package/dist/dev/ui/radio-options/controller.js +18 -5
  197. package/dist/dev/ui/radio-options/controller.js.map +1 -1
  198. package/dist/dev/version.js +1 -1
  199. package/docs/README.md +1 -1
  200. package/docs/guides/autoplay.md +1 -1
  201. package/docs/guides/browser-support.md +2 -0
  202. package/docs/guides/build-your-own-skin.md +3 -1
  203. package/docs/guides/cdn.md +10 -9
  204. package/docs/guides/content-security-policy.md +3 -0
  205. package/docs/guides/customize-skins.md +4 -2
  206. package/docs/guides/features.md +1 -1
  207. package/docs/guides/google-analytics.md +199 -0
  208. package/docs/guides/installation-cdn.md +4 -4
  209. package/docs/guides/installation-shadcn.md +3 -3
  210. package/docs/guides/installation-svelte.md +4 -4
  211. package/docs/guides/installation-vue.md +4 -4
  212. package/docs/guides/installation.md +4 -4
  213. package/docs/guides/internationalization.md +5 -5
  214. package/docs/guides/keyboard-shortcuts.md +1 -1
  215. package/docs/guides/llms.txt +2 -1
  216. package/docs/guides/media-sources.md +3 -0
  217. package/docs/guides/migrate-from-media-chrome.md +4 -4
  218. package/docs/guides/migrate-from-mux-player.md +9 -9
  219. package/docs/guides/migrate-from-plyr.md +8 -8
  220. package/docs/guides/migrate-from-video-js-8.md +8 -9
  221. package/docs/guides/migrate-from-vidstack.md +8 -8
  222. package/docs/guides/mux-data.md +22 -0
  223. package/docs/guides/presets.md +1 -1
  224. package/docs/guides/self-hosting.md +5 -5
  225. package/docs/guides/skins.md +16 -1
  226. package/docs/guides/ui-components.md +1 -1
  227. package/docs/llms.txt +10 -5
  228. package/docs/reference/api/feature-playback-rate.md +54 -3
  229. package/docs/reference/api/feature-playback.md +5 -1
  230. package/docs/reference/api/html-create-player.md +2 -2
  231. package/docs/reference/api/llms.txt +1 -1
  232. package/docs/reference/api/media-capabilities.md +1 -1
  233. package/docs/reference/api/player-store.md +6 -3
  234. package/docs/reference/api/preset-audio.md +13 -5
  235. package/docs/reference/api/preset-background.md +2 -2
  236. package/docs/reference/api/preset-live-audio.md +13 -5
  237. package/docs/reference/api/preset-live-video.md +13 -5
  238. package/docs/reference/api/preset-video.md +13 -5
  239. package/docs/reference/api/resolve-adapter-type.md +4 -1
  240. package/docs/reference/api/ui-element.md +2 -2
  241. package/docs/reference/components/alert-dialog.md +21 -16
  242. package/docs/reference/components/audio-compat-skin.md +8 -2
  243. package/docs/reference/components/audio-neutral-skin.md +2 -2
  244. package/docs/reference/components/audio-scaffold-skin.md +2 -2
  245. package/docs/reference/components/audio-skin.md +2 -2
  246. package/docs/reference/components/audio-track-radio-group.md +2 -2
  247. package/docs/reference/components/background-video-skin.md +1 -1
  248. package/docs/reference/components/background-video.md +1 -1
  249. package/docs/reference/components/buffering-indicator.md +2 -2
  250. package/docs/reference/components/captions-radio-group.md +2 -2
  251. package/docs/reference/components/cloudflare-video.md +1 -1
  252. package/docs/reference/components/dailymotion-video.md +192 -0
  253. package/docs/reference/components/dash-video.md +2 -1
  254. package/docs/reference/components/dialog.md +49 -22
  255. package/docs/reference/components/error-dialog.md +13 -10
  256. package/docs/reference/components/gesture.md +2 -2
  257. package/docs/reference/components/google-analytics.md +51 -0
  258. package/docs/reference/components/google-cast.md +1 -1
  259. package/docs/reference/components/hls-audio.md +1 -1
  260. package/docs/reference/components/hls-background-video.md +4 -1
  261. package/docs/reference/components/hls-video.md +1 -1
  262. package/docs/reference/components/hlsjs-video.md +3 -1
  263. package/docs/reference/components/hotkey.md +2 -2
  264. package/docs/reference/components/live-audio-compat-skin.md +8 -2
  265. package/docs/reference/components/live-audio-neutral-skin.md +2 -2
  266. package/docs/reference/components/live-audio-scaffold-skin.md +2 -2
  267. package/docs/reference/components/live-audio-skin.md +2 -2
  268. package/docs/reference/components/live-video-compat-skin.md +8 -2
  269. package/docs/reference/components/live-video-neutral-skin.md +2 -2
  270. package/docs/reference/components/live-video-scaffold-skin.md +2 -2
  271. package/docs/reference/components/live-video-skin.md +2 -2
  272. package/docs/reference/components/llms.txt +9 -5
  273. package/docs/reference/components/mixcloud-audio.md +203 -0
  274. package/docs/reference/components/mux-audio.md +3 -1
  275. package/docs/reference/components/mux-background-video.md +1 -1
  276. package/docs/reference/components/mux-data.md +20 -2
  277. package/docs/reference/components/mux-video.md +3 -1
  278. package/docs/reference/components/native-hls-video.md +2 -1
  279. package/docs/reference/components/play-button.md +7 -5
  280. package/docs/reference/components/playback-rate-button.md +26 -7
  281. package/docs/reference/components/playback-rate-radio-group.md +7 -4
  282. package/docs/reference/components/player.md +3 -3
  283. package/docs/reference/components/playerjs-video.md +1 -1
  284. package/docs/reference/components/quality-radio-group.md +2 -2
  285. package/docs/reference/components/shaka-video.md +2 -1
  286. package/docs/reference/components/soundcloud-audio.md +227 -0
  287. package/docs/reference/components/spotify-audio.md +2 -2
  288. package/docs/reference/components/tiktok-video.md +2 -2
  289. package/docs/reference/components/twitch-video.md +2 -3
  290. package/docs/reference/components/video-compat-skin.md +8 -2
  291. package/docs/reference/components/video-neutral-skin.md +2 -2
  292. package/docs/reference/components/video-scaffold-skin.md +2 -2
  293. package/docs/reference/components/video-skin.md +2 -2
  294. package/docs/reference/components/vimeo-video.md +2 -1
  295. package/docs/reference/components/wistia-video.md +1 -1
  296. package/docs/reference/components/youtube-video.md +2 -1
  297. package/package.json +60 -40
@@ -259,6 +259,11 @@ media-container video::-webkit-media-text-track-container {
259
259
  transition-duration: var(--media-duration-slower);
260
260
  }
261
261
 
262
+ :where(.media-skin[data-theme="default"]) .media-dialog-backdrop[data-scope="document"] {
263
+ border-radius: 0;
264
+ position: fixed;
265
+ }
266
+
262
267
  :where(.media-skin[data-theme="default"]) .media-dialog-backdrop:is([data-starting-style], [data-ending-style]) {
263
268
  opacity: 0;
264
269
  }
@@ -346,6 +351,11 @@ media-container video::-webkit-media-text-track-container {
346
351
  transition-duration: var(--media-duration-slower);
347
352
  }
348
353
 
354
+ :where(.media-skin[data-theme="default"]) .media-dialog-popup[data-scope="document"] {
355
+ max-height: calc(100dvh - 1rem);
356
+ position: fixed;
357
+ }
358
+
349
359
  :where(.media-skin[data-theme="default"]) .media-dialog-popup:is([data-starting-style], [data-ending-style]) {
350
360
  scale: var(--media-hidden-popup-scale) var(--media-hidden-popup-scale);
351
361
  opacity: 0;
@@ -448,8 +458,8 @@ media-container video::-webkit-media-text-track-container {
448
458
  pointer-events: none;
449
459
  isolation: isolate;
450
460
  z-index: 20;
451
- min-height: calc(var(--media-control-size) + (calc(var(--media-spacing) * 2)));
452
461
  transform-origin: top;
462
+ grid-template-rows: minmax(calc(var(--media-control-size) - (calc(var(--media-spacing) * .5))), auto);
453
463
  padding-inline: calc(var(--media-spacing) * 6);
454
464
  padding-top: calc(var(--media-spacing) * 2.5);
455
465
  font-size: calc(var(--media-spacing) * 4);
@@ -460,13 +470,13 @@ media-container video::-webkit-media-text-track-container {
460
470
  transition-duration: .15s;
461
471
  transition-duration: calc(var(--media-duration-controls) / 2);
462
472
  text-shadow: 0 1px 0 var(--media-shadow-current-color);
463
- inset-inline: 0;
473
+ align-content: flex-start;
464
474
  align-items: center;
465
475
  font-weight: 500;
466
476
  transition-timing-function: cubic-bezier(0, 0, .2, 1);
467
- display: flex;
477
+ display: grid;
468
478
  position: absolute;
469
- top: 0;
479
+ inset: 0;
470
480
  }
471
481
 
472
482
  :where(.media-skin[data-theme="default"]) .media-title:not([data-visible]) {
@@ -484,11 +494,24 @@ media-container video::-webkit-media-text-track-container {
484
494
 
485
495
  @container media-root (width >= 28rem) {
486
496
  :where(.media-skin[data-theme="default"]) .media-title {
497
+ grid-template-rows: minmax(calc(var(--media-control-size) - (calc(var(--media-spacing) * 2))), auto);
487
498
  padding-inline: calc(var(--media-spacing) * 6);
488
499
  padding-top: calc(var(--media-spacing) * 4);
489
500
  }
490
501
  }
491
502
 
503
+ @container media-root (width >= 32rem) {
504
+ :where(.media-skin[data-theme="default"]) .media-title:before {
505
+ z-index: -1;
506
+ height: var(--media-controls-gradient-height);
507
+ content: "";
508
+ background-image: var(--media-controls-top-gradient);
509
+ inset-inline: 0;
510
+ position: absolute;
511
+ top: 0;
512
+ }
513
+ }
514
+
492
515
  @container media-root (width < 32rem) {
493
516
  :where(.media-skin[data-theme="default"]) .media-title {
494
517
  padding-right: calc(var(--media-spacing) * 36);
@@ -549,9 +572,9 @@ media-container video::-webkit-media-text-track-container {
549
572
  object-position: var(--media-object-position, center);
550
573
  width: 100%;
551
574
  max-width: 100%;
552
- height: 100%;
553
575
  margin: 0;
554
576
  display: block;
577
+ height: 100% !important;
555
578
  }
556
579
 
557
580
  :where(.media-skin[data-theme="default"]) .media-status-announcer {
@@ -1876,6 +1899,10 @@ media-container video::-webkit-media-text-track-container {
1876
1899
  opacity: .5;
1877
1900
  }
1878
1901
 
1902
+ :where(.media-skin[data-theme="default"]) .media-menu-radio-item[data-custom] {
1903
+ font-style: italic;
1904
+ }
1905
+
1879
1906
  :where(.media-skin[data-theme="default"]) .media-menu-radio-item[data-availability="unavailable"], :where(.media-skin[data-theme="default"]) .media-menu-radio-item[data-availability="unsupported"] {
1880
1907
  display: none;
1881
1908
  }
@@ -2289,9 +2316,12 @@ media-container video::-webkit-media-text-track-container {
2289
2316
  z-index: 10;
2290
2317
  border-radius: inherit;
2291
2318
  background-image: var(--media-controls-gradient);
2319
+ background-size: 100% var(--media-controls-bottom-gradient-height);
2292
2320
  transition-property: opacity;
2293
2321
  transition-duration: .15s;
2294
2322
  transition-duration: var(--media-duration-controls);
2323
+ background-position: bottom;
2324
+ background-repeat: no-repeat;
2295
2325
  transition-timing-function: cubic-bezier(0, 0, .2, 1);
2296
2326
  position: absolute;
2297
2327
  inset: 0;
@@ -2302,6 +2332,15 @@ media-container video::-webkit-media-text-track-container {
2302
2332
  }
2303
2333
 
2304
2334
  @container media-root (width < 32rem) {
2335
+ :where(.media-skin[data-theme="default"][data-preset="video"]) .video-controls-backdrop:before {
2336
+ height: var(--media-controls-gradient-height);
2337
+ content: "";
2338
+ background-image: var(--media-controls-top-gradient);
2339
+ inset-inline: 0;
2340
+ position: absolute;
2341
+ top: 0;
2342
+ }
2343
+
2305
2344
  :where(.media-skin[data-theme="default"][data-preset="video"]) .video-controls-captions-button {
2306
2345
  display: none;
2307
2346
  }
@@ -2586,7 +2625,7 @@ media-container video::-webkit-media-text-track-container {
2586
2625
  --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
2587
2626
  --media-accent-foreground: var(--media-accent-text-color, currentColor);
2588
2627
  --media-muted: oklch(100% 0 0 / .15);
2589
- --media-muted-foreground: oklch(100% 0 0 / .65);
2628
+ --media-muted-foreground: color-mix(in oklab, var(--media-foreground) 65%, transparent);
2590
2629
  --media-border: oklch(0% 0 0 / .1);
2591
2630
  --media-ring: oklch(100% 0 0);
2592
2631
  --media-backdrop: oklch(0% 0 0);
@@ -2599,9 +2638,9 @@ media-container video::-webkit-media-text-track-container {
2599
2638
  --media-shadow-current-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - .5) * .5), .15));
2600
2639
  --media-shadow-subtle-current-color: color-mix(in oklab, var(--media-shadow-current-color) 40%, transparent);
2601
2640
  --media-text-shadow-dialog: 0 1px 0 #00000040;
2602
- --media-backdrop-filter-surface: blur(16px) saturate(110%);
2641
+ --media-backdrop-filter-surface: blur(16px) saturate(125%);
2603
2642
  --media-backdrop-filter-indicator: blur(8px);
2604
- --media-backdrop-filter-dialog: blur(16px) saturate(110%);
2643
+ --media-backdrop-filter-dialog: blur(16px) saturate(125%);
2605
2644
  --media-control-corner-shape: round;
2606
2645
  --media-control-radius: 99px;
2607
2646
  --media-control-size: calc(var(--media-spacing) * 9);
@@ -2701,10 +2740,20 @@ media-container video::-webkit-media-text-track-container {
2701
2740
  @layer base.preset {
2702
2741
  .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
2703
2742
  --media-frame-border: var(--media-border-color, #0000001a);
2743
+ --media-controls-gradient-height: max(40%, calc(var(--media-spacing) * 40));
2744
+ --media-controls-bottom-gradient-height: max(50%, calc(var(--media-spacing) * 60));
2704
2745
  --media-controls-gradient: linear-gradient(to top,
2705
- color-mix(in oklab, var(--media-backdrop) 40%, transparent),
2706
- color-mix(in oklab, var(--media-backdrop) 20%, transparent),
2707
- color-mix(in oklab, var(--media-backdrop) 50%, transparent));
2746
+ color-mix(in oklab, var(--media-backdrop) 60%, transparent),
2747
+ color-mix(in oklab, var(--media-backdrop) 50.7%, transparent) 25%,
2748
+ color-mix(in oklab, var(--media-backdrop) 30%, transparent) 50%,
2749
+ color-mix(in oklab, var(--media-backdrop) 9.3%, transparent) 75%,
2750
+ transparent);
2751
+ --media-controls-top-gradient: linear-gradient(to bottom,
2752
+ color-mix(in oklab, var(--media-backdrop) 55%, transparent),
2753
+ color-mix(in oklab, var(--media-backdrop) 46.48%, transparent) 25%,
2754
+ color-mix(in oklab, var(--media-backdrop) 27.5%, transparent) 50%,
2755
+ color-mix(in oklab, var(--media-backdrop) 8.53%, transparent) 75%,
2756
+ transparent);
2708
2757
  --media-caption-controls-y: calc(var(--media-spacing) * -16);
2709
2758
  --media-slider-preview-offset: calc(var(--media-spacing) * 9);
2710
2759
  --media-thumbnail-gradient: linear-gradient(to top,
@@ -2716,9 +2765,17 @@ media-container video::-webkit-media-text-track-container {
2716
2765
  @supports (color: oklch(from red l c h)) and (background-image: linear-gradient(in oklab, red, red)) {
2717
2766
  .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
2718
2767
  --media-controls-gradient: linear-gradient(to top in oklab,
2719
- oklch(from var(--media-backdrop) l c h / .4),
2720
- oklch(from var(--media-backdrop) l c h / .2),
2721
- oklch(from var(--media-backdrop) l c h / .5));
2768
+ oklch(from var(--media-backdrop) l c h / .6),
2769
+ oklch(from var(--media-backdrop) l c h / .507) 25%,
2770
+ oklch(from var(--media-backdrop) l c h / .3) 50%,
2771
+ oklch(from var(--media-backdrop) l c h / .093) 75%,
2772
+ transparent);
2773
+ --media-controls-top-gradient: linear-gradient(to bottom in oklab,
2774
+ oklch(from var(--media-backdrop) l c h / .55),
2775
+ oklch(from var(--media-backdrop) l c h / .4647) 25%,
2776
+ oklch(from var(--media-backdrop) l c h / .275) 50%,
2777
+ oklch(from var(--media-backdrop) l c h / .0853) 75%,
2778
+ transparent);
2722
2779
  }
2723
2780
  }
2724
2781
 
@@ -2733,9 +2790,20 @@ media-container video::-webkit-media-text-track-container {
2733
2790
 
2734
2791
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
2735
2792
  --media-frame-border: var(--media-border-color, #00000026);
2793
+ --media-controls-gradient-height: 40%;
2794
+ --media-controls-bottom-gradient-height: 40%;
2736
2795
  --media-controls-gradient: linear-gradient(to top,
2737
2796
  color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2738
- color-mix(in oklab, var(--media-backdrop) 20%, transparent));
2797
+ color-mix(in oklab, var(--media-backdrop) 42.2%, transparent) 25%,
2798
+ color-mix(in oklab, var(--media-backdrop) 25%, transparent) 50%,
2799
+ color-mix(in oklab, var(--media-backdrop) 7.8%, transparent) 75%,
2800
+ transparent);
2801
+ --media-controls-top-gradient: linear-gradient(to bottom,
2802
+ color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2803
+ color-mix(in oklab, var(--media-backdrop) 42.2%, transparent) 25%,
2804
+ color-mix(in oklab, var(--media-backdrop) 25%, transparent) 50%,
2805
+ color-mix(in oklab, var(--media-backdrop) 7.8%, transparent) 75%,
2806
+ transparent);
2739
2807
  --media-indicator-gradient: linear-gradient(to bottom,
2740
2808
  color-mix(in oklab, var(--media-backdrop) 35%, transparent),
2741
2809
  color-mix(in oklab, var(--media-backdrop) 20%, transparent) calc(var(--media-spacing) * 12),
@@ -2745,6 +2813,7 @@ media-container video::-webkit-media-text-track-container {
2745
2813
  }
2746
2814
 
2747
2815
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="compat"] {
2816
+ --media-controls-gradient: linear-gradient(to top, #00000080, transparent 40% 60%, #0006);
2748
2817
  --media-caption-controls-y: calc(var(--media-spacing) * -18);
2749
2818
  }
2750
2819
 
@@ -2756,7 +2825,16 @@ media-container video::-webkit-media-text-track-container {
2756
2825
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
2757
2826
  --media-controls-gradient: linear-gradient(to top in oklab,
2758
2827
  oklch(from var(--media-backdrop) l c h / .5),
2759
- oklch(from var(--media-backdrop) l c h / .2));
2828
+ oklch(from var(--media-backdrop) l c h / .422) 25%,
2829
+ oklch(from var(--media-backdrop) l c h / .25) 50%,
2830
+ oklch(from var(--media-backdrop) l c h / .078) 75%,
2831
+ transparent);
2832
+ --media-controls-top-gradient: linear-gradient(to bottom in oklab,
2833
+ oklch(from var(--media-backdrop) l c h / .5),
2834
+ oklch(from var(--media-backdrop) l c h / .422) 25%,
2835
+ oklch(from var(--media-backdrop) l c h / .25) 50%,
2836
+ oklch(from var(--media-backdrop) l c h / .078) 75%,
2837
+ transparent);
2760
2838
  }
2761
2839
  }
2762
2840