Files
short-drama-agent-front/design-qa.md
T
GouJ 3c6b1600b4 fix: 统一图库图标间距与提示
统一四个图库操作图标的间距,为布局按钮补充悬浮说明,并在移动端禁用全部 Popover。
2026-09-08 14:16:48 +08:00

66 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Design QA
- Source visual truth: `/workspace/scratch/6e52996114b8/upload/18a4bcb0-1b3a-43c8-b459-deef213b5c2f.png`
- Source pixel dimensions: `235 × 137`.
- Intended implementation viewport: responsive dark theme; desktop shows hover explanations and mobile disables them at `760px` and below.
- Implementation screenshot: unavailable.
- CSS size and density normalization: unavailable because the implementation could not be opened in the cloud browser.
- State: 形态图片页默认筛选、网格布局、四个图标操作可见。
## Full-view comparison evidence
The source crop shows four adjacent icon buttons with two different spacing values: the grid/masonry pair is tightly grouped while refresh and batch image have visibly larger gaps.
The implementation now places all four controls in one flex group with a shared `8px` gap. Grid, masonry, refresh, and batch image each use `NPopover`; all four popovers share the same responsive `disabled` state and are disabled at `max-width: 760px`.
A local Sites preview started successfully, but the cloud browser rejected `terminal.local` with `net::ERR_BLOCKED_BY_CLIENT` on both attempts. Therefore no browser-rendered implementation screenshot is available.
## Focused region comparison evidence
- Control order: grid → masonry → refresh → batch image.
- Spacing: all four controls are direct children of the same `gallery-layout-switch` flex group with `gap: 8px`.
- Desktop explanations: all four controls use hover-triggered `NPopover` copy.
- Mobile behavior: all four popovers bind `:disabled="isMobile"`; the media query follows `(max-width: 760px)`.
- Accessibility: every icon-only button retains a stable Chinese `aria-label`; native `title` attributes were removed from the first two buttons.
These are code-level checks only and do not replace a rendered focused-region comparison.
## Required fidelity surfaces
- Fonts and typography: no visible toolbar type styles changed; popover typography remains Naive UI-managed.
- Spacing and layout rhythm: the four-button group now uses one uniform `8px` rhythm.
- Colors and visual tokens: selected and unselected button colors are unchanged.
- Image quality and asset fidelity: no image behavior changed.
- Copy and content: desktop popovers explain `网格布局`, `瀑布流布局`, `刷新图库`, and `批量生图`; mobile keeps accessible names without hover overlays.
## Findings
- [P1] Browser-rendered comparison unavailable
- Location: 形态图片筛选区的四个图标按钮。
- Evidence: the required cloud browser returns `net::ERR_BLOCKED_BY_CLIENT` for the healthy local preview on two attempts.
- Impact: exact pixel spacing, popover placement, hover visibility, responsive disabling, and console state cannot be visually certified.
- Fix: capture the page in an available browser at desktop and mobile widths and compare the four-button control group.
## Primary interactions tested
Automated tests verify the exact four-button order, layout switching, refresh behavior, four desktop popover bindings, responsive disabled binding, accessible labels, and uniform generated `8px` CSS gap. All 275 tests pass. Browser hover and touch interaction were unavailable.
## Console errors checked
Not checked because the page could not be opened in the cloud browser.
## Comparison history
- Iteration 1: the source identified inconsistent spacing and missing explanations on the first two controls.
- Iteration 2: consolidated all four controls into one spacing group, added popovers to grid and masonry, disabled all four popovers on mobile, and passed the full test/build suite. Browser capture remained blocked.
## Implementation checklist
- [x] Give all four icon buttons the same gap.
- [x] Add `NPopover` explanations to grid and masonry.
- [x] Disable all four `NPopover` components on mobile.
- [x] Preserve accessible labels and existing button behavior.
- [ ] Capture and compare desktop hover and mobile touch states in the cloud browser.
final result: blocked