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

488 строки
8.1 KiB

  1. @import url('https://fonts.googleapis.com/css?family=Coda&display=swap');
  2. html {
  3. height: 100%;
  4. overflow-x: hidden;
  5. overflow-y: hidden;
  6. color: #eee;
  7. }
  8. body {
  9. background: #111;
  10. display: flex;
  11. flex-direction: column;
  12. align-items: center;
  13. justify-content: flex-start;
  14. height: 100%;
  15. width: 100%;
  16. font-family: 'Coda', cursive;
  17. }
  18. .entity-box {
  19. position: absolute;
  20. --height: 100px;
  21. max-height: var(--height);
  22. height: var(--height);
  23. text-align: center;
  24. -webkit-user-drag: none;
  25. -khtml-user-drag: none;
  26. -moz-user-drag: none;
  27. -o-user-drag: none;
  28. pointer-events: none;
  29. 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);
  30. }
  31. .entity-image {
  32. position: absolute;
  33. height: 100%;
  34. pointer-events: auto;
  35. -webkit-user-drag: none;
  36. -khtml-user-drag: none;
  37. -moz-user-drag: none;
  38. -o-user-drag: none;
  39. --offset: -100%;
  40. transform: translate(-50%, var(--offset));
  41. }
  42. .entity-name {
  43. display: none;
  44. position: absolute;
  45. top: calc(-100% + var(--extra) / 2);
  46. left: 0%;
  47. transform: translate(-50%, -36px);
  48. font-size: 24px;
  49. pointer-events: none;
  50. max-width: 250px;
  51. width: 250px;
  52. transition: all 0s;
  53. }
  54. body.toggle-entity-name .entity-name {
  55. display: inline;
  56. }
  57. .entity-box.selected > img {
  58. filter: drop-shadow(0px 0px 5px gold);
  59. }
  60. body.toggle-entity-glow .entity-box:not(.selected) > img{
  61. filter: drop-shadow(0px 0px 2px white);
  62. }
  63. #main-area {
  64. min-height: 0px;
  65. display: flex;
  66. flex: 1 1 90vh;
  67. width: 100%;
  68. flex-direction: row;
  69. }
  70. #options {
  71. min-width: 120pt;
  72. flex: 1 0 15vw;
  73. display: flex;
  74. justify-content: start;
  75. flex-direction: column;
  76. background: #444;
  77. overflow-x: hidden;
  78. overflow-y: scroll;
  79. height: 100%;
  80. scrollbar-color: #e1e1e1 #888;
  81. }
  82. #options-attribution {
  83. display: none;
  84. }
  85. #options::-webkit-scrollbar {
  86. height: 2px;
  87. }
  88. #options::-webkit-scrollbar-button {
  89. width: 0px;
  90. height: 0px;
  91. }
  92. #options::-webkit-scrollbar-thumb {
  93. background: #e1e1e1;
  94. border: 0px none #ffffff;
  95. border-radius: 50px;
  96. }
  97. #options::-webkit-scrollbar-thumb:hover {
  98. background: #ffffff;
  99. }
  100. #options::-webkit-scrollbar-thumb:active {
  101. background: #000000;
  102. }
  103. #options::-webkit-scrollbar-track {
  104. background: #00000000;
  105. border: 0px none #ffffff;
  106. border-radius: 50px;
  107. }
  108. #options::-webkit-scrollbar-track:hover {
  109. background: #666666;
  110. }
  111. #options::-webkit-scrollbar-track:active {
  112. background: #333333;
  113. }
  114. #options::-webkit-scrollbar-corner {
  115. background: transparent;
  116. }
  117. .options-two-buttons {
  118. display: flex;
  119. justify-content: space-evenly;
  120. }
  121. .options-row {
  122. display: flex;
  123. text-align: center;
  124. width: 100%;
  125. margin-top: 10px;
  126. margin-bottom: 10px;
  127. }
  128. .options-block {
  129. display: flex;
  130. text-align: center;
  131. min-width: 100%;
  132. flex-direction: column;
  133. }
  134. @media (max-aspect-ratio: 1/1) {
  135. .options-row {
  136. flex-direction: column;
  137. }
  138. .options-row > .options-field-numeric {
  139. width: 100%;
  140. }
  141. .options-row > .options-field-unit {
  142. width: 100%;
  143. }
  144. }
  145. .options-header {
  146. text-align: center;
  147. font-size: 24pt;
  148. margin-top: 10px;
  149. margin-bottom: 10px;
  150. }
  151. .options-selector {
  152. font-size: 150%;
  153. width: 100%;
  154. }
  155. #entities {
  156. position: absolute;
  157. user-select: none;
  158. width: 100%;
  159. height: 100%;
  160. }
  161. #world {
  162. position: relative;
  163. flex: 1 0 85vw;
  164. height: 100%;
  165. overflow: hidden;
  166. }
  167. #menubar {
  168. display: flex;
  169. flex: 1 0 5vh;
  170. flex-direction: row;
  171. justify-content: space-evenly;
  172. align-items: center;
  173. flex-wrap: wrap;
  174. min-width: 100vw;
  175. background: #222;
  176. }
  177. #menubar.hover-delete {
  178. background: #922;
  179. }
  180. .menubar-group {
  181. display: flex;
  182. flex-direction: row;
  183. justify-content: center;
  184. align-items: center;
  185. }
  186. .menu-item {
  187. font-size: 24px;
  188. color: #ccc;
  189. margin: 20px;
  190. }
  191. select.menu-item {
  192. color: #000;
  193. }
  194. #display {
  195. width: 100%;
  196. height: 100%;
  197. background: #333;
  198. }
  199. #options .options-label {
  200. flex: 0 1;
  201. width: 100%;
  202. font-size: 150%;
  203. }
  204. .options-label {
  205. text-align: center;
  206. }
  207. .options-row .options-field-numeric {
  208. flex: 1 1 60%;
  209. min-width: 0px;
  210. font-size: 150%;
  211. }
  212. .options-row .options-field-text {
  213. flex: 1 1 100%;
  214. min-width: 0px;
  215. font-size: 150%;
  216. }
  217. .options-row .options-field-unit {
  218. flex: 1 1 40%;
  219. min-width: 0px;
  220. font-size: 150%;
  221. }
  222. .options-row .options-button {
  223. flex: 1;
  224. width: 100%;
  225. font-size: 150%;
  226. }
  227. .options-block .options-button {
  228. flex: 1;
  229. width: 100%;
  230. font-size: 150%;
  231. }
  232. .options-row label {
  233. flex: 1;
  234. width: 100%;
  235. font-size: 150%;
  236. }
  237. body #test-canvas {
  238. position: fixed;
  239. top: 500vh;
  240. }
  241. .switch {
  242. height: 24pt;
  243. }
  244. .switch input {
  245. transform: scale(2);
  246. }
  247. .bottom-name {
  248. display: none;
  249. text-align: center;
  250. position: fixed;
  251. width: 150px;
  252. height: 50px;
  253. transform: translate(-50%, 20pt);
  254. }
  255. body.toggle-bottom-name .bottom-name {
  256. display: inline;
  257. }
  258. #spawners > button {
  259. display: none;
  260. font-size: 24pt;
  261. }
  262. #spawners > select {
  263. display: none;
  264. font-size: 24pt;
  265. }
  266. #spawners > select#category-picker {
  267. display: inline;
  268. }
  269. #spawners > button.category-visible,
  270. #spawners > select.category-visible {
  271. display: inline;
  272. }
  273. #menubar button {
  274. font-size: 24pt;
  275. }
  276. #help {
  277. display: none;
  278. flex-direction: column;
  279. justify-content: space-evenly;
  280. align-items: center;
  281. position: absolute;
  282. width: 60vw;
  283. height: 60vh;
  284. margin: 0pt;
  285. padding-top: 20vh;
  286. padding-bottom: 20vh;
  287. padding-left: 20vw;
  288. padding-right: 20vw;
  289. transition: 1s;
  290. text-align: center;
  291. background: #333;
  292. opacity: 0;
  293. z-index: 9999999;
  294. }
  295. #help.visible {
  296. display: flex;
  297. opacity: 0.9;
  298. transition: 1s;
  299. }
  300. #help h1 {
  301. font-size: 150%;
  302. }
  303. #help p {
  304. font-size: 125%;
  305. }
  306. #help button {
  307. width: 20vw;
  308. height: 10vh;
  309. font-size: 9vh;
  310. }
  311. a {
  312. color: #999;
  313. }
  314. #options-attribution-authors {
  315. text-align: center;
  316. }
  317. #options-attribution-owners {
  318. text-align: center;
  319. }
  320. #options-attribution-source {
  321. text-align: center;
  322. }
  323. .floating-slider {
  324. position: absolute;
  325. z-index: 1000;
  326. width: 250px;
  327. height: 50px;
  328. }
  329. #slider-scale {
  330. top: 1%;
  331. left: 5%;
  332. }
  333. #slider-scale:before {
  334. content: "World scale";
  335. position: absolute;
  336. left: 50%;
  337. transform: translate(-50%, 0%);
  338. font-size: 20px;
  339. }
  340. #slider-entity-scale {
  341. top: 1%;
  342. right: 5%;
  343. }
  344. #slider-entity-scale:before {
  345. content: "Entity scale";
  346. position: absolute;
  347. left: 50%;
  348. transform: translate(-50%, 0%);
  349. font-size: 20px;
  350. }
  351. .no-transition {
  352. transition: 0s !important;
  353. }
  354. .corner-ribbon {
  355. width: 200px;
  356. background: #e43;
  357. position: fixed;
  358. top: 25px;
  359. left: -50px;
  360. text-align: center;
  361. padding: 10px;
  362. letter-spacing: 1px;
  363. color: #f0f0f0;
  364. transform: rotate(-45deg);
  365. -webkit-transform: rotate(-45deg);
  366. }
  367. .corner-ribbon.bottom-right{
  368. top: auto;
  369. right: -50px;
  370. bottom: 25px;
  371. left: auto;
  372. transform: rotate(-45deg);
  373. -webkit-transform: rotate(-45deg);
  374. }
  375. a.corner-ribbon {
  376. text-decoration: none;
  377. }
  378. input[type=checkbox] {
  379. transform: scale(2);
  380. margin-left: 10px;
  381. margin-right: 10px;
  382. }
  383. input ~ label {
  384. user-select: none;
  385. }
  386. body.toggle-height-bars .height-bar {
  387. display: block;
  388. }
  389. .height-bar {
  390. display: none;
  391. min-width: calc(var(--xpos));
  392. min-height: 3px;
  393. height: 3px;
  394. position: absolute;
  395. opacity: 50%;
  396. background: repeating-linear-gradient(90deg, #ffffff, #ffffff 20px, #ffffff00 20px, #ffffff00 40px);
  397. top: calc(-100% + var(--extra));
  398. left: calc(-1 * var(--xpos));
  399. transition: 0s all;
  400. z-index: -1;
  401. }
  402. .height-bar::before {
  403. display: block;
  404. background: gray;
  405. position: absolute;
  406. content: var(--entity-height);
  407. transition: 0s all;
  408. }
  409. .height-bar::after {
  410. display: block;
  411. min-width: 24px;
  412. min-height: 3px;
  413. background: #ffffff;
  414. position: absolute;
  415. left: calc(var(--xpos) - 24px);
  416. transition: 0s all;
  417. content: "";
  418. }