Skip to content

Commit 45d06be

Browse files
authored
Add files via upload
1 parent 0752adf commit 45d06be

File tree

5 files changed

+681
-0
lines changed

5 files changed

+681
-0
lines changed

MultiSelect.css

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
.multi-select {
2+
display: flex;
3+
box-sizing: border-box;
4+
flex-direction: column;
5+
position: relative;
6+
width: 100%;
7+
user-select: none;
8+
}
9+
.multi-select .multi-select-header {
10+
border: 1px solid #dee2e6;
11+
padding: 7px 30px 7px 12px;
12+
overflow: hidden;
13+
gap: 7px;
14+
min-height: 45px;
15+
}
16+
.multi-select .multi-select-header::after {
17+
content: "";
18+
display: block;
19+
position: absolute;
20+
top: 50%;
21+
right: 15px;
22+
transform: translateY(-50%);
23+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23949ba3' viewBox='0 0 16 16'%3E%3Cpath d='M8 13.1l-8-8 2.1-2.2 5.9 5.9 5.9-5.9 2.1 2.2z'/%3E%3C/svg%3E");
24+
height: 12px;
25+
width: 12px;
26+
}
27+
.multi-select .multi-select-header.multi-select-header-active {
28+
border-color: #c1c9d0;
29+
}
30+
.multi-select .multi-select-header.multi-select-header-active::after {
31+
transform: translateY(-50%) rotate(180deg);
32+
}
33+
.multi-select .multi-select-header.multi-select-header-active + .multi-select-options {
34+
display: flex;
35+
}
36+
.multi-select .multi-select-header .multi-select-header-placeholder {
37+
color: #65727e;
38+
}
39+
.multi-select .multi-select-header .multi-select-header-option {
40+
display: inline-flex;
41+
align-items: center;
42+
background-color: #f3f4f7;
43+
font-size: 14px;
44+
padding: 3px 8px;
45+
border-radius: 5px;
46+
}
47+
.multi-select .multi-select-header .multi-select-header-max {
48+
font-size: 14px;
49+
color: #65727e;
50+
}
51+
.multi-select .multi-select-options {
52+
display: none;
53+
box-sizing: border-box;
54+
flex-flow: wrap;
55+
position: absolute;
56+
top: 100%;
57+
left: 0;
58+
right: 0;
59+
z-index: 999;
60+
margin-top: 5px;
61+
padding: 5px;
62+
background-color: #fff;
63+
border-radius: 5px;
64+
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
65+
max-height: 200px;
66+
overflow-y: auto;
67+
overflow-x: hidden;
68+
}
69+
.multi-select .multi-select-options::-webkit-scrollbar {
70+
width: 5px;
71+
}
72+
.multi-select .multi-select-options::-webkit-scrollbar-track {
73+
background: #f0f1f3;
74+
}
75+
.multi-select .multi-select-options::-webkit-scrollbar-thumb {
76+
background: #cdcfd1;
77+
}
78+
.multi-select .multi-select-options::-webkit-scrollbar-thumb:hover {
79+
background: #b2b6b9;
80+
}
81+
.multi-select .multi-select-options .multi-select-option, .multi-select .multi-select-options .multi-select-all {
82+
padding: 4px 12px;
83+
height: 42px;
84+
}
85+
.multi-select .multi-select-options .multi-select-option .multi-select-option-radio, .multi-select .multi-select-options .multi-select-all .multi-select-option-radio {
86+
margin-right: 14px;
87+
height: 16px;
88+
width: 16px;
89+
border: 1px solid #ced4da;
90+
border-radius: 4px;
91+
}
92+
.multi-select .multi-select-options .multi-select-option .multi-select-option-text, .multi-select .multi-select-options .multi-select-all .multi-select-option-text {
93+
box-sizing: border-box;
94+
flex: 1;
95+
overflow: hidden;
96+
text-overflow: ellipsis;
97+
white-space: nowrap;
98+
color: inherit;
99+
font-size: 16px;
100+
line-height: 20px;
101+
}
102+
.multi-select .multi-select-options .multi-select-option.multi-select-selected .multi-select-option-radio, .multi-select .multi-select-options .multi-select-all.multi-select-selected .multi-select-option-radio {
103+
border-color: #40c979;
104+
background-color: #40c979;
105+
}
106+
.multi-select .multi-select-options .multi-select-option.multi-select-selected .multi-select-option-radio::after, .multi-select .multi-select-options .multi-select-all.multi-select-selected .multi-select-option-radio::after {
107+
content: "";
108+
display: block;
109+
width: 3px;
110+
height: 7px;
111+
margin: 0.12em 0 0 0.27em;
112+
border: solid #fff;
113+
border-width: 0 0.15em 0.15em 0;
114+
transform: rotate(45deg);
115+
}
116+
.multi-select .multi-select-options .multi-select-option.multi-select-selected .multi-select-option-text, .multi-select .multi-select-options .multi-select-all.multi-select-selected .multi-select-option-text {
117+
color: #40c979;
118+
}
119+
.multi-select .multi-select-options .multi-select-option:hover, .multi-select .multi-select-options .multi-select-option:active, .multi-select .multi-select-options .multi-select-all:hover, .multi-select .multi-select-options .multi-select-all:active {
120+
background-color: #f3f4f7;
121+
}
122+
.multi-select .multi-select-options .multi-select-all {
123+
border-bottom: 1px solid #f1f3f5;
124+
border-radius: 0;
125+
}
126+
.multi-select .multi-select-options .multi-select-search {
127+
padding: 7px 10px;
128+
border: 1px solid #dee2e6;
129+
border-radius: 5px;
130+
margin: 10px 10px 5px 10px;
131+
width: 100%;
132+
outline: none;
133+
font-size: 16px;
134+
}
135+
.multi-select .multi-select-options .multi-select-search::placeholder {
136+
color: #b2b5b9;
137+
}
138+
.multi-select .multi-select-header, .multi-select .multi-select-option, .multi-select .multi-select-all {
139+
display: flex;
140+
flex-wrap: wrap;
141+
box-sizing: border-box;
142+
align-items: center;
143+
border-radius: 5px;
144+
cursor: pointer;
145+
display: flex;
146+
align-items: center;
147+
width: 100%;
148+
font-size: 16px;
149+
color: #212529;
150+
}

0 commit comments

Comments
 (0)