jpskill.com
🛠️ 開発・MCP コミュニティ

web-design-reviewer

Angular 20やMaterial Design 3を活用し、UIのレビューと修正を通じて、アクセシビリティやレスポンシブ対応を最適化するSkill。

📜 元の英語説明(参考)

Black-Tortoise UI review and fixes focusing on Angular 20 + standalone components, Material Design 3 tokens, @ngrx/signals state, and DDD layer boundaries. Use when reviewing UI, layout, or design in this repo; checks responsiveness, a11y, spacing, and M3 token usage; applies minimal fixes in presentation styles/templates.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Angular 20やMaterial Design 3を活用し、UIのレビューと修正を通じて、アクセシビリティやレスポンシブ対応を最適化するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o web-design-reviewer.zip https://jpskill.com/download/6879.zip && unzip -o web-design-reviewer.zip && rm web-design-reviewer.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6879.zip -OutFile "$d\web-design-reviewer.zip"; Expand-Archive "$d\web-design-reviewer.zip" -DestinationPath $d -Force; ri "$d\web-design-reviewer.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して web-design-reviewer.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → web-design-reviewer フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Black-Tortoise UI レビュアー

このスキルは、Black-Tortoise Angular 20 + Material Design 3 UI スタックに焦点を当て、プレゼンテーション層の課題をソースコードレベルで特定し、修正します。

適用範囲

  • Black-Tortoise Angular 20 プレゼンテーション層
  • Material Design 3 コンポーネントのスタイルとトークン
  • スタンドアロンコンポーネントのテンプレートと SCSS ファイル

前提条件

必須

  1. ターゲット UI に到達可能であること

    • ローカル開発サーバー (例: http://localhost:4200、設定可能)
    • ステージング環境
    • 本番環境 (読み取り専用レビュー)
  2. ブラウザ自動化が利用可能であること

    • スクリーンショットのキャプチャ
    • ページナビゲーション
    • DOM 情報の取得
  3. ソースコードへのアクセス (修正時)

    • プロジェクトがワークスペース内に存在すること
    • 編集はプレゼンテーション層のファイルに限定されること

ワークフローの概要

flowchart TD
    A[Step 1: Information Gathering] --> B[Step 2: Visual Inspection]
    B --> C[Step 3: Issue Fixing]
    C --> D[Step 4: Re-verification]
    D --> E{Issues Remaining?}
    E -->|Yes| B
    E -->|No| F[Completion Report]

ステップ 1: 情報収集フェーズ

1.1 URL の確認

URL が提供されていない場合、ユーザーに尋ねます。

レビューするウェブサイトの URL を提供してください (例: http://localhost:3000)

1.2 プロジェクト構造の理解

修正を行う際、以下の情報を収集します。

項目 質問例
フレームワーク Angular 20 スタンドアロンコンポーネントで合っていますか?
スタイリング方法 Material Design 3 トークンを使用した SCSS ですか?
ソースの場所 どのプレゼンテーションコンポーネントまたはスタイルですか?
レビュー範囲 特定のページのみですか、それとも UI 全体ですか?

1.3 自動プロジェクト検出

ワークスペース内のファイルから自動検出を試みます。

Detection targets:
├── package.json     → Angular 20 + Material + @ngrx/signals
├── angular.json     → Angular CLI configuration
├── src/**/*.scss    → component styles (prefer presentation layer)
├── src/styles/**    → style configuration (M3 tokens if present)
└── src/app/presentation/** → UI source (if present)

1.4 スタイリング方法の特定

方法 検出 編集ターゲット
SCSS (プライマリ) src/**/*.scss (プレゼンテーション優先) コンポーネント SCSS ファイル
グローバルスタイル src/styles.scss (存在する場合) グローバル SCSS
M3 トークン src/styles/** (存在する場合) トークン定義

ステップ 2: 視覚検査フェーズ

2.1 ページトラバーサル

  1. 指定された URL に移動します
  2. スクリーンショットをキャプチャします
  3. DOM 構造/スナップショットを取得します (可能な場合)
  4. 追加のページが存在する場合、ナビゲーションを介してトラバースします

2.2 検査項目

レイアウトの問題

問題 説明 重大度
要素のオーバーフロー コンテンツが親要素またはビューポートからあふれている
要素の重なり 意図しない要素の重なり
配置の問題 グリッドまたはフレックスの配置の問題
間隔の不整合 パディング/マージンの不整合
テキストのクリッピング 長いテキストが適切に処理されていない

レスポンシブの問題

問題 説明 重大度
モバイル非対応 小さな画面でレイアウトが崩れる
ブレークポイントの問題 画面サイズ変更時の不自然な遷移
タッチターゲット モバイルでボタンが小さすぎる

アクセシビリティの問題

問題 説明 重大度
コントラスト不足 テキストと背景のコントラスト比が低い
フォーカス状態なし キーボードナビゲーション中に状態を判別できない
alt テキストの欠落 画像に代替テキストがない

視覚的な一貫性

問題 説明 重大度
フォントの不整合 混在するフォントファミリー
色の不整合 統一されていないブランドカラー
間隔の不整合 類似要素間の間隔が不均一

2.3 ビューポートテスト (レスポンシブ)

以下のビューポートでテストします。

名前 代表的なデバイス
モバイル 375px iPhone SE/12 mini
タブレット 768px iPad
デスクトップ 1280px 標準 PC
ワイド 1920px 大型ディスプレイ

ステップ 3: 問題修正フェーズ

3.1 問題の優先順位付け

block-beta
    columns 1
    block:priority["Priority Matrix"]
        P1["P1: Fix Immediately\n(Layout issues affecting functionality)"]
        P2["P2: Fix Next\n(Visual issues degrading UX)"]
        P3["P3: Fix If Possible\n(Minor visual inconsistencies)"]
    end

3.2 ソースファイルの特定

問題のある要素からソースファイルを特定します。

  1. セレクターベースの検索

    • クラス名または ID でコードベースを検索します
    • grep_search でスタイル定義を探索します
  2. コンポーネントベースの検索

    • 要素のテキストまたは構造からコンポーネントを特定します
    • semantic_search で関連ファイルを探索します
  3. ファイルパターンフィルタリング

     Style files: src/**/*.scss, src/styles/**
     Components: src/app/presentation/** (if present)
     Pages: src/app/presentation/pages/** (if present)

3.3 修正の適用

フレームワーク固有の修正ガイドライン

詳細については、references/framework-fixes.md を参照してください。

修正の原則

  1. 最小限の変更: 問題を解決するために必要な最小限の変更のみを行います
  2. 既存のパターンを尊重: Angular + M3 トークンの使用法と既存の構造に従います
  3. 破壊的変更の回避: 他の領域に影響を与えないよう注意します
  4. レイヤーの安全性: プレゼンテーションのスタイル/テンプレートのみを編集し、ドメイン/アプリケーションには触れません

ステップ 4: 再検証フェーズ

4.1 修正後の確認

  1. ブラウザをリロードします (または開発サーバーの HMR を待ちます)
  2. 修正された領域のスクリーンショットをキャプチャします
  3. 修正前と修正後を比較します

4.2 回帰テスト

  • 修正が他の領域に影響を与えていないことを確認します
  • レスポンシブ表示を確認します
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Black-Tortoise UI Reviewer

This skill focuses on the Black-Tortoise Angular 20 + Material Design 3 UI stack, identifying and fixing presentation-layer issues at the source code level.

Scope of Application

  • Black-Tortoise Angular 20 presentation layer
  • Material Design 3 component styles and tokens
  • Standalone component templates and SCSS files

Prerequisites

Required

  1. Target UI must be reachable

    • Local dev server (e.g., http://localhost:4200, configurable)
    • Staging environment
    • Production environment (read-only reviews)
  2. Browser automation must be available

    • Screenshot capture
    • Page navigation
    • DOM information retrieval
  3. Access to source code (when making fixes)

    • Project must exist within the workspace
    • Edits must be limited to presentation-layer files

Workflow Overview

flowchart TD
    A[Step 1: Information Gathering] --> B[Step 2: Visual Inspection]
    B --> C[Step 3: Issue Fixing]
    C --> D[Step 4: Re-verification]
    D --> E{Issues Remaining?}
    E -->|Yes| B
    E -->|No| F[Completion Report]

Step 1: Information Gathering Phase

1.1 URL Confirmation

If the URL is not provided, ask the user:

Please provide the URL of the website to review (e.g., http://localhost:3000)

1.2 Understanding Project Structure

When making fixes, gather the following information:

Item Example Question
Framework Confirm Angular 20 standalone components?
Styling Method SCSS with Material Design 3 tokens?
Source Location Which presentation components or styles?
Review Scope Specific pages only or entire UI?

1.3 Automatic Project Detection

Attempt automatic detection from files in the workspace:

Detection targets:
├── package.json     → Angular 20 + Material + @ngrx/signals
├── angular.json     → Angular CLI configuration
├── src/**/*.scss    → component styles (prefer presentation layer)
├── src/styles/**    → style configuration (M3 tokens if present)
└── src/app/presentation/** → UI source (if present)

1.4 Identifying Styling Method

Method Detection Edit Target
SCSS (primary) src/**/*.scss (presentation first) Component SCSS files
Global styles src/styles.scss (if present) Global SCSS
M3 tokens src/styles/** (if present) Token definitions

Step 2: Visual Inspection Phase

2.1 Page Traversal

  1. Navigate to the specified URL
  2. Capture screenshots
  3. Retrieve DOM structure/snapshot (if possible)
  4. If additional pages exist, traverse through navigation

2.2 Inspection Items

Layout Issues

Issue Description Severity
Element Overflow Content overflows from parent element or viewport High
Element Overlap Unintended overlapping of elements High
Alignment Issues Grid or flex alignment problems Medium
Inconsistent Spacing Padding/margin inconsistencies Medium
Text Clipping Long text not handled properly Medium

Responsive Issues

Issue Description Severity
Non-mobile Friendly Layout breaks on small screens High
Breakpoint Issues Unnatural transitions when screen size changes Medium
Touch Targets Buttons too small on mobile Medium

Accessibility Issues

Issue Description Severity
Insufficient Contrast Low contrast ratio between text and background High
No Focus State Cannot determine state during keyboard navigation High
Missing alt Text No alternative text for images Medium

Visual Consistency

Issue Description Severity
Font Inconsistency Mixed font families Medium
Color Inconsistency Non-unified brand colors Medium
Spacing Inconsistency Non-uniform spacing between similar elements Low

2.3 Viewport Testing (Responsive)

Test at the following viewports:

Name Width Representative Device
Mobile 375px iPhone SE/12 mini
Tablet 768px iPad
Desktop 1280px Standard PC
Wide 1920px Large display

Step 3: Issue Fixing Phase

3.1 Issue Prioritization

block-beta
    columns 1
    block:priority["Priority Matrix"]
        P1["P1: Fix Immediately\n(Layout issues affecting functionality)"]
        P2["P2: Fix Next\n(Visual issues degrading UX)"]
        P3["P3: Fix If Possible\n(Minor visual inconsistencies)"]
    end

3.2 Identifying Source Files

Identify source files from problematic elements:

  1. Selector-based Search

    • Search codebase by class name or ID
    • Explore style definitions with grep_search
  2. Component-based Search

    • Identify components from element text or structure
    • Explore related files with semantic_search
  3. File Pattern Filtering

     Style files: src/**/*.scss, src/styles/**
     Components: src/app/presentation/** (if present)
     Pages: src/app/presentation/pages/** (if present)

3.3 Applying Fixes

Framework-specific Fix Guidelines

See references/framework-fixes.md for details.

Fix Principles

  1. Minimal Changes: Only make the minimum changes necessary to resolve the issue
  2. Respect Existing Patterns: Follow Angular + M3 token usage and existing structure
  3. Avoid Breaking Changes: Be careful not to affect other areas
  4. Layer Safety: Edit presentation styles/templates only; do not touch domain/application

Step 4: Re-verification Phase

4.1 Post-fix Confirmation

  1. Reload browser (or wait for development server HMR)
  2. Capture screenshots of fixed areas
  3. Compare before and after

4.2 Regression Testing

  • Verify that fixes haven't affected other areas
  • Confirm responsive display is not broken

4.3 Iteration Decision

flowchart TD
    A{Issues Remaining?}
    A -->|Yes| B[Return to Step 2]
    A -->|No| C[Proceed to Completion Report]

Iteration Limit: If more than 3 fix attempts are needed for a specific issue, consult the user


Output Format

Review Results Report

# Web Design Review Results

## Summary

| Item | Value |
|------|-------|
| Target URL | {URL} |
| Framework | Angular 20 + Standalone |
| Styling | SCSS + Material Design 3 tokens |
| Tested Viewports | Desktop, Mobile |
| Issues Detected | {N} |
| Issues Fixed | {M} |

## Detected Issues

### [P1] {Issue Title}

- **Page**: {Page path}
- **Element**: {Selector or description}
- **Issue**: {Detailed description of the issue}
- **Fixed File**: `{File path}`
- **Fix Details**: {Description of changes}
- **Screenshot**: Before/After

### [P2] {Issue Title}
...

## Unfixed Issues (if any)

### {Issue Title}
- **Reason**: {Why it was not fixed/could not be fixed}
- **Recommended Action**: {Recommendations for user}

## Recommendations

- {Suggestions for future improvements}

Required Capabilities

Capability Description Required
Web Page Navigation Access URLs, page transitions
Screenshot Capture Page image capture
Image Analysis Visual issue detection
DOM Retrieval Page structure retrieval Recommended
File Read/Write Source code reading and editing Required for fixes
Code Search Code search within project Required for fixes

Reference Implementation

Implementation with Playwright MCP

Playwright MCP is recommended as the reference implementation for this skill.

Capability Playwright MCP Tool Purpose
Navigation browser_navigate Access URLs
Snapshot browser_snapshot Retrieve DOM structure
Screenshot browser_take_screenshot Images for visual inspection
Click browser_click Interact with interactive elements
Resize browser_resize Responsive testing
Console browser_console_messages Detect JS errors

Configuration Example (MCP Server)

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest", "--caps=vision"]
    }
  }
}

Other Compatible Browser Automation Tools

Tool Features
Selenium Broad browser support, multi-language support
Puppeteer Chrome/Chromium focused, Node.js
Cypress Easy integration with E2E testing
WebDriver BiDi Standardized next-generation protocol

The same workflow can be implemented with these tools. As long as they provide the necessary capabilities (navigation, screenshot, DOM retrieval), the choice of tool is flexible.


Best Practices

DO (Recommended)

  • ✅ Always save screenshots before making fixes
  • ✅ Fix one issue at a time and verify each
  • ✅ Use Material Design 3 tokens for styling updates
  • ✅ Respect Angular 20 control-flow syntax in templates
  • ✅ Document fix details thoroughly

DON'T (Not Recommended)

  • ❌ Large-scale refactoring without confirmation
  • ❌ Ignoring design systems or brand guidelines
  • ❌ Fixes that ignore performance
  • ❌ Fixing multiple issues at once (difficult to verify)

Troubleshooting

Problem: Style files not found

  1. Check dependencies in package.json
  2. Consider the possibility of CSS-in-JS
  3. Consider CSS generated at build time
  4. Ask user about styling method

Problem: Fixes not reflected

  1. Check if development server HMR is working
  2. Clear browser cache
  3. Rebuild if project requires build
  4. Check CSS specificity issues

Problem: Fixes affecting other areas

  1. Rollback changes
  2. Use more specific selectors
  3. Consider using CSS Modules or scoped styles
  4. Consult user to confirm impact scope