default.css 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549
  1. html,
  2. body {
  3. font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", Roboto, Oxygen,
  4. Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Helvetica,
  5. Arial, sans-serif;
  6. }
  7. #contents {
  8. display: flex;
  9. flex-direction: column;
  10. min-height: 100vh;
  11. }
  12. .deleted {
  13. background-color: rgb(255, 0, 0, 0.5);
  14. }
  15. .channel-profile > * {
  16. font-size: 1.17em;
  17. font-weight: bold;
  18. vertical-align: middle;
  19. border-radius: 50%;
  20. }
  21. .channel-profile > img {
  22. width: 48px;
  23. height: auto;
  24. }
  25. body a.channel-owner {
  26. background-color: #008bec;
  27. color: #fff;
  28. border-radius: 9px;
  29. padding: 1px 6px;
  30. }
  31. .creator-heart-container {
  32. display: inline-block;
  33. padding: 0px 7px 6px 0px;
  34. margin: 0px -7px -4px 0px;
  35. }
  36. .creator-heart {
  37. position: relative;
  38. width: 16px;
  39. height: 16px;
  40. border: 2px none;
  41. }
  42. .creator-heart-background-hearted {
  43. width: 16px;
  44. height: 16px;
  45. padding: 0px;
  46. position: relative;
  47. }
  48. .creator-heart-small-hearted {
  49. position: absolute;
  50. right: -7px;
  51. bottom: -4px;
  52. }
  53. .creator-heart-small-container {
  54. position: relative;
  55. width: 13px;
  56. height: 13px;
  57. color: rgb(255, 0, 0);
  58. }
  59. .feed-menu {
  60. display: flex;
  61. justify-content: center;
  62. flex-wrap: wrap;
  63. }
  64. .feed-menu-item {
  65. text-align: center;
  66. }
  67. @media screen and (max-width: 640px) {
  68. .feed-menu-item {
  69. flex: 0 0 40%;
  70. }
  71. }
  72. .h-box {
  73. padding-left: 1em;
  74. padding-right: 1em;
  75. }
  76. .v-box {
  77. padding-top: 1em;
  78. padding-bottom: 1em;
  79. }
  80. div {
  81. overflow-wrap: break-word;
  82. word-wrap: break-word;
  83. }
  84. .loading {
  85. display: inline-block;
  86. animation: spin 2s linear infinite;
  87. }
  88. .playlist-restricted {
  89. height: 20em;
  90. padding-right: 10px;
  91. }
  92. body a.pure-button {
  93. color: rgba(0,0,0,.8);
  94. }
  95. button.pure-button-primary,
  96. body a.pure-button-primary,
  97. .channel-owner:hover {
  98. background-color: #a0a0a0;
  99. color: rgba(35, 35, 35, 1);
  100. }
  101. button.pure-button-primary:hover,
  102. body a.pure-button-primary:hover {
  103. background-color: rgba(0, 182, 240, 1);
  104. color: #fff;
  105. }
  106. div.thumbnail {
  107. padding: 28.125%;
  108. position: relative;
  109. box-sizing: border-box;
  110. }
  111. img.thumbnail {
  112. position: absolute;
  113. width: 100%;
  114. height: 100%;
  115. left: 0;
  116. top: 0;
  117. object-fit: cover;
  118. }
  119. .length {
  120. z-index: 100;
  121. position: absolute;
  122. background-color: rgba(35, 35, 35, 0.75);
  123. color: #fff;
  124. border-radius: 2px;
  125. padding: 2px;
  126. font-size: 16px;
  127. right: 0.25em;
  128. bottom: -0.75em;
  129. }
  130. .watched {
  131. z-index: 100;
  132. position: absolute;
  133. background-color: rgba(35, 35, 35, 0.75);
  134. color: #fff;
  135. border-radius: 2px;
  136. padding: 4px 8px 4px 8px;
  137. font-size: 16px;
  138. left: 0.2em;
  139. top: -0.7em;
  140. }
  141. /*
  142. * Navbar
  143. */
  144. .navbar {
  145. margin: 1em 0;
  146. display: flex; /* this is also defined in framework, but in case of future changes */
  147. align-items: center;
  148. justify-content: space-between;
  149. }
  150. .navbar > div {
  151. flex: 1;
  152. }
  153. .searchbar {
  154. flex-grow: 2; /* take double the space of the other items */
  155. }
  156. .navbar a {
  157. padding: 0; /* this way it will stay aligned with content under */
  158. }
  159. .navbar .index-link {
  160. font-weight: bold;
  161. display: inline;
  162. }
  163. .searchbar .pure-form fieldset { padding: 0; }
  164. .searchbar input[type="search"] {
  165. width: 100%;
  166. margin: 1px;
  167. border: 1px solid;
  168. border-color: #0000 #0000 #CCC #0000;
  169. border-radius: 0;
  170. box-shadow: none;
  171. -webkit-appearance: none;
  172. }
  173. .searchbar input[type="search"]:focus {
  174. margin: 0 0 0.5px 0;
  175. border: 2px solid;
  176. border-color: #0000 #0000 #FED #0000;
  177. }
  178. /* https://stackoverflow.com/a/55170420 */
  179. input[type="search"]::-webkit-search-cancel-button {
  180. -webkit-appearance: none;
  181. height: 14px;
  182. width: 14px;
  183. background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAn0lEQVR42u3UMQrDMBBEUZ9WfQqDmm22EaTyjRMHAlM5K+Y7lb0wnUZPIKHlnutOa+25Z4D++MRBX98MD1V/trSppLKHqj9TTBWKcoUqffbUcbBBEhTjBOV4ja4l4OIAZThEOV6jHO8ARXD+gPPvKMABinGOrnu6gTNUawrcQKNCAQ7QeTxORzle3+sDfjJpPCqhJh7GixZq4rHcc9l5A9qZ+WeBhgEuAAAAAElFTkSuQmCC);
  184. background-size: 14px;
  185. }
  186. .user-field {
  187. display: flex;
  188. flex-direction: row;
  189. justify-content: flex-end;
  190. align-items: center;
  191. }
  192. .user-field div {
  193. width: initial;
  194. }
  195. .user-field div:not(:last-child) {
  196. margin-right: 1em;
  197. }
  198. @media only screen and (max-aspect-ratio: 16/9) {
  199. .player-dimensions.vjs-fluid {
  200. padding-top: 46.86% !important;
  201. }
  202. #player-container {
  203. padding-bottom: 46.86% !important;
  204. }
  205. }
  206. @media screen and (max-width: 767px) {
  207. .navbar {
  208. flex-direction: column;
  209. }
  210. .navbar > div {
  211. display: flex;
  212. justify-content: center;
  213. }
  214. .navbar > div:not(:last-child) {
  215. margin-bottom: 1em;
  216. }
  217. .navbar > .searchbar > form {
  218. width: 60%;
  219. }
  220. h1 {
  221. font-size: 1.25em;
  222. margin: 0.42em 0;
  223. }
  224. }
  225. @media screen and (max-width: 320px) {
  226. .navbar > .searchbar > form {
  227. width: 100%;
  228. margin: 0 1em;
  229. }
  230. }
  231. /*
  232. * Video "cards" (results/playlist/channel videos)
  233. */
  234. .video-card-row { margin: 15px 0; }
  235. .flexible { display: flex; }
  236. .flex-left { flex: 1 1 100%; flex-wrap: wrap; }
  237. .flex-right { flex: 1 0 max-content; flex-wrap: nowrap; }
  238. p.channel-name { margin: 0; }
  239. p.video-data { margin: 0; font-weight: bold; font-size: 80%; }
  240. /*
  241. * Footer
  242. */
  243. footer {
  244. color: #919191;
  245. margin-top: auto;
  246. padding: 1.5em 0;
  247. text-align: center;
  248. max-height: 30vh;
  249. }
  250. footer a {
  251. color: #919191 !important;
  252. text-decoration: underline;
  253. }
  254. footer span {
  255. margin: 4px 0;
  256. display: block;
  257. }
  258. /* keyframes */
  259. @keyframes spin {
  260. 0% {
  261. transform: rotate(0deg);
  262. }
  263. 100% {
  264. transform: rotate(360deg);
  265. }
  266. }
  267. fieldset > select,
  268. span > select {
  269. color: rgba(49, 49, 51, 1);
  270. }
  271. .pure-control-group label {
  272. word-wrap: normal;
  273. }
  274. /*
  275. * Light theme
  276. */
  277. .light-theme a:hover,
  278. .light-theme a:active,
  279. .light-theme summary:hover {
  280. color: #075A9E !important;
  281. }
  282. .light-theme a.pure-button-primary:hover {
  283. color: #fff !important;
  284. }
  285. .light-theme a {
  286. color: #335d7a;
  287. text-decoration: none;
  288. }
  289. /* All links that do not fit with the default color goes here */
  290. .light-theme a:not([data-id]) > .icon,
  291. .light-theme .pure-u-lg-1-5 > .h-box > a[href^="/watch?"],
  292. .light-theme .playlist-restricted > ol > li > a {
  293. color: #303030;
  294. }
  295. .light-theme .pure-menu-heading {
  296. color: #565d64;
  297. }
  298. @media (prefers-color-scheme: light) {
  299. .no-theme a:hover,
  300. .no-theme a:active,
  301. .no-theme summary:hover {
  302. color: #075A9E !important;
  303. }
  304. .no-theme a.pure-button-primary:hover {
  305. color: #fff !important;
  306. }
  307. .no-theme a {
  308. color: #335d7a;
  309. text-decoration: none;
  310. }
  311. /* All links that do not fit with the default color goes here */
  312. .no-theme a:not([data-id]) > .icon,
  313. .no-theme .pure-u-lg-1-5 > .h-box > a[href^="/watch?"],
  314. .no-theme .playlist-restricted > ol > li > a {
  315. color: #303030;
  316. }
  317. .light-theme .pure-menu-heading {
  318. color: #565d64;
  319. }
  320. }
  321. /*
  322. * Dark theme
  323. */
  324. .dark-theme a:hover,
  325. .dark-theme a:active,
  326. .dark-theme summary:hover {
  327. color: rgb(0, 182, 240);
  328. }
  329. .dark-theme a {
  330. color: #a0a0a0;
  331. text-decoration: none;
  332. }
  333. body.dark-theme {
  334. background-color: rgba(35, 35, 35, 1);
  335. color: #f0f0f0;
  336. }
  337. .dark-theme .pure-form legend {
  338. color: #f0f0f0;
  339. }
  340. .dark-theme .pure-menu-heading {
  341. color: #f0f0f0;
  342. }
  343. .dark-theme input,
  344. .dark-theme select,
  345. .dark-theme textarea {
  346. color: rgba(35, 35, 35, 1);
  347. }
  348. .dark-theme .pure-form input[type="file"] {
  349. color: #f0f0f0;
  350. }
  351. .dark-theme .searchbar input {
  352. background-color: inherit;
  353. color: inherit;
  354. }
  355. @media (prefers-color-scheme: dark) {
  356. .no-theme a:hover,
  357. .no-theme a:active {
  358. color: rgb(0, 182, 240);
  359. }
  360. .no-theme a {
  361. color: #a0a0a0;
  362. text-decoration: none;
  363. }
  364. body.no-theme {
  365. background-color: rgba(35, 35, 35, 1);
  366. color: #f0f0f0;
  367. }
  368. .no-theme .pure-form legend {
  369. color: #f0f0f0;
  370. }
  371. .no-theme .pure-menu-heading {
  372. color: #f0f0f0;
  373. }
  374. .no-theme input,
  375. .no-theme select,
  376. .no-theme textarea {
  377. color: rgba(35, 35, 35, 1);
  378. }
  379. .no-theme .pure-form input[type="file"] {
  380. color: #f0f0f0;
  381. }
  382. .no-theme .searchbar input {
  383. background-color: inherit;
  384. color: inherit;
  385. }
  386. }
  387. #filters {
  388. display: inline;
  389. margin-top: 15px;
  390. }
  391. #filters > div {
  392. display: inline-block;
  393. }
  394. #filters > summary {
  395. display: block;
  396. margin-bottom: 15px;
  397. }
  398. #filters > summary::before {
  399. content: "[ + ]";
  400. font-size: 1.5em;
  401. }
  402. #filters[open] > summary::before {
  403. content: "[ - ]";
  404. font-size: 1.5em;
  405. }
  406. /*With commit d9528f5 all contents of the page is now within a flexbox. However,
  407. the hr element is rendered improperly within one.
  408. See https://stackoverflow.com/a/34372979 for more info */
  409. hr {
  410. margin: 10px 0 10px 0;
  411. }
  412. /* Description Expansion Styling*/
  413. #descexpansionbutton {
  414. display: none
  415. }
  416. #descexpansionbutton ~ div {
  417. overflow: hidden;
  418. height: 8.3em;
  419. }
  420. #descexpansionbutton:checked ~ div {
  421. overflow: unset;
  422. height: 100%;
  423. }
  424. #descexpansionbutton ~ label {
  425. order: 1;
  426. margin-top: 20px;
  427. }
  428. /* Bidi (bidirectional text) support */
  429. h1,
  430. h2,
  431. h3,
  432. h4,
  433. h5,
  434. p,
  435. #descriptionWrapper,
  436. #description-box {
  437. unicode-bidi: plaintext;
  438. text-align: start;
  439. }
  440. #descriptionWrapper {
  441. max-width: 600px;
  442. white-space: pre-wrap;
  443. }
  444. /* Center the "invidious" logo on the search page */
  445. #logo > h1 { text-align: center; }