less copy protection, more size visualization
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

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