less copy protection, more size visualization
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

671 lines
11 KiB

  1. @import url('https://fonts.googleapis.com/css?family=Coda&display=swap');
  2. html {
  3. height: 100%;
  4. width: 100%;
  5. box-sizing: border-box;
  6. overflow-x: hidden;
  7. overflow-y: hidden;
  8. color: #eee;
  9. }
  10. body {
  11. position: relative;
  12. background: #333;
  13. display: flex;
  14. flex-direction: column;
  15. align-items: center;
  16. justify-content: flex-start;
  17. height: 100%;
  18. width: 100%;
  19. font-family: 'Coda', sans-serif;
  20. }
  21. .entity-box {
  22. position: absolute;
  23. --height: 100px;
  24. max-height: var(--height);
  25. height: var(--height);
  26. text-align: center;
  27. -webkit-user-drag: none;
  28. -khtml-user-drag: none;
  29. -moz-user-drag: none;
  30. -o-user-drag: none;
  31. pointer-events: none;
  32. transition: left 0.2s cubic-bezier(.1,.41,.18,.99), top 0.2s cubic-bezier(.1,.41,.18,.99), height 0.2s cubic-bezier(.1,.41,.18,.99), max-height 0.2s cubic-bezier(.1,.41,.18,.99);
  33. }
  34. .entity-image {
  35. position: absolute;
  36. height: 100%;
  37. pointer-events: auto;
  38. -webkit-user-drag: none;
  39. -khtml-user-drag: none;
  40. -moz-user-drag: none;
  41. -o-user-drag: none;
  42. --offset: -100%;
  43. transform: translate(-50%, var(--offset));
  44. }
  45. .entity-name {
  46. display: none;
  47. position: absolute;
  48. top: calc(-100% + var(--extra) / 2);
  49. left: 0%;
  50. transform: translate(-50%, -36px);
  51. font-size: 24px;
  52. pointer-events: none;
  53. max-width: 250px;
  54. width: 250px;
  55. transition: all 0s;
  56. }
  57. body.toggle-entity-name .entity-name,
  58. .entity-box.selected .entity-name {
  59. display: inline;
  60. }
  61. .entity-box.selected > img {
  62. filter: drop-shadow(0px 0px 5px gold);
  63. }
  64. body.toggle-entity-glow .entity-box:not(.selected) > img{
  65. filter: drop-shadow(0px 0px 2px white);
  66. }
  67. #main-area {
  68. min-height: 0px;
  69. display: flex;
  70. flex: 1 1 90vh;
  71. width: 100%;
  72. flex-direction: row;
  73. }
  74. #options {
  75. position: relative;
  76. flex: 1 1 15vw;
  77. min-width: 140pt;
  78. display: flex;
  79. justify-content: start;
  80. flex-direction: column;
  81. background: #444;
  82. overflow-x: hidden;
  83. overflow-y: auto;
  84. height: 100%;
  85. scrollbar-color: #e1e1e1 #888;
  86. }
  87. #options.hidden {
  88. min-width: 0pt;
  89. flex: 0 1 0vw;
  90. }
  91. #options-attribution {
  92. display: none;
  93. }
  94. #options::-webkit-scrollbar {
  95. height: 2px;
  96. }
  97. #options::-webkit-scrollbar-button {
  98. width: 0px;
  99. height: 0px;
  100. }
  101. #options::-webkit-scrollbar-thumb {
  102. background: #e1e1e1;
  103. border: 0px none #ffffff;
  104. border-radius: 50px;
  105. }
  106. #options::-webkit-scrollbar-thumb:hover {
  107. background: #ffffff;
  108. }
  109. #options::-webkit-scrollbar-thumb:active {
  110. background: #000000;
  111. }
  112. #options::-webkit-scrollbar-track {
  113. background: #00000000;
  114. border: 0px none #ffffff;
  115. border-radius: 50px;
  116. }
  117. #options::-webkit-scrollbar-track:hover {
  118. background: #666666;
  119. }
  120. #options::-webkit-scrollbar-track:active {
  121. background: #333333;
  122. }
  123. #options::-webkit-scrollbar-corner {
  124. background: transparent;
  125. }
  126. .options-two-buttons {
  127. display: flex;
  128. justify-content: space-evenly;
  129. }
  130. .options-row {
  131. display: flex;
  132. text-align: center;
  133. width: 90%;
  134. margin-left: auto;
  135. margin-right: auto;
  136. margin-top: 8px;
  137. margin-bottom: 8px;
  138. }
  139. .options-block {
  140. display: flex;
  141. text-align: center;
  142. min-width: 90%;
  143. width: 90%;
  144. margin: auto;
  145. flex-direction: column;
  146. }
  147. .options-label {
  148. text-align: center;
  149. user-select: none;
  150. margin-top: 12px;
  151. margin-bottom: 4px;
  152. }
  153. .options-block.options-block-optional {
  154. display: none;
  155. }
  156. body.show-extra-options .options-block.options-block-optional {
  157. display: flex;
  158. }
  159. @media (max-aspect-ratio: 1/1) {
  160. .options-row {
  161. flex-direction: column;
  162. }
  163. .options-row > .options-field-numeric {
  164. width: 100%;
  165. }
  166. .options-row > .options-field-unit {
  167. width: 100%;
  168. }
  169. }
  170. .options-header {
  171. text-align: center;
  172. font-size: 24pt;
  173. margin-top: 10px;
  174. margin-bottom: 10px;
  175. background: #333;
  176. user-select: none;
  177. }
  178. .options-banner {
  179. text-align: center;
  180. font-size: 24pt;
  181. margin-top: 10px;
  182. margin-bottom: 10px;
  183. background: #232;
  184. text-decoration: none;
  185. user-select: none;
  186. }
  187. .options-banner:hover {
  188. background: #454;
  189. }
  190. .options-selector {
  191. font-size: 150%;
  192. width: 100%;
  193. }
  194. #entities {
  195. position: absolute;
  196. user-select: none;
  197. width: 100%;
  198. height: 100%;
  199. }
  200. #world {
  201. position: relative;
  202. flex: 1 1 85vw;
  203. height: 100%;
  204. overflow: hidden;
  205. }
  206. #menubar {
  207. display: flex;
  208. flex: 1 0 5vh;
  209. flex-direction: row;
  210. justify-content: space-evenly;
  211. align-items: center;
  212. flex-wrap: wrap;
  213. min-width: 100vw;
  214. background: #222;
  215. }
  216. #menubar.hover-delete {
  217. background: #922;
  218. }
  219. .menubar-group {
  220. display: flex;
  221. flex-direction: row;
  222. justify-content: center;
  223. align-items: center;
  224. }
  225. .menu-item {
  226. font-size: 24px;
  227. color: #ccc;
  228. margin: 20px;
  229. }
  230. select.menu-item {
  231. color: #000;
  232. }
  233. #display {
  234. display: none;
  235. width: 100%;
  236. height: 100%;
  237. background: #333;
  238. }
  239. body.toggle-scale #display {
  240. display: block;
  241. }
  242. #options .options-label,
  243. #options .options-banner {
  244. flex: 0 1;
  245. width: 100%;
  246. font-size: 150%;
  247. }
  248. .options-row .options-field-numeric {
  249. flex: 1 1 60%;
  250. min-width: 0px;
  251. font-size: 150%;
  252. }
  253. .options-row .options-field-text {
  254. flex: 1 1 100%;
  255. min-width: 0px;
  256. font-size: 150%;
  257. }
  258. .options-row .options-field-unit {
  259. flex: 1 1 40%;
  260. min-width: 0px;
  261. font-size: 150%;
  262. }
  263. .options-row .options-button {
  264. flex: 1;
  265. width: 100%;
  266. font-size: 150%;
  267. }
  268. .options-block .options-button {
  269. flex: 1;
  270. width: 100%;
  271. font-size: 150%;
  272. }
  273. .options-row label {
  274. flex: 1;
  275. width: 100%;
  276. font-size: 150%;
  277. }
  278. body #test-canvas {
  279. position: fixed;
  280. top: 500vh;
  281. }
  282. .switch {
  283. height: 24pt;
  284. }
  285. .switch input {
  286. transform: scale(2);
  287. }
  288. .top-name {
  289. display: none;
  290. text-align: center;
  291. position: fixed;
  292. max-width: 150px;
  293. height: 50px;
  294. transform: translate(-50%, 20pt);
  295. z-index: 1001;
  296. }
  297. body.toggle-top-name .top-name.top-name-needed {
  298. display: block;
  299. }
  300. .top-name::after {
  301. display: block;
  302. background-image: url("./media/ui/arrow.svg");
  303. width: 70px;
  304. height: 70px;
  305. background-size: 70px 70px;
  306. background-repeat: no-repeat;
  307. content: "";
  308. transform: translate(0, -120%);
  309. }
  310. .bottom-name {
  311. display: none;
  312. text-align: center;
  313. position: fixed;
  314. width: 150px;
  315. height: 50px;
  316. z-index: 349539534;
  317. transform: translate(-50%, 0pt);
  318. }
  319. body.toggle-bottom-name .bottom-name {
  320. display: inline;
  321. }
  322. #menubar select {
  323. max-width: 200pt;
  324. height: 40pt;
  325. max-height: 180pt;
  326. overflow: hidden;
  327. white-space: pre-wrap;
  328. word-break: normal;
  329. text-overflow: ellipsis;
  330. }
  331. #spawners > button {
  332. display: none;
  333. font-size: 24pt;
  334. }
  335. #spawners > select {
  336. display: none;
  337. font-size: 24pt;
  338. }
  339. #spawners > select#category-picker {
  340. display: inline;
  341. }
  342. #spawners > button.category-visible,
  343. #spawners > select.category-visible {
  344. display: inline;
  345. }
  346. #menubar button {
  347. position: relative;
  348. font-size: 36pt;
  349. z-index: 1;
  350. }
  351. #open-help.highlighted::before {
  352. position: absolute;
  353. top: 0;
  354. left: 0;
  355. content: " ";
  356. display: block;
  357. height: 100%;
  358. width: 100%;
  359. background: white;
  360. filter: drop-shadow(0px 0px 10px white);
  361. z-index: -1;
  362. animation: pulsing 5s linear 0s infinite;
  363. }
  364. @keyframes pulsing {
  365. 0% {
  366. opacity: 100%;
  367. }
  368. 50% {
  369. opacity: 25%;
  370. }
  371. 100% {
  372. opacity: 100%;
  373. }
  374. }
  375. #help {
  376. display: none;
  377. flex-direction: column;
  378. justify-content: space-evenly;
  379. align-items: center;
  380. position: absolute;
  381. width: 60vw;
  382. height: 60vh;
  383. margin: 0pt;
  384. padding-top: 20vh;
  385. padding-bottom: 20vh;
  386. padding-left: 20vw;
  387. padding-right: 20vw;
  388. text-align: center;
  389. background: #333;
  390. opacity: 0;
  391. z-index: 9999999;
  392. backdrop-filter: blur(5px);
  393. }
  394. #help.visible {
  395. display: flex;
  396. opacity: 0.9;
  397. justify-content: center;
  398. }
  399. #help h1 {
  400. font-size: 150%;
  401. }
  402. #help p {
  403. font-size: 125%;
  404. }
  405. #help ul {
  406. text-align: left;
  407. list-style: circle;
  408. width: 75vw;
  409. }
  410. #help li {
  411. padding: 10px;
  412. }
  413. #help button {
  414. height: 10vh;
  415. font-size: 9vh;
  416. }
  417. a {
  418. color: #999;
  419. }
  420. #options-attribution-authors {
  421. text-align: center;
  422. }
  423. #options-attribution-owners {
  424. text-align: center;
  425. }
  426. #options-attribution-source {
  427. text-align: center;
  428. }
  429. .floating-slider {
  430. display: none;
  431. position: absolute;
  432. z-index: 1000;
  433. width: 250px;
  434. height: 50px;
  435. transform: scale(1.5);
  436. }
  437. body.toggle-scale-sliders .floating-slider {
  438. display: block;
  439. }
  440. #slider-scale {
  441. top: 5%;
  442. left: 5%;
  443. }
  444. #slider-scale:before {
  445. content: "World scale";
  446. position: absolute;
  447. left: 50%;
  448. transform: translate(-50%, 0%);
  449. font-size: 20px;
  450. }
  451. #slider-entity-scale {
  452. top: 5%;
  453. right: 5%;
  454. }
  455. #slider-entity-scale:before {
  456. content: "Entity scale";
  457. position: absolute;
  458. left: 50%;
  459. transform: translate(-50%, 0%);
  460. font-size: 20px;
  461. }
  462. .no-transition {
  463. transition: 0s !important;
  464. }
  465. .corner-ribbon {
  466. width: 200px;
  467. background: #e43;
  468. position: fixed;
  469. top: 25px;
  470. left: -50px;
  471. text-align: center;
  472. padding: 10px;
  473. letter-spacing: 1px;
  474. color: #f0f0f0;
  475. transform: rotate(-45deg);
  476. -webkit-transform: rotate(-45deg);
  477. }
  478. .corner-ribbon.bottom-right{
  479. top: auto;
  480. right: -50px;
  481. bottom: 25px;
  482. left: auto;
  483. transform: rotate(-45deg);
  484. -webkit-transform: rotate(-45deg);
  485. }
  486. a.corner-ribbon {
  487. text-decoration: none;
  488. }
  489. input[type=checkbox] {
  490. transform: scale(2);
  491. margin-left: 10px;
  492. margin-right: 10px;
  493. }
  494. input ~ label {
  495. user-select: none;
  496. }
  497. body.toggle-height-bars .height-bar,
  498. .entity-box.selected .height-bar {
  499. display: block;
  500. }
  501. .height-bar {
  502. display: none;
  503. min-width: calc(var(--xpos));
  504. min-height: 3px;
  505. height: 3px;
  506. position: absolute;
  507. opacity: 50%;
  508. background: repeating-linear-gradient(90deg, #ffffff, #ffffff 20px, #ffffff00 20px, #ffffff00 40px);
  509. top: calc(-100% + var(--extra));
  510. left: calc(-1 * var(--xpos));
  511. transition: 0s all;
  512. z-index: -1;
  513. }
  514. .height-bar::before {
  515. display: block;
  516. background: gray;
  517. position: absolute;
  518. content: var(--entity-height);
  519. transition: 0s all;
  520. }
  521. .height-bar::after {
  522. display: block;
  523. min-width: 24px;
  524. min-height: 3px;
  525. background: #ffffff;
  526. position: absolute;
  527. left: calc(var(--xpos) - 24px);
  528. transition: 0s all;
  529. content: "";
  530. }
  531. .sr-only {
  532. position: absolute;
  533. width: 1px;
  534. height: 1px;
  535. padding: 0;
  536. margin: -1px;
  537. overflow: hidden;
  538. clip: rect(0,0,0,0);
  539. border: 0;
  540. }
  541. .bottom-cover {
  542. display: none;
  543. position: absolute;
  544. width: 100%;
  545. height: 10vh;
  546. left: 0%;
  547. top: calc(100% - 51px);
  548. background: black;
  549. }
  550. body.toggle-bottom-cover .bottom-cover {
  551. display: inline-block;
  552. }
  553. .transitions {
  554. transition: 0.2s all;
  555. }
  556. .rotate-forward {
  557. transform: rotate(-90deg);
  558. }
  559. .rotate-backward {
  560. transform: rotate(90deg);
  561. }
  562. i.fas
  563. i.far {
  564. pointer-events: none;
  565. }
  566. #help-icons {
  567. display: flex;
  568. flex-direction: column;
  569. flex-wrap: wrap;
  570. width: 50vw;
  571. }
  572. #help-icons > div {
  573. flex-basis: 25%;
  574. font-size: 150%;
  575. }