From 27f4a5eec0f5cecdd0cb56542569b595680d7c60 Mon Sep 17 00:00:00 2001 From: Johannes Fleck Date: Thu, 10 Sep 2026 13:27:25 +0200 Subject: [PATCH 01/13] 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..4b9d111f 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 Cockpit: Die Web-UI für die Stackable Data Platform (SDP). Arbeiten Sie an einem zentralen Ort mit den Datendiensten der Plattform.", "page_title_trino": "Trino", "setup_steps_label": "Einrichtungsschritte", "language_label": "Sprache", diff --git a/messages/en.json b/messages/en.json index a6ded56d..bfd32a81 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 Cockpit: The web UI for the Stackable Data Platform (SDP). Work with the data services running on your platform in one place.", "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 4af63b958d9d952450d7a6870f85d9e6b75ee6e6 Mon Sep 17 00:00:00 2001 From: Johannes Fleck Date: Thu, 10 Sep 2026 13:32:14 +0200 Subject: [PATCH 02/13] 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 6b6fcf35475acc1c58bf7ba16fe0c464db7a296c Mon Sep 17 00:00:00 2001 From: Johannes Fleck Date: Thu, 10 Sep 2026 13:35:20 +0200 Subject: [PATCH 03/13] 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}