big steppy
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 

965 řádky
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. }
  56. #stat-container {
  57. grid-area: stats;
  58. }
  59. #action-panel {
  60. grid-area: actions;
  61. }
  62. #log {
  63. grid-area: log;
  64. display: none;
  65. }
  66. #react-log {
  67. grid-area: react-log;
  68. display: none;
  69. }
  70. #growth-amount-buttons {
  71. width: 100%;
  72. display: grid;
  73. grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  74. grid-auto-rows: 48pt;
  75. }
  76. @media (max-aspect-ratio: 1/1){
  77. .game-area {
  78. grid-template-areas:
  79. "stats actions"
  80. "log react-log";
  81. grid-template-columns: 1fr 1fr;
  82. }
  83. #stat-container {
  84. }
  85. #action-panel {
  86. }
  87. #log {
  88. }
  89. #react-log {
  90. }
  91. }
  92. @media (min-aspect-ratio: 1/1){
  93. .game-area {
  94. grid-template-areas:
  95. "stats log react-log actions";
  96. grid-template-columns: 1fr 2fr 2fr 1fr;
  97. width: 90vw;
  98. height: 90vh;
  99. }
  100. #log {
  101. }
  102. #react-log {
  103. }
  104. }
  105. .log {
  106. overflow: auto;
  107. padding: 25px;
  108. box-sizing: border-box;
  109. }
  110. body.light #react-log {
  111. color: #000;
  112. background-color: rgba(240, 240, 255, 0.3);
  113. }
  114. body.light #react-log div {
  115. background-color: transparent;
  116. }
  117. body.dark #react-log {
  118. color: #eee;
  119. background-color: rgba(0, 0, 0, 0.4);
  120. }
  121. body.dark #react-log div {
  122. background-color: transparent;
  123. }
  124. body.light #log {
  125. color: #000;
  126. background-color: rgba(240, 240, 255, 0.3);
  127. }
  128. body.light #log div {
  129. background-color: transparent;
  130. }
  131. body.dark #log {
  132. color: #eee;
  133. background-color: rgba(0, 0, 0, 0.4);
  134. }
  135. body.dark #log div {
  136. background-color: transparent;
  137. }
  138. .stat-header-self {
  139. font-weight: bold;
  140. font-size: 150%;
  141. min-width:250px;
  142. }
  143. .stat-header {
  144. font-weight: bold;
  145. font-size: 150%;
  146. min-width:130px;
  147. }
  148. .stat-line {
  149. font-weight: normal;
  150. font-size: 12pt;
  151. }
  152. .stat-line-hidden {
  153. font-weight: normal;
  154. font-size: 12pt;
  155. }
  156. .stat-line-hidden {
  157. display: none;
  158. position: relative;
  159. }
  160. .stat-line-hidden:before {
  161. content: attr(data-stat);
  162. position: absolute;
  163. text-align: center;
  164. top: 5px;
  165. left: 0;
  166. right: 0;
  167. }
  168. .stat-line-hidden .value {
  169. background-color: #0f0;
  170. display: inline-block;
  171. height: 24px;
  172. width: attr(data-percent percentage);
  173. }
  174. progress {
  175. background: blue;
  176. }
  177. .stat-percent-full {
  178. background: #f00;
  179. }
  180. .sidebar {
  181. display: none;
  182. flex-direction: column;
  183. }
  184. .preset-selector {
  185. height: 25px;
  186. }
  187. .option-container {
  188. margin: auto;
  189. }
  190. .button-container {
  191. flex-wrap: wrap;
  192. flex-direction: column;
  193. flex: 1;
  194. }
  195. .stat-container {
  196. width: 100%;
  197. display: flex;
  198. flex-wrap: wrap;
  199. flex-direction: row;
  200. flex: 1
  201. }
  202. .action-part-container {
  203. max-height: 1000px;
  204. display: flex;
  205. flex-wrap: wrap;
  206. }
  207. #action-panel {
  208. display: none;
  209. }
  210. .option-button {
  211. font-size: 20px;
  212. width: 120px;
  213. height: 75px;
  214. }
  215. #button-start {
  216. width:300px;
  217. height:200px;
  218. font-size: 50px;
  219. }
  220. .option-form {
  221. font-size: 16px;
  222. width: 300px;
  223. height: 100px;
  224. }
  225. .stat-button {
  226. font-size: 18px;
  227. width: 50%;
  228. height: 75px;
  229. }
  230. .action-button {
  231. font-size: 18px;
  232. width: 50%;
  233. height: 75px;
  234. display: none;
  235. }
  236. body.light .action-button-disabled {
  237. color: #777 !important;
  238. background-color: rgba(150, 0, 0, 0.25);
  239. }
  240. body.dark .action-button-disabled {
  241. color: #aaa !important;
  242. background-color: rgba(150, 0, 0, 0.25);
  243. }
  244. #victim-table {
  245. display: none;
  246. margin: auto;
  247. width: 80%;
  248. }
  249. .victim-table-cell {
  250. width: 10%;
  251. }
  252. .reveal-if-active {
  253. opacity: 0;
  254. max-height: 0;
  255. overflow: hidden;
  256. }
  257. input[type="radio"]:checked ~ .reveal-if-active,
  258. input[type="checkbox"]:checked ~ .reveal-if-active {
  259. opacity: 1;
  260. max-height: 500000px; /* little bit of a magic number :( */
  261. overflow: visible;
  262. }
  263. .flex-outer {
  264. width: 100%;
  265. display: flex;
  266. flex-direction: row;
  267. flex-wrap: wrap;
  268. text-align: center;
  269. justify-content: center;
  270. padding: 0px;
  271. }
  272. .custom-category {
  273. text-align: center;
  274. margin: 10px;
  275. width: 500px;
  276. }
  277. body.dark .custom-category.wide-category,
  278. body.light .custom-category.wide-category {
  279. width: 90%;
  280. background: none;
  281. }
  282. .custom-category-sub {
  283. text-align: center;
  284. margin: 10px;
  285. width: 100%;
  286. padding: 0px;
  287. }
  288. body.light .custom-category {
  289. background: #ddd;
  290. background-color: rgba(255, 255, 255, 0.4);
  291. }
  292. body.dark .custom-category {
  293. background: #222;
  294. background-color: rgba(0, 0, 0, 0.4);
  295. }
  296. body.dark .custom-category div {
  297. background: #222;
  298. background-color: transparent;
  299. }
  300. .custom-header-static {
  301. user-select: none;
  302. font-size: 250%;
  303. margin: 10px;
  304. display: inline-block;
  305. }
  306. body.light .custom-header-static {
  307. background: #ddd;
  308. }
  309. body.dark .custom-header-static {
  310. background: #555;
  311. }
  312. .custom-header {
  313. user-select: none;
  314. font-size: 250%;
  315. margin: 10px;
  316. display: inline-block;
  317. border-style: dotted;
  318. border-width: 1px;
  319. border-radius: 5px;
  320. }
  321. .custom-category-sub .custom-header {
  322. font-size: 200%;
  323. }
  324. .custom-category-sub .custom-category-sub .custom-header {
  325. font-size: 150%;
  326. }
  327. body.light .custom-header {
  328. color: #aaa;
  329. background-color: rgba(255, 255, 255, 0.3);
  330. border-width: 1px;
  331. padding-left: 10px;
  332. padding-right: 10px;
  333. border-color: #000;
  334. }
  335. body.dark .custom-header {
  336. color: #555;
  337. background-color: rgba(0, 0, 0, 0.3);
  338. padding: 5px;
  339. padding-left: 10px;
  340. padding-right: 10px;
  341. }
  342. body.light input[type="checkbox"]:checked+
  343. .custom-header {
  344. color: #000;
  345. border-style: solid;
  346. background-color: rgba(230, 230, 230, 0.3);
  347. }
  348. body.dark input[type="checkbox"]:checked+
  349. .custom-header {
  350. color: #fff;
  351. border-style: solid;
  352. background-color: rgba(0, 0, 0, 0.3);
  353. }
  354. .custom-header-checkbox {
  355. display: none;
  356. }
  357. .flex-outer li {
  358. display: flex;
  359. flex-wrap: wrap;
  360. align-items: center;
  361. text-align: center;
  362. width: 500px;
  363. margin: 10px auto;
  364. }
  365. .flex-outer input[type="radio"],
  366. .flex-outer input[type="checkbox"] {
  367. display: none;
  368. }
  369. .flex-outer input[type="radio"] + label:not(.custom-header),
  370. .flex-outer input[type="checkbox"] + label:not(.custom-header) {
  371. user-select: none;
  372. flex: 1 0 100%;
  373. font-size: 24px;
  374. }
  375. body.dark .flex-outer input[type="radio"] + label:not(.custom-header),
  376. body.dark .flex-outer input[type="checkbox"] + label:not(.custom-header) {
  377. color: #888;
  378. background: #311;
  379. }
  380. body.dark .flex-outer input[type="radio"]:checked + label:not(.custom-header),
  381. body.dark .flex-outer input[type="checkbox"]:checked + label:not(.custom-header) {
  382. color: #fff;
  383. background: #131;
  384. }
  385. body.light .flex-outer input[type="radio"] + label:not(.custom-header),
  386. body.light .flex-outer input[type="checkbox"] + label:not(.custom-header) {
  387. color: #555;
  388. background: #faa;
  389. }
  390. body.light .flex-outer input[type="radio"]:checked + label:not(.custom-header),
  391. body.light .flex-outer input[type="checkbox"]:checked + label:not(.custom-header) {
  392. color: #111;
  393. background: #afa;
  394. }
  395. .flex-outer {
  396. user-select: none;
  397. }
  398. .flex-outer label {
  399. flex: 0 1 40%;
  400. text-align: right;
  401. margin-right: 12pt;
  402. }
  403. .flex-outer label.solo {
  404. text-align: center;
  405. }
  406. .flex-outer label + * {
  407. flex: 1 1 20%;
  408. }
  409. .preview {
  410. flex: 1 1 10%;
  411. }
  412. .flex-outer-sub {
  413. padding: 0px;
  414. align-items: center;
  415. }
  416. .flex-outer-sub li {
  417. display: flex;
  418. flex-wrap: nowrap;
  419. align-items: center;
  420. margin: 5px auto;
  421. width: 90%;
  422. }
  423. body.light .flex-outer-sub {
  424. background: #c8c8c8;
  425. }
  426. body.light .flex-outer-sub .flex-outer-sub {
  427. background: #c0c0c0;
  428. }
  429. body.dark .flex-outer-sub {
  430. background: #181818;
  431. }
  432. body.dark .flex-outer-sub .flex-outer-sub {
  433. background: #202020;
  434. }
  435. body.light .has-tooltip {
  436. position: relative;
  437. display: inline-block;
  438. border-bottom: 1px dotted #777;
  439. }
  440. body.dark .has-tooltip {
  441. position: relative;
  442. display: inline-block;
  443. border-bottom: 1px dotted #777;
  444. }
  445. body.light a {
  446. color: #0000FF;
  447. text-decoration: none;
  448. }
  449. body.light a:visited {
  450. color: #0000ff;
  451. }
  452. body.light a:hover {
  453. color: #2222EE;
  454. }
  455. body.dark a {
  456. color: #8888FF;
  457. text-decoration: none;
  458. }
  459. body.dark a:visited {
  460. color: #8888DD;
  461. }
  462. body.dark a:hover {
  463. color: #AAAAEE;
  464. }
  465. a:hover {
  466. text-shadow: 0px 0px 5px #eeeeff;
  467. text-decoration: none;
  468. }
  469. .character-build {
  470. margin: 50px;
  471. width: 90%;
  472. text-align: center;
  473. }
  474. #grow-panel {
  475. width: 100%;
  476. }
  477. th {
  478. font-weight: normal;
  479. }
  480. ul {
  481. list-style: none;
  482. }
  483. .action-tab {
  484. flex-wrap: wrap;
  485. display: none;
  486. width: 100%;
  487. }
  488. .action-part-button {
  489. border: 1px;
  490. font-size: 30px;
  491. width: 50%;
  492. height: 70px;
  493. display: none;
  494. }
  495. @media (max-aspect-ratio: 1) {
  496. .action-part-button {
  497. width: 33%;
  498. }
  499. }
  500. body.light .action-part-button.active {
  501. background: #ccc;
  502. }
  503. body.dark .action-part-button.active {
  504. background: #555;
  505. }
  506. /* SRC: https://stackoverflow.com/questions/29738787/filling-water-animation/29740828 */
  507. .meter {
  508. border-radius: 0%;
  509. width: 10%;
  510. height: 150px;
  511. overflow: hidden;
  512. backface-visibility: hidden;
  513. transform: translate3d(0, 0, 0);
  514. display: inline-block;
  515. }
  516. body.light .meter {
  517. background: #ccc !important;
  518. }
  519. body.dark .meter {
  520. background: #222 !important;
  521. }
  522. .meter .meterLabel {
  523. z-index: 1;
  524. writing-mode: vertical-lr;
  525. text-orientation: upright;
  526. background: none;
  527. transform: rotate(0deg);
  528. font-size: 12px;
  529. text-align: center;
  530. position: absolute;
  531. left: 50%;
  532. top: 50%;
  533. transform: translate(-50%, -50%);
  534. }
  535. body.light .meterLabel {
  536. color: #000;
  537. }
  538. body.dark .meterLabel {
  539. color: #fff;
  540. mix-blend-mode: exclusion;
  541. }
  542. .meter {
  543. display: none
  544. }
  545. .meter .fill {
  546. position: absolute;
  547. top: 0;
  548. left: 0;
  549. background: none;
  550. pointer-events: none;
  551. }
  552. .meter #waveShape {
  553. animation-name: waveAction;
  554. animation-iteration-count: infinite;
  555. animation-timing-function: linear;
  556. animation-duration: 0.5s;
  557. width:300px;
  558. height: 150px;
  559. fill: #04ACFF;
  560. }
  561. .meter#arousalMeter #waveShape {
  562. fill: #FF0000;
  563. }
  564. .meter#orgasmMeter #waveShape {
  565. fill: #FFFFFF;
  566. }
  567. .meter#edgeMeter #waveShape {
  568. fill: #FF6600;
  569. }
  570. .meter#cumMeter #waveShape {
  571. fill: #EEEEEE;
  572. }
  573. .meter#femcumMeter #waveShape {
  574. fill: #999999;
  575. }
  576. .meter#milkMeter #waveShape {
  577. fill: #FFFFFF;
  578. }
  579. .meter#gasMeter #waveShape {
  580. fill: #33FF33;
  581. }
  582. .meter#pissMeter #waveShape {
  583. fill: #FFFF33;
  584. }
  585. .meter#scatMeter #waveShape {
  586. animation-duration: 2s;
  587. fill: #552222;
  588. }
  589. @keyframes fillAction {
  590. 0% {
  591. transform: translate(0, 150px);
  592. }
  593. 100% {
  594. transform: translate(0, -5px);
  595. }
  596. }
  597. @keyframes waveAction {
  598. 0% {
  599. transform: translate(-150px, 0);
  600. }
  601. 100% {
  602. transform: translate(0, 0);
  603. }
  604. }
  605. /* stolen directly from w3schools lol */
  606. .shaking {
  607. animation: shake 1s;
  608. animation-iteration-count: infinite;
  609. }
  610. @keyframes shake {
  611. 0% { transform: translate(0px, 0px); }
  612. 10% { transform: translate(0px, -2px); }
  613. 25% { transform: translate(0px, 0px); }
  614. 100% { transform: translate(0px, 0px); }
  615. }
  616. .growth-box {
  617. width: 100%;
  618. display: flex;
  619. flex-wrap: wrap;
  620. flex-direction: column;
  621. text-align: left;
  622. flex: 0 1 400px;
  623. }
  624. #growth-box-left {
  625. height: 100%;
  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. }