@videojs/react 10.0.0-beta.28 → 10.0.0-beta.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/dist/default/__generated__/skins/default-video/styles/buttons.css +132 -18
  2. package/dist/default/__generated__/skins/default-video/styles/captions.css +22 -0
  3. package/dist/default/__generated__/skins/default-video/styles/container.css +121 -8
  4. package/dist/default/__generated__/skins/default-video/styles/controls.css +436 -21
  5. package/dist/default/__generated__/skins/default-video/styles/dialog.css +169 -0
  6. package/dist/default/__generated__/skins/default-video/styles/indicator.css +459 -0
  7. package/dist/default/__generated__/skins/default-video/styles/menus.css +254 -0
  8. package/dist/default/__generated__/skins/default-video/styles/overlays.css +26 -2
  9. package/dist/default/__generated__/skins/default-video/styles/popups.css +338 -12
  10. package/dist/default/__generated__/skins/default-video/styles/poster.css +4 -4
  11. package/dist/default/__generated__/skins/default-video/styles/sliders.css +355 -31
  12. package/dist/default/__generated__/skins/default-video/styles/styles.css +2455 -216
  13. package/dist/default/__generated__/skins/default-video/styles/theme.css +4 -19
  14. package/dist/default/__generated__/skins/default-video/styles/video.css +29 -0
  15. package/dist/default/__generated__/skins/minimal-video/styles/base.css +25 -0
  16. package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  17. package/dist/default/__generated__/skins/minimal-video/styles/captions.css +22 -0
  18. package/dist/default/__generated__/skins/minimal-video/styles/container.css +158 -0
  19. package/dist/default/__generated__/skins/minimal-video/styles/controls.css +182 -0
  20. package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  21. package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  22. package/dist/default/__generated__/skins/minimal-video/styles/menus.css +254 -0
  23. package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  24. package/dist/default/__generated__/skins/minimal-video/styles/popups.css +371 -0
  25. package/dist/default/__generated__/skins/minimal-video/styles/poster.css +47 -0
  26. package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  27. package/dist/default/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  28. package/dist/default/__generated__/skins/minimal-video/styles/theme.css +7 -0
  29. package/dist/default/__generated__/skins/minimal-video/styles/video.css +29 -0
  30. package/dist/default/i18n/index.js +2 -1
  31. package/dist/default/i18n/text.js +20 -0
  32. package/dist/default/i18n/text.js.map +1 -0
  33. package/dist/default/icons/dist/react/default/airplay-exit.js +3 -3
  34. package/dist/default/icons/dist/react/default/airplay-exit.js.map +1 -1
  35. package/dist/default/icons/dist/react/minimal/airplay-exit.js +3 -3
  36. package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  37. package/dist/default/index.js +2 -1
  38. package/dist/default/media/hls-background-video/media.js +18 -3
  39. package/dist/default/media/hls-background-video/media.js.map +1 -1
  40. package/dist/default/presets/audio/minimal-skin.css +103 -101
  41. package/dist/default/presets/audio/minimal-skin.js +1 -1
  42. package/dist/default/presets/audio/minimal-skin.tailwind.js +1 -1
  43. package/dist/default/presets/audio/skin.css +68 -69
  44. package/dist/default/presets/audio/skin.js +1 -1
  45. package/dist/default/presets/audio/skin.tailwind.js +1 -1
  46. package/dist/default/presets/live-audio/minimal-skin.css +103 -101
  47. package/dist/default/presets/live-audio/skin.css +68 -69
  48. package/dist/default/presets/live-video/minimal-skin.css +140 -120
  49. package/dist/default/presets/live-video/minimal-skin.js +3 -8
  50. package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
  51. package/dist/default/presets/live-video/minimal-skin.tailwind.js +5 -8
  52. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  53. package/dist/default/presets/live-video/skin.css +89 -76
  54. package/dist/default/presets/live-video/skin.js +3 -8
  55. package/dist/default/presets/live-video/skin.js.map +1 -1
  56. package/dist/default/presets/live-video/skin.tailwind.js +7 -10
  57. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
  58. package/dist/default/presets/video/minimal-skin.css +140 -120
  59. package/dist/default/presets/video/minimal-skin.js +3 -8
  60. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  61. package/dist/default/presets/video/minimal-skin.tailwind.js +5 -8
  62. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  63. package/dist/default/presets/video/skin.css +89 -76
  64. package/dist/default/presets/video/skin.js +3 -8
  65. package/dist/default/presets/video/skin.js.map +1 -1
  66. package/dist/default/presets/video/skin.tailwind.js +6 -9
  67. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  68. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -1
  69. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  70. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +8 -1
  71. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  72. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +10 -10
  73. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  74. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  75. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  76. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
  77. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  78. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  79. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  80. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  81. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  82. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  83. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  84. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
  85. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  86. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  87. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  88. package/dist/default/ui/gesture/gesture.js.map +1 -1
  89. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
  90. package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
  91. package/dist/default/ui/hotkey/hotkey.js.map +1 -1
  92. package/dist/default/ui/menu/context.js +6 -1
  93. package/dist/default/ui/menu/context.js.map +1 -1
  94. package/dist/default/ui/menu/menu-item-indicator.js +3 -2
  95. package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
  96. package/dist/default/ui/menu/menu-radio-item.js +19 -15
  97. package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
  98. package/dist/default/ui/menu/menu-root.js +5 -6
  99. package/dist/default/ui/menu/menu-root.js.map +1 -1
  100. package/dist/default/ui/poster/poster.js +64 -17
  101. package/dist/default/ui/poster/poster.js.map +1 -1
  102. package/dist/default/ui/slider/slider-preview.js.map +1 -1
  103. package/dist/default/utils/use-render.js +2 -8
  104. package/dist/default/utils/use-render.js.map +1 -1
  105. package/dist/dev/__generated__/skins/default-video/styles/buttons.css +132 -18
  106. package/dist/dev/__generated__/skins/default-video/styles/captions.css +22 -0
  107. package/dist/dev/__generated__/skins/default-video/styles/container.css +121 -8
  108. package/dist/dev/__generated__/skins/default-video/styles/controls.css +436 -21
  109. package/dist/dev/__generated__/skins/default-video/styles/dialog.css +169 -0
  110. package/dist/dev/__generated__/skins/default-video/styles/indicator.css +459 -0
  111. package/dist/dev/__generated__/skins/default-video/styles/menus.css +254 -0
  112. package/dist/dev/__generated__/skins/default-video/styles/overlays.css +26 -2
  113. package/dist/dev/__generated__/skins/default-video/styles/popups.css +338 -12
  114. package/dist/dev/__generated__/skins/default-video/styles/poster.css +4 -4
  115. package/dist/dev/__generated__/skins/default-video/styles/sliders.css +355 -31
  116. package/dist/dev/__generated__/skins/default-video/styles/styles.css +2455 -216
  117. package/dist/dev/__generated__/skins/default-video/styles/theme.css +4 -19
  118. package/dist/dev/__generated__/skins/default-video/styles/video.css +29 -0
  119. package/dist/dev/__generated__/skins/minimal-video/styles/base.css +25 -0
  120. package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  121. package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +22 -0
  122. package/dist/dev/__generated__/skins/minimal-video/styles/container.css +158 -0
  123. package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +182 -0
  124. package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  125. package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  126. package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +254 -0
  127. package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  128. package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +371 -0
  129. package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +47 -0
  130. package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  131. package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  132. package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +7 -0
  133. package/dist/dev/__generated__/skins/minimal-video/styles/video.css +29 -0
  134. package/dist/dev/i18n/index.d.ts +2 -1
  135. package/dist/dev/i18n/index.js +2 -1
  136. package/dist/dev/i18n/text.d.ts +11 -0
  137. package/dist/dev/i18n/text.d.ts.map +1 -0
  138. package/dist/dev/i18n/text.js +20 -0
  139. package/dist/dev/i18n/text.js.map +1 -0
  140. package/dist/dev/icons/dist/react/default/airplay-exit.js +3 -3
  141. package/dist/dev/icons/dist/react/default/airplay-exit.js.map +1 -1
  142. package/dist/dev/icons/dist/react/minimal/airplay-exit.js +3 -3
  143. package/dist/dev/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  144. package/dist/dev/icons/index.d.ts +6 -1
  145. package/dist/dev/icons/index.d.ts.map +1 -0
  146. package/dist/dev/icons/minimal/index.d.ts +6 -1
  147. package/dist/dev/icons/minimal/index.d.ts.map +1 -0
  148. package/dist/dev/index.d.ts +3 -2
  149. package/dist/dev/index.js +2 -1
  150. package/dist/dev/media/hls-background-video/media.d.ts +8 -0
  151. package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
  152. package/dist/dev/media/hls-background-video/media.js +18 -3
  153. package/dist/dev/media/hls-background-video/media.js.map +1 -1
  154. package/dist/dev/presets/audio/minimal-skin.css +103 -101
  155. package/dist/dev/presets/audio/minimal-skin.js +1 -1
  156. package/dist/dev/presets/audio/minimal-skin.tailwind.js +1 -1
  157. package/dist/dev/presets/audio/player.d.ts +2 -2
  158. package/dist/dev/presets/audio/skin.css +68 -69
  159. package/dist/dev/presets/audio/skin.js +1 -1
  160. package/dist/dev/presets/audio/skin.tailwind.js +1 -1
  161. package/dist/dev/presets/live-audio/minimal-skin.css +103 -101
  162. package/dist/dev/presets/live-audio/player.d.ts +2 -2
  163. package/dist/dev/presets/live-audio/skin.css +68 -69
  164. package/dist/dev/presets/live-video/minimal-skin.css +140 -120
  165. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
  166. package/dist/dev/presets/live-video/minimal-skin.js +3 -8
  167. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
  168. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  169. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +5 -8
  170. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  171. package/dist/dev/presets/live-video/player.d.ts +2 -2
  172. package/dist/dev/presets/live-video/skin.css +89 -76
  173. package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
  174. package/dist/dev/presets/live-video/skin.js +3 -8
  175. package/dist/dev/presets/live-video/skin.js.map +1 -1
  176. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
  177. package/dist/dev/presets/live-video/skin.tailwind.js +7 -10
  178. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
  179. package/dist/dev/presets/types.d.ts +15 -2
  180. package/dist/dev/presets/types.d.ts.map +1 -1
  181. package/dist/dev/presets/video/minimal-skin.css +140 -120
  182. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  183. package/dist/dev/presets/video/minimal-skin.js +3 -8
  184. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  185. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  186. package/dist/dev/presets/video/minimal-skin.tailwind.js +5 -8
  187. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  188. package/dist/dev/presets/video/player.d.ts +2 -2
  189. package/dist/dev/presets/video/skin.css +89 -76
  190. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  191. package/dist/dev/presets/video/skin.js +3 -8
  192. package/dist/dev/presets/video/skin.js.map +1 -1
  193. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  194. package/dist/dev/presets/video/skin.tailwind.js +6 -9
  195. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  196. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +3 -1
  197. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  198. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +8 -1
  199. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  200. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +10 -10
  201. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  202. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  203. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  204. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
  205. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  206. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  207. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  208. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  209. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  210. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  211. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  212. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
  213. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  214. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  215. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  216. package/dist/dev/ui/gesture/gesture.d.ts +6 -13
  217. package/dist/dev/ui/gesture/gesture.d.ts.map +1 -1
  218. package/dist/dev/ui/gesture/gesture.js.map +1 -1
  219. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts +2 -5
  220. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
  221. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
  222. package/dist/dev/ui/gesture/use-tap-gesture.d.ts +2 -5
  223. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
  224. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
  225. package/dist/dev/ui/hotkey/hotkey.d.ts +6 -12
  226. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -1
  227. package/dist/dev/ui/hotkey/hotkey.js.map +1 -1
  228. package/dist/dev/ui/menu/context.js +6 -1
  229. package/dist/dev/ui/menu/context.js.map +1 -1
  230. package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
  231. package/dist/dev/ui/menu/menu-item-indicator.js +3 -2
  232. package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
  233. package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
  234. package/dist/dev/ui/menu/menu-radio-item.js +19 -15
  235. package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
  236. package/dist/dev/ui/menu/menu-root.js +5 -6
  237. package/dist/dev/ui/menu/menu-root.js.map +1 -1
  238. package/dist/dev/ui/poster/poster.d.ts +15 -4
  239. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  240. package/dist/dev/ui/poster/poster.js +64 -17
  241. package/dist/dev/ui/poster/poster.js.map +1 -1
  242. package/dist/dev/ui/slider/slider-preview.d.ts +5 -9
  243. package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
  244. package/dist/dev/ui/slider/slider-preview.js.map +1 -1
  245. package/dist/dev/utils/use-render.d.ts.map +1 -1
  246. package/dist/dev/utils/use-render.js +2 -8
  247. package/dist/dev/utils/use-render.js.map +1 -1
  248. package/docs/README.md +1 -1
  249. package/docs/concepts/skins.md +97 -96
  250. package/docs/how-to/customize-skins.md +421 -411
  251. package/docs/reference/create-player.md +2 -2
  252. package/docs/reference/menu.md +6 -18
  253. package/docs/reference/popover.md +6 -6
  254. package/docs/reference/poster.md +187 -13
  255. package/docs/reference/slider.md +1 -1
  256. package/docs/reference/time-slider.md +1 -1
  257. package/docs/reference/tooltip.md +10 -10
  258. package/docs/reference/volume-slider.md +1 -1
  259. package/package.json +13 -8
@@ -1,45 +1,460 @@
1
1
  @layer videojs.components {
2
2
  @scope (.media-skin-video) {
3
- .media-controls {
4
- inset-inline: var(--media-controls-gap);
5
- bottom: var(--media-controls-gap);
3
+ .media-button-group {
4
+ align-items: center;
5
+ gap: 1px;
6
+ display: flex;
7
+ }
8
+
9
+ .media-controls-primary {
10
+ inset-inline: calc(var(--media-spacing) * 2);
11
+ bottom: calc(var(--media-spacing) * 2);
6
12
  z-index: 10;
13
+ transform-origin: bottom;
14
+ border-radius: var(--media-control-radius);
15
+ padding: calc(var(--media-spacing) * 1);
16
+ color: #fff;
17
+ backdrop-filter: blur(16px) saturate(150%);
18
+ transition-property: filter, opacity, scale, translate;
19
+ transition-duration: var(--media-controls-transition-duration);
20
+ background-color: oklab(100% 0 5.96046e-8 / 0.1);
7
21
  align-items: center;
8
- gap: var(--media-controls-gap);
9
- border-radius: var(--media-radius-pill);
10
- background-color: var(--media-surface-background);
11
- padding: var(--media-controls-padding);
12
- font-family: var(--media-font-family);
13
- font-size: var(--media-font-size);
14
- color: var(--media-controls-color);
22
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
23
+ display: flex;
24
+ position: absolute;
15
25
  box-shadow:
16
26
  0 0 #0000,
17
27
  0 0 #0000,
18
28
  0 0 #0000,
19
- 0 0 #0000,
20
- 0 0 0 1px var(--media-surface-border),
21
- 0 2px 8px var(--media-shadow-color);
22
- backdrop-filter: blur(var(--media-surface-backdrop-blur));
23
- line-height: 1;
24
- display: flex;
29
+ 0 0 0 1px oklab(0% none none / 0.1),
30
+ 0 1px 3px oklab(0% none none / 0.15),
31
+ 0 1px 2px -1px oklab(0% none none / 0.15);
32
+ }
33
+
34
+ .media-controls-primary:after {
35
+ pointer-events: none;
36
+ inset: calc(var(--media-spacing) * 0);
37
+ z-index: 10;
38
+ border-radius: inherit;
39
+ content: '';
25
40
  position: absolute;
41
+ box-shadow:
42
+ 0 0 #0000,
43
+ 0 0 #0000,
44
+ 0 0 #0000,
45
+ 0 0 #0000,
46
+ inset 0 1px #ffffff1a,
47
+ inset 0 0 0 1px #ffffff0d;
48
+ }
49
+
50
+ @media (prefers-contrast: more) {
51
+ .media-controls-primary {
52
+ backdrop-filter: none;
53
+ background-color: #000;
54
+ box-shadow:
55
+ 0 0 #0000,
56
+ 0 0 #0000,
57
+ 0 0 #0000,
58
+ 0 0 0 1px #0000,
59
+ 0 1px 3px #00000026,
60
+ 0 1px 2px -1px #00000026;
61
+ }
62
+
63
+ .media-controls-primary:after {
64
+ content: '';
65
+ box-shadow:
66
+ 0 0 #0000,
67
+ 0 0 #0000,
68
+ 0 0 #0000,
69
+ 0 0 #0000,
70
+ inset 0 1px #ffffff40,
71
+ inset 0 0 0 1px #ffffff20;
72
+ }
73
+
74
+ .media-controls-secondary {
75
+ backdrop-filter: none;
76
+ background-color: #000;
77
+ box-shadow:
78
+ 0 0 #0000,
79
+ 0 0 #0000,
80
+ 0 0 #0000,
81
+ 0 0 0 1px #0000,
82
+ 0 1px 3px #00000026,
83
+ 0 1px 2px -1px #00000026;
84
+ }
85
+
86
+ .media-controls-secondary:after {
87
+ content: '';
88
+ box-shadow:
89
+ 0 0 #0000,
90
+ 0 0 #0000,
91
+ 0 0 #0000,
92
+ 0 0 #0000,
93
+ inset 0 1px #ffffff40,
94
+ inset 0 0 0 1px #ffffff20;
95
+ }
96
+ }
97
+
98
+ @container media-root (width < 32rem) {
99
+ @scope (.media-controls-root) {
100
+ &:not([data-visible]) .media-controls-primary {
101
+ pointer-events: none;
102
+ opacity: 0;
103
+ }
104
+ }
105
+
106
+ @media (prefers-reduced-motion: no-preference) {
107
+ @scope (.media-controls-root) {
108
+ &:not([data-visible]) .media-controls-primary {
109
+ translate: 0 calc(var(--media-spacing) * 1);
110
+ scale: 0.95;
111
+ }
112
+ }
113
+
114
+ @scope (.media-controls-root) {
115
+ &:not([data-visible]) .media-controls-secondary {
116
+ translate: 0 calc(var(--media-spacing) * -1);
117
+ scale: 0.95;
118
+ }
119
+ }
120
+ }
121
+
122
+ @scope (.media-controls-root) {
123
+ &:not([data-visible]) .media-controls-secondary {
124
+ pointer-events: none;
125
+ opacity: 0;
126
+ }
127
+ }
128
+ }
129
+
130
+ @container media-root (width >= 32rem) {
131
+ .media-controls-primary {
132
+ display: contents;
133
+ }
134
+
135
+ .media-controls-root {
136
+ inset-inline: calc(var(--media-spacing) * 2);
137
+ bottom: calc(var(--media-spacing) * 2);
138
+ z-index: 10;
139
+ border-radius: var(--media-control-radius);
140
+ color: #fff;
141
+ backdrop-filter: blur(16px) saturate(150%);
142
+ background-color: oklab(100% 0 5.96046e-8 / 0.1);
143
+ align-items: center;
144
+ display: flex;
145
+ position: absolute;
146
+ box-shadow:
147
+ 0 0 #0000,
148
+ 0 0 #0000,
149
+ 0 0 #0000,
150
+ 0 0 0 1px oklab(0% none none / 0.1),
151
+ 0 1px 3px #00000026,
152
+ 0 1px 2px -1px #00000026;
153
+ }
154
+
155
+ .media-controls-root:not([data-visible]) {
156
+ pointer-events: none;
157
+ opacity: 0;
158
+ }
159
+
160
+ .media-controls-root:after {
161
+ pointer-events: none;
162
+ inset: calc(var(--media-spacing) * 0);
163
+ z-index: 10;
164
+ border-radius: inherit;
165
+ content: '';
166
+ position: absolute;
167
+ box-shadow:
168
+ 0 0 #0000,
169
+ 0 0 #0000,
170
+ 0 0 #0000,
171
+ 0 0 #0000,
172
+ inset 0 1px #ffffff1a,
173
+ inset 0 0 0 1px #ffffff0d;
174
+ }
175
+
176
+ @media (prefers-reduced-motion: no-preference) {
177
+ .media-controls-root:not([data-visible]) {
178
+ translate: 0 calc(var(--media-spacing) * 1);
179
+ scale: 0.95;
180
+ }
181
+ }
182
+
183
+ @media (prefers-contrast: more) {
184
+ .media-controls-root {
185
+ backdrop-filter: none;
186
+ background-color: #000;
187
+ box-shadow:
188
+ 0 0 #0000,
189
+ 0 0 #0000,
190
+ 0 0 #0000,
191
+ 0 0 0 1px #0000,
192
+ 0 1px 3px #00000026,
193
+ 0 1px 2px -1px #00000026;
194
+ }
195
+
196
+ .media-controls-root:after {
197
+ content: '';
198
+ box-shadow:
199
+ 0 0 #0000,
200
+ 0 0 #0000,
201
+ 0 0 #0000,
202
+ 0 0 #0000,
203
+ inset 0 1px #ffffff40,
204
+ inset 0 0 0 1px #ffffff20;
205
+ }
206
+ }
207
+
208
+ @media (forced-colors: active) {
209
+ .media-controls-root {
210
+ background-color: canvas;
211
+ box-shadow:
212
+ 0 0 #0000,
213
+ 0 0 #0000,
214
+ 0 0 #0000,
215
+ 0 0 0 1px canvastext,
216
+ 0 1px 3px #00000026,
217
+ 0 1px 2px -1px #00000026;
218
+ }
219
+
220
+ .media-controls-root:after {
221
+ content: '';
222
+ box-shadow:
223
+ 0 0 #0000,
224
+ 0 0 #0000,
225
+ 0 0 #0000,
226
+ 0 0 #0000,
227
+ inset 0 1px canvastext,
228
+ inset 0 0 0 1px canvastext;
229
+ }
230
+ }
231
+
232
+ @media (pointer: fine) {
233
+ @media (prefers-reduced-motion: no-preference) {
234
+ .media-controls-root:not([data-visible]) {
235
+ filter: blur(8px);
236
+ }
237
+ }
238
+ }
239
+
240
+ @media (prefers-reduced-transparency: reduce) {
241
+ .media-controls-root {
242
+ backdrop-filter: none;
243
+ background-color: #000;
244
+ box-shadow:
245
+ 0 0 #0000,
246
+ 0 0 #0000,
247
+ 0 0 #0000,
248
+ 0 0 0 1px #0000,
249
+ 0 1px 3px #00000026,
250
+ 0 1px 2px -1px #00000026;
251
+ }
252
+
253
+ .media-controls-root:after {
254
+ content: '';
255
+ box-shadow:
256
+ 0 0 #0000,
257
+ 0 0 #0000,
258
+ 0 0 #0000,
259
+ 0 0 #0000,
260
+ inset 0 1px #ffffff40,
261
+ inset 0 0 0 1px #ffffff20;
262
+ }
263
+ }
264
+
265
+ .media-controls-secondary {
266
+ display: contents;
267
+ }
268
+ }
269
+
270
+ @media (forced-colors: active) {
271
+ .media-controls-primary {
272
+ background-color: canvas;
273
+ box-shadow:
274
+ 0 0 #0000,
275
+ 0 0 #0000,
276
+ 0 0 #0000,
277
+ 0 0 0 1px canvastext,
278
+ 0 1px 3px #00000026,
279
+ 0 1px 2px -1px #00000026;
280
+ }
281
+
282
+ .media-controls-primary:after {
283
+ content: '';
284
+ box-shadow:
285
+ 0 0 #0000,
286
+ 0 0 #0000,
287
+ 0 0 #0000,
288
+ 0 0 #0000,
289
+ inset 0 1px canvastext,
290
+ inset 0 0 0 1px canvastext;
291
+ }
292
+
293
+ .media-controls-secondary {
294
+ background-color: canvas;
295
+ box-shadow:
296
+ 0 0 #0000,
297
+ 0 0 #0000,
298
+ 0 0 #0000,
299
+ 0 0 0 1px canvastext,
300
+ 0 1px 3px #00000026,
301
+ 0 1px 2px -1px #00000026;
302
+ }
303
+
304
+ .media-controls-secondary:after {
305
+ content: '';
306
+ box-shadow:
307
+ 0 0 #0000,
308
+ 0 0 #0000,
309
+ 0 0 #0000,
310
+ 0 0 #0000,
311
+ inset 0 1px canvastext,
312
+ inset 0 0 0 1px canvastext;
313
+ }
314
+ }
315
+
316
+ @media (prefers-reduced-transparency: reduce) {
317
+ .media-controls-primary {
318
+ backdrop-filter: none;
319
+ background-color: #000;
320
+ box-shadow:
321
+ 0 0 #0000,
322
+ 0 0 #0000,
323
+ 0 0 #0000,
324
+ 0 0 0 1px #0000,
325
+ 0 1px 3px #00000026,
326
+ 0 1px 2px -1px #00000026;
327
+ }
328
+
329
+ .media-controls-primary:after {
330
+ content: '';
331
+ box-shadow:
332
+ 0 0 #0000,
333
+ 0 0 #0000,
334
+ 0 0 #0000,
335
+ 0 0 #0000,
336
+ inset 0 1px #ffffff40,
337
+ inset 0 0 0 1px #ffffff20;
338
+ }
339
+
340
+ .media-controls-secondary {
341
+ backdrop-filter: none;
342
+ background-color: #000;
343
+ box-shadow:
344
+ 0 0 #0000,
345
+ 0 0 #0000,
346
+ 0 0 #0000,
347
+ 0 0 0 1px #0000,
348
+ 0 1px 3px #00000026,
349
+ 0 1px 2px -1px #00000026;
350
+ }
351
+
352
+ .media-controls-secondary:after {
353
+ content: '';
354
+ box-shadow:
355
+ 0 0 #0000,
356
+ 0 0 #0000,
357
+ 0 0 #0000,
358
+ 0 0 #0000,
359
+ inset 0 1px #ffffff40,
360
+ inset 0 0 0 1px #ffffff20;
361
+ }
362
+ }
363
+
364
+ .media-controls-root {
365
+ color: #fff;
366
+ transition-property: filter, opacity, scale, translate;
367
+ transition-duration: var(--media-controls-transition-duration);
368
+ --media-popover-boundary-offset: 0.75rem;
369
+ --media-popover-side-offset: calc(var(--media-spacing) * 3);
370
+ --media-tooltip-boundary-offset: var(--media-popover-boundary-offset);
371
+ --media-tooltip-side-offset: var(--media-popover-side-offset);
372
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
373
+ display: contents;
374
+ }
375
+
376
+ .media-controls-root:is(:where(.media-error-dialog)[data-open] ~ *) {
377
+ display: none !important;
26
378
  }
27
379
 
28
- .media-controls-group-primary {
380
+ @container media-root (width >= 42rem) {
381
+ .media-controls-root {
382
+ inset-inline: calc(var(--media-spacing) * 3);
383
+ bottom: calc(var(--media-spacing) * 3);
384
+ }
385
+ }
386
+
387
+ .media-controls-secondary {
388
+ top: calc(var(--media-spacing) * 2);
389
+ right: calc(var(--media-spacing) * 2);
390
+ z-index: 10;
391
+ transform-origin: top;
392
+ border-radius: var(--media-control-radius);
393
+ padding: calc(var(--media-spacing) * 1);
394
+ color: #fff;
395
+ backdrop-filter: blur(16px) saturate(150%);
396
+ transition-property: filter, opacity, scale, translate;
397
+ transition-duration: var(--media-controls-transition-duration);
398
+ background-color: oklab(100% 0 5.96046e-8 / 0.1);
29
399
  align-items: center;
30
- gap: var(--media-controls-gap);
400
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
31
401
  display: flex;
402
+ position: absolute;
403
+ box-shadow:
404
+ 0 0 #0000,
405
+ 0 0 #0000,
406
+ 0 0 #0000,
407
+ 0 0 0 1px oklab(0% none none / 0.1),
408
+ 0 1px 3px oklab(0% none none / 0.15),
409
+ 0 1px 2px -1px oklab(0% none none / 0.15);
32
410
  }
33
411
 
34
- .media-controls-group-time {
412
+ .media-controls-secondary:after {
413
+ pointer-events: none;
414
+ inset: calc(var(--media-spacing) * 0);
415
+ z-index: 10;
416
+ border-radius: inherit;
417
+ content: '';
418
+ position: absolute;
419
+ box-shadow:
420
+ 0 0 #0000,
421
+ 0 0 #0000,
422
+ 0 0 #0000,
423
+ 0 0 #0000,
424
+ inset 0 1px #ffffff1a,
425
+ inset 0 0 0 1px #ffffff0d;
426
+ }
427
+
428
+ .media-time-controls {
35
429
  align-items: center;
36
- gap: var(--media-controls-gap);
430
+ gap: calc(var(--media-spacing) * 2.5);
431
+ padding-inline: calc(var(--media-spacing) * 3);
37
432
  flex: 1;
38
433
  display: flex;
434
+ container: media-time / inline-size;
39
435
  }
40
436
 
41
- .media-time {
437
+ @container media-time (width < 16rem) {
438
+ .media-time-controls > :last-child {
439
+ display: none;
440
+ }
441
+ }
442
+
443
+ .media-time-current {
42
444
  font-variant-numeric: tabular-nums;
43
445
  }
446
+
447
+ .media-time-remaining {
448
+ cursor: pointer;
449
+ font-variant-numeric: tabular-nums;
450
+ outline-offset: -2px;
451
+ border-radius: 0.25rem;
452
+ outline: 2px solid #0000;
453
+ }
454
+
455
+ .media-time-remaining:focus-visible {
456
+ outline-offset: 2px;
457
+ outline-color: currentColor;
458
+ }
44
459
  }
45
460
  }
@@ -0,0 +1,169 @@
1
+ @layer videojs.components {
2
+ @scope (.media-skin-video) {
3
+ .media-error-dialog {
4
+ z-index: 20;
5
+ width: calc(100% - 1.5rem);
6
+ max-width: calc(var(--media-spacing) * 72);
7
+ gap: calc(var(--media-spacing) * 3);
8
+ padding: calc(var(--media-spacing) * 3);
9
+ color: #fff;
10
+ backdrop-filter: blur(16px) saturate(150%);
11
+ background-color: oklab(100% 0 5.96046e-8 / 0.1);
12
+ border-radius: 1.75rem;
13
+ outline-style: none;
14
+ flex-direction: column;
15
+ transition:
16
+ opacity 0.35s cubic-bezier(0, 0, 0.2, 1) 0.1s,
17
+ scale 0.35s cubic-bezier(0, 0, 0.2, 1) 0.1s,
18
+ transform 0.35s cubic-bezier(0, 0, 0.2, 1) 0.1s;
19
+ display: flex;
20
+ position: absolute;
21
+ top: 50%;
22
+ left: 50%;
23
+ translate: -50% -50%;
24
+ box-shadow:
25
+ 0 0 #0000,
26
+ 0 0 #0000,
27
+ 0 0 #0000,
28
+ 0 0 0 1px oklab(0% none none / 0.1),
29
+ 0 1px 3px oklab(0% none none / 0.15),
30
+ 0 1px 2px -1px oklab(0% none none / 0.15);
31
+ }
32
+
33
+ .media-error-dialog:not([data-open]) {
34
+ display: none;
35
+ }
36
+
37
+ .media-error-dialog:after {
38
+ pointer-events: none;
39
+ inset: calc(var(--media-spacing) * 0);
40
+ z-index: 10;
41
+ border-radius: inherit;
42
+ content: '';
43
+ position: absolute;
44
+ box-shadow:
45
+ 0 0 #0000,
46
+ 0 0 #0000,
47
+ 0 0 #0000,
48
+ 0 0 #0000,
49
+ inset 0 1px #ffffff1a,
50
+ inset 0 0 0 1px #ffffff0d;
51
+ }
52
+
53
+ .media-error-dialog[data-ending-style] {
54
+ opacity: 0;
55
+ transition-delay: 0s;
56
+ scale: 0.5;
57
+ }
58
+
59
+ .media-error-dialog[data-starting-style] {
60
+ opacity: 0;
61
+ scale: 0.5;
62
+ }
63
+
64
+ @media (prefers-reduced-motion: reduce) {
65
+ .media-error-dialog {
66
+ transition-duration: 50ms;
67
+ transition-delay: 0s;
68
+ }
69
+ }
70
+
71
+ @media (prefers-contrast: more) {
72
+ .media-error-dialog {
73
+ backdrop-filter: none;
74
+ background-color: #000;
75
+ box-shadow:
76
+ 0 0 #0000,
77
+ 0 0 #0000,
78
+ 0 0 #0000,
79
+ 0 0 0 1px #0000,
80
+ 0 1px 3px #00000026,
81
+ 0 1px 2px -1px #00000026;
82
+ }
83
+
84
+ .media-error-dialog:after {
85
+ content: '';
86
+ box-shadow:
87
+ 0 0 #0000,
88
+ 0 0 #0000,
89
+ 0 0 #0000,
90
+ 0 0 #0000,
91
+ inset 0 1px #ffffff40,
92
+ inset 0 0 0 1px #ffffff20;
93
+ }
94
+ }
95
+
96
+ @media (forced-colors: active) {
97
+ .media-error-dialog {
98
+ background-color: canvas;
99
+ box-shadow:
100
+ 0 0 #0000,
101
+ 0 0 #0000,
102
+ 0 0 #0000,
103
+ 0 0 0 1px canvastext,
104
+ 0 1px 3px #00000026,
105
+ 0 1px 2px -1px #00000026;
106
+ }
107
+
108
+ .media-error-dialog:after {
109
+ content: '';
110
+ box-shadow:
111
+ 0 0 #0000,
112
+ 0 0 #0000,
113
+ 0 0 #0000,
114
+ 0 0 #0000,
115
+ inset 0 1px canvastext,
116
+ inset 0 0 0 1px canvastext;
117
+ }
118
+ }
119
+
120
+ @media (prefers-reduced-transparency: reduce) {
121
+ .media-error-dialog {
122
+ backdrop-filter: none;
123
+ background-color: #000;
124
+ box-shadow:
125
+ 0 0 #0000,
126
+ 0 0 #0000,
127
+ 0 0 #0000,
128
+ 0 0 0 1px #0000,
129
+ 0 1px 3px #00000026,
130
+ 0 1px 2px -1px #00000026;
131
+ }
132
+
133
+ .media-error-dialog:after {
134
+ content: '';
135
+ box-shadow:
136
+ 0 0 #0000,
137
+ 0 0 #0000,
138
+ 0 0 #0000,
139
+ 0 0 #0000,
140
+ inset 0 1px #ffffff40,
141
+ inset 0 0 0 1px #ffffff20;
142
+ }
143
+ }
144
+
145
+ .media-error-dialog-close {
146
+ height: calc(var(--media-spacing) * 9);
147
+ background-color: var(--media-accent-color, oklch(100% 0 0));
148
+ width: 100%;
149
+ padding-inline: calc(var(--media-spacing) * 4);
150
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
151
+ font-weight: 500;
152
+ }
153
+
154
+ .media-error-dialog-description {
155
+ padding-inline: calc(var(--media-spacing) * 2);
156
+ padding-bottom: calc(var(--media-spacing) * 1.5);
157
+ overflow-wrap: anywhere;
158
+ opacity: 0.7;
159
+ }
160
+
161
+ .media-error-dialog-title {
162
+ padding-inline: calc(var(--media-spacing) * 2);
163
+ padding-top: calc(var(--media-spacing) * 2);
164
+ font-size: calc(var(--media-spacing) * 3.25);
165
+ font-weight: 600;
166
+ line-height: 1.25;
167
+ }
168
+ }
169
+ }