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