@@ -465,8 +465,6 @@ onBeforeUnmount(() => {
465
465
v-for =" (option, i) in availableOptions"
466
466
:key =" i"
467
467
type =" button"
468
- class =" menu-option"
469
- :class =" { focused: focusedOption === i, selected: option.value === selected }"
470
468
:menu =" menu"
471
469
:index =" i"
472
470
:is-focused =" focusedOption === i"
@@ -504,8 +502,9 @@ onBeforeUnmount(() => {
504
502
505
503
<style >
506
504
:root {
505
+ --vs-width : 100% ;
507
506
--vs-min-height : 38px ;
508
- --vs-padding : 2 px 8px ;
507
+ --vs-padding : 4 px 8px ;
509
508
--vs-border : 1px solid #e4e4e7 ;
510
509
--vs-border-radius : 4px ;
511
510
--vs-font-size : 16px ;
@@ -516,69 +515,75 @@ onBeforeUnmount(() => {
516
515
--vs-placeholder-color : #52525b ;
517
516
--vs-background-color : #fff ;
518
517
--vs-disabled-background-color : #f4f4f5 ;
519
- --vs-outline : #3b82f6 ;
518
+ --vs-outline-width : 1px ;
519
+ --vs-outline-color : #3b82f6 ;
520
520
521
521
--vs-menu-offset-top : 8px ;
522
522
--vs-menu-height : 200px ;
523
- --vs-menu-padding : 0 ;
524
- --vs-menu-border : 1px solid #e4e4e7 ;
525
- --vs-menu-bg : #fff ;
526
- --vs-menu-box-shadow : none ;
523
+ --vs-menu-border : var (--vs-border );
524
+ --vs-menu-background-color : var (--vs-background-color );
525
+ --vs-menu-box-shadow : 0 1px 2px 0 rgb (0 0 0 / 0.05 );
527
526
--vs-menu-z-index : 2 ;
528
527
528
+ --vs-option-width : 100% ;
529
529
--vs-option-padding : 8px 12px ;
530
+ --vs-option-cursor : pointer ;
530
531
--vs-option-font-size : var (--vs-font-size );
531
532
--vs-option-font-weight : var (--vs-font-weight );
533
+ --vs-option-text-align : -webkit-auto ;
532
534
--vs-option-text-color : var (--vs-text-color );
533
- --vs-option-bg : var (--vs-menu-bg );
534
- --vs-option-hover-color : #dbeafe ;
535
- --vs-option-focused-color : var (--vs-option-hover-color );
536
- --vs-option-selected-color : #93c5fd ;
537
- --vs-option-disabled-color : #f4f4f5 ;
535
+ --vs-option-hover-text-color : var (--vs-text-color );
536
+ --vs-option-focused-text-color : var (--vs-text-color );
537
+ --vs-option-selected-text-color : var (--vs-text-color );
538
538
--vs-option-disabled-text-color : #52525b ;
539
+ --vs-option-background-color : var (--vs-menu-background );
540
+ --vs-option-hover-background-color : #dbeafe ;
541
+ --vs-option-focused-background-color : var (--vs-option-hover-background-color );
542
+ --vs-option-selected-background-color : #93c5fd ;
543
+ --vs-option-disabled-background-color : #f4f4f5 ;
544
+ --vs-option-opacity-menu-open : 0.4 ;
539
545
540
- --vs-multi-value-gap : 0px ;
541
- --vs-multi-value-padding : 4px ;
542
546
--vs-multi-value-margin : 2px ;
543
547
--vs-multi-value-border : 0px ;
544
548
--vs-multi-value-border-radius : 2px ;
545
- --vs-multi-value-font-size : 14px ;
546
- --vs-multi-value-font-weight : 400 ;
547
- --vs-multi-value-line-height : 1 ;
548
- --vs-multi-value-text-color : #3f3f46 ;
549
- --vs-multi-value-bg : #f4f4f5 ;
549
+ --vs-multi-value-background-color : #f4f4f5 ;
550
+
551
+ --vs-multi-value-label-padding : 4px 4px 4px 8px ;
552
+ --vs-multi-value-label-font-size : 12px ;
553
+ --vs-multi-value-label-font-weight : 400 ;
554
+ --vs-multi-value-label-line-height : 1 ;
555
+ --vs-multi-value-label-text-color : #3f3f46 ;
556
+
557
+ --vs-multi-value-delete-padding : 0 3px ;
558
+ --vs-multi-value-delete-hover-background-color : #FF6467 ;
550
559
--vs-multi-value-xmark-size : 16px ;
551
- --vs-multi-value-xmark-color : var (--vs-multi-value-text-color );
560
+ --vs-multi-value-xmark-cursor : pointer ;
561
+ --vs-multi-value-xmark-color : var (--vs-multi-value-label-text-color );
562
+ --vs-multi-value-xmark-hover-color : #fff ;
552
563
553
- --vs-indicators-gap : 4px ;
554
- --vs-icon-size : 20px ;
555
- --vs-icon-color : var (--vs-text-color );
564
+ --vs-indicators-gap : 0px ;
565
+ --vs-indicator-icon-size : 20px ;
566
+ --vs-indicator-icon-color : var (--vs-text-color );
567
+ --vs-indicator-icon-cursor : pointer ;
556
568
557
569
--vs-spinner-color : var (--vs-text-color );
558
- --vs-spinner-size : 20px ;
559
-
560
- --vs-dropdown-transition : transform 0.25s ease-out ;
570
+ --vs-spinner-size : 16px ;
561
571
}
562
572
</style >
563
573
564
574
<style lang="scss" scoped>
565
575
.vue-select {
566
576
position : relative ;
567
577
box-sizing : border-box ;
568
- width : 100 % ;
578
+ width : var ( --vs-width ) ;
569
579
570
580
* {
571
581
box-sizing : border-box ;
572
582
}
573
583
574
584
& .open {
575
585
.single-value {
576
- position : absolute ;
577
- opacity : 0.4 ;
578
- }
579
-
580
- .dropdown-icon {
581
- transform : rotate (180deg );
586
+ opacity : var (--vs-option-opacity-menu-open );
582
587
}
583
588
}
584
589
@@ -600,8 +605,8 @@ onBeforeUnmount(() => {
600
605
background-color : var (--vs-background-color );
601
606
602
607
& .focused {
603
- box-shadow : 0 0 0 1 px var (--vs-outline );
604
- border-color : var (--vs-outline );
608
+ box-shadow : 0 0 0 var ( --vs-outline-width ) var (--vs-outline-color );
609
+ border-color : var (--vs-outline-color );
605
610
}
606
611
607
612
& .disabled {
@@ -673,60 +678,20 @@ onBeforeUnmount(() => {
673
678
color : var (--vs-text-color );
674
679
opacity : 1 ;
675
680
outline : none ;
676
-
677
- & ::placeholder {
678
- color : var (--vs-placeholder-color );
679
- }
680
681
}
681
682
682
683
.menu {
683
684
position : absolute ;
684
- left : 0 ;
685
- right : 0 ;
686
- padding : var (--vs-menu-padding );
687
685
margin-top : var (--vs-menu-offset-top );
688
686
max-height : var (--vs-menu-height );
689
687
overflow-y : auto ;
690
688
border : var (--vs-menu-border );
691
689
border-radius : var (--vs-border-radius );
692
690
box-shadow : var (--vs-menu-box-shadow );
693
- background-color : var (--vs-menu-bg );
691
+ background-color : var (--vs-menu-background-color );
694
692
z-index : var (--vs-menu-z-index );
695
693
}
696
694
697
- .menu-option {
698
- display : flex ;
699
- width : 100% ;
700
- border : 0 ;
701
- margin : 0 ;
702
- padding : var (--vs-option-padding );
703
- font-size : var (--vs-option-font-size );
704
- font-weight : var (--vs-option-font-weight );
705
- font-family : var (--vs-font-family );
706
- color : var (--vs-option-text-color );
707
- white-space : break- spaces;
708
- background-color : var (--vs-option-bg );
709
- text-align : -webkit-auto ;
710
- cursor : pointer ;
711
-
712
- & :hover {
713
- background-color : var (--vs-option-hover-color );
714
- }
715
-
716
- & .focused {
717
- background-color : var (--vs-option-focused-color );
718
- }
719
-
720
- & .selected {
721
- background-color : var (--vs-option-selected-color );
722
- }
723
-
724
- & .disabled {
725
- background-color : var (--vs-option-disabled-color );
726
- color : var (--vs-option-disabled-text-color );
727
- }
728
- }
729
-
730
695
.no-results {
731
696
padding : var (--vs-option-padding );
732
697
font-size : var (--vs-font-size );
0 commit comments