@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,47 +1,145 @@
1
1
  @layer videojs.components {
2
2
  @scope (.media-skin-video) {
3
+ .media-airplay-button:not([data-airplay-state='connected']) {
4
+ --media-icon-airplay-fill-animation: none;
5
+ --media-icon-airplay-triangle-animation: none;
6
+ }
7
+
8
+ .media-airplay-enter-icon {
9
+ opacity: 0;
10
+ display: none;
11
+ }
12
+
13
+ @scope (.media-airplay-button) {
14
+ &:not([data-airplay-state='connected']) .media-airplay-enter-icon {
15
+ opacity: 1;
16
+ display: block;
17
+ }
18
+ }
19
+
20
+ .media-airplay-exit-icon {
21
+ opacity: 0;
22
+ display: none;
23
+ }
24
+
25
+ @scope (.media-airplay-button) {
26
+ &[data-airplay-state='connected'] .media-airplay-exit-icon {
27
+ opacity: 1;
28
+ display: block;
29
+ }
30
+ }
31
+
3
32
  .media-button {
4
- width: var(--media-control-size);
5
- height: var(--media-control-size);
33
+ width: calc(var(--media-spacing) * 9);
34
+ height: calc(var(--media-spacing) * 9);
35
+ min-height: calc(var(--media-spacing) * 0);
6
36
  cursor: pointer;
7
- border-radius: var(--media-radius-pill);
37
+ touch-action: manipulation;
38
+ border-radius: var(--media-control-radius);
39
+ padding: calc(var(--media-spacing) * 0);
40
+ text-align: center;
8
41
  color: inherit;
9
42
  outline-offset: -2px;
43
+ -webkit-user-select: none;
44
+ user-select: none;
10
45
  background-color: #0000;
11
46
  border-style: solid;
12
47
  border-width: 0;
13
48
  outline: 2px solid #0000;
14
49
  flex-shrink: 0;
15
50
  place-items: center;
16
- padding: 0;
51
+ transition-property: background-color, color, outline-offset, scale;
52
+ transition-duration: 0.15s;
53
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
17
54
  display: grid;
18
55
  }
19
56
 
20
57
  @media (hover: hover) {
21
58
  .media-button:hover {
22
- background-color: var(--media-control-hover-background);
59
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
60
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
23
61
  }
24
62
  }
25
63
 
26
64
  .media-button:focus-visible {
27
- background-color: var(--media-control-hover-background);
65
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
66
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
28
67
  outline-offset: 2px;
29
68
  outline-color: currentColor;
30
69
  }
31
70
 
71
+ .media-button:not([aria-disabled='true']):active {
72
+ scale: 0.9;
73
+ }
74
+
32
75
  .media-button[aria-disabled='true'] {
33
76
  cursor: not-allowed;
34
77
  opacity: 0.5;
35
78
  }
36
79
 
37
80
  .media-button[aria-expanded='true'] {
38
- background-color: var(--media-control-hover-background);
81
+ background-color: var(--media-accent-color, oklch(100% 0 0 / 0.1));
82
+ color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0% 0 0))));
83
+ }
84
+
85
+ @media (prefers-reduced-motion: reduce) {
86
+ .media-button {
87
+ transition-duration: 50ms;
88
+ }
39
89
  }
40
90
 
41
91
  .media-button-icon {
42
- width: var(--media-icon-size);
43
- height: var(--media-icon-size);
44
- filter: drop-shadow(0 1px 0 var(--media-shadow-color));
92
+ width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
93
+ height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
94
+ filter: drop-shadow(0 1px #00000026);
95
+ }
96
+
97
+ .media-captions-off-icon {
98
+ opacity: 0;
99
+ display: none;
100
+ }
101
+
102
+ @scope (.media-captions-button) {
103
+ &:not([data-active]) .media-captions-off-icon {
104
+ opacity: 1;
105
+ display: block;
106
+ }
107
+ }
108
+
109
+ .media-captions-on-icon {
110
+ opacity: 0;
111
+ display: none;
112
+ }
113
+
114
+ @scope (.media-captions-button) {
115
+ &[data-active] .media-captions-on-icon {
116
+ opacity: 1;
117
+ display: block;
118
+ }
119
+ }
120
+
121
+ .media-cast-enter-icon {
122
+ opacity: 0;
123
+ display: none;
124
+ }
125
+
126
+ @scope (.media-cast-button) {
127
+ &:not([data-cast-state='connected']) .media-cast-enter-icon {
128
+ opacity: 1;
129
+ display: block;
130
+ }
131
+ }
132
+
133
+ .media-cast-exit-icon {
134
+ opacity: 0;
135
+ display: none;
136
+ }
137
+
138
+ @scope (.media-cast-button) {
139
+ &[data-cast-state='connected'] .media-cast-exit-icon {
140
+ opacity: 1;
141
+ display: block;
142
+ }
45
143
  }
46
144
 
47
145
  .media-fullscreen-enter-icon {
@@ -80,6 +178,30 @@
80
178
  }
81
179
  }
82
180
 
181
+ .media-pip-enter-icon {
182
+ opacity: 0;
183
+ display: none;
184
+ }
185
+
186
+ @scope (.media-pip-button) {
187
+ &:not([data-pip]) .media-pip-enter-icon {
188
+ opacity: 1;
189
+ display: block;
190
+ }
191
+ }
192
+
193
+ .media-pip-exit-icon {
194
+ opacity: 0;
195
+ display: none;
196
+ }
197
+
198
+ @scope (.media-pip-button) {
199
+ &[data-pip] .media-pip-exit-icon {
200
+ opacity: 1;
201
+ display: block;
202
+ }
203
+ }
204
+
83
205
  .media-play-icon {
84
206
  opacity: 0;
85
207
  display: none;
@@ -105,14 +227,6 @@
105
227
  }
106
228
  }
107
229
 
108
- .media-seek-backward-icon {
109
- scale: -1 1;
110
- }
111
-
112
- .media-seek-button-label {
113
- font-variant-numeric: tabular-nums;
114
- }
115
-
116
230
  .media-volume-high-icon {
117
231
  opacity: 0;
118
232
  display: none;
@@ -0,0 +1,22 @@
1
+ @layer videojs.components {
2
+ @scope (.media-skin) {
3
+ video::-webkit-media-text-track-container {
4
+ translate: 0 calc(var(--media-spacing) * -2);
5
+ transition: translate var(--media-controls-transition-duration) ease-out 25ms;
6
+ }
7
+
8
+ :scope.media-theme-default:has([data-controls][data-visible]) video::-webkit-media-text-track-container {
9
+ translate: 0 calc(var(--media-spacing) * -14);
10
+ }
11
+
12
+ :scope.media-theme-minimal:has([data-controls][data-visible]) video::-webkit-media-text-track-container {
13
+ translate: 0 calc(var(--media-spacing) * -18);
14
+ }
15
+
16
+ @container media-root (width > 42rem) {
17
+ :scope.media-theme-minimal:has([data-controls][data-visible]) video::-webkit-media-text-track-container {
18
+ translate: 0 calc(var(--media-spacing) * -12);
19
+ }
20
+ }
21
+ }
22
+ }
@@ -1,19 +1,40 @@
1
1
  @layer videojs.components {
2
2
  @scope (.media-skin-video) {
3
- .media-container {
3
+ .media-container,
4
+ :scope.media-container {
4
5
  isolation: isolate;
5
- border-radius: var(--media-radius-surface);
6
- background-color: #000;
6
+ border-radius: var(--media-video-border-radius);
7
7
  width: 100%;
8
8
  height: 100%;
9
+ font-family:
10
+ ui-sans-serif,
11
+ system-ui,
12
+ sans-serif,
13
+ Apple Color Emoji,
14
+ Segoe UI Emoji,
15
+ Segoe UI Symbol,
16
+ Noto Color Emoji;
17
+ font-size: calc(var(--media-spacing) * 3.25);
18
+ -webkit-font-smoothing: auto;
19
+ -moz-osx-font-smoothing: auto;
20
+ outline-offset: -4px;
21
+ --spacing: var(--media-spacing);
22
+ background-color: #000;
23
+ outline: 2px solid #0000;
24
+ line-height: 1.5;
25
+ transition-property: outline-offset, outline-color;
26
+ transition-duration: 0.1s;
27
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
9
28
  display: block;
10
29
  position: relative;
11
30
  overflow: hidden;
12
- container: media-container / inline-size;
31
+ container: media-root / inline-size;
13
32
  }
14
33
 
15
- .media-container:before {
34
+ .media-container:before,
35
+ :scope.media-container:before {
16
36
  pointer-events: none;
37
+ inset: calc(var(--media-spacing) * 0);
17
38
  background-image: var(--media-poster-placeholder, none);
18
39
  background-size: var(--media-object-fit, contain);
19
40
  background-position: var(--media-object-position, center);
@@ -25,15 +46,70 @@
25
46
  transition-duration: 0.25s;
26
47
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
27
48
  position: absolute;
28
- inset: 0;
29
49
  }
30
50
 
31
- .media-container:has(:is(img[data-visible]:not([data-loaded]))):before {
51
+ .media-container:after,
52
+ :scope.media-container:after {
53
+ pointer-events: none;
54
+ inset: calc(var(--media-spacing) * 0);
55
+ z-index: 10;
56
+ border-radius: inherit;
57
+ content: '';
58
+ position: absolute;
59
+ box-shadow:
60
+ 0 0 #0000,
61
+ 0 0 #0000,
62
+ 0 0 #0000,
63
+ 0 0 #0000,
64
+ inset 0 0 0 1px light-dark(#0000001a, #ffffff26);
65
+ }
66
+
67
+ .media-container:focus-visible,
68
+ :scope.media-container:focus-visible {
69
+ outline-offset: 2px;
70
+ outline-color: #fff;
71
+ }
72
+
73
+ .media-container:has(:is(img[data-visible]:not([data-loaded]))):before,
74
+ :scope.media-container:has(:is(img[data-visible]:not([data-loaded]))):before {
32
75
  content: '';
33
76
  opacity: 1;
34
77
  }
35
78
 
36
- .media-container video {
79
+ @media (prefers-reduced-motion: reduce) {
80
+ .media-container,
81
+ :scope.media-container {
82
+ transition-duration: 50ms;
83
+ }
84
+ }
85
+
86
+ @media (forced-colors: active) {
87
+ .media-container:after,
88
+ :scope.media-container:after {
89
+ content: '';
90
+ box-shadow:
91
+ 0 0 #0000,
92
+ 0 0 #0000,
93
+ 0 0 #0000,
94
+ 0 0 #0000,
95
+ inset 0 0 0 1px canvastext;
96
+ }
97
+
98
+ .media-container:focus-visible,
99
+ :scope.media-container:focus-visible {
100
+ outline-color: canvastext;
101
+ }
102
+ }
103
+
104
+ @media (pointer: fine) {
105
+ .media-container:has([data-controls]:not([data-visible])),
106
+ :scope.media-container:has([data-controls]:not([data-visible])) {
107
+ cursor: none;
108
+ }
109
+ }
110
+
111
+ .media-container video,
112
+ :scope.media-container video {
37
113
  border-radius: inherit;
38
114
  object-fit: var(--media-object-fit, contain);
39
115
  object-position: var(--media-object-position, center);
@@ -41,5 +117,42 @@
41
117
  height: 100%;
42
118
  display: block;
43
119
  }
120
+
121
+ .media-container:fullscreen,
122
+ :scope.media-container:fullscreen {
123
+ --media-video-border-radius: 0;
124
+ }
125
+
126
+ .media-container:fullscreen:after,
127
+ :scope.media-container:fullscreen:after {
128
+ content: '';
129
+ display: none;
130
+ }
131
+
132
+ @media (width >= 1280px) {
133
+ .media-container:fullscreen,
134
+ :scope.media-container:fullscreen {
135
+ --media-scale: 1.25;
136
+ }
137
+ }
138
+
139
+ @media (width >= 1536px) {
140
+ .media-container:fullscreen,
141
+ :scope.media-container:fullscreen {
142
+ --media-scale: 1.5;
143
+ }
144
+ }
145
+
146
+ @media (width >= 1920px) {
147
+ .media-container:fullscreen,
148
+ :scope.media-container:fullscreen {
149
+ --media-scale: 1.75;
150
+ }
151
+ }
152
+
153
+ .media-container:fullscreen video,
154
+ :scope.media-container:fullscreen video {
155
+ object-fit: contain;
156
+ }
44
157
  }
45
158
  }