You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
7.7 KiB
CSS
148 lines
7.7 KiB
CSS
/*
|
|
Project: Toggle Switchy
|
|
Version: 1.14
|
|
Updated: 8/20/2020
|
|
Author: Adam Culpepper | @adamculpepper
|
|
Website: https://toggleswitchy.com
|
|
Docs: https://github.com/adamculpepper/toggle-switchy
|
|
Issues: https://github.com/adamculpepper/toggle-switchy/issues
|
|
Releases: https://github.com/adamculpepper/toggle-switchy/releases
|
|
*/
|
|
|
|
/* Customizable styles */
|
|
|
|
/* Colors: Default (blue) */
|
|
.toggle-switchy {color:#fff;}
|
|
.toggle-switchy > input + .toggle:before {content:'ON';}
|
|
.toggle-switchy > input + .toggle:after {content:'OFF';}
|
|
.toggle-switchy > input + .toggle > .switch {background:#fff;}
|
|
.toggle-switchy > input + .toggle + .label {color:#000;}
|
|
.toggle-switchy > input:checked + .toggle {background:#3498db;}
|
|
.toggle-switchy > input:not(:checked) + .toggle {background:#ccc;}
|
|
.toggle-switchy > input:checked + .toggle > .switch {border:3px solid #3498db;}
|
|
.toggle-switchy > input:not(:checked) + .toggle > .switch {border:3px solid #ccc;}
|
|
.toggle-switchy > input:focus + .toggle,
|
|
.toggle-switchy > input:active + .toggle {box-shadow:0 0 5px 3px rgba(0, 119, 200, 0.50);}
|
|
|
|
/* Rounded switch corners */
|
|
.toggle-switchy > input + .toggle {border-radius:4px;}
|
|
.toggle-switchy > input + .toggle .switch {border-radius:6px;}
|
|
|
|
/* //////////////////////////
|
|
CORE STYLES BELOW - NO TOUCHY
|
|
////////////////////////// */
|
|
.toggle-switchy {display:inline-flex; align-items:center; user-select:none; position:relative; vertical-align:middle; margin-bottom:0;}
|
|
.toggle-switchy:hover {cursor:pointer;}
|
|
.toggle-switchy > input {position:absolute; opacity:0;}
|
|
.toggle-switchy > input + .toggle {align-items:center; position:relative;}
|
|
.toggle-switchy > input + .toggle {overflow:hidden; position:relative; flex-shrink:0;}
|
|
.toggle-switchy > input[disabled] + .toggle {opacity:0.5;}
|
|
.toggle-switchy > input[disabled] + .toggle:hover {cursor:not-allowed;}
|
|
.toggle-switchy > input + .toggle {width:100%; height:100%; margin:0; cursor:pointer;}
|
|
.toggle-switchy > input + .toggle > .switch {display:block; height:100%; position:absolute; right:0; z-index:3; box-sizing:border-box;}
|
|
|
|
/* Labels */
|
|
.toggle-switchy > input + .toggle:before,
|
|
.toggle-switchy > input + .toggle:after {display:flex; align-items:center; position:absolute; z-index:2; height:100%;}
|
|
.toggle-switchy > input + .toggle:before {right:55%;}
|
|
.toggle-switchy > input + .toggle:after {left:50%;}
|
|
.toggle-switchy > input + .toggle + .label {margin-left:10px;}
|
|
.toggle-switchy[data-label='left'] > input + .toggle {order:2;}
|
|
.toggle-switchy[data-label='left'] > input + .toggle + .label {order:1; margin-left:0; margin-right:10px;}
|
|
|
|
/* Show / Hide */
|
|
.toggle-switchy > input + .toggle:before {opacity:0;}
|
|
.toggle-switchy > input:checked + .toggle:before {opacity:1;}
|
|
.toggle-switchy > input:checked + .toggle:after {opacity:0;}
|
|
|
|
/* Transitions */
|
|
.toggle-switchy > input + .toggle {transition:background 200ms linear, box-shadow 200ms linear;}
|
|
.toggle-switchy > input + .toggle:before,
|
|
.toggle-switchy > input + .toggle:after {transition:all 200ms linear;}
|
|
.toggle-switchy > input + .toggle > .switch {transition:right 200ms linear, border-color 200ms linear;}
|
|
/* //////////////////////////
|
|
CORE STYLES ABOVE - NO TOUCHY
|
|
////////////////////////// */
|
|
|
|
/* Size: Extra Large */
|
|
.toggle-switchy[data-size='xl'] > input + .toggle {width:85px; height:40px;}
|
|
.toggle-switchy[data-size='xl'] > input + .toggle > .switch {width:40px;}
|
|
.toggle-switchy[data-size='xl'] > input + .toggle:before,
|
|
.toggle-switchy[data-size='xl'] > input + .toggle:after {font-size:1.2rem;}
|
|
.toggle-switchy[data-size='xl'] > input:not(:checked) + .toggle > .switch {right:calc(100% - 40px);}
|
|
|
|
/* Size: Large */
|
|
.toggle-switchy[data-size='lg'] > input + .toggle {width:75px; height:35px;}
|
|
.toggle-switchy[data-size='lg'] > input + .toggle > .switch {width:35px;}
|
|
.toggle-switchy[data-size='lg'] > input + .toggle:before,
|
|
.toggle-switchy[data-size='lg'] > input + .toggle:after {font-size:1rem;}
|
|
.toggle-switchy[data-size='lg'] > input:not(:checked) + .toggle > .switch {right:calc(100% - 35px);}
|
|
|
|
/* Size: Default (Medium) */
|
|
.toggle-switchy > input + .toggle {width:65px; height:30px;}
|
|
.toggle-switchy > input + .toggle > .switch {width:30px;}
|
|
.toggle-switchy > input + .toggle:before,
|
|
.toggle-switchy > input + .toggle:after {font-size:0.8rem;}
|
|
.toggle-switchy > input:not(:checked) + .toggle > .switch {right:calc(100% - 30px);}
|
|
|
|
/* Size: Small */
|
|
.toggle-switchy[data-size='sm'] > input + .toggle {width:55px; height:25px;}
|
|
.toggle-switchy[data-size='sm'] > input + .toggle > .switch {width:25px;}
|
|
.toggle-switchy[data-size='sm'] > input + .toggle:before,
|
|
.toggle-switchy[data-size='sm'] > input + .toggle:after {font-size:0.7rem;}
|
|
.toggle-switchy[data-size='sm'] > input:not(:checked) + .toggle > .switch {right:calc(100% - 25px);}
|
|
|
|
/* Size: Extra Small */
|
|
.toggle-switchy[data-size='xs'] > input + .toggle {width:45px; height:20px;}
|
|
.toggle-switchy[data-size='xs'] > input + .toggle > .switch {width:20px;}
|
|
.toggle-switchy[data-size='xs'] > input + .toggle:before,
|
|
.toggle-switchy[data-size='xs'] > input + .toggle:after {font-size:0.5rem;}
|
|
.toggle-switchy[data-size='xs'] > input:not(:checked) + .toggle > .switch {right:calc(100% - 20px);}
|
|
|
|
/* Style: Rounded */
|
|
.toggle-switchy[data-style='rounded'] > input + .toggle,
|
|
.toggle-switchy[data-style='rounded'] > input + .toggle > .switch {border-radius:50px;}
|
|
.toggle-switchy[data-style='rounded'] > input + .toggle:before {right:50%;}
|
|
.toggle-switchy[data-style='rounded'] > input + .toggle:after {left:50%;}
|
|
|
|
/* Style: Square */
|
|
.toggle-switchy[data-style='square'] > input + .toggle {border-radius:0;}
|
|
.toggle-switchy[data-style='square'] > input + .toggle .switch {border-radius:0;}
|
|
|
|
/* Text: Off */
|
|
.toggle-switchy[data-text='false'] > input + .toggle:before,
|
|
.toggle-switchy[data-text='false'] > input + .toggle:after {content:'';}
|
|
.toggle-switchy[data-text='false'][data-size='xl'] > input + .toggle {width:80px;}
|
|
.toggle-switchy[data-text='false'][data-size='lg'] > input + .toggle {width:70px;}
|
|
.toggle-switchy[data-text='false'] > input + .toggle {width:60px;}
|
|
.toggle-switchy[data-text='false'][data-size='sm'] > input + .toggle {width:50px;}
|
|
.toggle-switchy[data-text='false'][data-size='xs'] > input + .toggle {width:40px;}
|
|
|
|
/* Color: Red */
|
|
.toggle-switchy[data-color='red'] > input:checked + .toggle {background:#e74c3c;}
|
|
.toggle-switchy[data-color='red'] > input:checked + .toggle > .switch {border-color:#e74c3c;}
|
|
|
|
/* Color: Orange */
|
|
.toggle-switchy[data-color='orange'] > input:checked + .toggle {background:#e67e22;}
|
|
.toggle-switchy[data-color='orange'] > input:checked + .toggle > .switch {border-color:#e67e22;}
|
|
|
|
/* Color: Yellow */
|
|
.toggle-switchy[data-color='yellow'] > input:checked + .toggle {background:#f1c40f;}
|
|
.toggle-switchy[data-color='yellow'] > input:checked + .toggle > .switch {border-color:#f1c40f;}
|
|
|
|
/* Color: Green */
|
|
.toggle-switchy[data-color='green'] > input:checked + .toggle {background:#2ecc71;}
|
|
.toggle-switchy[data-color='green'] > input:checked + .toggle > .switch {border-color:#2ecc71;}
|
|
|
|
/* Color: Blue */
|
|
.toggle-switchy[data-color='blue'] > input:checked + .toggle {background:#3498db;}
|
|
.toggle-switchy[data-color='blue'] > input:checked + .toggle > .switch {border-color:#3498db;}
|
|
|
|
/* Color: Purple */
|
|
.toggle-switchy[data-color='purple'] > input:checked + .toggle {background:#9b59b6;}
|
|
.toggle-switchy[data-color='purple'] > input:checked + .toggle > .switch {border-color:#9b59b6;}
|
|
|
|
/* Color: Gray */
|
|
.toggle-switchy[data-color='gray'] > input:checked + .toggle {background:#555;}
|
|
.toggle-switchy[data-color='gray'] > input:checked + .toggle > .switch {border-color:#555;}
|