Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e87068e379 | ||
|
|
cc856c3402 | ||
|
|
b24f3bb656 | ||
|
|
cf2f48c84c | ||
|
|
0f5f3b2fc5 |
@@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
> A shareable task list with auto resetting items.
|
> A shareable task list with auto resetting items.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
**[todo.klemek.fr](https://todo.klemek.fr)**
|
**[todo.klemek.fr](https://todo.klemek.fr)**
|
||||||
|
|
||||||
## Running your own
|
## Running your own
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@
|
|||||||
<!-- card related -->
|
<!-- card related -->
|
||||||
<meta property="og:title" content="{{ title }}">
|
<meta property="og:title" content="{{ title }}">
|
||||||
<meta property="og:description" content="{{ lang('home') }}">
|
<meta property="og:description" content="{{ lang('home') }}">
|
||||||
<meta property="og:image" content="{{ app_url }}/assets/favicon-96x96.jpg">
|
<meta property="og:image" content="{{ app_url }}/assets/preview.jpg">
|
||||||
<meta property="og:url" content="{{ app_url }}/{{ path }}">
|
<meta property="og:url" content="{{ app_url }}/{{ path }}">
|
||||||
|
|
||||||
<script
|
<script
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "tout-doux",
|
"name": "tout-doux",
|
||||||
"version": "1.0.4",
|
"version": "1.0.5",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "tout-doux"
|
name = "tout-doux"
|
||||||
version = "1.0.4"
|
version = "1.0.5"
|
||||||
description = ""
|
description = ""
|
||||||
requires-python = ">=3.14"
|
requires-python = ">=3.14"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|||||||
@@ -10,3 +10,29 @@ body {
|
|||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-variation-settings: "wdth" 100;
|
font-variation-settings: "wdth" 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bg-hero {
|
||||||
|
--size: 5vh;
|
||||||
|
--angle: 45deg;
|
||||||
|
background: repeating-linear-gradient(
|
||||||
|
var(--angle),
|
||||||
|
var(--color-base-200) calc(0 * var(--size)),
|
||||||
|
var(--color-base-200) calc(1 * var(--size)),
|
||||||
|
var(--color-secondary) calc(1 * var(--size)),
|
||||||
|
var(--color-secondary) calc(2 * var(--size)),
|
||||||
|
var(--color-base-200) calc(2 * var(--size)),
|
||||||
|
var(--color-base-200) calc(3 * var(--size)),
|
||||||
|
var(--color-accent) calc(3 * var(--size)),
|
||||||
|
var(--color-accent) calc(4 * var(--size)),
|
||||||
|
var(--color-base-200) calc(4 * var(--size))
|
||||||
|
);
|
||||||
|
background-size: calc(4 * var(--size) / sin(var(--angle)))
|
||||||
|
calc(4 * var(--size) / sin(var(--angle)));
|
||||||
|
animation: BackgroundAnimate 10s linear infinite reverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes BackgroundAnimate {
|
||||||
|
0% {
|
||||||
|
background-position: calc(4 * var(--size) / sin(var(--angle))) 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ onMounted(() => {
|
|||||||
:style="{ display: visible ? 'flex' : 'none' }"
|
:style="{ display: visible ? 'flex' : 'none' }"
|
||||||
class="min-h-screen flex-col w-screen"
|
class="min-h-screen flex-col w-screen"
|
||||||
>
|
>
|
||||||
<div class="hero bg-base-200 grow">
|
<div class="hero bg-hero grow">
|
||||||
<div class="hero-content text-center p-0">
|
<div class="hero-content text-center p-0">
|
||||||
<div
|
<div
|
||||||
class="max-w-md min-w-96 bg-base-100 rounded-box shadow-md"
|
class="max-w-md min-w-96 bg-base-100 rounded-box shadow-md"
|
||||||
|
|||||||
@@ -198,26 +198,6 @@ onBeforeRouteUpdate((to) => {
|
|||||||
<span v-html="$t('all_completed_hint')"></span
|
<span v-html="$t('all_completed_hint')"></span
|
||||||
></span>
|
></span>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-row">
|
|
||||||
<div class="list-col-grow">
|
|
||||||
<input
|
|
||||||
v-model="taskInput"
|
|
||||||
type="text"
|
|
||||||
:placeholder="$t('new_task_hint')"
|
|
||||||
class="input w-full"
|
|
||||||
@keyup.enter="onNewTask"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
class="btn btn-square"
|
|
||||||
:disabled="loading || taskInput.trim().length === 0"
|
|
||||||
@click="onNewTask"
|
|
||||||
>
|
|
||||||
<circle-plus-icon />
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<div
|
<div
|
||||||
v-if="separateCompleted && hasCompleted"
|
v-if="separateCompleted && hasCompleted"
|
||||||
@@ -247,6 +227,22 @@ onBeforeRouteUpdate((to) => {
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex gap-2 p-4">
|
||||||
|
<input
|
||||||
|
v-model="taskInput"
|
||||||
|
type="text"
|
||||||
|
:placeholder="$t('new_task_hint')"
|
||||||
|
class="input grow"
|
||||||
|
@keyup.enter="onNewTask"
|
||||||
|
/>
|
||||||
|
<button
|
||||||
|
class="btn btn-square"
|
||||||
|
:disabled="loading || taskInput.trim().length === 0"
|
||||||
|
@click="onNewTask"
|
||||||
|
>
|
||||||
|
<circle-plus-icon />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button class="btn btn-sm px-4" @click="onShare">
|
<button class="btn btn-sm px-4" @click="onShare">
|
||||||
<share-2-icon class="inline" :size="16" /> {{ $t('share_button') }}
|
<share-2-icon class="inline" :size="16" /> {{ $t('share_button') }}
|
||||||
|
|||||||
@@ -323,7 +323,7 @@ asyncpg = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tout-doux"
|
name = "tout-doux"
|
||||||
version = "1.0.4"
|
version = "1.0.5"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "flask", extra = ["async"] },
|
{ name = "flask", extra = ["async"] },
|
||||||
|
|||||||
Reference in New Issue
Block a user