Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "task-checklist",
"version": "5.1",
"version": "5.2",
"description": "A Warframe Task Checklist to track daily, weekly, and other tasks. Built with HTML, CSS, and vanilla JavaScript, processed with Vite.",
"type": "module",
"scripts": {
Expand Down Expand Up @@ -39,4 +39,4 @@
"vite-plugin-singlefile": "^2.3.3",
"vitest": "^4.1.5"
}
}
}
90 changes: 90 additions & 0 deletions sources/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -523,3 +523,93 @@ body:not(.light-mode) img.icon-filter {
text-decoration: underline dotted;
cursor: pointer;
}

/* --- Menu Option Row (toggle switches etc.) --- */
.menu-option-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 0.75rem;
color: var(--text-label);
font-size: 0.9375rem;
}

.menu-option-label {
cursor: default;
}

.menu-divider {
border: none;
border-top: 1px solid var(--menu-panel-border);
margin: 0 0 0.75rem;
}

/* --- Toggle Switch --- */
.toggle-switch {
position: relative;
display: inline-block;
width: 2.75rem;
height: 1.5rem;
flex-shrink: 0;
cursor: pointer;
}

/* Override the global checkbox styles so the hidden input doesn't affect layout */
.toggle-switch input[type="checkbox"] {
position: absolute !important;
opacity: 0 !important;
width: 0 !important;
height: 0 !important;
margin: 0 !important;
border: none !important;
padding: 0 !important;
pointer-events: none;
}

.toggle-slider {
position: absolute;
inset: 0;
background-color: var(--checkbox-bg);
border: 1.5px solid var(--checkbox-border);
border-radius: 1.5rem;
transition: background-color 0.2s ease, border-color 0.2s ease;
}

.toggle-slider::before {
content: "";
position: absolute;
height: 1.0625rem;
width: 1.0625rem;
left: 2px;
top: 50%;
transform: translateY(-50%);
background-color: var(--text-muted);
border-radius: 50%;
transition: transform 0.2s ease, background-color 0.2s ease;
}

.toggle-switch input[type="checkbox"]:checked + .toggle-slider {
background-color: var(--checkbox-checked-bg);
border-color: var(--checkbox-checked-border);
}

.toggle-switch input[type="checkbox"]:checked + .toggle-slider::before {
transform: translate(1.25rem, -50%);
background-color: var(--checkbox-check-color);
}

/* --- Task auto-hide fade --- */
.task-item.task-hiding {
opacity: 0.35; /* reduced-motion fallback: instant dim */
}

@media (prefers-reduced-motion: no-preference) {
@keyframes task-fading {
from { opacity: 1; }
to { opacity: 0; }
}

.task-item.task-hiding {
animation: task-fading 5s linear forwards;
}
}
10 changes: 9 additions & 1 deletion sources/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,14 @@ <h2 class="section-toggle" aria-expanded="true" aria-controls="other-tasks-conte
<h2 class="menu-title">Options</h2>
<button class="menu-close-button" aria-label="Close menu">&times;</button>
</header>
<div class="menu-option-row">
<label class="menu-option-label" for="hide-completed-toggle">Hide completed tasks</label>
<label class="toggle-switch">
<input type="checkbox" id="hide-completed-toggle">
<span class="toggle-slider"></span>
</label>
</div>
<hr class="menu-divider">
<button id="reset-daily-button" class="menu-btn">Reset Daily Checks</button>
<button id="reset-weekly-button" class="menu-btn">Reset Weekly Checks</button>
<button id="reset-button" class="menu-btn">Reset All Checks</button>
Expand Down Expand Up @@ -183,4 +191,4 @@ <h2 class="menu-title"><img class="task-icon" /><span class="title">X</span></h2

<script type="module" src="js/app.js" defer></script>
</body>
</html>
</html>
Loading