JSFiddle - React, Tailwind, and code Playground
by gbos
HTML
<div class="custom-select">
<select name="selet">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<div class="arrow"></div>
</div>
CSS
.custom-select {
position: relative;
display: inline-block;
}
select {
padding: 0.7rem 5rem 0.7rem 1rem;
background-color: #ccc;
border: 0;
}
.arrow {
position: absolute;
right: 0;
top: 0;
height: 100%;
width: 2rem;
background-color: #aaa;
pointer-events: none;
}
.arrow::after,
.arrow::before {
content: '';
position: absolute;
--size: 0.4rem;
--arrow-color: rgba(255, 255, 255, 0.7);
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border-left: var(--size) solid transparent;
border-right: var(--size) solid transparent;
}
.arrow::before {
border-bottom: var(--size) solid var(--arrow-color);
top: 40%;
}
.arrow::after {
border-top: var(--size) solid var(--arrow-color);
top: 60%;
}