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本体の挙動とは独立した参考情報です。
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
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 ファイル
前提条件
必須
-
ターゲット UI に到達可能であること
- ローカル開発サーバー (例:
http://localhost:4200、設定可能) - ステージング環境
- 本番環境 (読み取り専用レビュー)
- ローカル開発サーバー (例:
-
ブラウザ自動化が利用可能であること
- スクリーンショットのキャプチャ
- ページナビゲーション
- DOM 情報の取得
-
ソースコードへのアクセス (修正時)
- プロジェクトがワークスペース内に存在すること
- 編集はプレゼンテーション層のファイルに限定されること
ワークフローの概要
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 ページトラバーサル
- 指定された URL に移動します
- スクリーンショットをキャプチャします
- DOM 構造/スナップショットを取得します (可能な場合)
- 追加のページが存在する場合、ナビゲーションを介してトラバースします
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 ソースファイルの特定
問題のある要素からソースファイルを特定します。
-
セレクターベースの検索
- クラス名または ID でコードベースを検索します
grep_searchでスタイル定義を探索します
-
コンポーネントベースの検索
- 要素のテキストまたは構造からコンポーネントを特定します
semantic_searchで関連ファイルを探索します
-
ファイルパターンフィルタリング
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 を参照してください。
修正の原則
- 最小限の変更: 問題を解決するために必要な最小限の変更のみを行います
- 既存のパターンを尊重: Angular + M3 トークンの使用法と既存の構造に従います
- 破壊的変更の回避: 他の領域に影響を与えないよう注意します
- レイヤーの安全性: プレゼンテーションのスタイル/テンプレートのみを編集し、ドメイン/アプリケーションには触れません
ステップ 4: 再検証フェーズ
4.1 修正後の確認
- ブラウザをリロードします (または開発サーバーの HMR を待ちます)
- 修正された領域のスクリーンショットをキャプチャします
- 修正前と修正後を比較します
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
-
Target UI must be reachable
- Local dev server (e.g.,
http://localhost:4200, configurable) - Staging environment
- Production environment (read-only reviews)
- Local dev server (e.g.,
-
Browser automation must be available
- Screenshot capture
- Page navigation
- DOM information retrieval
-
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
- Navigate to the specified URL
- Capture screenshots
- Retrieve DOM structure/snapshot (if possible)
- 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:
-
Selector-based Search
- Search codebase by class name or ID
- Explore style definitions with
grep_search
-
Component-based Search
- Identify components from element text or structure
- Explore related files with
semantic_search
-
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
- Minimal Changes: Only make the minimum changes necessary to resolve the issue
- Respect Existing Patterns: Follow Angular + M3 token usage and existing structure
- Avoid Breaking Changes: Be careful not to affect other areas
- Layer Safety: Edit presentation styles/templates only; do not touch domain/application
Step 4: Re-verification Phase
4.1 Post-fix Confirmation
- Reload browser (or wait for development server HMR)
- Capture screenshots of fixed areas
- 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
- Check dependencies in
package.json - Consider the possibility of CSS-in-JS
- Consider CSS generated at build time
- Ask user about styling method
Problem: Fixes not reflected
- Check if development server HMR is working
- Clear browser cache
- Rebuild if project requires build
- Check CSS specificity issues
Problem: Fixes affecting other areas
- Rollback changes
- Use more specific selectors
- Consider using CSS Modules or scoped styles
- Consult user to confirm impact scope