diff options
Diffstat (limited to 'src/components/Switch.module.css')
| -rw-r--r-- | src/components/Switch.module.css | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/components/Switch.module.css b/src/components/Switch.module.css new file mode 100644 index 0000000..2199c74 --- /dev/null +++ b/src/components/Switch.module.css @@ -0,0 +1,49 @@ +/* steal from https://codepen.io/joshnh/pen/hjbuH */ + +input.switch[type='checkbox'] { + --white: #fff; + --grey: #d3d3d3; + --color-theme: #047aff; + + appearance: none; + outline: none; + background-color: darken(var(--white), 2%); + border: 1px solid var(--grey); + border-radius: 26px; + box-shadow: inset 0 0 0 1px var(--grey); + cursor: pointer; + height: 28px; + position: relative; + transition: border 0.25s 0.15s, box-shadow 0.25s 0.3s, padding 0.25s; + width: 44px; + vertical-align: top; + + &:after { + background-color: var(--white); + border: 1px solid var(--grey); + border-radius: 24px; + box-shadow: inset 0 -3px 3px hsla(0, 0%, 0%, 0.025), + 0 1px 4px hsla(0, 0%, 0%, 0.15), 0 4px 4px hsla(0, 0%, 0%, 0.1); + content: ''; + display: block; + height: 26px; + left: 0; + position: absolute; + right: 16px; + top: 0; + transition: border 0.25s 0.15s, left 0.25s 0.1s, right 0.15s 0.175s; + } + &:checked { + border-color: var(--color-theme); + box-shadow: inset 0 0 0 13px var(--color-theme); + padding-left: 18px; + transition: border 0.25s, box-shadow 0.25s, padding 0.25s 0.15s; + + &:after { + border-color: var(--color-theme); + left: 16px; + right: 0; + transition: border 0.25s, left 0.15s 0.25s, right 0.25s 0.175s; + } + } +} |
