From 5db1154cda0b2799002dd339135d50e7aaa18162 Mon Sep 17 00:00:00 2001 From: Milan Rother Date: Sat, 11 Jul 2026 09:43:42 +0200 Subject: [PATCH 1/2] Remove logo overlay from editor canvas --- src/routes/+page.svelte | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 9f93dc74..028d05a5 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1366,11 +1366,6 @@ - - -
@@ -1840,27 +1835,6 @@ .editor-nav .brand { margin-right: var(--space-xs); } /* Push the top-anchored floating overlays below the fixed nav. */ .app.has-nav .subsystem-breadcrumb { top: calc(var(--space-md) + var(--header-height)); } - .app.has-nav .logo-overlay { top: calc(var(--space-md) + var(--header-height)); } - - /* Logo overlay — stays over the canvas, below the fixed nav. */ - .logo-overlay { - position: fixed; - top: var(--space-md); - left: var(--space-md); - z-index: 100; - background: none; - border: none; - padding: 0; - cursor: pointer; - } - .logo-overlay img { - height: 44px; - width: auto; - transition: opacity var(--transition-fast); - } - .logo-overlay:hover img { - opacity: 0.8; - } .toolbar-btn { width: var(--header-height); @@ -2064,7 +2038,6 @@ pointer-events: none; } - /* Logo overlay */ /* Subsystem breadcrumb navigation */ .subsystem-breadcrumb { position: fixed; From 51398c0a9be695b586f35ea7a39e1f6717209a84 Mon Sep 17 00:00:00 2001 From: Milan Rother Date: Sat, 11 Jul 2026 09:43:42 +0200 Subject: [PATCH 2/2] Clamp tooltips to viewport using measured size --- src/lib/components/Tooltip.svelte | 68 ++++++++++++++++++------------- 1 file changed, 40 insertions(+), 28 deletions(-) diff --git a/src/lib/components/Tooltip.svelte b/src/lib/components/Tooltip.svelte index 245179ef..74f44fe8 100644 --- a/src/lib/components/Tooltip.svelte +++ b/src/lib/components/Tooltip.svelte @@ -77,26 +77,8 @@ break; } - // Clamp horizontal position to keep tooltip within viewport - if (finalPosition === 'bottom' || finalPosition === 'top') { - const halfWidth = tooltipMaxWidth / 2; - if (x - halfWidth < padding) { - x = padding + halfWidth; - } else if (x + halfWidth > window.innerWidth - padding) { - x = window.innerWidth - padding - halfWidth; - } - } - - // Clamp vertical position for left/right tooltips - if (finalPosition === 'left' || finalPosition === 'right') { - const halfHeight = tooltipHeight / 2; - if (y - halfHeight < padding) { - y = padding + halfHeight; - } else if (y + halfHeight > window.innerHeight - padding) { - y = window.innerHeight - padding - halfHeight; - } - } - + // Viewport clamping happens in the component after render, + // where the actual tooltip dimensions can be measured. tooltipStore.set({ text, shortcut, maxWidth, x, y, visible: true, position: finalPosition }); }, 50); } @@ -152,21 +134,51 @@ -{#if state.visible} +{#if tip.visible}
- {state.text} - {#if state.shortcut} - {state.shortcut} + {tip.text} + {#if tip.shortcut} + {tip.shortcut} {/if}
{/if}