big steppy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

879 line
13 KiB

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