draft for tasks

This commit is contained in:
2025-03-08 01:36:29 +01:00
parent 393812b872
commit 017bc20184
6 changed files with 162 additions and 5 deletions
+156 -4
View File
@@ -12,7 +12,65 @@
<ui-icon symbol="ChevronDown" :size="16" /> <ui-icon symbol="ChevronDown" :size="16" />
</button> </button>
</header> </header>
<!-- <button type="button" @click="preload">Preload</button>--> <div class="editor">
<input type="text" placeholder="Add a task" class="editor-input" />
<ui-icon symbol="CirclePlus" class="editor-add-icon" />
</div>
<ul class="tasks">
<li class="task">
<label class="task-check">
<input type="checkbox" />
<span class="task-check-input"></span>
</label>
<span class="task-text">Haferflocken</span>
</li>
<li class="task">
<label class="task-check">
<input type="checkbox" />
<span class="task-check-input"></span>
</label>
<span class="task-text">Cashewkerne</span>
</li>
<li class="task">
<label class="task-check">
<input type="checkbox" />
<span class="task-check-input"></span>
</label>
<span class="task-text">Creme (sensitiv)</span>
</li>
<li class="task">
<label class="task-check">
<input type="checkbox" />
<span class="task-check-input"></span>
</label>
<span class="task-text">Kreuzkümmel</span>
</li>
<li class="task">
<label class="task-check">
<input type="checkbox" />
<span class="task-check-input"></span>
</label>
<span class="task-text">Vanille</span>
</li>
<li class="task">
<label class="task-check">
<input type="checkbox" />
<span class="task-check-input"></span>
</label>
<span class="task-text">Parfüm</span>
</li>
<li class="task is-done">
<label class="task-check">
<input type="checkbox" checked />
<span class="task-check-input">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check task-check-symbol">
<path d="M20 6 9 17l-5-5"/>
</svg>
</span>
</label>
<span class="task-text">Zahnseide</span>
</li>
</ul>
</main> </main>
</div> </div>
</template> </template>
@@ -44,11 +102,9 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.main .main
{ {
padding: var(--space-m) 0;
@media (max-width: 700px) @media (max-width: 700px)
{ {
padding: var(--space-m); padding: 0 var(--space-m);
} }
} }
@@ -58,6 +114,7 @@
display: flex; display: flex;
align-items: stretch; align-items: stretch;
gap: var(--space-s); gap: var(--space-s);
padding: var(--space-m) 0;
} }
.top-logo .top-logo
@@ -96,4 +153,99 @@
gap: var(--space-s); gap: var(--space-s);
font-weight: 500; font-weight: 500;
} }
.editor
{
position: relative;
margin-top: var(--space-m);
}
.editor-input
{
width: 100%;
appearance: none;
background: var(--color-bg-shade-3);
border: 1px solid var(--color-bg-shade-4);
border-radius: var(--radius);
height: 48px;
color: var(--color-text);
padding-left: 46px;
&:focus
{
outline: none;
}
}
.editor-add-icon
{
position: absolute;
left: var(--space-m);
top: 50%;
height: 20px;
margin-top: -10px;
stroke-width: 1.5px;
color: var(--color-text-dim);
pointer-events: none;
}
.tasks
{
list-style: none;
padding: 0;
padding-left: 1px;
padding-top: var(--space);
}
.task
{
list-style: none;
border: 1px solid transparent;
border-radius: var(--radius);
display: flex;
align-items: center;
}
.task-check
{
display: inline-flex;
padding: var(--space-sm) var(--space-m);
padding-right: var(--space);
input
{
position: absolute;
visibility: hidden;
}
}
.task-check-input
{
height: 16px;
aspect-ratio: 1;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 50%;
border: 2px solid var(--color-text-dim);
}
.task-check-symbol
{
height: 7px;
aspect-ratio: 1;
stroke-width: 4px;
color: var(--color-text-dim);
}
.task-text
{
.task.is-done &
{
color: var(--color-text-dim);
text-decoration: line-through;
font-weight: 300;
}
}
</style> </style>
+1 -1
View File
@@ -96,7 +96,7 @@
{ {
--v-offset: 0px; --v-offset: 0px;
position: absolute; position: absolute;
min-width: 220px; min-width: 180px;
min-height: 20px; min-height: 20px;
background: var(--color-contextmenu-bg); background: var(--color-contextmenu-bg);
border-radius: var(--radius); border-radius: var(--radius);
+2
View File
@@ -66,6 +66,7 @@
padding: var(--space); padding: var(--space);
display: grid; display: grid;
grid-template-rows: auto 1fr auto; grid-template-rows: auto 1fr auto;
z-index: 3;
@media (max-width: 700px) @media (max-width: 700px)
{ {
@@ -74,6 +75,7 @@
transform: translateX(-110%); transform: translateX(-110%);
transition: transform 0.6s ease; transition: transform 0.6s ease;
pointer-events: none; pointer-events: none;
box-shadow: var(--color-menu-shadow);
&.is-open &.is-open
{ {
+1
View File
@@ -2,6 +2,7 @@
:root :root
{ {
--space-s: 8px; --space-s: 8px;
--space-sm: 10px;
--space-m: 12px; --space-m: 12px;
--space: 16px; --space: 16px;
+1
View File
@@ -56,4 +56,5 @@ button
border: none; border: none;
color: var(--color-text); color: var(--color-text);
cursor: pointer; cursor: pointer;
padding: 0;
} }
+1
View File
@@ -25,6 +25,7 @@
// menu shades // menu shades
--color-menu-bg: var(--color-bg-shade-3); --color-menu-bg: var(--color-bg-shade-3);
--color-menu-shadow: 3px 6px 32px rgba(0, 0, 0, 0.1);
--color-menu-item-hover-bg: var(--color-bg-shade-4); --color-menu-item-hover-bg: var(--color-bg-shade-4);
--color-menu-item-count-bg: var(--color-bg-shade-4); --color-menu-item-count-bg: var(--color-bg-shade-4);
--color-menu-item-hover-count-bg: var(--color-bg-shade-5); --color-menu-item-hover-count-bg: var(--color-bg-shade-5);