JSFiddle - React, Tailwind, and code Playground
Fliplet Select Style
by Hugo Carneiro
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="form-horizontal">
<div class="form-group">
<div class="col-sm-4 control-label">
<label for="select-menu">Select a data source</label>
</div>
<div class="col-sm-8">
<label for="select_datasource" class="select-proxy-display">
<span class="icon fa fa-chevron-down"></span>
<span class="select-value-proxy">-- Select a data source --</span>
<select name="select_datasource" id="select_datasource" data-label="select" class="hidden-select form-control">
<option selected value="">-- Select a data source --</option>
<option value="1">Sample data 1</option>
</select>
</label>
</div>
</div>
</div>
CSS
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700);
html,
body {
font-family: "Open Sans", "Helvetica Neue", Arial, Helvetica, sans-serif;
background-color: #f2f6f7;
}
/* FORMS */
.form-group {
margin-left: -15px;
margin-right: -15px;
}
label {
font-weight: normal;
color: #14505e;
}
.form-control {
border-radius: 6px;
border: 1px solid #e4e9eb;
color: #333;
height: 44px;
line-height: 44px;
padding: 0 15px;
-webkit-box-shadow: none;
box-shadow: none;
}
/* SELECT */
.select-proxy-display {
width: 100%;
height: 44px;
margin: 0 auto;
padding: 0 44px 0 15px;
background: #fff;
border: 1px solid #e4e9eb;
border-radius: 6px;
cursor: pointer;
outline: 0;
font-weight: 400;
line-height: 44px;
position: relative;
color: #333;
}
.select-proxy-display span.select-value-proxy {
width: calc(100% - 55px);
position: absolute;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.select-proxy-display .icon {
position: absolute;
width: 44px;
height: 44px;
top: -1px;
right: -1px;
background-color: #00abd2;
text-align: center;
line-height: 44px;
font-size: 18px;
color: #FFF;
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
border-left: 1px solid #e4e9eb;
}
.hidden-select {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 100%;
height: 44px;
cursor: pointer;
opacity: 0;
}
JavaScript
$('#select_datasource').on('change', function() {
var selectedValue = $(this).val();
var selectedText = $(this).find("option:selected").text();
$(this).parents('.select-proxy-display').find('.select-value-proxy').html(selectedText);
});