diff --git a/AGENTS.md b/AGENTS.md index 3a19f167..670e01a2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -259,6 +259,11 @@ pnpm dev 4. **Scrollable containers:** `overflow-y: auto; min-height: 0;` (enables internal scroll without page scroll) 5. **Grid layouts:** `align-items: start;` (NOT center/stretch) to prevent column stretching at different heights 6. **Max-width constraint:** Wrap pages in `.page-wrapper { max-width: var(--ks-content-max); margin: 0 auto; }` to prevent 2560px+ distortion +7. **PageLayout must use CSS Grid (NOT flexbox).** Flex + gap breaks `flex: 1` height propagation in children: + - ❌ **DON'T:** `display: flex; flex-direction: column; gap: var(--ks-space-2);` (gap is not counted in flex: 1 calculations) + - ✅ **DO:** `display: grid; grid-template-rows: auto auto auto auto 1fr auto auto; gap: var(--ks-space-2);` (gap auto-calculated) + - **Reason:** Grid gap is accounted for in row sizing; flex gap is invisible to flex: 1 child height calculations, causing overflow → unwanted scroll + - **Template rows:** header (auto) | subtitle (auto) | commandBar (auto) | summary (auto) | filters (auto) | workspace (1fr) | footer (auto) #### Page Structure Rule: NO Footers (Global or Page-Level) **CRITICAL:** Footers are EXCLUDED at all levels: diff --git a/frontend/src/shared/ui/layouts/PageLayout.vue b/frontend/src/shared/ui/layouts/PageLayout.vue index 6896825e..42de8733 100644 --- a/frontend/src/shared/ui/layouts/PageLayout.vue +++ b/frontend/src/shared/ui/layouts/PageLayout.vue @@ -39,7 +39,8 @@ const showHelp = ref(false)