style.less 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404
  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(100vh);
  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. }
  882. >nav {
  883. flex-grow: 0;
  884. margin-left: 2rem;
  885. flex-direction: column;
  886. align-items: baseline;
  887. flex-wrap: wrap;
  888. color: var(--highlightFg);
  889. >ul {
  890. width: 100%;
  891. }
  892. >ul li {
  893. width: 100%;
  894. // Special smaller ul
  895. background: none;
  896. border: none !important;
  897. margin: 0.1rem;
  898. margin-left: 0rem;
  899. font-size: 0.8rem;
  900. box-shadow: none;
  901. >* {
  902. margin-left: 1rem;
  903. }
  904. button {
  905. width: 100%;
  906. margin: 0;
  907. }
  908. }
  909. @media @portrait {
  910. ul li {
  911. // make nav in list section more compact
  912. margin: 0.1rem;
  913. padding: 0;
  914. width: auto;
  915. }
  916. >ul {
  917. margin-right: 0.4rem;
  918. width: auto;
  919. }
  920. }
  921. @media @portrait {
  922. margin-left: 0;
  923. flex-direction: row;
  924. }
  925. }
  926. }
  927. }
  928. &.list {
  929. >article {
  930. >div.content {
  931. // When the section is a list, we use a column layout. Helps keeping it compact
  932. display: flex;
  933. flex-direction: column;
  934. nav {
  935. flex-direction: row;
  936. }
  937. nav .share {
  938. // Share buttons are hidden in list section
  939. display: none !important;
  940. }
  941. ul {
  942. width: auto;
  943. li {
  944. width: auto;
  945. }
  946. }
  947. nav,
  948. nav ul li {
  949. // make nav in list section more compact
  950. margin: 0.1rem;
  951. padding: 0;
  952. }
  953. }
  954. }
  955. }
  956. }
  957. // Horizzontal lists are collapsed vertically in portrait mode.
  958. @media @portrait {
  959. section.hlist.responsive {
  960. .collapsedList();
  961. }
  962. }
  963. // This is a special section
  964. section#contribute {
  965. .collapsedList();
  966. }
  967. button#startbtn {
  968. font-size: 1.6rem;
  969. }
  970. section#showcase {
  971. text-align: center;
  972. width: 100%;
  973. margin-top: 0;
  974. margin-bottom: 0;
  975. padding: 0;
  976. display: flex;
  977. position: relative;
  978. flex-direction: column;
  979. min-height: 40vh;
  980. 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");
  981. // 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");
  982. &.gallery{
  983. background-image: none;
  984. }
  985. .textShadowedIntense();
  986. #playButton{
  987. position:absolute;
  988. top:0;
  989. left:0;
  990. pointer-events: none;
  991. width:100%;
  992. height:100%;
  993. z-index:90;
  994. align-items: center;
  995. font-size:4rem;
  996. display:none;
  997. justify-content: center;
  998. }
  999. #gameDescription {
  1000. text-align: right !important;
  1001. width: 50%;
  1002. font-size: 0.8rem;
  1003. margin-top: auto;
  1004. margin-right: 0 !important;
  1005. margin-left: auto;
  1006. height: auto;
  1007. display: block;
  1008. }
  1009. #gameDescription h2 {
  1010. text-align: left !important;
  1011. font-size: 0.9rem;
  1012. }
  1013. #engineDescription {
  1014. font-size: 1.3rem;
  1015. text-align: center;
  1016. width: 100%;
  1017. display: block;
  1018. }
  1019. #showCasePrev,
  1020. #showCaseNext {
  1021. display: block;
  1022. cursor: pointer;
  1023. position: absolute;
  1024. color: var(--highlightFg);
  1025. }
  1026. &.gallery {
  1027. min-height: 30vmax;
  1028. }
  1029. #showCasePrev {
  1030. font-size: 4rem;
  1031. top: 50%;
  1032. margin-top: -2rem;
  1033. left: 1rem;
  1034. }
  1035. #showCaseNext {
  1036. font-size: 4rem;
  1037. margin-top: -2rem;
  1038. top: 50%;
  1039. right: 1rem;
  1040. }
  1041. >div {
  1042. padding: 1rem;
  1043. background: none;
  1044. box-shadow: none;
  1045. width: 100%;
  1046. display: block;
  1047. background-position: center;
  1048. background-size: cover;
  1049. margin-top: 0;
  1050. margin-bottom: 0;
  1051. }
  1052. @media @portrait {
  1053. #gameDescription h2 {
  1054. text-align: center !important;
  1055. }
  1056. #gameDescription {
  1057. text-align: center !important;
  1058. width: 100%;
  1059. }
  1060. #engineDescription {
  1061. text-align: center !important;
  1062. font-size: 1.1rem;
  1063. }
  1064. }
  1065. }