less copy protection, more size visualization
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

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