mirror of
https://github.com/uiverse-io/galaxy.git
synced 2025-11-28 13:10:21 +08:00
104 lines
No EOL
2.4 KiB
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>
|
|
|