| Index: css/io-toggle.scss | 
| =================================================================== | 
| new file mode 100644 | 
| --- /dev/null | 
| +++ b/css/io-toggle.scss | 
| @@ -0,0 +1,93 @@ | 
| +/* | 
| + * This file is part of Adblock Plus <https://adblockplus.org/>, | 
| + * Copyright (C) 2006-present eyeo GmbH | 
| + * | 
| + * Adblock Plus is free software: you can redistribute it and/or modify | 
| + * it under the terms of the GNU General Public License version 3 as | 
| + * published by the Free Software Foundation. | 
| + * | 
| + * Adblock Plus is distributed in the hope that it will be useful, | 
| + * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| + * GNU General Public License for more details. | 
| + * | 
| + * You should have received a copy of the GNU General Public License | 
| + * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
| + */ | 
| + | 
| +io-toggle | 
| +{ | 
| +  --width: 30px; | 
| +  --height: 8px; | 
| +  --translateY: -4px; | 
| +  --translateX: 14px; | 
| +  display: inline-block; | 
| +  width: var(--width); | 
| +  height: var(--height); | 
| +  border-radius: 4px; | 
| +  background-color: #9b9b9b; | 
| +  transition: background .2s ease-out; | 
| +  will-change: background; | 
| +  cursor: pointer; | 
| +} | 
| + | 
| +io-toggle[checked] | 
| +{ | 
| +  background-color: #92d3ea; | 
| +} | 
| + | 
| +io-toggle[disabled] | 
| +{ | 
| +  opacity: 0.5; | 
| +  cursor: default; | 
| +} | 
| + | 
| +io-toggle button | 
| +{ | 
| +  width: calc(var(--height) * 2); | 
| +  height: calc(var(--height) * 2); | 
| +  padding: 0; | 
| +  border: 2px solid #e1e0e1; | 
| +  border-radius: var(--height); | 
| +  transition: border .2s ease-out, box-shadow .2s ease-out, | 
| +              transform .2s ease-out, width .2s ease-out; | 
| +  will-change: border, box-shadow, transform, width; | 
| +  transform: translateY(var(--translateY)); | 
| +  outline: none; | 
| +  cursor: pointer; | 
| +} | 
| + | 
| +io-toggle button[aria-checked="false"] | 
| +{ | 
| +  background-color: #f1f1f1; | 
| +  box-shadow: 0 1px 2px 0 #e5d1d1; | 
| +} | 
| + | 
| +io-toggle button[aria-checked="false"]:hover | 
| +{ | 
| +  box-shadow: 0 2px 4px 0 #d3b0b0; | 
| +} | 
| + | 
| +io-toggle button[aria-checked="true"] | 
| +{ | 
| +  background-color: #059cd0; | 
| +  border: 2px solid #059cd0; | 
| +  box-shadow: 0 1px 2px 0 #a6cede; | 
| +  transform: translateY(var(--translateY)) translateX(var(--translateX)); | 
| +} | 
| + | 
| +io-toggle button[aria-checked="true"]:hover | 
| +{ | 
| +  box-shadow: 0 2px 4px 0 #a6cede; | 
| +} | 
| + | 
| +io-toggle button:focus, | 
| +io-toggle button[aria-checked="true"]:focus | 
| +{ | 
| +  border: 2px solid #87bffe; | 
| +} | 
| + | 
| +body[dir="rtl"] io-toggle button[aria-checked="true"] | 
| +{ | 
| +  transform: translateY(var(--translateY)) translateX(calc(var(--translateX) * -1)); | 
| +} | 
|  |