Invidious is an alternative front-end to YouTube https://invidious.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

392 lines
6.5 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
7 years ago
7 years ago
7 years ago
  1. .deleted {
  2. background-color: rgb(255, 0, 0, 0.5);
  3. }
  4. .channel-owner {
  5. background-color: #008bec;
  6. color: #fff;
  7. border-radius: 9px;
  8. padding: 1px 6px;
  9. }
  10. .creator-heart-container {
  11. display: inline-block;
  12. padding: 0px 7px 6px 0px;
  13. margin: 0px -7px -4px 0px;
  14. }
  15. .creator-heart {
  16. position: relative;
  17. width: 16px;
  18. height: 16px;
  19. border: 2px none;
  20. }
  21. .creator-heart-background-hearted {
  22. width: 16px;
  23. height: 16px;
  24. padding: 0px;
  25. position: relative;
  26. }
  27. .creator-heart-small-hearted {
  28. position: absolute;
  29. right: -7px;
  30. bottom: -4px;
  31. }
  32. .creator-heart-small-container {
  33. position: relative;
  34. width: 13px;
  35. height: 13px;
  36. color: rgb(255, 0, 0);
  37. }
  38. .h-box {
  39. padding-left: 1em;
  40. padding-right: 1em;
  41. }
  42. .v-box {
  43. padding-top: 1em;
  44. padding-bottom: 1em;
  45. }
  46. div {
  47. overflow-wrap: break-word;
  48. word-wrap: break-word;
  49. }
  50. .loading {
  51. display: inline-block;
  52. animation: spin 2s linear infinite;
  53. }
  54. .playlist-restricted {
  55. height: 20em;
  56. padding-right: 10px;
  57. }
  58. button.pure-button-primary,
  59. a.pure-button-primary,
  60. .channel-owner:hover {
  61. background-color: #a0a0a0;
  62. color: rgba(35, 35, 35, 1);
  63. }
  64. button.pure-button-primary:hover,
  65. a.pure-button-primary:hover {
  66. background-color: rgba(0, 182, 240, 1);
  67. color: #fff;
  68. }
  69. div.thumbnail {
  70. padding: 28.125%;
  71. position: relative;
  72. box-sizing: border-box;
  73. }
  74. img.thumbnail {
  75. position: absolute;
  76. width: 100%;
  77. height: 100%;
  78. left: 0;
  79. top: 0;
  80. }
  81. .length {
  82. z-index: 100;
  83. position: absolute;
  84. background-color: rgba(35, 35, 35, 0.75);
  85. color: #fff;
  86. border-radius: 2px;
  87. padding: 2px;
  88. font-size: 16px;
  89. font-family: sans-serif;
  90. right: 0.5em;
  91. bottom: -0.5em;
  92. }
  93. .watched {
  94. z-index: 100;
  95. position: absolute;
  96. background-color: rgba(35, 35, 35, 0.75);
  97. color: #fff;
  98. border-radius: 2px;
  99. padding: 4px 8px 4px 8px;
  100. font-size: 16px;
  101. font-family: sans-serif;
  102. left: 0.2em;
  103. top: -0.7em;
  104. }
  105. /*
  106. * Navbar
  107. */
  108. .navbar {
  109. margin: 1em 0;
  110. display: flex; /* this is also defined in framework, but in case of future changes */
  111. align-items: center;
  112. justify-content: space-between;
  113. }
  114. .navbar > div {
  115. flex: 1;
  116. }
  117. .navbar > .searchbar {
  118. flex-grow: 2; /* take double the space of the other items */
  119. }
  120. .navbar a {
  121. padding: 0; /* this way it will stay aligned with content under */
  122. }
  123. .navbar .index-link {
  124. font-weight: bold;
  125. }
  126. .navbar > .searchbar .pure-form input[type="search"] {
  127. border-top: 0;
  128. border-left: 0;
  129. border-right: 0;
  130. border-bottom: 1px solid #ccc;
  131. border-radius: 0;
  132. padding: initial 0;
  133. box-shadow: none;
  134. transition: 0.1s border-bottom;
  135. -webkit-appearance: none;
  136. }
  137. /* https://stackoverflow.com/a/55170420 */
  138. input[type="search"]::-webkit-search-cancel-button {
  139. -webkit-appearance: none;
  140. height: 14px;
  141. width: 14px;
  142. background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAn0lEQVR42u3UMQrDMBBEUZ9WfQqDmm22EaTyjRMHAlM5K+Y7lb0wnUZPIKHlnutOa+25Z4D++MRBX98MD1V/trSppLKHqj9TTBWKcoUqffbUcbBBEhTjBOV4ja4l4OIAZThEOV6jHO8ARXD+gPPvKMABinGOrnu6gTNUawrcQKNCAQ7QeTxORzle3+sDfjJpPCqhJh7GixZq4rHcc9l5A9qZ+WeBhgEuAAAAAElFTkSuQmCC);
  143. background-size: 14px;
  144. }
  145. .navbar > .searchbar .pure-form fieldset {
  146. padding: 0;
  147. }
  148. /* attract focus to the searchbar by adding a subtle transition */
  149. .navbar > .searchbar .pure-form input[type="search"]:focus {
  150. border-bottom: 2px solid #aaa;
  151. }
  152. .user-field {
  153. display: flex;
  154. flex-direction: row;
  155. justify-content: flex-end;
  156. align-items: center;
  157. }
  158. .user-field div {
  159. width: initial;
  160. }
  161. .user-field div:not(:last-child) {
  162. margin-right: 1em;
  163. }
  164. @media only screen and (max-aspect-ratio: 16/9) {
  165. .player-dimensions.vjs-fluid {
  166. padding-top: 46.86% !important;
  167. }
  168. #player-container {
  169. padding-bottom: 46.86% !important;
  170. }
  171. }
  172. @media screen and (max-width: 767px) {
  173. .navbar {
  174. flex-direction: column;
  175. }
  176. .navbar > div {
  177. display: flex;
  178. justify-content: center;
  179. }
  180. .navbar > div:not(:last-child) {
  181. margin-bottom: 1em;
  182. }
  183. .navbar > .searchbar > form {
  184. width: 60%;
  185. }
  186. }
  187. @media screen and (max-width: 320px) {
  188. .navbar > .searchbar > form {
  189. width: 100%;
  190. margin: 0 1em;
  191. }
  192. }
  193. /*
  194. * Footer
  195. */
  196. .footer {
  197. color: #666666;
  198. margin: 2em 0;
  199. text-align: center;
  200. }
  201. .footer a {
  202. color: inherit;
  203. text-decoration: underline;
  204. }
  205. /* keyframes */
  206. @keyframes spin {
  207. 0% {
  208. transform: rotate(0deg);
  209. }
  210. 100% {
  211. transform: rotate(360deg);
  212. }
  213. }
  214. /* Control Bar */
  215. @media screen and (max-width: 480px) {
  216. .video-js .vjs-control-bar,
  217. .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  218. overflow: -webkit-paged-x;
  219. }
  220. }
  221. .vjs-play-control,
  222. .vjs-volume-panel,
  223. .vjs-current-time,
  224. .vjs-time-control,
  225. .vjs-duration,
  226. .vjs-progress-control,
  227. .vjs-remaining-time {
  228. order: 1;
  229. }
  230. .vjs-captions-button {
  231. order: 2;
  232. }
  233. .vjs-quality-selector,
  234. .video-js .vjs-http-source-selector {
  235. order: 3;
  236. }
  237. .vjs-playback-rate {
  238. order: 4;
  239. }
  240. .vjs-share-control {
  241. order: 5;
  242. }
  243. .vjs-fullscreen-control {
  244. order: 6;
  245. }
  246. .vjs-control-bar {
  247. display: flex;
  248. flex-direction: row;
  249. }
  250. .video-js .vjs-icon-cog {
  251. font-size: 18px;
  252. }
  253. .video-js .vjs-control-bar,
  254. .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  255. background-color: rgba(35, 35, 35, 0.75);
  256. }
  257. .vjs-menu li.vjs-menu-item:focus,
  258. .vjs-menu li.vjs-menu-item:hover {
  259. background-color: rgba(255, 255, 255, 0.75);
  260. color: rgba(49, 49, 51, 0.75);
  261. }
  262. .vjs-menu li.vjs-selected,
  263. .vjs-menu li.vjs-selected:focus,
  264. .vjs-menu li.vjs-selected:hover {
  265. background-color: rgba(0, 182, 240, 0.75);
  266. }
  267. /* Progress Bar */
  268. .video-js .vjs-slider {
  269. background-color: rgba(15, 15, 15, 0.5);
  270. }
  271. .video-js .vjs-load-progress,
  272. .video-js .vjs-load-progress div {
  273. background: rgba(87, 87, 88, 1);
  274. }
  275. .video-js .vjs-slider:hover,
  276. .video-js button:hover {
  277. color: rgba(0, 182, 240, 1);
  278. }
  279. .video-js .vjs-play-progress {
  280. background-color: rgba(0, 182, 240, 1);
  281. }
  282. /* ProgressBar marker */
  283. .vjs-marker {
  284. background-color: rgba(255, 255, 255, 1);
  285. }
  286. /* Big "Play" Button */
  287. .video-js .vjs-big-play-button {
  288. background-color: rgba(35, 35, 35, 0.5);
  289. }
  290. .video-js:hover .vjs-big-play-button {
  291. background-color: rgba(35, 35, 35, 0.75);
  292. }
  293. .video-js .vjs-current-time,
  294. .video-js .vjs-time-divider,
  295. .video-js .vjs-duration {
  296. display: block;
  297. }
  298. .video-js .vjs-time-divider {
  299. min-width: 0px;
  300. padding-left: 0px;
  301. padding-right: 0px;
  302. }
  303. .video-js .vjs-poster {
  304. background-size: cover;
  305. object-fit: cover;
  306. }
  307. .player-dimensions.vjs-fluid {
  308. padding-top: 82vh;
  309. }
  310. video.video-js {
  311. position: absolute;
  312. height: 100%;
  313. }
  314. #player-container {
  315. position: relative;
  316. padding-bottom: 82vh;
  317. height: 0;
  318. }
  319. .pure-control-group label {
  320. word-wrap: normal;
  321. }