Convert visual design images to pixel-perfect HTML/CSS through iterative refinement with automated visual comparison.
Input: Design image (PNG/JPG)
Output: HTML/CSS code + comparison report
Process:
1. Analyze design → Generate initial HTML
2. Render HTML → Compare with original
3. Generate diff report → Optimize HTML
4. Repeat 5 times or until 95% match
5. Output final code + report
Command: /design-to-html
Actions:
Example prompt:
Analyze this design mockup and generate HTML/CSS code that recreates it.
Design dimensions: {width}x{height}px
Key elements detected:
- Layout type: [grid/flex/block]
- Primary colors: [list]
- Font styles: [list]
- Spacing patterns: [list]
Generate complete HTML with inline CSS.
Run comparison script for each iteration:
node scripts/compare.js <original-image> <html-file> <output-dir> <iteration>
Script outputs:
rendered_.png - HTML screenshotdiff_.png - Visual difference mapreport_.json - Comparison metricsComparison metrics:
matchScore - Pixel similarity percentagediffPixels - Number of mismatched pixelsissues - List of detected problemsReport structure (passed to model):
{
"iteration": 2,
"matchScore": 78.5,
"diffPixels": 21500,
"issues": [
{
"type": "color",
"location": {"x": 100, "y": 200, "w": 50, "h": 30},
"description": "Button background color mismatch: expected #FF5733, got #FF5722",
"severity": "medium"
},
{
"type": "spacing",
"location": {"x": 150, "y": 100, "w": 200, "h": 50},
"description": "Padding mismatch: expected 20px, got 15px",
"severity": "high"
}
]
}
Model prompt template:
## Iteration {iteration}/{maxIterations}
**Current match score**: {matchScore}%
**Target**: {threshold}%
**Issues detected**:
{issuesFormatted}
**Visual difference**: See diff_{iteration}.png
**Previous HTML**:
{previousHtml}
**Optimization instructions**:
1. Fix color mismatches (use exact hex values)
2. Correct spacing/padding issues
3. Adjust layout positioning
4. Match font sizes and weights
Output optimized HTML code only.
Completion criteria:
Output package:
final.html - Final HTML/CSS codecomparison_report.md - Iteration historyrendered_final.png - Final screenshotdiff_final.png - Final comparisontimeline/ - All iteration screenshotsRender HTML to PNG screenshot using Puppeteer.
node scripts/render.js <html-file> <output-image> [--width 1920] [--height 1080]
Pixel-level comparison using pixelmatch.
node scripts/compare.js <original> <rendered> <diff-output> [--threshold 0.1]
Analyze design image structure.
node scripts/analyze.js <image-file> <output-json>
Run full iteration pipeline.
node scripts/pipeline.js <original-image> [--threshold 95] [--iterations 5] [--output-dir ./output]
Install dependencies:
cd ~/.openclaw/skills/design-to-html
npm install
Dependencies:
Input: button.png (200x50px)
Iterations: 3
Final score: 96.2%
Time: ~25s
Input: card.png (400x300px)
Iterations: 5
Final score: 91.8%
Time: ~45s
Input: landing-page.png (1920x1080px)
Iterations: 5
Final score: 87.5%
Time: ~90s
共 1 个版本