react-candlestick
Version:
This is a switch and stylish React component that create checkbox into toggle switch button.
99 lines (85 loc) • 3.36 kB
CSS
/* ========================================================================
* @author Edouard Tack <edouard@tackacoder.fr>
* React Candlestick latest version
* Licensed under MIT (https://github.com/EdouardTack/react-candlestick/blob/master/LICENSE)
* ======================================================================== */
:root {
--candlestick-bg-color: #F5F5F5;
--candlestick-border-color: #E8E8E8;
--candlestick-on-bg-color: #5CB85C;
--candlestick-on-border-color: #B8E0B8;
--candlestick-off-bg-color: #D9534F;
--candlestick-off-border-color: #EDAEAB;
}
.candlestick-wrapper {
position: relative;
display: inline-block;
width: 60px;
height: auto;
}
.candlestick-wrapper .candlestick-bg.candlestick-disabled {
cursor: not-allowed;
opacity: 0.4;
}
.candlestick-wrapper .candlestick-bg.candlestick-readonly {
cursor: not-allowed;
opacity: 0.7;
}
/* !!! */
/* ! DEFAULT MODE ! */
/* !!! */
.candlestick-wrapper .candlestick-bg,
.candlestick-wrapper .candlestick-bg .candlestick-off:before,
.candlestick-wrapper .candlestick-bg .candlestick-on:after {
background-color: var(--candlestick-bg-color);
border: 2px solid var(--candlestick-border-color);
height: 16px;
border-radius: 15px;
}
.candlestick-wrapper .candlestick-bg.candlestick-bg-on,
.candlestick-wrapper .candlestick-bg.candlestick-bg-on .candlestick-off:before,
.candlestick-wrapper .candlestick-bg.candlestick-bg-on .candlestick-on:after {
background-color: var(--candlestick-on-bg-color);
border-color: var(--candlestick-on-border-color);
}
.candlestick-wrapper .candlestick-bg.candlestick-bg-off,
.candlestick-wrapper .candlestick-bg.candlestick-bg-off .candlestick-off:before,
.candlestick-wrapper .candlestick-bg.candlestick-bg-off .candlestick-on:after {
background-color: var(--candlestick-off-bg-color);
border-color: var(--candlestick-off-border-color);
}
.candlestick-wrapper .candlestick-bg .candlestick-toggle {
position: absolute;
z-index: 10;
top: 50%;
transform: translateX(-50%) translateY(-50%);
width: 20px;
height: 20px;
border-radius: 50%;
background-color: var(--candlestick-bg-color);
border: 1px solid var(--candlestick-border-color);
box-shadow: 2px 2px 4px rgba(60, 60, 60, 0.75);
transition: left 0.75s;
}
.candlestick-wrapper .candlestick-bg .candlestick-toggle.candlestick-position-neutral {
left: 50%;
}
.candlestick-wrapper .candlestick-bg .candlestick-toggle.candlestick-position-on {
left: 80%;
}
.candlestick-wrapper .candlestick-bg .candlestick-toggle.candlestick-position-off {
left: 20%;
}
.candlestick-wrapper .candlestick-bg .candlestick-off,
.candlestick-wrapper .candlestick-bg .candlestick-neutral,
.candlestick-wrapper .candlestick-bg .candlestick-on {
display: inline-block;
vertical-align: middle;
height: 16px;
width: 18px;
}
.candlestick-wrapper .candlestick-bg:not(.candlestick-readonly):not(.candlestick-disabled) .candlestick-off,
.candlestick-wrapper .candlestick-bg:not(.candlestick-readonly):not(.candlestick-disabled) .candlestick-neutral,
.candlestick-wrapper .candlestick-bg:not(.candlestick-readonly):not(.candlestick-disabled) .candlestick-on {
cursor: pointer;
}