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

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