--- phase: 11-visual-design-responsive-layout-cleanup plan: 5 type: execute wave: 4 depends_on: [11-04] requirements: [VISUAL-01, VISUAL-03, VISUAL-04] files_modified: - frontend/src/components/**/*.vue - frontend/src/views/**/*.vue autonomous: true --- # Plan 11-05 — Visual Consistency Pass ## Objective Make spacing, typography, hover, focus-visible, and active states consistent across the frontend without introducing a component-library rewrite. ## Tasks 1. Preserve legitimate data-driven inline styles: - topic color swatches - quota/progress widths - Teleport dropdown coordinates - tree indentation 2. Remove arbitrary spacing and decorative inline styles unless they are data-driven layout values with no Tailwind equivalent. 3. Normalize typography to this app scale: - page title: `text-2xl font-semibold` - section title: `text-lg font-semibold` - panel/table heading: `text-sm font-semibold` - body: `text-sm` - caption/metadata: `text-xs` 4. Replace generic `focus:ring-*` only patterns on interactive elements with this keyboard focus convention: `focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500 focus-visible:ring-offset-1`. 5. Ensure buttons, links, card rows, table rows, menu items, and icon actions have coherent hover and active states. 6. Avoid broad palette changes; preserve the current DocuVault identity while removing one-off visual drift. 7. Add focused tests or static checks for the agreed invariants where practical. ## Acceptance Criteria - No unnecessary `px-[...]`, margin `style=`, or one-off typography overrides remain. - Interactive elements have hover plus keyboard-visible focus states. - Typography reads as one app scale, not per-component choices. - Data-driven inline styles remain where they carry runtime values. - Visual changes are behavior-preserving. - Frontend tests and build pass.