SA
메인 내용으로 이동

iOS Style Toggle in CSS

iOS Style Toggle in CSS

* {
--ios-style-checkbox-width: 3rem;
--ios-style-checkbox-height: 1.8rem;
--ios-style-checkbox-enabled-color: var(--primary-color-500);
--ifm-toc-padding-vertical: 0.25rem;
--ifm-toc-padding-horizontal: 0.75rem;
--ios-style-checkbox-enabled-border-color: var(--primary-color-200);
--ios-style-checkbox-disabled-color: var(--ifm-menu-color-background);
--ios-style-checkbox-disabled-color: var(--ifm-menu-color-background-active);
--ios-style-checkbox-border-width: 0.1rem;
}

.task-list-item {
display: inline-block !important;
text-align: left;
vertical-align: middle;
margin: 1rem 0;
width: 100%;
}

input[type='checkbox'] {
position: relative;
-webkit-appearance: none;
appearance: none;
outline: none;
min-width: var(--ios-style-checkbox-width);
min-height: var(--ios-style-checkbox-height);
border: var(--ifm-color-gray-300) solid var(--ios-style-checkbox-border-width);
background-color: var(--ifm-color-gray-100);
border-radius: calc(var(--ios-style-checkbox-height) / 2);
box-shadow: inset -20px 0 0 0 var(--ifm-menu-color-background-active);
margin: auto 0.5em auto 0;
vertical-align: middle;
}

input[type='checkbox']:after {
content: '';
position: absolute;
background: transparent;
background-color: var(--ifm-color-emphasis-100);
height: calc(var(--ios-style-checkbox-height) - var(--ios-style-checkbox-border-width));
width: calc(var(--ios-style-checkbox-height) - var(--ios-style-checkbox-border-width));
top: calc(-0.5 * var(--ios-style-checkbox-border-width));
left: calc(-0.5 * var(--ios-style-checkbox-border-width));
border-radius: 50%;
box-shadow: 2px 4px 6px rgba(0, 0, 0, 0.2);
}

/* dark mode */
@media (prefers-color-scheme: dark) {
input[type='checkbox'] {
background-color: var(--ifm-menu-color-background-active);
border: var(--ifm-color-gray-800) solid var(--ios-style-checkbox-border-width);
}
input[type='checkbox']:after {
background-color: var(--ifm-menu-color);
}
}

input[type='checkbox']:checked {
box-shadow: inset var(--ios-style-checkbox-width) 0 0 0 var(--ios-style-checkbox-enabled-color);
border: var(--ios-style-checkbox-border-width) solid var(--ios-style-checkbox-enabled-border-color);
}

input[type='checkbox']:checked:after {
left: calc(
var(--ios-style-checkbox-width) - var(--ios-style-checkbox-height) - var(--ios-style-checkbox-border-width) / 2
);
}

이 문서를 언급한 문서들