@bydata/react-supertabs 1.1.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.
@@ -0,0 +1,892 @@
1
+ body {
2
+ --tab-background-color: #1E2126;
3
+ --tab-background-active-color: #000000;
4
+ --tab-background-overlay: #272B32;
5
+
6
+ --tab-parent-box-color: #BDC3CC;
7
+ --tab-parent-box-active-color: #FFF;
8
+
9
+ --tab-text-normal: #BDC3CC;
10
+ --tab-text-active: #F2F4F8;
11
+
12
+ --tab-close-btn-background: var(--tab-background-color);
13
+ --tab-background-button-secondary: #2F3540;
14
+ }
15
+
16
+ body[data-theme="light"] {
17
+ --tab-background-color: #D1D8E5;
18
+ --tab-background-active-color: #FFFFFF;
19
+ --tab-background-overlay: #FFFFFF;
20
+
21
+ --tab-parent-box-color: #1F242D;
22
+ --tab-parent-box-active-color: #1F242D;
23
+
24
+ --tab-text-normal: #1F242D;
25
+ --tab-text-active: #0A0D12;
26
+
27
+ --tab-close-btn-background: var(--tab-background-color);
28
+ --tab-background-button-secondary: #D1D8E5;
29
+ }
30
+
31
+ .super-tabs-wrapper {
32
+ --tab-gap: 2px;
33
+ --tab-with-sub-tab-gap: 5px;
34
+
35
+ --tab-color-white: #FFFFFF;
36
+ --tab-background-active-inner-color: #2151FF;
37
+ --tab-close-active-btn-background: var(--tab-background-active-inner-color);
38
+
39
+ --tab-color-disabled: #646464;
40
+ --notification-color: #BF3004;
41
+ --transition-duration: 300ms;
42
+ --transition-duration-extended: 300ms;
43
+
44
+ * {
45
+ font-family: "Open Sans", "Poppins", sans-serif !important;
46
+ font-size: 12px;
47
+ }
48
+
49
+ display: flex;
50
+ align-items: center;
51
+ width: 100%;
52
+
53
+ .cursor-tooltip-target {
54
+ display: flex;
55
+ }
56
+
57
+ // TODO: This is a temporary fix for the cursor tooltip for Release_2.1.2.7 This should be removed in the next release
58
+ @media only screen and (max-width: 640px) {
59
+ .cursor-tooltip {
60
+ display: none;
61
+ }
62
+
63
+ // Disable hover effects on mobile to prevent conflicts with touch
64
+ .home-tab:hover:not(.active) {
65
+ background-color: var(--tab-bg-color);
66
+
67
+ .brand-wrapper {
68
+ background-color: transparent;
69
+ }
70
+ }
71
+
72
+ .app-pages-wrapper {
73
+ // Adjust positioning for mobile if needed
74
+ top: calc(100% + 10px);
75
+ left: 0;
76
+ width: calc(100vw - 20px);
77
+ max-width: 280px;
78
+ }
79
+ }
80
+
81
+ .home-tab {
82
+ padding: 5px;
83
+ background-color: var(--tab-background-color);
84
+ display: flex;
85
+ transition: all ease-out var(--transition-duration);
86
+ margin-inline-end: var(--tab-gap);
87
+ position: relative;
88
+
89
+ .brand-wrapper {
90
+ display: flex;
91
+ align-items: center;
92
+ padding-inline: 6px;
93
+ background-color: transparent;
94
+ border-radius: 1px;
95
+ height: 26px;
96
+ transition: all ease-out var(--transition-duration);
97
+ cursor: pointer;
98
+ }
99
+
100
+ &.active {
101
+ background-color: var(--tab-background-active-color);
102
+
103
+ .brand-wrapper {
104
+ background-color: var(--tab-background-active-inner-color);
105
+ }
106
+ }
107
+
108
+ &:hover {
109
+ .brand-logo {
110
+ background-color: var(--tab-text-active);
111
+ }
112
+ }
113
+
114
+ &.active {
115
+ .brand-logo {
116
+ background-color: var(--tab-color-white);
117
+ }
118
+ }
119
+ }
120
+
121
+ .brand-logo {
122
+ display: inline-block;
123
+ margin: 0;
124
+ padding: 0;
125
+ border: none;
126
+ cursor: pointer;
127
+ width: 14px;
128
+ height: 14px;
129
+ background-color: var(--tab-text-normal);
130
+ transition: background-color ease-out var(--transition-duration);
131
+ }
132
+
133
+ .app-pages-wrapper {
134
+ display: block;
135
+ width: 200px;
136
+ position: absolute;
137
+ top: calc(100% + 5px);
138
+ left: 5px;
139
+ background: var(--tab-background-overlay);
140
+ border-radius: 2px;
141
+ padding: 5px;
142
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
143
+ z-index: 1000;
144
+
145
+ // // Smooth animations for hover-triggered menus
146
+ animation: slideDownFadeIn 0.2s ease-out forwards;
147
+ transform-origin: top left;
148
+
149
+ .module {
150
+
151
+ a,
152
+ span {
153
+ display: block;
154
+ padding: 7px 8px;
155
+ color: var(--tab-text-normal);
156
+ border-radius: 2px;
157
+ transition: all 0.15s ease-out;
158
+
159
+ &.active {
160
+ color: var(--tab-text-active);
161
+ background: rgba(255, 255, 255, 0.08);
162
+ }
163
+ }
164
+
165
+ a:hover {
166
+ background: rgba(255, 255, 255, 0.05);
167
+ color: var(--tab-text-active);
168
+ }
169
+ }
170
+ }
171
+
172
+ .tab-close-btn {
173
+ height: 16px;
174
+ width: 16px;
175
+ padding: 0;
176
+ position: relative;
177
+ top: 0;
178
+
179
+ cursor: pointer;
180
+ border: none;
181
+ background-color: var(--tab-text-active);
182
+ mask: url(./images/icon-close-lite.svg) no-repeat center center;
183
+ mask-size: 8px;
184
+ transition: background-color ease-out (--transition-duration);
185
+
186
+ &:hover {
187
+ background-color: var(--tab-text-active);
188
+ }
189
+ }
190
+
191
+ .tab {
192
+ position: relative;
193
+ color: var(--tab-text-active);
194
+ background-color: var(--tab-background-color);
195
+ line-height: 9px;
196
+ font-weight: 600;
197
+
198
+ display: flex;
199
+ align-items: center;
200
+ transition-duration: var(--transition-duration-extended);
201
+ transition-property: padding, opacity, border-color, max-width;
202
+
203
+ &:not(.has-child) {
204
+ padding: 5px;
205
+ }
206
+
207
+ &:not(.sub-tab) {
208
+ width: max-content;
209
+
210
+ .tab-content-wrapper {
211
+ padding-left: 22px;
212
+ }
213
+ }
214
+
215
+ .tab-content-wrapper {
216
+ position: relative;
217
+ line-height: 8px;
218
+ height: 8px;
219
+ width: 100%;
220
+ display: flex;
221
+ justify-content: flex-start;
222
+ align-items: center;
223
+ gap: 6px;
224
+ border-radius: 2px;
225
+ padding: 8px 10px;
226
+ height: 26px;
227
+ // transition on font color is looking weird
228
+ transition: background-color var(--transition-duration),
229
+ padding var(--transition-duration-extended),
230
+ gap var(--transition-duration-extended);
231
+ // transition: all var(--transition-duration);
232
+
233
+ &::after {
234
+ content: '';
235
+ position: absolute;
236
+ top: 0;
237
+ right: 0px;
238
+ width: 30%;
239
+ height: 100%;
240
+ background: linear-gradient(to right,
241
+ transparent,
242
+ var(--tab-background-color));
243
+ opacity: 0;
244
+ visibility: hidden;
245
+ transition: opacity ease-out var(--transition-duration-extended), visibility ease-out var(--transition-duration-extended);
246
+ }
247
+
248
+ // &:has(.active-sub-tab-btn-wrapper)::after {
249
+ // right: var(--tab-close-btn-width);
250
+ // }
251
+
252
+ // &:has(.active-sub-tab-btn-wrapper .tab-hide-toolbar-btn-wrapper)::after {
253
+ // right: calc(2 * var(--tab-close-btn-width))
254
+ // }
255
+
256
+ .single-tab {
257
+ width: 6px;
258
+ height: 6px;
259
+ background-color: var(--tab-parent-box-color);
260
+ transition: all ease-out var(--transition-duration-extended);
261
+ position: absolute;
262
+ left: 10px;
263
+
264
+ &.show-notification-dot {
265
+ background-color: var(--notification-color) !important;
266
+ }
267
+ }
268
+
269
+ .trimmable {
270
+ // max-width: 300px;
271
+ display: grid;
272
+ grid-template-columns: 1fr;
273
+ opacity: 1;
274
+ visibility: visible;
275
+ transition: all var(--transition-duration-extended);
276
+ overflow: hidden;
277
+
278
+ div {
279
+ overflow: hidden;
280
+ }
281
+ }
282
+ }
283
+
284
+ .tab-title-wrapper {
285
+ display: flex;
286
+ align-items: center;
287
+ gap: 6px;
288
+ overflow: hidden;
289
+ // transition: all ease-out var(--transition-duration-extended);
290
+ }
291
+
292
+ .tab-title {
293
+ white-space: nowrap;
294
+ font-weight: 600;
295
+ line-height: normal;
296
+ display: flex;
297
+ align-items: center;
298
+ // transition: all ease-out var(--transition-duration-extended);
299
+
300
+ span {
301
+ transition: opacity ease-out var(--transition-duration-extended);
302
+ display: inline-block;
303
+ opacity: 1;
304
+ // max-width: 300px;
305
+
306
+ // &.hide {
307
+ // max-width: 0px;
308
+ // overflow: hidden;
309
+ // }
310
+ }
311
+
312
+ }
313
+
314
+ &.fade-at-end {
315
+ .tab-content-wrapper::after {
316
+ opacity: 1;
317
+ visibility: visible;
318
+ // right: 10px;
319
+ }
320
+ }
321
+
322
+ &.active {
323
+ background-color: var(--tab-background-active-color);
324
+ --tab-close-btn-background: var(--tab-close-active-btn-background);
325
+
326
+ .tab-content-wrapper {
327
+ border-radius: 1px;
328
+ background-color: var(--tab-background-active-inner-color);
329
+ color: var(--tab-color-white);
330
+ overflow: hidden;
331
+ position: relative;
332
+ // padding-right: 2px; // TODO: This will be used in next release (pending for design update)
333
+
334
+ .single-tab {
335
+ background-color: var(--tab-color-white);
336
+ }
337
+
338
+ .active-sub-tab-btn-wrapper {
339
+ display: flex;
340
+ align-items: center;
341
+ gap: 2px;
342
+ height: 22px;
343
+
344
+ .new-tab-close-btn-wrapper {
345
+ height: 22px;
346
+ width: 22px;
347
+ border-radius: 2px;
348
+ padding: 7px 7px;
349
+ background-color: var(--tab-bg-color);
350
+ opacity: 1;
351
+ visibility: visible;
352
+ cursor: pointer;
353
+
354
+ .new-tab-close-btn {
355
+ height: 8px;
356
+ width: 8px;
357
+ padding: 0px;
358
+
359
+ border: none;
360
+ background-color: var(--tab-icon-active-color);
361
+ mask: url(./images/icon-close-lite.svg) no-repeat center center;
362
+ mask-size: 8px;
363
+ }
364
+ }
365
+
366
+ .tab-hide-toolbar-btn-wrapper {
367
+ height: 22px;
368
+ width: 22px;
369
+ border-radius: 2px;
370
+ padding: 6px 7px;
371
+ background-color: var(--tab-bg-color);
372
+ cursor: pointer;
373
+
374
+ .tab-hide-toolbar-btn {
375
+ height: 10px;
376
+ width: 8px;
377
+ padding: 0px;
378
+
379
+ border: none;
380
+ background-color: var(--tab-icon-active-color);
381
+ mask: url(./images/Icon-open-arrow-top.svg) no-repeat center center;
382
+ mask-size: 8px 10px;
383
+ }
384
+ }
385
+
386
+ }
387
+ }
388
+
389
+ .tab-close-btn-wrapper {
390
+ height: 26px;
391
+ width: 28px;
392
+ border-radius: 2px;
393
+ padding: 6px 6px 4px 6px;
394
+
395
+ animation-name: fadeInOpacity;
396
+ animation-iteration-count: 1;
397
+ animation-timing-function: cubic-bezier(0.07, -0.24, 0.6, 0.34);
398
+ animation-duration: var(--transition-duration);
399
+
400
+ .tab-close-btn {
401
+ background-color: var(--tab-color-white);
402
+ }
403
+ }
404
+ }
405
+
406
+ &.disabled-tab {
407
+ .tab-content-wrapper .tab-title {
408
+ opacity: 0.5;
409
+ color: var(--tab-color-disabled);
410
+ }
411
+ }
412
+
413
+ .tab-close-btn-wrapper {
414
+ height: 100%;
415
+ width: 36px;
416
+ padding: 10px 6px 10px 14px;
417
+ z-index: 1;
418
+
419
+ position: absolute;
420
+ right: 0;
421
+ bottom: 0;
422
+ background: linear-gradient(270deg,
423
+ var(--tab-close-btn-background) 0%,
424
+ var(--tab-close-btn-background) 62.73%,
425
+ color-mix(in srgb, var(--tab-close-btn-background) 30%, transparent) 93.06%);
426
+
427
+ display: flex;
428
+ align-items: center;
429
+ // transition: all ease-out var(--transition-duration);
430
+ opacity: 0;
431
+ visibility: hidden;
432
+ }
433
+
434
+ &:hover {
435
+ .tab-close-btn-wrapper {
436
+ opacity: 1;
437
+ visibility: visible;
438
+ }
439
+ }
440
+ }
441
+
442
+ &.dragging-in-progress {
443
+
444
+ .tab,
445
+ .tab-with-child-wrapper {
446
+ transition: none;
447
+
448
+ * {
449
+ transition: none !important;
450
+ }
451
+ }
452
+ }
453
+
454
+ .stack-wrapper {
455
+ width: 0;
456
+ padding: 0;
457
+ opacity: 0;
458
+ visibility: hidden;
459
+ transition: all ease-out var(--transition-duration),
460
+ opacity ease-out var(--transition-duration) var(--transition-duration);
461
+
462
+ .icon-stack {
463
+ display: flex;
464
+ align-items: center;
465
+ justify-content: center;
466
+ border: none;
467
+ padding: 0 5px 0 0;
468
+ position: relative;
469
+
470
+ width: 32px;
471
+ height: 26px;
472
+ background-color: var(--tab-background-color);
473
+ border-radius: 2px;
474
+ transition: all ease-out var(--transition-duration);
475
+
476
+ &::after {
477
+ content: '';
478
+ position: absolute;
479
+ right: 4px;
480
+ width: calc(100% - 6px);
481
+ height: calc(100% + 0px);
482
+ border-radius: 4px;
483
+ display: inline-block;
484
+ border: 2px solid var(--tab-background-active-color);
485
+ border-left: none;
486
+ }
487
+
488
+ &:hover {
489
+ .icon-chevron {
490
+ background-color: var(--tab-text-active);
491
+ }
492
+
493
+ .icon-plus::before,
494
+ .icon-plus::after {
495
+ background-color: var(--tab-text-active);
496
+ }
497
+ }
498
+ }
499
+
500
+ &.expanded {
501
+ z-index: 10;
502
+ width: calc(32px + var(--tab-with-sub-tab-gap));
503
+ padding-left: var(--tab-with-sub-tab-gap);
504
+ opacity: 1;
505
+ visibility: visible;
506
+ position: sticky;
507
+ right: 0;
508
+ }
509
+
510
+ // &.stack-closing {
511
+ // width: 0;
512
+ // transition: width ease-out var(--transition-duration) 550ms;
513
+ // }
514
+ }
515
+
516
+ .main-tabs {
517
+ display: flex;
518
+ gap: var(--tab-gap);
519
+
520
+ width: 100%;
521
+ height: 100%;
522
+ overflow: hidden;
523
+
524
+ .parent-super-tab.delay {
525
+ * {
526
+ transition-delay: 2s !important;
527
+ }
528
+ }
529
+ }
530
+
531
+ .tab-with-child-wrapper {
532
+ padding: 5px;
533
+ background-color: var(--tab-background-color);
534
+ transition: all ease-out var(--transition-duration-extended);
535
+ display: flex;
536
+ align-items: center;
537
+ position: relative;
538
+ z-index: 10;
539
+
540
+ &:not(.active) {
541
+ position: relative;
542
+
543
+ .tab {
544
+ position: static;
545
+ }
546
+
547
+ // .sub-tab.show {
548
+ // // max-width: 0;
549
+ // width: 0px;
550
+ // margin: 0;
551
+ // opacity: 0;
552
+ // padding: 0;
553
+ // visibility: hidden;
554
+ // transition: background-color var(--transition-duration);
555
+ // }
556
+
557
+ &:hover {
558
+ .tab-close-btn-wrapper {
559
+ opacity: 1;
560
+ visibility: visible;
561
+ }
562
+ }
563
+ }
564
+
565
+ &.active {
566
+ overflow: hidden;
567
+
568
+ // padding-inline: 15px;
569
+ background-color: var(--tab-background-active-color);
570
+
571
+ // .sub-tabs-wrapper .sub-tab {
572
+ // transition: opacity var(--transition-duration), all var(--transition-duration) var(--transition-duration);
573
+ // }
574
+
575
+ .tab {
576
+ // margin-right: var(--tab-with-sub-tab-gap);
577
+ padding: 0;
578
+ min-height: 26px;
579
+ border-radius: 2px;
580
+
581
+ .tab-close-btn-wrapper {
582
+ height: 26px;
583
+ width: 28px;
584
+ border-radius: 2px;
585
+ padding: 5px 6px;
586
+ }
587
+ }
588
+
589
+ .sub-tabs-wrapper {
590
+ position: relative;
591
+
592
+ .tab {
593
+ // max-width: inherit !important;
594
+ // left: 0;
595
+ transition: all var(--transition-duration-extended),
596
+ opacity 200ms var(--transition-duration-extended);
597
+ // transition-delay: 800ms;
598
+ }
599
+
600
+ &.expanded {
601
+ // .sub-tab-group {}
602
+
603
+ .tab {
604
+ position: relative;
605
+ // left: inherit;
606
+ // transition: 200ms all;
607
+ // transition-delay: 800ms;
608
+ }
609
+ }
610
+ }
611
+
612
+ // .stack-wrapper {
613
+ // z-index: 10;
614
+ // width: calc(32px + var(--tab-with-sub-tab-gap));
615
+ // padding-left: var(--tab-with-sub-tab-gap);
616
+ // opacity: 1;
617
+ // visibility: visible;
618
+ // position: sticky;
619
+ // right: 0;
620
+ // }
621
+ }
622
+ }
623
+
624
+ .sub-tabs-wrapper {
625
+ display: flex;
626
+ align-items: center;
627
+ position: relative;
628
+ // transition: width ease-out var(--transition-duration-extended);
629
+ // transition: all ease-out var(--transition-duration-extended);
630
+ // gap: var(--tab-with-sub-tab-gap);
631
+ height: 26px !important;
632
+
633
+ width: 100%;
634
+ overflow: hidden;
635
+
636
+ .sub-tab-group {
637
+ // min-width: 0px;
638
+ overflow: hidden;
639
+ width: 100%;
640
+ display: flex;
641
+ transition: all ease-out var(--transition-duration);
642
+ }
643
+
644
+ &.expanded.dragging-in-progress {
645
+ .sub-tab-group {
646
+ transition: none;
647
+ }
648
+
649
+ // .sub-tab.dragging {
650
+ // width: auto !important;
651
+ // }
652
+
653
+ .sub-tab,
654
+ .sub-tab.show {
655
+ transition: none;
656
+
657
+ .tab-content-wrapper {
658
+ transition: none;
659
+ }
660
+ }
661
+ }
662
+
663
+ // &:not(.dragging-in-progress) .sub-tab {
664
+ // transition: all ease-out var(--transition-duration-extended), opacity ease-out var(--transition-duration-extended) var(--transition-duration);
665
+ // }
666
+
667
+ .sub-tab:not(.show) {
668
+ // max-width: 0px;
669
+ // width: 0px;
670
+ width: 0px;
671
+ margin: 0;
672
+ opacity: 0;
673
+ padding: 0;
674
+ visibility: hidden;
675
+
676
+ // &.show {
677
+ // transition: all var(--transition-duration) var(--transition-duration), opacity var(--transition-duration);
678
+ // opacity: 1;
679
+ // visibility: visible;
680
+ // max-width: 400px;
681
+ // margin-left: var(--tab-with-sub-tab-gap);
682
+ // }
683
+ }
684
+
685
+ .sub-tab.show {
686
+ z-index: 10;
687
+ // transition: none;
688
+ transition: all ease-out var(--transition-duration-extended),
689
+ opacity ease-out var(--transition-duration) var(--transition-duration-extended);
690
+ margin-left: var(--tab-with-sub-tab-gap);
691
+ }
692
+
693
+ .sub-tab.no-transition {
694
+ transition: none !important;
695
+
696
+ * {
697
+ transition: none !important;
698
+ }
699
+ }
700
+
701
+ .tab.sub-tab.hide-sub-tab {
702
+ opacity: 0 !important;
703
+ transition-delay: 0s !important;
704
+ // transition: opacity var(--transition-duration) !important;
705
+ transition: all 300ms var(--transition-duration-extended), opacity 200ms;
706
+ }
707
+ }
708
+
709
+ &.nested-tabs-visible {
710
+
711
+ // .shrinked-tab {
712
+ // transition-delay: var(--transition-duration);
713
+ // }
714
+ .sub-tabs-wrapper {
715
+ &.expanded {
716
+ .sub-tab {
717
+ // max-width: 400px !important;
718
+ opacity: 1;
719
+ visibility: visible !important;
720
+ margin-left: var(--tab-with-sub-tab-gap);
721
+ }
722
+ }
723
+
724
+ .sub-tab {
725
+ transition: all var(--transition-duration-extended),
726
+ max-width var(--transition-duration-extended) var(--transition-duration-extended),
727
+ width var(--transition-duration-extended) var(--transition-duration-extended),
728
+ padding var(--transition-duration-extended) var(--transition-duration-extended);
729
+ }
730
+
731
+ }
732
+
733
+ .tab-with-child-wrapper.stack-closing {
734
+ transition: all ease-out var(--transition-duration-extended),
735
+ background-color ease-out var(--transition-duration);
736
+
737
+ .sub-tab {
738
+ margin: 0px;
739
+ transition: all var(--transition-duration-extended);
740
+ }
741
+
742
+ .stack-wrapper {
743
+ z-index: 10;
744
+ width: 0px;
745
+ padding-left: 0px;
746
+ opacity: 0;
747
+ visibility: visible;
748
+ position: sticky;
749
+ right: 0;
750
+ transition: all ease-out var(--transition-duration-extended),
751
+ // width ease-out var(--transition-duration) calc(var(--transition-duration-extended) - var(--transition-duration));
752
+ // opacity ease-out var(--transition-duration) var(--transition-duration),
753
+ opacity ease-out var(--transition-duration);
754
+
755
+ .icon-stack {
756
+ padding-right: 0px;
757
+ width: 0px;
758
+ transition: all var(--transition-duration-extended);
759
+ }
760
+ }
761
+ }
762
+ }
763
+
764
+ .icon-chevron {
765
+ display: inline-block;
766
+ cursor: pointer;
767
+ position: relative;
768
+
769
+ width: 5px;
770
+ height: 10px;
771
+ background-color: var(--tab-text-active);
772
+ mask: url(./images/icon-chevron-right.svg) no-repeat center center;
773
+ mask-size: 5px;
774
+ transition: background-color ease-out var(--transition-duration),
775
+ var(--transition-duration) var(--transition-duration-extended);
776
+
777
+ &.open {
778
+ left: -1px;
779
+ transform: rotate(180deg);
780
+ }
781
+ }
782
+
783
+ .icon-plus {
784
+ position: relative;
785
+ width: 10px;
786
+ height: 10px;
787
+ padding: 0;
788
+ border: none;
789
+ background-color: transparent;
790
+
791
+ &::before {
792
+ content: '';
793
+ position: absolute;
794
+ top: 50%;
795
+ left: 50%;
796
+ transform: translate(-50%, -50%);
797
+ display: inline-block;
798
+ width: 10px;
799
+ height: 1.5px;
800
+ background-color: var(--tab-text-active);
801
+ transition: opacity ease-out var(--transition-duration),
802
+ background-color ease-out var(--transition-duration);
803
+ visibility: visible;
804
+ opacity: 1;
805
+ }
806
+
807
+ &::after {
808
+ content: '';
809
+ position: absolute;
810
+ top: 50%;
811
+ left: 50%;
812
+ transform: translate(-50%, -50%);
813
+ display: inline-block;
814
+ width: 1.5px;
815
+ height: 10px;
816
+ background-color: var(--tab-text-active);
817
+ transition: opacity ease-out var(--transition-duration),
818
+ background-color ease-out var(--transition-duration);
819
+ visibility: visible;
820
+ opacity: 1;
821
+ }
822
+ }
823
+
824
+ .tab.sub-tab.fade-in {
825
+ // width: 0px;
826
+ // padding: 0px;
827
+ // margin: 0px;
828
+ animation: fadeInOpacity var(--transition-duration) forwards;
829
+ }
830
+
831
+ .tab.sub-tab.slide-out {
832
+ // transition: none !important;
833
+ animation: moveAway var(--transition-duration) forwards;
834
+ // * {
835
+ // transition: none !important;
836
+ // }
837
+ }
838
+
839
+ @keyframes fadeInOpacity {
840
+ 0% {
841
+ opacity: 0;
842
+ }
843
+
844
+ 100% {
845
+ opacity: 1;
846
+ }
847
+ }
848
+
849
+ @keyframes reduceStackWidth {
850
+ 0% {
851
+ width: calc(32px + var(--tab-with-sub-tab-gap));
852
+ }
853
+
854
+ 100% {
855
+ width: 0;
856
+ }
857
+ }
858
+
859
+ @keyframes moveAway {
860
+ 0% {
861
+ transform: translateX(0);
862
+ // left: 0%;
863
+ }
864
+
865
+ // 99% {
866
+ // // max-width: 400px;
867
+ // opacity: 1;
868
+ // }
869
+
870
+ 100% {
871
+ // max-width: 0px;
872
+ transform: translateX(100%);
873
+ // opacity: 0;
874
+ // left: 100%;
875
+ // width: 0px;
876
+ // padding: 0px;
877
+ // margin-left: 0px;
878
+ }
879
+ }
880
+
881
+ @keyframes slideDownFadeIn {
882
+ 0% {
883
+ opacity: 0;
884
+ transform: translateY(-8px) scale(0.95);
885
+ }
886
+
887
+ 100% {
888
+ opacity: 1;
889
+ transform: translateY(0) scale(1);
890
+ }
891
+ }
892
+ }