fix(planning): remove extra padding around interview panes
Make the question/plan workspace flush edge-to-edge on desktop with a single column divider, while keeping a compact card inset on mobile.
This commit is contained in:
@@ -1043,16 +1043,21 @@ An empty footer must NOT reserve vertical space or paint its divider band. When
|
||||
}
|
||||
|
||||
/* Question View */
|
||||
/*
|
||||
FNXC:PlanningMode 2026-07-21-16:47:
|
||||
The interview workspace no longer insets the question/plan panes with outer padding or inter-pane gap.
|
||||
That gutter read as dead space around the framed cards; panes now sit flush edge-to-edge with a single column divider, matching Missions split layout and the desktop flush rules below.
|
||||
*/
|
||||
.planning-workspace {
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-areas: "question plan";
|
||||
grid-template-columns: minmax(0, 1fr) minmax(0, 1.18fr);
|
||||
gap: var(--space-lg);
|
||||
gap: 0;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
padding: var(--space-lg);
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
background: color-mix(in srgb, var(--card) 40%, var(--surface));
|
||||
}
|
||||
@@ -1068,10 +1073,10 @@ An empty footer must NOT reserve vertical space or paint its divider band. When
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
border: solid var(--btn-border-width) color-mix(in srgb, var(--border) 82%, transparent);
|
||||
border-radius: var(--radius-xl);
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
background: var(--surface);
|
||||
box-shadow: var(--shadow-sm);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.planning-plan-pane {
|
||||
@@ -1085,6 +1090,7 @@ An empty footer must NOT reserve vertical space or paint its divider band. When
|
||||
|
||||
.planning-question-pane {
|
||||
grid-area: question;
|
||||
border-right: solid var(--btn-border-width) color-mix(in srgb, var(--border) 82%, transparent);
|
||||
}
|
||||
|
||||
.planning-workspace--generating > .planning-plan-pane,
|
||||
@@ -2206,12 +2212,21 @@ mobile and desktop offer the same View task / Return to sessions choices.
|
||||
padding: var(--space-lg);
|
||||
}
|
||||
|
||||
/*
|
||||
FNXC:PlanningMode 2026-07-21-16:47:
|
||||
Mobile keeps a compact card inset and rounded panes because only one pane is visible at a time;
|
||||
clear the desktop column divider so a solo question/plan card is not edged by a right border.
|
||||
*/
|
||||
.planning-workspace {
|
||||
grid-template-columns: minmax(0, 1fr);
|
||||
gap: var(--space-md);
|
||||
padding: var(--space-md);
|
||||
}
|
||||
|
||||
.planning-question-pane {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.planning-workspace--mobile-tab-question,
|
||||
.planning-workspace--mobile-tab-plan {
|
||||
grid-template-areas:
|
||||
@@ -2272,7 +2287,9 @@ mobile and desktop offer the same View task / Return to sessions choices.
|
||||
|
||||
.planning-plan-pane,
|
||||
.planning-question-pane {
|
||||
border: solid var(--btn-border-width) color-mix(in srgb, var(--border) 82%, transparent);
|
||||
border-radius: var(--radius-lg);
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
|
||||
/* FNXC:PlanningMode 2026-06-22-15:30: this legacy full-viewport sheet sizing
|
||||
|
||||
@@ -74,13 +74,21 @@ describe("PlanningModeModal CSS responsive action contract", () => {
|
||||
const css = loadPlanningCss();
|
||||
const desktopRule = findRule(css, ".planning-workspace");
|
||||
expect(desktopRule).toMatch(/grid-template-areas\s*:\s*"question plan"\s*;/);
|
||||
// FNXC:PlanningMode 2026-07-21-16:47: interview panes sit flush — no outer workspace gutter or inter-pane gap.
|
||||
expect(desktopRule).toMatch(/padding\s*:\s*0\s*;/);
|
||||
expect(desktopRule).toMatch(/gap\s*:\s*0\s*;/);
|
||||
expect(findRule(css, ".planning-plan-pane")).toMatch(/grid-area\s*:\s*plan\s*;/);
|
||||
expectSomeRule(css, ".planning-question-pane", /grid-area\s*:\s*question\s*;/);
|
||||
expectSomeRule(css, ".planning-question-pane", /border-right\s*:\s*solid var\(--btn-border-width\)/);
|
||||
expect(findRule(css, ".planning-plan-pane,\n.planning-question-pane")).toMatch(/border-radius\s*:\s*0\s*;/);
|
||||
|
||||
const mobileCss = getMediaBlocks(css, MOBILE_ACTIONS_QUERY).join("\n");
|
||||
expect(findRule(mobileCss, ".planning-workspace--mobile-tab-question,\n .planning-workspace--mobile-tab-plan")).toMatch(/"tabs"\s*"content"/);
|
||||
expect(findRule(mobileCss, ".planning-workspace-tabs")).toMatch(/display\s*:\s*grid\s*;/);
|
||||
expect(findRule(mobileCss, ".planning-workspace--mobile-tab-question .planning-plan-pane,\n .planning-workspace--mobile-tab-plan .planning-question-pane")).toMatch(/display\s*:\s*none\s*;/);
|
||||
// Mobile restores a compact card inset because only one pane is visible at a time.
|
||||
expect(findRule(mobileCss, ".planning-workspace")).toMatch(/padding\s*:\s*var\(--space-md\)\s*;/);
|
||||
expect(findRule(mobileCss, ".planning-question-pane")).toMatch(/border-right\s*:\s*none\s*;/);
|
||||
});
|
||||
|
||||
it("keeps desktop planning content flush inside both panes with compact aligned action rows", () => {
|
||||
|
||||
Reference in New Issue
Block a user