@videojs/html 10.0.0-alpha.9 → 10.0.0-beta.2

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 (321) hide show
  1. package/README.md +2 -2
  2. package/cdn/audio-minimal.css +1 -0
  3. package/cdn/audio-minimal.dev.js +5360 -0
  4. package/cdn/audio-minimal.dev.js.map +1 -0
  5. package/cdn/audio-minimal.js +25 -0
  6. package/cdn/audio-minimal.js.map +1 -0
  7. package/cdn/audio.css +1 -0
  8. package/cdn/audio.dev.js +5351 -0
  9. package/cdn/audio.dev.js.map +1 -0
  10. package/cdn/audio.js +25 -0
  11. package/cdn/audio.js.map +1 -0
  12. package/cdn/background.css +1 -0
  13. package/cdn/background.dev.js +2057 -0
  14. package/cdn/background.dev.js.map +1 -0
  15. package/cdn/background.js +19 -0
  16. package/cdn/background.js.map +1 -0
  17. package/cdn/media/hls-video.dev.js +28728 -0
  18. package/cdn/media/hls-video.dev.js.map +1 -0
  19. package/cdn/media/hls-video.js +83 -0
  20. package/cdn/media/hls-video.js.map +1 -0
  21. package/cdn/media/simple-hls-video.dev.js +3796 -0
  22. package/cdn/media/simple-hls-video.dev.js.map +1 -0
  23. package/cdn/media/simple-hls-video.js +44 -0
  24. package/cdn/media/simple-hls-video.js.map +1 -0
  25. package/cdn/video-minimal.css +1 -0
  26. package/cdn/video-minimal.dev.js +5714 -0
  27. package/cdn/video-minimal.dev.js.map +1 -0
  28. package/cdn/video-minimal.js +25 -0
  29. package/cdn/video-minimal.js.map +1 -0
  30. package/cdn/video.css +1 -0
  31. package/cdn/video.dev.js +5782 -0
  32. package/cdn/video.dev.js.map +1 -0
  33. package/cdn/video.js +25 -0
  34. package/cdn/video.js.map +1 -0
  35. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +6 -0
  36. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -0
  37. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +6 -0
  38. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -0
  39. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +6 -0
  40. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -0
  41. package/dist/default/_virtual/inline-css_src/define/video/skin.js +6 -0
  42. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -0
  43. package/dist/default/define/audio/minimal-skin.css +630 -5
  44. package/dist/default/define/audio/minimal-skin.js +19 -9
  45. package/dist/default/define/audio/minimal-skin.js.map +1 -1
  46. package/dist/default/define/audio/minimal-skin.tailwind.js +41 -0
  47. package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -0
  48. package/dist/default/define/audio/skin.css +655 -6
  49. package/dist/default/define/audio/skin.js +19 -9
  50. package/dist/default/define/audio/skin.js.map +1 -1
  51. package/dist/default/define/audio/skin.tailwind.js +40 -0
  52. package/dist/default/define/audio/skin.tailwind.js.map +1 -0
  53. package/dist/default/define/background/skin.js +1 -5
  54. package/dist/default/define/background/skin.js.map +1 -1
  55. package/dist/default/define/media/simple-hls-video.js +13 -0
  56. package/dist/default/define/media/simple-hls-video.js.map +1 -0
  57. package/dist/default/define/skin-mixin.js +39 -19
  58. package/dist/default/define/skin-mixin.js.map +1 -1
  59. package/dist/default/define/video/minimal-skin.css +353 -234
  60. package/dist/default/define/video/minimal-skin.js +7 -98
  61. package/dist/default/define/video/minimal-skin.js.map +1 -1
  62. package/dist/default/define/video/minimal-skin.tailwind.js +15 -99
  63. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  64. package/dist/default/define/video/skin.css +381 -259
  65. package/dist/default/define/video/skin.js +8 -92
  66. package/dist/default/define/video/skin.js.map +1 -1
  67. package/dist/default/define/video/skin.tailwind.js +12 -92
  68. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  69. package/dist/default/icons/dist/render/default/index.js +13 -13
  70. package/dist/default/icons/dist/render/default/index.js.map +1 -1
  71. package/dist/default/icons/dist/render/minimal/index.js +13 -13
  72. package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
  73. package/dist/default/media/background-video/index.js +1 -18
  74. package/dist/default/media/background-video/index.js.map +1 -1
  75. package/dist/default/media/simple-hls-video/index.js +21 -0
  76. package/dist/default/media/simple-hls-video/index.js.map +1 -0
  77. package/dist/default/player/create-player.js.map +1 -1
  78. package/dist/default/presets/audio.js +3 -1
  79. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +58 -0
  80. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -0
  81. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +9 -0
  82. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -0
  83. package/dist/default/skins/dist/default/default/tailwind/components/button.js +12 -0
  84. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -0
  85. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +8 -0
  86. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -0
  87. package/dist/default/skins/dist/default/default/tailwind/components/error.js +15 -0
  88. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -0
  89. package/dist/default/skins/dist/default/default/tailwind/components/icon-state.js +29 -0
  90. package/dist/default/skins/dist/default/default/tailwind/components/icon-state.js.map +1 -0
  91. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +10 -0
  92. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -0
  93. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +8 -0
  94. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -0
  95. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js +6 -0
  96. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -0
  97. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +13 -0
  98. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -0
  99. package/dist/default/skins/dist/default/default/tailwind/components/root.js +8 -0
  100. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -0
  101. package/dist/default/skins/dist/default/default/tailwind/components/seek.js +11 -0
  102. package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -0
  103. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +21 -0
  104. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -0
  105. package/dist/default/skins/dist/default/default/tailwind/components/surface.js +8 -0
  106. package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -0
  107. package/dist/default/skins/dist/default/default/tailwind/components/time.js +10 -0
  108. package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -0
  109. package/dist/default/skins/dist/default/default/tailwind/components/tooltip-state.js +28 -0
  110. package/dist/default/skins/dist/default/default/tailwind/components/tooltip-state.js.map +1 -0
  111. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +55 -0
  112. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -0
  113. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +44 -0
  114. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -0
  115. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +6 -0
  116. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -0
  117. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +8 -0
  118. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -0
  119. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +12 -0
  120. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -0
  121. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +8 -0
  122. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -0
  123. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +15 -0
  124. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
  125. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js +29 -0
  126. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js.map +1 -0
  127. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +10 -0
  128. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -0
  129. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +8 -0
  130. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -0
  131. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +12 -0
  132. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -0
  133. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +8 -0
  134. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -0
  135. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +11 -0
  136. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -0
  137. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +20 -0
  138. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -0
  139. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +14 -0
  140. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -0
  141. package/dist/default/skins/dist/default/minimal/tailwind/components/tooltip-state.js +28 -0
  142. package/dist/default/skins/dist/default/minimal/tailwind/components/tooltip-state.js.map +1 -0
  143. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +44 -0
  144. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -0
  145. package/dist/default/store/container-mixin.js +17 -3
  146. package/dist/default/store/container-mixin.js.map +1 -1
  147. package/dist/default/ui/popover/popover-element.js +3 -1
  148. package/dist/default/ui/popover/popover-element.js.map +1 -1
  149. package/dist/default/ui/slider/slider-element.js +3 -3
  150. package/dist/default/ui/slider/slider-element.js.map +1 -1
  151. package/dist/default/ui/time-slider/time-slider-element.js +3 -3
  152. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  153. package/dist/default/ui/tooltip/tooltip-element.js +3 -1
  154. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  155. package/dist/default/ui/volume-slider/volume-slider-element.js +3 -3
  156. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
  157. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +6 -0
  158. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -0
  159. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +6 -0
  160. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -0
  161. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +6 -0
  162. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -0
  163. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +6 -0
  164. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -0
  165. package/dist/dev/define/audio/minimal-skin.css +630 -5
  166. package/dist/dev/define/audio/minimal-skin.d.ts +6 -2
  167. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  168. package/dist/dev/define/audio/minimal-skin.js +97 -9
  169. package/dist/dev/define/audio/minimal-skin.js.map +1 -1
  170. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts +20 -0
  171. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts.map +1 -0
  172. package/dist/dev/define/audio/minimal-skin.tailwind.js +121 -0
  173. package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -0
  174. package/dist/dev/define/audio/player.d.ts +0 -1
  175. package/dist/dev/define/audio/player.d.ts.map +1 -1
  176. package/dist/dev/define/audio/skin.css +655 -6
  177. package/dist/dev/define/audio/skin.d.ts +6 -2
  178. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  179. package/dist/dev/define/audio/skin.js +88 -9
  180. package/dist/dev/define/audio/skin.js.map +1 -1
  181. package/dist/dev/define/audio/skin.tailwind.d.ts +20 -0
  182. package/dist/dev/define/audio/skin.tailwind.d.ts.map +1 -0
  183. package/dist/dev/define/audio/skin.tailwind.js +111 -0
  184. package/dist/dev/define/audio/skin.tailwind.js.map +1 -0
  185. package/dist/dev/define/background/player.d.ts +0 -1
  186. package/dist/dev/define/background/player.d.ts.map +1 -1
  187. package/dist/dev/define/media/simple-hls-video.d.ts +14 -0
  188. package/dist/dev/define/media/simple-hls-video.d.ts.map +1 -0
  189. package/dist/dev/define/media/simple-hls-video.js +13 -0
  190. package/dist/dev/define/media/simple-hls-video.js.map +1 -0
  191. package/dist/dev/define/skin-mixin.d.ts +12 -4
  192. package/dist/dev/define/skin-mixin.d.ts.map +1 -1
  193. package/dist/dev/define/skin-mixin.js +53 -19
  194. package/dist/dev/define/skin-mixin.js.map +1 -1
  195. package/dist/dev/define/video/minimal-skin.css +353 -234
  196. package/dist/dev/define/video/minimal-skin.d.ts +5 -14
  197. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  198. package/dist/dev/define/video/minimal-skin.js +46 -17
  199. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  200. package/dist/dev/define/video/minimal-skin.tailwind.d.ts +4 -14
  201. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  202. package/dist/dev/define/video/minimal-skin.tailwind.js +77 -31
  203. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  204. package/dist/dev/define/video/player.d.ts +0 -1
  205. package/dist/dev/define/video/player.d.ts.map +1 -1
  206. package/dist/dev/define/video/skin.css +381 -259
  207. package/dist/dev/define/video/skin.d.ts +5 -14
  208. package/dist/dev/define/video/skin.d.ts.map +1 -1
  209. package/dist/dev/define/video/skin.js +46 -15
  210. package/dist/dev/define/video/skin.js.map +1 -1
  211. package/dist/dev/define/video/skin.tailwind.d.ts +4 -14
  212. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  213. package/dist/dev/define/video/skin.tailwind.js +71 -28
  214. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  215. package/dist/dev/icons/dist/render/default/index.js +13 -13
  216. package/dist/dev/icons/dist/render/default/index.js.map +1 -1
  217. package/dist/dev/icons/dist/render/minimal/index.js +13 -13
  218. package/dist/dev/icons/dist/render/minimal/index.js.map +1 -1
  219. package/dist/dev/index.d.ts +2 -2
  220. package/dist/dev/media/container-element.d.ts +0 -1
  221. package/dist/dev/media/container-element.d.ts.map +1 -1
  222. package/dist/dev/media/simple-hls-video/index.d.ts +11 -0
  223. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -0
  224. package/dist/dev/media/simple-hls-video/index.js +21 -0
  225. package/dist/dev/media/simple-hls-video/index.js.map +1 -0
  226. package/dist/dev/player/create-player.d.ts +1 -1
  227. package/dist/dev/player/create-player.js.map +1 -1
  228. package/dist/dev/presets/audio.d.ts +3 -1
  229. package/dist/dev/presets/audio.js +3 -1
  230. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +58 -0
  231. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -0
  232. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +9 -0
  233. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -0
  234. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +12 -0
  235. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -0
  236. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +8 -0
  237. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -0
  238. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +15 -0
  239. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -0
  240. package/dist/dev/skins/dist/default/default/tailwind/components/icon-state.js +29 -0
  241. package/dist/dev/skins/dist/default/default/tailwind/components/icon-state.js.map +1 -0
  242. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +10 -0
  243. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -0
  244. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +8 -0
  245. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -0
  246. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js +6 -0
  247. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -0
  248. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +13 -0
  249. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -0
  250. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +8 -0
  251. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -0
  252. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +11 -0
  253. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -0
  254. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +21 -0
  255. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -0
  256. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +8 -0
  257. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -0
  258. package/dist/dev/skins/dist/default/default/tailwind/components/time.js +10 -0
  259. package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -0
  260. package/dist/dev/skins/dist/default/default/tailwind/components/tooltip-state.js +28 -0
  261. package/dist/dev/skins/dist/default/default/tailwind/components/tooltip-state.js.map +1 -0
  262. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +55 -0
  263. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -0
  264. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +44 -0
  265. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -0
  266. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +6 -0
  267. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -0
  268. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js +8 -0
  269. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -0
  270. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +12 -0
  271. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -0
  272. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +8 -0
  273. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -0
  274. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +15 -0
  275. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
  276. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js +29 -0
  277. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js.map +1 -0
  278. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +10 -0
  279. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -0
  280. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +8 -0
  281. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -0
  282. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +12 -0
  283. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -0
  284. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +8 -0
  285. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -0
  286. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +11 -0
  287. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -0
  288. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +20 -0
  289. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -0
  290. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +14 -0
  291. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -0
  292. package/dist/dev/skins/dist/default/minimal/tailwind/components/tooltip-state.js +28 -0
  293. package/dist/dev/skins/dist/default/minimal/tailwind/components/tooltip-state.js.map +1 -0
  294. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +44 -0
  295. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -0
  296. package/dist/dev/store/container-mixin.d.ts +1 -1
  297. package/dist/dev/store/container-mixin.js +17 -3
  298. package/dist/dev/store/container-mixin.js.map +1 -1
  299. package/dist/dev/store/provider-mixin.d.ts +1 -1
  300. package/dist/dev/ui/popover/popover-element.js +3 -1
  301. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  302. package/dist/dev/ui/slider/slider-element.d.ts.map +1 -1
  303. package/dist/dev/ui/slider/slider-element.js +3 -3
  304. package/dist/dev/ui/slider/slider-element.js.map +1 -1
  305. package/dist/dev/ui/time-slider/time-slider-element.d.ts.map +1 -1
  306. package/dist/dev/ui/time-slider/time-slider-element.js +3 -3
  307. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  308. package/dist/dev/ui/tooltip/tooltip-element.js +3 -1
  309. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  310. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -1
  311. package/dist/dev/ui/volume-slider/volume-slider-element.js +3 -3
  312. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  313. package/package.json +11 -8
  314. package/dist/default/skins/dist/default/video/default.tailwind.js +0 -90
  315. package/dist/default/skins/dist/default/video/default.tailwind.js.map +0 -1
  316. package/dist/default/skins/dist/default/video/minimal.tailwind.js +0 -86
  317. package/dist/default/skins/dist/default/video/minimal.tailwind.js.map +0 -1
  318. package/dist/dev/skins/dist/default/video/default.tailwind.js +0 -90
  319. package/dist/dev/skins/dist/default/video/default.tailwind.js.map +0 -1
  320. package/dist/dev/skins/dist/default/video/minimal.tailwind.js +0 -86
  321. package/dist/dev/skins/dist/default/video/minimal.tailwind.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================================
2
- Icon State Visibility
2
+ Icon State Visibility for Video Skins
3
3
 
4
4
  Data-attribute-driven visibility rules for multi-state icon buttons.
5
5
  Uses :is() with both element selectors (for HTML custom element wrappers)
@@ -48,6 +48,49 @@
48
48
  opacity: 1;
49
49
  }
50
50
 
51
+ /* ==========================================================================
52
+ Tooltip Label State Visibility for Video Skins
53
+
54
+ Data-attribute-driven visibility rules for multi-state tooltip labels.
55
+ Uses adjacent sibling selectors to match button state → tooltip content.
56
+ ========================================================================== */
57
+
58
+ /* --- All multi-state labels hidden by default --- */
59
+
60
+ .media-tooltip-label {
61
+ display: none;
62
+ }
63
+
64
+ /* --- Active label per state --- */
65
+
66
+ /* Play: ended → replay */
67
+ .media-button--play[data-ended] + .media-tooltip .media-tooltip-label--replay,
68
+ /* Play: paused (not ended) → play */
69
+ .media-button--play:not([data-ended])[data-paused] + .media-tooltip
70
+ .media-tooltip-label--play,
71
+ /* Play: playing (not paused, not ended) → pause */
72
+ .media-button--play:not([data-paused]):not([data-ended]) + .media-tooltip
73
+ .media-tooltip-label--pause,
74
+ /* Fullscreen: not fullscreen → enter */
75
+ .media-button--fullscreen:not([data-fullscreen]) + .media-tooltip
76
+ .media-tooltip-label--enter-fullscreen,
77
+ /* Fullscreen: fullscreen → exit */
78
+ .media-button--fullscreen[data-fullscreen] + .media-tooltip
79
+ .media-tooltip-label--exit-fullscreen,
80
+ /* Captions: not active → enable */
81
+ .media-button--captions:not([data-active]) + .media-tooltip
82
+ .media-tooltip-label--enable-captions,
83
+ /* Captions: active → disable */
84
+ .media-button--captions[data-active] + .media-tooltip
85
+ .media-tooltip-label--disable-captions,
86
+ /* PiP: not in pip → enter */
87
+ .media-button--pip:not([data-pip]) + .media-tooltip
88
+ .media-tooltip-label--enter-pip,
89
+ /* PiP: in pip → exit */
90
+ .media-button--pip[data-pip] + .media-tooltip
91
+ .media-tooltip-label--exit-pip {
92
+ display: block;
93
+ }
51
94
 
52
95
  /* ==========================================================================
53
96
  Reset
@@ -83,9 +126,7 @@
83
126
  isolation: isolate;
84
127
  display: block;
85
128
  container: media-root / inline-size;
86
- overflow: clip;
87
129
  border-radius: var(--media-border-radius, 2rem);
88
- background: oklch(0 0 0);
89
130
  font-family:
90
131
  Inter Variable,
91
132
  Inter,
@@ -97,40 +138,54 @@
97
138
  letter-spacing: normal;
98
139
  -webkit-font-smoothing: auto;
99
140
  -moz-osx-font-smoothing: auto;
100
- }
101
141
 
102
- /* Inner border rings */
103
- .media-default-skin::before,
104
- .media-default-skin::after {
105
- content: "";
106
- position: absolute;
107
- z-index: 10;
108
- border-radius: inherit;
109
- pointer-events: none;
110
- }
111
- .media-default-skin::before {
112
- inset: 1px;
113
- box-shadow: inset 0 0 0 1px oklch(1 0 0 / 0.15);
114
- }
115
- .media-default-skin::after {
116
- inset: 0;
117
- box-shadow: inset 0 0 0 1px oklch(0 0 0 / 0.1);
142
+ &:fullscreen {
143
+ border-radius: 0;
144
+ }
118
145
  }
119
146
 
120
- /* Fullscreen */
121
- .media-default-skin:fullscreen {
122
- border-radius: 0;
147
+ /* ==========================================================================
148
+ Surface (shared glass effect for tooltips, popovers, controls)
149
+ ========================================================================== */
150
+
151
+ .media-default-skin .media-surface {
152
+ background-color: var(--media-surface-background-color);
153
+ backdrop-filter: var(--media-surface-backdrop-filter);
154
+ box-shadow:
155
+ inset 0 0 0 1px var(--media-surface-inner-border-color),
156
+ 0 1px 3px 0 var(--media-surface-shadow-color),
157
+ 0 1px 2px -1px var(--media-surface-shadow-color);
158
+
159
+ /* Inner border ring */
160
+ &::after {
161
+ content: "";
162
+ position: absolute;
163
+ inset: 0;
164
+ z-index: 10;
165
+ border-radius: inherit;
166
+ box-shadow: 0 0 0 1px var(--media-surface-outer-border-color);
167
+ pointer-events: none;
168
+ }
169
+
170
+ @media (prefers-reduced-transparency: reduce) {
171
+ background-color: oklch(from var(--media-surface-background-color) l c h / 0.7);
172
+ }
173
+
174
+ @media (prefers-contrast: more) {
175
+ background-color: oklch(from var(--media-surface-background-color) l c h / 0.9);
176
+ }
123
177
  }
124
178
 
125
179
  /* ==========================================================================
126
180
  Media Element
127
181
  ========================================================================== */
128
182
 
129
- .media-default-skin > video {
183
+ .media-default-skin ::slotted(video),
184
+ .media-default-skin video {
130
185
  display: block;
131
186
  width: 100%;
132
187
  height: 100%;
133
- border-radius: inherit;
188
+ border-radius: var(--media-border-radius, 2rem);
134
189
  }
135
190
 
136
191
  /* ==========================================================================
@@ -146,9 +201,10 @@
146
201
  object-fit: cover;
147
202
  transition: opacity 0.25s;
148
203
  pointer-events: none;
149
- }
150
- .media-default-skin > img:not([data-visible]) {
151
- opacity: 0;
204
+
205
+ &:not([data-visible]) {
206
+ opacity: 0;
207
+ }
152
208
  }
153
209
 
154
210
  /* ==========================================================================
@@ -158,7 +214,6 @@
158
214
  .media-default-skin .media-overlay {
159
215
  position: absolute;
160
216
  inset: 0;
161
- z-index: 1;
162
217
  border-radius: inherit;
163
218
  background-image: linear-gradient(to top, oklch(0 0 0 / 0.5), oklch(0 0 0 / 0.3), oklch(0 0 0 / 0));
164
219
  backdrop-filter: blur(0) saturate(1.2) brightness(0.9);
@@ -168,18 +223,19 @@
168
223
  transition-delay: 500ms;
169
224
  transition-timing-function: ease-out;
170
225
  pointer-events: none;
171
- }
172
- @media (prefers-reduced-motion: reduce) {
173
- .media-default-skin .media-overlay {
226
+
227
+ @media (prefers-reduced-motion: reduce) {
174
228
  transition-duration: 100ms;
175
229
  }
176
230
  }
231
+
177
232
  .media-default-skin .media-controls[data-visible] ~ .media-overlay,
178
233
  .media-default-skin .media-error[data-open] ~ .media-overlay {
179
234
  opacity: 1;
180
235
  transition-duration: 150ms;
181
236
  transition-delay: 0ms;
182
237
  }
238
+
183
239
  .media-default-skin .media-error[data-open] ~ .media-overlay {
184
240
  backdrop-filter: blur(8px) saturate(1.2) brightness(0.9);
185
241
  }
@@ -191,19 +247,20 @@
191
247
  .media-default-skin .media-buffering-indicator {
192
248
  position: absolute;
193
249
  inset: 0;
194
- z-index: 10;
195
250
  display: none;
196
251
  align-items: center;
197
252
  justify-content: center;
198
253
  color: oklch(1 0 0);
199
254
  pointer-events: none;
200
- }
201
- .media-default-skin .media-buffering-indicator[data-visible] {
202
- display: flex;
203
- }
204
- .media-default-skin .media-buffering-indicator .media-surface {
205
- padding: 0.25rem;
206
- border-radius: 100%;
255
+
256
+ &[data-visible] {
257
+ display: flex;
258
+ }
259
+
260
+ .media-surface {
261
+ padding: 0.25rem;
262
+ border-radius: 100%;
263
+ }
207
264
  }
208
265
 
209
266
  /* ==========================================================================
@@ -217,8 +274,8 @@
217
274
  display: flex;
218
275
  align-items: center;
219
276
  justify-content: center;
220
- pointer-events: none;
221
277
  }
278
+
222
279
  .media-default-skin .media-error__dialog {
223
280
  display: flex;
224
281
  flex-direction: column;
@@ -228,9 +285,6 @@
228
285
  border-radius: 1.75rem;
229
286
  color: oklch(1 0 0);
230
287
  font-size: 0.875rem;
231
- pointer-events: auto;
232
- opacity: 1;
233
- transform: scale(1);
234
288
  transition-property: opacity, transform;
235
289
  transition-duration: 500ms;
236
290
  transition-delay: 100ms;
@@ -245,60 +299,43 @@
245
299
  0.997 50.9%,
246
300
  1
247
301
  );
302
+
303
+ /* Simple, fast transition for reduced motion users */
304
+ @media (prefers-reduced-motion: reduce) {
305
+ transition-duration: 100ms;
306
+ transition-delay: 0ms;
307
+ transition-timing-function: ease-out;
308
+ }
248
309
  }
310
+
249
311
  .media-default-skin .media-error[data-starting-style] .media-error__dialog,
250
312
  .media-default-skin .media-error[data-ending-style] .media-error__dialog {
251
313
  opacity: 0;
252
314
  transform: scale(0.5);
253
315
  }
316
+
254
317
  .media-default-skin .media-error__content {
255
318
  display: flex;
256
319
  flex-direction: column;
257
320
  gap: 0.5rem;
258
321
  padding: 0.5rem 0.5rem 0.375rem;
259
322
  }
323
+
260
324
  .media-default-skin .media-error__title {
261
325
  font-weight: 600;
262
326
  line-height: 1.25;
263
327
  }
328
+
264
329
  .media-default-skin .media-error__description {
265
330
  opacity: 0.7;
266
331
  }
332
+
267
333
  .media-default-skin .media-error__actions {
268
334
  display: flex;
269
335
  gap: 0.5rem;
270
- }
271
- .media-default-skin .media-error__actions > * {
272
- flex: 1;
273
- }
274
336
 
275
- /* ==========================================================================
276
- Surface (shared glass effect for tooltips, popovers, controls)
277
- ========================================================================== */
278
-
279
- .media-default-skin .media-surface {
280
- background-color: oklch(1 0 0 / 0.1);
281
- backdrop-filter: blur(64px) brightness(0.9) saturate(1.5);
282
- box-shadow:
283
- inset 0 0 0 1px oklch(1 0 0 / 0.05),
284
- 0 0 0 1px oklch(0 0 0 / 0.15),
285
- oklch(0 0 0 / 0.15) 0px 1px 3px 0px,
286
- oklch(0 0 0 / 0.15) 0px 1px 2px -1px;
287
- }
288
- @media (prefers-reduced-transparency: reduce) {
289
- .media-default-skin .media-surface {
290
- background-color: oklch(0 0 0 / 0.7);
291
- box-shadow:
292
- inset 0 0 0 1px oklch(0 0 0),
293
- 0 0 0 1px oklch(1 0 0 / 0.2);
294
- }
295
- }
296
- @media (prefers-contrast: more) {
297
- .media-default-skin .media-surface {
298
- background-color: oklch(0 0 0 / 0.9);
299
- box-shadow:
300
- inset 0 0 0 1px oklch(0 0 0),
301
- 0 0 0 1px oklch(1 0 0 / 0.2);
337
+ & > * {
338
+ flex: 1;
302
339
  }
303
340
  }
304
341
 
@@ -307,41 +344,20 @@
307
344
  ========================================================================== */
308
345
 
309
346
  .media-default-skin .media-controls {
310
- position: absolute;
311
- bottom: 0.75rem;
312
- inset-inline: 0.75rem;
313
- z-index: 10;
314
347
  container: media-controls / inline-size;
315
348
  display: flex;
316
349
  align-items: center;
317
350
  gap: 0.075rem;
318
351
  padding: 0.175rem;
319
352
  border-radius: calc(infinity * 1px);
320
- color: oklch(1 0 0);
321
- will-change: scale, transform, filter, opacity;
322
- transition-property: scale, transform, filter, opacity;
323
- transition-duration: 100ms;
324
- transition-delay: 0ms;
325
- transition-timing-function: ease-out;
326
- transform-origin: bottom;
327
- }
328
- .media-default-skin .media-controls:not([data-visible]) {
329
- opacity: 0;
330
- scale: 0.9;
331
- filter: blur(8px);
332
- transition-duration: 300ms;
333
- transition-delay: 500ms;
334
- pointer-events: none;
335
- }
336
- @media (prefers-reduced-motion: reduce) {
337
- .media-default-skin .media-controls:not([data-visible]) {
338
- scale: 1;
339
- filter: blur(0);
340
- transition-duration: 100ms;
341
- }
342
- }
343
- @container media-root (width > 40rem) {
344
- .media-default-skin .media-controls {
353
+ --media-controls-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.25));
354
+ --media-controls-current-shadow-color-subtle: oklch(
355
+ from var(--media-controls-current-shadow-color) l c h /
356
+ calc(alpha * 0.4)
357
+ );
358
+ text-shadow: 0 0 1px var(--media-controls-current-shadow-color);
359
+
360
+ @container media-root (width > 40rem) {
345
361
  gap: 0.125rem;
346
362
  padding: 0.25rem;
347
363
  }
@@ -358,18 +374,18 @@
358
374
  flex: 1;
359
375
  gap: 0.75rem;
360
376
  padding-inline: 0.5rem;
377
+
378
+ & .media-time__value:first-child {
379
+ display: none;
380
+
381
+ @container media-time (width > 18rem) {
382
+ display: block;
383
+ }
384
+ }
361
385
  }
386
+
362
387
  .media-default-skin .media-time__value {
363
388
  font-variant-numeric: tabular-nums;
364
- text-shadow: 0 1px 0 oklch(0 0 0 / 0.25);
365
- }
366
- .media-default-skin .media-time .media-time__value:first-child {
367
- display: none;
368
- }
369
- @container media-time (width > 18rem) {
370
- .media-default-skin .media-time .media-time__value:first-child {
371
- display: block;
372
- }
373
389
  }
374
390
 
375
391
  /* ==========================================================================
@@ -391,20 +407,26 @@
391
407
  color: oklch(0 0 0);
392
408
  font-weight: 500;
393
409
  text-align: center;
394
- transition-property: background-color, color, outline-offset;
410
+ transition-property: background-color, color, outline-offset, transform;
395
411
  transition-duration: 150ms;
396
412
  transition-timing-function: ease-out;
397
413
  cursor: pointer;
398
414
  user-select: none;
399
- }
400
- .media-default-skin .media-button:focus-visible {
401
- outline-color: oklch(62.3% 0.214 259.815);
402
- outline-offset: 2px;
403
- }
404
- .media-default-skin .media-button[disabled] {
405
- opacity: 0.5;
406
- filter: grayscale(1);
407
- cursor: not-allowed;
415
+
416
+ &:focus-visible {
417
+ outline-color: oklch(62.3% 0.214 259.815);
418
+ outline-offset: 2px;
419
+ }
420
+
421
+ &[disabled] {
422
+ opacity: 0.5;
423
+ filter: grayscale(1);
424
+ cursor: not-allowed;
425
+ }
426
+
427
+ &[data-availability="unavailable"] {
428
+ display: none;
429
+ }
408
430
  }
409
431
 
410
432
  /* Icon button variant */
@@ -414,35 +436,42 @@
414
436
  padding: 0;
415
437
  aspect-ratio: 1;
416
438
  background: transparent;
417
- color: oklch(1 0 0 / 0.9);
418
- text-shadow: 0 1px 0 oklch(0 0 0 / 0.25);
419
- }
420
- .media-default-skin .media-button--icon:hover,
421
- .media-default-skin .media-button--icon:focus-visible,
422
- .media-default-skin .media-button--icon[aria-expanded="true"] {
423
- background-color: oklch(1 0 0 / 0.1);
424
- color: oklch(1 0 0);
425
- text-decoration: none;
426
- }
427
- .media-default-skin .media-button--icon .media-icon {
428
- filter: drop-shadow(0 1px 0 oklch(0 0 0 / 0.25));
439
+ color: inherit;
440
+ text-shadow: inherit;
441
+
442
+ &:hover,
443
+ &:focus-visible,
444
+ &[aria-expanded="true"] {
445
+ background-color: oklch(from currentColor l c h / 0.1);
446
+ text-decoration: none;
447
+ }
448
+
449
+ &:active {
450
+ transform: scale(0.9);
451
+ }
452
+
453
+ & .media-icon {
454
+ filter: drop-shadow(0 1px 0 var(--media-controls-current-shadow-color, oklch(0 0 0 / 0.25)));
455
+ }
429
456
  }
430
457
 
431
458
  /* Seek button */
432
- .media-default-skin .media-button--seek .media-icon__label {
433
- position: absolute;
434
- right: -1px;
435
- bottom: -3px;
436
- font-size: 0.75em;
437
- font-weight: 480;
438
- font-variant-numeric: tabular-nums;
439
- }
440
- .media-default-skin .media-button--seek:has(.media-icon--flipped) .media-icon__label {
441
- right: unset;
442
- left: -1px;
443
- }
444
- @container media-controls (width < 28rem) {
445
- .media-default-skin .media-button--seek {
459
+ .media-default-skin .media-button--seek {
460
+ & .media-icon__label {
461
+ position: absolute;
462
+ right: -1px;
463
+ bottom: -3px;
464
+ font-size: 0.75em;
465
+ font-weight: 480;
466
+ font-variant-numeric: tabular-nums;
467
+ }
468
+
469
+ &:has(.media-icon--flipped) .media-icon__label {
470
+ right: unset;
471
+ left: -1px;
472
+ }
473
+
474
+ @container media-controls (width < 28rem) {
446
475
  display: none;
447
476
  }
448
477
  }
@@ -450,11 +479,12 @@
450
479
  /* Playback rate button */
451
480
  .media-default-skin .media-button--playback-rate {
452
481
  padding: 0;
453
- }
454
- .media-default-skin .media-button--playback-rate::after {
455
- content: attr(data-rate) "\00D7";
456
- width: 4ch;
457
- font-variant-numeric: tabular-nums;
482
+
483
+ &::after {
484
+ content: attr(data-rate) "\00D7";
485
+ width: 4ch;
486
+ font-variant-numeric: tabular-nums;
487
+ }
458
488
  }
459
489
 
460
490
  /* ==========================================================================
@@ -491,19 +521,17 @@
491
521
  flex: 1;
492
522
  border-radius: calc(infinity * 1px);
493
523
  outline: none;
494
- }
495
524
 
496
- /* Horizontal orientation */
497
- .media-default-skin .media-slider[data-orientation="horizontal"] {
498
- min-width: 5rem;
499
- width: 100%;
500
- height: 1.25rem;
501
- }
525
+ &[data-orientation="horizontal"] {
526
+ min-width: 5rem;
527
+ width: 100%;
528
+ height: 1.25rem;
529
+ }
502
530
 
503
- /* Vertical orientation */
504
- .media-default-skin .media-slider[data-orientation="vertical"] {
505
- width: 1.25rem;
506
- height: 5rem;
531
+ &[data-orientation="vertical"] {
532
+ width: 1.25rem;
533
+ height: 5rem;
534
+ }
507
535
  }
508
536
 
509
537
  /* Track */
@@ -511,18 +539,18 @@
511
539
  position: relative;
512
540
  isolation: isolate;
513
541
  overflow: hidden;
514
- background-color: oklch(1 0 0 / 0.2);
515
542
  border-radius: inherit;
516
- box-shadow: 0 0 0 1px oklch(0 0 0 / 0.05);
517
543
  user-select: none;
518
- }
519
- .media-default-skin .media-slider__track[data-orientation="horizontal"] {
520
- width: 100%;
521
- height: 0.25rem;
522
- }
523
- .media-default-skin .media-slider__track[data-orientation="vertical"] {
524
- width: 0.25rem;
525
- height: 100%;
544
+
545
+ &[data-orientation="horizontal"] {
546
+ width: 100%;
547
+ height: 0.25rem;
548
+ }
549
+
550
+ &[data-orientation="vertical"] {
551
+ width: 0.25rem;
552
+ height: 100%;
553
+ }
526
554
  }
527
555
 
528
556
  /* Thumb */
@@ -532,10 +560,10 @@
532
560
  transform: translate(-50%, -50%);
533
561
  width: 0.625rem;
534
562
  height: 0.625rem;
535
- background-color: oklch(1 0 0);
563
+ background-color: currentColor;
536
564
  border-radius: calc(infinity * 1px);
537
565
  box-shadow:
538
- 0 0 0 1px oklch(0 0 0 / 0.1),
566
+ 0 0 0 1px var(--media-controls-current-shadow-color-subtle, oklch(0 0 0 / 0.1)),
539
567
  0 1px 3px 0 oklch(0 0 0 / 0.15),
540
568
  0 1px 2px -1px oklch(0 0 0 / 0.15);
541
569
  opacity: 0;
@@ -543,26 +571,32 @@
543
571
  transition-duration: 150ms;
544
572
  transition-timing-function: ease-out;
545
573
  user-select: none;
546
- outline: 2px solid transparent;
547
- outline-offset: -2px;
548
- }
549
- .media-default-skin .media-slider__thumb[data-orientation="horizontal"] {
550
- top: 50%;
551
- left: var(--media-slider-fill);
552
- }
553
- .media-default-skin .media-slider__thumb[data-orientation="vertical"] {
554
- left: 50%;
555
- top: calc(100% - var(--media-slider-fill));
556
- }
557
- .media-default-skin .media-slider__thumb:focus-visible {
558
- outline-color: oklch(62.3% 0.214 259.815);
559
- outline-offset: 2px;
574
+ outline: 4px solid transparent;
575
+ outline-offset: -4px;
576
+
577
+ &[data-orientation="horizontal"] {
578
+ top: 50%;
579
+ left: var(--media-slider-fill);
580
+ }
581
+
582
+ &[data-orientation="vertical"] {
583
+ left: 50%;
584
+ top: calc(100% - var(--media-slider-fill));
585
+ }
586
+
587
+ &:hover,
588
+ &:focus {
589
+ outline-color: oklch(from currentColor l c h / 0.25);
590
+ outline-offset: 0;
591
+ }
560
592
  }
593
+
561
594
  .media-default-skin .media-slider:active .media-slider__thumb,
562
595
  .media-default-skin .media-slider__thumb--persistent {
563
596
  width: 0.75rem;
564
597
  height: 0.75rem;
565
598
  }
599
+
566
600
  .media-default-skin .media-slider:hover .media-slider__thumb,
567
601
  .media-default-skin .media-slider__thumb:focus-visible,
568
602
  .media-default-skin .media-slider__thumb--persistent {
@@ -576,11 +610,13 @@
576
610
  border-radius: inherit;
577
611
  pointer-events: none;
578
612
  }
613
+
579
614
  .media-default-skin .media-slider__buffer[data-orientation="horizontal"],
580
615
  .media-default-skin .media-slider__fill[data-orientation="horizontal"] {
581
616
  inset-block: 0;
582
617
  left: 0;
583
618
  }
619
+
584
620
  .media-default-skin .media-slider__buffer[data-orientation="vertical"],
585
621
  .media-default-skin .media-slider__fill[data-orientation="vertical"] {
586
622
  inset-inline: 0;
@@ -589,28 +625,32 @@
589
625
 
590
626
  /* Buffer */
591
627
  .media-default-skin .media-slider__buffer {
592
- background-color: oklch(1 0 0 / 0.2);
628
+ background-color: oklch(from currentColor l c h / 0.2);
593
629
  transition-duration: 0.25s;
594
630
  transition-timing-function: ease-out;
595
- }
596
- .media-default-skin .media-slider__buffer[data-orientation="horizontal"] {
597
- width: var(--media-slider-buffer);
598
- transition-property: width;
599
- }
600
- .media-default-skin .media-slider__buffer[data-orientation="vertical"] {
601
- height: var(--media-slider-buffer);
602
- transition-property: height;
631
+
632
+ &[data-orientation="horizontal"] {
633
+ width: var(--media-slider-buffer);
634
+ transition-property: width;
635
+ }
636
+
637
+ &[data-orientation="vertical"] {
638
+ height: var(--media-slider-buffer);
639
+ transition-property: height;
640
+ }
603
641
  }
604
642
 
605
643
  /* Fill */
606
644
  .media-default-skin .media-slider__fill {
607
- background-color: oklch(1 0 0);
608
- }
609
- .media-default-skin .media-slider__fill[data-orientation="horizontal"] {
610
- width: var(--media-slider-fill);
611
- }
612
- .media-default-skin .media-slider__fill[data-orientation="vertical"] {
613
- height: var(--media-slider-fill);
645
+ background-color: currentColor;
646
+
647
+ &[data-orientation="horizontal"] {
648
+ width: var(--media-slider-fill);
649
+ }
650
+
651
+ &[data-orientation="vertical"] {
652
+ height: var(--media-slider-fill);
653
+ }
614
654
  }
615
655
 
616
656
  /* Time display within slider */
@@ -619,49 +659,57 @@
619
659
  }
620
660
 
621
661
  /* ==========================================================================
622
- Popups & Animations
662
+ Popups & Tooltips
623
663
  ========================================================================== */
624
664
 
625
- .media-default-skin .media-popup-animation {
626
- opacity: 1;
627
- transform: scale(1);
628
- transform-origin: bottom;
629
- filter: blur(0px);
665
+ .media-default-skin .media-popover,
666
+ .media-default-skin .media-tooltip {
667
+ margin: 0;
668
+ border: 0;
669
+ color: inherit;
670
+ overflow: visible;
630
671
  transition-property: transform, scale, opacity, filter;
631
672
  transition-duration: 200ms;
632
- }
633
- .media-default-skin .media-popup-animation[data-starting-style],
634
- .media-default-skin .media-popup-animation[data-ending-style] {
635
- opacity: 0;
636
- transform: scale(0);
637
- filter: blur(8px);
638
- }
639
- .media-default-skin .media-popup-animation[data-instant] {
640
- transition-duration: 0ms;
673
+
674
+ &[data-starting-style],
675
+ &[data-ending-style] {
676
+ opacity: 0;
677
+ transform: scale(0);
678
+ filter: blur(8px);
679
+ }
680
+
681
+ &[data-instant] {
682
+ transition-duration: 0ms;
683
+ }
684
+
685
+ &[data-side="top"] {
686
+ transform-origin: bottom;
687
+ }
688
+ &[data-side="bottom"] {
689
+ transform-origin: top;
690
+ }
691
+ &[data-side="left"] {
692
+ transform-origin: right;
693
+ }
694
+ &[data-side="right"] {
695
+ transform-origin: left;
696
+ }
641
697
  }
642
698
 
643
- .media-default-skin .media-popup {
644
- margin: 0;
645
- border: 0;
699
+ .media-default-skin .media-popover {
646
700
  --media-popover-side-offset: 0.5rem;
647
701
  }
648
- .media-default-skin .media-popup--volume {
702
+ .media-default-skin .media-popover--volume {
649
703
  padding: 0.625rem 0.25rem;
650
704
  border-radius: calc(infinity * 1px);
651
705
  }
652
706
 
653
- /* ==========================================================================
654
- Tooltips
655
- ========================================================================== */
656
-
657
707
  .media-default-skin .media-tooltip {
658
- white-space: nowrap;
659
- }
660
- .media-default-skin .media-tooltip-popup {
661
708
  padding: 0.25rem 0.625rem;
662
709
  border-radius: calc(infinity * 1px);
663
- color: oklch(1 0 0);
664
710
  font-size: 0.75rem;
711
+ white-space: nowrap;
712
+ --media-tooltip-side-offset: 0.5rem;
665
713
  }
666
714
 
667
715
  /* ==========================================================================
@@ -675,7 +723,20 @@
675
723
  font-size: 1rem;
676
724
  text-wrap: balance;
677
725
  pointer-events: none;
726
+
727
+ @container media-root (width > 20rem) {
728
+ font-size: 1.5rem;
729
+ }
730
+
731
+ @container media-root (width > 48rem) {
732
+ font-size: 1.875rem;
733
+ }
734
+
735
+ @container media-root (width > 80rem) {
736
+ font-size: 2.25rem;
737
+ }
678
738
  }
739
+
679
740
  .media-default-skin .media-captions__container {
680
741
  display: flex;
681
742
  flex-direction: column;
@@ -684,6 +745,7 @@
684
745
  margin: 0 auto;
685
746
  text-align: center;
686
747
  }
748
+
687
749
  .media-default-skin .media-captions__text {
688
750
  display: block;
689
751
  padding: 0.125rem 0.5rem;
@@ -694,32 +756,15 @@
694
756
  text-align: center;
695
757
  white-space: pre-wrap;
696
758
  line-height: 1.2;
697
- }
698
- @media (prefers-contrast: more) {
699
- .media-default-skin .media-captions__text {
759
+
760
+ @media (prefers-contrast: more) {
700
761
  background: oklch(0 0 0 / 0.7);
701
762
  text-shadow: none;
702
763
  box-decoration-break: clone;
703
764
  }
704
- }
705
- .media-default-skin .media-captions__text > * {
706
- display: inline;
707
- }
708
765
 
709
- /* Responsive caption sizing */
710
- @container media-root (width > 20rem) {
711
- .media-default-skin .media-captions {
712
- font-size: 1.5rem;
713
- }
714
- }
715
- @container media-root (width > 48rem) {
716
- .media-default-skin .media-captions {
717
- font-size: 1.875rem;
718
- }
719
- }
720
- @container media-root (width > 80rem) {
721
- .media-default-skin .media-captions {
722
- font-size: 2.25rem;
766
+ & > * {
767
+ display: inline;
723
768
  }
724
769
  }
725
770
 
@@ -727,26 +772,31 @@
727
772
  .media-default-skin {
728
773
  --media-caption-track-delay: 600ms;
729
774
  --media-caption-track-y: -0.5rem;
775
+
776
+ &:has(.media-controls[data-visible]) {
777
+ --media-caption-track-delay: 25ms;
778
+ --media-caption-track-y: -3.5rem;
779
+ }
730
780
  }
731
- .media-default-skin:has(.media-controls[data-visible]) {
732
- --media-caption-track-delay: 25ms;
733
- --media-caption-track-y: -3.5rem;
734
- }
781
+
735
782
  .media-default-skin .media-captions,
736
783
  .media-default-skin video::-webkit-media-text-track-container {
737
784
  /* NOTE: The delay must account for the controls delay/duration */
738
785
  transition: transform 150ms ease-out;
739
786
  transition-delay: var(--media-caption-track-delay);
740
787
  }
788
+
741
789
  .media-default-skin video::-webkit-media-text-track-container {
742
790
  transform: translateY(var(--media-caption-track-y)) scale(0.98);
743
791
  z-index: 1;
744
792
  font-family: inherit;
745
793
  }
794
+
746
795
  /* When controls are visible, shift captions up to avoid overlap */
747
796
  .media-default-skin .media-controls[data-visible] ~ .media-captions {
748
797
  transform: translateY(calc(var(--media-caption-track-y) - 0.5rem));
749
798
  }
799
+
750
800
  @media (prefers-reduced-motion: reduce) {
751
801
  .media-default-skin .media-captions,
752
802
  .media-default-skin video::-webkit-media-text-track-container {
@@ -754,3 +804,75 @@
754
804
  }
755
805
  }
756
806
 
807
+
808
+ /* ==========================================================================
809
+ Root
810
+ ========================================================================== */
811
+
812
+ .media-default-skin--video {
813
+ background: oklch(0 0 0);
814
+ --media-border-color: oklch(0 0 0 / 0.1);
815
+ --media-surface-background-color: oklch(1 0 0 / 0.1);
816
+ --media-surface-inner-border-color: oklch(1 0 0 / 0.05);
817
+ --media-surface-outer-border-color: oklch(0 0 0 / 0.1);
818
+ --media-surface-shadow-color: oklch(0 0 0 / 0.15);
819
+ --media-surface-backdrop-filter: blur(64px) brightness(0.9) saturate(1.5);
820
+
821
+ @media (prefers-color-scheme: dark) {
822
+ --media-border-color: oklch(1 0 0 / 0.1);
823
+ }
824
+
825
+ /* Inner border ring */
826
+ &::after {
827
+ content: "";
828
+ position: absolute;
829
+ inset: 0;
830
+ z-index: 10;
831
+ border-radius: inherit;
832
+ box-shadow: inset 0 0 0 1px var(--media-border-color);
833
+ pointer-events: none;
834
+ }
835
+ }
836
+
837
+ /* ==========================================================================
838
+ Controls (hide/show behavior)
839
+ ========================================================================== */
840
+
841
+ .media-default-skin--video .media-controls {
842
+ position: absolute;
843
+ bottom: 0.75rem;
844
+ inset-inline: 0.75rem;
845
+ z-index: 10;
846
+ will-change: scale, transform, filter, opacity;
847
+ transition-property: scale, transform, filter, opacity;
848
+ transition-duration: 100ms;
849
+ transition-delay: 0ms;
850
+ transition-timing-function: ease-out;
851
+ transform-origin: bottom;
852
+ color: oklch(1 0 0);
853
+
854
+ &:not([data-visible]) {
855
+ opacity: 0;
856
+ scale: 0.9;
857
+ filter: blur(8px);
858
+ transition-duration: 300ms;
859
+ transition-delay: 500ms;
860
+ pointer-events: none;
861
+
862
+ @media (prefers-reduced-motion: reduce) {
863
+ scale: 1;
864
+ filter: blur(0);
865
+ transition-duration: 100ms;
866
+ }
867
+ }
868
+ }
869
+
870
+ /* ==========================================================================
871
+ Sliders
872
+ ========================================================================== */
873
+
874
+ .media-default-skin--video .media-slider__track {
875
+ background-color: oklch(1 0 0 / 0.2);
876
+ box-shadow: 0 0 0 1px oklch(0 0 0 / 0.05);
877
+ }
878
+