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

664 строки
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 .options-button {
  260. flex: 1;
  261. width: 100%;
  262. font-size: 150%;
  263. }
  264. .options-block .options-button {
  265. flex: 1;
  266. width: 100%;
  267. font-size: 150%;
  268. }
  269. .options-row label {
  270. flex: 1;
  271. width: 100%;
  272. font-size: 150%;
  273. }
  274. body #test-canvas {
  275. position: fixed;
  276. top: 500vh;
  277. }
  278. .switch {
  279. height: 24pt;
  280. }
  281. .switch input {
  282. transform: scale(2);
  283. }
  284. .top-name {
  285. display: none;
  286. text-align: center;
  287. position: fixed;
  288. max-width: 150px;
  289. height: 50px;
  290. transform: translate(-50%, 20pt);
  291. z-index: 1001;
  292. }
  293. body.toggle-top-name .top-name.top-name-needed {
  294. display: block;
  295. }
  296. .top-name::after {
  297. display: block;
  298. background-image: url("./media/ui/arrow.svg");
  299. width: 70px;
  300. height: 70px;
  301. background-size: 70px 70px;
  302. background-repeat: no-repeat;
  303. content: "";
  304. transform: translate(0, -120%);
  305. }
  306. .bottom-name {
  307. display: none;
  308. text-align: center;
  309. position: fixed;
  310. width: 150px;
  311. height: 50px;
  312. z-index: 349539534;
  313. transform: translate(-50%, 0pt);
  314. }
  315. body.toggle-bottom-name .bottom-name {
  316. display: inline;
  317. }
  318. #menubar select {
  319. max-width: 200pt;
  320. height: 40pt;
  321. max-height: 180pt;
  322. overflow: hidden;
  323. white-space: pre-wrap;
  324. word-break: normal;
  325. text-overflow: ellipsis;
  326. }
  327. #spawners > button {
  328. display: none;
  329. font-size: 24pt;
  330. }
  331. #spawners > select {
  332. display: none;
  333. font-size: 24pt;
  334. }
  335. #spawners > select#category-picker {
  336. display: inline;
  337. }
  338. #spawners > button.category-visible,
  339. #spawners > select.category-visible {
  340. display: inline;
  341. }
  342. #menubar button {
  343. position: relative;
  344. font-size: 36pt;
  345. z-index: 1;
  346. }
  347. #open-help.highlighted::before {
  348. position: absolute;
  349. top: 0;
  350. left: 0;
  351. content: " ";
  352. display: block;
  353. height: 100%;
  354. width: 100%;
  355. background: white;
  356. filter: drop-shadow(0px 0px 10px white);
  357. z-index: -1;
  358. animation: pulsing 5s linear 0s infinite;
  359. }
  360. @keyframes pulsing {
  361. 0% {
  362. opacity: 100%;
  363. }
  364. 50% {
  365. opacity: 25%;
  366. }
  367. 100% {
  368. opacity: 100%;
  369. }
  370. }
  371. #help {
  372. display: none;
  373. flex-direction: column;
  374. justify-content: space-evenly;
  375. align-items: center;
  376. position: absolute;
  377. width: 60vw;
  378. height: 60vh;
  379. margin: 0pt;
  380. padding-top: 20vh;
  381. padding-bottom: 20vh;
  382. padding-left: 20vw;
  383. padding-right: 20vw;
  384. text-align: center;
  385. background: #333;
  386. opacity: 0;
  387. z-index: 9999999;
  388. backdrop-filter: blur(5px);
  389. }
  390. #help.visible {
  391. display: flex;
  392. opacity: 0.9;
  393. justify-content: center;
  394. }
  395. #help h1 {
  396. font-size: 150%;
  397. }
  398. #help p {
  399. font-size: 125%;
  400. }
  401. #help ul {
  402. text-align: left;
  403. list-style: circle;
  404. width: 75vw;
  405. }
  406. #help li {
  407. padding: 10px;
  408. }
  409. #help button {
  410. height: 10vh;
  411. font-size: 9vh;
  412. }
  413. a {
  414. color: #999;
  415. }
  416. #options-attribution-authors {
  417. text-align: center;
  418. }
  419. #options-attribution-owners {
  420. text-align: center;
  421. }
  422. #options-attribution-source {
  423. text-align: center;
  424. }
  425. .floating-slider {
  426. display: none;
  427. position: absolute;
  428. z-index: 1000;
  429. width: 250px;
  430. height: 50px;
  431. transform: translate(-50%, 0) scale(1.5);;
  432. }
  433. body.toggle-scale-sliders .floating-slider {
  434. display: block;
  435. }
  436. #slider-scale {
  437. top: 5%;
  438. left: 50%;
  439. }
  440. #slider-scale:before {
  441. content: "World scale";
  442. position: absolute;
  443. left: 50%;
  444. transform: translate(-50%, 0%);
  445. font-size: 20px;
  446. }
  447. #slider-entity-scale {
  448. top: 15%;
  449. left: 50%;
  450. }
  451. #slider-entity-scale:before {
  452. content: "Entity scale";
  453. position: absolute;
  454. left: 50%;
  455. transform: translate(-50%, 0%);
  456. font-size: 20px;
  457. }
  458. .no-transition {
  459. transition: 0s !important;
  460. }
  461. .corner-ribbon {
  462. width: 200px;
  463. background: #e43;
  464. position: fixed;
  465. top: 25px;
  466. left: -50px;
  467. text-align: center;
  468. padding: 10px;
  469. letter-spacing: 1px;
  470. color: #f0f0f0;
  471. transform: rotate(-45deg);
  472. -webkit-transform: rotate(-45deg);
  473. }
  474. .corner-ribbon.bottom-right{
  475. top: auto;
  476. right: -50px;
  477. bottom: 25px;
  478. left: auto;
  479. transform: rotate(-45deg);
  480. -webkit-transform: rotate(-45deg);
  481. }
  482. a.corner-ribbon {
  483. text-decoration: none;
  484. }
  485. input[type=checkbox] {
  486. transform: scale(2);
  487. margin-left: 10px;
  488. margin-right: 10px;
  489. }
  490. input ~ label {
  491. user-select: none;
  492. }
  493. body.toggle-height-bars .height-bar,
  494. .entity-box.selected .height-bar {
  495. display: block;
  496. }
  497. .height-bar {
  498. display: none;
  499. min-width: calc(var(--xpos));
  500. min-height: 3px;
  501. height: 3px;
  502. position: absolute;
  503. opacity: 50%;
  504. background: repeating-linear-gradient(90deg, #ffffff, #ffffff 20px, #ffffff00 20px, #ffffff00 40px);
  505. top: calc(-100% + var(--extra));
  506. left: calc(-1 * var(--xpos));
  507. transition: 0s all;
  508. z-index: -1;
  509. }
  510. .height-bar::before {
  511. display: block;
  512. background: gray;
  513. position: absolute;
  514. content: var(--entity-height);
  515. transition: 0s all;
  516. }
  517. .height-bar::after {
  518. display: block;
  519. min-width: 24px;
  520. min-height: 3px;
  521. background: #ffffff;
  522. position: absolute;
  523. left: calc(var(--xpos) - 24px);
  524. transition: 0s all;
  525. content: "";
  526. }
  527. .sr-only {
  528. position: absolute;
  529. width: 1px;
  530. height: 1px;
  531. padding: 0;
  532. margin: -1px;
  533. overflow: hidden;
  534. clip: rect(0,0,0,0);
  535. border: 0;
  536. }
  537. .bottom-cover {
  538. display: none;
  539. position: absolute;
  540. width: 100%;
  541. height: 10vh;
  542. left: 0%;
  543. top: calc(100% - 51px);
  544. background: black;
  545. }
  546. body.toggle-bottom-cover .bottom-cover {
  547. display: inline-block;
  548. }
  549. .transitions {
  550. transition: 0.2s all;
  551. }
  552. .rotate-forward {
  553. transform: rotate(-90deg);
  554. }
  555. .rotate-backward {
  556. transform: rotate(90deg);
  557. }
  558. i.fas
  559. i.far {
  560. pointer-events: none;
  561. }
  562. #help-icons {
  563. display: flex;
  564. flex-direction: column;
  565. flex-wrap: wrap;
  566. width: 50vw;
  567. }
  568. #help-icons > div {
  569. flex-basis: 25%;
  570. font-size: 150%;
  571. }