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

1033 строки
17 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. display: block;
  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: 100pt;
  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. display: flex;
  220. flex-direction: row;
  221. }
  222. .popout-group {
  223. margin: 20px;
  224. display: flex;
  225. flex-direction: column;
  226. }
  227. .menu-item {
  228. font-size: 24px;
  229. color: #ccc;
  230. margin: 20px;
  231. }
  232. select.menu-item {
  233. color: #000;
  234. }
  235. #display {
  236. display: none;
  237. width: 100%;
  238. height: 100%;
  239. background: #333;
  240. }
  241. body.toggle-scale #display {
  242. display: block;
  243. }
  244. #options .options-label,
  245. #options .options-banner {
  246. flex: 0 1;
  247. width: 100%;
  248. font-size: 150%;
  249. }
  250. .options-row .options-field-numeric {
  251. flex: 1 1 100%;
  252. max-width: 90%;
  253. font-size: 150%;
  254. }
  255. .options-row .options-field-text {
  256. flex: 1 0 90%;
  257. max-width: 90%;
  258. font-size: 150%;
  259. }
  260. .options-row .options-field-unit {
  261. flex: 1 1 10%;
  262. max-width: 90%;
  263. font-size: 150%;
  264. }
  265. .options-row .options-field-picker {
  266. flex: 1;
  267. width: 100%;
  268. min-width: 90%;
  269. max-width: 90%;
  270. font-size: 150%;
  271. overflow: hidden;
  272. white-space: pre-wrap;
  273. word-break: normal;
  274. text-overflow: ellipsis;
  275. }
  276. .options-row .symbol-button {
  277. width: 75px;
  278. font-size: 70px;
  279. }
  280. .options-row .options-button {
  281. flex: 1;
  282. width: 100%;
  283. font-size: 150%;
  284. }
  285. .options-block .options-button {
  286. flex: 1;
  287. width: 100%;
  288. font-size: 150%;
  289. }
  290. .options-row label {
  291. flex: 1;
  292. width: 100%;
  293. font-size: 150%;
  294. }
  295. body #test-canvas {
  296. position: fixed;
  297. top: 500vh;
  298. }
  299. .switch {
  300. height: 24pt;
  301. }
  302. .switch input {
  303. transform: scale(2);
  304. }
  305. .top-name {
  306. display: none;
  307. text-align: center;
  308. position: fixed;
  309. max-width: 150px;
  310. height: 50px;
  311. transform: translate(-50%, 20pt);
  312. z-index: 1001;
  313. }
  314. body.toggle-top-name .top-name.top-name-needed {
  315. display: block;
  316. }
  317. .top-name::after {
  318. display: block;
  319. background-image: url("./media/ui/arrow.svg");
  320. width: 70px;
  321. height: 70px;
  322. background-size: 70px 70px;
  323. background-repeat: no-repeat;
  324. content: "";
  325. transform: translate(0, -120%);
  326. }
  327. .bottom-name {
  328. display: none;
  329. text-align: center;
  330. position: fixed;
  331. width: 150px;
  332. height: 50px;
  333. z-index: 10001;
  334. transform: translate(-50%, 0pt);
  335. }
  336. body.toggle-bottom-name .bottom-name {
  337. display: inline;
  338. }
  339. #menubar select {
  340. font-size: 16pt;
  341. max-width: 200pt;
  342. min-width: 120pt;
  343. height: 40pt;
  344. max-height: 180pt;
  345. overflow: hidden;
  346. white-space: pre-wrap;
  347. word-break: normal;
  348. text-overflow: ellipsis;
  349. }
  350. #menubar button {
  351. position: relative;
  352. font-size: 32pt;
  353. height: 40pt;
  354. z-index: 1;
  355. }
  356. #open-help {
  357. padding-top: 1pt;
  358. }
  359. #open-help.highlighted::after {
  360. position: absolute;
  361. top: 0;
  362. left: 0;
  363. content: " ";
  364. display: block;
  365. height: 100%;
  366. width: 100%;
  367. background: inherit;
  368. filter: drop-shadow(0px 0px 10px white) drop-shadow(0px 0px 10px white);
  369. z-index: -1;
  370. animation: pulsing 5s linear 0s infinite;
  371. }
  372. @keyframes pulsing {
  373. 0% {
  374. opacity: 100%;
  375. }
  376. 50% {
  377. opacity: 25%;
  378. }
  379. 100% {
  380. opacity: 100%;
  381. }
  382. }
  383. a {
  384. color: #999;
  385. }
  386. #options-attribution-authors {
  387. text-align: center;
  388. }
  389. #options-attribution-owners {
  390. text-align: center;
  391. }
  392. #options-attribution-source {
  393. text-align: center;
  394. }
  395. .no-transition {
  396. transition: 0s !important;
  397. }
  398. .corner-ribbon {
  399. width: 200px;
  400. background: #e43;
  401. position: fixed;
  402. top: 25px;
  403. left: -50px;
  404. text-align: center;
  405. padding: 10px;
  406. letter-spacing: 1px;
  407. color: #f0f0f0;
  408. transform: rotate(-45deg);
  409. -webkit-transform: rotate(-45deg);
  410. }
  411. .corner-ribbon.bottom-right{
  412. top: auto;
  413. right: -50px;
  414. bottom: 25px;
  415. left: auto;
  416. transform: rotate(-45deg);
  417. -webkit-transform: rotate(-45deg);
  418. }
  419. a.corner-ribbon {
  420. text-decoration: none;
  421. }
  422. input[type=checkbox] {
  423. transform: scale(2);
  424. margin-left: 10px;
  425. margin-right: 10px;
  426. }
  427. input ~ label {
  428. user-select: none;
  429. }
  430. body.toggle-height-bars .height-bar,
  431. .entity-box.selected .height-bar {
  432. display: block;
  433. }
  434. .height-bar {
  435. display: none;
  436. min-width: calc(var(--xpos));
  437. min-height: 3px;
  438. height: 3px;
  439. position: absolute;
  440. opacity: 50%;
  441. background: repeating-linear-gradient(90deg, #ffffff, #ffffff 20px, #ffffff00 20px, #ffffff00 40px);
  442. top: calc(-100% + var(--extra));
  443. left: calc(-1 * var(--xpos));
  444. transition: 0s all;
  445. z-index: -1;
  446. }
  447. .height-bar::before {
  448. display: block;
  449. background: gray;
  450. position: absolute;
  451. content: var(--entity-height);
  452. transition: 0s all;
  453. }
  454. .height-bar::after {
  455. display: block;
  456. min-width: 24px;
  457. min-height: 3px;
  458. background: #ffffff;
  459. position: absolute;
  460. left: calc(var(--xpos) - 24px);
  461. transition: 0s all;
  462. content: "";
  463. }
  464. .sr-only {
  465. position: absolute;
  466. width: 1px;
  467. height: 1px;
  468. padding: 0;
  469. margin: -1px;
  470. overflow: hidden;
  471. clip: rect(0,0,0,0);
  472. border: 0;
  473. }
  474. .bottom-cover {
  475. display: none;
  476. position: absolute;
  477. width: 100%;
  478. height: 10vh;
  479. left: 0%;
  480. top: calc(100% - 51px);
  481. background: black;
  482. }
  483. body.toggle-bottom-cover .bottom-cover {
  484. display: inline-block;
  485. }
  486. .transitions {
  487. transition: 0.2s all;
  488. }
  489. .rotate-forward {
  490. transform: rotate(-90deg);
  491. }
  492. .rotate-backward {
  493. transform: rotate(90deg);
  494. }
  495. .flipped {
  496. transform: rotate(180deg);
  497. }
  498. i.fas
  499. i.far {
  500. pointer-events: none;
  501. }
  502. #help-icons {
  503. display: flex;
  504. flex-direction: column;
  505. flex-wrap: wrap;
  506. width: 50vw;
  507. }
  508. #help-icons > div {
  509. flex-basis: 25%;
  510. font-size: 150%;
  511. }
  512. #entity-view {
  513. text-align: center;
  514. font-weight: bold;
  515. font-size: 200%;
  516. }
  517. #spawners > select,
  518. #spawners > button,
  519. #filters > select,
  520. #filters > button {
  521. display: none;
  522. }
  523. #spawners > select#category-picker,
  524. #filters > select#filter-picker {
  525. display: block;
  526. }
  527. #spawners > select.category-visible,
  528. #spawners > select.category-visible + button,
  529. #filters > select.category-visible,
  530. #filters > select.category-visible + button {
  531. display: block;
  532. }
  533. option.filtered {
  534. display: none;
  535. }
  536. #spawners > select,
  537. #filters > select {
  538. font-size: 24pt;
  539. }
  540. #spawners > button {
  541. font-size: 30pt;
  542. }
  543. #spawners-categories {
  544. font-size: 24pt;
  545. }
  546. .scroll-button {
  547. position: absolute;
  548. height: 20%;
  549. width: 50px;
  550. font-size: 40px;
  551. background: #ffffff33;
  552. border: 0px;
  553. z-index: 1002;
  554. }
  555. .scroll-button:active {
  556. background: #ffffff66;
  557. }
  558. .scroll-button:hover {
  559. background: #ffffff44;
  560. }
  561. .scroll-button:disabled {
  562. background: #ffffff11;
  563. }
  564. #zoom-out {
  565. left: 0%;
  566. top: 0%;
  567. }
  568. #zoom-in {
  569. right: 0%;
  570. top: 0%;
  571. }
  572. #scroll-left {
  573. left: 0%;
  574. top: 20%;
  575. }
  576. #scroll-right {
  577. right: 0%;
  578. top: 20%;
  579. }
  580. #scroll-up {
  581. left: 0%;
  582. top: 40%;
  583. }
  584. #scroll-down {
  585. right: 0%;
  586. top: 40%;
  587. }
  588. #shrink {
  589. left: 0%;
  590. top: 60%;
  591. }
  592. #grow {
  593. right: 0%;
  594. top: 60%;
  595. }
  596. #fit {
  597. right: 0%;
  598. top: 80%;
  599. }
  600. #toggle-menu {
  601. padding-top: 2pt;
  602. position: relative;
  603. }
  604. .popout-menu {
  605. display: none;
  606. flex-direction: column;
  607. flex-wrap: nowrap;
  608. overflow-y: scroll;
  609. max-height: 80vh;
  610. justify-content: end;
  611. position: fixed;
  612. top: 10%;
  613. left: 10%;
  614. z-index: 10000;
  615. background: #222;
  616. border-color: #333;
  617. border-width: 5px;
  618. border-style: solid;
  619. }
  620. .popout-menu::-webkit-scrollbar {
  621. height: 2px;
  622. }
  623. .popout-menu::-webkit-scrollbar-button {
  624. width: 0px;
  625. height: 0px;
  626. }
  627. .popout-menu::-webkit-scrollbar-thumb {
  628. background: #e1e1e1;
  629. border: 0px none #ffffff;
  630. border-radius: 50px;
  631. }
  632. .popout-menu::-webkit-scrollbar-thumb:hover {
  633. background: #ffffff;
  634. }
  635. .popout-menu::-webkit-scrollbar-thumb:active {
  636. background: #000000;
  637. }
  638. .popout-menu::-webkit-scrollbar-track {
  639. background: #00000000;
  640. border: 0px none #ffffff;
  641. border-radius: 50px;
  642. }
  643. .popout-menu::-webkit-scrollbar-track:hover {
  644. background: #666666;
  645. }
  646. .popout-menu::-webkit-scrollbar-track:active {
  647. background: #333333;
  648. }
  649. .popout-menu::-webkit-scrollbar-corner {
  650. background: transparent;
  651. }
  652. .popout-menu.visible {
  653. display: flex;
  654. }
  655. .menu-button {
  656. height: 48pt;
  657. width: 56pt;
  658. font-size: 40pt;
  659. }
  660. .menu-button-holder {
  661. display: flex;
  662. align-items: center;
  663. margin: 5px 0px 5px;
  664. }
  665. .menu-text {
  666. font-size: 24pt;
  667. margin-left: 6pt;
  668. }
  669. #options-entity-defaults > button {
  670. word-break: break-word;
  671. }
  672. button {
  673. border: 3px;
  674. border-style: outset;
  675. }
  676. button:hover {
  677. background: #555;
  678. }
  679. button:enabled:active {
  680. border-style: inset;
  681. background: #aaa;
  682. }
  683. .toast {
  684. position: absolute;
  685. bottom: 10%;
  686. left: 50%;
  687. animation-name: toast-animation;
  688. animation-duration: 5s;
  689. animation-timing-function: linear;
  690. z-index: 1001;
  691. }
  692. @keyframes toast-animation {
  693. 0% {
  694. transform: translate(-50%, 0);
  695. opacity: 1;
  696. }
  697. 50% {
  698. transform: translate(-50%, -10vh);
  699. opacity: 1;
  700. }
  701. 100% {
  702. transform: translate(-50%, -20vh);
  703. opacity: 0;
  704. }
  705. }
  706. #help-menu *::-webkit-scrollbar {
  707. height: 2px;
  708. }
  709. #help-menu *::-webkit-scrollbar-button {
  710. width: 0px;
  711. height: 0px;
  712. }
  713. #help-menu *::-webkit-scrollbar-thumb {
  714. background: #e1e1e1;
  715. border: 0px none #ffffff;
  716. border-radius: 50px;
  717. }
  718. #help-menu *::-webkit-scrollbar-thumb:hover {
  719. background: #ffffff;
  720. }
  721. #help-menu *::-webkit-scrollbar-thumb:active {
  722. background: #000000;
  723. }
  724. #help-menu *::-webkit-scrollbar-track {
  725. background: #00000000;
  726. border: 0px none #ffffff;
  727. border-radius: 50px;
  728. }
  729. #help-menu *::-webkit-scrollbar-track:hover {
  730. background: #666666;
  731. }
  732. #help-menu *::-webkit-scrollbar-track:active {
  733. background: #333333;
  734. }
  735. #help-menu *::-webkit-scrollbar-corner {
  736. background: transparent;
  737. }
  738. #help-menu {
  739. display: none;
  740. position: absolute;
  741. width: 100vw;
  742. height: 100vh;
  743. z-index: 100001;
  744. overflow-x: hidden;
  745. }
  746. #help-menu.visible {
  747. display: flex;
  748. }
  749. #table-of-contents-holder {
  750. flex: 1 1 30%;
  751. padding: 15px;
  752. background: #111;
  753. overflow-y: auto;
  754. }
  755. #table-of-contents {
  756. line-height: 2;
  757. }
  758. #table-of-contents li {
  759. font-size: 150%;
  760. user-select: none;
  761. }
  762. #table-of-contents li:hover {
  763. color: #ccc;
  764. }
  765. #table-of-contents button {
  766. position: relative;
  767. width: 50pt;
  768. height: 50pt;
  769. font-size: 40pt;
  770. }
  771. #table-of-contents button i {
  772. position: absolute;
  773. top: 50%;
  774. left: 50%;
  775. transform: translate(-50%, -50%);
  776. }
  777. #help-contents-holder {
  778. flex: 1 1 70%;
  779. background: #333;
  780. padding: 25px;
  781. overflow-y: auto;
  782. }
  783. #help-contents > h2 {
  784. font-size: 250%;
  785. }
  786. #help-contents > h2 {
  787. margin-bottom: 16pt;
  788. }
  789. #help-contents > h2:nth-child(1n+2) {
  790. margin-top: 32pt;
  791. }
  792. #help-contents p {
  793. text-indent: 20pt;
  794. max-width: 60em;
  795. line-height: 1.4em;
  796. width: 80%;
  797. margin-bottom: 8pt;
  798. margin-top: 8pt;
  799. }
  800. #help-contents i.fas {
  801. text-indent: 0pt;
  802. margin-left: 2pt;
  803. margin-right: 2pt;
  804. }
  805. #help-contents ul {
  806. list-style: circle;
  807. line-height: 1.4;
  808. }
  809. #help-contents b {
  810. font-weight: bolder;
  811. }
  812. #help-contents li {
  813. margin-left: 2em;
  814. }
  815. #help-contents img {
  816. display: block;
  817. width: 80%;
  818. max-width: 60em;
  819. height: 60pt;
  820. }
  821. .nsfw {
  822. color: red;
  823. font-style: bold;
  824. }
  825. select {
  826. background: #111;
  827. color: #eee;
  828. border-color: #444;
  829. }
  830. select > option {
  831. color: #eee;
  832. }
  833. button:focus,
  834. select:focus,
  835. input:focus {
  836. outline-color: #eee;
  837. }
  838. input {
  839. background: #111;
  840. color: #eee;
  841. border-color: #444;
  842. }
  843. button {
  844. background: #111;
  845. color: #ddd;
  846. border-color: #666;
  847. }
  848. .settings-holder {
  849. display: flex;
  850. align-items: center;
  851. padding: 10px 0px 10px;
  852. border-color: #222;
  853. border-width: 5px;
  854. border-style: solid;
  855. max-width: 240pt;
  856. }
  857. .settings-holder.enabled {
  858. background: green;
  859. border-color: darkgreen;
  860. }
  861. .settings-desc {
  862. text-align: right;
  863. margin-right: 8pt;
  864. }
  865. .settings-holder.disabled {
  866. background: gray;
  867. border-color: darkslategray;
  868. }
  869. .settings-name {
  870. font-size: 200%;
  871. margin-right: 16pt;
  872. }
  873. .filter-button > i {
  874. color: gray;
  875. }
  876. .button-counter {
  877. position: absolute;
  878. color: white;
  879. opacity: 0.75;
  880. width: 25%;
  881. height: 25%;
  882. font-size: 16pt;
  883. top: 0%;
  884. left: 0%;
  885. z-index: 1;
  886. user-select: none;
  887. }