style.less 26 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411
  1. @import url("/fontawesome/css/all.min.css");
  2. @import url('https://fonts.googleapis.com/css?family=PT+Mono&display=swap');
  3. @import url('https://fonts.googleapis.com/css2?family=Ubuntu&display=swap');
  4. * {
  5. box-sizing: border-box;
  6. }
  7. :root {
  8. --foreground: #dfdfdf;
  9. --foreground2: #b8b8b8;
  10. --highlightFg: #ffbb00;
  11. --highlightFg2: #ffe292;
  12. --background: #222222;
  13. --background2: rgb(27, 27, 27);
  14. --background3: rgb(20, 20, 20);
  15. --background4: rgb(37, 37, 37);
  16. --twitter: #1DA1F2;
  17. --buttonColor: #2f2f2f;
  18. --buttonColorFg: var(--foreground);
  19. --docsColor: #0c5858;
  20. --docsColorFg: var(--foreground);
  21. --bugsColor: #680404;
  22. --bugsColorFg: var(--foreground);
  23. --codeColor: #6d003f;
  24. --codeColorFg: var(--foreground);
  25. --discordColor: #44013b;
  26. --discordColorFg: var(--foreground);
  27. --storeColor: #686602;
  28. --storeColorFg: var(--foreground);
  29. --donateColor: #8cc800;
  30. --donateColorFg: #212700;
  31. --itchColor: #b11f38;
  32. --itchColorFg: var(--foreground);
  33. --youtubeColor: #c4302b;
  34. --youtubeColorFg: var(--foreground);
  35. --twitterColor: #1475b1;
  36. --twitterColorFg: var(--foreground);
  37. --highlightedColor: #ffbb00;
  38. --highlightedColorFg: #242424;
  39. --textShadowColor: var(--background3);
  40. --boxShadowColor: var(--background2);
  41. }
  42. @borderRoundness: 0.3rem;
  43. @borderRoundnessVeryRound: 2rem;
  44. @borderRoundnessNotVeryRound: .1rem;
  45. @textShadow: 0.1rem;
  46. @textShadowIntense: 0.4rem;
  47. @portrait: ~"only screen and (max-width:1024px), only screen and (orientation:portrait)";
  48. @notPortrait: ~"only screen and (min-width : 1025px)";
  49. @boxShadowBlur: 0.8rem;
  50. @boxShadowSpread: 0.3rem;
  51. img {
  52. max-width: 100%;
  53. }
  54. p {
  55. display: block;
  56. margin-top: 0.4rem;
  57. margin-bottom: 0.4rem;
  58. }
  59. blockquote {
  60. display: flex;
  61. flex-direction: row;
  62. align-items: center;
  63. }
  64. blockquote>*:first-child:before {
  65. content: "\f100";
  66. font-family: 'font awesome 5 free';
  67. font-weight: 700;
  68. padding: 0.5rem;
  69. }
  70. blockquote>*:first-child:after {
  71. content: "\f101";
  72. font-family: 'font awesome 5 free';
  73. font-weight: 700;
  74. padding: 0.5rem;
  75. }
  76. progress#pageLoadingProgress {
  77. position: fixed;
  78. top: 0;
  79. left: 0;
  80. width: 100%;
  81. z-index: 999;
  82. height: .6vh
  83. }
  84. progress#pageLoadingProgress[value],
  85. progress#pageLoadingProgress::-webkit-progress-bar {
  86. -webkit-appearance: none;
  87. appearance: none;
  88. -moz-appearance: none;
  89. background: var(--background2);
  90. border: none
  91. }
  92. progress#pageLoadingProgress::-webkit-progress-value,
  93. progress#pageLoadingProgress::-moz-progress-bar {
  94. background: var(--highlightFg);
  95. }
  96. // ### GENERIC STUFF
  97. html {
  98. height: 100%;
  99. width: 100%;
  100. position: absolute;
  101. top: 0;
  102. left: 0;
  103. }
  104. pre {
  105. padding: 1rem;
  106. }
  107. pre,
  108. code {
  109. position: relative;
  110. border-radius: @borderRoundness;
  111. overflow: auto !important;
  112. font-family: "PT Mono";
  113. }
  114. .hljs-ln-numbers {
  115. -webkit-touch-callout: none;
  116. -webkit-user-select: none;
  117. -khtml-user-select: none;
  118. -moz-user-select: none;
  119. -ms-user-select: none;
  120. user-select: none;
  121. text-align: right;
  122. color: var(--highlightFg);
  123. vertical-align: top;
  124. }
  125. .hljs-ln tr:nth-child(odd) {
  126. background-color: var(--background2);
  127. }
  128. .hljs-ln-code {
  129. padding-left: 1rem !important;
  130. }
  131. // Normalize ul,li
  132. ul {
  133. padding: 0.5rem;
  134. }
  135. ul,
  136. li {
  137. text-decoration: none;
  138. appearance: none;
  139. list-style-type: none;
  140. padding-left: 0.5rem;
  141. margin: 0;
  142. }
  143. li {
  144. margin-top: 0.1rem;
  145. p {
  146. display: inline;
  147. }
  148. }
  149. nav ul,
  150. nav li {
  151. text-align: left;
  152. all: unset;
  153. display: flex;
  154. white-space: nowrap;
  155. }
  156. nav ul {
  157. margin-top: 0.5rem;
  158. }
  159. nav li:before {
  160. display: none;
  161. }
  162. .shadowed {
  163. box-shadow: 0 0 @boxShadowBlur @boxShadowSpread var(--boxShadowColor);
  164. }
  165. .textShadowed {
  166. text-shadow:
  167. 0 0 @textShadow var(--textShadowColor),
  168. 0 0 @textShadow var(--textShadowColor),
  169. 0 0 @textShadow var(--textShadowColor),
  170. 0 0 @textShadow var(--textShadowColor),
  171. 0 0 @textShadow var(--textShadowColor),
  172. 0 0 @textShadow var(--textShadowColor),
  173. 0 0 @textShadow var(--textShadowColor),
  174. 0 0 @textShadow var(--textShadowColor),
  175. 0 0 @textShadow var(--textShadowColor);
  176. }
  177. .textShadowedIntense {
  178. text-shadow:
  179. 0 0 (@textShadowIntense/2) var(--textShadowColor),
  180. 0 0 (@textShadowIntense/2) var(--textShadowColor),
  181. 0 0 (@textShadowIntense/2) var(--textShadowColor),
  182. 0 0 @textShadowIntense var(--textShadowColor),
  183. 0 0 (@textShadowIntense*2) var(--textShadowColor),
  184. 0 0 (@textShadowIntense*2) var(--textShadowColor),
  185. 0 0 (@textShadowIntense*4) var(--textShadowColor),
  186. 0 0 (@textShadowIntense*4) var(--textShadowColor),
  187. 0 0 (@textShadowIntense/4) var(--foreground),
  188. 0 0 (@textShadowIntense/4) var(--foreground),
  189. 0 0 (@textShadowIntense/4) var(--foreground),
  190. 0 0 (@textShadowIntense/4) var(--foreground);
  191. }
  192. #topmenu {
  193. background-color: var(--background);
  194. display: flex;
  195. flex-wrap: nowrap;
  196. flex-direction: row;
  197. border-bottom-left-radius: @borderRoundness;
  198. border-bottom-right-radius: @borderRoundness;
  199. padding: 0.2rem;
  200. padding-left: 1rem;
  201. padding-right: 1rem;
  202. @media @portrait {
  203. flex-wrap: wrap;
  204. }
  205. a {
  206. text-decoration: none !important;
  207. }
  208. >div {
  209. display: flex;
  210. align-items: center;
  211. flex-direction: row;
  212. flex-wrap: wrap;
  213. justify-content: space-around;
  214. margin-right: 0.3rem;
  215. }
  216. >div:last-child {
  217. margin-right: 0;
  218. >div {
  219. margin-left: 0.3rem;
  220. }
  221. @media @portrait {
  222. margin: auto;
  223. }
  224. }
  225. >div:first-child {
  226. // The first ul is on the left
  227. margin-right: auto;
  228. margin-left: 0;
  229. @media @portrait {
  230. margin: auto;
  231. }
  232. @media @portrait {
  233. // button {
  234. // width: 100%;
  235. // }
  236. }
  237. }
  238. >div{
  239. &.expandedOnPortrait {
  240. @media @portrait {
  241. flex-direction: column;
  242. align-items: stretch;
  243. button{
  244. margin:0!important;
  245. margin-top:0.3rem!important;
  246. min-width:8rem;
  247. text-align: left!important;
  248. }
  249. flex-direction: column;
  250. align-items: stretch;
  251. }
  252. }
  253. }
  254. }
  255. .commonButton {
  256. all: unset;
  257. appearance: none;
  258. background-color: var(--background2) !important;
  259. border: 0.1rem solid var(--background3) !important;
  260. border-radius: @borderRoundness;
  261. color: var(--highlightFg);
  262. padding: 0.3rem;
  263. padding-left: 1rem;
  264. padding-right: 1rem;
  265. text-decoration: none;
  266. margin: 0.3rem;
  267. display: inline-block;
  268. padding: 0.6rem;
  269. padding-left: 1rem;
  270. padding-right: 1rem;
  271. cursor: pointer;
  272. text-shadow: none;
  273. font-weight: bolder !important;
  274. .genericCl();
  275. a {
  276. text-decoration: none !important;
  277. }
  278. .shadowed();
  279. }
  280. button {
  281. .commonButton();
  282. }
  283. button:hover {
  284. filter: brightness(130%);
  285. }
  286. @keyframes buttonIconExpand {
  287. 0% {}
  288. 100% {
  289. position: initial;
  290. }
  291. }
  292. @keyframes buttonIconExpandR {
  293. 0% {}
  294. 100% {}
  295. }
  296. .clickableIcon {
  297. i {
  298. margin: 0 !important;
  299. padding: 0 !important;
  300. display: inline-block;
  301. margin-right: -0.25rem !important;
  302. transition: margin 0.6s linear;
  303. }
  304. >span {
  305. opacity: 0;
  306. letter-spacing: -0.9rem;
  307. font-size: 0px;
  308. margin: 0;
  309. padding: 0;
  310. @media @notPortrait {
  311. transition: letter-spacing .8s linear, opacity .3s linear 0.6s, font-size 0.3s linear;
  312. }
  313. }
  314. @media @notPortrait {
  315. &.hover,
  316. &:hover {
  317. i {
  318. margin: 0 !important;
  319. }
  320. >span {
  321. font-size: inherit;
  322. letter-spacing: 0px;
  323. opacity: 1;
  324. }
  325. }
  326. }
  327. &.expandedOnPortrait {
  328. @media @portrait {
  329. i {
  330. margin: 0 !important;
  331. }
  332. >span {
  333. font-size: inherit;
  334. letter-spacing: 0px;
  335. opacity: 1;
  336. }
  337. }
  338. }
  339. padding:0.5rem;
  340. padding-left:0.7rem;
  341. padding-right:0.7rem;
  342. min-width:1.8rem;
  343. text-align: center;
  344. font-size: 1.2rem;
  345. }
  346. button.icon {
  347. .clickableIcon();
  348. }
  349. @media @portrait {
  350. button.responsiveIcon {
  351. i {
  352. margin: 0 !important;
  353. padding: 0 !important;
  354. display: inline-block;
  355. margin-right: -0.25rem !important;
  356. }
  357. >span {
  358. opacity: 0;
  359. letter-spacing: -0.9rem;
  360. font-size: 0px;
  361. margin: 0;
  362. padding: 0;
  363. }
  364. &.expandedOnPortrait {
  365. i {
  366. margin: 0 !important;
  367. }
  368. >span {
  369. font-size: inherit;
  370. letter-spacing: 0px;
  371. opacity: 1;
  372. }
  373. }
  374. padding:0.5rem;
  375. padding-left:0.7rem;
  376. padding-right:0.7rem;
  377. min-width:1.8rem;
  378. text-align: center;
  379. font-size: 1.2rem;
  380. }
  381. }
  382. nav {
  383. display: flex;
  384. flex-wrap: wrap;
  385. flex-direction: column;
  386. ul {
  387. display: flex;
  388. flex-direction: column;
  389. }
  390. }
  391. a,
  392. a:hover,
  393. a:visited {
  394. color: inherit;
  395. text-decoration: inherit;
  396. color: var(--highlightFg);
  397. }
  398. a:hover {
  399. text-decoration: underline;
  400. }
  401. h1 a,
  402. h2 a,
  403. h1 a:visited,
  404. h2 a:visited,
  405. h1 a:hover,
  406. h2 a:hover,
  407. header a,
  408. header a:hover,
  409. header a:visited {
  410. color: inherit;
  411. }
  412. h1 {
  413. position: relative;
  414. }
  415. h1 {
  416. font-size: 2rem;
  417. }
  418. h2 {
  419. font-size: 1.5rem;
  420. }
  421. h3 {
  422. font-size: 1.2rem;
  423. }
  424. h2,
  425. h1,
  426. h3 {
  427. margin: 0;
  428. padding: 0;
  429. margin-bottom: 1rem;
  430. color: var(--highlightFg);
  431. }
  432. h2,
  433. h3 {
  434. margin-top: 0.1rem;
  435. margin-bottom: 0.1rem;
  436. }
  437. .toggleNavOnPortraitButton {
  438. font-size: 2rem;
  439. display: none;
  440. color: var(--highlightFg);
  441. cursor: pointer;
  442. &:hover {
  443. color: var(--highlightFg2);
  444. }
  445. @media @portrait {
  446. display: block;
  447. }
  448. }
  449. // Useless things are hidden inportrait mode.
  450. @media @portrait {
  451. .useless {
  452. display: none;
  453. }
  454. }
  455. .toggleable.toggledOn {}
  456. .toggleable.toggledOff {
  457. display: none !important;
  458. }
  459. .toggleable.toggledOnPortrait {
  460. @media @portrait {
  461. .toggleable.toggledOn();
  462. }
  463. }
  464. .toggleable.toggledOffPortrait {
  465. @media @portrait {
  466. .toggleable.toggledOff();
  467. }
  468. }
  469. // Give padding to all the icons (from font awesome)
  470. *>i.fas:first-child,
  471. *>i.fab:first-child {
  472. // This is the icon
  473. padding-right: .2rem;
  474. }
  475. // #####
  476. .genericCl {
  477. background: var(--buttonColor) !important;
  478. color: var(--buttonColorFg) !important;
  479. font-weight: bold;
  480. }
  481. .highlightedCl {
  482. .genericCl();
  483. background: var(--highlightedColor) !important;
  484. color: var(--highlightedColorFg) !important;
  485. }
  486. .donateCl {
  487. .genericCl();
  488. background: var(--donateColor) !important;
  489. color: var(--donateColorFg) !important;
  490. }
  491. .docsCl {
  492. .genericCl();
  493. background: var(--docsColor) !important;
  494. color: var(--docsColorFg) !important;
  495. }
  496. .bugsCl {
  497. .genericCl();
  498. background: var(--bugsColor) !important;
  499. color: var(--bugsColorFg) !important;
  500. }
  501. .codeCl {
  502. .genericCl();
  503. background: var(--codeColor) !important;
  504. color: var(--codeColorFg) !important;
  505. }
  506. .discordCl {
  507. .genericCl();
  508. background: var(--discordColor) !important;
  509. color: var(--discordColorFg) !important;
  510. }
  511. .storeCl {
  512. .genericCl();
  513. background: var(--storeColor) !important;
  514. color: var(--storeColorFg) !important;
  515. }
  516. .twitterCl {
  517. .genericCl();
  518. background: var(--twitterColor) !important;
  519. color: var(--twitterColorFg) !important;
  520. }
  521. .youtubeCl {
  522. .genericCl();
  523. background: var(--youtubeColor) !important;
  524. color: var(--youtubeColorFg) !important;
  525. }
  526. .itchCl {
  527. .genericCl();
  528. background: var(--itchColor) !important;
  529. color: var(--itchColorFg) !important;
  530. }
  531. figure.githubUser {
  532. display: flex;
  533. flex-direction: row;
  534. text-align: left;
  535. align-items: center;
  536. padding: 0;
  537. margin: 2rem;
  538. >* {
  539. padding: 0;
  540. margin: 0;
  541. }
  542. >img {
  543. box-shadow: 0 0 0.2rem 0.01rem var(--highlightFg);
  544. border-radius: 8rem;
  545. max-height: 6rem;
  546. }
  547. >figcaption {
  548. margin-left: 1rem;
  549. >h2 {
  550. padding: 0;
  551. margin: 0;
  552. }
  553. display:flex;
  554. flex-direction: column;
  555. }
  556. &.inline {
  557. margin: 0;
  558. >img {
  559. max-height: 3rem;
  560. }
  561. h2 {
  562. font-size: 1.2rem;
  563. }
  564. .ghbio {
  565. display: none !important;
  566. }
  567. margin-top:2rem;
  568. margin-bottom:.5rem;
  569. padding-bottom:1rem;
  570. border-bottom: 0.1rem solid var(--highlightFg);
  571. >figcaption {}
  572. }
  573. }
  574. body {
  575. text-align: left;
  576. overflow-x: hidden;
  577. font-family: 'Ubuntu', sans-serif; // font-family: 'JetBrains Mono', monospace;
  578. // font-family: 'Padauk', sans-serif;
  579. background: var(--background) !important;
  580. color: var(--foreground) !important;
  581. min-height: 100%;
  582. width: 100%;
  583. position: relative;
  584. margin: 0;
  585. padding: 0;
  586. display: flex;
  587. flex-direction: column;
  588. align-items: center;
  589. font-size: .8706rem;
  590. word-wrap: break-word;
  591. white-space: normal;
  592. .textShadowed();
  593. // The main footer
  594. >footer {
  595. margin-top: 4rem; // Makes the page nicer by preventing it from abruptly end at the end of the content.
  596. text-align: center;
  597. font-size:0.8rem;
  598. color:var(--foreground2);
  599. margin-bottom:1rem;
  600. }
  601. >main {
  602. // The main is the main content
  603. font-size: 1rem;
  604. width: 100%;
  605. // Those are unbound headers right under the main.
  606. >h1 {
  607. text-align: center;
  608. margin: auto;
  609. max-width: 600px;
  610. padding-top: 1rem;
  611. padding-bottom: 1rem;
  612. margin-top: 0.5rem;
  613. &:before,
  614. &:after {
  615. content: "\f107";
  616. font-family: 'font awesome 5 free';
  617. font-weight: 700;
  618. padding: 0.5rem;
  619. }
  620. }
  621. }
  622. // The main header
  623. >header {
  624. position: relative;
  625. z-index: 99;
  626. display: flex;
  627. flex-direction: column;
  628. align-items: center;
  629. background-color: var(--background2);
  630. box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.25);
  631. width: 100%;
  632. margin: 0;
  633. padding: 0;
  634. #siteTitle {
  635. color: var(--highlightFg);
  636. display: flex;
  637. flex-direction: row;
  638. text-align: center;
  639. /* justify-items: center;
  640. justify-content: center; */
  641. align-items: center;
  642. margin: 0;
  643. padding: 0;
  644. padding-top: 0.4rem;
  645. padding-bottom: 0.5rem;
  646. }
  647. .smaller {
  648. #logo {
  649. display: flex;
  650. flex-direction: row;
  651. width: 100%;
  652. align-items: center;
  653. .toggleNavOnPortraitButton {
  654. margin-right: 1rem;
  655. margin-left: auto;
  656. }
  657. }
  658. flex-direction: column;
  659. >#siteTitle {
  660. flex-direction: column !important;
  661. text-align: left !important;
  662. align-items: flex-start !important;
  663. >#contributionsBanner {
  664. text-align: left!important;
  665. margin-left:0;
  666. padding-left:0.6rem;
  667. }
  668. }
  669. }
  670. @media @portrait {
  671. .smaller ()
  672. }
  673. &.floating{
  674. position:fixed;
  675. top:0;
  676. left:0;
  677. .smaller();
  678. #topmenu{
  679. display:none;
  680. }
  681. #contributionsBanner {
  682. display:none;
  683. }
  684. .toggleNavOnPortraitButton {
  685. display:block;
  686. }
  687. }
  688. }
  689. }
  690. // Something that links to more something
  691. .more {
  692. text-align: right;
  693. display: block;
  694. }
  695. // Cover, is something that fills an area to show an image/video
  696. .cover {
  697. width: 100%;
  698. height: 100%;
  699. background-color: rgba(0, 0, 0, 0.45);
  700. background-position: center;
  701. background-size: cover;
  702. position: absolute;
  703. top: 0;
  704. left: 0;
  705. z-index: -1;
  706. object-fit: cover;
  707. pointer-events: none;
  708. box-shadow: 0 0 0.3rem 0.04rem var(--background2);
  709. &.gallery {
  710. background-size: contain;
  711. background-repeat: no-repeat;
  712. pointer-events: auto;
  713. object-fit: contain;
  714. z-index: 0;
  715. }
  716. &.blur {
  717. filter: blur(100px);
  718. margin-top: 40vh;
  719. @media @portrait{
  720. display:none;
  721. }
  722. }
  723. }
  724. // A width that is not too wide.
  725. .responsiveWidth {
  726. max-width: 1200px;
  727. width: 99vw;
  728. margin-left: auto;
  729. margin-right: auto;
  730. }
  731. #backerMessages {
  732. text-align: center;
  733. width: 100%;
  734. }
  735. #contributionsBanner {
  736. text-align: left ;
  737. margin-left: auto;
  738. >div{
  739. margin-top:0.4rem;
  740. }
  741. }
  742. // A flex list
  743. .list {
  744. display: flex;
  745. flex-wrap: wrap;
  746. justify-content: center;
  747. >article {
  748. p {
  749. display: inline;
  750. }
  751. }
  752. &.hlist {
  753. flex-direction: row;
  754. >article {
  755. flex-basis: 30%;
  756. }
  757. }
  758. &.vlist {
  759. display: flex;
  760. flex-direction: column;
  761. }
  762. }
  763. .collapsedList {
  764. article {
  765. border-radius: 0;
  766. margin-top: 0;
  767. margin-bottom: 0;
  768. flex-basis: 100%;
  769. h1 {
  770. border-radius: 0;
  771. }
  772. &:last-child {
  773. margin-bottom: 1rem;
  774. border-bottom-left-radius: @borderRoundness;
  775. border-bottom-right-radius: @borderRoundness;
  776. }
  777. &:first-child {
  778. margin-top: 1rem;
  779. border-top-left-radius: @borderRoundness;
  780. border-top-right-radius: @borderRoundness;
  781. h1 {
  782. border-top-left-radius: @borderRoundness;
  783. border-top-right-radius: @borderRoundness;
  784. }
  785. }
  786. }
  787. }
  788. main>section {
  789. text-align: center;
  790. margin: auto;
  791. }
  792. // This is a section, of the page
  793. section {
  794. display: block;
  795. position: relative;
  796. text-align: left;
  797. margin-bottom: 1rem;
  798. margin-top: 1rem;
  799. // &.full {
  800. // display: flex;
  801. // flex-direction: column;
  802. // }
  803. >article {
  804. // An article, is the content.
  805. .shadowed();
  806. text-align: left;
  807. background: var(--background2);
  808. border-radius: @borderRoundness;
  809. margin: 1rem;
  810. display: flex;
  811. flex-direction: column;
  812. text-shadow: none;
  813. h1 {}
  814. h2,h3,h1{
  815. display:block;
  816. padding-top:1rem;
  817. }
  818. .more {
  819. text-align: left;
  820. }
  821. hr{
  822. margin-top:1rem!important;
  823. margin-bottom:1rem!important;
  824. }
  825. >h1:first-of-type {
  826. // This is the top bar in the article. The main title basically.
  827. border-radius: @borderRoundness;
  828. background: var(--background4);
  829. color: var(--foreground2);
  830. margin: 0;
  831. padding: 0;
  832. display: block;
  833. padding: 0.7rem;
  834. padding-left: 0.5rem;
  835. padding-right: 0.1rem;
  836. font-size: 1.3rem;
  837. width: 100%;
  838. border-bottom-left-radius: 0;
  839. border-bottom-right-radius: 0;
  840. }
  841. >div.content {
  842. padding: 1rem;
  843. display: flex;
  844. flex-direction: row;
  845. align-items: stretch;
  846. min-width: 0;
  847. width: 100%;
  848. a {
  849. word-break: break-all;
  850. word-break: break-word;
  851. }
  852. @media @portrait {
  853. display: flex;
  854. flex-direction: column;
  855. }
  856. ul{
  857. }
  858. li {
  859. // Adds little arrows before the li.
  860. list-style: none;
  861. &:before {
  862. content: "\f0da";
  863. font-family: 'Font Awesome 5 Free';
  864. font-style: normal;
  865. font-weight: 900;
  866. font-display: auto;
  867. margin-left:-0.8rem;
  868. padding-right: 0.5rem;
  869. }
  870. }
  871. p:first-of-type {
  872. // Remove margin from first p
  873. margin-top: 0 !important;
  874. padding-top: 0 !important;
  875. }
  876. >span {
  877. display: block;
  878. overflow-wrap: break-word;
  879. flex-grow: 1;
  880. width:100%;
  881. ul{
  882. margin-left:1rem;
  883. }
  884. }
  885. >nav {
  886. flex-grow: 0;
  887. margin-left: 2rem;
  888. flex-direction: column;
  889. align-items: baseline;
  890. flex-wrap: wrap;
  891. color: var(--highlightFg);
  892. >ul {
  893. width: 100%;
  894. }
  895. >ul li {
  896. width: 100%;
  897. // Special smaller ul
  898. background: none;
  899. border: none !important;
  900. margin: 0.1rem;
  901. margin-left: 0rem;
  902. font-size: 0.8rem;
  903. box-shadow: none;
  904. >* {
  905. margin-left: 1rem;
  906. }
  907. button {
  908. width: 100%;
  909. margin: 0;
  910. }
  911. }
  912. @media @portrait {
  913. ul li {
  914. // make nav in list section more compact
  915. margin: 0.1rem;
  916. padding: 0;
  917. width: auto;
  918. }
  919. >ul {
  920. margin-right: 0.4rem;
  921. width: auto;
  922. }
  923. }
  924. @media @portrait {
  925. margin-left: 0;
  926. flex-direction: row;
  927. }
  928. }
  929. }
  930. }
  931. &.list {
  932. >article {
  933. >div.content {
  934. // When the section is a list, we use a column layout. Helps keeping it compact
  935. display: flex;
  936. flex-direction: column;
  937. nav {
  938. flex-direction: row;
  939. }
  940. nav .share {
  941. // Share buttons are hidden in list section
  942. display: none !important;
  943. }
  944. ul {
  945. width: auto;
  946. li {
  947. width: auto;
  948. }
  949. }
  950. nav,
  951. nav ul li {
  952. // make nav in list section more compact
  953. margin: 0.1rem;
  954. padding: 0;
  955. }
  956. }
  957. }
  958. }
  959. }
  960. // Horizzontal lists are collapsed vertically in portrait mode.
  961. @media @portrait {
  962. section.hlist.responsive {
  963. .collapsedList();
  964. }
  965. }
  966. // This is a special section
  967. section#contribute {
  968. .collapsedList();
  969. }
  970. button#startbtn {
  971. font-size: 1.6rem;
  972. }
  973. button#featuresbtn{
  974. font-size: 1.2rem;
  975. }
  976. section#showcase {
  977. text-align: center;
  978. width: 100%;
  979. margin-top: 0;
  980. margin-bottom: 0;
  981. padding: 0;
  982. display: flex;
  983. position: relative;
  984. flex-direction: column;
  985. min-height: 40vh;
  986. background-image: url("data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000000' fill-opacity='0.42' fill-rule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E");
  987. // background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath fill='%23000000' fill-opacity='0.61' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'%3E%3C/path%3E%3C/svg%3E");
  988. &.gallery{
  989. background-image: none;
  990. }
  991. .textShadowedIntense();
  992. #playButton{
  993. position:absolute;
  994. top:0;
  995. left:0;
  996. pointer-events: none;
  997. width:100%;
  998. height:100%;
  999. z-index:90;
  1000. align-items: center;
  1001. font-size:4rem;
  1002. display:none;
  1003. justify-content: center;
  1004. }
  1005. #gameDescription {
  1006. text-align: right !important;
  1007. width: 50%;
  1008. font-size: 0.8rem;
  1009. margin-top: auto;
  1010. margin-right: 0 !important;
  1011. margin-left: auto;
  1012. height: auto;
  1013. display: block;
  1014. }
  1015. #gameDescription h2 {
  1016. text-align: left !important;
  1017. font-size: 0.9rem;
  1018. }
  1019. #engineDescription {
  1020. font-size: 1.3rem;
  1021. text-align: center;
  1022. width: 100%;
  1023. display: block;
  1024. }
  1025. #showCasePrev,
  1026. #showCaseNext {
  1027. display: block;
  1028. cursor: pointer;
  1029. position: absolute;
  1030. color: var(--highlightFg);
  1031. }
  1032. &.gallery {
  1033. min-height: 30vmax;
  1034. }
  1035. #showCasePrev {
  1036. font-size: 4rem;
  1037. top: 50%;
  1038. margin-top: -2rem;
  1039. left: 1rem;
  1040. }
  1041. #showCaseNext {
  1042. font-size: 4rem;
  1043. margin-top: -2rem;
  1044. top: 50%;
  1045. right: 1rem;
  1046. }
  1047. >div {
  1048. padding: 1rem;
  1049. background: none;
  1050. box-shadow: none;
  1051. width: 100%;
  1052. display: block;
  1053. background-position: center;
  1054. background-size: cover;
  1055. margin-top: 0;
  1056. margin-bottom: 0;
  1057. }
  1058. @media @portrait {
  1059. #gameDescription h2 {
  1060. text-align: center !important;
  1061. }
  1062. #gameDescription {
  1063. text-align: center !important;
  1064. width: 100%;
  1065. }
  1066. #engineDescription {
  1067. text-align: center !important;
  1068. font-size: 1.1rem;
  1069. }
  1070. }
  1071. }