nicolas-sage

emerald theme

May 29th, 2024 (edited)
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 66.84 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en" data-theme="light">
  3. <head>
  4. <link rel="shortcut icon" href="{Favicon}" />
  5. <link rel="alternate" type="application/rss+xml" href="{RSS}" />
  6. <title>{Title}</title>
  7. {block:Description}
  8. <meta name="description" content="{MetaDescription}" />
  9. {/block:Description}
  10. {NewPostStyles}
  11. <meta charset="utf-8">
  12. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  13.  
  14. <!----
  15. _________
  16. / \
  17. | __ __ |
  18. | |__| |__| | EMERALD THEME BY SAGE / PHANTOMCODES
  19. | | https://phantomcodes.tumblr.com
  20. | _ _ _ |
  21. |_| |_| |_| |_|
  22.  
  23.  
  24.  
  25. CREDITS:
  26. - phosphor icons / phosphoricons.com
  27. - tabler icons / https://tabler-icons.io/
  28. - tippy.js tooltips / https://atomiks.github.io/tippyjs/
  29. - bunny fonts / https://fonts.bunny.net/
  30. - npf base code by eggdesign / https://egg.design/post/714907681362771968/npf-based-template
  31. - pxu photosets by pixel union with modifications by bychloethemes / https://bychloethemes.tumblr.com/post/155956945114/modified-pxu-photoset-script-modified-by
  32. - responsive videos by nouvae / https://nouvae.tumblr.com/post/176815415055/tutorial-responsive-tumblr-videos-and-external
  33. - time ago plugin by chloethemes / https://bychloethemes.tumblr.com/plugins/timeago
  34. - notes shortener by shythemes / https://shythemes.tumblr.com/post/156021137818/hello-i-was-wondering-if-you-knew-how-to-shorten
  35. - day/night mode tutorial by eggdesign / https://egg.design/post/186889223257/day-night-mode-tutorial-after-featuring-a
  36. - dark mode guide by 22mm / https://22mm.tumblr.com/post/673476677544837120/a-dark-mode-guide-with-css-variables-and-js-this
  37. - npf audio player by @glenthemes / https://glenthemes.tumblr.com/post/722160746171072512/npf-audio-player
  38. - copy link to post tutorial by glenthemes / https://glenthemes.tumblr.com/post/173993578944/copy-link-to-post-button-tutorial
  39. - hide tutorial by lmthemes / https://lmthemes.tumblr.com/post/30046967698/tutorial-05-hide-stuff-tutorial-in-this
  40.  
  41. ---->
  42.  
  43. <!-- STYLESHEETS -->
  44.  
  45. <!---- PHOTOSET ---->
  46. <link href="https://static.tumblr.com/qudkd6d/OcDnl99gb/style.css" rel="stylesheet" type="text/css"/>
  47. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  48. <script src="https://static.tumblr.com/yxfeliq/hHwojmt8m/bctphotoset.min.js"></script>
  49.  
  50. <!----- BUNNY FONTS ---->
  51. <link href="https://fonts.bunny.net/css?family={text:body font}:300,400,500,600,700,800,300i,400i,500i,600i,700i,800i" rel="stylesheet" /><link href="https://fonts.bunny.net/css?family={text:title font}:300,400,500,600,700,800,300i,400i,500i,600i,700i,800i" rel="stylesheet" />
  52.  
  53. <!---- ICONS ---->
  54. <script src="https://unpkg.com/phosphor-icons"></script>
  55. <script src="https://unpkg.com/[email protected]"></script>
  56. <script src="//pull.cappuccicons.com/cpf.js"></script>
  57. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/icons@latest/iconfont/tabler-icons.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/[email protected]/tabler-icons.min.css">
  58.  
  59.  
  60. <!---- TOOLTIPS ---->
  61. <script src="https://unpkg.com/popper.js@1"></script>
  62. <script src="https://unpkg.com/tippy.js@5/dist/tippy-bundle.iife.js"></script>
  63.  
  64. <!--- FLICKITY --->
  65. <link rel="stylesheet" href="https://unpkg.com/flickity@2/dist/flickity.min.css">
  66.  
  67. <!---- VIDEOS ---->
  68. <script src="https://rawgit.com/robinpx/tumblr/master/scripts/flexibleFrames/flexibleFrames.min.js"></script>
  69.  
  70. <!---- COPY LINK ---->
  71. <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script>
  72. <script>
  73. $(document).ready(function(){
  74. var clipboard = new ClipboardJS("#copybutton");
  75. });
  76. </script>
  77.  
  78. <!---- TIME AGO ----->
  79. <script type="text/javascript" src="https://static.tumblr.com/i5s2zks/9Acok8oo2/bct-timeago.min.js"></script>
  80. <script type="text/javascript">
  81. $(document).ready(function() {
  82. $(".time-ago").timeAgo({
  83. time: "short",
  84. spaces: true,
  85. words: false,
  86. prefix: "",
  87. suffix: "ago",
  88. });
  89. });
  90. </script>
  91.  
  92. <script src="https://code.jquery.com/ui/1.13.0/jquery-ui.js"></script>
  93.  
  94. <!---- VARIABLES ---->
  95.  
  96. <meta name="image:Sidebar" content="" />
  97.  
  98. <meta name="color:Background" content="#ddd" />
  99. <meta name="color:Posts" content="#eee" />
  100. <meta name="color:Borders" content="#ccc" />
  101. <meta name="color:Title" content="#333" />
  102. <meta name="color:Text" content="#555" />
  103. <meta name="color:Accent One" content="#579472"/>
  104. <meta name="color:Accent Two" content="#81b396"/>
  105.  
  106. <meta name="color:Night Background" content="#222" />
  107. <meta name="color:Night Posts" content="#333" />
  108. <meta name="color:Night Borders" content="#444" />
  109. <meta name="color:Night Title" content="#fff" />
  110. <meta name="color:Night Text" content="#ddd" />
  111. <meta name="color:Night Accent One" content="#96c3a5"/>
  112. <meta name="color:Night Accent Two" content="#b6decc"/>
  113.  
  114. <meta name="select:Corners" content="10px" title="round"/>
  115. <meta name="select:Corners" content="5px" title="slightly round"/>
  116. <meta name="select:Corners" content="0px" title="sharp"/>
  117.  
  118. <meta name="select:Tags" content="clicktags" title="on click"/>
  119. <meta name="select:Tags" content="tags" title="default"/>
  120.  
  121. <meta name="if:Updates" content="1"/>
  122. <meta name="if:Right Sidebar" content="1"/>
  123.  
  124. <meta name="text:Body Font" content="Nunito"/>
  125. <meta name="text:Title Font" content="Montserrat"/>
  126. <meta name="text:Font Size" content="15"/>
  127. <meta name="text:Blog Title" content="custom title"/>
  128. <meta name="text:Blog Name" content="your url here"/>
  129. <meta name="text:Custom Description" content="custom description"/>
  130.  
  131. <meta name="text:Sidebar Link 1" content="/"/>
  132. <meta name="text:Sidebar Link 1 Name" content="link one"/>
  133. <meta name="text:Sidebar Link 1 Icon" content="planet"/>
  134. <meta name="text:Sidebar Link 2" content="/"/>
  135. <meta name="text:Sidebar Link 2 Name" content="link two"/>
  136. <meta name="text:Sidebar Link 2 Icon" content="comet"/>
  137. <meta name="text:Sidebar Link 3" content="/"/>
  138. <meta name="text:Sidebar Link 3 Name" content="link three"/>
  139. <meta name="text:Sidebar Link 3 Icon" content="cloud"/>
  140. <meta name="text:Sidebar Link 4" content=""/>
  141. <meta name="text:Sidebar Link 4 Name" content=""/>
  142. <meta name="text:Sidebar Link 4 Icon" content=""/>
  143.  
  144. <meta name="text:Update 1" content="watching"/>
  145. <meta name="text:Update Icon 1" content="device-tv-old"/>
  146. <meta name="text:Update 2" content="listening to"/>
  147. <meta name="text:Update Icon 2" content="headphones"/>
  148. <meta name="text:Update 3" content="reading"/>
  149. <meta name="text:Update Icon 3" content="book"/>
  150. <meta name="text:Update 4" content="playing"/>
  151. <meta name="text:Update Icon 4" content="device-gamepad-2"/>
  152. <meta name="text:Update 5" content="working on"/>
  153. <meta name="text:Update Icon 5" content="briefcase"/>
  154. <meta name="text:Update 6" content=""/>
  155. <meta name="text:Update Icon 6" content=""/>
  156.  
  157. <!--- day/night --->
  158. <script>
  159. const storedTheme = localStorage.getItem("theme") || (window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light");
  160. if (storedTheme) document.documentElement.setAttribute("data-theme", storedTheme);
  161. </script>
  162.  
  163. <!------- CSS -------->
  164. <style>
  165.  
  166. /* theme options - common */
  167. :root {
  168. --Spacing: 1rem;
  169. --Corners:{select:Corners}
  170. }
  171.  
  172. /* theme options - day/night */
  173. :root, html[data-theme='light'] {
  174. --LightOn: flex;
  175. --LightOff: none;
  176. --ColorBackground: {color:background};
  177. --ColorPosts: {color:posts};
  178. --ColorBorders: {color:borders};
  179. --ColorTitle: {color:title};
  180. --ColorText: {color:text};
  181. --ColorAccentOne: {color:accent one};
  182. --ColorAccentTwo: {color:accent two};
  183. --ColorOpacity: rgba(255,255,255,.1);
  184. --ColorReverseOpacity: rgba(0,0,0,.1);
  185. }
  186. html[data-theme='dark'] {
  187. --LightOn: none;
  188. --LightOff: flex;
  189. --ColorBackground: {color:night background};
  190. --ColorPosts: {color:night posts};
  191. --ColorBorders: {color:night borders};
  192. --ColorTitle: {color:night title};
  193. --ColorText: {color:night text};
  194. --ColorAccentOne: {color:night accent one};
  195. --ColorAccentTwo: {color:night accent two};
  196. --ColorOpacity: rgba(0,0,0,.1);
  197. --ColorReverseOpacity: rgba(255,255,255,.1);
  198. }
  199. html.theme-transition,
  200. html.theme-transition *,
  201. html.theme-transition *:before,
  202. html.theme-transition *:after {
  203. transition: 0s !important;
  204. transition-delay: 0 !important;
  205. }
  206.  
  207. .light-on{
  208. display: var(--LightOn);
  209. }
  210. .light-off{
  211. display: var(--LightOff);
  212. }
  213.  
  214. /*--- TOOLTIPS ---*/
  215.  
  216. .tippy-tooltip.custom-theme {
  217. font-size:.95em;
  218. font-weight:500;
  219. color:var(--ColorTitle);
  220. text-transform:lowercase;
  221. text-align:center;
  222. background:var(--ColorPosts);
  223. border-radius:5px;
  224. box-shadow:0 0px 8px -2px rgba(0,0,0,.3);
  225. }
  226. /* Right placement tooltip arrow (arrow will be on left side of tooltip) */
  227. .tippy-popper[x-placement^=right] .tippy-tooltip.custom-theme .tippy-arrow {
  228. border-right: 7px solid var(--ColorPosts); /* your color here */
  229. }
  230.  
  231. /* Left placement tooltip arrow (arrow will be on right side of tooltip) */
  232. .tippy-popper[x-placement^=left] .tippy-tooltip.custom-theme .tippy-arrow {
  233. border-left: 7px solid var(--ColorPosts); /* your color here */
  234. }
  235.  
  236. /* Top placement tooltip arrow (arrow will be on bottom side of tooltip) */
  237. .tippy-popper[x-placement^=top] .tippy-tooltip.custom-theme .tippy-arrow {
  238. border-top: 7px solid var(--ColorPosts); /* your color here */
  239. }
  240.  
  241. /* Bottom placement tooltip arrow (arrow will be on top side of tooltip) */
  242. .tippy-popper[x-placement^=bottom] .tippy-tooltip.custom-theme .tippy-arrow {
  243. border-bottom: 7px solid var(--ColorPosts); /* your color here */
  244. }
  245.  
  246. /*--- SCROLLBAR ---*/
  247. ::-webkit-scrollbar {
  248. width:5px;
  249. height:5px;
  250. background:var(--ColorBackground);
  251. }
  252.  
  253. ::-webkit-scrollbar-track {
  254. background:var(--ColorBackground);
  255. border-radius: 5px;
  256. }
  257.  
  258. ::-webkit-scrollbar-thumb {
  259. background:linear-gradient(to top, var(--ColorAccentOne), var(--ColorAccentTwo));
  260. border-radius: 5px;
  261. }
  262.  
  263. /*--- TEXT SELECTION ---*/
  264. ::-moz-selection { /* Code for Firefox */
  265. color:var(--ColorPosts);
  266. background:var(--ColorAccentOne);
  267. }
  268.  
  269. ::selection {
  270. color:var(--ColorPosts);
  271. background:var(--ColorAccentOne);
  272. }
  273.  
  274. * {box-sizing:border-box;}
  275.  
  276. body {
  277. font-family:'{text:body font}', sans-serif;
  278. font-size:{text:font size}px;
  279. color:var(--ColorText);
  280. line-height:140%;
  281. word-wrap:break-word;
  282. letter-spacing:.04em;
  283. margin:0;
  284. background-color:var(--ColorBackground);
  285. }
  286. body {
  287. opacity:1;
  288. transition:.75s opacity;
  289. }
  290.  
  291. body.fade-out {
  292. opacity:0;
  293. transition:none;
  294. }
  295. html {background-color:var(--ColorBackground);}
  296.  
  297. a {
  298. color:var(--ColorAccentOne);
  299. text-decoration: none;
  300. -webkit-transition: all 0.4s;
  301. -moz-transition: all 0.4s;
  302. -ms-transition: all 0.4s;
  303. -o-transition: all 0.4s;
  304. transition: all 0.4s;
  305. }
  306.  
  307. a:hover {
  308. color:var(--ColorAccentTwo);
  309. -webkit-transition: all 0.4s;
  310. -moz-transition: all 0.4s;
  311. -ms-transition: all 0.4s;
  312. -o-transition: all 0.4s;
  313. transition: all 0.4s;
  314. }
  315.  
  316. blockquote {
  317. border-left:1px solid var(--ColorBorders);
  318. padding-left:.75em;
  319. margin-left:1em;
  320. }
  321.  
  322. ul {list-style-type:circle;}
  323. ol {list-style-type: decimal-leading-zero;}
  324. li::marker {color:var(--ColorAccentOne)}
  325.  
  326. small {font-size:.95em;}
  327. big {font-size:1.1em;}
  328.  
  329. h1 {font-size:1.35em; margin:0; color:var(--ColorTitle); display:inline-block;}
  330. h1 a {color:var(--ColorTitle);}
  331. h1 a:hover {color:var(--ColorAccent);}
  332. h2 {font-size:1.25em; color:var(--ColorTitle); letter-spacing:.1em;}
  333. h3 {font-size:1.15em; color:var(--ColorTitle);}
  334. h4 {font-size:1.1em; color:var(--ColorTitle);}
  335. h5 {font-size:1.05em; color:var(--ColorTitle);}
  336. h1, h1 a, h2, h3, h4, h5 {font-family:'{text:title font}', sans-serif;}
  337.  
  338. button {font-size:1em;}
  339.  
  340. hr {
  341. height:1px;
  342. border:none;
  343. box-shadow:none;
  344. background:var(--ColorBorders);
  345. }
  346.  
  347. pre {
  348. word-wrap:break-word!important;
  349. white-space:pre-wrap;
  350. }
  351.  
  352. b, strong {
  353. color:var(--ColorTitle);
  354. font-weight:800;
  355. }
  356.  
  357. b a:hover {
  358. color:var(--ColorAccentTwo);
  359. -webkit-transition: all 0.4s;
  360. -moz-transition: all 0.4s;
  361. -ms-transition: all 0.4s;
  362. -o-transition: all 0.4s;
  363. transition: all 0.4s;
  364. }
  365.  
  366. /* common link effects */
  367. .sidebar-desc a, .updates-wrap a, .aanswer a {
  368. display:inline-block;
  369. position:relative;
  370. }
  371. .sidebar-desc a:after, .updates-wrap a:after, .aanswer a:after {
  372. content: '';
  373. position:absolute;
  374. bottom:0;
  375. left:0;
  376. width:100%;
  377. height:2px;
  378. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  379. border-radius:5px;
  380. transform:scaleX(0);
  381. transform-origin:center;
  382. transition: transform 0.3s ease-out;
  383. }
  384. .sidebar-desc a:hover:after, .updates-wrap a:hover:after, .aanswer a:hover:after {
  385. transform: scaleX(1);
  386. transform-origin:center;
  387. }
  388.  
  389. .flex {
  390. display: flex;
  391. flex-wrap: wrap;
  392. }
  393.  
  394. .centered {
  395. align-items: center;
  396. justify-content: center;
  397. }
  398.  
  399. .align-center {
  400. align-items: center;
  401. }
  402.  
  403. .justify-center {
  404. justify-content: center;
  405. }
  406.  
  407. .sr-text {
  408. border: 0;
  409. clip: rect(1px, 1px, 1px, 1px);
  410. clip-path: inset(50%);
  411. height: 1px;
  412. margin: -1px;
  413. overflow: hidden;
  414. padding: 0;
  415. position: absolute;
  416. width: 1px;
  417. word-wrap: normal !important;
  418. }
  419.  
  420. /*--- HEADER ---*/
  421.  
  422. header {
  423. position:fixed;
  424. top:0;
  425. left:0;
  426. right:0;
  427. width:100%;
  428. height:50px;
  429. display:flex;
  430. justify-content:space-between;
  431. align-items:center;
  432. gap:1em;
  433. padding:0 1em 0 1em;
  434. background:var(--ColorPosts);
  435. z-index:9999;
  436. }
  437. header:before {
  438. content:'';
  439. position:absolute;
  440. left:0;
  441. bottom:-1.5px;
  442. width:100%;
  443. height:1.5px;
  444. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  445. }
  446.  
  447. .headerleft {
  448. display:flex;
  449. justify-content:flex-start;
  450. align-items:center;
  451. gap:.5em;
  452. }
  453.  
  454. /* HEADER IMG */
  455. .headerimg {
  456. display:flex;
  457. justify-content:center;
  458. align-items:center;
  459. padding:2px;
  460. background:linear-gradient(to top right, var(--ColorAccentOne), var(--ColorAccentTwo));
  461. border-radius:100%;
  462. }
  463. .headerimg img {
  464. width:2.25em;
  465. height:2.25em;
  466. padding:1px;
  467. background:var(--ColorPosts);
  468. border-radius:100%;
  469. -webkit-transition: all 0.4s;
  470. -moz-transition: all 0.4s;
  471. -ms-transition: all 0.4s;
  472. -o-transition: all 0.4s;
  473. transition: all 0.4s;
  474. }
  475.  
  476. a.headertitle {
  477. display:flex;
  478. flex-direction:column;
  479. justify-content:center;
  480. align-items:flex-start;
  481. line-height:110%;
  482. }
  483. a.headertitle b {
  484. font-family:'{text:title font}', sans-serif;
  485. font-size:1em;
  486. font-weight:600;
  487. color:var(--ColorTitle);
  488. -webkit-transition: all 0.4s;
  489. -moz-transition: all 0.4s;
  490. -ms-transition: all 0.4s;
  491. -o-transition: all 0.4s;
  492. transition: all 0.4s;
  493. }
  494. a.headertitle:hover b {color:var(--ColorAccentOne);}
  495. a.headertitle i {
  496. font-size:.95em;
  497. font-style:normal;
  498. color:var(--ColorText);
  499. -webkit-transition: all 0.4s;
  500. -moz-transition: all 0.4s;
  501. -ms-transition: all 0.4s;
  502. -o-transition: all 0.4s;
  503. transition: all 0.4s;
  504. }
  505. a.headertitle:hover i {color:var(--ColorTitle);}
  506.  
  507. .headerright {
  508. display:flex;
  509. justify-content:flex-end;
  510. align-items:center;
  511. gap:.5em;
  512. }
  513.  
  514. /* sidebar button */
  515. a#sidebarbutton {display:none; justify-content:center; align-items:center; cursor:help;}
  516. a#sidebarbutton i {
  517. font-size:1.4em;
  518. color:var(--ColorTitle);
  519. -webkit-transition: all 0.4s;
  520. -moz-transition: all 0.4s;
  521. -ms-transition: all 0.4s;
  522. -o-transition: all 0.4s;
  523. transition: all 0.4s;
  524. }
  525. a#sidebarbutton:hover i {transform:scale(1.1); color:var(--ColorAccentOne);}
  526. body.sidebar-click a#sidebarbutton i {color:var(--ColorAccentTwo);}
  527.  
  528. /* DAY/NIGHT */
  529. button#theme-toggle {
  530. outline:none;
  531. border:none;
  532. padding:0;
  533. background:transparent;
  534. display:flex;
  535. justify-content:center;
  536. align-items:center;
  537. }
  538.  
  539. button#theme-toggle span {
  540. justify-content:center;
  541. align-items:center;
  542. cursor:help;
  543. -webkit-transition: all 0.4s;
  544. -moz-transition: all 0.4s;
  545. -ms-transition: all 0.4s;
  546. -o-transition: all 0.4s;
  547. transition: all 0.4s;
  548. }
  549.  
  550. button#theme-toggle i {
  551. font-size:1.4em;
  552. color:var(--ColorTitle);
  553. -webkit-transition: all 0.4s;
  554. -moz-transition: all 0.4s;
  555. -ms-transition: all 0.4s;
  556. -o-transition: all 0.4s;
  557. transition: all 0.4s;
  558. }
  559. button#theme-toggle:hover i {
  560. color:var(--ColorAccentOne);
  561. -webkit-transition: all 0.4s;
  562. -moz-transition: all 0.4s;
  563. -ms-transition: all 0.4s;
  564. -o-transition: all 0.4s;
  565. transition: all 0.4s;
  566. -webkit-animation-duration: .75s;
  567. animation-duration: .75s;
  568. -webkit-animation-fill-mode: both;
  569. animation-fill-mode: both;
  570. -webkit-animation-timing-function: ease-in-out;
  571. animation-timing-function: ease-in-out;
  572. animation-iteration-count:1;
  573. -webkit-animation-iteration-count:1;
  574. animation-name:daynight;
  575. -moz-animation-name:daynight;
  576. }
  577.  
  578. @keyframes daynight {
  579. 50% {
  580. -webkit-transform: scaleX(-1);
  581. -ms-transform: scaleX(-1);
  582. transform: scaleX(-1);
  583. }
  584. }
  585.  
  586. /* TUMBLR CONTROLS */
  587. a#controlsbutton {cursor:help;}
  588. a#controlsbutton {display:flex; justify-content:center; align-items:center;}
  589. a#controlsbutton i {
  590. font-size:1.45em;
  591. color:var(--ColorTitle);
  592. -webkit-transition: all 0.4s;
  593. -moz-transition: all 0.4s;
  594. -ms-transition: all 0.4s;
  595. -o-transition: all 0.4s;
  596. transition: all 0.4s;
  597. }
  598. a#controlsbutton:hover i {
  599. color:var(--ColorAccentOne);
  600. -webkit-animation-duration: 1.5s;
  601. animation-duration: 1.5s;
  602. -webkit-animation-fill-mode: both;
  603. animation-fill-mode: both;
  604. -webkit-animation-timing-function: ease-in-out;
  605. animation-timing-function: ease-in-out;
  606. animation-iteration-count:1;
  607. -webkit-animation-iteration-count:1;
  608. animation-name:tumblrcontrols;
  609. -moz-animation-name:tumblrcontrols;
  610. }
  611. body.controls-click a#controlsbutton i {color:var(--ColorAccentTwo);}
  612.  
  613. @keyframes tumblrcontrols {
  614. 45% {
  615. -webkit-transform: rotate(180deg);
  616. -ms-transform: rotate(180deg);
  617. transform: rotate(180deg);
  618. }
  619. 55% {
  620. -webkit-transform: rotate(180deg);
  621. -ms-transform: rotate(180deg);
  622. transform: rotate(180deg);
  623. }
  624. 100% {
  625. -webkit-transform: rotate(360deg);
  626. -ms-transform: rotate(360deg);
  627. transform: rotate(360deg);
  628. }
  629. }
  630.  
  631. .tmblr-iframe-compact .tmblr-iframe--unified-controls {
  632. transform:scale(.75);
  633. margin-top:45px;
  634. margin-right:-1em;
  635. opacity:0;
  636. visibility:hidden;
  637. z-index:999999999!important;
  638. }
  639.  
  640. body.controls-click iframe.tmblr-iframe {
  641. opacity:1.0;
  642. visibility:visible;
  643. -webkit-transition: all 0.5s;
  644. -moz-transition: all 0.5s;
  645. -ms-transition: all 0.5s;
  646. -o-transition: all 0.5s;
  647. transition: all 0.5s;
  648. }
  649.  
  650. /*--- LEFT SIDEBAR ---*/
  651. #leftsidebar {
  652. position:fixed;
  653. top:50px;
  654. left:1em;
  655. margin:calc(var(--Spacing) * 4) auto;
  656. width:300px;
  657. display:flex;
  658. {block:ifRightSidebar}
  659. display:none;
  660. {/block:ifRightSidebar}
  661. flex-direction:column;
  662. align-items:center;
  663. background:var(--ColorPosts);
  664. border-radius:var(--Corners);
  665. box-shadow:0 2px 8px -2px rgba(0,0,0,.1);
  666. z-index:999;
  667. }
  668.  
  669. .sidebar-top {
  670. position:relative;
  671. width:100%;
  672. padding:1em;
  673. display:flex;
  674. justify-content:flex-start;
  675. align-items:center;
  676. gap:.5em;
  677. border-bottom:1px solid var(--ColorBorders);
  678. }
  679. .sidebar-icon {
  680. padding:2px;
  681. display:flex;
  682. justify-content:center;
  683. align-items:center;
  684. background:linear-gradient(to top, var(--ColorAccentOne), var(--ColorAccentTwo));
  685. border-radius:100%;
  686. }
  687. .sidebar-icon img {
  688. width:3em;
  689. height:3em;
  690. padding:1px;
  691. background:var(--ColorPosts);
  692. border-radius:100%;
  693. }
  694.  
  695. a.sidebartitle {
  696. display:flex;
  697. flex-direction:column;
  698. }
  699. a.sidebartitle b {
  700. font-family:'{text:title font}', sans-serif;
  701. font-size:1.1em;
  702. font-weight:bold;
  703. -webkit-transition: all 0.4s;
  704. -moz-transition: all 0.4s;
  705. -ms-transition: all 0.4s;
  706. -o-transition: all 0.4s;
  707. transition: all 0.4s;
  708. }
  709. a.sidebartitle:hover b {color:var(--ColorAccentOne);}
  710.  
  711. a.sidebartitle li {
  712. display:flex;
  713. justify-content:flex-start;
  714. align-items:center;
  715. gap:.25em;
  716. }
  717.  
  718. a.sidebartitle li i {
  719. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  720. -webkit-background-clip:text;
  721. -webkit-text-fill-color:transparent;
  722. }
  723.  
  724. a.sidebartitle li span {
  725. font-style:normal;
  726. color:var(--ColorText);
  727. -webkit-transition: all 0.4s;
  728. -moz-transition: all 0.4s;
  729. -ms-transition: all 0.4s;
  730. -o-transition: all 0.4s;
  731. transition: all 0.4s;
  732. }
  733. a.sidebartitle:hover li span {color:var(--ColorTitle);}
  734.  
  735. .sidebar-img {
  736. width:100%;
  737. height:300px;
  738. display:flex;
  739. justify-content:center;
  740. align-items:center;
  741. }
  742. .sidebar-img img {width:100%; height:300px; object-fit:cover;}
  743.  
  744. .sidebar-desc {
  745. width:100%;
  746. padding:1em;
  747. text-align:left;
  748. }
  749. .sidebar-desc p {margin-bottom:0; padding-bottom:0;}
  750.  
  751. nav {
  752. position:relative;
  753. width:100%;
  754. padding:.75em;
  755. display:flex;
  756. justify-content:space-between;
  757. align-items:center;
  758. gap:.5em;
  759. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  760. border-radius:0 0 var(--Corners) var(--Corners);
  761. }
  762. nav:before {
  763. content:'';
  764. position:absolute;
  765. left:0;
  766. top:-1.5px;
  767. width:100%;
  768. height:1.5px;
  769. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  770. }
  771. nav a {
  772. display:flex;
  773. justify-content:center;
  774. align-items:center;
  775. }
  776. nav a i {
  777. font-size:1.45em;
  778. color:var(--ColorPosts);
  779. -webkit-transition: all 0.4s;
  780. -moz-transition: all 0.4s;
  781. -ms-transition: all 0.4s;
  782. -o-transition: all 0.4s;
  783. transition: all 0.4s;
  784. }
  785. nav a:hover i {transform:scale(1.1);}
  786.  
  787. /*--- RIGHT SIDEBAR ---*/
  788. #rightsidebar {
  789. position:fixed;
  790. top:50px;
  791. right:1em;
  792. margin:calc(var(--Spacing) * 4) auto;
  793. width:300px;
  794. display:flex;
  795. flex-direction:column;
  796. align-items:center;
  797. background:var(--ColorPosts);
  798. border-radius:var(--Corners);
  799. box-shadow:0 2px 8px -2px rgba(0,0,0,.1);
  800. z-index:999;
  801. }
  802.  
  803. .sidebar-top {
  804. position:relative;
  805. width:100%;
  806. padding:1em;
  807. display:flex;
  808. justify-content:flex-start;
  809. align-items:center;
  810. gap:.5em;
  811. border-bottom:1px solid var(--ColorBorders);
  812. }
  813. .sidebar-icon {
  814. padding:2px;
  815. display:flex;
  816. justify-content:center;
  817. align-items:center;
  818. background:linear-gradient(to top, var(--ColorAccentOne), var(--ColorAccentTwo));
  819. border-radius:100%;
  820. }
  821. .sidebar-icon img {
  822. width:3em;
  823. height:3em;
  824. padding:1px;
  825. background:var(--ColorPosts);
  826. border-radius:100%;
  827. }
  828.  
  829. a.sidebartitle {
  830. display:flex;
  831. flex-direction:column;
  832. }
  833. a.sidebartitle b {
  834. font-family:'{text:title font}', sans-serif;
  835. font-size:1.1em;
  836. font-weight:bold;
  837. -webkit-transition: all 0.4s;
  838. -moz-transition: all 0.4s;
  839. -ms-transition: all 0.4s;
  840. -o-transition: all 0.4s;
  841. transition: all 0.4s;
  842. }
  843. a.sidebartitle:hover b {color:var(--ColorAccentOne);}
  844.  
  845. a.sidebartitle li {
  846. display:flex;
  847. justify-content:flex-start;
  848. align-items:center;
  849. gap:.25em;
  850. }
  851.  
  852. a.sidebartitle li i {
  853. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  854. -webkit-background-clip:text;
  855. -webkit-text-fill-color:transparent;
  856. }
  857.  
  858. a.sidebartitle li span {
  859. font-style:normal;
  860. color:var(--ColorText);
  861. -webkit-transition: all 0.4s;
  862. -moz-transition: all 0.4s;
  863. -ms-transition: all 0.4s;
  864. -o-transition: all 0.4s;
  865. transition: all 0.4s;
  866. }
  867. a.sidebartitle:hover li span {color:var(--ColorTitle);}
  868.  
  869. .sidebar-img {
  870. width:100%;
  871. height:300px;
  872. display:flex;
  873. justify-content:center;
  874. align-items:center;
  875. }
  876. .sidebar-img img {width:100%; height:300px; object-fit:cover;}
  877.  
  878. .sidebar-desc {
  879. width:100%;
  880. padding:1em;
  881. text-align:left;
  882. }
  883. .sidebar-desc p {margin-bottom:0; padding-bottom:0;}
  884.  
  885. nav {
  886. position:relative;
  887. width:100%;
  888. padding:.75em;
  889. display:flex;
  890. justify-content:space-between;
  891. align-items:center;
  892. gap:.5em;
  893. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  894. border-radius:0 0 var(--Corners) var(--Corners);
  895. }
  896. nav:before {
  897. content:'';
  898. position:absolute;
  899. left:0;
  900. top:-1.5px;
  901. width:100%;
  902. height:1.5px;
  903. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  904. }
  905. nav a {
  906. display:flex;
  907. justify-content:center;
  908. align-items:center;
  909. }
  910. nav a i {
  911. font-size:1.45em;
  912. color:var(--ColorPosts);
  913. -webkit-transition: all 0.4s;
  914. -moz-transition: all 0.4s;
  915. -ms-transition: all 0.4s;
  916. -o-transition: all 0.4s;
  917. transition: all 0.4s;
  918. }
  919. nav a:hover i {transform:scale(1.1);}
  920.  
  921. /*--- FIXED BUTTONS ---*/
  922. .fixedbuttons {
  923. position:fixed;
  924. bottom:1em;
  925. right:1em;
  926. {block:ifRightSidebar}
  927. left:1em;
  928. right:auto;
  929. {/block:ifRightSidebar}
  930. display:flex;
  931. flex-direction:column;
  932. justify-content:center;
  933. align-items:center;
  934. gap:.5em;
  935. z-index:9999999;
  936. }
  937. .fixedbuttons a {
  938. display:flex;
  939. justify-content:center;
  940. align-items:center;
  941. padding:.5em;
  942. background:var(--ColorPosts);
  943. border-radius:var(--Corners);
  944. box-shadow:2px 2px 8px -2px rgba(0,0,0,.15);
  945. }
  946. .fixedbuttons i {
  947. font-size:1.5em;
  948. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  949. -webkit-background-clip:text;
  950. -webkit-text-fill-color:transparent;
  951. -webkit-transition: all 0.4s;
  952. -moz-transition: all 0.4s;
  953. -ms-transition: all 0.4s;
  954. -o-transition: all 0.4s;
  955. transition: all 0.4s;
  956. }
  957.  
  958. /* SCROLL TO TOP */
  959. a#totop {
  960. display:none;
  961. justify-content:center;
  962. align-items:center;
  963. cursor:help;
  964. }
  965. a#totop i {
  966. -webkit-transition: all 0.4s;
  967. -moz-transition: all 0.4s;
  968. -ms-transition: all 0.4s;
  969. -o-transition: all 0.4s;
  970. transition: all 0.4s;
  971. }
  972. a#totop:hover i {
  973. -webkit-animation-duration: 2.5s;
  974. animation-duration: 2.5s;
  975. -webkit-animation-fill-mode: both;
  976. animation-fill-mode: both;
  977. -webkit-animation-timing-function: ease-in-out;
  978. animation-timing-function: ease-in-out;
  979. animation-iteration-count:1;
  980. -webkit-animation-iteration-count:1;
  981. animation-name:totop;
  982. -moz-animation-name:totop;
  983. }
  984.  
  985. @keyframes totop {
  986. 0% {
  987. -webkit-transform: translateY(0px);
  988. -ms-transform: translateY(0px);
  989. transform: translateY(0px)
  990. }
  991. 10% {
  992. -webkit-transform: translateY(-3px);
  993. -ms-transform: translateY(-3px);
  994. transform: translateY(-3px)
  995. }
  996. 20% {
  997. -webkit-transform: translateY(0px);
  998. -ms-transform: translateY(0px);
  999. transform: translateY(0px)
  1000. }
  1001. 30% {
  1002. -webkit-transform: translateY(-3px);
  1003. -ms-transform: translateY(-3px);
  1004. transform: translateY(-3px)
  1005. }
  1006. 40% {
  1007. -webkit-transform: translateY(0px);
  1008. -ms-transform: translateY(0px);
  1009. transform: translateY(0px)
  1010. }
  1011. 50% {
  1012. -webkit-transform: translateY(0px);
  1013. -ms-transform: translateY(0px);
  1014. transform: translateY(0px)
  1015. }
  1016. 60% {
  1017. -webkit-transform: translateY(0px);
  1018. -ms-transform: translateY(0px);
  1019. transform: translateY(0px)
  1020. }
  1021. 70% {
  1022. -webkit-transform: translateY(-3px);
  1023. -ms-transform: translateY(-3px);
  1024. transform: translateY(-3px)
  1025. }
  1026. 80% {
  1027. -webkit-transform: translateY(0px);
  1028. -ms-transform: translateY(0px);
  1029. transform: translateY(0px)
  1030. }
  1031. 90% {
  1032. -webkit-transform: translateY(-3px);
  1033. -ms-transform: translateY(-3px);
  1034. transform: translateY(-3px)
  1035. }
  1036. 100% {
  1037. -webkit-transform: translateY(0px);
  1038. -ms-transform: translateY(0px);
  1039. transform: translateY(0px)
  1040. }
  1041. }
  1042. a.followbutton i {font-size:1.4em;}
  1043. a.followbutton:hover i {transform:scale(1.1);}
  1044.  
  1045. /* updates button */
  1046. a#updatesbutton, a#updatesclose {cursor:help;}
  1047. a#updatesclose {display:none;}
  1048. a#updatesclose i {}
  1049. a#updatesbutton:hover i, a#updatesclose:hover i {
  1050. -webkit-animation-duration: 1s;
  1051. animation-duration: 1s;
  1052. -webkit-animation-fill-mode: both;
  1053. animation-fill-mode: both;
  1054. -webkit-animation-timing-function: ease-in-out;
  1055. animation-timing-function: ease-in-out;
  1056. animation-iteration-count:1;
  1057. -webkit-animation-iteration-count:1;
  1058. animation-name: wiggle;
  1059. -moz-animation-name: wiggle;
  1060. }
  1061.  
  1062. @keyframes wiggle {
  1063. 0% {
  1064. -webkit-transform: translateX(0px);
  1065. -ms-transform: translateX(0px);
  1066. transform: translateX(0px)
  1067. }
  1068. 15% {
  1069. -webkit-transform: translateX(0px);
  1070. -ms-transform: translateX(0px);
  1071. transform: translateX(0px)
  1072. }
  1073. 30% {
  1074. -webkit-transform: rotate(10deg);
  1075. -ms-transform: translateX(10deg);
  1076. transform: translateX(10deg)
  1077. }
  1078. 45% {
  1079. -webkit-transform: rotate(-10deg);
  1080. -ms-transform: rotate(-10deg);
  1081. transform: rotate(-10deg)
  1082. }
  1083. 60% {
  1084. -webkit-transform: rotate(10deg);
  1085. -ms-transform: rotate(10deg);
  1086. transform: rotate(10deg)
  1087. }
  1088. 75% {
  1089. -webkit-transform: rotate(-10deg);
  1090. -ms-transform: rotate(-10deg);
  1091. transform: rotate(-10deg)
  1092. }
  1093. 85% {
  1094. -webkit-transform: rotate(10deg);
  1095. -ms-transform: rotate(10deg);
  1096. transform: rotate(10deg)
  1097. }
  1098. 100% {
  1099. -webkit-transform: translateX(0px);
  1100. -ms-transform: translateX(0px);
  1101. transform: translateX(0px)
  1102. }
  1103. }
  1104.  
  1105. /* updates tab */
  1106. .updates {
  1107. position:absolute;
  1108. right:calc(100% + .5em);
  1109. {block:ifRightSidebar}
  1110. left:calc(100% + .5em);
  1111. right:auto;
  1112. {/block:ifRightSidebar}
  1113. bottom:0;
  1114. width:250px;
  1115. display:none;
  1116. flex-direction:column;
  1117. background:var(--ColorPosts);
  1118. box-shadow:2px 2px 8px -2px rgba(0,0,0,.15);
  1119. border-radius:var(--Corners);
  1120. }
  1121. .updates-title {
  1122. width:100%;
  1123. display:flex;
  1124. justify-content:flex-start;
  1125. align-items:center;
  1126. padding:.75em;
  1127. border-bottom:1px solid var(--ColorBorders);
  1128. }
  1129. .updates-title b {font-weight:600;}
  1130. .updates-wrap {
  1131. width:100%;
  1132. display:flex;
  1133. flex-direction:column;
  1134. gap:.5em;
  1135. padding:.75em;
  1136. }
  1137.  
  1138. .updates-wrap li {
  1139. width:100%;
  1140. display:flex;
  1141. justify-content:flex-start;
  1142. align-items:center;
  1143. gap:.5em;
  1144. }
  1145. .updates-wrap span {font-size:.95em;}
  1146.  
  1147. .updates-wrap li i {
  1148. font-size:1.3em;
  1149. color:var(--ColorAccent);
  1150. }
  1151.  
  1152. /*--- CREDIT: DO NOT TOUCH ---*/
  1153. a.credit {}
  1154. a.credit i {}
  1155. a.credit:hover i {
  1156. -webkit-animation-duration: 2s;
  1157. animation-duration: 2s;
  1158. -webkit-animation-fill-mode: both;
  1159. animation-fill-mode: both;
  1160. -webkit-animation-timing-function: ease-in-out;
  1161. animation-timing-function: ease-in-out;
  1162. animation-iteration-count:infinite;
  1163. -webkit-animation-iteration-count:infinite;
  1164. animation-name: bounce;
  1165. -moz-animation-name: bounce;
  1166. }
  1167.  
  1168. @keyframes bounce {
  1169. 0% {
  1170. -webkit-transform: translateY(0px);
  1171. -ms-transform: translateY(0px);
  1172. transform: translateY(0px)
  1173. }
  1174. 25% {
  1175. -webkit-transform: translateY(-3px);
  1176. -ms-transform: translateY(-3px);
  1177. transform: translateY(-3px)
  1178. }
  1179. 50% {
  1180. -webkit-transform: translateY(0px);
  1181. -ms-transform: translateY(0px);
  1182. transform: translateY(0px)
  1183. }
  1184. 75% {
  1185. -webkit-transform: translateY(-3px);
  1186. -ms-transform: translateY(-3px);
  1187. transform: translateY(-3px)
  1188. }
  1189. 100% {
  1190. -webkit-transform: translateY(0px);
  1191. -ms-transform: translateY(0px);
  1192. transform: translateY(0px)
  1193. }
  1194. }
  1195.  
  1196. main {
  1197. width:100%;
  1198. margin:50px auto auto auto;
  1199. max-width:1230px;
  1200. justify-content:center;
  1201. align-items:flex-start;
  1202. }
  1203.  
  1204. section {width:calc(100% - 400px);}
  1205.  
  1206. /*-- TOP POST INFO --*/
  1207. .topinfo {
  1208. position:relative;
  1209. padding:1rem;
  1210. display:flex;
  1211. justify-content:space-between;
  1212. align-items:center;
  1213. gap:1rem;
  1214. border-bottom:1px solid var(--ColorBorders);
  1215. }
  1216. .topinfoleft {
  1217. display:flex;
  1218. justify-content:flex-start;
  1219. align-items:center;
  1220. gap:.5rem;
  1221. }
  1222. .til-img {
  1223. padding:2px;
  1224. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  1225. border-radius:100%;
  1226. }
  1227. .til-img img {
  1228. width:2.65em;
  1229. height:2.65em;
  1230. padding:1px;
  1231. background:var(--ColorPosts);
  1232. border-radius:100%;
  1233. -webkit-transition: all 0.4s;
  1234. -moz-transition: all 0.4s;
  1235. -ms-transition: all 0.4s;
  1236. -o-transition: all 0.4s;
  1237. transition: all 0.4s;
  1238. }
  1239. .til-name {
  1240. display:flex;
  1241. flex-direction:column;
  1242. }
  1243. .til-top {
  1244. display:flex;
  1245. justify-content:flex-start;
  1246. align-items:center;
  1247. gap:.25rem;
  1248. }
  1249. .til-top a {
  1250. font-weight:bold;
  1251. color:var(--ColorTitle);
  1252. -webkit-transition: all 0.4s;
  1253. -moz-transition: all 0.4s;
  1254. -ms-transition: all 0.4s;
  1255. -o-transition: all 0.4s;
  1256. transition: all 0.4s;
  1257. }
  1258. .til-top a:hover {color:var(--ColorAccentOne);}
  1259.  
  1260. .til-top i {
  1261. font-size:.9em;
  1262. margin-top:.1rem;
  1263. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  1264. -webkit-background-clip:text;
  1265. -webkit-text-fill-color:transparent;
  1266. }
  1267. .til-top a.rbvia {
  1268. font-size:.95em;
  1269. font-weight:normal;
  1270. color:var(--ColorText);
  1271. }
  1272. .til-top a.rbvia:hover {color:var(--ColorAccentOne);}
  1273.  
  1274. .til-low {
  1275. margin-top:-.1rem;
  1276. display:flex;
  1277. justify-content:flex-start;
  1278. align-items:center;
  1279. gap:.1em;
  1280. }
  1281. .til-low span {font-size:.9em; color:var(--ColorText);}
  1282. .til-low i {
  1283. font-size:1.1rem;
  1284. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  1285. -webkit-background-clip:text;
  1286. -webkit-text-fill-color:transparent;
  1287. }
  1288. .til-low b {margin-top:.1rem; margin-left:.15em; font-size:.75em; color:var(--ColorText);}
  1289.  
  1290. .topinforight {
  1291. position:relative;
  1292. display:flex;
  1293. justify-content:center;
  1294. align-items:center;
  1295. }
  1296. .topinforight a {
  1297. display:flex;
  1298. justify-content:center;
  1299. align-items:center;
  1300. }
  1301. .topinforight i {
  1302. font-size:1.4em;
  1303. color:var(--ColorTitle);
  1304. -webkit-transition: all 0.4s;
  1305. -moz-transition: all 0.4s;
  1306. -ms-transition: all 0.4s;
  1307. -o-transition: all 0.4s;
  1308. transition: all 0.4s;
  1309. }
  1310. .topinforight a:hover i {color:var(--ColorAccentOne);}
  1311. a.morebutton {cursor:help;}
  1312. a.morebutton.more-click {transform:rotate(90deg);}
  1313.  
  1314. .moreinfo {
  1315. position:absolute;
  1316. top:.725rem;
  1317. right:100%;
  1318. width:150px;
  1319. display:none;
  1320. flex-direction:column;
  1321. overflow:hidden;
  1322. background:var(--ColorPosts);
  1323. border:1px solid var(--ColorBorders);
  1324. border-radius:var(--Corners);
  1325. box-shadow:0 2px 8px -2px rgba(0,0,0,.25);
  1326. z-index:99;
  1327. }
  1328. .moreinfo a {
  1329. width:100%;
  1330. font-size:.95em;
  1331. font-weight:normal;
  1332. color:var(--ColorText);
  1333. text-transform:lowercase;
  1334. padding:.5rem;
  1335. text-align:center;
  1336. border-bottom:1px solid var(--ColorBorders);
  1337. }
  1338. .moreinfo a:last-of-type {border-bottom:none;}
  1339. .moreinfo a:hover {color:var(--ColorPosts); background:var(--ColorAccentOne);}
  1340. a#copybutton {cursor:help;}
  1341.  
  1342. /*--- POST STUFF ---*/
  1343.  
  1344. .tags,
  1345. .reblog-header,
  1346. article .quote,
  1347. article .replies,
  1348. article .source,
  1349. .pagination,
  1350. article h1,
  1351. article h2 {
  1352. padding:var(--Spacing);
  1353. }
  1354. .reblog-header {margin-bottom:var(--Spacing);}
  1355.  
  1356. /*--- TAG / DAY PAGES ---*/
  1357. article.tdpage {
  1358. max-width:540px;
  1359. width:100%;
  1360. display:flex;
  1361. justify-content:flex-start;
  1362. align-items:center;
  1363. gap:.5em;
  1364. padding:1rem;
  1365. background:var(--ColorPosts);
  1366. border-radius:var(--Corners);
  1367. box-shadow:0 2px 8px -2px rgba(0,0,0,.1);
  1368. }
  1369.  
  1370. .tdpage-text {text-transform:lowercase;}
  1371. .tdpage-text b {}
  1372. .tdpage-text span {font-weight:500; color:var(--ColorTitle);}
  1373.  
  1374. .tdpage-icon {
  1375. display:flex;
  1376. justify-content:flex-end;
  1377. align-items:center;
  1378. }
  1379.  
  1380. .tdpage-icon i {
  1381. font-size:1.4em;
  1382. color:var(--ColorPosts);
  1383. text-shadow:0 1px rgba(0,0,0,.1);
  1384. padding:.3em;
  1385. background:var(--ColorAccentOne);
  1386. border-radius:100%;
  1387. }
  1388.  
  1389. /*-- poll posts --*/
  1390. .poll-post {
  1391. padding:1rem;
  1392. }
  1393. .poll-post .poll-question {
  1394. font-size:1.2rem!important;
  1395. color:var(--ColorTitle);
  1396. padding:0!important;
  1397. margin:0 0 1rem 0!important;
  1398. }
  1399. .poll-post a.poll-row {
  1400. font-size:1em!important;
  1401. color:var(--ColorTitle)!important;
  1402. padding:0 .25rem 0 .25rem!important;
  1403. background:var(--ColorBackground)!important;
  1404. border:1px solid var(--ColorBorders)!important;
  1405. border-radius:var(--Corners)!important;
  1406. }
  1407. .poll-post a.poll-row:hover {
  1408. color:var(--ColorPosts)!important;
  1409. background:var(--ColorAccentOne)!important;
  1410. border:1px solid var(--ColorAccentOne)!important;
  1411. }
  1412. .poll-post .poll-see-results {
  1413. font-weight:bold;
  1414. text-transform:uppercase;
  1415. color:var(--ColorTitle)!important;
  1416. }
  1417.  
  1418. /*-- quote posts --*/
  1419. .quote {color:var(--ColorTitle)!important;}
  1420. .source {color:var(--ColorTitle)!important;}
  1421.  
  1422. /*-- link posts --*/
  1423. .npf-link-block {
  1424. color:var(--ColorPosts);
  1425. background:var(--ColorAccentOne);
  1426. margin:0!important;
  1427. border:none!important;
  1428. border-radius:0!important;
  1429. }
  1430. .npf-link-block a {color:var(--ColorPosts); text-shadow:0 1px rgba(0,0,0,.1);}
  1431. .npf-link-block a:hover {margin-left:.5rem;}
  1432.  
  1433. /*-- answer posts --*/
  1434. article .question {
  1435. padding:1rem 1rem .5rem 1rem;
  1436. }
  1437. .qheader {
  1438. display:flex;
  1439. justify-content:flex-start;
  1440. align-items:center;
  1441. gap:.5em;
  1442. }
  1443. .qheader li {list-style-type:none; color:var(--ColorTitle);}
  1444. .qheader li a {color:var(--ColorTitle);}
  1445. .qheader li a:hover {color:var(--ColorAccentTwo);}
  1446. .qheader i {
  1447. font-size:1.4em;
  1448. color:var(--ColorPosts);
  1449. padding:.3em;
  1450. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  1451. border-radius:100%;
  1452. }
  1453. .qcont {
  1454. position:relative;
  1455. margin-top:1em;
  1456. padding:.5em 1em .5em 1em;
  1457. background:var(--ColorBackground);
  1458. border:1px solid var(--ColorBorders);
  1459. border-radius:var(--Corners);
  1460. }
  1461. .qcont:after {
  1462. content:'';
  1463. position:absolute;
  1464. top:calc(-.625em - 1px);
  1465. left:2.5em;
  1466. width:1.25em;
  1467. height:1.25em;
  1468. transform:rotate(45deg);
  1469. background:var(--ColorBackground);
  1470. border-top:1px solid var(--ColorBorders);
  1471. border-left:1px solid var(--ColorBorders);
  1472. }
  1473.  
  1474. /*--- AUDIO POSTS ---*/
  1475. .audiopost {}
  1476.  
  1477. .spotify_audio_player,
  1478. article iframe[src*='soundcloud'] {
  1479. max-height: calc(170px + var(--Spacing));
  1480. border: 0;
  1481. padding: var(--Spacing);
  1482. padding-bottom: 0;
  1483. }
  1484.  
  1485. /*--- CHAT POSTS ---*/
  1486. .chat li {
  1487. list-style-type:none;
  1488. padding:.5em;
  1489. }
  1490. .chat li:nth-of-type(odd) {background:var(--ColorAccentOne);}
  1491. .chat li:nth-of-type(even) {background:var(--ColorBackground);}
  1492. .chat li:nth-of-type(odd) b, .chat li:nth-of-type(odd) span {color:var(--ColorPosts);}
  1493.  
  1494. article .caption p {
  1495. padding:var(--Spacing);
  1496. /*padding-bottom:0;*/
  1497. margin: 0;
  1498. }
  1499.  
  1500. .reblog-content {
  1501. white-space: pre-wrap;
  1502. }
  1503.  
  1504. .caption:last-child p,
  1505. .reblog-content p:last-of-type {
  1506. padding-bottom: var(--Spacing);
  1507. }
  1508.  
  1509. .reblog-header img {
  1510. width:1.5em;
  1511. height:1.5em;
  1512. margin-right:.5em;
  1513. border-radius:100%;
  1514. }
  1515. .reblog-header a {color:var(--ColorTitle);}
  1516. .reblog-header a:hover {color:var(--ColorAccentTwo);}
  1517.  
  1518. .reblog-header:is(:not(.original)) {
  1519. border-top: 1px solid var(--ColorBorders);
  1520. }
  1521.  
  1522. .reblog-header,
  1523. .reblog-content {
  1524. padding-bottom: 0;
  1525. }
  1526.  
  1527. p:empty {
  1528. display: none;
  1529. }
  1530.  
  1531. /*-- BOTTOM POST INFO --*/
  1532. .bottompostinfo {
  1533. display:flex;
  1534. justify-content:space-between;
  1535. align-items:center;
  1536. gap:1em;
  1537. padding:var(--Spacing);
  1538. border-top:1px solid var(--ColorBorders);
  1539. }
  1540.  
  1541. .bottominfoleft {
  1542. display:flex;
  1543. justify-content:flex-start;
  1544. align-items:center;
  1545. gap:.5em;
  1546. }
  1547. .bottominfoleft a {
  1548. display:flex;
  1549. justify-content:center;
  1550. align-items:center;
  1551. gap:.25em;
  1552. }
  1553. a.notecount i {
  1554. font-size:1.2em;
  1555. color:var(--ColorTitle);
  1556. -webkit-transition: all 0.4s;
  1557. -moz-transition: all 0.4s;
  1558. -ms-transition: all 0.4s;
  1559. -o-transition: all 0.4s;
  1560. transition: all 0.4s;
  1561. }
  1562. a.notecount b {
  1563. font-weight:normal;
  1564. color:var(--ColorText);
  1565. -webkit-transition: all 0.4s;
  1566. -moz-transition: all 0.4s;
  1567. -ms-transition: all 0.4s;
  1568. -o-transition: all 0.4s;
  1569. transition: all 0.4s;
  1570. }
  1571. a.notecount:hover b, a.notecount:hover i {color:var(--ColorAccentOne);}
  1572.  
  1573. .bottominforight {
  1574. display:flex;
  1575. justify-content:flex-end;
  1576. align-items:center;
  1577. gap:.5em;
  1578. }
  1579.  
  1580. .bottominforight a {
  1581. display:flex;
  1582. justify-content:center;
  1583. align-items:center;
  1584. }
  1585. .bottominforight a:hover {transform:scale(1.1);}
  1586. a.reblog-btn i {
  1587. font-size:1.4em;
  1588. color:var(--ColorTitle);
  1589. -webkit-transition: all 0.4s;
  1590. -moz-transition: all 0.4s;
  1591. -ms-transition: all 0.4s;
  1592. -o-transition: all 0.4s;
  1593. transition: all 0.4s;
  1594. }
  1595. a.reblog-btn:hover i {color:var(--ColorAccentOne);}
  1596.  
  1597. a.like-button i {
  1598. font-size:1.35em;
  1599. color:transparent;
  1600. -webkit-text-stroke-width:1.75px;
  1601. -webkit-text-stroke-color:var(--ColorTitle);
  1602. -webkit-transition: all 0.4s;
  1603. -moz-transition: all 0.4s;
  1604. -ms-transition: all 0.4s;
  1605. -o-transition: all 0.4s;
  1606. transition: all 0.4s;
  1607. }
  1608. a.like-button:hover i {-webkit-text-stroke-color:var(--ColorAccentOne);}
  1609.  
  1610. .bottominforight span {
  1611. display:flex;
  1612. justify-content:center;
  1613. align-items:center;
  1614. -webkit-transition: all 0.4s;
  1615. -moz-transition: all 0.4s;
  1616. -ms-transition: all 0.4s;
  1617. -o-transition: all 0.4s;
  1618. transition: all 0.4s;
  1619. }
  1620. .like-button {
  1621. position:relative;
  1622. display:inline-block;
  1623. }
  1624. .like-button .like_button iframe {
  1625. position:absolute;
  1626. top:0;
  1627. left:0;
  1628. bottom:0;
  1629. right:0;
  1630. z-index:2;
  1631. opacity:0;
  1632. }
  1633. .like_button iframe {width:100%!important; height:100%!important;}
  1634. .like-button .liked + .actual-button i {
  1635. -webkit-text-stroke-color:transparent;
  1636. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  1637. -webkit-background-clip:text;
  1638. -webkit-text-fill-color:transparent;
  1639. }
  1640.  
  1641. a.tagsbutton {display:none;}
  1642. a.clicktagsbutton {cursor:help;}
  1643. a.clicktagsbutton i {
  1644. font-size:1.4em;
  1645. color:var(--ColorTitle);
  1646. -webkit-transition: all 0.4s;
  1647. -moz-transition: all 0.4s;
  1648. -ms-transition: all 0.4s;
  1649. -o-transition: all 0.4s;
  1650. transition: all 0.4s;
  1651. }
  1652. a.clicktagsbutton:hover i {color:var(--ColorAccentOne);}
  1653. a.clicktagsbutton.tags-click i {color:var(--ColorAccentOne);}
  1654.  
  1655. /*--- TAGS ---*/
  1656. .tags, .clicktags {
  1657. padding:.5em;
  1658. display:flex;
  1659. justify-content:flex-start;
  1660. align-items:center;
  1661. flex-wrap:wrap;
  1662. gap:.5em;
  1663. }
  1664. .tags span, .clicktags span {
  1665. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  1666. -webkit-background-clip:text;
  1667. -webkit-text-fill-color:transparent;
  1668. }
  1669. .tags a, .clicktags a {color:var(--ColorText);}
  1670. .tags a:nth-of-type(odd):hover, .clicktags a:nth-of-type(odd):hover {color:var(--ColorAccentOne);}
  1671. .tags a:nth-of-type(even):hover, .clicktags a:nth-of-type(even):hover {color:var(--ColorAccentTwo);}
  1672.  
  1673. /*--- PAGINATION ---*/
  1674. article.pagination {
  1675. display:flex;
  1676. justify-content:space-between;
  1677. align-items:center;
  1678. gap:.5em;
  1679. }
  1680. article.pagination span {cursor:default;}
  1681.  
  1682. a.pg-prev, a.pg-next {
  1683. display:flex;
  1684. justify-content:center;
  1685. align-items:center;
  1686. }
  1687. a.pg-prev:hover, a.pg-next:hover {transform:scale(.95);}
  1688. a.pg-prev i, a.pg-next i {
  1689. font-size:1.6em;
  1690. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo));
  1691. -webkit-background-clip:text;
  1692. -webkit-text-fill-color:transparent;
  1693. -webkit-transition: all 0.4s;
  1694. -moz-transition: all 0.4s;
  1695. -ms-transition: all 0.4s;
  1696. -o-transition: all 0.4s;
  1697. transition: all 0.4s;
  1698. }
  1699.  
  1700. a#nobtn {opacity:.45; cursor:not-allowed;}
  1701. a#nobtn:hover {transform:none;}
  1702.  
  1703. /* common article / pagination / notes */
  1704. article h1 {
  1705. margin:0;
  1706. font-family:'{text:title font}', sans-serif;
  1707. font-size:1.3rem;
  1708. color:var(--ColorTitle);
  1709. }
  1710.  
  1711. .article-wrap,
  1712. .pagination {
  1713. max-width:540px;
  1714. width:100%;
  1715. background:var(--ColorPosts);
  1716. border-radius:var(--Corners);
  1717. box-shadow:0 2px 8px -2px rgba(0,0,0,.1);
  1718. }
  1719. article {width:100%; max-width:540px; margin:calc(var(--Spacing) * 4) auto;}
  1720.  
  1721. ol.notes li {
  1722. padding: 10px;
  1723. }
  1724.  
  1725. ol.notes img {
  1726. display: none;
  1727. }
  1728.  
  1729. article img {
  1730. display: block;
  1731. }
  1732.  
  1733. article iframe,
  1734. article img {
  1735. max-width: 100%;
  1736. }
  1737.  
  1738. a {
  1739. text-decoration: none;
  1740. color: var(--ColorAccentOne);
  1741. }
  1742.  
  1743. blockquote {
  1744. padding: var(--Spacing);
  1745. border-left: 2px solid var(--ColorBorders);
  1746. }
  1747.  
  1748. blockquote p {
  1749. padding: 0!important;
  1750. }
  1751.  
  1752. /*--- RESPONSIVENESS ---*/
  1753. @media only screen and (max-width: 1150px) {
  1754. a#sidebarbutton {display:flex;}
  1755.  
  1756. #rightsidebar {position:fixed; right:-100%; z-index:999; transition:ease-in .55s;}
  1757. body.sidebar-click #rightsidebar {right:1em; transition:ease-out .55s;}
  1758.  
  1759. #leftsidebar {position:fixed; left:-100%; z-index:999; transition:ease-in .55s;}
  1760. body.sidebar-click #leftsidebar {left:1em; transition:ease-out .55s;}
  1761.  
  1762. section {width:100%;}
  1763. article {margin:64px auto;}
  1764. }
  1765.  
  1766. {CustomCSS}
  1767. </style>
  1768. </head>
  1769.  
  1770. <body class="{block:homepage}home{/block:homepage}{block:tagpage}tag{/block:tagpage}{block:searchpage}search{/block:searchpage}{block:submitpage}submit-{/block:submitpage}{block:AskPage}ask{/block:AskPage}-page">
  1771.  
  1772. <!--✻✻✻✻✻✻ npf audio player by @glenthemes ✻✻✻✻✻✻-->
  1773. <script src="//tmblr-npf-audio.gitlab.io/s/init.js"></script>
  1774. <link href="//tmblr-npf-audio.gitlab.io/s/base.css" rel="stylesheet">
  1775. <script>
  1776. tumblr_npf_audio({
  1777. emptyTitleText: "untitled track",
  1778. emptyArtistText: "untitled artist",
  1779. emptyAlbumText: "untitle album",
  1780.  
  1781. titleLabel: "track:",
  1782. artistLabel: "artist:",
  1783. albumLabel: "album:"
  1784. });
  1785. </script>
  1786. <style edit-npf-audio-player>
  1787. figcaption.audio-caption,
  1788. figcaption.audio-caption + audio[controls]{
  1789. display:none!important;
  1790. }
  1791. .npf-audio-wrapper {
  1792. --NPF-Audio-Buttons-Size: 1.4rem;
  1793. --NPF-Audio-Buttons-Color:var(--ColorPosts); /* color of play & pause buttons */
  1794. --NPF-Audio-Buttons-Spacing: 1.3rem; /* space between buttons and song info */
  1795. --NPF-Audio-Image-Size:85px;
  1796. --NPF-Audio-Image-Spacing:0px; /* gap between player info and cover image */
  1797. }
  1798.  
  1799. .npf-audio-background {
  1800. background:linear-gradient(to right, var(--ColorAccentOne), var(--ColorAccentTwo)); /* background color of player (optional) */
  1801. padding:1.5rem;
  1802. }
  1803.  
  1804. .npf-audio-title-label,
  1805. .npf-audio-artist-label,
  1806. .npf-audio-album-label {
  1807. font-weight:bold;
  1808. }
  1809.  
  1810. .npf-audio-title,
  1811. .npf-audio-artist,
  1812. .npf-audio-album {
  1813. color:var(--ColorPosts); /* color of audio text (optional) */
  1814. }
  1815. </style>
  1816.  
  1817.  
  1818. <!-- HEADER --->
  1819. <header>
  1820. <div class="headerleft">
  1821. <div class="headerimg"><img src="{PortraitURL-128}"></div>
  1822. <a class="headertitle" href="/"><b>{Title}</b><i>@{Name}</i></a>
  1823. </div>
  1824. <div class="headerright">
  1825. <a id="sidebarbutton" title="toggle sidebar"><i class="ti ti-layout-sidebar"></i></a>
  1826. <button id="theme-toggle" aria-label="toggle dark or light mode" type="button">
  1827. <span class="light-on" title="turn off the lights"><i class="ti ti-moon"></i></span>
  1828. <span class="light-off" title="turn on the lights"><i class="ti ti-sun-high"></i></span>
  1829. </button>
  1830. <a title="toggle controls" id="controlsbutton"><i class="ti ti-settings"></i></a>
  1831. </div>
  1832. </header>
  1833.  
  1834. <!-- main container -->
  1835. <main class="flex">
  1836.  
  1837. <!--- FIXED BUTTONS --->
  1838. <div class="fixedbuttons">
  1839. <a id="totop" title="back to top" href="#top" target="_self"><i class="ti ti-arrow-narrow-up"></i></a>
  1840. {block:ifUpdates}<a title="show updates" id="updatesbutton"><i class="ti ti-bell"></i></a><a title="hide updates" id="updatesclose"><i class="ti ti-bell-ringing"></i></a>{/block:ifUpdates}
  1841. <!--- CREDIT: DO NOT TOUCH --->
  1842. <a title="emerald theme by sage" class="credit" href="//phantomcodes.tumblr.com"><i class="ti ti-ghost-2"></i></a>
  1843.  
  1844. <!-- updates tab -->
  1845. {block:ifUpdates}<div class="updates">
  1846. <div class="updates-title"><b>updates</b></div>
  1847. <div class="updates-wrap">
  1848. <li><i class="ti ti-{text:Update Icon 1}"></i><span>{text:Update 1}</span></li>
  1849. {block:ifUpdate2}<li><i class="ti ti-{text:Update Icon 2}"></i><span>{text:Update 2}</span></li>{/block:ifUpdate2}
  1850. {block:ifUpdate3}<li><i class="ti ti-{text:Update Icon 3}"></i><span>{text:Update 3}</span></li>{/block:ifUpdate3}
  1851. {block:ifUpdate4}<li><i class="ti ti-{text:Update Icon 4}"></i><span>{text:Update 4}</span></li>{/block:ifUpdate4}
  1852. {block:ifUpdate5}<li><i class="ti ti-{text:Update Icon 5}"></i><span>{text:Update 5}</span></li>{/block:ifUpdate5}
  1853. {block:ifUpdate6}<li><i class="ti ti-{text:Update Icon 6}"></i><span>{text:Update 6}</span></li>{/block:ifUpdate6}
  1854. </div>
  1855. </div>{/block:ifUpdates}
  1856. </div>
  1857.  
  1858. <!--- LEFT SIDEBAR --->
  1859. <div id="leftsidebar">
  1860. <div class="sidebar-top">
  1861. <div class="sidebar-icon"><img src="{PortraitURL-128}"></div>
  1862. <a class="sidebartitle" href="/"><b>{text:Blog Title}</b>
  1863. <li><i class="ti ti-at"></i><span>{text:Blog Name}</span></li></a>
  1864. </div>
  1865. {block:ifSidebarImage}<div class="sidebar-img"><img src="{image:Sidebar}"></div>{/block:ifSidebarImage}
  1866. {block:ifCustomDescription}<div class="sidebar-desc">{text:Custom Description}</div>{/block:ifCustomDescription}
  1867. <nav>
  1868. <a title="home" href="/"><i class="ti ti-home"></i></a>
  1869. <a title="ask" href="/ask"><i class="ti ti-message"></i></a>
  1870. <a title="archive" href="/archive"><i class="ti ti-calendar-dot"></i></a>
  1871. {block:ifSidebarLink1}<a title="{text:Sidebar Link 1 Name}" href="{text:Sidebar Link 1}"><i class="ti ti-{text:Sidebar Link 1 Icon}"></i></a>{/block:ifSidebarLink1}
  1872. {block:ifSidebarLink2}<a title="{text:Sidebar Link 2 Name}" href="{text:Sidebar Link 2}"><i class="ti ti-{text:Sidebar Link 2 Icon}"></i></a>{/block:ifSidebarLink2}
  1873. {block:ifSidebarLink3}<a title="{text:Sidebar Link 3 Name}" href="{text:Sidebar Link 3}"><i class="ti ti-{text:Sidebar Link 3 Icon}"></i></a>{/block:ifSidebarLink3}
  1874. {block:ifSidebarLink4}<a title="{text:Sidebar Link 4 Name}" href="{text:Sidebar Link 4}"><i class="ti ti-{text:Sidebar Link 4 Icon}"></i></a>{/block:ifSidebarLink4}
  1875. </nav>
  1876. </div>
  1877.  
  1878. <!--- RIGHT SIDEBAR --->
  1879. {block:ifRightSidebar}
  1880. <div id="rightsidebar">
  1881. <div class="sidebar-top">
  1882. <div class="sidebar-icon"><img src="{PortraitURL-128}"></div>
  1883. <a class="sidebartitle" href="/"><b>{text:Blog Title}</b>
  1884. <li><i class="ti ti-at"></i><span>{text:Blog Name}</span></li></a>
  1885. </div>
  1886. {block:ifSidebarImage}<div class="sidebar-img"><img src="{image:Sidebar}"></div>{/block:ifSidebarImage}
  1887. {block:ifCustomDescription}<div class="sidebar-desc">{text:Custom Description}</div>{/block:ifCustomDescription}
  1888. <nav>
  1889. <a title="home" href="/"><i class="ti ti-home"></i></a>
  1890. <a title="ask" href="/ask"><i class="ti ti-message"></i></a>
  1891. <a title="archive" href="/archive"><i class="ti ti-calendar-dot"></i></a>
  1892. {block:ifSidebarLink1}<a title="{text:Sidebar Link 1 Name}" href="{text:Sidebar Link 1}"><i class="ti ti-{text:Sidebar Link 1 Icon}"></i></a>{/block:ifSidebarLink1}
  1893. {block:ifSidebarLink2}<a title="{text:Sidebar Link 2 Name}" href="{text:Sidebar Link 2}"><i class="ti ti-{text:Sidebar Link 2 Icon}"></i></a>{/block:ifSidebarLink2}
  1894. {block:ifSidebarLink3}<a title="{text:Sidebar Link 3 Name}" href="{text:Sidebar Link 3}"><i class="ti ti-{text:Sidebar Link 3 Icon}"></i></a>{/block:ifSidebarLink3}
  1895. {block:ifSidebarLink4}<a title="{text:Sidebar Link 4 Name}" href="{text:Sidebar Link 4}"><i class="ti ti-{text:Sidebar Link 4 Icon}"></i></a>{/block:ifSidebarLink4}
  1896. </nav>
  1897. </div>
  1898. {/block:ifRightSidebar}
  1899.  
  1900. <!-- posts -->
  1901. <section>
  1902.  
  1903. <!--- TAG AND DAY PAGES --->
  1904. {block:TagPage}
  1905. <article class="tdpage">
  1906. <div class="tdpage-icon"><i class="ti ti-tag-starred"></i></div>
  1907. <div class="tdpage-text">showing <b>{tagresultcount}</b> posts tagged <span>#{Tag}</span></div>
  1908. </article>
  1909. {/block:TagPage}
  1910.  
  1911. {block:DayPage}
  1912. <article class="tdpage">
  1913. <div class="tdpage-icon"><i class="ti ti-calendar"></i></div>
  1914. <div class="tdpage-text">showing posts made on <span>{Month} {DayOfMonth}{DayofMonthSuffix}, {Year}</span></div>
  1915. </article>
  1916. {/block:DayPage}
  1917.  
  1918. {block:Posts}
  1919. <article id="post-{PostID}" class="{posttype}-post posts">
  1920. <div class="article-wrap">
  1921. {block:Date}
  1922. <div class="topinfo"><!-- top post info -->
  1923. <div class="topinfoleft">
  1924. {block:NotReblog}
  1925. <div class="til-img"><img src="{PortraitURL-128}"></div>
  1926. <div class="til-name">
  1927. <div class="til-top"><a href="{Permalink}">{text:Blog Name}</a></div>
  1928. <div class="til-low"><span class="time-ago">{TimeStamp}</span>{block:PinnedPostLabel}<b>•</b><i class="ti ti-pin"></i><span>pinned</span>{/block:PinnedPostLabel}</div>
  1929. </div>
  1930. {/block:NotReblog}
  1931. {block:RebloggedFrom}
  1932. <div class="til-img"><img src="{ReblogRootPortraitURL-128}"></div>
  1933. <div class="til-name">
  1934. <div class="til-top"><a target="_blank" href="{ReblogRootURL}">{ReblogRootName}</a><i class="ti ti-repeat"></i><a title="reblogged from" class="rbvia" href="{ReblogParentURL}">{ReblogParentName}</a>
  1935. </div>
  1936. <div class="til-low"><span class="time-ago">{TimeStamp}</span>{block:PinnedPostLabel}<b>•</b><i class="ti ti-pin"></i><span>pinned</span>{/block:PinnedPostLabel}</div>
  1937. </div>
  1938. {/block:RebloggedFrom}
  1939. </div>
  1940. <div class="topinforight">
  1941. <a title="more info" class="morebutton"><i class="ti ti-dots-vertical"></i></a>
  1942. <div class="moreinfo">
  1943. <a href="/day/{Year}/{MonthNumberWithZero}/{dayofmonthwithzero}">{ShortMonth} {DayofMonth}{DayofMonthSuffix} {Year}</a>
  1944. <a href="{Permalink}">permalink</a>
  1945. <a id="copybutton" data-clipboard-text="{Permalink}">copy link</a>
  1946. </div>
  1947. </div>
  1948. </div><!-- top post info ends -->
  1949. {/block:Date}
  1950. {block:Photo}
  1951. <div class="legacy-photo"><img src="{PhotoURL-HighRes}" alt="{photoalt}" class="photos"></div>
  1952. {/block:Photo}
  1953.  
  1954. {block:Photoset}
  1955. <div class="legacy-photoset">{Photoset}</div>
  1956. {/block:Photoset}
  1957.  
  1958. {block:Panorama}
  1959. <div class="legacy-photo"><img src="{photourl-panorama}" alt="{photoalt}"></div>
  1960. {/block:Panorama}
  1961.  
  1962. {block:Quote}<!-- quote posts -->
  1963. <div class="quote">
  1964. "{Quote}"
  1965. </div>
  1966. <div class="source">
  1967. -{Source}
  1968. </div>
  1969. {/block:Quote}
  1970.  
  1971. {block:Chat}<!-- chat posts -->
  1972. <div class="chat">
  1973. {block:Lines}
  1974. <li>
  1975. {block:Label}<b>{Label}</b>{/block:Label}
  1976. <span>{Line}</span>
  1977. </li>
  1978. {/block:Lines}
  1979. </div>
  1980. {/block:Chat}
  1981. {block:link}<!-- link posts -->
  1982. <div class="npf-link-block">
  1983. <a href="{URL}">
  1984. {Name}
  1985. </a>
  1986. </div>
  1987. {/block:link}
  1988. {block:Video}<!-- video posts -->
  1989. {Video-500}
  1990. {/block:Video}
  1991. {block:Audio}<!-- audio posts -->
  1992. <div class="audiopost">
  1993. {audioembed}
  1994. </div>
  1995. {/block:Audio}
  1996. {block:Answer}<!-- answer posts -->
  1997. <div class="question">
  1998. <div class="qheader"><i class="ti ti-mail-question"></i><li><b>{Asker}</b> sent:</li></div>
  1999. <div class="qcont">{Question}</div>
  2000. </div>
  2001. {block:Answerer}
  2002. <div class="answer">
  2003. <b>{Answerer}</b> answered: {Answer}
  2004. </div>
  2005. {/block:Answerer}
  2006. {block:NotReblog}
  2007. <div class="replies">
  2008. {Replies}
  2009. </div>
  2010. {/block:NotReblog}
  2011. {/block:Answer}
  2012. <div class="caption {block:notreblog} original-post {/block:notreblog}">
  2013. {block:Text}
  2014. {block:Title}<h2>{Title}</h2>{/block:Title}
  2015. {/block:Text}
  2016. {block:notreblog}
  2017. {block:caption}{Caption}{/block:caption}
  2018. {block:Text}{body}{/block:Text}
  2019. {/block:notreblog}
  2020. {block:Rebloggedfrom}
  2021. {block:Reblogs}
  2022. <div class="reblogs">
  2023. <div class="reblog-header {block:IsOriginalEntry}original{/block:IsOriginalEntry} flex align-center">
  2024. <a href="{permalink}" target="_blank"><img src="{PortraitURL-64}" alt="{username}'s avatar"></a>
  2025. <a href="{permalink}" target="_blank" {block:isdeactivated}class="inactive"{/block:isdeactivated}>
  2026. {username}
  2027. </a>
  2028. </div>
  2029. <div class="reblog-content">
  2030. {Body}
  2031. </div>
  2032. </div>
  2033. {/block:Reblogs}
  2034. {/block:RebloggedFrom}
  2035. </div>
  2036. {block:Date}<!-- BOTTOM POST INFO --->
  2037. <div class="bottompostinfo">
  2038. <div class="bottominfoleft">
  2039. {block:NoteCount}<a class="notecount" href="{Permalink}"><i class="ti ti-note"></i><b>{NoteCountWithLabel}</b></a>{/block:NoteCount}
  2040. </div>
  2041. <div class="bottominforight">
  2042. <!-- tagsbutton -->
  2043. {block:HasTags}<a class="{select:tags}button" title="tags"><i class="ti ti-tag"></i></a>{/block:HasTags}
  2044. <a title="like" class="like-button" href="#">{LikeButton}<span class="actual-button"><i class="ti ti-heart-filled"></i></span></a>
  2045. <a title="reblog" class="reblog-btn" href="{ReblogURL}" target="_blank"><i class="ti ti-repeat"></i></a>
  2046. </div>
  2047. </div>
  2048. {/block:Date}
  2049. </div><!-- bottom post info ends -->
  2050. </div>
  2051. <!--- TAGS --->
  2052. {block:HasTags}
  2053. <div class="{select:Tags}">
  2054. {block:Tags}<a href="{TagURL}"><span>#</span>{Tag}</a>{/block:Tags}
  2055. </div>
  2056. {/block:HasTags}
  2057.  
  2058. {PostNotes}
  2059. </article><!--- POSTS END --->
  2060. {/block:Posts}
  2061.  
  2062. <!-- PAGINATION -->
  2063. {block:Pagination}<article class="pagination">
  2064. {block:PreviousPage}
  2065. <a title="previous page" class="pg-prev" href="{PreviousPage}"><i class="ti ti-arrow-narrow-left"></i></a>
  2066. {/block:PreviousPage}
  2067. <a class="pg-prev" id="nobtn" {block:PreviousPage}style="display:none;"{/block:PreviousPage}><i class="ti ti-arrow-narrow-left"></i></a>
  2068. <span>page <b>{CurrentPage}</b> of {TotalPages}</span>
  2069. <a class="pg-next" id="nobtn" {block:NextPage}style="display:none;"{/block:NextPage}><i class="ti ti-arrow-narrow-right"></i></a>
  2070. {block:NextPage}
  2071. <a title="next page" class="pg-next" href="{NextPage}"><i class="ti ti-arrow-narrow-right"></i></a>
  2072. {/block:NextPage}
  2073. </article>{/block:Pagination}
  2074. </section>
  2075. </main>
  2076. </body>
  2077.  
  2078. <script>
  2079.  
  2080. /// photoset
  2081. $(document).ready(function(){
  2082. $('.photo-slideshow').pxuPhotoset({
  2083. lightbox: true,
  2084. rounded: '',
  2085. gutter: '4px',
  2086. borderRadius: '',
  2087. photoset: '.photo-slideshow',
  2088. photoWrap: '.photo-data',
  2089. photo: '.pxu-photo'
  2090. });
  2091. });
  2092.  
  2093. // tooltips
  2094. tippy('[title]', {
  2095. theme: 'custom',
  2096. arrow: true,
  2097. followCursor: true,
  2098. delay: 100,
  2099. placement: 'top',
  2100. offset: "0, 20",
  2101. zIndex: 9999999999,
  2102. maxWidth: 400,
  2103.  
  2104. content(reference) {
  2105. const title = reference.getAttribute('title');
  2106. reference.removeAttribute('title');
  2107. return title;
  2108. },
  2109. });
  2110.  
  2111. // notes
  2112. $('article').find('.notecount').each(function(){
  2113. var n = $(this).html().split(' ')[0].replace(/,/g, '');
  2114. if (n > 999 & n < 999999) {
  2115. n = Math.floor(n / 100) / 10;
  2116. $(this).text(n + 'k notes');
  2117. }
  2118. if (n > 999999) {
  2119. n = Math.floor(n / 10000) / 100;
  2120. $(this).text(n + 'm notes');
  2121. }
  2122. });
  2123.  
  2124. // videos
  2125. $(document).ready(function() {
  2126. flexibleFrames($(".video")); // $(".video") is the class selector passed in the argument
  2127. });
  2128.  
  2129. // toggle tags
  2130. $(document).ready(function(){
  2131. $('.clicktags').hide();
  2132. $('.clicktagsbutton').click(function() {
  2133. $(this).closest('article').find('.clicktags').slideToggle(0);
  2134. $(this).toggleClass('tags-click');
  2135. return false;
  2136. });
  2137. });
  2138.  
  2139. // more info popup
  2140. $(document).ready(function(){
  2141. $('.moreinfo').hide();
  2142. $('.morebutton').click(function() {
  2143. $('morebutton').toggleClass('more-click');
  2144. $(this).closest('article').find('.moreinfo').slideToggle(0);
  2145. $(this).toggleClass('more-click');
  2146. return false;
  2147. });
  2148. });
  2149.  
  2150. // tumblr controls
  2151. $(document).ready(function(){
  2152. $('a#controlsbutton').click(function(){
  2153. $('body').toggleClass('controls-click');
  2154. });
  2155. });
  2156.  
  2157. // sidebar popup
  2158. $(document).ready(function(){
  2159. $('a#sidebarbutton').click(function(){
  2160. $('body').toggleClass('sidebar-click');
  2161. });
  2162. });
  2163.  
  2164. // updates tab
  2165. $(document).ready(function(){
  2166. $('a#updatesbutton').click(function(){
  2167. $(this).css('display', 'none');
  2168. $('a#updatesclose').css('display', 'flex');
  2169. $('.updates').fadeIn(500);
  2170. $('.updates').css('display', 'flex');
  2171. });
  2172.  
  2173. $('a#updatesclose').click(function() {
  2174. $(this).css('display', 'none');
  2175. $('a#updatesbutton').css('display', 'flex');
  2176. $('.updates').fadeOut(400);
  2177. });
  2178. });
  2179.  
  2180. // scroll to top
  2181. $(document).ready(function(){
  2182. $('a#totop').click(function(){
  2183. $('html, body').animate({scrollTop : 0},800);
  2184. return false;
  2185. });
  2186. });
  2187.  
  2188. var mybutton = document.getElementById("totop");
  2189. window.onscroll = function() {scrollFunction()};
  2190.  
  2191. function scrollFunction() {
  2192. if (document.body.scrollTop > 200 || document.documentElement.scrollTop > 200) {
  2193. mybutton.style.display = "flex";
  2194. } else {
  2195. mybutton.style.display = "none";
  2196. }
  2197. }
  2198.  
  2199. // day/night mode
  2200. const toggle = document.getElementById("theme-toggle");
  2201.  
  2202. toggle.onclick = function () {
  2203. // add class to html and make transition snappy
  2204. document.documentElement.classList.add("theme-transition");
  2205. // alright lets retrive the info from data-theme
  2206. let currentTheme = document.documentElement.getAttribute("data-theme");
  2207. // if it's dark already, let's go into the light
  2208. let targetTheme = "light";
  2209. // but if it is light let's toggle dark mode
  2210. if (currentTheme === "light") {
  2211. targetTheme = "dark";
  2212. }
  2213. // ok now that theme has been toggled, get rid of snappy transition
  2214. window.setTimeout(function () {
  2215. document.documentElement.classList.remove("theme-transition");
  2216. }, 50);
  2217. // we're going to save our theme preference now
  2218. document.documentElement.setAttribute("data-theme", targetTheme);
  2219. localStorage.setItem("theme", targetTheme);
  2220. };
  2221.  
  2222. // remove empty p tags
  2223. for (const p of document.querySelectorAll('p')) {
  2224. if (p.innerHTML.trim() === '') {
  2225. p.remove()
  2226. }
  2227. }
  2228. // create posts array
  2229. let posts = []
  2230. {block:Posts}
  2231. posts.push({ npf: JSON.parse({JSNPF}), id: {JSPostId}})
  2232. {/block:Posts}
  2233.  
  2234. //function for updating post types
  2235. function updateTypes(type, article) {
  2236. article.classList.remove('text-post')
  2237. article.classList.add(`${ type }-post`, 'npf-post')
  2238. }
  2239.  
  2240. // loop through array to get each post
  2241. for (const post of posts) {
  2242. let npf = post.npf
  2243. let article = document.getElementById(`post-${post.id}`)
  2244. // select captions that have something in them
  2245. let caption = article.querySelector('.caption:is(:not(:empty))')
  2246. if (caption != null && article.classList.contains('text-post')) {
  2247. // if content exists
  2248. if (npf.trail.length || npf.content.length) {
  2249. // assign various post types based on NPF data
  2250. switch (npf.trail[0]?.content[0]?.type ?? npf.content[0].type) {
  2251. case 'image':
  2252. updateTypes('photos', article)
  2253. if (article.querySelector('.npf_row') == null) {
  2254. caption.prepend(article.querySelector('figure'))
  2255. }
  2256. break
  2257. case 'video':
  2258. updateTypes('video', article)
  2259. let video = article.querySelector('figure')
  2260. caption.prepend(video)
  2261. break
  2262. case 'link':
  2263. updateTypes('link', article)
  2264. case 'audio':
  2265. updateTypes('audio', article)
  2266. break
  2267. case 'quote':
  2268. updateTypes('quote', article)
  2269. }
  2270.  
  2271. // if there are photos
  2272. if (article.classList.contains('photos-post')) {
  2273. let photoset = document.createElement('div')
  2274. photoset.classList.add('npf-photos')
  2275. caption.prepend(photoset)
  2276. // find where a photoset would be split up by another content block
  2277. let photoBreak = article.querySelector('.reblog-content p, .reblog-content h1, .reblog-content h2')
  2278. let elements = []
  2279. if (photoBreak) {
  2280. let prevElement = photoBreak.parentNode.firstElementChild
  2281. while (prevElement !== photoBreak) {
  2282. elements.push(prevElement)
  2283. prevElement = prevElement.nextElementSibling
  2284. }
  2285. }
  2286. // if there is nothing that breaks up the photoset, select all rows
  2287. else {
  2288. elements = article.querySelectorAll('.npf_row')
  2289. }
  2290. // move each row to the top
  2291. for (const el of elements) {
  2292. photoset.append(el)
  2293. }
  2294. if (article.querySelectorAll('.npf_row').length > 1) {
  2295. updateTypes('photoset', article)
  2296. }
  2297. else {
  2298. updateTypes('photo', article)
  2299. }
  2300. }
  2301.  
  2302. // clean up any potential stray reblog headers
  2303. let reblogHeader = article.querySelector('.reblog-header')
  2304. let reblogContent = article.querySelector('.reblog-content')
  2305. if (reblogHeader?.nextElementSibling === reblogContent && reblogContent?.childElementCount === 0) {
  2306. reblogHeader.remove()
  2307. reblogContent.remove()
  2308. }
  2309. }
  2310. }
  2311. }
  2312.  
  2313. </script>
  2314. </html>
Advertisement
Add Comment
Please, Sign In to add comment