From fastlane-ui-design
Review existing Angular Material UI for Fastlane design issues and improvements
How this command is triggered — by the user, by Claude, or both
Slash command
/fastlane-ui-design:design-review [file-path|component-name]The summary Claude sees in its command listing — used to decide when to auto-load this command
# Design Review Review existing Angular Material UI code for Fastlane design issues, usability problems, and improvement opportunities. Provides actionable recommendations aligned with Pangea design tokens and Angular Material 19 patterns. ## Pre-flight Checks 1. Check if `.ui-design/` directory exists: - If not: Create `.ui-design/` directory - Create `.ui-design/reviews/` subdirectory for storing review results 2. Load project context if available: - Check for `DESIGN.md` for Fastlane app conventions - Check for `apps/web/src/styles.scss` for Pangea token definitions - ...
Review existing Angular Material UI code for Fastlane design issues, usability problems, and improvement opportunities. Provides actionable recommendations aligned with Pangea design tokens and Angular Material 19 patterns.
Check if .ui-design/ directory exists:
.ui-design/ directory.ui-design/reviews/ subdirectory for storing review resultsLoad project context if available:
DESIGN.md for Fastlane app conventionsapps/web/src/styles.scss for Pangea token definitions.ui-design/design-system.json for design tokensAsk user to specify target:
What would you like me to review?
1. A specific component (provide name or path)
2. A page/route (provide path)
3. The entire UI directory
4. Recent changes (last commit)
Enter number or provide a file path:
CRITICAL RULES:
What aspects should I focus on?
1. Visual design (spacing, alignment, typography, colors, tokens)
2. Usability (interaction patterns, accessibility basics)
3. Code quality (patterns, maintainability, reusability)
4. Performance (render optimization, change detection)
5. Comprehensive (all of the above)
Enter number:
What is this UI's primary purpose?
1. Data display (dashboards, tables, reports)
2. Data entry (forms, wizards, editors)
3. Navigation (menus, sidebars, breadcrumbs)
4. Content consumption (articles, media, feeds)
5. Other (describe)
Enter number or description:
Is this view using the standard cool-neutral surface (--surface) or the warm-neutral secondary surface (--surface-alt)?
1. Standard cool-neutral (--surface) — default
2. Warm-neutral secondary (--surface-alt) — documents/records feel
Enter number:
Create/update .ui-design/reviews/review_state.json:
{
"review_id": "{target}_{YYYYMMDD_HHMMSS}",
"target": "{file_path_or_component}",
"focus_areas": ["visual", "usability", "code", "performance"],
"context": "{purpose}",
"surface": "standard|secondary",
"status": "in_progress",
"started_at": "ISO_TIMESTAMP",
"issues_found": 0,
"severity_counts": {
"critical": 0,
"major": 0,
"minor": 0,
"suggestion": 0
}
}
Read and analyze the target files (.ts, .html, .scss only):
When performing static analysis, check these Angular/Pangea-specific issues:
Hex Literals:
#XXXXXX or rgb() in .scss files or inline template [style] bindingsvar(--*) token instead" (known ~232-hex drift)apps/web/src/styles.scss for available tokensButton Color Semantics:
color="primary" on success/confirmation states (e.g., "Save", "Submit") → Should be color="accent"color="primary" on destructive actions (e.g., "Delete", "Remove") → Should be color="danger"color="warn" used decoratively (not actual warning state) → Flag as misuseModal Anti-patterns:
<mat-dialog-content> (modals should be single-column)Card Nesting:
<mat-card> inside another <mat-card> → Recommend structural refactorRedundant Status Indicators:
Input Field Issues:
<input> elements outside <mat-form-field> → Required wrapper for Material forms<mat-error> outside <mat-form-field> → Must be nested for proper association with inputIcon Button Missing Labels:
<button mat-icon-button> without aria-label → Icon-only buttons need accessible namesCheck for:
Spacing & Layout:
Typography:
Colors & Tokens:
var(--on-surface) or var(--pangea-text-secondary)var(--surface) or var(--surface-alt) (not hardcoded)var(--success), var(--error), var(--warning), var(--info):host-context(body.dark-theme) & overrides)Visual Hierarchy:
Check for:
Angular Patterns:
input/output signals (Angular 19+)ChangeDetectionStrategy.OnPush on all componentsStyling Patterns:
.scss files[style] bindings (except for computed vars)Maintainability:
app-component-name)aria-label, role, etc.)Check for:
Change Detection:
ChangeDetectionStrategy.OnPush@Input() mutationsBehaviorSubject)Template Optimization:
@if / @for used over *ngIf / *ngFor (Angular 17+ syntax)trackBy in @for loopsAsset Optimization:
If dev server is running at http://localhost:4200, offer optional live checks:
Would you like to perform a live browser check? (requires dev server at http://localhost:4200)
1. Yes, perform live checks
2. No, static analysis only
If yes:
mcp__chrome-devtools__new_page + mcp__chrome-devtools__navigate_page to the component's routemcp__chrome-devtools__take_screenshot → save as .ui-design/reviews/{review_id}/light.pngmcp__chrome-devtools__evaluate_script with document.body.classList.add('dark-theme') → take_screenshot → save as dark.pngmcp__chrome-devtools__lighthouse_audit → save JSON to .ui-design/reviews/{review_id}/lighthouse.jsonmcp__chrome-devtools__evaluate_script to inject axe-core from CDN and run axe.run()Generate review report in .ui-design/reviews/{review_id}/review.md:
# Design Review: {Component/File Name}
**Review ID:** {review_id}
**Reviewed:** {YYYY-MM-DD HH:MM}
**Target:** {file_path}
**Focus:** {focus_areas}
**Surface:** {standard | secondary}
## Summary
{2-3 sentence overview of findings}
**Issues Found:** {total_count}
- Critical: {count}
- Major: {count}
- Minor: {count}
- Suggestions: {count}
**Reference Context:**
- Pangea tokens: `apps/web/src/styles.scss`
- Fastlane conventions: `DESIGN.md`
## Static Analysis Issues
### Issue 1: {Title}
**Severity:** Critical
**Location:** {file}:{line}
**Category:** {Visual|Usability|Code|Performance}
**Problem:**
{Description of the issue}
**Impact:**
{Why this matters for users/maintainability}
**Recommendation:**
{Specific fix suggestion}
**Code Example:**
```{language}
// Before
{current_code}
// After
{suggested_code}
```
---
### Issue 2: ...
## Runtime Issues (if browser check performed)
### Screenshot: Light Mode
[light.png]
### Screenshot: Dark Mode
[dark.png]
### Lighthouse Results
- Accessibility: {score}/100
- Performance: {score}/100
### Runtime Accessibility Violations
{List of axe violations found at runtime}
---
## Positive Observations
{List things done well to reinforce good patterns}
- {Positive observation 1}
- {Positive observation 2}
## Next Steps
1. {Prioritized action 1}
2. {Prioritized action 2}
3. {Prioritized action 3}
---
_Generated by UI Design Review. Run `/ui-design:design-review` again after fixes._
After generating report:
Update review_state.json:
status: "complete"Display summary:
Design Review Complete!
Target: {component/file}
Issues Found: {total}
- {critical} Critical
- {major} Major
- {minor} Minor
- {suggestions} Suggestions
Full report: .ui-design/reviews/{review_id}/review.md
If user selects "Start implementing fixes":
Which issues would you like to address?
1. All critical issues first
2. All issues in current file
3. Specific issue (enter number)
4. Generate a fix plan for all issues
Enter choice:
Guide user through fixes one at a time, updating the review report as issues are resolved.
npx claudepluginhub pat-richardson/fastlane-ui-design --plugin fastlane-ui-design/design-reviewReviews UI files or components interactively for design, usability, code quality, and performance issues. Configures via sequential questions on focus, context, and platform.
/design-reviewConducts structured design review of module, feature, or system: maps boundaries, evaluates principles/anti-patterns/scalability, outputs score, strengths, concerns, recommendations, Mermaid diagram.
/design-reviewReviews visual design quality—layout, typography, spacing, colour, consistency—for provided URL or detected dev/deployed app, producing severity-ranked issues report with fixes.
/design-reviewAudits a design for quality — accessibility, usability, visual consistency, content, and motion — using HTML files, Figma URLs, preview servers, or screenshots for visual AI critique.
/design-reviewReviews and interactively edits design_doc.json: displays formatted overview, components, patterns, ADRs, and interfaces; supports modifications via prompts.
/design-reviewReviews design document by resolving open questions, finalizing tasks, and advancing status from Draft to Review or Accepted.