big steppy
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 

964 рядки
14 KiB

  1. .light {
  2. color: #000;
  3. background: #dbdbdb;
  4. font-family: Arial;
  5. }
  6. * {
  7. box-sizing: border-box;
  8. }
  9. .dark {
  10. color: #eee;
  11. font-family: Arial;
  12. background: #111;
  13. }
  14. #character-preset-categories {
  15. font-size: 24px;
  16. }
  17. #character-presets {
  18. font-size: 24px;
  19. }
  20. #export-area {
  21. max-width: 80%;
  22. width: 80%;
  23. }
  24. body.dark input {
  25. color: #eee;
  26. background: #444;
  27. background-color: rgba(0, 0, 0, 0.3);
  28. }
  29. body.dark select {
  30. color: #eee;
  31. background: #444;
  32. background-color: rgba(0, 0, 0, 0.3);
  33. }
  34. body.light button {
  35. color: #000;
  36. background: #ddd;
  37. border-width: 1px;
  38. border-color: #000;
  39. background-color: rgba(255, 255, 255, 0.3);
  40. }
  41. body.dark button {
  42. color: #eee;
  43. background: #111;
  44. border-width: 1px;
  45. background-color: rgba(0, 0, 0, 0.4);
  46. }
  47. body.dark div {
  48. background-color: transparent;
  49. }
  50. .game-area {
  51. display: none;
  52. margin: auto;
  53. width: 100vw;
  54. height: 100vh;
  55. gap: 16px;
  56. }
  57. #stat-container {
  58. grid-area: stats;
  59. }
  60. #action-panel {
  61. grid-area: actions;
  62. }
  63. #log {
  64. grid-area: log;
  65. display: none;
  66. }
  67. #react-log {
  68. grid-area: react-log;
  69. display: none;
  70. }
  71. #growth-amount-buttons {
  72. width: 100%;
  73. display: grid;
  74. grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  75. grid-auto-rows: 48pt;
  76. }
  77. @media (max-aspect-ratio: 1/1){
  78. .game-area {
  79. grid-template-areas:
  80. "stats actions"
  81. "log react-log";
  82. grid-template-columns: 1fr 1fr;
  83. grid-template-rows: 1fr 2fr;
  84. width: 95vw;
  85. height: 95vh;
  86. }
  87. #stat-container {
  88. }
  89. #action-panel {
  90. }
  91. #log {
  92. }
  93. #react-log {
  94. }
  95. }
  96. @media (min-aspect-ratio: 1/1){
  97. .game-area {
  98. grid-template-areas:
  99. "stats log react-log actions";
  100. grid-template-columns: 1fr 2fr 2fr 1fr;
  101. width: 90vw;
  102. height: 90vh;
  103. }
  104. #log {
  105. }
  106. #react-log {
  107. }
  108. }
  109. .log {
  110. overflow: auto;
  111. padding: 25px;
  112. box-sizing: border-box;
  113. }
  114. body.light #react-log {
  115. color: #000;
  116. background-color: rgba(240, 240, 255, 0.3);
  117. }
  118. body.light #react-log div {
  119. background-color: transparent;
  120. }
  121. body.dark #react-log {
  122. color: #eee;
  123. background-color: rgba(0, 0, 0, 0.4);
  124. }
  125. body.dark #react-log div {
  126. background-color: transparent;
  127. }
  128. body.light #log {
  129. color: #000;
  130. background-color: rgba(240, 240, 255, 0.3);
  131. }
  132. body.light #log div {
  133. background-color: transparent;
  134. }
  135. body.dark #log {
  136. color: #eee;
  137. background-color: rgba(0, 0, 0, 0.4);
  138. }
  139. body.dark #log div {
  140. background-color: transparent;
  141. }
  142. .stat-header-self {
  143. font-weight: bold;
  144. font-size: 150%;
  145. min-width:250px;
  146. }
  147. .stat-header {
  148. font-weight: bold;
  149. font-size: 150%;
  150. min-width:130px;
  151. }
  152. .stat-line {
  153. font-weight: normal;
  154. font-size: 12pt;
  155. }
  156. .stat-line-hidden {
  157. font-weight: normal;
  158. font-size: 12pt;
  159. }
  160. .stat-line-hidden {
  161. display: none;
  162. position: relative;
  163. }
  164. .stat-line-hidden:before {
  165. content: attr(data-stat);
  166. position: absolute;
  167. text-align: center;
  168. top: 5px;
  169. left: 0;
  170. right: 0;
  171. }
  172. .stat-line-hidden .value {
  173. background-color: #0f0;
  174. display: inline-block;
  175. height: 24px;
  176. width: attr(data-percent percentage);
  177. }
  178. progress {
  179. background: blue;
  180. }
  181. .stat-percent-full {
  182. background: #f00;
  183. }
  184. .sidebar {
  185. display: none;
  186. flex-direction: column;
  187. }
  188. .preset-selector {
  189. height: 25px;
  190. }
  191. .option-container {
  192. margin: auto;
  193. }
  194. .button-container {
  195. flex-wrap: wrap;
  196. flex-direction: column;
  197. flex: 1;
  198. }
  199. .stat-container {
  200. width: 100%;
  201. display: flex;
  202. flex-wrap: wrap;
  203. flex-direction: row;
  204. flex: 1
  205. }
  206. .action-part-container {
  207. max-height: 1000px;
  208. display: flex;
  209. flex-wrap: wrap;
  210. }
  211. #action-panel {
  212. display: none;
  213. }
  214. .option-button {
  215. font-size: 20px;
  216. width: 120px;
  217. height: 75px;
  218. }
  219. #button-start {
  220. width:300px;
  221. height:200px;
  222. font-size: 50px;
  223. }
  224. .option-form {
  225. font-size: 16px;
  226. width: 300px;
  227. height: 100px;
  228. }
  229. .stat-button {
  230. font-size: 18px;
  231. width: 50%;
  232. height: 75px;
  233. }
  234. .action-button {
  235. font-size: 18px;
  236. width: 50%;
  237. height: 75px;
  238. display: none;
  239. }
  240. body.light .action-button-disabled {
  241. color: #777 !important;
  242. background-color: rgba(150, 0, 0, 0.25);
  243. }
  244. body.dark .action-button-disabled {
  245. color: #aaa !important;
  246. background-color: rgba(150, 0, 0, 0.25);
  247. }
  248. #victim-table {
  249. display: none;
  250. margin: auto;
  251. width: 80%;
  252. }
  253. .victim-table-cell {
  254. width: 10%;
  255. }
  256. .reveal-if-active {
  257. opacity: 0;
  258. max-height: 0;
  259. overflow: hidden;
  260. }
  261. input[type="radio"]:checked ~ .reveal-if-active,
  262. input[type="checkbox"]:checked ~ .reveal-if-active {
  263. opacity: 1;
  264. max-height: 500000px; /* little bit of a magic number :( */
  265. overflow: visible;
  266. }
  267. .flex-outer {
  268. width: 100%;
  269. display: flex;
  270. flex-direction: row;
  271. flex-wrap: wrap;
  272. text-align: center;
  273. justify-content: center;
  274. padding: 0px;
  275. }
  276. .custom-category {
  277. text-align: center;
  278. margin: 10px;
  279. width: 500px;
  280. }
  281. body.dark .custom-category.wide-category,
  282. body.light .custom-category.wide-category {
  283. width: 90%;
  284. background: none;
  285. }
  286. .custom-category-sub {
  287. text-align: center;
  288. margin: 10px;
  289. width: 100%;
  290. padding: 0px;
  291. }
  292. body.light .custom-category {
  293. background: #ddd;
  294. background-color: rgba(255, 255, 255, 0.4);
  295. }
  296. body.dark .custom-category {
  297. background: #222;
  298. background-color: rgba(0, 0, 0, 0.4);
  299. }
  300. body.dark .custom-category div {
  301. background: #222;
  302. background-color: transparent;
  303. }
  304. .custom-header-static {
  305. user-select: none;
  306. font-size: 250%;
  307. margin: 10px;
  308. display: inline-block;
  309. }
  310. body.light .custom-header-static {
  311. background: #ddd;
  312. }
  313. body.dark .custom-header-static {
  314. background: #555;
  315. }
  316. .custom-header {
  317. user-select: none;
  318. font-size: 250%;
  319. margin: 10px;
  320. display: inline-block;
  321. border-style: dotted;
  322. border-width: 1px;
  323. border-radius: 5px;
  324. }
  325. .custom-category-sub .custom-header {
  326. font-size: 200%;
  327. }
  328. .custom-category-sub .custom-category-sub .custom-header {
  329. font-size: 150%;
  330. }
  331. body.light .custom-header {
  332. color: #aaa;
  333. background-color: rgba(255, 255, 255, 0.3);
  334. border-width: 1px;
  335. padding-left: 10px;
  336. padding-right: 10px;
  337. border-color: #000;
  338. }
  339. body.dark .custom-header {
  340. color: #555;
  341. background-color: rgba(0, 0, 0, 0.3);
  342. padding: 5px;
  343. padding-left: 10px;
  344. padding-right: 10px;
  345. }
  346. body.light input[type="checkbox"]:checked+
  347. .custom-header {
  348. color: #000;
  349. border-style: solid;
  350. background-color: rgba(230, 230, 230, 0.3);
  351. }
  352. body.dark input[type="checkbox"]:checked+
  353. .custom-header {
  354. color: #fff;
  355. border-style: solid;
  356. background-color: rgba(0, 0, 0, 0.3);
  357. }
  358. .custom-header-checkbox {
  359. display: none;
  360. }
  361. .flex-outer li {
  362. display: flex;
  363. flex-wrap: wrap;
  364. align-items: center;
  365. text-align: center;
  366. width: 500px;
  367. margin: 10px auto;
  368. }
  369. .flex-outer input[type="radio"],
  370. .flex-outer input[type="checkbox"] {
  371. display: none;
  372. }
  373. .flex-outer input[type="radio"] + label:not(.custom-header),
  374. .flex-outer input[type="checkbox"] + label:not(.custom-header) {
  375. user-select: none;
  376. flex: 1 0 100%;
  377. font-size: 24px;
  378. }
  379. body.dark .flex-outer input[type="radio"] + label:not(.custom-header),
  380. body.dark .flex-outer input[type="checkbox"] + label:not(.custom-header) {
  381. color: #888;
  382. background: #311;
  383. }
  384. body.dark .flex-outer input[type="radio"]:checked + label:not(.custom-header),
  385. body.dark .flex-outer input[type="checkbox"]:checked + label:not(.custom-header) {
  386. color: #fff;
  387. background: #131;
  388. }
  389. body.light .flex-outer input[type="radio"] + label:not(.custom-header),
  390. body.light .flex-outer input[type="checkbox"] + label:not(.custom-header) {
  391. color: #555;
  392. background: #faa;
  393. }
  394. body.light .flex-outer input[type="radio"]:checked + label:not(.custom-header),
  395. body.light .flex-outer input[type="checkbox"]:checked + label:not(.custom-header) {
  396. color: #111;
  397. background: #afa;
  398. }
  399. .flex-outer {
  400. user-select: none;
  401. }
  402. .flex-outer label {
  403. flex: 0 1 40%;
  404. text-align: right;
  405. margin-right: 12pt;
  406. }
  407. .flex-outer label.solo {
  408. text-align: center;
  409. }
  410. .flex-outer label + * {
  411. flex: 1 1 20%;
  412. }
  413. .preview {
  414. flex: 1 1 10%;
  415. }
  416. .flex-outer-sub {
  417. padding: 0px;
  418. align-items: center;
  419. }
  420. .flex-outer-sub li {
  421. display: flex;
  422. flex-wrap: nowrap;
  423. align-items: center;
  424. margin: 5px auto;
  425. width: 90%;
  426. }
  427. body.light .flex-outer-sub {
  428. background: #c8c8c8;
  429. }
  430. body.light .flex-outer-sub .flex-outer-sub {
  431. background: #c0c0c0;
  432. }
  433. body.dark .flex-outer-sub {
  434. background: #181818;
  435. }
  436. body.dark .flex-outer-sub .flex-outer-sub {
  437. background: #202020;
  438. }
  439. body.light .has-tooltip {
  440. position: relative;
  441. display: inline-block;
  442. border-bottom: 1px dotted #777;
  443. }
  444. body.dark .has-tooltip {
  445. position: relative;
  446. display: inline-block;
  447. border-bottom: 1px dotted #777;
  448. }
  449. body.light a {
  450. color: #0000FF;
  451. text-decoration: none;
  452. }
  453. body.light a:visited {
  454. color: #0000ff;
  455. }
  456. body.light a:hover {
  457. color: #2222EE;
  458. }
  459. body.dark a {
  460. color: #8888FF;
  461. text-decoration: none;
  462. }
  463. body.dark a:visited {
  464. color: #8888DD;
  465. }
  466. body.dark a:hover {
  467. color: #AAAAEE;
  468. }
  469. a:hover {
  470. text-shadow: 0px 0px 5px #eeeeff;
  471. text-decoration: none;
  472. }
  473. .character-build {
  474. margin: 50px;
  475. width: 90%;
  476. text-align: center;
  477. }
  478. #grow-panel {
  479. width: 100%;
  480. }
  481. th {
  482. font-weight: normal;
  483. }
  484. ul {
  485. list-style: none;
  486. }
  487. .action-tab {
  488. flex-wrap: wrap;
  489. display: none;
  490. width: 100%;
  491. }
  492. .action-part-button {
  493. border: 1px;
  494. font-size: 30px;
  495. width: 50%;
  496. height: 70px;
  497. display: none;
  498. }
  499. @media (max-aspect-ratio: 1) {
  500. .action-part-button {
  501. width: 33%;
  502. }
  503. }
  504. body.light .action-part-button.active {
  505. background: #ccc;
  506. }
  507. body.dark .action-part-button.active {
  508. background: #555;
  509. }
  510. /* SRC: https://stackoverflow.com/questions/29738787/filling-water-animation/29740828 */
  511. .meter {
  512. border-radius: 0%;
  513. width: 10%;
  514. height: 150px;
  515. overflow: hidden;
  516. backface-visibility: hidden;
  517. transform: translate3d(0, 0, 0);
  518. display: inline-block;
  519. }
  520. body.light .meter {
  521. background: #ccc !important;
  522. }
  523. body.dark .meter {
  524. background: #222 !important;
  525. }
  526. .meter .meterLabel {
  527. z-index: 1;
  528. writing-mode: vertical-lr;
  529. text-orientation: upright;
  530. background: none;
  531. transform: rotate(0deg);
  532. font-size: 12px;
  533. text-align: center;
  534. position: absolute;
  535. left: 50%;
  536. top: 50%;
  537. transform: translate(-50%, -50%);
  538. }
  539. body.light .meterLabel {
  540. color: #000;
  541. }
  542. body.dark .meterLabel {
  543. color: #fff;
  544. mix-blend-mode: exclusion;
  545. }
  546. .meter {
  547. display: none
  548. }
  549. .meter .fill {
  550. position: absolute;
  551. top: 0;
  552. left: 0;
  553. background: none;
  554. pointer-events: none;
  555. }
  556. .meter #waveShape {
  557. animation-name: waveAction;
  558. animation-iteration-count: infinite;
  559. animation-timing-function: linear;
  560. animation-duration: 0.5s;
  561. width:300px;
  562. height: 150px;
  563. fill: #04ACFF;
  564. }
  565. .meter#arousalMeter #waveShape {
  566. fill: #FF0000;
  567. }
  568. .meter#orgasmMeter #waveShape {
  569. fill: #FFFFFF;
  570. }
  571. .meter#edgeMeter #waveShape {
  572. fill: #FF6600;
  573. }
  574. .meter#cumMeter #waveShape {
  575. fill: #EEEEEE;
  576. }
  577. .meter#femcumMeter #waveShape {
  578. fill: #999999;
  579. }
  580. .meter#milkMeter #waveShape {
  581. fill: #FFFFFF;
  582. }
  583. .meter#gasMeter #waveShape {
  584. fill: #33FF33;
  585. }
  586. .meter#pissMeter #waveShape {
  587. fill: #FFFF33;
  588. }
  589. .meter#scatMeter #waveShape {
  590. animation-duration: 2s;
  591. fill: #552222;
  592. }
  593. @keyframes fillAction {
  594. 0% {
  595. transform: translate(0, 150px);
  596. }
  597. 100% {
  598. transform: translate(0, -5px);
  599. }
  600. }
  601. @keyframes waveAction {
  602. 0% {
  603. transform: translate(-150px, 0);
  604. }
  605. 100% {
  606. transform: translate(0, 0);
  607. }
  608. }
  609. /* stolen directly from w3schools lol */
  610. .shaking {
  611. animation: shake 1s;
  612. animation-iteration-count: infinite;
  613. }
  614. @keyframes shake {
  615. 0% { transform: translate(0px, 0px); }
  616. 10% { transform: translate(0px, -2px); }
  617. 25% { transform: translate(0px, 0px); }
  618. 100% { transform: translate(0px, 0px); }
  619. }
  620. .growth-box {
  621. width: 100%;
  622. display: flex;
  623. flex-wrap: wrap;
  624. flex-direction: column;
  625. text-align: left;
  626. }
  627. #growth-part-select {
  628. display: block;
  629. height: 100px;
  630. width: 100%;
  631. font-size: 48px;
  632. text-align: center;
  633. }
  634. .growth-part {
  635. display: none;
  636. }
  637. .growth-part-active {
  638. background: #555 !important;
  639. }
  640. .growth-amount {
  641. display: block;
  642. font-size: 200%;
  643. }
  644. .save-version {
  645. display: none;
  646. }
  647. #custom-characters {
  648. font-size: 24px;
  649. }
  650. .intro-text {
  651. font-size: 18px;
  652. }
  653. .log::-webkit-scrollbar {
  654. width: 3px;
  655. height: 2px;
  656. }
  657. .log::-webkit-scrollbar-button {
  658. width: 0px;
  659. height: 0px;
  660. }
  661. .log::-webkit-scrollbar-thumb {
  662. background: #e1e1e1;
  663. border: 0px none #ffffff;
  664. border-radius: 50px;
  665. }
  666. .log::-webkit-scrollbar-thumb:hover {
  667. background: #ffffff;
  668. }
  669. .log::-webkit-scrollbar-thumb:active {
  670. background: #000000;
  671. }
  672. .log::-webkit-scrollbar-track {
  673. background: #666666;
  674. border: 0px none #ffffff;
  675. border-radius: 50px;
  676. }
  677. .log::-webkit-scrollbar-track:hover {
  678. background: #666666;
  679. }
  680. .log::-webkit-scrollbar-track:active {
  681. background: #333333;
  682. }
  683. .log::-webkit-scrollbar-corner {
  684. background: transparent;
  685. }
  686. .custom-label {
  687. text-align: center;
  688. font-size: 30px;
  689. margin: auto;
  690. padding-top: 6px;
  691. padding-bottom: 6px;
  692. user-select: none;
  693. }
  694. .log {
  695. --fade-animation: none;
  696. scrollbar-color: #e1e1e1 #888;
  697. scrollbar-width: thin;
  698. }
  699. .log > div {
  700. animation: var(--fade-animation);
  701. animation-fill-mode: forwards;
  702. }
  703. @keyframes log-dim {
  704. 0% {
  705. opacity: 1;
  706. }
  707. 70% {
  708. opacity: 1;
  709. }
  710. 100% {
  711. opacity: 0.6;
  712. }
  713. }
  714. @keyframes log-fade {
  715. 0% {
  716. opacity: 1;
  717. }
  718. 70% {
  719. opacity: 1;
  720. height: auto;
  721. }
  722. 99% {
  723. opacity: 0;
  724. height: auto;
  725. }
  726. 100% {
  727. opacity: 0;
  728. height: 0;
  729. }
  730. }
  731. body {
  732. --main-order: 1;
  733. --body-part-order-banner: 2;
  734. --body-part-order: 3;
  735. --nsfw-order-banner: 4;
  736. --nsfw-order: 5;
  737. --alt-vore-order-banner: 6;
  738. --alt-vore-order: 7;
  739. --gross-order-banner: 8;
  740. --gross-order: 9;
  741. --magic-order-banner: 10;
  742. --magic-order: 11;
  743. display: flex;
  744. justify-content: center;
  745. min-height: 100vh;
  746. margin: 0;
  747. }
  748. .sheet-group-main {
  749. order: var(--main-order);
  750. }
  751. .sheet-group-body-part {
  752. order: var(--body-part-order);
  753. }
  754. .group-banner.sheet-group-body-part {
  755. order: var(--body-part-order-banner);
  756. }
  757. .sheet-group-nsfw {
  758. order: var(--nsfw-order);
  759. }
  760. .group-banner.sheet-group-nsfw {
  761. order: var(--nsfw-order-banner);
  762. }
  763. .sheet-group-alt-vore {
  764. order: var(--alt-vore-order);
  765. }
  766. .group-banner.sheet-group-alt-vore {
  767. order: var(--alt-vore-order-banner);
  768. }
  769. .sheet-group-gross {
  770. order: var(--gross-order);
  771. }
  772. .group-banner.sheet-group-gross {
  773. order: var(--gross-order-banner);
  774. }
  775. .sheet-group-magic {
  776. order: var(--magic-order);
  777. }
  778. .group-banner.sheet-group-magic {
  779. order: var(--magic-order-banner);
  780. }
  781. .group-banner {
  782. min-width: 80vw;
  783. min-height: 7vh;
  784. font-size: 6vh;
  785. margin: auto;
  786. }
  787. body.dark div.group-banner {
  788. background-color: #333;
  789. }
  790. body.light div.group-banner {
  791. background-color: #ccc;
  792. }
  793. label.group-toggle {
  794. font-size: 30pt !important;
  795. }