Iwara UI Fix

An alternate style for 天音's Iwara 1-Click Filter script, also works as a standalone

2020-03-02 일자. 최신 버전을 확인하세요.

질문, 리뷰하거나, 이 스크립트를 신고하세요.
  1. // ==UserScript==
  2. // @name Iwara UI Fix
  3. // @namespace none
  4. // @version 1.3
  5. // @description An alternate style for 天音's Iwara 1-Click Filter script, also works as a standalone
  6. // @author Nothson
  7. // @license CC BY-NC
  8. // @resource https://creativecommons.org/licenses/by-nc/4.0/
  9. // @match https://*.iwara.tv/*
  10. // @grant none
  11. // @run-at document-start
  12. // ==/UserScript==
  13.  
  14. /*
  15. --- Iwara UI Fix by Nothson : https://iwara.tv/users/Nothson ---
  16.  
  17. Mainly for scratching the Iwara's UI/UX itches I have.
  18. I'm not a senior web dev so plz don't scold me if the code below looks messy to you.
  19.  
  20. 2 Mar 2020
  21. - Now, this script has conflicts with Iwara 1-Click Filter version 1.6 and newer
  22. - See the note at the bottom of any Iwara page for the workaround.
  23.  
  24. 1 Mar 2020
  25.  
  26. - Added like percentage
  27. - Polaroid print style for video/image cards
  28. - Repositioned the card stats & icons
  29. - Added flairs, shown on the right of the card stats
  30. - Fire Icon: % like reaches the threshold (based on view count) + 200 views or more
  31. - Star Icon: % like reaches the threshold + 20k views or more
  32. - Lock Icon: Private video
  33. - Grid Icon: Multiple images
  34. - Screen Icon: External player (YouTube, Vimeo, etc.)
  35. - Card transitions on hover + extra transitions for some flairs
  36. - Added block backgrounds on many regions + made paddings and margins consistent
  37. - Fixed video player seek head
  38. - Changed forum post timestamp text color
  39. - Fixed user profile background, user lists (following/followers), and layout
  40. - Perhaps a few more things I did but couldn't remember, idk
  41.  
  42. Expected to run after Erono's Iwara 1-Click Filter Script: https://greasyfork.org/scripts/393957
  43. However, this script works as a standalone UI fix as well
  44. Tested on the latest version of Firefox & Chrome, plus responsive
  45. */
  46.  
  47. if (!window.location.href.match('://i.iwara.tv') && document.body) {
  48. document.body.hidden = true;
  49. }
  50.  
  51. window.addEventListener('load', async function() {
  52. if (!window.location.href.match('://i.iwara.tv')) {
  53. let oneClickFilterConflict = document.head.querySelector('#css_custom') || document.head.querySelector('#css_likes');
  54. let baseCSS = document.createElement('style'); // Add original CSS rules from 1-Click Filter
  55. baseCSS.innerHTML = `
  56. /* ads */
  57. /*
  58. .block-extra-content, .extra-content-block {display: none;}
  59. */
  60.  
  61. /* fix page */
  62. body {background-color: #eee;}
  63. section#content > .container {background-color: #eee; padding: 10px;}
  64. .container {width: unset;}
  65. @media (min-width: 1300px) {.container {width: 1300px;}}
  66.  
  67. /* fix overflow */
  68. #block-system-main, .row {margin-left: 0; margin-right: 0;}
  69. .col-sm-3, .col-sm-6, .col-sm-9, .col-xs-6, .col-sm-12 {padding-left: 0; padding-right: 0;}
  70. .view-videos .view-content .views-row, .view-images .view-content .views-row {padding-bottom: 0px;}
  71.  
  72. /* compact page */
  73. .view-content .col-sm-3, .view-content .col-sm-6 {width: 50%; float: left;}
  74. @media (min-width: 768px) {
  75. .view-content .col-sm-3 {width: 25%;}
  76. }
  77.  
  78. /* card style */
  79. .node.node-teaser {background-color: #ffffff; border: 1px solid #ccc; border-radius: 4px; padding: 5px; margin: 4px;}
  80. .node.node-teaser .icon-bg, .node.node-teaser .private-video {width: calc(100% - 10px);}
  81. .node.node-teaser .icon-bg .likes-icon {filter: drop-shadow(0px 0px 2px #000);}
  82. .node.node-teaser h3.title {font-size: 1em; line-height: 1em; height: 3em; margin-bottom: 0px; overflow: hidden;}
  83. .node.node-teaser .username {display: block; white-space: nowrap; overflow: hidden;}
  84. .node.node-teaser .field-item {min-height: 2em;}
  85. .node.node-video .content {margin: 4px;}
  86. .sidebar .block.block-views,
  87. .sidebar .block.block-facetapi,
  88. .sidebar .block.block-mainblocks {background-color: #fafafa; border: 1px solid #ccc; border-radius: 4px; padding: 8px; margin: 4px 4px 8px 4px;}
  89. .sidebar .node.node-sidebar_teaser {background-color: #ffffff; border: 1px solid #ccc; border-radius: 2px; padding: 4px; margin: 2px;}
  90. .sidebar .node.node-sidebar_teaser .icon-bg, .node.node-sidebar_teaser .private-video {width: calc(100% - 8px);}
  91. .sidebar .node.node-sidebar_teaser .icon-bg .likes-icon {filter: drop-shadow(0px 0px 2px #000);}
  92. .item-list ul.pager li {margin: 0; padding: 0;}
  93. .item-list ul.pager li.pager-current,
  94. .item-list ul.pager li.pager-ellipsis,
  95. .item-list ul.pager li > a {background: #fafafa; border: 1px solid #ccc; border-radius: 8px; padding: 4px 16px; margin: 0px; display: inline-block;}
  96.  
  97. /* video style for external link (youtube) */
  98. /*
  99. .node.node-teaser .field-type-video-embed-field {border: 4px solid #c33; background-color: #000;}
  100. .node.node-teaser .field-type-video-embed-field .field-items {overflow: hidden;}
  101. .node.node-teaser .field-type-video-embed-field .field-items .field-item {margin: -4px;}
  102. */
  103.  
  104. /* image style in subscriptions page */
  105. .view-subscriptions .field-type-image {border: 1px solid #ccc; background-color: #fff; padding: 5px;}
  106. .view-subscriptions .field-type-image .field-items {overflow: hidden;}
  107. .view-subscriptions .field-type-image .field-items .field-item {margin: -6px;}
  108.  
  109. /* search and playist */
  110. .node-wide_teaser {background-color: #fafafa; border: 1px solid #ccc; border-radius: 4px; padding: 4px; margin: 4px;}
  111. .node-wide_teaser {width: unset; word-break: break-all; min-height: 170px;}
  112. .node-wide_teaser .col-sm-2 {width: 230px; padding: 4px;}
  113. .node-wide_teaser .col-sm-10 {width: calc(100% - 230px); padding: 4px;}
  114. .node-wide_teaser .field-name-field-video {border: 1px solid #999;}
  115. .node-wide_teaser .field-name-field-video-url {border: 1px solid #999; position: absolute; top: 0px; left: -230px; margin: 4px;}
  116. @media (max-width: 768px) {.node-wide_teaser .field-name-field-video-url {display: none;}}
  117. .node-wide_teaser .field-name-field-images .field-item {display: unset;}
  118. .node-wide_teaser .field-name-field-images .field-item > a > img {width: calc(100%/3 - 8px); border: 1px solid #aaa; padding: 4px; margin: 4px;}
  119. .node-wide_teaser .field-name-field-images .field-item > video {width: calc(100%/1 - 8px); margin: 4px; border: 1px solid #aaa; padding: 4px; height: auto;}
  120. .node-wide_teaser .node-info {padding: 4px;}
  121. .node-wide_teaser .node-info .submitted {display: inline-block; width: 100%;}
  122. .node-wide_teaser .node-info .submitted h1.title {font-size: 28px; position: unset; margin: unset;}
  123. ul.facetapi-facetapi-tagcloud li > a {white-space: normal;}
  124. ul.facetapi-facetapi-tagcloud .element-invisible {display: none;}
  125.  
  126. /* footer */
  127. #wrapper {margin-bottom: unset; padding-bottom: unset;}
  128. footer {height: unset;}
  129. footer .block {width: 25%; float: left;}
  130. footer .block.block-forum {width: 50%;}
  131. footer .copyright {float: unset;}
  132.  
  133. /* video player */
  134. /* expand volume and seekbar height */
  135. .video-js .vjs-volume-bar {margin: 1em 0em;}
  136. .video-js .vjs-volume-bar.vjs-slider-horizontal, .video-js .vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level {height: 1em;}
  137. .video-js .vjs-progress-holder, .video-js .vjs-progress-holder .vjs-load-progress, .video-js .vjs-progress-holder .vjs-play-progress {height: 1em;}
  138. `;
  139. baseCSS.id = 'xtension-base-css';
  140. document.head.appendChild(baseCSS);
  141. let cards = document.querySelectorAll('.node-teaser, .node-sidebar_teaser');
  142. Math.logn = function logn (val, base) {
  143. return Math.log(val) / Math.log(base);
  144. }
  145. function kilo2Number (text) {
  146. if (text.match('k') == null) {
  147. return {value: parseInt(text), isKilo: false};
  148. }
  149. else {
  150. return {value: parseFloat(text.replace('k', '')) * 1000, isKilo: true};
  151. }
  152. }
  153. function getFlair (viewCount, likePercentage, card) {
  154. if (card.querySelector('.private-video')) {
  155. return 'lock';
  156. }
  157. else if ((card.className.match('node-sidebar_teaser') && card.children.length > 2) || card.children.length > 4) {
  158. return 'share';
  159. }
  160. else {
  161. let viewPower = Math.logn(viewCount, 6);
  162. let likeThreshold = 8 - viewPower;
  163. if (viewCount < 200) {
  164. return '';
  165. }
  166. else if (viewCount < 20000) {
  167. return (likePercentage > likeThreshold) ? 'fire' : '';
  168. }
  169. else {
  170. return (likePercentage > likeThreshold) ? 'star' : '';
  171. }
  172. }
  173. }
  174.  
  175. // HTML Mod
  176. cards.forEach(card => {
  177. let icons = card.querySelector('.icon-bg');
  178. if (icons) { // Rearrange stat icons, add like percentage and flairs
  179. if ((card.className.match('node-sidebar_teaser') && card.children.length > 1) || card.children.length > 3) {
  180. card.insertBefore(icons, card.children[2]);
  181. }
  182. else {
  183. card.insertBefore(icons, card.children[1]);
  184. }
  185. if (card.className.match('node-image') && icons.children.length == 3) {
  186. icons.appendChild(icons.children[1]);
  187. icons.appendChild(icons.children[0]);
  188. }
  189. else if (icons.children.length == 2) {
  190. icons.appendChild(icons.children[0]);
  191. }
  192.  
  193. let likeNode = icons.querySelector('.glyphicon-heart');
  194. if (likeNode && !(card.className.match('node-image') && card.className.match('node-sidebar_teaser'))) {
  195. likeNode = likeNode.nextSibling;
  196. let viewNode = icons.querySelector('.glyphicon-eye-open').nextSibling;
  197. let likeTxt = likeNode.wholeText.trim();
  198. let like = kilo2Number(likeTxt);
  199. let viewCount = kilo2Number(viewNode.wholeText.trim());
  200. let likePercentage = (viewCount == 0) ? 0 : parseFloat(like.value / viewCount.value * 100).toFixed(2);
  201. if (!card.className.match('node-sidebar_teaser')) {
  202. likeNode.nodeValue = ' ' + likeTxt;
  203. let likePercentageHTML = document.createElement('div');
  204. likePercentageHTML.className += 'right-icon likes-icon like-percentage';
  205. if (like.isKilo || viewCount.isKilo) {
  206. likePercentageHTML.innerText = '(~' + likePercentage + '%)';
  207. }
  208. else {
  209. likePercentageHTML.innerText = '(' + likePercentage + '%)';
  210. }
  211. likeNode.parentElement.parentElement.appendChild(likePercentageHTML);
  212. }
  213. if (card.className.match('node-video')) {
  214. let flair = getFlair(viewCount.value, likePercentage, card);
  215. if (flair) {
  216. card.className += ' flair-' + flair;
  217. let flairNode = document.createElement('div');
  218. flairNode.setAttribute('class', 'left-icon flair-icon');
  219. flairNode.innerHTML = '<i class="glyphicon glyphicon-' + flair + '" title="Flair"></i>';
  220. icons.appendChild(flairNode);
  221. }
  222. }
  223. }
  224. }
  225. else {
  226. let blankFooter = document.createElement('div');
  227. blankFooter.setAttribute('class', 'icon-bg');
  228. card.appendChild(blankFooter);
  229. }
  230.  
  231. let thumbnail = card.querySelector('a > img');
  232. if (!thumbnail) { // Fix inconsistent height of the cards with no thumbnail
  233. let title = card.querySelector('.title > a');
  234. let blankImage = document.createElement('a');
  235. let url = null;
  236. if (title) {
  237. url = title.getAttribute('href');
  238. blankImage.setAttribute('title', title.innerText);
  239. }
  240. if (url) {
  241. blankImage.setAttribute('href', url);
  242. }
  243. blankImage.className += 'blankimg';
  244. if (card.className.match('node-sidebar_teaser')) {
  245. blankImage.innerHTML = '<img width="141" height="84"></img>';
  246. }
  247. else if (card.className.match('node-teaser')) {
  248. blankImage.innerHTML = '<img width="220" height="150"></img>';
  249. }
  250. card.querySelector('.field-items > .field-item').appendChild(blankImage);
  251. }
  252. });
  253.  
  254. let contentInfo = document.querySelector('body.node-type-video .node.node-video .node-info .node-views, body.node-type-image .node.node-image .node-info .node-views');
  255. if (contentInfo) { // Add like percentage for a video/image page
  256. let heartIcon = contentInfo.querySelector('.glyphicon.glyphicon-heart');
  257. if (heartIcon) {
  258. let eyeIcon = contentInfo.querySelector('.glyphicon.glyphicon-eye-open');
  259. let viewCount = parseInt(eyeIcon.nextSibling.nodeValue.replace(',', ''));
  260. let like = parseInt(heartIcon.nextSibling.nodeValue.replace(',', ''));
  261. let likePercentage = (viewCount == 0) ? 0 : parseFloat(like / viewCount * 100).toFixed(4);
  262. heartIcon.nextSibling.nodeValue = ' ' + like + ' (' + likePercentage + '%)';
  263. contentInfo.appendChild(contentInfo.querySelector('.glyphicon.glyphicon-heart'));
  264. contentInfo.appendChild(contentInfo.querySelector('.glyphicon.glyphicon-eye-open').previousSibling);
  265. }
  266. }
  267.  
  268. let copyrightNode = document.querySelector('footer .copyright');
  269. if (copyrightNode) { // Add script credits
  270. let innerHTMLExt = '<br><b>Iwara UI Fix</b> by <u><b><a href="https://iwara.tv/users/nothson">Nothson</a></b></u><br><b>Note:</b> <u><b><a href="https://ecchi.iwara.tv/images/iwara-1-click-filter">Iwara 1-Click Filter</a></b></u>\'s <b>User Style</b> and/or <b>Like Colors</b> are enabled. Disable them in the in-page settings, then refresh to prevent style conflict.';
  271. if (!oneClickFilterConflict) {
  272. innerHTMLExt = '<br><b>Iwara UI Fix</b> by <u><b><a href="https://iwara.tv/users/nothson">Nothson</a></b></u><br><i>Based on CSS rules from <u><b><a href="https://ecchi.iwara.tv/images/iwara-1-click-filter">Iwara 1-Click Filter</a></b></u> (version 1.5) by <u><b><a href="https://iwara.tv/users/erono">Erono</a></b></u></i>.';
  273. }
  274. copyrightNode.innerHTML = copyrightNode.firstChild.nodeValue + innerHTMLExt;
  275. }
  276. let addForumCommentElement = document.querySelectorAll('#forum-comments h2.comment-form, #forum-comments noscript, #forum-comments #comment-form');
  277. if (addForumCommentElement.length > 0) { // Wrap forum's "Add new comment" section in a block
  278. let commentBlock = document.createElement('div');
  279. commentBlock.id = 'add-forum-comment-block';
  280. addForumCommentElement.forEach(elem => {
  281. commentBlock.appendChild(elem);
  282. });
  283. document.getElementById('forum-comments').appendChild(commentBlock);
  284. }
  285. // CSS Override
  286. let styleOverride = document.createElement('style');
  287. styleOverride.id = 'xtension-css';
  288. styleOverride.innerHTML = `
  289. .node.node-teaser,
  290. .node.node-sidebar_teaser,
  291. .node.node-teaser i,
  292. .node.node-sidebar_teaser i,
  293. .node.node-teaser img,
  294. .node.node-sidebar_teaser img {
  295. transition: 0.15s!important;
  296. }
  297.  
  298. /*
  299. .node.node-teaser img,
  300. .node.node-sidebar_teaser img {
  301. filter: contrast(0)!important;
  302. }
  303. */
  304.  
  305. .node.node-teaser h3.title,
  306. .node.node-sidebar_teaser h3.title {
  307. height: auto!important;
  308. white-space: nowrap!important;
  309. text-overflow: ellipsis!important;
  310. }
  311.  
  312. .node.node-teaser:hover,
  313. .node.node-sidebar_teaser:hover {
  314. box-shadow: 3pt 12pt 12pt -6pt #0004;
  315. transform: rotate3d(0.9, -0.1, 0.1, 3deg) scale(1.02);
  316. z-index: 42;
  317. }
  318.  
  319. .node.node-teaser.flair-fire:hover,
  320. .node.node-sidebar_teaser.flair-fire:hover {
  321. transform: rotate3d(0.9, -0.1, 0.1, -4.5deg) scale(1.02);
  322. border-color: #f40a;
  323. }
  324.  
  325. .node.node-teaser.flair-star:hover,
  326. .node.node-sidebar_teaser.flair-star:hover {
  327. transform: rotate3d(-0.9, 0.1, -0.2, 4.5deg) scale(1.04);
  328. filter: drop-shadow(-0.2em -0.2em 2em #ffe8);
  329. outline: 0.32em solid #fe8;
  330. border: 0;
  331. border-radius: 0;
  332. }
  333.  
  334. .views-responsive-grid.views-responsive-grid-horizontal.views-columns-2 > * {
  335. margin-bottom: 0;
  336. }
  337.  
  338. .node.node-teaser .icon-bg,
  339. .node.node-sidebar_teaser .icon-bg {
  340. width: 100%!important;
  341. position: unset;
  342. margin-top: 0.4em;
  343. padding: 0;
  344. }
  345.  
  346. .node.node-sidebar_teaser .icon-bg {
  347. min-height: 1.35em;
  348. }
  349.  
  350. .node:hover .icon-bg {
  351. background: unset!important;
  352. }
  353.  
  354. .node.node-teaser .left-icon,
  355. .node.node-sidebar_teaser .left-icon {
  356. color: inherit;
  357. margin-left: 0.1em;
  358. font-size: 0.8em;
  359. filter: unset!important;
  360.  
  361. }
  362.  
  363. .node.node-teaser .right-icon,
  364. .node.node-sidebar_teaser .right-icon {
  365. float: left!important;
  366. color: inherit;
  367. margin-left: 0.5em;
  368. font-size: 0.8em;
  369. filter: unset!important;
  370. }
  371.  
  372. .node-image.node-sidebar_teaser .right-icon:first-of-type {
  373. margin-left: 0;
  374. }
  375.  
  376. .node.node-teaser .left-icon.multiple-icon,
  377. .node.node-sidebar_teaser .left-icon.multiple-icon {
  378. float: right!important;
  379. color: inherit;
  380. margin-left: 0.5em;
  381. font-size: 0.8em;
  382. filter: unset!important;
  383. }
  384.  
  385. .node.node-teaser .left-icon.flair-icon,
  386. .node.node-sidebar_teaser .left-icon.flair-icon {
  387. float: right!important;
  388. color: inherit;
  389. margin-right: 0.1em;
  390. font-size: 0.8em;
  391. filter: unset!important;
  392. }
  393.  
  394. .node.node-teaser .right-icon.like-percentage,
  395. .node.node-sidebar_teaser .right-icon.like-percentage {
  396. margin-left: 0.3em;
  397. }
  398.  
  399. .node.node-teaser h3.title {
  400. width: 100%;
  401. height: 2em;
  402. }
  403.  
  404. .node.node-teaser.flair-lock:hover [title="Flair"],
  405. .node.node-sidebar_teaser.flair-lock:hover [title="Flair"] {
  406. color: #bbbf;
  407. }
  408.  
  409. .node.node-teaser.flair-fire:hover [title="Flair"],
  410. .node.node-sidebar_teaser.flair-fire:hover [title="Flair"] {
  411. color: #f40f;
  412. filter: drop-shadow(0.12em -0.16em 0 #f806) drop-shadow(-0.12em -0.04em 0.06em #fd08);
  413. }
  414.  
  415. .node.node-teaser.flair-star:hover [title="Flair"] {
  416. color: #fd4f;
  417. transform: rotate(18deg) scale(3.2);
  418. filter: drop-shadow(1pt 0.5pt 0.5pt #0002) drop-shadow(-0.04em -0.04em 0.1em #ffd8) drop-shadow(0.08em 0.08em 0.02em #fb0f);
  419. }
  420.  
  421. .node.node-sidebar_teaser.flair-star:hover [title="Flair"] {
  422. color: #fd4f;
  423. transform: rotate(18deg) scale(2.4);
  424. filter: drop-shadow(1pt 0.5pt 0.5pt #0002) drop-shadow(-0.04em -0.04em 0.1em #ffd8) drop-shadow(0.12em 0.12em 0.01em #fb0f);
  425. }
  426.  
  427. .node.node-video.node-teaser.flair-lock:hover > div > div div > a > img,
  428. .node.node-video.node-sidebar_teaser.flair-lock:hover > div div > div > a > img {
  429. filter: grayscale(1);
  430. }
  431.  
  432. .node.node-video.node-teaser.flair-fire:hover > div > div div > a > img,
  433. .node.node-video.node-sidebar_teaser.flair-fire:hover > div > div div > a > img {
  434. filter: sepia(0.3) contrast(1.25) hue-rotate(-15deg) saturate(1.25);
  435. }
  436.  
  437. .node.node-video.node-teaser.flair-star:hover > div > div div > a > img,
  438. .node.node-video.node-sidebar_teaser.flair-star:hover > div > div div > a > img {
  439. filter: sepia(0.5) brightness(1.1) contrast(1.25) saturate(1.5);
  440. }
  441.  
  442. .node.node-teaser .blankimg,
  443. .node.node-sidebar_teaser .blankimg {
  444. display: block;
  445. border: #ccc 0.5pt dashed;
  446. }
  447.  
  448. .node.node-teaser .blankimg > img,
  449. .node.node-sidebar_teaser .blankimg > img {
  450. filter: opacity(0);
  451. }
  452.  
  453. .video-js .vjs-play-progress:before {
  454. top: -40%;
  455. color: #fffd;
  456. font-size: 1.8em;
  457. box-shadow: 0 8pt 8pt -4pt #0006;
  458. }
  459.  
  460. .video-js .vjs-volume-level:before {
  461. display: none;
  462. }
  463.  
  464. body.front #wrapper > section > .container,
  465. body.page-node-add form,
  466. body.page-node-edit form,
  467. body.page-user-friends #content > .container,
  468. body.page-user-liked #content > .container,
  469. body.page-subscriptions #content > .container,
  470. body.page-my-content #content > .container,
  471. body.page-messages #content > .container,
  472. body.page-user-edit form,
  473. body.page-comment #content > .container,
  474. body.page-forum #content > .container,
  475. body.node-type-video .node.node-video > .content,
  476. body.node-type-image .node.node-image > .content,
  477. #comments,
  478. #add-forum-comment-block,
  479. .region.region-content .view-id-profile,
  480. .node.node-journal,
  481. [class*="block-views"],
  482. .sidebar .block.block-facetapi,
  483. .sidebar .block.block-mainblocks,
  484. .region.region-sidebar .extra-content-block {
  485. background-color: #fafafa;
  486. border: 1px solid #ccc;
  487. border-radius: 4px!important;
  488. padding: 0.8em!important;
  489. margin: 0.5em 0.5em 1em 0.5em!important;
  490. }
  491.  
  492. body.page-user #content {
  493. background-attachment: fixed;
  494. }
  495.  
  496. body.page-user- #content > .container {
  497. background-color: #eee8;
  498. }
  499.  
  500. body.page-user [class*="block-views"],
  501. body.page-user .sidebar .block.block-views,
  502. #block-mainblocks-user-connect,
  503. body.page-user #comments {
  504. background-color: #fafafad0;
  505. }
  506.  
  507. body.page-node-add form,
  508. body.page-node-edit form {
  509. background-color: #ffffff;
  510. }
  511.  
  512. body.front #wrapper > section > .container,
  513. body.page-user-friends #content > .container,
  514. body.page-user-liked #content > .container,
  515. body.page-subscriptions #content > .container,
  516. body.page-my-content #content > .container,
  517. body.page-messages #content > .container,
  518. body.page-user-edit form,
  519. body.page-comment #content > .container,
  520. body.page-forum #content > .container {
  521. margin-left: auto!important;
  522. margin-right: auto!important;
  523. }
  524.  
  525. body.node-type-video .node.node-video .node-info .node-views .glyphicon.glyphicon-heart,
  526. body.node-type-image .node.node-image .node-info .node-views .glyphicon.glyphicon-heart {
  527. margin-left: 0.5em;
  528. }
  529.  
  530. .node.node-wide_teaser {
  531. padding: 0.8em!important;
  532. margin: 0.5em 0.5em 1em 0.5em!important;
  533. }
  534.  
  535. .forum-post {
  536. margin: 0.5em 0.5em 1em 0.5em!important;
  537. }
  538.  
  539. .forum-post > .panel-heading > .text-muted {
  540. color: #0008;
  541. }
  542.  
  543. body.node-type-video .node.node-video > .content,
  544. body.node-type-image .node.node-image > .content {
  545. padding: 0!important;
  546. }
  547.  
  548. body.node-type-video .node.node-video > .content > .node-buttons,
  549. body.node-type-image .node.node-image > .content > .node-buttons {
  550. margin-bottom: 0;
  551. }
  552.  
  553. body.node-type-video .node.node-video > .content > .well {
  554. max-width: 100%!important;
  555. margin: 0;
  556. }
  557.  
  558. .node-journal #comments {
  559. border: unset;
  560. }
  561.  
  562. .view-profile.view-display-id-block {
  563. background-color: unset;
  564. padding: unset;
  565. box-shadow: unset;
  566. }
  567.  
  568. #block-views-profile-block {
  569. background-color: #fafafa;
  570. box-shadow: 2pt 8pt 8pt -4pt #0004;
  571. }
  572.  
  573. .region.region-sidebar .view-id-profile .views-responsive-grid > .views-row > div img,
  574. .region.region-content .view-id-profile .views-responsive-grid > .views-row > div img {
  575. border-radius: 50%;
  576. overflow: hidden;
  577. border: #0001 0.2em solid;
  578. }
  579.  
  580. h1 {
  581. padding: 0.25em;
  582. margin: 0;
  583. }
  584.  
  585. #comments > h2.title {
  586. padding: 0.4em;
  587. margin-bottom: 0.8em;
  588. }
  589. #add-forum-comment-block > h2,
  590. .extra-content-block {
  591. padding: 0.6em 0;
  592. }
  593. .region.region-sidebar .extra-content-block {
  594. background-color: #0000;
  595. border: 0;
  596. overflow: hidden;
  597. }
  598. .region.region-sidebar .extra-content-block iframe {
  599. transform: translateX(-8.75pt);
  600. }
  601. .extra-content-block > center + br,
  602. body.node-type-video #block-extra-content-extra-content-block-5,
  603. body.node-type-video #block-extra-content-extra-content-block-8 {
  604. display: none;
  605. }
  606. `;
  607. document.head.appendChild(styleOverride);
  608. }
  609. document.body.hidden = false;
  610. }, true);