game.css 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937
  1. :root {
  2. --dark-purple: #6d3154;
  3. --light-purple: #a94e83;
  4. --light-brown: #7c603f;
  5. --dark-brown: #433321;
  6. --tan: #efe4d6;
  7. }
  8. button {
  9. font-family: 'Alice', serif;
  10. }
  11. /****************
  12. * Main Menu UI *
  13. ****************/
  14. #main-menu-container {
  15. position: fixed;
  16. top: 0;
  17. left: 0;
  18. display: flex;
  19. width: 100%;
  20. height: 100vh;
  21. flex-direction: column;
  22. justify-content: center;
  23. cursor: default;
  24. }
  25. #main-menu-display {
  26. display: flex;
  27. width: 50%;
  28. min-width: 320px;
  29. height: 100vh;
  30. min-height: 560px;
  31. background-color: rgba(64, 64, 64, 0.6);
  32. background: linear-gradient(to right, rgba(64, 64, 64, 0.6), 60%, rgba(64, 64, 64, 0.6), 90%, rgba(0, 0, 0, 0));
  33. flex-direction: column;
  34. justify-content: space-around;
  35. align-items: center;
  36. }
  37. #main-menu-header-container {
  38. color: white;
  39. width: 100%;
  40. text-align: center;
  41. padding: 16px;
  42. }
  43. #main-menu-title {
  44. font-weight: normal;
  45. font-size: 72px;
  46. padding: 0;
  47. margin: 0;
  48. }
  49. #main-menu-subtitle {
  50. font-weight: normal;
  51. font-size: 36px;
  52. padding: 0;
  53. margin: 0;
  54. }
  55. #main-menu-button-list {
  56. display: flex;
  57. flex-direction: column;
  58. width: 100%;
  59. padding: 16px;
  60. }
  61. #main-menu-button-list .button-inner-container {
  62. margin: 8px;
  63. padding: 4px;
  64. border-radius: 32px;
  65. background-color: transparent;
  66. }
  67. #main-menu-button-list button {
  68. width: 100%;
  69. font-size: 24px;
  70. border: none;
  71. color: white;
  72. padding: 8px;
  73. background-color: transparent;
  74. }
  75. #main-menu-button-list button:hover {
  76. cursor: pointer;
  77. color: var(--light-purple);
  78. }
  79. #main-menu-button-list .button-inner-container.primary {
  80. width: 60%;
  81. margin: 8px;
  82. margin-left: auto;
  83. margin-right: auto;
  84. padding: 4px;
  85. border-radius: 32px;
  86. background-color: var(--light-purple);
  87. }
  88. #main-menu-button-list button.primary {
  89. font-size: 24px;
  90. border: 4px solid var(--dark-purple);
  91. color: white;
  92. padding: 8px;
  93. border-radius: 32px;
  94. background-color: var(--light-purple);
  95. }
  96. #main-menu-button-list button.primary:hover {
  97. cursor: pointer;
  98. border-color: white;
  99. }
  100. #main-menu-button-list .button-inner-container:first-child {
  101. height: 120px;
  102. border-radius: 60px;
  103. }
  104. #main-menu-button-list .button-inner-container:first-child button {
  105. border-radius: 60px;
  106. font-size: 48px;
  107. height: 100%;
  108. }
  109. /**************
  110. * Navigation *
  111. **************/
  112. #room-navigation {
  113. display: none;
  114. }
  115. #next {
  116. position: absolute;
  117. right: 20px;
  118. bottom: 20px;
  119. fill: #ffffff;
  120. text-shadow: 2px 2px 5px black;
  121. }
  122. #next:hover {
  123. fill: var(--light-purple);
  124. cursor: pointer;
  125. }
  126. #prev {
  127. position: absolute;
  128. left: 20px;
  129. bottom: 20px;
  130. fill: #ffffff;
  131. text-shadow: 2px 2px 5px black;
  132. }
  133. #prev:hover {
  134. fill: var(--light-purple);
  135. cursor: pointer;
  136. }
  137. /******************
  138. * Game Status UI *
  139. ******************/
  140. #game-status-container {
  141. position: fixed;
  142. top: 0;
  143. left: 0;
  144. display: none;
  145. color: #7E674F;
  146. font-family: 'Quicksand', sans-serif;
  147. font-weight: bold;
  148. transition: opacity 2s;
  149. }
  150. #game-status-container:hover {
  151. /* opacity: 0.3; */
  152. }
  153. #game-status-panel {
  154. width: 280px;
  155. height: 100px;
  156. background-color: var(--light-brown);
  157. border-radius: 16px;
  158. margin: 8px;
  159. padding: 8px;
  160. display: flex;
  161. flex-direction: column;
  162. gap: 8px;
  163. }
  164. #currency-meter-container {
  165. width: 100%;
  166. height: 46px;
  167. background-color: var(--tan);
  168. border-radius: 8px;
  169. display: flex;
  170. gap: 0;
  171. }
  172. #currency-meter-container span {
  173. padding: 12px 0 12px 0;
  174. color: #7E674F;
  175. }
  176. #currency-meter-icon {
  177. padding: 12px;
  178. }
  179. #currency-progress {
  180. width: 170px;
  181. height: 10px;
  182. border-radius: 8px;
  183. background-color: #dcd4ca;
  184. margin: 16px 2px 12px 2px;
  185. }
  186. #currency-progress[value]::-webkit-progress-bar {
  187. background-color: #dcd4ca;
  188. }
  189. #currency-progress:after {
  190. content: attr(value);
  191. }
  192. #currency-progress[value]::-moz-progress-bar {
  193. background-color: #ebac51;
  194. }
  195. #currency-progress[value]::-webkit-progress-value {
  196. background-color: #ebac51;
  197. }
  198. #current-day-container {
  199. width: 100%;
  200. height: 46px;
  201. background-color: var(--tan);
  202. border-radius: 8px;
  203. display: flex;
  204. gap: 0;
  205. }
  206. #current-day-icon {
  207. padding: 12px 12px 12px 12px;
  208. }
  209. #current-day-icon img {
  210. width: 100%;
  211. }
  212. #current-day-text {
  213. flex-grow: 2;
  214. padding: 12px 12px 12px 0;
  215. }
  216. /***********
  217. * Brew UI *
  218. ***********/
  219. #brew-container {
  220. position: fixed;
  221. top: 0;
  222. right: 0;
  223. display: none;
  224. width: 100%;
  225. height: 100vh;
  226. }
  227. #brew-right-side {
  228. margin-top: auto;
  229. margin-bottom: auto;
  230. display: flex;
  231. flex-direction: column;
  232. flex-wrap: nowrap;
  233. position: fixed;
  234. right: 0;
  235. width: 512px;
  236. translate: 1024px 0;
  237. min-width: 460px;
  238. background-color: var(--tan);
  239. margin: 30px;
  240. border-radius: 8px;
  241. border: 8px solid var(--light-brown);
  242. box-shadow: 0 8px var(--dark-brown);
  243. }
  244. #brew-header-container {
  245. background-color: var(--light-brown);
  246. box-shadow: 0 8px var(--dark-brown);
  247. }
  248. #brew-header-container h1 {
  249. color: white;
  250. text-align: center;
  251. margin: 16px;
  252. }
  253. #brew-ingredients-container {
  254. height: 110px;
  255. margin: 15px;
  256. display: flex;
  257. flex-direction: row;
  258. gap: 10px;
  259. flex-wrap: nowrap;
  260. }
  261. .ingredient-container {
  262. border: 4px dashed #dec8ad;
  263. flex-grow: 1;
  264. border-radius: 8px;
  265. padding: 4px;
  266. position: relative;
  267. }
  268. .ingredient-container img {
  269. width: 100%;
  270. height: 100%;
  271. }
  272. .ingredient-container .ingredient-inventory-brew-count {
  273. position: absolute;
  274. border-radius: 50%;
  275. color: white;
  276. text-align: right;
  277. line-height: 24px;
  278. right: 0;
  279. bottom: 0;
  280. width: 24px;
  281. height: 24px;
  282. font-size: 24px;
  283. padding: 8px 12px;
  284. }
  285. .ingredient-container:hover {
  286. border: 4px dashed var(--light-brown);
  287. cursor: pointer;
  288. }
  289. #brew-selected-container {
  290. height: 220px;
  291. margin: 0 15px;
  292. display: flex;
  293. flex-direction: column;
  294. gap: 10px;
  295. }
  296. .ingredient-selected-container {
  297. border: 4px dashed #dec8ad;
  298. flex-grow: 1;
  299. border-radius: 8px;
  300. padding: 4px;
  301. max-height: 80px;
  302. }
  303. .ingredient-selected-container.disabled {
  304. border: 4px dashed #adadad;
  305. cursor: pointer;
  306. }
  307. .ingredient-selected-container .disabled-selected-ingredient {
  308. text-align: center;
  309. vertical-align: middle;
  310. color: gray;
  311. }
  312. .ingredient-selected-container .active-selected-ingredient {
  313. display: none;
  314. }
  315. .ingredient-selected-container .active-selected-ingredient .selected-ingredient-image {
  316. border: 4px dashed #dec8ad;
  317. border-radius: 40px;
  318. margin: 4px;
  319. width: 60px;
  320. height: 60px;
  321. padding: 4px;
  322. text-align: center;
  323. vertical-align: middle;
  324. }
  325. .ingredient-selected-container .active-selected-ingredient .selected-ingredient-image img {
  326. width: 100%;
  327. height: 100%;
  328. border-radius: 40px;
  329. }
  330. .ingredient-selected-container .active-selected-ingredient .selected-ingredient-description {
  331. margin: 12px;
  332. }
  333. .ingredient-selected-container .active-selected-ingredient .selected-ingredient-description h2 {
  334. margin: 0;
  335. padding: 0;
  336. }
  337. .ingredient-selected-container .active-selected-ingredient .selected-ingredient-description p {
  338. margin: 0;
  339. padding: 0;
  340. }
  341. .ingredient-selected-container:hover {
  342. border: 4px dashed var(--light-brown);
  343. cursor: pointer;
  344. }
  345. .ingredient-selected-container.disabled:hover {
  346. border: 4px dashed #adadad;
  347. cursor: auto;
  348. }
  349. #brew-potion-summary-container {
  350. height: 110px;
  351. margin: 15px;
  352. display: flex;
  353. flex-direction: row;
  354. }
  355. #potion-icon-container {
  356. border: 4px dashed #dec8ad;
  357. border-radius: 50px;
  358. margin: 15px;
  359. width: 80px;
  360. height: 80px;
  361. padding: 4px;
  362. text-align: center;
  363. vertical-align: middle;
  364. position: relative;
  365. }
  366. #potion-icon {
  367. display: block;
  368. width: 80px;
  369. height: 80px;
  370. border-radius: 40px;
  371. background-color: #15122f;
  372. }
  373. #potion-icon img {
  374. width: 100%;
  375. height: 100%;
  376. border-radius: 40px;
  377. }
  378. #potion-icon-container .potion-inventory-count {
  379. position: absolute;
  380. border-radius: 50%;
  381. color: white;
  382. text-align: right;
  383. line-height: 24px;
  384. right: 0;
  385. bottom: 0;
  386. width: 24px;
  387. height: 24px;
  388. font-size: 24px;
  389. padding: 8px 12px;
  390. }
  391. #potion-description {
  392. margin-left: 0;
  393. }
  394. #potion-description h2 {
  395. margin: 0px;
  396. }
  397. #potion-properties-list {
  398. margin: 16px;
  399. padding: 0;
  400. }
  401. ul#potion-properties-list li {
  402. list-style: none;
  403. }
  404. #brew-button-container {
  405. height: 50px;
  406. }
  407. #brew-button-inner-container {
  408. position: fixed;
  409. right: 70px;
  410. padding: 2px;
  411. margin-top: 25px;
  412. border-radius: 32px;
  413. width: 180px;
  414. background-color: var(--light-purple);
  415. }
  416. #brew-button-container button {
  417. font-size: 24px;
  418. border: 4px solid var(--dark-purple);
  419. color: white;
  420. padding: 8px;
  421. border-radius: 32px;
  422. width: 180px;
  423. background-color: var(--light-purple);
  424. }
  425. #brew-button-container button:hover {
  426. cursor: pointer;
  427. border-color: white;
  428. }
  429. /***********
  430. * Shop UI *
  431. ***********/
  432. #shop-container {
  433. position: fixed;
  434. top: 0;
  435. right: 0;
  436. display: none;
  437. width: 100%;
  438. height: 100vh;
  439. }
  440. #shop-panel {
  441. margin-top: auto;
  442. margin-bottom: auto;
  443. display: flex;
  444. flex-direction: column;
  445. flex-wrap: nowrap;
  446. position: fixed;
  447. right: 0;
  448. translate: 1024px 0;
  449. background-color: var(--tan);
  450. margin: 30px;
  451. border-radius: 8px;
  452. border: 8px solid var(--light-brown);
  453. box-shadow: 0 8px var(--dark-brown);
  454. }
  455. #shop-sides {
  456. display: flex;
  457. flex-direction: row;
  458. }
  459. #shop-header-container {
  460. background-color: var(--light-brown);
  461. box-shadow: 0 8px var(--dark-brown);
  462. }
  463. #shop-header-container h1 {
  464. color: white;
  465. text-align: center;
  466. margin: 16px;
  467. }
  468. #shop-left-side {
  469. width: 432px;
  470. padding: 16px;
  471. }
  472. #shop-potions-container {
  473. display: flex;
  474. flex-wrap: wrap;
  475. padding: 16px;
  476. gap: 16px;
  477. }
  478. .potion-container {
  479. position: relative;
  480. border: 4px dashed #dec8ad;
  481. border-radius: 16px;
  482. padding: 4px;
  483. width: 100px;
  484. }
  485. .potion-container:hover {
  486. border: 4px dashed var(--light-brown);
  487. cursor: pointer;
  488. }
  489. .potion-container img {
  490. width: 100%;
  491. height: 100%;
  492. border-radius: 8px;
  493. }
  494. .potion-container .potion-inventory-count {
  495. position: absolute;
  496. border-radius: 50%;
  497. color: white;
  498. text-align: right;
  499. line-height: 24px;
  500. right: 0;
  501. bottom: 0;
  502. width: 24px;
  503. height: 24px;
  504. font-size: 24px;
  505. padding: 8px 12px;
  506. }
  507. #shop-right-side {
  508. padding: 16px;
  509. }
  510. #shop-shelves-container {
  511. display: flex;
  512. flex-direction: column;
  513. padding: 16px;
  514. gap: 34px;
  515. }
  516. .shop-shelf {
  517. display: flex;
  518. flex-direction: row;
  519. gap: 16px;
  520. border-bottom: 16px solid #8c5a4f;
  521. margin-bottom: 16px;
  522. padding-bottom: 8px;
  523. }
  524. .stocked-potion-container {
  525. border: 4px dashed #dec8ad;
  526. border-radius: 16px;
  527. padding: 4px;
  528. width: 100px;
  529. height: 100px;
  530. }
  531. .stocked-potion-container:hover {
  532. border: 4px dashed var(--light-brown);
  533. cursor: pointer;
  534. }
  535. .stocked-potion-container img {
  536. width: 100%;
  537. height: 100%;
  538. border-radius: 8px;
  539. }
  540. .disabled-stocked-potion {
  541. border: 4px dashed #adadad;
  542. cursor: auto;
  543. }
  544. .disabled-stocked-potion:hover {
  545. border: 4px dashed #adadad;
  546. cursor: auto;
  547. }
  548. #shop-button-container {
  549. height: 0;
  550. }
  551. #shop-button-inner-container {
  552. position: relative;
  553. padding: 2px;
  554. margin-top: -25px;
  555. margin-left: 580px;
  556. border-radius: 32px;
  557. width: 180px;
  558. background-color: var(--light-purple);
  559. }
  560. #shop-button-container button {
  561. font-size: 24px;
  562. border: 4px solid var(--dark-purple);
  563. color: white;
  564. padding: 8px;
  565. border-radius: 32px;
  566. width: 180px;
  567. background-color: var(--light-purple);
  568. }
  569. #shop-button-container button:hover {
  570. cursor: pointer;
  571. border-color: white;
  572. }
  573. /*************
  574. * Market UI *
  575. *************/
  576. #market-container {
  577. position: fixed;
  578. top: 0;
  579. right: 0;
  580. display: none;
  581. width: 100%;
  582. height: 100vh;
  583. }
  584. #market-panel {
  585. margin-top: auto;
  586. margin-bottom: auto;
  587. display: flex;
  588. flex-direction: column;
  589. flex-wrap: nowrap;
  590. position: fixed;
  591. right: 0;
  592. width: 512px;
  593. translate: 1024px 0;
  594. background-color: var(--tan);
  595. margin: 30px;
  596. border-radius: 8px;
  597. border: 8px solid var(--light-brown);
  598. box-shadow: 0 8px var(--dark-brown);
  599. }
  600. #market-header-container {
  601. background-color: var(--light-brown);
  602. box-shadow: 0 8px var(--dark-brown);
  603. }
  604. #market-header-container h1 {
  605. color: white;
  606. text-align: center;
  607. margin: 16px;
  608. }
  609. .ingredient-sell-container {
  610. display: flex;
  611. flex-direction: row;
  612. height: 126px;
  613. }
  614. .ingredient-icon-container {
  615. border: 4px dashed #dec8ad;
  616. border-radius: 50px;
  617. margin: 15px;
  618. width: 80px;
  619. height: 80px;
  620. padding: 4px;
  621. position: relative;
  622. }
  623. .ingredient-icon-container {
  624. position: relative;
  625. border: 4px dashed #dec8ad;
  626. border-radius: 16px;
  627. padding: 4px;
  628. }
  629. .ingredient-icon-container:hover {
  630. border: 4px dashed var(--light-brown);
  631. cursor: pointer;
  632. }
  633. .ingredient-icon-container img {
  634. width: 100%;
  635. height: 100%;
  636. border-radius: 8px;
  637. }
  638. .ingredient-icon-container .ingredient-inventory-count {
  639. position: absolute;
  640. border-radius: 50%;
  641. color: white;
  642. text-align: right;
  643. line-height: 24px;
  644. right: 0;
  645. bottom: 0;
  646. width: 24px;
  647. height: 24px;
  648. font-size: 24px;
  649. padding: 8px 12px;
  650. }
  651. .ingredient-description {
  652. display: flex;
  653. flex-grow: 2;
  654. flex-direction: column;
  655. align-items: start;
  656. padding: 8px;
  657. justify-content: center;
  658. }
  659. .ingredient-description h2 {
  660. margin: 0;
  661. padding: 0;
  662. font-size: 18px;
  663. }
  664. .ingredient-price {
  665. padding: 4px;
  666. }
  667. .ingredient-price .ingredient-price-value {
  668. margin-top: -24px;
  669. margin-left: 24px;
  670. }
  671. .ingredient-price img {
  672. padding-right: 8px;
  673. }
  674. .call-to-action {
  675. font-size: 12px;
  676. color: gray;
  677. }
  678. .ingredient-in-cart-container {
  679. display: flex;
  680. flex-direction: column;
  681. justify-content: center;
  682. }
  683. .ingredient-in-cart-container:hover {
  684. cursor: pointer;
  685. }
  686. .ingredient-in-cart-amount {
  687. height: 24px;
  688. padding: 16px;
  689. font-weight: bold;
  690. }
  691. #total-container {
  692. border-top: 1px dotted gray;
  693. text-align: right;
  694. padding: 16px;
  695. margin-bottom: 20px;
  696. display: flex;
  697. flex-direction: column;
  698. }
  699. #total-icon-container {
  700. margin-left: auto;
  701. margin-top: 8px;
  702. padding: 8px;
  703. }
  704. #total-title {
  705. font-size: 18px;
  706. }
  707. #total-amount {
  708. display: flex;
  709. flex-direction: row;
  710. }
  711. #total-amount-value {
  712. font-size: 42px;
  713. text-align: right;
  714. }
  715. #market-button-container {
  716. height: 0;
  717. }
  718. #market-button-inner-container {
  719. position: relative;
  720. padding: 2px;
  721. margin-top: -25px;
  722. margin-left: 300px;
  723. border-radius: 32px;
  724. width: 180px;
  725. background-color: var(--light-purple);
  726. }
  727. #market-button-container button {
  728. font-size: 24px;
  729. border: 4px solid var(--dark-purple);
  730. color: white;
  731. padding: 8px;
  732. border-radius: 32px;
  733. width: 180px;
  734. background-color: var(--light-purple);
  735. }
  736. #market-button-container button:hover {
  737. cursor: pointer;
  738. border-color: white;
  739. }
  740. /****************
  741. * Game Over UI *
  742. ****************/
  743. #game-over-container {
  744. position: fixed;
  745. top: 0;
  746. left: 0;
  747. display: none;
  748. width: 100%;
  749. height: 100vh;
  750. }
  751. #game-over-blackout {
  752. width: 100%;
  753. height: 100%;
  754. background-color: black;
  755. opacity: 0;
  756. display: flex;
  757. justify-content: center;
  758. align-items: center;
  759. }
  760. #game-over-panel {
  761. width: 600px;
  762. height: 400px;
  763. text-align: center;
  764. padding: 32px;
  765. color: white;
  766. }
  767. #play-again-button-container {
  768. width: 184px;
  769. margin-left: auto;
  770. margin-right: auto;
  771. }
  772. #play-again-button-inner-container {
  773. padding: 2px;
  774. border-radius: 32px;
  775. width: 180px;
  776. background-color: var(--light-purple);
  777. }
  778. #play-again-button-container button {
  779. font-size: 24px;
  780. border: 4px solid var(--dark-purple);
  781. color: white;
  782. padding: 8px;
  783. border-radius: 32px;
  784. width: 180px;
  785. background-color: var(--light-purple);
  786. }
  787. #play-again-button-container button:hover {
  788. cursor: pointer;
  789. border-color: white;
  790. }