less copy protection, more size visualization
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

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