首頁 / Skills / 網頁與介面設計 / 網頁設計審查 Web Design Reviewer
網頁與介面設計

網頁設計審查 Web Design Reviewer

awesome-copilot communityMITSkill 語言: 英文
授權已核對不含腳本依賴外部服務中風險
演示真實執行紀錄 · claude-sonnet-5-5 · 2026年10月
Please review the design of our coffee shop landing page at file:///ABS/sample/index.html (the file is .claude/skills/web-design-reviewer/sample/index.html in the current directory) at a desktop width (1280x800) and a mobile width (375x800). You have no browser tool, but you may take screenshots by running exactly: `sh .claude/skills/web-design-reviewer/shot.sh "file://$PWD/.claude/skills/web-design-reviewer/sample/index.html" <width> <height> .claude/skills/web-design-reviewer/shots/<name>.png` and then open the PNG with Read. You cannot edit files in this environment, so do the inspection and report only (list the issues with severity and the fix you would make in the source), following the skill's report format.
Skill: web-design-reviewer
Read: sample/index.html
Read: references/visual-checklist.md
Read: shots/desktop.png
Read: shots/mobile.png

Web Design Review Results

Summary

Item Value
Target URL file://…/.claude/skills/web-design-reviewer/sample/index.html
Framework None (static HTML)
Styling Inline <style> block in index.html
Tested Viewports Desktop 1280×800, Mobile 375×800
Issues Detected 8
Issues Fixed 0 (report only, as requested)

Screenshots are in .claude/skills/web-design-reviewer/shots/desktop.png and mobile.png.

Detected Issues

[P1] Cards overflow the viewport on mobile

  • Page: /
  • Element: .cards and .card (index.html:11-12)
  • Issue: Each card is a fixed 320px with flex:none in a non-wrapping row. At 375px only the first card is visible and it is clipped on the right. The other two cards are off-screen and the page scrolls sideways. The hero heading and paragraph are also cut off at the right edge, which suggests the page is wider than the viewport.
  • Fix:
    .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;padding:32px 16px}
    .card{border:1px solid #ddd;padding:16px}  /* drop width:320px and flex:none */
    
    Alternatively, keep flex and use flex-wrap:wrap with .card{flex:1 1 260px}.

[P1] Hero paragraph has insufficient contrast

  • Element: .hero p (index.html:9)
  • Issue: #c9b9a6 on #f3e9dc is about 1.6:1, against the 4.5:1 AA requirement. The text is nearly unreadable.
  • Fix: color:#5a4636, which is about 7:1 on the hero background.

[P1] Price badges are positioned fragilely and overlap

  • Element: .price (index.html:15)
  • Issue: The badge uses position:absolute with hard-coded margin-top:-40px and margin-left:200px. It has no positioned ancestor, so it floats at an arbitrary spot. It sits beside the title instead of at a deliberate corner. On narrower cards it would collide with the title or fall outside the card.
  • Fix:
    .card{position:relative}
    .price{position:absolute;top:24px;right:24px;margin:0;...}
    
    Or put the title and price in a flex row with justify-content:space-between.

[P1] "Order now" CTA is too small

  • Element: .cta (index.html:10)
  • Issue: The button has 11px text and 4px/8px padding, so it is about 20px tall. That is far below the 44×44px touch target, and it is the page's primary action. White on #8a5a2b has acceptable contrast, at about 5.5:1.
  • Fix: padding:12px 24px;font-size:16px;min-height:44px;border-radius:4px.

[P2] Missing image alt text and broken images

  • Element: .card img (index.html:21-23)
  • Issue: The images have no alt attribute. x.png also fails to load, so a broken-image icon shows on a grey block.
  • Fix: Add descriptive alt text, for example alt="House Blend coffee bag", and point src at real assets. Add object-fit:cover to .card img.

[P2] No focus or hover states

  • Element: header a, .cta
  • Issue: No :focus-visible or :hover styles are defined. Keyboard users get only the browser default, which is hard to see on the dark header. The nav links also have no hover feedback.
  • Fix:
    a:focus-visible{outline:3px solid #f5a623;outline-offset:2px}
    header a:hover,.cta:hover{text-decoration:underline}
    

[P2] Card headings use a different font

  • Element: .card h3 (index.html:14)
  • Issue: The headings are Arial sans-serif, while the rest of the page is Georgia serif. The mix looks accidental.
  • Fix: Remove the font-family override, or apply one deliberate heading font to every heading, including h1.

[P3] Smaller polish items

  • Nav on mobile: The three links fit at 375px, but they are about 20px tall and sit close together. Add padding:12px 0 to the links. Consider flex-wrap:wrap, because more items will break the header.
  • Footer text: At 13px it is small. Use at least 14px.
  • Layout width: No max-width or centering. At 1280px the cards leave empty space on the right, and wider screens will look unbalanced. Wrap the content in a container with max-width:1100px;margin:auto.
  • Hero heading: Use font-size:clamp(28px,6vw,44px) so it scales on small screens.
  • Document title: <title>Brew & Co</title> has an unescaped &. Use &amp;.

Unfixed Issues

All of the above are unfixed because this environment is read-only. The fixes are listed per issue.

Recommendations

  • Apply the P1 fixes first, then re-screenshot at 375, 768 and 1280, and add 1920 to check the max-width behavior.
  • Move the colors into CSS custom properties (for example --brown, --cream) so contrast is easy to keep consistent.
  • Add a tablet check at 768px. The card grid fix should give two columns there, but I haven't verified it.
  • My first screenshot call was blocked by the sandbox's command check. Re-running the two screenshot commands separately worked.

试用方式:这是“部分试用”。试用环境没有浏览器工具,所以我提供了一个只会用无头 Chrome 截图的脚本,模型用它截图并用 Read 看图;我做了一个有 8 处故意缺陷的静态页面。试用环境不能改文件,所以只做了检查和报告,没有做修改源码并复查。我复算了对比度(1.6:1 和修复后约 7:1)与报告一致。

它做什麼

透過瀏覽器自動化查看本機、預備環境或正式環境(唯讀)上運行的網站,找出視覺問題並在你的原始碼中修正。它會在四種視窗寬度(375、768、1280、1920 px)下檢查元素溢出與重疊、對齊與間距、文字被截斷、行動端版面、觸控目標、對比度、焦點狀態、圖片替代文字,以及字體與顏色的一致性。能辨識你的框架與樣式方案(純 CSS、SCSS、CSS Modules、Tailwind、styled-components 等),並為每種方案提供修正指南。

運作方式

  1. 先確認網址,並辨識專案與樣式方案。
  2. 擷取畫面並取得 DOM,把問題依 P1 到 P3 分級,再追溯到原始檔。
  3. 做最小的修正,重新整理後比對修正前後,必要時重複;同一個問題修了三次仍不行就來問你。
  4. 輸出報告:已發現、已修正與未修正的問題。

適合什麼場景

清理版面與響應式 bug,發布前做一輪視覺檢查。

說明與風險

中風險:它會修改你專案中既有的原始碼(樣式與元件),請先提交或備份,並檢查變更。它自己的規則要求只做最小改動、遵循你的程式碼風格、大改動前先確認、正式環境唯讀。它需要瀏覽器自動化(Skill 建議 Playwright MCP,以 `npx -y @playwright/mcp@latest` 啟動,會下載並執行一個套件),並且會造訪你提供的任何網址。部分試用:只試了「檢查並出報告」這一半。我做了一個有 8 處刻意缺陷的頁面,以無頭 Chrome 截圖代替 Playwright,模型在桌面與手機寬度下全部找出(卡片溢出、對比度 1.6:1、按鈕太小、缺 alt、字型不一致、定位重疊等),給的修復建議與對比度數值經我重算是對的。沒有試「修改原始碼並複查」這一半,也沒有使用 Playwright MCP。