blob: 61be422e4859d6bf68373ad516fda0b8a7323752 [file] [log] [blame]
Saqib Ansari0fb2e022020-11-09 23:51:24 +05301.point-of-sale-app {
2 display: grid;
3 grid-template-columns: repeat(10, minmax(0, 1fr));
4 gap: var(--margin-md);
5
6 section {
7 min-height: 45rem;
Saqib Ansari7202e9f2020-11-13 17:33:20 +05308 height: calc(100vh - 200px);
Saqib Ansari0fb2e022020-11-09 23:51:24 +05309 max-height: calc(100vh - 200px);
10 }
11
12 .frappe-control {
13 margin: 0 !important;
Saqib Ansari0fb2e022020-11-09 23:51:24 +053014 width: 100%;
15 }
16
17 .form-group {
18 margin-bottom: 0px !important;
19 }
20
21 .pointer-no-select {
22 cursor: pointer;
23 user-select: none;
24 }
25
26 .nowrap {
27 overflow: hidden;
28 white-space: nowrap;
29 }
30
31 .image {
32 height: 100% !important;
33 object-fit: cover;
34 }
35
36 .abbr {
37 background-color: var(--gray-50);
38 font-size: var(--text-3xl);
39 }
40
41 .label {
42 display: flex;
43 align-items: center;
44 font-weight: 700;
45 font-size: var(--text-lg);
46 }
47
48 .pos-card {
49 background-color: var(--fg-color);
50 box-shadow: var(--shadow-base);
51 border-radius: var(--border-radius-md);
52 }
53
Saqib Ansari210baaf2020-11-11 12:04:00 +053054 .seperator {
Saqib Ansaricc208832020-11-11 20:47:20 +053055 margin-left: var(--margin-sm);
56 margin-right: var(--margin-sm);
Saqib Ansari210baaf2020-11-11 12:04:00 +053057 border-bottom: 1px solid var(--gray-300);
58 }
59
Saqib Ansaricc208832020-11-11 20:47:20 +053060 .primary-action {
61 @extend .pointer-no-select;
62 display: flex;
63 align-items: center;
64 justify-content: center;
65 padding: var(--padding-sm);
Saqib Ansaricc208832020-11-11 20:47:20 +053066 margin-top: var(--margin-sm);
Saqib Ansaricc208832020-11-11 20:47:20 +053067 border-radius: var(--border-radius-md);
68 font-size: var(--text-lg);
69 font-weight: 700;
70 }
71
72 .highlighted-numpad-btn {
73 box-shadow: inset 0 0px 4px 0px rgba(0, 0, 0, 0.15) !important;
74 font-weight: 700;
75 background-color: var(--gray-50);
76 }
77
Saqib Ansari0fb2e022020-11-09 23:51:24 +053078 > .items-selector {
79 grid-column: span 6 / span 6;
80 display: flex;
81 flex-direction: column;
82 overflow-y: scroll;
83 overflow-x: hidden;
84
85 > .filter-section {
86 display: grid;
87 grid-template-columns: repeat(12, minmax(0, 1fr));
88 background-color: var(--fg-color);
89 position: sticky;
90 top: -1px;
91 z-index: 1;
Saqib Ansari7202e9f2020-11-13 17:33:20 +053092 padding: var(--padding-lg);
Saqib Ansari0fb2e022020-11-09 23:51:24 +053093 padding-bottom: var(--padding-sm);
94 align-items: center;
95
96 > .label {
97 @extend .label;
98 grid-column: span 4 / span 4;
Saqib Ansari7202e9f2020-11-13 17:33:20 +053099 padding-bottom: var(--padding-xs);
Saqib Ansari0fb2e022020-11-09 23:51:24 +0530100 }
101
102 > .search-field {
103 grid-column: span 5 / span 5;
104 display: flex;
105 align-items: center;
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530106 margin-right: var(--padding-sm);
Saqib Ansari0fb2e022020-11-09 23:51:24 +0530107 }
108
109 > .item-group-field {
110 grid-column: span 3 / span 3;
111 display: flex;
112 align-items: center;
113 }
114 }
115
116 > .items-container {
117 display: grid;
118 grid-template-columns: repeat(4, minmax(0, 1fr));
119 gap: var(--margin-lg);
Saqib Ansari0fb2e022020-11-09 23:51:24 +0530120 padding: var(--padding-lg);
121 padding-top: var(--padding-xs);
122
123 > .item-wrapper {
124 @extend .pointer-no-select;
125 border-radius: var(--border-radius-md);
126 box-shadow: var(--shadow-base);
127
128 .item-display {
129 display: flex;
130 align-items: center;
131 justify-content: center;
132 border-radius: var(--border-radius-md);
133 margin: var(--margin-sm);
134 margin-bottom: 0px;
135 min-height: 8rem;
136 height: 8rem;
137 color: var(--gray-500);
138
139 > img {
140 @extend .image;
141 }
142 }
143
144 > .item-detail {
145 display: flex;
146 flex-direction: column;
147 justify-content: center;
148 min-height: 3.5rem;
149 height: 3.5rem;
150 padding-left: var(--padding-sm);
151 padding-right: var(--padding-sm);
152
153 > .item-name {
154 @extend .nowrap;
155 display: flex;
156 align-items: center;
157 font-size: var(--text-md);
158 }
159
160 > .item-rate {
161 font-weight: 700;
162 }
163 }
164
165 }
166 }
167 }
Saqib Ansari210baaf2020-11-11 12:04:00 +0530168
169 > .customer-cart-container {
170 grid-column: span 4 / span 4;
171 display: flex;
172 flex-direction: column;
173
174 > .customer-section {
175 @extend .pos-card;
176 display: flex;
177 flex-direction: column;
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530178 padding: var(--padding-md) var(--padding-lg);
Saqib Ansari210baaf2020-11-11 12:04:00 +0530179
180 > .customer-field {
181 display: flex;
182 align-items: center;
183 }
184
185 > .customer-details {
186 display: flex;
187 flex-direction: column;
188 position: sticky;
189 top: -1px;
190 z-index: 1;
191 background-color: var(--fg-color);
192
193 > .header {
194 display: flex;
195 margin-bottom: var(--margin-md);
196 justify-content: space-between;
197 padding-top: var(--padding-md);
198
199 > .label {
200 @extend .label;
201 }
202
203 > .close-details-btn {
204 display: flex;
205 align-items: center;
206 cursor: pointer;
207 }
208 }
209
210 > .customer-display {
211 display: flex;
212 align-items: center;
213 cursor: pointer;
214
215 > .customer-image {
216 display: flex;
217 align-items: center;
218 justify-content: center;
219 width: 3rem;
220 height: 3rem;
221 border-radius: 50%;
222 color: var(--gray-500);
223 margin-right: var(--margin-md);
224
225 > img {
226 @extend .image;
227 border-radius: 50%;
228 }
229 }
230
231 > .customer-abbr {
232 @extend .abbr;
233 font-size: var(--text-2xl);
234 }
235
236 > .customer-name-desc {
237 @extend .nowrap;
238 display: flex;
239 flex-direction: column;
240 margin-right: auto;
241
242 >.customer-name {
243 font-weight: 700;
244 font-size: var(--text-lg);
245 }
246
247 >.customer-desc {
248 color: var(--gray-600);
249 font-weight: 500;
250 font-size: var(--text-sm);
251 }
252 }
253
254 > .reset-customer-btn {
255 display: flex;
256 align-items: center;
257 cursor: pointer;
258 }
259
260 }
261
262 > .customer-fields-container {
263 display: grid;
264 grid-template-columns: repeat(2, minmax(0, 1fr));
265 margin-top: var(--margin-sm);
266 }
267
268 > .transactions-label {
269 @extend .label;
270 margin-top: var(--margin-sm);
271 margin-bottom: var(--margin-sm);
272 }
273 }
274 }
275
276 > .cart-container {
Saqib Ansaricc208832020-11-11 20:47:20 +0530277 @extend .pos-card;
278 display: flex;
279 flex-direction: column;
280 align-items: center;
281 margin-top: var(--margin-md);
282 position: relative;
283 height: 100%;
Saqib Ansari210baaf2020-11-11 12:04:00 +0530284
Saqib Ansaricc208832020-11-11 20:47:20 +0530285 > .abs-cart-container {
286 position: absolute;
287 display: flex;
288 flex-direction: column;
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530289 padding: var(--padding-lg);
Saqib Ansaricc208832020-11-11 20:47:20 +0530290 width: 100%;
291 height: 100%;
292
293 > .cart-label {
294 @extend .label;
295 padding-bottom: var(--padding-md);
Saqib Ansaricc208832020-11-11 20:47:20 +0530296 }
297
298 > .cart-header {
299 display: flex;
300 width: 100%;
301 font-size: var(--text-md);
Saqib Ansaricc208832020-11-11 20:47:20 +0530302 padding-bottom: var(--padding-md);
303
304 > .name-header {
305 flex: 1 1 0%;
Saqib Ansaricc208832020-11-11 20:47:20 +0530306 }
307
308 > .qty-header {
309 margin-right: var(--margin-lg);
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530310 text-align: center;
Saqib Ansaricc208832020-11-11 20:47:20 +0530311 }
312
313 > .rate-amount-header {
Saqib Ansaricc208832020-11-11 20:47:20 +0530314 text-align: right;
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530315 margin-right: var(--margin-sm);
Saqib Ansaricc208832020-11-11 20:47:20 +0530316 }
317 }
318
319 .no-item-wrapper {
320 display: flex;
321 align-items: center;
322 justify-content: center;
323 background-color: var(--gray-50);
324 border-radius: var(--border-radius-md);
325 font-size: var(--text-md);
326 font-weight: 500;
327 width: 100%;
328 height: 100%;
329 }
330
331 > .cart-items-section {
332 display: flex;
333 flex-direction: column;
334 flex: 1 1 0%;
335 overflow-y: scroll;
336
337 > .cart-item-wrapper {
338 @extend .pointer-no-select;
339 display: flex;
340 align-items: center;
341 padding: var(--padding-sm);
342 border-radius: var(--border-radius-md);
343
344 &:hover {
345 background-color: var(--gray-50);
346 }
347
348 > .item-image {
349 display: flex;
350 align-items: center;
351 justify-content: center;
352 width: 2rem;
353 height: 2rem;
354 border-radius: var(--border-radius-md);
355 color: var(--gray-500);
356 margin-right: var(--margin-md);
357
358 > img {
359 @extend .image;
360 }
361 }
362
363 > .item-abbr {
364 @extend .abbr;
365 font-size: var(--text-lg);
366 }
367
368
369 > .item-name-desc {
370 @extend .nowrap;
371 display: flex;
372 flex-direction: column;
373 flex: 1 1 0%;
374 flex-shrink: 1;
375
376 > .item-name {
377 font-weight: 700;
378 }
379
380 > .item-desc {
381 font-size: var(--text-sm);
382 color: var(--gray-600);
383 font-weight: 500;
384 }
385 }
386
387 > .item-qty-rate {
388 display: flex;
389 flex-shrink: 0;
390 text-align: right;
391 margin-left: var(--margin-md);
392
393 > .item-qty {
394 display: flex;
395 align-items: center;
396 margin-right: var(--margin-lg);
397 font-weight: 700;
398 }
399
400 > .item-rate-amount {
401 display: flex;
402 flex-direction: column;
403 flex-shrink: 0;
404 text-align: right;
405
406 > .item-rate {
407 font-weight: 700;
408 }
409
410 > .item-amount {
411 font-size: var(--text-md);
412 font-weight: 600;
413 }
414 }
415 }
416
417 }
418 }
419
420 > .cart-totals-section {
421 display: flex;
422 flex-direction: column;
423 flex-shrink: 0;
424 width: 100%;
425 margin-top: var(--margin-md);
426
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530427 > .add-discount-wrapper {
428 @extend .pointer-no-select;
429 display: none;
430 align-items: center;
431 border-radius: var(--border-radius-md);
432 border: 1px dashed var(--gray-500);
433 padding: var(--padding-sm) var(--padding-md);
434 margin-bottom: var(--margin-sm);
435
436 > .add-discount-field {
437 width: 100%;
438 }
439
440 > .discount-icon {
441 margin-right: var(--margin-sm);
442 }
443
444 > .edit-discount-btn {
445 padding: 3px var(--padding-sm);
446 border-radius: var(--border-radius-sm);
447 background-color: var(--green-100);
448 color: var(--green-700);
449 font-size: var(--text-sm);
450 font-weight: 700;
451 }
452 }
453
Saqib Ansaricc208832020-11-11 20:47:20 +0530454 > .net-total-container {
455 display: flex;
456 align-items: center;
457 justify-content: space-between;
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530458 padding: var(--padding-sm) 0px;
Saqib Ansaricc208832020-11-11 20:47:20 +0530459 font-weight: 500;
460 font-size: var(--text-md);
461 }
462
463 > .taxes-container {
464 display: none;
465 align-items: center;
466 justify-content: space-between;
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530467 padding: var(--padding-sm) 0px;
Saqib Ansaricc208832020-11-11 20:47:20 +0530468 font-weight: 500;
469 font-size: var(--text-md);
470
471 > .tax-label {
472 display: flex;
473 align-items: center;
474
475 > .tax-desc {
476 margin-left: var(--margin-md);
477 }
478 }
479 }
480
481 > .grand-total-container {
482 display: flex;
483 align-items: center;
484 justify-content: space-between;
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530485 padding: var(--padding-sm) 0px;
Saqib Ansaricc208832020-11-11 20:47:20 +0530486 font-weight: 700;
487 font-size: var(--text-lg);
488 }
489
490 > .checkout-btn {
491 @extend .primary-action;
492 background-color: var(--blue-200);
493 color: white;
494 }
Saqib Ansarifc3315a2020-11-11 22:59:10 +0530495
496 > .edit-cart-btn {
497 @extend .primary-action;
498 display: none;
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530499 background-color: var(--gray-300);
Saqib Ansarifc3315a2020-11-11 22:59:10 +0530500 font-weight: 500;
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530501 transition: all 0.15s ease-in-out;
502
503 &:hover {
504 background-color: var(--gray-600);
505 color: white;
506 font-weight: 700;
507 }
Saqib Ansarifc3315a2020-11-11 22:59:10 +0530508 }
Saqib Ansaricc208832020-11-11 20:47:20 +0530509 }
510
511 > .numpad-section {
512 display: none;
513 flex-direction: column;
514 flex-shrink: 0;
515 margin-top: var(--margin-sm);
516 padding: var(--padding-sm);
517 padding-bottom: 0px;
518 width: 100%;
519
520 > .numpad-totals {
521 display: flex;
522 justify-content: space-between;
523 margin-bottom: var(--margin-md);
524 font-size: var(--text-md);
525 font-weight: 700;
526 }
527
528 > .numpad-container {
529 display: grid;
530 grid-template-columns: repeat(5, minmax(0, 1fr));
531 gap: var(--margin-md);
532 margin-bottom: var(--margin-md);
533
534 > .numpad-btn {
535 @extend .pointer-no-select;
536 border-radius: var(--border-radius-md);
537 display: flex;
538 align-items: center;
539 justify-content: center;
540 padding: var(--padding-md);
541 box-shadow: var(--shadow-sm);
542 }
543
544 > .col-span-2 {
545 grid-column: span 2 / span 2;
546 }
547
548 > .remove-btn {
549 font-weight: 700;
550 color: var(--red-500);
551 }
552 }
553
554 > .checkout-btn {
555 @extend .primary-action;
556 margin: 0px;
557 margin-bottom: var(--margin-sm);
558 background-color: var(--blue-200);
559 color: white;
560 }
561 }
562 }
Saqib Ansari210baaf2020-11-11 12:04:00 +0530563 }
564 }
565
566 .invoice-wrapper {
567 @extend .pointer-no-select;
568 display: flex;
569 justify-content: space-between;
570 border-radius: var(--border-radius-md);
571 padding: var(--padding-sm);
572
573 &:hover {
574 background-color: var(--gray-50);
575 }
576
577 > .invoice-name-date {
578 display: flex;
579 flex-direction: column;
Saqib Ansarifc3315a2020-11-11 22:59:10 +0530580 justify-content: flex-end;
Saqib Ansari210baaf2020-11-11 12:04:00 +0530581
582 > .invoice-name {
583 @extend .nowrap;
584 font-size: var(--text-md);
585 font-weight: 700;
586 margin-bottom: var(--margin-xs);
587 }
588
589 > .invoice-date {
590 @extend .nowrap;
591 font-size: var(--text-sm);
592 display: flex;
593 align-items: center;
594 }
595 }
596
597 > .invoice-total-status {
598 display: flex;
599 flex-direction: column;
600 font-weight: 500;
601 font-size: var(--text-sm);
602 margin-left: var(--margin-md);
603
604 > .invoice-total {
605 margin-bottom: var(--margin-xs);
606 font-size: var(--text-base);
607 font-weight: 700;
608 text-align: right;
609 }
610
611 > .invoice-status {
612 display: flex;
613 align-items: center;
614 justify-content: right;
615 }
616 }
617 }
Saqib Ansarifc3315a2020-11-11 22:59:10 +0530618
619 > .item-details-container {
620 @extend .pos-card;
621 grid-column: span 4 / span 4;
622 display: none;
623 flex-direction: column;
624 padding: var(--padding-lg);
625 padding-top: var(--padding-md);
626
627 > .item-details-header {
628 display: flex;
629 justify-content: space-between;
630 margin-bottom: var(--margin-md);
631
632 > .close-btn {
633 @extend .pointer-no-select;
634 }
635 }
636
637 > .item-display {
638 display: flex;
639
640 > .item-name-desc-price {
641 flex: 1 1 0%;
642 display: flex;
643 flex-direction: column;
644 justify-content: flex-end;
645 margin-right: var(--margin-md);
646
647 > .item-name {
648 font-size: var(--text-3xl);
649 font-weight: 600;
650 }
651
652 > .item-desc {
653 font-size: var(--text-md);
654 font-weight: 500;
655 }
656
657 > .item-price {
658 font-size: var(--text-3xl);
659 font-weight: 700;
660 }
661 }
662
663 > .item-image {
664 display: flex;
665 align-items: center;
666 justify-content: center;
667 width: 11rem;
668 height: 11rem;
669 border-radius: var(--border-radius-md);
670 margin-left: var(--margin-md);
671 color: var(--gray-500);
672
673 > img {
674 @extend .image;
675 }
676
677 > .item-abbr {
678 @extend .abbr;
679 display: flex;
680 align-items: center;
681 justify-content: center;
682 border-radius: var(--border-radius-md);
683 font-size: var(--text-3xl);
684 width: 100%;
685 height: 100%;
686 }
687 }
688 }
689
690 > .discount-section {
691 display: flex;
692 align-items: center;
693 margin-bottom: var(--margin-sm);
694
695 > .item-rate {
696 font-weight: 500;
697 margin-right: var(--margin-sm);
698 text-decoration: line-through;
699 }
700
701 > .item-discount {
702 padding: 3px var(--padding-sm);
703 border-radius: var(--border-radius-sm);
704 background-color: var(--green-100);
705 color: var(--green-700);
706 font-size: var(--text-sm);
707 font-weight: 700;
708 }
709 }
710
711 > .form-container {
712 display: grid;
713 grid-template-columns: repeat(2, minmax(0, 1fr));
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530714 column-gap: var(--padding-md);
Saqib Ansarifc3315a2020-11-11 22:59:10 +0530715
716 > .auto-fetch-btn {
717 @extend .pointer-no-select;
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530718 margin: var(--margin-xs);
Saqib Ansarifc3315a2020-11-11 22:59:10 +0530719 }
720 }
721 }
Saqib Ansari7202e9f2020-11-13 17:33:20 +0530722
723 > .payment-container {
724 @extend .pos-card;
725 grid-column: span 6 / span 6;
726 display: none;
727 flex-direction: column;
728 padding: var(--padding-lg);
729
730 .border-primary {
731 border: 1px solid var(--blue-500);
732 }
733
734 .submit-order-btn {
735 @extend .primary-action;
736 background-color: var(--blue-500);
737 color: white;
738 }
739
740 .section-label {
741 @extend .label;
742 @extend .pointer-no-select;
743 margin-bottom: var(--margin-md);
744 }
745
746 > .payment-modes {
747 display: flex;
748 margin-bottom: var(--margin-md);
749 overflow-x: scroll;
750 overflow-y: hidden;
751
752 > .payment-mode-wrapper {
753 min-width: 40%;
754 padding: var(--padding-xs);
755
756 > .mode-of-payment {
757 @extend .pos-card;
758 @extend .pointer-no-select;
759 padding: var(--padding-md) var(--padding-lg);
760
761 > .pay-amount {
762 display: inline;
763 float: right;
764 font-weight: 700;
765 }
766
767 > .mode-of-payment-control {
768 display: none;
769 align-items: center;
770 margin-top: var(--margin-sm);
771 margin-bottom: var(--margin-xs);
772 }
773
774 > .loyalty-amount-name {
775 display: none;
776 float: right;
777 font-weight: 700;
778 }
779
780 > .cash-shortcuts {
781 display: none;
782 grid-template-columns: repeat(3, minmax(0, 1fr));
783 gap: var(--margin-sm);
784 font-size: var(--text-sm);
785 text-align: center;
786
787 > .shortcut {
788 @extend .pointer-no-select;
789 border-radius: var(--border-radius-sm);
790 background-color: var(--gray-100);
791 font-weight: 500;
792 padding: var(--padding-xs) var(--padding-sm);
793 transition: all 0.15s ease-in-out;
794
795 &:hover {
796 background-color: var(--gray-300);
797 }
798 }
799 }
800 }
801 }
802 }
803
804 .invoice-fields {
805 display: none;
806 grid-template-columns: repeat(2, minmax(0, 1fr));
807 column-gap: var(--padding-md);
808 }
809
810 > .totals-section {
811 display: flex;
812 margin-top: auto;
813 margin-bottom: var(--margin-sm);
814 justify-content: center;
815 flex-direction: column;
816
817 > .totals {
818 display: flex;
819 padding-top: var(--padding-md);
820 background-color: var(--gray-100);
821 justify-content: center;
822 padding: var(--padding-md);
823 border-radius: var(--border-radius-md);
824
825 > .col {
826 flex-grow: 1;
827 text-align: center;
828
829 > .total-label {
830 font-size: var(--text-md);
831 font-weight: 500;
832 color: var(--gray-600);
833 }
834
835 > .value {
836 font-size: var(--text-2xl);
837 font-weight: 700;
838 }
839 }
840
841 > .seperator-y {
842 margin-left: var(--margin-sm);
843 margin-right: var(--margin-sm);
844 border-right: 1px solid var(--gray-300);
845 }
846 }
847
848 > .number-pad {
849 display: none;
850 }
851 }
852
853 }
Saqib Ansari0fb2e022020-11-09 23:51:24 +0530854}