workding memory of dark on the toggle

This commit is contained in:
gws 2024-11-09 23:56:55 +01:00
parent 5bb6ac9d5f
commit 9e5ef69aeb
2 changed files with 56 additions and 44 deletions

View file

@ -5,39 +5,45 @@
$diameter: 50px; $diameter: 1em;
.toggle-switch { .toggle-dark {
position: relative; position: relative;
width: $diameter * 2; width: 2em;
} display: inline-block;
top: -0.8em;
label { label {
position: absolute; position: absolute;
width: 100%; width: 100%;
height: $diameter; height: $diameter * 1.0;
background-color: var(--primary-text-color); background-color: var(--primary-text-color);
border-radius: $diameter / 2; border-radius: $diameter / 2 * 1.2;
cursor: pointer; cursor: pointer;
}
input { input {
position: absolute; position: absolute;
display: none; display: none;
} }
input:checked~.slider {
/* background-color: var(--primary-color); */
}
input:checked~.slider::before {
transform: translateX($diameter * 0.95);
background-color: var(--primary-color);
box-shadow: none;
}
.slider { .slider {
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: $diameter / 2; border-radius: $diameter / 2.5;
transition: 0.3s; transition: 0.3s;
} }
input:checked~.slider {
background-color: var(--primary-color);
}
.slider::before { .slider::before {
content: ""; content: "";
position: absolute; position: absolute;
@ -47,12 +53,9 @@ input:checked~.slider {
height: $diameter * 0.75; height: $diameter * 0.75;
border-radius: 50%; border-radius: 50%;
box-shadow: inset $diameter * .28 $diameter * -.04 0px 0px var(--primary-color); box-shadow: inset $diameter * .28 $diameter * -.04 0px 0px var(--primary-color);
background-color: var(--primary-text-color); background-color: var(--primary--color);
transition: 0.3s; transition: 0.3s;
} }
input:checked~.slider::before { }
transform: translateX($diameter * 0.95);
background-color: var(--primary-text-color);
box-shadow: none;
} }

View file

@ -41,13 +41,22 @@
{% endif %} {% endif %}
<div class='toggle-switch'> <div class='toggle-dark'>
<label> <label>
<input type='checkbox' _="on click or load if me.checked <input type='checkbox' _="on click
log(the first <body/>) then
if me.checked
log('checked') log('checked')
add .dark to the closest <body/> add .dark to the closest <body/>
else else
remove .dark from the closest <body/> remove .dark from the closest <body/>
end
end
on load
if (the first <body/> match .dark)
log('loaded as dark') then
set me.checked to true then
log(me)
"> ">
<span class='slider'></span> <span class='slider'></span>
</label> </label>