less copy protection, more size visualization
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

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