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.
 
 
 

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