less copy protection, more size visualization
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

1041 行
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. --brightness: 1;
  25. max-height: var(--height);
  26. height: var(--height);
  27. text-align: center;
  28. -webkit-user-drag: none;
  29. -khtml-user-drag: none;
  30. -moz-user-drag: none;
  31. -o-user-drag: none;
  32. pointer-events: none;
  33. user-select: none;
  34. -webkit-user-select: none;
  35. }
  36. body.smoothing .entity-box {
  37. 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);
  38. }
  39. .entity-image {
  40. display: block;
  41. height: 100%;
  42. pointer-events: auto;
  43. -webkit-user-drag: none;
  44. -khtml-user-drag: none;
  45. -moz-user-drag: none;
  46. -o-user-drag: none;
  47. --offset: -100%;
  48. --rotation: 30deg;
  49. transform: translate(-50%, var(--offset)) rotate(var(--rotation));
  50. filter: brightness(var(--brightness));
  51. user-select: none;
  52. -webkit-user-select: none;
  53. }
  54. .entity-image.flipped {
  55. transform: translate(-50%, var(--offset)) scale(-1, 1);
  56. }
  57. .entity-name {
  58. display: none;
  59. position: absolute;
  60. top: calc(-100% + var(--extra) / 2);
  61. left: 0%;
  62. transform: translate(-50%, -36px);
  63. font-size: 24px;
  64. pointer-events: none;
  65. max-width: 250px;
  66. width: 250px;
  67. transition: all 0s;
  68. }
  69. body.toggle-entity-name .entity-name,
  70. .entity-box.selected .entity-name {
  71. display: inline;
  72. }
  73. body.highlight-color .entity-box.selected > img {
  74. filter: sepia(100%) brightness(calc(1.5 * var(--brightness)));
  75. }
  76. body.highlight-color .entity-box.prevSelected > img {
  77. filter: sepia(50%) brightness(calc(1.25 * var(--brightness)));
  78. }
  79. body.highlight-outline .entity-box.selected > img {
  80. filter: brightness(var(--brightness)) drop-shadow(0px 0px 5px gold);
  81. }
  82. body.highlight-outline .entity-box.prevSelected > img {
  83. filter: brightness(var(--brightness)) drop-shadow(0px 0px 5px darkorange);
  84. }
  85. body.toggle-entity-glow .entity-box:not(.selected) > img{
  86. filter: brightness(var(--brightness)) drop-shadow(0px 0px 2px white);
  87. }
  88. #main-area {
  89. min-height: 0px;
  90. display: flex;
  91. flex: 1 1 90vh;
  92. width: 100%;
  93. flex-direction: row;
  94. }
  95. #options {
  96. position: relative;
  97. flex: 1 1 15vw;
  98. min-width: 100pt;
  99. display: flex;
  100. justify-content: start;
  101. flex-direction: column;
  102. background: #444;
  103. overflow-x: hidden;
  104. overflow-y: scroll;
  105. width: 100%;
  106. height: 100%;
  107. scrollbar-color: #e1e1e1 #888;
  108. }
  109. #options.hidden {
  110. min-width: 0pt;
  111. flex: 0 1 0vw;
  112. }
  113. #options-attribution {
  114. display: none;
  115. }
  116. #options::-webkit-scrollbar {
  117. height: 2px;
  118. }
  119. #options::-webkit-scrollbar-button {
  120. width: 0px;
  121. height: 0px;
  122. }
  123. #options::-webkit-scrollbar-thumb {
  124. background: #e1e1e1;
  125. border: 0px none #ffffff;
  126. border-radius: 50px;
  127. }
  128. #options::-webkit-scrollbar-thumb:hover {
  129. background: #ffffff;
  130. }
  131. #options::-webkit-scrollbar-thumb:active {
  132. background: #000000;
  133. }
  134. #options::-webkit-scrollbar-track {
  135. background: #222222;
  136. border: 0px none #ffffff;
  137. }
  138. #options::-webkit-scrollbar-track:hover {
  139. background: #666666;
  140. }
  141. #options::-webkit-scrollbar-track:active {
  142. background: #333333;
  143. }
  144. #options::-webkit-scrollbar-corner {
  145. background: transparent;
  146. }
  147. .options-two-buttons {
  148. display: flex;
  149. justify-content: space-evenly;
  150. }
  151. .options-two-buttons > button {
  152. font-size: 18pt;
  153. }
  154. .options-category {
  155. position: relative;
  156. }
  157. .options-row {
  158. position: relative;
  159. flex-direction: column;
  160. flex-wrap: wrap;
  161. display: flex;
  162. text-align: center;
  163. align-items: center;
  164. margin-left: auto;
  165. margin-right: auto;
  166. margin-top: 8px;
  167. margin-bottom: 8px;
  168. }
  169. .options-row.full {
  170. min-width: 90%;
  171. }
  172. .options-block {
  173. display: flex;
  174. text-align: center;
  175. min-width: 90%;
  176. width: 90%;
  177. margin: auto;
  178. flex-direction: column;
  179. }
  180. .options-label {
  181. text-align: center;
  182. user-select: none;
  183. -webkit-user-select: none;
  184. margin-top: 12px;
  185. margin-bottom: 4px;
  186. }
  187. .options-block.options-block-optional {
  188. display: none;
  189. }
  190. body.show-extra-options .options-block.options-block-optional {
  191. display: flex;
  192. }
  193. .options-header {
  194. text-align: center;
  195. font-size: 24pt;
  196. margin-top: 10px;
  197. margin-bottom: 10px;
  198. background: #333;
  199. user-select: none;
  200. }
  201. .options-banner-buttons {
  202. width: 100%;
  203. text-align: center;
  204. margin-top: 10px;
  205. }
  206. .options-banner-button {
  207. display: inline-block;
  208. text-align: center;
  209. font-size: 16pt;
  210. color: #ddd;
  211. background: #262;
  212. text-decoration: none;
  213. user-select: none;
  214. -webkit-user-select: none;
  215. border-radius: 6pt;
  216. margin: 10px;
  217. border-color: #666;
  218. border-width: 3pt;
  219. border-style: outset;
  220. min-width: 85%;
  221. max-width: 100%;
  222. }
  223. .options-banner-button:hover {
  224. color: #eee;
  225. background: #282;
  226. }
  227. .options-banner-button:active {
  228. color: #fff;
  229. background: #2a2;
  230. border-style: inset;
  231. }
  232. .options-selector {
  233. font-size: 150%;
  234. width: 100%;
  235. }
  236. .button-img {
  237. height: 24pt;
  238. }
  239. #entities {
  240. position: absolute;
  241. user-select: none;
  242. -webkit-user-select: none;
  243. width: 100%;
  244. height: 100%;
  245. }
  246. #world {
  247. position: relative;
  248. flex: 1 1 85vw;
  249. height: 100%;
  250. overflow: hidden;
  251. }
  252. #menubar {
  253. display: flex;
  254. flex: 0 0 1vh;
  255. flex-direction: row;
  256. justify-content: space-evenly;
  257. align-items: center;
  258. flex-wrap: wrap;
  259. min-width: 100vw;
  260. background: #222;
  261. }
  262. #menubar.hover-delete {
  263. background: #922;
  264. }
  265. .menubar-group {
  266. display: flex;
  267. flex-direction: row;
  268. }
  269. .menubar-group button {
  270. width: 48pt;
  271. height: 48pt;
  272. }
  273. .menubar-group input {
  274. font-size: 24pt;
  275. }
  276. .popout-group {
  277. margin: 20px;
  278. display: flex;
  279. flex-direction: column;
  280. }
  281. .menu-item {
  282. font-size: 24px;
  283. color: #ccc;
  284. margin: 20px;
  285. }
  286. select.menu-item {
  287. color: #000;
  288. }
  289. #rulers {
  290. position: absolute;
  291. display: block;
  292. width: 100%;
  293. height: 100%;
  294. background: #00000000;
  295. z-index: 1001;
  296. pointer-events: none;
  297. }
  298. #display {
  299. display: block;
  300. width: 100%;
  301. height: 100%;
  302. background: #333;
  303. }
  304. #options .options-label,
  305. #options .options-banner {
  306. flex: 0 1;
  307. font-size: 150%;
  308. }
  309. #options .options-label {
  310. width: 100%;
  311. }
  312. #options .options-banner {
  313. width: calc(100% - 20px);
  314. }
  315. input {
  316. padding: 2px;
  317. }
  318. select {
  319. padding: 2px;
  320. }
  321. .options-row .options-field-numeric {
  322. flex: 0 1 50%;
  323. font-size: 150%;
  324. width: 90%;
  325. padding-left: 4px;
  326. padding-right: 4px;
  327. }
  328. .options-row .options-field-text {
  329. flex: 1 0 90%;
  330. font-size: 150%;
  331. width: 90%;
  332. }
  333. .options-row .options-field-unit {
  334. flex: 0 1 50%;
  335. font-size: 150%;
  336. width: 90%;
  337. padding-left: 4px;
  338. padding-right: 4px;
  339. }
  340. .options-row .options-field-picker {
  341. flex: 1;
  342. width: 100%;
  343. min-width: 90%;
  344. max-width: 90%;
  345. font-size: 150%;
  346. overflow: hidden;
  347. white-space: pre-wrap;
  348. word-break: normal;
  349. text-overflow: ellipsis;
  350. }
  351. .options-row .symbol-button {
  352. width: 75px;
  353. font-size: 70px;
  354. }
  355. .options-row .options-button {
  356. flex: 1;
  357. width: 100%;
  358. font-size: 150%;
  359. }
  360. .options-block .options-button {
  361. flex: 1;
  362. width: 100%;
  363. font-size: 150%;
  364. }
  365. .options-row label {
  366. flex: 1;
  367. width: 100%;
  368. font-size: 150%;
  369. }
  370. body #test-canvas {
  371. position: fixed;
  372. top: 100px;
  373. left: 400px;
  374. z-index: 99999999;
  375. pointer-events: none;
  376. display: none;
  377. }
  378. .switch {
  379. height: 24pt;
  380. }
  381. .switch input {
  382. transform: scale(2);
  383. }
  384. .top-name {
  385. display: none;
  386. text-align: center;
  387. position: fixed;
  388. max-width: 150px;
  389. height: 50px;
  390. transform: translate(-50%, 20pt);
  391. z-index: 1001;
  392. }
  393. body.toggle-top-name .top-name.top-name-needed {
  394. display: block;
  395. }
  396. .top-name::after {
  397. display: block;
  398. background-image: url("./media/ui/arrow.svg");
  399. width: 70px;
  400. height: 70px;
  401. background-size: 70px 70px;
  402. background-repeat: no-repeat;
  403. content: "";
  404. transform: translate(0, -120%);
  405. }
  406. .bottom-name {
  407. display: none;
  408. text-align: center;
  409. position: fixed;
  410. width: 150px;
  411. height: 50px;
  412. z-index: 10001;
  413. transform: translate(-50%, 0pt);
  414. }
  415. body.toggle-bottom-name .bottom-name {
  416. display: inline;
  417. }
  418. #menubar input,
  419. #menubar select {
  420. font-size: 16pt;
  421. max-width: 120pt;
  422. min-width: 60pt;
  423. height: 40pt;
  424. max-height: 180pt;
  425. overflow: hidden;
  426. white-space: pre-wrap;
  427. word-break: normal;
  428. text-overflow: ellipsis;
  429. }
  430. @media (min-width: 600px) {
  431. #menubar input,
  432. #menubar select {
  433. max-width: 200pt;
  434. }
  435. }
  436. #menubar button {
  437. position: relative;
  438. font-size: 32pt;
  439. height: 40pt;
  440. z-index: 1;
  441. padding: 5px;
  442. }
  443. #open-help {
  444. padding-top: 1pt;
  445. }
  446. #open-help.highlighted::after {
  447. position: absolute;
  448. top: 0;
  449. left: 0;
  450. content: " ";
  451. display: block;
  452. height: 100%;
  453. width: 100%;
  454. background: inherit;
  455. filter: drop-shadow(0px 0px 10px white) drop-shadow(0px 0px 10px white);
  456. z-index: -1;
  457. animation: pulsing 5s linear 0s infinite;
  458. }
  459. @keyframes pulsing {
  460. 0% {
  461. opacity: 100%;
  462. }
  463. 50% {
  464. opacity: 25%;
  465. }
  466. 100% {
  467. opacity: 100%;
  468. }
  469. }
  470. a {
  471. color: #999;
  472. }
  473. #options-attribution-authors {
  474. text-align: center;
  475. }
  476. #options-attribution-owners {
  477. text-align: center;
  478. }
  479. #options-attribution-source {
  480. text-align: center;
  481. }
  482. #options-attribution-citations {
  483. text-align: center;
  484. }
  485. .no-transition {
  486. transition: 0s !important;
  487. }
  488. input[type=checkbox] {
  489. transform: scale(2);
  490. margin-left: 10px;
  491. margin-right: 10px;
  492. }
  493. input ~ label {
  494. user-select: none;
  495. -webkit-user-select: none;
  496. }
  497. body.toggle-height-bars .height-bar,
  498. .entity-box.selected .height-bar {
  499. display: block;
  500. }
  501. .height-bar {
  502. display: none;
  503. min-width: calc(var(--xpos));
  504. min-height: 3px;
  505. height: 3px;
  506. position: absolute;
  507. opacity: 50%;
  508. background: repeating-linear-gradient(90deg, #ffffff, #ffffff 20px, #ffffff00 20px, #ffffff00 40px);
  509. top: calc(-100% + var(--extra));
  510. left: calc(-1 * var(--xpos));
  511. transition: 0s all;
  512. z-index: -1;
  513. }
  514. .height-bar::before {
  515. display: block;
  516. background: gray;
  517. position: absolute;
  518. content: var(--entity-height);
  519. transition: 0s all;
  520. }
  521. .height-bar::after {
  522. display: block;
  523. min-width: 24px;
  524. min-height: 3px;
  525. background: #ffffff;
  526. position: absolute;
  527. left: calc(var(--xpos) - 24px);
  528. transition: 0s all;
  529. content: "";
  530. }
  531. .sr-only {
  532. position: absolute;
  533. width: 1px;
  534. height: 1px;
  535. padding: 0;
  536. margin: -1px;
  537. overflow: hidden;
  538. clip: rect(0,0,0,0);
  539. border: 0;
  540. }
  541. .bottom-cover {
  542. position: absolute;
  543. width: 100%;
  544. height: 100vh;
  545. left: 0%;
  546. top: calc(100% - 51px);
  547. }
  548. .transitions {
  549. transition: 0.2s all;
  550. }
  551. .rotate-forward {
  552. transform: rotate(-90deg);
  553. }
  554. .rotate-backward {
  555. transform: rotate(90deg);
  556. }
  557. .flipped {
  558. transform: rotate(180deg);
  559. }
  560. i.fas
  561. i.far {
  562. pointer-events: none;
  563. }
  564. #help-icons {
  565. display: flex;
  566. flex-direction: column;
  567. flex-wrap: wrap;
  568. width: 50vw;
  569. }
  570. #help-icons > div {
  571. flex-basis: 25%;
  572. font-size: 150%;
  573. }
  574. #entity-form,
  575. #entity-view {
  576. max-width: 90%;
  577. text-align: center;
  578. font-weight: bold;
  579. font-size: 200%;
  580. margin: auto;
  581. }
  582. #entity-view option {
  583. font-weight: normal;
  584. }
  585. #spawners > select,
  586. #spawners > button,
  587. #filters > select,
  588. #filters > button {
  589. display: none;
  590. }
  591. #spawners > select#category-picker,
  592. #filters > select#filter-picker {
  593. display: block;
  594. }
  595. #spawners > select.category-visible,
  596. #spawners > select.category-visible + button,
  597. #filters > select.category-visible,
  598. #filters > select.category-visible + button {
  599. display: block;
  600. }
  601. option.filtered {
  602. display: none;
  603. }
  604. @media (min-width: 600px)
  605. {
  606. #spawners > select,
  607. #filters > select {
  608. font-size: 24pt;
  609. }
  610. }
  611. #spawners > button {
  612. font-size: 30pt;
  613. }
  614. #spawners-categories {
  615. font-size: 24pt;
  616. }
  617. button {
  618. padding: 5px;
  619. }
  620. .scroll-button {
  621. transition: 0.2s;
  622. position: absolute;
  623. height: 20%;
  624. width: 50px;
  625. font-size: 28px;
  626. background: #ffffff33;
  627. border: 0px;
  628. z-index: 1002;
  629. }
  630. .scroll-button:active {
  631. background: #ffffff66;
  632. }
  633. .scroll-button:hover {
  634. transition: 0.2s;
  635. font-size: 32px;
  636. background: #ffffff44;
  637. }
  638. .scroll-button:disabled {
  639. transition: 0s;
  640. background: #ffffff11;
  641. font-size: 28px;
  642. }
  643. .extra-info {
  644. position: absolute;
  645. top: 5%;
  646. right: 5%;
  647. z-index: 1002;
  648. pointer-events: none;
  649. }
  650. #zoom-out {
  651. left: 0%;
  652. top: 0%;
  653. }
  654. #zoom-in {
  655. right: 0%;
  656. top: 0%;
  657. }
  658. #scroll-left {
  659. left: 0%;
  660. top: 20%;
  661. }
  662. #scroll-right {
  663. right: 0%;
  664. top: 20%;
  665. }
  666. #scroll-up {
  667. left: 0%;
  668. top: 40%;
  669. }
  670. #scroll-down {
  671. right: 0%;
  672. top: 40%;
  673. }
  674. #shrink {
  675. left: 0%;
  676. top: 60%;
  677. }
  678. #grow {
  679. right: 0%;
  680. top: 60%;
  681. }
  682. #ruler {
  683. left: 0%;
  684. top: 80%;
  685. }
  686. #fit {
  687. right: 0%;
  688. top: 80%;
  689. }
  690. #toggle-menu {
  691. padding-top: 2pt;
  692. position: relative;
  693. }
  694. .popout-menu {
  695. display: none;
  696. flex-direction: column;
  697. flex-wrap: nowrap;
  698. overflow-y: scroll;
  699. max-height: 80vh;
  700. justify-content: start;
  701. position: fixed;
  702. top: 10%;
  703. left: 10%;
  704. z-index: 10000;
  705. background: #222;
  706. border-color: #333;
  707. border-width: 5px;
  708. border-style: solid;
  709. }
  710. .popout-menu::-webkit-scrollbar {
  711. height: 2px;
  712. }
  713. .popout-menu::-webkit-scrollbar-button {
  714. width: 0px;
  715. height: 0px;
  716. }
  717. .popout-menu::-webkit-scrollbar-thumb {
  718. background: #e1e1e1;
  719. border: 0px none #ffffff;
  720. border-radius: 50px;
  721. }
  722. .popout-menu::-webkit-scrollbar-thumb:hover {
  723. background: #ffffff;
  724. }
  725. .popout-menu::-webkit-scrollbar-thumb:active {
  726. background: #000000;
  727. }
  728. .popout-menu::-webkit-scrollbar-track {
  729. background: #00000000;
  730. border: 0px none #ffffff;
  731. border-radius: 50px;
  732. }
  733. .popout-menu::-webkit-scrollbar-track:hover {
  734. background: #666666;
  735. }
  736. .popout-menu::-webkit-scrollbar-track:active {
  737. background: #333333;
  738. }
  739. .popout-menu::-webkit-scrollbar-corner {
  740. background: transparent;
  741. }
  742. .popout-menu.visible {
  743. display: flex;
  744. }
  745. .menu-button {
  746. height: 56pt;
  747. width: 56pt;
  748. font-size: 36pt;
  749. padding: 5px;
  750. }
  751. .menu-button-holder {
  752. display: flex;
  753. align-items: center;
  754. }
  755. .menu-text {
  756. font-size: 24pt;
  757. margin-left: 6pt;
  758. }
  759. #options-entity-defaults > button {
  760. word-break: break-word;
  761. }
  762. button {
  763. border: 3px;
  764. }
  765. button:hover {
  766. background: #555;
  767. }
  768. button:enabled:active {
  769. background: #aaa;
  770. }
  771. .toast {
  772. position: absolute;
  773. bottom: 10%;
  774. left: 50%;
  775. animation-name: toast-animation;
  776. animation-duration: 5s;
  777. animation-timing-function: linear;
  778. z-index: 99999;
  779. }
  780. @keyframes toast-animation {
  781. 0% {
  782. transform: translate(-50%, 0);
  783. opacity: 1;
  784. }
  785. 50% {
  786. transform: translate(-50%, -10vh);
  787. opacity: 1;
  788. }
  789. 100% {
  790. transform: translate(-50%, -20vh);
  791. opacity: 0;
  792. }
  793. }
  794. body.flag-nsfw .nsfw {
  795. color: red;
  796. font-style: bold;
  797. }
  798. select {
  799. background: #111;
  800. color: #eee;
  801. border-color: #444;
  802. }
  803. select > option {
  804. color: #eee;
  805. }
  806. button:focus,
  807. select:focus,
  808. input:focus {
  809. outline-color: #eee;
  810. }
  811. input {
  812. background: #111;
  813. color: #eee;
  814. border-color: #444;
  815. }
  816. button {
  817. background: #111;
  818. color: #ddd;
  819. border-color: #666;
  820. }
  821. .settings-holder {
  822. display: flex;
  823. align-items: center;
  824. justify-content: space-between;
  825. padding: 10px 20px 10px 10px;
  826. border-color: #222;
  827. border-width: 5px;
  828. border-style: solid;
  829. max-width: 400pt;
  830. }
  831. .settings-holder.enabled {
  832. background: green;
  833. border-color: darkgreen;
  834. }
  835. .settings-desc {
  836. margin-left: 8pt;
  837. user-select: none;
  838. -webkit-user-select: none;
  839. flex: 1;
  840. }
  841. .settings-holder.disabled {
  842. background: gray;
  843. border-color: darkslategray;
  844. }
  845. .settings-name {
  846. font-size: 200%;
  847. margin-left: 8pt;
  848. user-select: none;
  849. -webkit-user-select: none;
  850. max-width: 200pt;
  851. width: 200pt;
  852. }
  853. .settings-vertical {
  854. display: flex;
  855. flex-direction: column;
  856. width: 250pt;
  857. max-width: 250pt;
  858. min-width: 250pt;
  859. }
  860. .settings-holder > select {
  861. height: 100%;
  862. background: #555;
  863. font-size: 16pt;
  864. }
  865. .settings-holder.enabled > select {
  866. background: darkgreen;
  867. }
  868. .filter-button > i {
  869. color: gray;
  870. }
  871. .button-counter {
  872. position: absolute;
  873. color: white;
  874. opacity: 0.75;
  875. width: 25%;
  876. height: 25%;
  877. font-size: 16pt;
  878. top: 0%;
  879. left: 0%;
  880. z-index: 1;
  881. user-select: none;
  882. -webkit-user-select: none;
  883. }
  884. body.screenshot-mode #menubar,
  885. body.screenshot-mode #options,
  886. body.screenshot-mode .scroll-button {
  887. display: none;
  888. }
  889. #ground {
  890. --ground-color: #000;
  891. background-color: var(--ground-color);
  892. }