@videojs/react 10.0.0-alpha.9 → 10.0.0-beta.1

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