chore: release v0.20.20
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.20.20] - 2026-04-20
|
||||
|
||||
### Fixed
|
||||
- Accessibility: `--module-notes` color raised from `#CA8A04` (4.08:1) to `#A16207` (6.3:1) — now WCAG AA compliant for normal text including nav labels
|
||||
- Accessibility: Task status button `aria-label` now reflects actual action — says "mark as open" for completed tasks instead of always "mark as done"
|
||||
- i18n: Added `tasks.markOpen` key to all 15 locale files for the corrected aria-label
|
||||
|
||||
## [0.20.19] - 2026-04-20
|
||||
|
||||
### Changed
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "oikos",
|
||||
"version": "0.20.9",
|
||||
"version": "0.20.20",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "oikos",
|
||||
"version": "0.20.9",
|
||||
"version": "0.20.20",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"bcrypt": "^6.0.0",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "oikos",
|
||||
"version": "0.20.19",
|
||||
"version": "0.20.20",
|
||||
"description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.",
|
||||
"main": "server/index.js",
|
||||
"type": "module",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "لاحقاً",
|
||||
"groupNoDate": "بلا تاريخ",
|
||||
"markDone": "وضع علامة منجز على {{title}}",
|
||||
"markOpen": "وضع علامة مفتوح على {{title}}",
|
||||
"editButton": "تعديل المهمة",
|
||||
"swipeOpen": "فتح",
|
||||
"swipeDone": "منجز",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "Später",
|
||||
"groupNoDate": "Kein Datum",
|
||||
"markDone": "{{title}} als erledigt markieren",
|
||||
"markOpen": "{{title}} als offen markieren",
|
||||
"editButton": "Aufgabe bearbeiten",
|
||||
"swipeOpen": "Öffnen",
|
||||
"swipeDone": "Erledigt",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "Αργότερα",
|
||||
"groupNoDate": "Χωρίς ημερομηνία",
|
||||
"markDone": "Επισήμανση {{title}} ως ολοκληρωμένο",
|
||||
"markOpen": "Επισήμανση {{title}} ως ανοιχτό",
|
||||
"editButton": "Επεξεργασία εργασίας",
|
||||
"swipeOpen": "Επαναφορά",
|
||||
"swipeDone": "Ολοκληρώθηκε",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "Later",
|
||||
"groupNoDate": "No date",
|
||||
"markDone": "Mark {{title}} as done",
|
||||
"markOpen": "Mark {{title}} as open",
|
||||
"editButton": "Edit task",
|
||||
"swipeOpen": "Reopen",
|
||||
"swipeDone": "Done",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "Más tarde",
|
||||
"groupNoDate": "Sin fecha",
|
||||
"markDone": "Marcar {{title}} como completada",
|
||||
"markOpen": "Marcar {{title}} como pendiente",
|
||||
"editButton": "Editar tarea",
|
||||
"swipeOpen": "Abrir",
|
||||
"swipeDone": "Completar",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "Plus tard",
|
||||
"groupNoDate": "Sans date",
|
||||
"markDone": "Marquer {{title}} comme terminé",
|
||||
"markOpen": "Marquer {{title}} comme non terminé",
|
||||
"editButton": "Modifier la tâche",
|
||||
"swipeOpen": "Rouvrir",
|
||||
"swipeDone": "Terminé",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "बाद में",
|
||||
"groupNoDate": "कोई तारीख नहीं",
|
||||
"markDone": "{{title}} को पूर्ण के रूप में चिह्नित करें",
|
||||
"markOpen": "{{title}} को अपूर्ण के रूप में चिह्नित करें",
|
||||
"editButton": "कार्य संपादित करें",
|
||||
"swipeOpen": "खोलें",
|
||||
"swipeDone": "पूर्ण",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "Più avanti",
|
||||
"groupNoDate": "Senza data",
|
||||
"markDone": "Segna {{title}} come completato",
|
||||
"markOpen": "Segna {{title}} come non completato",
|
||||
"editButton": "Modifica compito",
|
||||
"swipeOpen": "Riapri",
|
||||
"swipeDone": "Completato",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "後で",
|
||||
"groupNoDate": "日付なし",
|
||||
"markDone": "{{title}} を完了としてマーク",
|
||||
"markOpen": "{{title}} を未完了としてマーク",
|
||||
"editButton": "タスクを編集",
|
||||
"swipeOpen": "開く",
|
||||
"swipeDone": "完了",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "Depois",
|
||||
"groupNoDate": "Sem data",
|
||||
"markDone": "Marcar {{title}} como concluído",
|
||||
"markOpen": "Marcar {{title}} como pendente",
|
||||
"editButton": "Editar tarefa",
|
||||
"swipeOpen": "Abrir",
|
||||
"swipeDone": "Concluído",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "Позже",
|
||||
"groupNoDate": "Без даты",
|
||||
"markDone": "Отметить {{title}} как выполненное",
|
||||
"markOpen": "Отметить {{title}} как открытое",
|
||||
"editButton": "Редактировать задачу",
|
||||
"swipeOpen": "Открыть снова",
|
||||
"swipeDone": "Выполнено",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "Senare",
|
||||
"groupNoDate": "Inget datum",
|
||||
"markDone": "Markera {{title}} som klar",
|
||||
"markOpen": "Markera {{title}} som öppen",
|
||||
"editButton": "Redigera uppgift",
|
||||
"swipeOpen": "Öppna igen",
|
||||
"swipeDone": "Klart",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "Sonra",
|
||||
"groupNoDate": "Tarih yok",
|
||||
"markDone": "{{title}} tamamlandı olarak işaretle",
|
||||
"markOpen": "{{title}} açık olarak işaretle",
|
||||
"editButton": "Görevi düzenle",
|
||||
"swipeOpen": "Yeniden aç",
|
||||
"swipeDone": "Tamamlandı",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "Пізніше",
|
||||
"groupNoDate": "Без дати",
|
||||
"markDone": "Позначити {{title}} як виконане",
|
||||
"markOpen": "Позначити {{title}} як відкрите",
|
||||
"editButton": "Редагувати завдання",
|
||||
"swipeOpen": "Відкрити знову",
|
||||
"swipeDone": "Виконано",
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
"groupLater": "以后",
|
||||
"groupNoDate": "无日期",
|
||||
"markDone": "将 {{title}} 标记为完成",
|
||||
"markOpen": "将 {{title}} 标记为未完成",
|
||||
"editButton": "编辑任务",
|
||||
"swipeOpen": "打开",
|
||||
"swipeDone": "完成",
|
||||
|
||||
@@ -168,7 +168,7 @@ function renderTaskCard(task, opts = {}) {
|
||||
<div class="task-card__main">
|
||||
<button class="task-status-btn task-status-btn--${task.status}"
|
||||
data-action="toggle-status" data-id="${task.id}" data-status="${task.status}"
|
||||
aria-label="${t('tasks.markDone', { title: esc(task.title) })}">
|
||||
aria-label="${isDone ? t('tasks.markOpen', { title: esc(task.title) }) : t('tasks.markDone', { title: esc(task.title) })}">
|
||||
<i data-lucide="check" class="task-status-btn__check" aria-hidden="true"></i>
|
||||
</button>
|
||||
|
||||
|
||||
@@ -139,8 +139,8 @@
|
||||
--module-meals: var(--_module-meals); /* Orange-700 - Essen, Wärme */
|
||||
--_module-shopping: #DB2777;
|
||||
--module-shopping: var(--_module-shopping); /* Pink-600 - Einkaufen (trennt von Meals) */
|
||||
--_module-notes: #CA8A04;
|
||||
--module-notes: var(--_module-notes); /* Gold - Notizen (nur Icons/Large-Text: 4.08:1) */
|
||||
--_module-notes: #A16207;
|
||||
--module-notes: var(--_module-notes); /* Amber-700 - Notizen (6.3:1 auf weiß — WCAG AA) */
|
||||
--_module-contacts: #0969DA;
|
||||
--module-contacts: var(--_module-contacts); /* Kräftiges Blau - Kontakte */
|
||||
--_module-budget: #0F766E;
|
||||
|
||||
Reference in New Issue
Block a user