From 76d42ec1484894d69d4034a172e3010b235f256c Mon Sep 17 00:00:00 2001 From: Johannes Fleck Date: Thu, 10 Sep 2026 13:27:25 +0200 Subject: [PATCH 01/12] meta descriptions --- messages/de.json | 1 + messages/en.json | 1 + src/routes/+layout.svelte | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/messages/de.json b/messages/de.json index 8b0bc0b1..31fd57ea 100644 --- a/messages/de.json +++ b/messages/de.json @@ -33,6 +33,7 @@ "page_title_dashboard": "Dashboard", "page_title_default": "Stackable", "page_title_suffix": "Stackable", + "meta_description": "Stackable Unified Data Platform UI – verwalten Sie Ihre Dateninfrastruktur über eine zentrale Oberfläche.", "page_title_trino": "Trino", "setup_steps_label": "Einrichtungsschritte", "language_label": "Sprache", diff --git a/messages/en.json b/messages/en.json index a6ded56d..227b92fe 100644 --- a/messages/en.json +++ b/messages/en.json @@ -33,6 +33,7 @@ "page_title_dashboard": "Dashboard", "page_title_default": "Stackable", "page_title_suffix": "Stackable", + "meta_description": "Stackable Unified Data Platform UI — manage your data infrastructure from a single interface.", "page_title_trino": "Trino", "setup_steps_label": "Setup steps", "language_label": "Language", diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 3b77780c..6fdca625 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -2,6 +2,7 @@ import '../app.css'; import { onMount } from 'svelte'; import { theme } from '$lib/theme.svelte'; + import * as m from '$lib/paraglide/messages.js'; let { children } = $props(); @@ -19,4 +20,8 @@ }); + + + + {@render children()} From 58971954ba425b50656a1a49241ca802533cc03c Mon Sep 17 00:00:00 2001 From: Johannes Fleck Date: Thu, 10 Sep 2026 13:32:14 +0200 Subject: [PATCH 02/12] fix contrast ratio --- src/app.css | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/app.css b/src/app.css index 30b34902..de0048de 100644 --- a/src/app.css +++ b/src/app.css @@ -1,6 +1,16 @@ @import 'tailwindcss'; @plugin 'daisyui'; +/* + * DaisyUI's shipped dark-theme --color-primary (oklch(58% 0.233 277.117)) only reaches + * ~3.3:1 contrast against base-100/base-200, failing WCAG AA (4.5:1) for text-primary used + * as body text (e.g. active nav labels). This keeps the same hue while satisfying contrast. + */ +[data-theme='dark'] { + --color-primary: oklch(70% 0.17 277.117); + --color-primary-content: oklch(24% 0.12 277.117); +} + /* Subtle highlight for the currently executing statement in the Monaco editor */ .highlighted-statement { background-color: oklch(from var(--color-primary) l c h / 0.08); From 521af4f8d116130f0db1597097eb8c0bf9a0082d Mon Sep 17 00:00:00 2001 From: Johannes Fleck Date: Thu, 10 Sep 2026 13:35:20 +0200 Subject: [PATCH 03/12] fix aria role --- src/lib/components/TabBar.svelte | 122 ++++++++++++++++--------------- 1 file changed, 62 insertions(+), 60 deletions(-) diff --git a/src/lib/components/TabBar.svelte b/src/lib/components/TabBar.svelte index 53586b2c..d7f9e351 100644 --- a/src/lib/components/TabBar.svelte +++ b/src/lib/components/TabBar.svelte @@ -124,72 +124,74 @@ } -
- {#each items as item, index (item.id)} - {@const isActive = item.id === activeId} - {@const isDragOver = - dragOverIndex === index && dragFromIndex !== null && dragFromIndex !== index} -
- - - {#if showClose && item.closable !== false} - {/if} -
- {/each} + + {#if showClose && item.closable !== false} + + {/if} +
+ {/each} + {#if onAdd && showAdd}