summaryrefslogtreecommitdiffhomepage
path: root/src/features/layout/ui/TileLeaf.svelte
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-09-06 16:00:12 +0900
committerAdam Malczewski <[email protected]>2026-09-06 16:07:33 +0900
commit706aa41955f86eeb6fb35af0b844048e2f53a788 (patch)
tree29df364617c2cc2baf78e9c94becb08fa5c7d5f8 /src/features/layout/ui/TileLeaf.svelte
parent21de98f8929b566badec7390afb26c5821c8931d (diff)
downloaddispatch-web-706aa41955f86eeb6fb35af0b844048e2f53a788.tar.gz
dispatch-web-706aa41955f86eeb6fb35af0b844048e2f53a788.zip
fix(layout): draw diagnostic tile markers inset + frame the sidebar viewport, not its scrolled content
Two renderer bugs made the diagnostic layout plugin's borders useless: 1. Borders went past the panels and were invisible at screen edges: CSS outlines draw OUTSIDE the border box by default, and tiles span their containers edge-to-edge, so the 4px ring overflowed the visible area and was clipped. The outline is now inset (outline-offset: -4px) so it draws inside the tile's box. 2. The green side border scrolled with the sidebar: the marker was drawn on the TilePanels root, which is the SCROLLED CONTENT of the split's collapsible child. The marker now lives on the split's scroll-viewport div — the sidebar's fixed, opaquely-painted frame: its box never moves (only its contents scroll), and its own outline is never clipped by its overflow. (The aside behind it can't carry the marker — the scroll viewport's bg-base-100 paints over an outline drawn on the aside.) markerStyle() centralizes the full declaration (outline + inset offset) and returns undefined for unmarked/unknown markers, so unmarked trees still render with zero outline CSS (pinned by the existing tests). Paint layering verified with a headless-Chromium screenshot of a probe page reproducing the exact DOM + computed styles.
Diffstat (limited to 'src/features/layout/ui/TileLeaf.svelte')
-rw-r--r--src/features/layout/ui/TileLeaf.svelte4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/features/layout/ui/TileLeaf.svelte b/src/features/layout/ui/TileLeaf.svelte
index 2d4a91b..0fd6430 100644
--- a/src/features/layout/ui/TileLeaf.svelte
+++ b/src/features/layout/ui/TileLeaf.svelte
@@ -11,7 +11,7 @@
*/
import type { TileMarker } from "@dispatch/layout-contract";
import { viewRegistry, type RegisteredView } from "../logic/registry";
- import { markerOutline } from "../logic/marker";
+ import { MARKER_OUTLINE_OFFSET, markerOutline } from "../logic/marker";
import FallbackTile from "./FallbackTile.svelte";
let {
@@ -38,7 +38,7 @@
{/snippet}
{#if outline !== undefined}
- <div style:outline={outline}>{@render content()}</div>
+ <div style:outline={outline} style:outline-offset={MARKER_OUTLINE_OFFSET}>{@render content()}</div>
{:else}
{@render content()}
{/if}