game.css 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723
  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[value]::-moz-progress-bar {
  190. background-color: #ebac51;
  191. }
  192. #currency-progress[value]::-webkit-progress-value {
  193. background-color: #ebac51;
  194. }
  195. #current-day-container {
  196. width: 100%;
  197. height: 46px;
  198. background-color: var(--tan);
  199. border-radius: 8px;
  200. display: flex;
  201. gap: 0;
  202. }
  203. #current-day-icon {
  204. padding: 12px 12px 12px 12px;
  205. }
  206. #current-day-icon img {
  207. width: 100%;
  208. }
  209. #current-day-text {
  210. flex-grow: 2;
  211. padding: 12px 12px 12px 0;
  212. }
  213. /***********
  214. * Brew UI *
  215. ***********/
  216. #brew-container {
  217. position: fixed;
  218. top: 0;
  219. right: 0;
  220. display: none;
  221. width: 100%;
  222. height: 100vh;
  223. }
  224. #brew-right-side {
  225. margin-top: auto;
  226. margin-bottom: auto;
  227. display: flex;
  228. flex-direction: column;
  229. flex-wrap: nowrap;
  230. position: fixed;
  231. right: 0;
  232. width: 512px;
  233. translate: 1024px 0;
  234. min-width: 460px;
  235. background-color: var(--tan);
  236. margin: 30px;
  237. border-radius: 8px;
  238. border: 8px solid var(--light-brown);
  239. box-shadow: 0 8px var(--dark-brown);
  240. }
  241. #brew-header-container {
  242. background-color: var(--light-brown);
  243. box-shadow: 0 8px var(--dark-brown);
  244. }
  245. #brew-header-container h1 {
  246. color: white;
  247. text-align: center;
  248. margin: 16px;
  249. }
  250. #brew-ingredients-container {
  251. height: 110px;
  252. margin: 15px;
  253. display: flex;
  254. flex-direction: row;
  255. gap: 10px;
  256. flex-wrap: nowrap;
  257. }
  258. .ingredient-container {
  259. border: 4px dashed #dec8ad;
  260. flex-grow: 1;
  261. border-radius: 8px;
  262. padding: 4px;
  263. }
  264. .ingredient-container img {
  265. width: 100%;
  266. height: 100%;
  267. }
  268. .ingredient-container:hover {
  269. border: 4px dashed var(--light-brown);
  270. cursor: pointer;
  271. }
  272. #brew-selected-container {
  273. height: 220px;
  274. margin: 0 15px;
  275. display: flex;
  276. flex-direction: column;
  277. gap: 10px;
  278. }
  279. .ingredient-selected-container {
  280. border: 4px dashed #dec8ad;
  281. flex-grow: 1;
  282. border-radius: 8px;
  283. padding: 4px;
  284. max-height: 80px;
  285. }
  286. .ingredient-selected-container.disabled {
  287. border: 4px dashed #adadad;
  288. cursor: pointer;
  289. }
  290. .ingredient-selected-container .disabled-selected-ingredient {
  291. text-align: center;
  292. vertical-align: middle;
  293. color: gray;
  294. }
  295. .ingredient-selected-container .active-selected-ingredient {
  296. display: none;
  297. }
  298. .ingredient-selected-container .active-selected-ingredient .selected-ingredient-image {
  299. border: 4px dashed #dec8ad;
  300. border-radius: 40px;
  301. margin: 4px;
  302. width: 60px;
  303. height: 60px;
  304. padding: 4px;
  305. text-align: center;
  306. vertical-align: middle;
  307. }
  308. .ingredient-selected-container .active-selected-ingredient .selected-ingredient-image img {
  309. width: 100%;
  310. height: 100%;
  311. border-radius: 40px;
  312. }
  313. .ingredient-selected-container .active-selected-ingredient .selected-ingredient-description {
  314. margin: 12px;
  315. }
  316. .ingredient-selected-container .active-selected-ingredient .selected-ingredient-description h2 {
  317. margin: 0;
  318. padding: 0;
  319. }
  320. .ingredient-selected-container .active-selected-ingredient .selected-ingredient-description p {
  321. margin: 0;
  322. padding: 0;
  323. }
  324. .ingredient-selected-container:hover {
  325. border: 4px dashed var(--light-brown);
  326. cursor: pointer;
  327. }
  328. .ingredient-selected-container.disabled:hover {
  329. border: 4px dashed #adadad;
  330. cursor: auto;
  331. }
  332. #brew-potion-summary-container {
  333. height: 110px;
  334. margin: 15px;
  335. display: flex;
  336. flex-direction: row;
  337. }
  338. #potion-icon-container {
  339. border: 4px dashed #dec8ad;
  340. border-radius: 50px;
  341. margin: 15px;
  342. width: 80px;
  343. height: 80px;
  344. padding: 4px;
  345. text-align: center;
  346. vertical-align: middle;
  347. position: relative;
  348. }
  349. #potion-icon {
  350. display: block;
  351. width: 80px;
  352. height: 80px;
  353. border-radius: 40px;
  354. background-color: #15122f;
  355. }
  356. #potion-icon img {
  357. width: 100%;
  358. height: 100%;
  359. border-radius: 40px;
  360. }
  361. #potion-icon-container .potion-inventory-count {
  362. position: absolute;
  363. border-radius: 50%;
  364. color: white;
  365. text-align: right;
  366. line-height: 24px;
  367. right: 0;
  368. bottom: 0;
  369. width: 24px;
  370. height: 24px;
  371. font-size: 24px;
  372. padding: 8px 12px;
  373. }
  374. #potion-description {
  375. margin-left: 0;
  376. }
  377. #potion-description h2 {
  378. margin: 0px;
  379. }
  380. #potion-properties-list {
  381. margin: 16px;
  382. padding: 0;
  383. }
  384. ul#potion-properties-list li {
  385. list-style: none;
  386. }
  387. #brew-button-container {
  388. height: 50px;
  389. }
  390. #brew-button-inner-container {
  391. position: fixed;
  392. right: 70px;
  393. padding: 2px;
  394. margin-top: 25px;
  395. border-radius: 32px;
  396. width: 180px;
  397. background-color: var(--light-purple);
  398. }
  399. #brew-button-container button {
  400. font-size: 24px;
  401. border: 4px solid var(--dark-purple);
  402. color: white;
  403. padding: 8px;
  404. border-radius: 32px;
  405. width: 180px;
  406. background-color: var(--light-purple);
  407. }
  408. #brew-button-container button:hover {
  409. cursor: pointer;
  410. border-color: white;
  411. }
  412. /***********
  413. * Shop UI *
  414. ***********/
  415. #shop-container {
  416. position: fixed;
  417. top: 0;
  418. right: 0;
  419. display: none;
  420. width: 100%;
  421. height: 100vh;
  422. }
  423. #shop-panel {
  424. margin-top: auto;
  425. margin-bottom: auto;
  426. display: flex;
  427. flex-direction: column;
  428. flex-wrap: nowrap;
  429. position: fixed;
  430. right: 0;
  431. translate: 1024px 0;
  432. background-color: var(--tan);
  433. margin: 30px;
  434. border-radius: 8px;
  435. border: 8px solid var(--light-brown);
  436. box-shadow: 0 8px var(--dark-brown);
  437. }
  438. #shop-sides {
  439. display: flex;
  440. flex-direction: row;
  441. }
  442. #shop-header-container {
  443. background-color: var(--light-brown);
  444. box-shadow: 0 8px var(--dark-brown);
  445. }
  446. #shop-header-container h1 {
  447. color: white;
  448. text-align: center;
  449. margin: 16px;
  450. }
  451. #shop-left-side {
  452. width: 432px;
  453. padding: 16px;
  454. }
  455. #shop-potions-container {
  456. display: flex;
  457. flex-wrap: wrap;
  458. padding: 16px;
  459. gap: 16px;
  460. }
  461. .potion-container {
  462. position: relative;
  463. border: 4px dashed #dec8ad;
  464. border-radius: 16px;
  465. padding: 4px;
  466. width: 100px;
  467. }
  468. .potion-container:hover {
  469. border: 4px dashed var(--light-brown);
  470. cursor: pointer;
  471. }
  472. .potion-container img {
  473. width: 100%;
  474. height: 100%;
  475. border-radius: 8px;
  476. }
  477. .potion-container .potion-inventory-count {
  478. position: absolute;
  479. border-radius: 50%;
  480. color: white;
  481. text-align: right;
  482. line-height: 24px;
  483. right: 0;
  484. bottom: 0;
  485. width: 24px;
  486. height: 24px;
  487. font-size: 24px;
  488. padding: 8px 12px;
  489. }
  490. #shop-right-side {
  491. padding: 16px;
  492. }
  493. #shop-shelves-container {
  494. display: flex;
  495. flex-direction: column;
  496. padding: 16px;
  497. gap: 34px;
  498. }
  499. .shop-shelf {
  500. display: flex;
  501. flex-direction: row;
  502. gap: 16px;
  503. border-bottom: 16px solid #8c5a4f;
  504. margin-bottom: 16px;
  505. padding-bottom: 8px;
  506. }
  507. .stocked-potion-container {
  508. border: 4px dashed #dec8ad;
  509. border-radius: 16px;
  510. padding: 4px;
  511. width: 100px;
  512. height: 100px;
  513. }
  514. .stocked-potion-container:hover {
  515. border: 4px dashed var(--light-brown);
  516. cursor: pointer;
  517. }
  518. .stocked-potion-container img {
  519. width: 100%;
  520. height: 100%;
  521. border-radius: 8px;
  522. }
  523. .disabled-stocked-potion {
  524. border: 4px dashed #adadad;
  525. cursor: auto;
  526. }
  527. .disabled-stocked-potion:hover {
  528. border: 4px dashed #adadad;
  529. cursor: auto;
  530. }
  531. #shop-button-container {
  532. height: 0;
  533. }
  534. #shop-button-inner-container {
  535. position: relative;
  536. padding: 2px;
  537. margin-top: -25px;
  538. margin-left: 580px;
  539. border-radius: 32px;
  540. width: 180px;
  541. background-color: var(--light-purple);
  542. }
  543. #shop-button-container button {
  544. font-size: 24px;
  545. border: 4px solid var(--dark-purple);
  546. color: white;
  547. padding: 8px;
  548. border-radius: 32px;
  549. width: 180px;
  550. background-color: var(--light-purple);
  551. }
  552. #shop-button-container button:hover {
  553. cursor: pointer;
  554. border-color: white;
  555. }
  556. /****************
  557. * Game Over UI *
  558. ****************/
  559. #game-over-container {
  560. position: fixed;
  561. top: 0;
  562. left: 0;
  563. display: none;
  564. width: 100%;
  565. height: 100vh;
  566. }
  567. #game-over-blackout {
  568. width: 100%;
  569. height: 100%;
  570. background-color: black;
  571. opacity: 0;
  572. display: flex;
  573. justify-content: center;
  574. align-items: center;
  575. }
  576. #game-over-panel {
  577. width: 600px;
  578. height: 400px;
  579. text-align: center;
  580. padding: 32px;
  581. color: white;
  582. }
  583. #play-again-button-container {
  584. width: 184px;
  585. margin-left: auto;
  586. margin-right: auto;
  587. }
  588. #play-again-button-inner-container {
  589. padding: 2px;
  590. border-radius: 32px;
  591. width: 180px;
  592. background-color: var(--light-purple);
  593. }
  594. #play-again-button-container button {
  595. font-size: 24px;
  596. border: 4px solid var(--dark-purple);
  597. color: white;
  598. padding: 8px;
  599. border-radius: 32px;
  600. width: 180px;
  601. background-color: var(--light-purple);
  602. }
  603. #play-again-button-container button:hover {
  604. cursor: pointer;
  605. border-color: white;
  606. }