dashboard.css 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779
  1. /*
  2. General page styling
  3. */
  4. html{
  5. height: 100%;
  6. max-width: 100%;
  7. }
  8. body{
  9. display: flex;
  10. flex-direction: row;
  11. height: 100%;
  12. max-width: 100%;
  13. }
  14. .contentBlock{
  15. width: 100%;
  16. height: 100vh;
  17. flex: 1;
  18. box-sizing: border-box;
  19. position: relative;
  20. padding-bottom: 25px;
  21. }
  22. /*
  23. Multi-strand use classes
  24. */
  25. .strand{
  26. flex-direction: column;
  27. height: 100vh;
  28. width: 100%;
  29. padding-bottom: 25px;
  30. box-sizing: border-box;
  31. }
  32. .strandHead{
  33. display: flex;
  34. justify-content: space-between;
  35. width: 100%;
  36. padding: 10px 50px 0 50px;
  37. align-items: center;
  38. box-sizing: border-box;
  39. height: 10%;
  40. }
  41. .strandTitle{
  42. text-align: left;
  43. margin: 15px;
  44. padding: 0;
  45. }
  46. #sidebarCloser{
  47. width: 30px;
  48. background: rgb(0, 27, 45);
  49. color: white;
  50. margin-right: auto;
  51. border: none;
  52. position: fixed;
  53. top: 15px;
  54. left: 15px;
  55. }
  56. .buttonBox{
  57. display: flex;
  58. justify-content: space-around;
  59. margin-top: 50px;
  60. }
  61. .buttonBox > *{
  62. margin-right: 10px;
  63. }
  64. .choosable{
  65. display: flex;
  66. justify-content: space-around;
  67. align-items: center;
  68. background: rgb(0, 27, 45);
  69. color: white;
  70. border-radius: 5px;
  71. margin: 2px;
  72. padding: 5px;
  73. text-align: center;
  74. cursor: pointer;
  75. width: 99%;
  76. box-sizing: border-box;
  77. border: none;
  78. font-size: 16px;
  79. }
  80. .choosable.tall{
  81. padding: 15px;
  82. }
  83. .choosable:hover{
  84. background: rgb(201, 201, 201);
  85. color: black;
  86. }
  87. .choosable.active{
  88. background: rgb(179, 191, 209);
  89. color: white;
  90. }
  91. .searchBar{
  92. display: flex;
  93. align-items: center;
  94. margin-bottom: 10px;
  95. }
  96. .searchButton{
  97. padding: 6px;
  98. background: rgb(0, 27, 45);
  99. cursor: pointer;
  100. color: white;
  101. border-top-left-radius: 10px;
  102. border-bottom-left-radius: 10px;
  103. }
  104. .searchButton:hover{
  105. background: rgb(201, 201, 201);
  106. color: black;
  107. }
  108. .searchButton:active{
  109. background: rgb(179, 191, 209);
  110. color: white;
  111. }
  112. .searchInput{
  113. border: 4px solid rgb(0, 27, 45);
  114. font-size: 20px;
  115. border-top-right-radius: 10px;
  116. border-bottom-right-radius: 10px;
  117. padding: 1px 0 1px 4px;
  118. }
  119. .dateRange{
  120. display: flex;
  121. flex-direction: column;
  122. align-items: center;
  123. }
  124. .dateRangeInput{
  125. display: flex;
  126. justify-content: space-between;
  127. }
  128. .dateRangeInput p{
  129. margin: 0 5px;
  130. font-size: 20px;
  131. font-weight: bold;
  132. }
  133. .fileUpload{
  134. background: rgb(240, 252, 255);
  135. padding: 5px;
  136. border-radius: 5px;
  137. font-size: 16px;
  138. }
  139. .fileUpload::file-selector-button{
  140. background: rgb(0, 27, 45);
  141. border-radius: 5px;
  142. color: white;
  143. border: none;
  144. cursor: pointer;
  145. font-size: 18px;
  146. margin: auto 0;
  147. }
  148. .fileUpload::file-selector-button:hover{
  149. background: rgb(201, 201, 201);
  150. color: black;
  151. }
  152. /*
  153. Home Strand
  154. */
  155. #homeStrand{
  156. display: flex;
  157. }
  158. .card{
  159. margin: 0 15px;
  160. border: 1px solid rgba(183, 183, 183, 0.9);
  161. border-radius: 7px;
  162. box-shadow: 1px 2px gray;
  163. flex-grow: 1;
  164. height: 100%;
  165. }
  166. .card > *{
  167. margin: 10px;
  168. }
  169. .card p:first-of-type{
  170. font-size: 14px;
  171. font-weight: bold;
  172. text-align: center;
  173. }
  174. .flexRow{
  175. display: flex;
  176. justify-content: space-around;
  177. width: 100%;
  178. flex-basis: 100px;
  179. flex-grow: 1;
  180. margin: 15px 0;
  181. }
  182. #revenueCard{
  183. display: flex;
  184. flex-direction: column;
  185. justify-content: center;
  186. align-items: center;
  187. }
  188. #revenue{
  189. text-align: center;
  190. font-size: 30px;
  191. font-weight: bold;
  192. }
  193. #revenueChange{
  194. display: flex;
  195. }
  196. #revenueChange > p{
  197. font-weight: 100;
  198. }
  199. #revenueChange img{
  200. height: 15px;
  201. width: 15px;
  202. margin-right: 10px;
  203. }
  204. #graphCard{
  205. flex-grow: 5;
  206. display: flex;
  207. justify-content: center;
  208. }
  209. #inventoryCheckCard{
  210. display: flex;
  211. flex-direction: column;;
  212. justify-content: space-between;
  213. flex-basis: 100px;
  214. flex-grow: 1;
  215. }
  216. #inventoryCheckCard ul{
  217. list-style: none;
  218. }
  219. #inventoryCheckCard button{
  220. margin-left: auto;
  221. }
  222. .ingredientCheck{
  223. display: flex;
  224. align-items: center;
  225. margin: 5px 0;
  226. }
  227. .ingredientCheck p:first-of-type{
  228. width: 40%;
  229. font-weight: 300;
  230. font-size: 15px;
  231. margin-right: 25px;
  232. }
  233. .ingredientCheck p:last-of-type{
  234. width: 20%
  235. }
  236. .numberInput{
  237. display: flex;
  238. justify-content: center;
  239. width: 40%;
  240. margin-right: 25px;
  241. }
  242. .numberInput button{
  243. width: 30%;
  244. font-size: 23px;
  245. background: rgb(0, 27, 45);
  246. border: none;
  247. color: white;
  248. font-weight: bold;
  249. cursor: pointer;
  250. }
  251. .numberInput button:first-of-type{
  252. border-bottom-left-radius: 5px;
  253. border-top-left-radius: 5px;
  254. }
  255. .numberInput button:last-of-type{
  256. border-bottom-right-radius: 5px;
  257. border-top-right-radius: 5px;
  258. }
  259. .numberInput input{
  260. width: 55%;
  261. font-size: 15px;
  262. text-align: center;
  263. }
  264. .numberInput input::-webkit-outer-spin-button,
  265. .numberInput input::-webkit-inner-spin-button {
  266. -webkit-appearance: none;
  267. margin: 0;
  268. }
  269. .numberInput input[type=number] {
  270. -moz-appearance: textfield;
  271. }
  272. #popularIngredientsCard{
  273. display: flex;
  274. flex-direction: column;
  275. align-items: center;
  276. flex-basis: 100px;
  277. flex-grow: 2.5;
  278. padding: 5px;
  279. box-sizing: border-box;
  280. }
  281. #popularCanvas{
  282. margin: 0 35px;
  283. }
  284. .notice{
  285. color: red;
  286. font-size: 35px;
  287. font-weight: bold;
  288. }
  289. /*
  290. Ingredients Strand
  291. */
  292. #ingredientsStrand{
  293. display: none;
  294. align-items: center;
  295. height: 100%;
  296. box-sizing: border-box;
  297. }
  298. #categoryList{
  299. align-items:center;
  300. overflow-y: auto;
  301. width: 80%;
  302. }
  303. .categoryDiv{
  304. display: flex;
  305. flex-direction: column;
  306. align-items: center;
  307. }
  308. .categoryDiv > div:first-of-type{
  309. display: flex;
  310. cursor: pointer;
  311. width: 100%;
  312. }
  313. .categoryDiv > div:first-of-type p{
  314. display: flex;
  315. align-items: center;
  316. padding: 20px 0 20px 100px;
  317. background: rgb(240, 252, 255);
  318. border: 1px solid gray;
  319. border-radius: 5px;
  320. margin-right: 25px;
  321. flex-grow: 1;
  322. }
  323. .categoryDiv > div:first-of-type button{
  324. padding: 10px;
  325. background: rgb(240, 252, 255);
  326. border: 1px solid black;
  327. border-radius: 5px;
  328. width: 75px;
  329. height: 75px;
  330. cursor: pointer;
  331. }
  332. .ingredientsDiv{
  333. flex-direction: column;
  334. width: 50%;
  335. }
  336. .ingredientSpacer{
  337. border: none;
  338. border-top: 1px dashed black;
  339. margin: auto;
  340. }
  341. /*
  342. Recipe Book Strand
  343. */
  344. #recipeBookStrand{
  345. display: none;
  346. align-items: center;
  347. }
  348. #recipeList{
  349. display: flex;
  350. flex-direction: column;
  351. align-items: center;
  352. width: 50%;
  353. overflow-y: auto;
  354. }
  355. /*
  356. Analytics Strand
  357. */
  358. .switch{
  359. position: relative;
  360. display: inline-block;
  361. width: 239px;
  362. height: 34px;
  363. border: 3px solid rgb(0, 27, 45);
  364. color: white;
  365. }
  366. .switch input{
  367. opacity: 0;
  368. width: 0;
  369. height: 0;
  370. }
  371. .switch input:focus + .slider{
  372. box-shadow: 0 0 1px #2196F3;
  373. }
  374. .switch input:checked + .slider:before {
  375. -webkit-transform: translateX(105px);
  376. -ms-transform: translateX(92px);
  377. transform: translateX(125px);
  378. }
  379. .slider{
  380. display: flex;
  381. justify-content: space-between;
  382. align-items: center;
  383. position: absolute;
  384. cursor: pointer;
  385. top: 0;
  386. left: 0;
  387. right: 0;
  388. bottom: 0;
  389. padding: 0 24px 0 5px;
  390. background: rgb(255, 99, 107);
  391. transition: 0.2s;
  392. }
  393. .slider:before{
  394. position: absolute;
  395. content: "";
  396. height: 30px;
  397. width: 110px;
  398. left: 1px;
  399. bottom: 1px;
  400. background: rgba(255, 255, 255, 0.6);
  401. border: 1px solid rgb(0, 27, 45);
  402. transition: 0.2s;
  403. }
  404. .analContent{
  405. display: flex;
  406. justify-content: space-around;
  407. align-items:center;
  408. padding: 15px;
  409. box-sizing: border-box;
  410. height: 90%;
  411. }
  412. .itemsList{
  413. list-style-type: none;
  414. width: 15%;
  415. max-height: 95%;
  416. overflow-y: auto;
  417. }
  418. .analData{
  419. display: flex;
  420. flex-direction: column;
  421. justify-content: space-around;
  422. width: 100%;
  423. height: 100%;
  424. }
  425. #itemUseGraph{
  426. padding: 10px;
  427. height: 60%;
  428. flex-basis: 100px;
  429. flex-grow: 5;
  430. }
  431. .dataRow{
  432. display: flex;
  433. justify-content: space-between;
  434. flex-basis: 150px;
  435. flex-grow: 0;
  436. }
  437. .analCard{
  438. display: flex;
  439. flex-direction: column;
  440. justify-content: space-around;
  441. margin: 5px;
  442. height: inherit;
  443. }
  444. .analCard > *{
  445. margin: 0;
  446. }
  447. #analRecipeContent{
  448. display: flex;
  449. justify-content: space-around;
  450. align-items: center;
  451. padding: 15px;
  452. box-sizing: border-box;
  453. height: 90%;
  454. }
  455. /*
  456. Orders Strand
  457. */
  458. #ordersStrand{
  459. display: none;
  460. align-items: center;
  461. }
  462. #orderList{
  463. width: 50%;
  464. margin-top: 50px;
  465. overflow-y: auto;
  466. }
  467. /*
  468. Transactions Strand
  469. */
  470. .transactions{
  471. display: none;
  472. align-items: center;
  473. }
  474. .transactionsList{
  475. width: 50%;
  476. overflow-y: auto;
  477. margin-top: 50px;
  478. }
  479. /*
  480. Modal
  481. */
  482. .modal{
  483. flex-direction: column;
  484. justify-content: center;
  485. align-items: center;
  486. position: fixed;
  487. height: 100vh;
  488. width: 100vw;
  489. background: rgba(0, 27, 45, 0.75);
  490. }
  491. .modalBox{
  492. display: flex;
  493. flex-direction: column;
  494. align-items: flex-end;
  495. }
  496. .modalBox svg{
  497. color: rgb(255, 99, 107);
  498. cursor: pointer;
  499. }
  500. .modalSpreadsheetUpload{
  501. flex-direction: column;
  502. align-items: center;
  503. justify-content: space-between;
  504. margin-top: 0;
  505. padding: 25px;
  506. }
  507. .modalSpreadsheetUpload > *{
  508. margin-top: 15px;
  509. }
  510. @media screen and (orientation: portrait){
  511. .mobileMenuSelector{
  512. z-index: 10;
  513. }
  514. @media screen and (max-width: 1400px){
  515. body{
  516. flex-direction: column;
  517. background: rgb(0, 27, 45);
  518. color: white;
  519. }
  520. .contentBlock{
  521. padding: 0;
  522. }
  523. .banner{
  524. display: none;
  525. }
  526. .strandHead{
  527. padding: 0;
  528. }
  529. .strandTitle{
  530. margin-top: 35px;
  531. }
  532. .strandHead{
  533. justify-content: center;
  534. align-items: center;
  535. }
  536. .strandTitle{
  537. padding: 0;
  538. margin: -11px 15px 0 0;
  539. font-size: 20px;
  540. }
  541. .choosable{
  542. background: white;
  543. color: rgb(0, 27, 45);
  544. }
  545. .buttonBox{
  546. margin-top: 0;
  547. }
  548. /*
  549. Home
  550. */
  551. .card{
  552. margin: 5px 10px;
  553. background: white;
  554. color: black;
  555. }
  556. #homeStrand .flexRow:nth-child(3){
  557. flex-grow: 2;
  558. }
  559. #inventoryCheckCard{
  560. display: none;
  561. }
  562. #popularIngredientsCard{
  563. padding-bottom: 10px;
  564. }
  565. .flexRow{
  566. flex-direction: column;
  567. margin: 0;
  568. }
  569. /*
  570. Ingredients
  571. */
  572. #categoryList{
  573. width: 95%;
  574. color: black;
  575. }
  576. .categoryDiv > div:first-of-type p{
  577. padding: 5px 0 5px 5px;
  578. }
  579. .categoryDiv div:first-of-type button{
  580. height: 50px;
  581. width: 50px;
  582. }
  583. .ingredientsDiv{
  584. width: 100%;
  585. align-items: center;
  586. }
  587. .ingredient{
  588. width: 90%;
  589. margin-top: 5px;
  590. margin-bottom: 5px;
  591. }
  592. .ingredient > *{
  593. width: 50%;
  594. }
  595. /*
  596. Recipe Book
  597. */
  598. .searchBar{
  599. padding: 0;
  600. }
  601. #recipeSearch{
  602. border-radius: 5px;
  603. width: 100%;
  604. }
  605. #recipeList{
  606. width: 95%;
  607. }
  608. /*
  609. ANALYTICS
  610. */
  611. #analyticsStrand .strandHead{
  612. flex-direction: column;
  613. height: 20%;
  614. margin-top: 25px;
  615. }
  616. .analContent{
  617. flex-direction: column;
  618. height: 70%;
  619. }
  620. .itemsList{
  621. width: 100%;
  622. max-height: 40%;
  623. margin-bottom: 5px;
  624. }
  625. .dataRow{
  626. flex-direction: column;
  627. }
  628. .switch{
  629. margin: 3px 0;
  630. }
  631. /*
  632. Orders
  633. */
  634. #orderList{
  635. width: 95%;
  636. }
  637. /*
  638. Transactions
  639. */
  640. .transactionsList{
  641. width: 100%;
  642. margin-top: 25px;
  643. }
  644. #transactionsStrand .strandHead{
  645. justify-content: right;
  646. margin-top: 8px;
  647. }
  648. #transactionsStrand .strandTitle{
  649. margin: 0;
  650. }
  651. #filterTransactionsButton{
  652. padding: 5px;
  653. min-width: 0;
  654. margin-left: 50px;
  655. }
  656. @media screen and (min-width: 601px){
  657. }
  658. }
  659. }