site.css 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758
  1. @import url('font/quicksand.css');
  2. body, html {
  3. height: 100%;
  4. }
  5. body {
  6. padding-top: 5rem;
  7. flex-direction: column;
  8. font-family: 'quicksand';
  9. overflow-y: hidden;
  10. }
  11. form {
  12. width: 100%;
  13. }
  14. .form-group.row > .col-form-label {
  15. text-align: right;
  16. }
  17. .top-bar {
  18. height: 5rem;
  19. background-color: rgb(192,0,0);
  20. background-image: linear-gradient(rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.25) 25%, rgba(0,0,0,0) 70%);
  21. display: flex;
  22. align-items: stretch;
  23. color: white;
  24. box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  25. padding: 0 3rem;
  26. position: fixed;
  27. top: 0;
  28. right: 0;
  29. left: 0;
  30. z-index: 1030;
  31. }
  32. .logo {
  33. display: flex;
  34. }
  35. .logo > img {
  36. margin-right: 3rem;
  37. width: 9rem;
  38. }
  39. .content {
  40. display: flex;
  41. height: 100%;
  42. z-index: 1;
  43. background-color: white;
  44. }
  45. .main {
  46. flex-grow: 1;
  47. overflow-y: auto;
  48. background: linear-gradient(rgba(0,0,0,0) 40%, rgba(0,0,0,0.4) 80%);
  49. padding: 1.5rem !important;
  50. }
  51. .nav-tab {
  52. margin: 0;
  53. padding: 0.3rem 1.8rem;
  54. display: inline-block;
  55. background-color: rgba(0,0,0,0.1);
  56. display: flex;
  57. flex-direction: column;
  58. align-items: center;
  59. justify-content: center;
  60. font-size: 0.9rem;
  61. color: white;
  62. position: relative;
  63. text-transform: uppercase;
  64. transition: 0.2s ease-out;
  65. }
  66. .nav-tab:hover {
  67. color: white;
  68. text-decoration: none;
  69. background-color: rgba(255,255,255,0.3);
  70. }
  71. .nav-tab.active {
  72. background-color: rgba(255,255,255,0.2);
  73. color: #fff2cc;
  74. }
  75. .nav-tab img {
  76. height: 2rem;
  77. margin-bottom: 0.25rem;
  78. }
  79. .nav-tab.active img {
  80. filter: brightness(0) saturate(100%) invert(93%) sepia(18%) saturate(797%) hue-rotate(316deg) brightness(109%) contrast(101%);
  81. }
  82. .nav-tab.active:after {
  83. content: "";
  84. position: absolute;
  85. bottom: -1rem;
  86. z-index: 1;
  87. width: 0px;
  88. height: 0px;
  89. border-left: 0.6rem solid transparent;
  90. border-right: 0.6rem solid transparent;
  91. border-top: 1rem solid rgb(205,51,51);
  92. }
  93. .user-info {
  94. margin-left: auto;
  95. display: flex;
  96. flex-direction: row;
  97. align-items: center;
  98. justify-content: center;
  99. }
  100. .user-info img {
  101. margin-right: 0.7rem;
  102. width: 2.6rem;
  103. }
  104. .user-info .username {
  105. display: block;
  106. font-weight: 700;
  107. line-height: 0.7rem;
  108. margin-top: 0.5rem;
  109. color: white;
  110. font-size: 1rem;
  111. }
  112. .user-info a {
  113. color: #fff2cc;
  114. font-size: 0.8rem;
  115. }
  116. .user-info button.sign-out {
  117. color: #fff2cc;
  118. font-size: 0.8rem;
  119. padding: 0;
  120. }
  121. .pizza-cards {
  122. display: grid;
  123. grid-template-columns: repeat(auto-fill, 20rem);
  124. grid-gap: 2rem;
  125. justify-content: center;
  126. padding-left: 0;
  127. }
  128. .pizza-cards > li {
  129. height: 10rem;
  130. position: relative;
  131. background-size: cover;
  132. border-radius: 0.5rem;
  133. list-style-type: none;
  134. box-shadow: 0 3px 4px rgba(0,0,0,0.4);
  135. transition: 0.1s ease-out;
  136. }
  137. .pizza-cards > li:hover {
  138. transform: scale(1.02);
  139. }
  140. .pizza-info {
  141. border-radius: 0.5rem;
  142. top: 0;
  143. left: 0;
  144. right: 0;
  145. bottom: 0;
  146. position: absolute;
  147. background: linear-gradient(rgba(0,0,0,0.7) 30%, rgba(0,0,0,0) 80%);
  148. padding: 1rem 1rem;
  149. color: #fff2cc;
  150. cursor: pointer;
  151. text-shadow: 0 2px 2px rgba(0,0,0,0.5);
  152. line-height: 1.25rem;
  153. }
  154. .pizza-info .title {
  155. color: white;
  156. font-size: 1.4rem;
  157. display: block;
  158. margin: 0.2rem 0 0.4rem 0;
  159. font-family: 'Bahnschrift', Arial, Helvetica, sans-serif;
  160. text-transform: uppercase;
  161. }
  162. .pizza-info .price {
  163. position: absolute;
  164. bottom: 0.5rem;
  165. right: 1rem;
  166. font-size: 1.5rem;
  167. font-weight: 700;
  168. padding: 0rem 0.7rem;
  169. border-radius: 4px;
  170. background-color: #08af08;
  171. color: white;
  172. line-height: 2rem;
  173. }
  174. .price::before {
  175. content: '£';
  176. font-weight: 300;
  177. font-size: 1.2rem;
  178. margin-right: 0.2rem;
  179. }
  180. .sidebar {
  181. background-color: #2b2b2b;
  182. width: 20rem;
  183. display: flex;
  184. flex-direction: column;
  185. color: white;
  186. }
  187. .order-contents {
  188. overflow-y: auto;
  189. padding: 2rem 1.5rem 1.5rem 1.5rem;
  190. flex-grow: 1;
  191. }
  192. .order-contents h2 {
  193. color: #fff2cc;
  194. font-size: 1.3rem;
  195. font-weight: 300;
  196. margin-bottom: 1rem;
  197. font-family: 'Bahnschrift', Arial, Helvetica, sans-serif;
  198. text-transform: uppercase;
  199. }
  200. .order-total {
  201. background-color: rgb(191, 52, 52);
  202. height: 4rem;
  203. flex-shrink: 0;
  204. display: flex;
  205. flex-direction: row;
  206. align-items: center;
  207. color: white;
  208. font-size: 1.2rem;
  209. transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
  210. padding: 0 1.5rem;
  211. }
  212. .order-total.hidden {
  213. transform: translate3d(0, 4rem, 0);
  214. }
  215. .order-total .total-price {
  216. font-weight: 700;
  217. font-size: 1.5rem;
  218. }
  219. .order-total .total-price::before {
  220. content: '£';
  221. font-weight: 300;
  222. margin: 0 0.1rem 0 0.4rem;
  223. }
  224. .order-total .btn {
  225. margin-left: auto;
  226. font-weight: 700;
  227. border-radius: 20px;
  228. padding: 0.4rem 1.2rem;
  229. }
  230. .checkout-button {
  231. margin: auto;
  232. display: block;
  233. font-weight: 700;
  234. border-radius: 20px;
  235. padding: 0.4rem 1.2rem;
  236. }
  237. .cart-item {
  238. background-color: #333333;
  239. padding: 0.8rem 1.2rem;
  240. border-radius: 6px;
  241. font-weight: 100;
  242. margin-top: 1rem;
  243. position: relative;
  244. }
  245. .cart-item .title {
  246. font-weight: 700;
  247. }
  248. .cart-item ul {
  249. padding: 0;
  250. margin: 0.4rem 0.6rem;
  251. }
  252. .cart-item li {
  253. list-style-type: none;
  254. margin-left: 0rem;
  255. font-size: 0.8rem;
  256. }
  257. .empty-cart {
  258. text-align: center;
  259. margin: auto;
  260. font-size: 1.5rem;
  261. font-weight: 100;
  262. color: #676767;
  263. }
  264. .item-price {
  265. font-weight: 500;
  266. }
  267. .item-price::before {
  268. content: '£';
  269. font-weight: 100;
  270. margin-right: 0.3rem;
  271. }
  272. .delete-item {
  273. position: absolute;
  274. top: 0;
  275. right: 0;
  276. content: 'X';
  277. cursor: pointer;
  278. color: #fff2cc;
  279. width: 2rem;
  280. height: 2rem;
  281. text-align: center;
  282. }
  283. .delete-item:hover {
  284. text-decoration: none;
  285. color: #fff2cc;
  286. background-color: rgba(255,255,255,0.1);
  287. }
  288. .configured-pizza-item {
  289. display: flex;
  290. flex-direction: row;
  291. }
  292. .dialog-container {
  293. position: absolute;
  294. top: 0;
  295. bottom: 0;
  296. left: 0;
  297. right: 0;
  298. background-color: rgba(0,0,0,0.5);
  299. z-index: 2000;
  300. display: flex;
  301. animation: dialog-container-entry 0.2s;
  302. }
  303. @keyframes dialog-container-entry {
  304. 0% {
  305. opacity: 0;
  306. }
  307. 100% {
  308. opacity: 1;
  309. }
  310. }
  311. .dialog {
  312. background-color: white;
  313. box-shadow: 0 0 12px rgba(0,0,0,0.6);
  314. display: flex;
  315. flex-direction: column;
  316. z-index: 2000;
  317. align-self: center;
  318. margin: auto;
  319. width: 700px;
  320. max-height: calc(100% - 3rem);
  321. animation: dialog-entry 0.4s;
  322. animation-timing-function: cubic-bezier(0.075, 0.820, 0.165, 1.000);
  323. }
  324. @keyframes dialog-entry {
  325. 0% {
  326. transform: translateY(30px) scale(0.95);
  327. }
  328. 100% {
  329. transform: translateX(0px) scale(1.0);
  330. }
  331. }
  332. .dialog-title {
  333. background-color: #444;
  334. color: #fff2cc;
  335. padding: 1.3rem 2rem;
  336. }
  337. .dialog-title h2 {
  338. color: white;
  339. font-size: 1.4rem;
  340. margin: 0;
  341. font-family: 'Bahnschrift', Arial, Helvetica, sans-serif;
  342. text-transform: uppercase;
  343. line-height: 1.3rem;
  344. }
  345. .dialog-body {
  346. flex-grow: 1;
  347. padding: 0.5rem 3rem 1rem 0;
  348. }
  349. .dialog-buttons {
  350. height: 4rem;
  351. flex-shrink: 0;
  352. display: flex;
  353. align-items: center;
  354. background-color: #eee;
  355. padding: 0 1rem;
  356. }
  357. .dialog-body > div {
  358. display: flex;
  359. margin-top: 1rem;
  360. align-items: center;
  361. }
  362. .dialog-body label {
  363. text-align: right;
  364. width: 200px;
  365. margin: 0 1.5rem;
  366. }
  367. .dialog-body input, .dialog-body select {
  368. flex-grow: 1;
  369. width: unset;
  370. }
  371. .dialog-body .size-label {
  372. min-width: 110px;
  373. text-align: right;
  374. }
  375. .dialog .toppings {
  376. text-align: center;
  377. display: block;
  378. padding-left: 4rem;
  379. }
  380. .dialog .topping {
  381. display: inline-block;
  382. background-color: #a04343;
  383. color: white;
  384. padding: 0.2rem 1rem;
  385. border-radius: 2rem;
  386. margin: 0.4rem 0.3rem;
  387. font-weight: 700;
  388. }
  389. .dialog .topping-price {
  390. font-weight: 100;
  391. font-size: 0.8rem;
  392. }
  393. .dialog .topping-price::before {
  394. content: '£';
  395. }
  396. .delete-topping {
  397. background: none;
  398. border: none;
  399. color: white;
  400. padding: 0.2rem 0.2rem 0.3rem 0.2rem;
  401. cursor: pointer;
  402. }
  403. .delete-topping:hover {
  404. color: yellow;
  405. }
  406. .form-message {
  407. padding: 0.5rem;
  408. font-weight: 700;
  409. }
  410. .dialog .price {
  411. font-weight: 700;
  412. font-size: 1.5rem;
  413. }
  414. .orders-list .list-group-item {
  415. display: flex;
  416. }
  417. .orders-list .col {
  418. margin: auto;
  419. }
  420. .orders-list h5 {
  421. color: #c03939;
  422. font-size: 1.3rem;
  423. font-weight: 300;
  424. margin: 0.2rem 0 0 0;
  425. font-family: 'Bahnschrift', Arial, Helvetica, sans-serif;
  426. text-transform: uppercase;
  427. }
  428. .track-order {
  429. background-color: white;
  430. box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  431. height: 100%;
  432. display: flex;
  433. flex-direction: column;
  434. }
  435. .track-order > div {
  436. overflow-y: hidden;
  437. }
  438. .track-order-title {
  439. background-color: #eee;
  440. display: flex;
  441. align-items: center;
  442. padding: 1rem 3rem;
  443. }
  444. .track-order-title h2 {
  445. color: #c03939;
  446. font-size: 1.3rem;
  447. font-weight: 300;
  448. margin: 0rem;
  449. font-family: 'Bahnschrift', Arial, Helvetica, sans-serif;
  450. text-transform: uppercase;
  451. }
  452. .track-order-body {
  453. flex-grow: 1;
  454. display: flex;
  455. }
  456. .track-order-details {
  457. overflow-y: auto;
  458. padding: 1.5rem 3rem;
  459. flex-grow: 1;
  460. }
  461. .track-order-map {
  462. width: 350px;
  463. flex-shrink: 0;
  464. }
  465. a.sign-in {
  466. background: none;
  467. border: 1.5px solid white;
  468. border-radius: 0.7em;
  469. color: white;
  470. text-transform: uppercase;
  471. padding: 0.2rem 0.8rem 0.1rem 0.8rem;
  472. font-family: 'Bahnschrift', Arial, Helvetica, sans-serif;
  473. font-weight: 100;
  474. cursor: pointer;
  475. transition: 0.2s ease-out;
  476. margin-left: 3px;
  477. }
  478. a.sign-in:hover {
  479. background-color: rgba(255,255,255,0.3);
  480. color: #fff2cc;
  481. border-color: #fff2cc;
  482. }
  483. input[type=range] {
  484. -webkit-appearance: none;
  485. margin: 7.1px 0;
  486. height: 21px;
  487. }
  488. input[type=range]:focus {
  489. outline: none;
  490. }
  491. input[type=range]::-webkit-slider-runnable-track {
  492. width: 100%;
  493. height: 5.8px;
  494. cursor: pointer;
  495. box-shadow: 0px 0px 1px #000000, 0px 0px 0px #0d0d0d;
  496. background: #dcdcdc;
  497. border-radius: 1.3px;
  498. border: 0px solid #010101;
  499. }
  500. input[type=range]::-webkit-slider-thumb {
  501. box-shadow: 0.9px 0.9px 1px rgba(0, 0, 49, 0.43), 0px 0px 0.9px rgba(0, 0, 75, 0.43);
  502. border: 0px solid #00001e;
  503. height: 20px;
  504. width: 20px;
  505. border-radius: 10px;
  506. background: #d45352;
  507. cursor: pointer;
  508. -webkit-appearance: none;
  509. margin-top: -7.1px;
  510. }
  511. input[type=range]:focus::-webkit-slider-runnable-track {
  512. background: #e1e1e1;
  513. }
  514. input[type=range]::-moz-range-track {
  515. width: 100%;
  516. height: 5.8px;
  517. cursor: pointer;
  518. box-shadow: 0px 0px 1px #000000, 0px 0px 0px #0d0d0d;
  519. background: #dcdcdc;
  520. border-radius: 1.3px;
  521. border: 0px solid #010101;
  522. }
  523. input[type=range]::-moz-range-thumb {
  524. box-shadow: 0.9px 0.9px 1px rgba(0, 0, 49, 0.43), 0px 0px 0.9px rgba(0, 0, 75, 0.43);
  525. border: 0px solid #00001e;
  526. height: 20px;
  527. width: 20px;
  528. border-radius: 10px;
  529. background: #d45352;
  530. cursor: pointer;
  531. }
  532. input[type=range]::-ms-track {
  533. width: 100%;
  534. height: 5.8px;
  535. cursor: pointer;
  536. background: transparent;
  537. border-color: transparent;
  538. color: transparent;
  539. }
  540. input[type=range]::-ms-fill-lower {
  541. background: #d7d7d7;
  542. border: 0px solid #010101;
  543. border-radius: 2.6px;
  544. box-shadow: 0px 0px 1px #000000, 0px 0px 0px #0d0d0d;
  545. }
  546. input[type=range]::-ms-fill-upper {
  547. background: #dcdcdc;
  548. border: 0px solid #010101;
  549. border-radius: 2.6px;
  550. box-shadow: 0px 0px 1px #000000, 0px 0px 0px #0d0d0d;
  551. }
  552. input[type=range]::-ms-thumb {
  553. box-shadow: 0.9px 0.9px 1px rgba(0, 0, 49, 0.43), 0px 0px 0.9px rgba(0, 0, 75, 0.43);
  554. border: 0px solid #00001e;
  555. height: 20px;
  556. width: 20px;
  557. border-radius: 10px;
  558. background: #d45352;
  559. cursor: pointer;
  560. margin-top: 0;
  561. }
  562. .checkout-cols {
  563. display: flex;
  564. }
  565. .checkout-cols h4 {
  566. margin-bottom: 1.5rem;
  567. }
  568. .checkout-cols > div {
  569. flex: 1;
  570. margin: 1rem;
  571. border: 1px solid #ddd;
  572. background: rgba(255,255,255,0.3);
  573. padding: 1.25rem 1rem;
  574. }
  575. .checkout-cols > div:first-child {
  576. margin-left: 0;
  577. }
  578. .checkout-cols > div:last-child {
  579. margin-right: 0;
  580. }
  581. .loading-bar {
  582. position: absolute;
  583. top: calc(50% - 3px);
  584. left: calc(50% - 250px);
  585. width: 500px;
  586. height: 6px;
  587. background-color: white;
  588. overflow: hidden;
  589. box-shadow: 0 1px 3px rgba(0,0,0,0.2)
  590. }
  591. .loading-bar::after {
  592. content: '';
  593. display: block;
  594. width: 200px;
  595. height: 100%;
  596. background-color: #dc105a;
  597. animation: progressbar-slide 1s infinite;
  598. animation-timing-function: ease-in-out;
  599. }
  600. .form-field {
  601. display: flex;
  602. margin: 0.5rem;
  603. }
  604. .form-field > label {
  605. width: 8rem;
  606. }
  607. .form-field > div {
  608. flex-grow: 1;
  609. }
  610. .form-field input {
  611. width: 100%;
  612. }
  613. .valid.modified:not([type=checkbox]) {
  614. outline: 1px solid #26b050;
  615. }
  616. .invalid {
  617. outline: 1px solid red;
  618. }
  619. .validation-message {
  620. color: red;
  621. }
  622. #blazor-error-ui {
  623. background: lightyellow;
  624. bottom: 0;
  625. box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
  626. display: none;
  627. left: 0;
  628. padding: 0.6rem 1.25rem 0.7rem 1.25rem;
  629. position: fixed;
  630. width: 100%;
  631. z-index: 1000;
  632. }
  633. #blazor-error-ui .dismiss {
  634. cursor: pointer;
  635. position: absolute;
  636. right: 0.75rem;
  637. top: 0.5rem;
  638. }
  639. @keyframes progressbar-slide {
  640. 0% {
  641. transform: translateX(-200px);
  642. }
  643. 70% {
  644. transform: translateX(500px);
  645. }
  646. 100% {
  647. transform: translateX(500px);
  648. }
  649. }