Fix: Isolations-Rahmen war unsichtbar (lag hinter der PlanView-SVG)

box-shadow auf .pane selbst lag HINTER der eigenen Kind-SVG von PlanView
(Nutzer-Report "ich seh es nicht") — jetzt ein eigenes Overlay-Element
(.pane-isolation-frame), NACH PlanView im DOM gerendert, pointer-events:
none, damit Klicks/Griffe im Plan weiterhin durchgehen.
This commit is contained in:
2026-08-22 11:36:32 +02:00
parent 77f1fc4f70
commit ca8e56412f
2 changed files with 18 additions and 6 deletions
+10 -4
View File
@@ -2139,10 +2139,16 @@ body {
/* Gruppen-Isolation (Vectorworks „Gruppe betreten"): halbtransparenter /* Gruppen-Isolation (Vectorworks „Gruppe betreten"): halbtransparenter
Orange-Rahmen (Band) am Rand der ganzen Ansicht, solange eine Gruppe Orange-Rahmen (Band) am Rand der ganzen Ansicht, solange eine Gruppe
betreten ist — dieselbe visuelle Sprache wie Vectorworks' "Ansichtsbereich"- betreten ist — dieselbe visuelle Sprache wie Vectorworks' "Ansichtsbereich"-
Rahmen (Screenshot-Referenz, 2026-08-22). `box-shadow: inset` statt Rahmen (Screenshot-Referenz, 2026-08-22). EIGENES Overlay-Element, NACH
`outline`, weil es eine feste rgba-Farbe trägt (kein CSS-Var-Farbmix nötig) PlanView im DOM gerendert (nicht `box-shadow` auf `.pane` selbst — das läge
und als Band nach INNEN geht, ohne Layout/Grösse der Ansicht zu ändern. */ HINTER der eigenen Kind-SVG von PlanView und wäre unsichtbar, s. Nutzer-
.pane-isolated { Report "ich seh es nicht"). `pointer-events: none`, damit Klicks/Griffe im
Plan weiterhin durchgehen. */
.pane-isolation-frame {
position: absolute;
inset: 0;
z-index: 5;
pointer-events: none;
box-shadow: inset 0 0 0 8px rgba(230, 126, 34, 0.35); box-shadow: inset 0 0 0 8px rgba(230, 126, 34, 0.35);
} }
+8 -2
View File
@@ -697,7 +697,7 @@ function LevelPlanView({
}); });
return ( return (
<section className={groupPath.length > 0 ? "pane pane-isolated" : "pane"}> <section className="pane">
<div className="pane-title"> <div className="pane-title">
{isDrawing {isDrawing
? t("content.drawingTitle", { name: level.name }) ? t("content.drawingTitle", { name: level.name })
@@ -760,6 +760,9 @@ function LevelPlanView({
selectedDrawingIds={selectedDrawingIds} selectedDrawingIds={selectedDrawingIds}
gripHandlers={gripHandlers} gripHandlers={gripHandlers}
/> />
{/* NACH PlanView gerendert (nicht als box-shadow auf .pane), damit der
Isolations-Rahmen über der PlanView-SVG sichtbar bleibt. */}
{groupPath.length > 0 && <div className="pane-isolation-frame" />}
<div className="plan-legend">{caption}</div> <div className="plan-legend">{caption}</div>
</section> </section>
); );
@@ -950,7 +953,7 @@ function SectionPlanView({
} }
return ( return (
<section className={groupPath.length > 0 ? "pane pane-isolated" : "pane"}> <section className="pane">
<div className="pane-title"> <div className="pane-title">
{t("content.sectionTitle", { name: level.name, kind: kindLabel })} {t("content.sectionTitle", { name: level.name, kind: kindLabel })}
</div> </div>
@@ -1010,6 +1013,9 @@ function SectionPlanView({
selectedDrawingIds={selectedDrawingIds} selectedDrawingIds={selectedDrawingIds}
gripHandlers={gripHandlers} gripHandlers={gripHandlers}
/> />
{/* NACH PlanView gerendert (nicht als box-shadow auf .pane), damit der
Isolations-Rahmen über der PlanView-SVG sichtbar bleibt. */}
{groupPath.length > 0 && <div className="pane-isolation-frame" />}
<div className="plan-legend">{t("section.legend", { kind: kindLabel })}</div> <div className="plan-legend">{t("section.legend", { kind: kindLabel })}</div>
</section> </section>
); );