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.
 
 
 

575 line
9.7 KiB

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