# QA Report: UI Layout Overflow & Responsiveness Test **Date:** 2026-05-11 **Environment:** http://10.6.80.114:18080 **Browser:** Chromium (Playwright headless) **Test Credentials:** test-user-a / TestUserA123! --- ## Test Results Summary | # | Test | Status | Issues Found | |----|------|--------|-------------| | 1 | Login Page Layout | ✅ Pass | 1 Low | | 2 | Home Page | ✅ Pass | 0 | | 3 | Chart Browser (Registries) | ✅ Pass | 0 | | 4 | Instances Page | ✅ Pass | 0 | | 5 | Monitoring Page | ✅ Pass | 0 | | 6 | Tablet Responsive (768px) | ✅ Pass | 0 | | 7 | Mobile Responsive (375px) | ✅ Pass | 0 | | 8 | Deep DOM Overflow Analysis | ✅ Pass | 0 | | 9 | Source Code CSS Pattern Audit | ✅ Pass | 2 Info | | 10 | Text Visibility & Contrast | ⚠️ 1 Issue | 1 Medium | --- ## 1. Login Page (AuthPage.tsx) **Location:** `frontend/src/features/auth/pages/AuthPage.tsx` **Layout:** - Form card is `max-w-md` (448px), horizontally centered via `flex items-center justify-center` - Desktop viewport (1920×1080): card is perfectly centered (checked via bounding rect) - Background: `bg-slate-50` with gradient overlay - Card: `bg-white/95 backdrop-blur-xl` with `shadow-2xl` **Responsive:** - Padding: `px-4 sm:px-6` — increases from 16px → 24px on `sm:` breakpoint - Card padding: `p-6 sm:p-7` - Icon: `w-11 h-11` — fixed size, not responsive ### ✅ Issue #1-LOW: Login error text color contrast - **File:** `AuthPage.tsx:96` - **Pattern:** `

` - **Problem:** `text-red-400` (`#f87171`) on white background has a contrast ratio of ~2.5:1, which fails WCAG AA (minimum 4.5:1 for normal text). Error messages may be hard to read for users with visual impairments. - **Recommendation:** Use `text-red-600` or `text-red-700` for error text on white backgrounds. --- ## 2. Home Page **Location:** `frontend/src/features/home/pages/HomePage.tsx` **Layout:** - Main container: `min-h-full bg-slate-50 px-4 py-6 sm:px-6 lg:px-8` - Two-column layout on large screens: `lg:grid-cols-[1.4fr_0.8fr]` - Feature cards: `md:grid-cols-3` - Quick actions: `md:grid-cols-3` **Scroll:** ScrollHeight=1080, Viewport=1080 — content fits exactly without scrolling on 1080p. **Overflow:** No horizontal overflow detected. Proper use of responsive padding and grid columns. ### Passing — no issues found. --- ## 3. Chart Browser / Registries **Location:** `frontend/src/features/artifact/registries/pages/ArtifactBrowserPage.tsx` **Layout (Desktop):** - Main layout: `flex-1 flex overflow-hidden bg-slate-50` (sidebar + detail panes) - Sidebar tree: `flex-1 overflow-y-auto custom-scrollbar` - Detail pane: `flex-1 flex flex-col bg-white overflow-hidden` - Tag grid: `grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4` **Tablet (768px):** No overflow. Grid collapses to 2 columns. **Mobile (375px):** No overflow. Grid collapses to 1 column. ### Key Patterns Found: - `RepositoryItem.tsx:212` — `` — proper truncation with `title` tooltip - `ArtifactBrowserPage.tsx:336` — `

` — uses 11px text with truncation - `TagCard.tsx` — uses truncation with `title` attribute for long names ### Passing — no overflow issues found. --- ## 4. Instances Page **Location:** `frontend/src/features/artifact/instances/pages/InstancesManagementPage.tsx` **Component:** `InstanceCard.tsx` **Layout:** - Cluster cards: responsive grid `clusters.length > 1 ? 'md:grid-cols-3' : 'md:grid-cols-2'` - Instance cards listed in single column then `lg:grid-cols-2 gap-6` - Action buttons grid: `grid-cols-2 gap-2 md:grid-cols-3 xl:grid-cols-5` ### ✅ Issue #2-INFO: Action button text truncation on InstanceCards - **File:** `InstanceCard.tsx:285-327` - **Pattern:** ```

``` - **Analysis:** At `grid-cols-2` (small screens), two buttons share each row. The buttons use `min-w-0` which allows them to shrink, and `truncate` on the text span. However, the button text is short ("Refresh", "Entries", "Diagnostics", "Modify", "Delete"), so truncation is unlikely to occur in practice. - **Mitigation:** Each `` has `title` attribute on parent button, providing tooltip fallback. - **Verdict:** Acceptable — button labels are intentionally short and tooltips are present. ### ✅ Issue #3-INFO: Header text truncation with tooltip - **File:** `InstanceCard.tsx:185` - **Pattern:** `

{instanceName}

` - **Analysis:** Instance names could be long, `truncate` will clip with ellipsis. No `title` attribute on this element — unlike repository text below it. - **Recommendation:** Add `title={instanceName}` to the `

` element for tooltip on overflow. ### Passing — no critical overflow issues found. --- ## 5. Monitoring / Clusters **Location:** `frontend/src/features/monitoring/clusters/` **Layout:** - Cluster cards grid: `grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4` - Card header: `

` with cluster name - Metrics: `grid-cols-2 sm:grid-cols-4 gap-4 mb-3` - Resource bars: `overflow-hidden` for proper progress bar clipping - Node details: `grid-cols-1 lg:grid-cols-2 gap-3` **Overflow Check:** ScrollWidth = clientWidth at all tested viewports — no horizontal overflow. **Responsive:** - 1920px: 4 columns of cluster cards - 768px: 2 columns - 375px: 1 column ### Passing — no issues found. --- ## 6. Sidebar Layout **Location:** `frontend/src/shared/components/layout/SidebarLayout/` **Layout:** - Parent: `min-h-screen flex bg-dark text-primary overflow-hidden` - Nav: `flex-1 p-3 space-y-1 overflow-y-auto` — independently scrollable - Footer: Fixed at bottom, `p-3 text-xs text-muted` **Scroll Analysis:** - Content area has `overflow-y-auto`, so sidebar nav items scroll independently when they exceed viewport height - The footer anchors to the bottom of the sidebar (not the scroll area) - At 1080px viewport, sidebar content fits without scrolling **Potential Concern:** If many nav items are added, the footer will push below the fold and the user must scroll the nav to see it. The `overflow-y-auto` on the `