@vixcom/ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/.firebaserc +17 -0
  2. package/.github/workflows/deploy-prod.yml +26 -0
  3. package/.pnpm-debug.log +19 -0
  4. package/assets/img/favicon.png +0 -0
  5. package/assets/img/icon.png +0 -0
  6. package/css/animations.css +175 -0
  7. package/css/animations.css.map +1 -0
  8. package/css/app.css +1896 -0
  9. package/css/app.css.map +1 -0
  10. package/css/colors.css +5591 -0
  11. package/css/colors.css.map +1 -0
  12. package/css/external/bootstrap-grid.css +4997 -0
  13. package/css/external/bootstrap.css +10308 -0
  14. package/css/external/mdb.css +9444 -0
  15. package/css/external/owl-carousel.css +218 -0
  16. package/css/fonts.css +65 -0
  17. package/css/fonts.css.map +1 -0
  18. package/css/grid.css +6 -0
  19. package/css/grid.css.map +1 -0
  20. package/css/helper/owl.carousel.css +75 -0
  21. package/css/helper/owl.carousel.css.map +1 -0
  22. package/css/helper/primefaces.css +276 -0
  23. package/css/helper/primefaces.css.map +1 -0
  24. package/css/helper/primefaces.org.css.map +1 -0
  25. package/css/helper/tailwindcss.css +6 -0
  26. package/css/helper/tailwindcss.css.map +1 -0
  27. package/css/icons/external/bootstrap.icons.css +5502 -0
  28. package/css/icons/external/fontawesome.icons.css +6127 -0
  29. package/css/icons/external/material-design.icons.css +5728 -0
  30. package/css/icons/external/themify.icons.css +1428 -0
  31. package/css/index.css +23 -0
  32. package/css/index.css.map +1 -0
  33. package/css/menu.css +556 -0
  34. package/css/menu.css.map +1 -0
  35. package/css/polyfills.css +11 -0
  36. package/css/polyfills.css.map +1 -0
  37. package/css/sidebar.css.map +1 -0
  38. package/css/sizes.css +7457 -0
  39. package/css/sizes.css.map +1 -0
  40. package/css/variables.css +258 -0
  41. package/css/variables.css.map +1 -0
  42. package/firebase.json +55 -0
  43. package/fonts/MontessoriScript.ttf +0 -0
  44. package/fonts/Montserrat-Bold.ttf +0 -0
  45. package/fonts/Montserrat-Regular.ttf +0 -0
  46. package/fonts/NotoSans-Bold.ttf +0 -0
  47. package/fonts/Roboto-Bold.ttf +0 -0
  48. package/fonts/Roboto-Regular.ttf +0 -0
  49. package/fonts/bootstrap-icons.woff +0 -0
  50. package/fonts/fa-brands.woff +0 -0
  51. package/fonts/fa-regular.woff +0 -0
  52. package/fonts/fa-solid.woff +0 -0
  53. package/fonts/material-design-icons.ttf +0 -0
  54. package/http-server.sh +4 -0
  55. package/index.html +206 -0
  56. package/js/axios.min.js +3 -0
  57. package/js/bootstrap.min.js +7 -0
  58. package/js/jquery.min.js +4 -0
  59. package/js/lodash.min.js +139 -0
  60. package/js/mdb.min.js +15411 -0
  61. package/js/owl.carousel.min.js +7 -0
  62. package/js/sidebar.min.js +50 -0
  63. package/package.json +11 -0
  64. package/pages/error/index.html +32 -0
  65. package/pages/sidemenu/index.html +36 -0
  66. package/pages/tier-1/LICENSE +201 -0
  67. package/pages/tier-1/fonts/krub/Krub-Bold.ttf +0 -0
  68. package/pages/tier-1/fonts/krub/Krub-Light.ttf +0 -0
  69. package/pages/tier-1/fonts/krub/Krub-Regular.ttf +0 -0
  70. package/pages/tier-1/fonts/themify.woff +0 -0
  71. package/pages/tier-1/index.html +74 -0
  72. package/pages/tier-1/preview.png +0 -0
  73. package/pages/tier-1/scripts/jquery.min.js +4 -0
  74. package/pages/tier-1/scripts/sidebar.min.js +50 -0
  75. package/pages/tier-1/styles/bootstrap.css +9495 -0
  76. package/pages/tier-1/styles/color.css +28 -0
  77. package/pages/tier-1/styles/layout.css +33 -0
  78. package/pages/tier-1/styles/mdb.css +9657 -0
  79. package/pages/tier-1/styles/page.css +26 -0
  80. package/pages/tier-1/styles/sidebar.css +193 -0
  81. package/pages/tier-1/styles/themify.css +1428 -0
  82. package/pages/tier-2/LICENSE +201 -0
  83. package/pages/tier-2/fonts/krub/Krub-Bold.ttf +0 -0
  84. package/pages/tier-2/fonts/krub/Krub-Light.ttf +0 -0
  85. package/pages/tier-2/fonts/krub/Krub-Regular.ttf +0 -0
  86. package/pages/tier-2/fonts/themify.woff +0 -0
  87. package/pages/tier-2/index.html +65 -0
  88. package/pages/tier-2/preview.png +0 -0
  89. package/pages/tier-2/scripts/jquery.min.js +4 -0
  90. package/pages/tier-2/scripts/sidebar.min.js +50 -0
  91. package/pages/tier-2/styles/bootstrap.css +9495 -0
  92. package/pages/tier-2/styles/color.css +28 -0
  93. package/pages/tier-2/styles/layout.css +43 -0
  94. package/pages/tier-2/styles/mdb.css +9657 -0
  95. package/pages/tier-2/styles/page.css +26 -0
  96. package/pages/tier-2/styles/sidebar.css +193 -0
  97. package/pages/tier-2/styles/themify.css +1428 -0
  98. package/styles/_mixins.scss +309 -0
  99. package/styles/animations.scss +191 -0
  100. package/styles/app.scss +2020 -0
  101. package/styles/colors.scss +117 -0
  102. package/styles/fonts.scss +16 -0
  103. package/styles/grid.scss +4 -0
  104. package/styles/helper/owl.carousel.scss +92 -0
  105. package/styles/helper/primefaces.scss +364 -0
  106. package/styles/helper/tailwindcss.scss +4 -0
  107. package/styles/index.scss +25 -0
  108. package/styles/menu.scss +566 -0
  109. package/styles/polyfills.scss +9 -0
  110. package/styles/sizes.scss +191 -0
  111. package/styles/variables.scss +30 -0
@@ -0,0 +1,566 @@
1
+ @import 'mixins';
2
+
3
+ /**
4
+ * @Author vixson https://vixson.github.io
5
+ * @Description Menu styles which includes:
6
+ * 1. sidemenu
7
+ * 2. fullmenu (fullscreen floating)
8
+ * 2. floatmenu (miniscreen corner floating)
9
+ */
10
+
11
+ @mixin md-toggled-sidemenu {
12
+ width: 15%;
13
+ flex-basis: 15%;
14
+
15
+ .menu-header {
16
+ .menu-logo,
17
+ .appmenu-toggle {
18
+ display: none;
19
+ }
20
+
21
+ .title {
22
+ opacity: 0;
23
+ height: 0;
24
+ margin-bottom: 0;
25
+ }
26
+ }
27
+
28
+ .nav-menu .nav-item {
29
+ justify-content: center;
30
+ }
31
+
32
+ .icon {
33
+ /* margin-right: 0; */
34
+ }
35
+
36
+ .menu-header,
37
+ .menu-footer,
38
+ .nav-menu {
39
+ .nav-item,
40
+ .nav-title {
41
+ .label {
42
+ opacity: 0;
43
+ transform: translateX(100%);
44
+ position: absolute;
45
+ }
46
+ }
47
+
48
+ .nav-title {
49
+ border-bottom: thin solid;
50
+ padding: 0;
51
+
52
+ &::before {
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ .appmenu-trigger {
59
+ /* @include absolute-content; */
60
+ position: fixed !important;
61
+ left: 0;
62
+ top: 0;
63
+ padding: 0 !important;
64
+ margin: 0 !important;
65
+ height: 100% !important;
66
+ width: 100% !important;
67
+ transition: background-color 0.5s ease-in;
68
+ border-radius: 0 !important;
69
+ z-index: -1;
70
+
71
+ &::after {
72
+ display: none !important;
73
+ }
74
+
75
+ &:checked {
76
+ ~,
77
+ ~ * {
78
+ .sidemenu.md {
79
+ opacity: 1;
80
+ @include md-toggled-sidemenu;
81
+ }
82
+
83
+ .page {
84
+ > footer {
85
+ background-color: var(--primary);
86
+ color: var(--primary-c);
87
+ }
88
+ }
89
+ }
90
+ }
91
+
92
+ &:not(:checked) {
93
+ ~,
94
+ ~ * {
95
+ .menu-logo-alt {
96
+ display: none;
97
+ }
98
+ }
99
+ }
100
+ }
101
+
102
+ .appmenu-toggle {
103
+ position: relative;
104
+ /* font-size: 120%; */
105
+ margin-bottom: 0;
106
+ /* z-index: 1; */
107
+ }
108
+
109
+ .menu-header {
110
+ display: flex;
111
+ }
112
+
113
+ .nav-menu {
114
+ /* border-top: 1px solid; */
115
+ width: 100%;
116
+ height: 100%;
117
+ display: flex;
118
+ font-size: 120%;
119
+ gap: 0.5rem;
120
+
121
+ .nav-item {
122
+ display: flex;
123
+ align-items: center;
124
+ padding: 1rem;
125
+ text-decoration: none;
126
+ color: currentColor;
127
+ }
128
+ }
129
+
130
+ /* Sidemenu */
131
+ .sidemenu-container {
132
+ position: relative;
133
+ display: flex;
134
+ flex-direction: row;
135
+ width: 100%;
136
+ height: 100%;
137
+
138
+ &.rtl {
139
+ .page {
140
+ order: -1;
141
+ }
142
+ }
143
+ }
144
+
145
+ .sidemenu {
146
+ display: flex;
147
+ flex-direction: column;
148
+ position: relative;
149
+ width: 30%;
150
+ height: 100%;
151
+ margin: 0;
152
+ flex: 1 1 30%;
153
+ /* border-right: thin solid var(--secondary); */
154
+ transition: width 0.5s, flex-basis 0.5s, transform 0.5s, opacity 0.25s;
155
+ overflow: hidden;
156
+ z-index: 1;
157
+
158
+ /* Sidemenu scrollbar */
159
+ ::-webkit-scrollbar {
160
+ width: 0;
161
+ }
162
+
163
+ ::-webkit-scrollbar-thumb {
164
+ background-color: currentColor;
165
+ }
166
+
167
+ .menu-header {
168
+ padding: 1rem;
169
+
170
+ .title {
171
+ transition: height 0.5s linear 0.5s, opacity 0.5s linear 0.5s;
172
+ }
173
+ }
174
+
175
+ .nav-menu {
176
+ flex-direction: column;
177
+ overflow-y: scroll;
178
+ overflow-x: hidden;
179
+
180
+ .nav-item {
181
+ @include before-content;
182
+
183
+ &::before {
184
+ background-color: currentColor;
185
+ opacity: 0;
186
+ transition: opacity 0.5s;
187
+ }
188
+
189
+ &.active {
190
+ /* border-right: 2px solid; */
191
+
192
+ &::before {
193
+ opacity: 0.25;
194
+ }
195
+ }
196
+
197
+ &:hover::before {
198
+ opacity: 0.125;
199
+ }
200
+
201
+ .label {
202
+ overflow: hidden;
203
+ text-overflow: ellipsis;
204
+ white-space: nowrap;
205
+ }
206
+ }
207
+ }
208
+
209
+ .icon {
210
+ // margin: 0.125rem 1em;
211
+ // margin-left: 0;
212
+ }
213
+
214
+ footer,
215
+ .menu-footer {
216
+ margin-top: auto;
217
+ }
218
+ }
219
+
220
+ .fullmenu {
221
+ display: flex;
222
+ transition: transform 0.5s;
223
+ align-items: center;
224
+
225
+ .menu-header {
226
+ display: flex;
227
+ }
228
+
229
+ .nav-menu {
230
+ align-items: center;
231
+ justify-content: center;
232
+ overflow: scroll;
233
+ }
234
+ }
235
+
236
+ .floatmenu {
237
+ display: flex;
238
+
239
+ .nav-menu {
240
+ .nav-item {
241
+ gap: 1rem;
242
+ }
243
+ }
244
+ }
245
+
246
+ /* Page */
247
+
248
+ .page {
249
+ display: flex;
250
+ flex-direction: column;
251
+ position: relative;
252
+ width: 100%;
253
+ height: 100%;
254
+ margin: 0;
255
+ flex: 1 1 100%;
256
+ transition: width 0.5s;
257
+ overflow: hidden;
258
+ z-index: 1;
259
+
260
+ footer {
261
+ background-color: var(--secondary);
262
+ color: var(--white);
263
+ }
264
+ }
265
+
266
+ .page-content {
267
+ position: relative;
268
+ padding: 3em;
269
+ width: 100%;
270
+ flex: 1 1 100%;
271
+ // border: thin solid var(--white);
272
+ transition: margin 0.2s;
273
+ }
274
+
275
+ /* Above <---> Tablets/Mini PC */
276
+ @media (min-width: 768px) {
277
+ .appmenu-trigger {
278
+ &:checked {
279
+ ~,
280
+ ~ * {
281
+ .sidemenu {
282
+ width: 0;
283
+ flex-basis: 0;
284
+ opacity: 0;
285
+ padding: 0;
286
+ }
287
+ }
288
+ }
289
+
290
+ &:not(:checked) {
291
+ ~,
292
+ ~ * {
293
+ .sidemenu.minimized {
294
+ @include md-toggled-sidemenu;
295
+ }
296
+
297
+ .page .app-header {
298
+ .appmenu-toggle {
299
+ display: none;
300
+ }
301
+ }
302
+ }
303
+ }
304
+ }
305
+ }
306
+
307
+ /* Above <---> Mobile */
308
+ @media (min-width: 576px) {
309
+ .floatmenu,
310
+ .fullmenu {
311
+ align-items: center;
312
+
313
+ .menu-header {
314
+ // .menu-logo,
315
+ .appmenu-toggle {
316
+ display: none;
317
+ }
318
+ }
319
+ }
320
+
321
+ .floatmenu {
322
+ /* width: 75%; */
323
+ }
324
+
325
+ .appmenu-trigger {
326
+ &,
327
+ &::before,
328
+ &::after {
329
+ background-color: transparent !important;
330
+ }
331
+
332
+ &:not(:checked) {
333
+ ~,
334
+ ~ * {
335
+ .page {
336
+ /* TODO: Use this on Sibemenu Type 2 - Page overlaps Sidemenu */
337
+ /*
338
+ border-left: thin solid;
339
+ @include before-content;
340
+
341
+ &::before {
342
+ box-shadow: 0 0 2.5rem -1.75rem hsla(var(--black-hs), var(--black-l), 0.125);
343
+ } */
344
+ /* ---- */
345
+ }
346
+ }
347
+ }
348
+ }
349
+ }
350
+
351
+ /* Mobile <---> Tablets/Mini PC */
352
+ @media (min-width: 576px) and (max-width: 767.98px) {
353
+ .appmenu-trigger {
354
+ &:not(:checked) {
355
+ ~,
356
+ ~ * {
357
+ .sidemenu * > {
358
+ .label {
359
+ transition: position 0.25s linear 0.125s,
360
+ transform 0.25s linear 0.125s, opacity 0.5s linear 0.125s;
361
+ }
362
+ }
363
+ }
364
+ }
365
+
366
+ &:checked {
367
+ ~,
368
+ ~ * {
369
+ .sidemenu {
370
+ @include md-toggled-sidemenu;
371
+ }
372
+ }
373
+ }
374
+ }
375
+
376
+ .sidemenu {
377
+ .btn,
378
+ .nav-menu .nav-item {
379
+ padding-left: 1rem;
380
+ padding-right: 1rem;
381
+ }
382
+
383
+ .appmenu-toggle {
384
+ display: none;
385
+ }
386
+ }
387
+
388
+ .floatmenu {
389
+ /* width: 50%; */
390
+ }
391
+ }
392
+
393
+ /* Tablets/Mini PC <---> BELOW */
394
+ @media (max-width: 767.98px) {
395
+ .sidemenu .btn {
396
+ min-width: auto;
397
+ }
398
+ }
399
+
400
+ /* Mobile <--> BELOW */
401
+ @media (max-width: 575.98px) {
402
+ .appmenu-trigger {
403
+ &:not(:checked) {
404
+ &,
405
+ &::before,
406
+ &::after {
407
+ background-color: transparent !important;
408
+ }
409
+
410
+ ~,
411
+ ~ * {
412
+ .fullmenu {
413
+ .nav-menu {
414
+ display: none;
415
+ /* transform: translateY(-100%); */
416
+ /* opacity: 0; */
417
+ }
418
+ }
419
+
420
+ // 3, Floatmenu
421
+ .floatmenu > *:not(.appmenu-toggle) {
422
+ display: none;
423
+ }
424
+ }
425
+ }
426
+
427
+ &:checked {
428
+ width: 100vw;
429
+ background-color: hsla(var(--black-hs), var(--black-l), 0.2);
430
+ z-index: 2;
431
+
432
+ ~,
433
+ ~ * {
434
+ // 1. Sidemenu
435
+ .sidemenu {
436
+ transform: translateX(0);
437
+ opacity: 1;
438
+
439
+ .appmenu-toggle {
440
+ transform: translateX(0);
441
+ }
442
+
443
+ .menu-logo-alt {
444
+ display: none;
445
+ }
446
+ }
447
+
448
+ // 2. Fullmenu
449
+ .fullmenu {
450
+ --background-color: hsla(
451
+ var(--secondary-hs),
452
+ var(--secondary-l),
453
+ 0.125
454
+ );
455
+ position: fixed;
456
+ flex-direction: column;
457
+ transform: translateY(0);
458
+ opacity: 1;
459
+ font-size: 125%;
460
+ background-color: var(--background-color);
461
+ color: var(--secondary-c);
462
+ backdrop-filter: blur(10px);
463
+ z-index: 2;
464
+
465
+ .btn {
466
+ color: var(--secondary-c) !important;
467
+
468
+ &:hover {
469
+ background-color: var(--secondary-c) !important;
470
+ color: var(--secondary) !important;
471
+ }
472
+ }
473
+
474
+ .menu-header {
475
+ order: -1;
476
+ padding: 1rem;
477
+
478
+ .menu-logo {
479
+ display: none;
480
+ }
481
+
482
+ .menu-logo-alt {
483
+ fill: var(--white);
484
+ }
485
+
486
+ .silhouette {
487
+ filter: saturate(0%) brightness(500%);
488
+ }
489
+ }
490
+
491
+ .nav-menu {
492
+ flex-direction: column;
493
+ }
494
+ }
495
+
496
+ // 3, Floatmenu
497
+ .floatmenu {
498
+ width: 100%;
499
+ }
500
+
501
+ .page .app-header .appmenu-toggle {
502
+ transform: translateX(-50%);
503
+ }
504
+ }
505
+ }
506
+ }
507
+
508
+ .sidemenu {
509
+ position: fixed;
510
+ top: 0;
511
+ left: 0;
512
+ bottom: 0;
513
+ width: 80%;
514
+ flex-basis: 80%;
515
+ transform: translateX(-100%);
516
+ opacity: 0;
517
+ box-shadow: 0 0 50px hsla(var(--black-hs), var(--black-l), 0.25);
518
+ z-index: 2;
519
+ }
520
+
521
+ .fullmenu {
522
+ top: 0;
523
+ left: 0;
524
+ right: 0;
525
+ bottom: 0;
526
+ /* transform: translateY(-100%); */
527
+ /* opacity: 0; */
528
+ z-index: 2;
529
+
530
+ .appmenu-trigger:not(:checked) & {
531
+ }
532
+
533
+ // .nav-menu {
534
+ // display: none;
535
+ // }
536
+
537
+ .menu-header {
538
+ width: 100%;
539
+ }
540
+ }
541
+
542
+ .floatmenu {
543
+ position: fixed;
544
+ bottom: 0;
545
+ /* left: 0; */
546
+ right: 0;
547
+ display: flex;
548
+ flex-direction: column;
549
+
550
+ .nav-menu {
551
+ flex-direction: column;
552
+ }
553
+
554
+ .nav-menu,
555
+ .menu-header,
556
+ .menu-footer {
557
+ padding: 1rem;
558
+ }
559
+ }
560
+
561
+ .page {
562
+ .page-content {
563
+ padding: 3em 1em;
564
+ }
565
+ }
566
+ }
@@ -0,0 +1,9 @@
1
+ @supports not (gap: 1em) {
2
+ .nav-menu {
3
+ margin: -0.5em;
4
+ }
5
+
6
+ .nav-menu>* {
7
+ margin: 0.5em;
8
+ }
9
+ }