galaxy/Checkboxes/elijahgummer_friendly-wombat-2.html

104 lines
No EOL
2.4 KiB
HTML

<label class="container">
<input type="checkbox" />
<div class="checkmark"></div>
</label>
<style>
/* From Uiverse.io by elijahgummer - Website: https://x.com/farrelput/status/1788771619344920729 - Name: Farrel Putra - Tags: simple, animation, green, checkbox */
/* Hide the default checkbox */
.container input {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
opacity: 0;
cursor: pointer;
height: 0;
width: 0;
}
.container {
display: block;
position: relative;
cursor: pointer;
font-size: 20px;
user-select: none;
border: 3px solid #beddd0;
border-radius: 10px;
overflow: hidden;
}
/* Create a custom checkbox */
.checkmark {
position: relative;
top: 0;
left: 0;
height: 1.3em;
width: 1.3em;
background-color: #2dc38c;
border-bottom: 1.5px solid #2dc38c; /* Bottom stroke */
box-shadow: 0 0 1px #cef1e4, inset 0 -2.5px 3px #62eab8,
inset 0 3px 3px rgba(0, 0, 0, 0.34); /* Inner shadow */
border-radius: 8px;
transition: transform 0.3s ease-in-out; /* Transition for smooth animation */
}
/* When the checkbox is checked, modify the checkmark appearance */
.container input:checked ~ .checkmark {
transform: translateY(40px); /* Move down */
animation: wipeDown 0.6s ease-in-out forwards; /* Apply wipe animation */
}
/* When the checkbox is not checked, modify the checkmark appearance */
.container input:not(:checked) ~ .checkmark {
transform: translateY(-40px); /* Move up */
animation: wipeUp 0.6s ease-in-out forwards; /* Apply wipe animation */
}
/* Keyframes for wipe animations */
@keyframes wipeDown {
0% {
transform: translateY(0); /* Starting position */
}
100% {
transform: translateY(40px); /* End position */
}
}
@keyframes wipeUp {
0% {
transform: translateY(40); /* Starting position */
}
100% {
transform: translateY(0px); /* End position */
}
}
/* Create the checkmark/indicator */
.checkmark:after {
content: "";
position: absolute;
display: none;
}
/* Show the checkmark when checked */
.container input:checked ~ .checkmark:after {
display: block;
}
/* Style the checkmark/indicator */
.container .checkmark:before {
content: "";
position: absolute;
left: 10px;
top: 4px;
width: 5px;
height: 10px;
border: solid white;
border-width: 0 2px 2px 0;
transform: rotate(45deg);
box-shadow: 0 4px 2px rgba(0, 0, 0, 0.34); /* Icon drop shadow */
}
</style>