Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Convert UI screenshots into working HTML/CSS/React/Vue code. Detects design patterns, components, and generates responsive layouts. Use this when users provide screenshots of websites, apps, or UI designs and want code implementation.
.claude/skills/onewave-ai-screenshot-to-code/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-22 | ✓→✗ | ▼ Worse | 282% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 11% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 58% | 0% |
Convert UI screenshots into production-ready code with accurate styling and structure.
Given a screenshot of a UI design:
Examine the image carefully and identify:
Ask which framework is preferred:
Default: If not specified, use React with Tailwind CSS for modern designs, or plain HTML/CSS for simple pages.
Create the implementation:
For React/Vue:
For HTML/CSS:
Critical requirements:
min(), max(), clamp() for fluid typography where appropriateProvide:
Structure React + Tailwind output like this:
jsximport React from 'react'; export default function ComponentName() { return ( <div className="..."> {/* Component structure */} </div> ); }
Always include:
Navigation Bars: Flexbox with space-between, sticky positioning Card Grids: CSS Grid with auto-fit/auto-fill for responsiveness Hero Sections: Full-height with centered content, background images Forms: Proper labels, validation states, accessible inputs Modals: Fixed positioning, backdrop, focus management
When the screenshot is unclear or ambiguous:
Input: Screenshot of a landing page with hero section, feature cards, and footer
Response:
Aim to produce code so clean and accurate that it could be deployed immediately with minimal modifications.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 33,388 | 27,783 | -17% | 1 | 1 | 0% | 7,330 | 6,818 | -7% | 0 | 0 | — |
case-02 | fail→pass | 34,556 | 31,307 | -9% | 1 | 1 | 0% | 8,258 | 7,946 | -4% | 0 | 0 | — |
case-03 | fail→fail | 36,383 | 35,829 | -2% | 1 | 1 | 0% | 8,250 | 9,157 | +11% | 0 | 0 | — |
case-04 | pass→pass | 38,568 | 35,605 | -8% | 1 | 1 | 0% | 8,243 | 9,150 | +11% | 0 | 0 | — |
case-05 | pass→pass | 12,718 | 15,194 | +19% | 1 | 1 | 0% | 2,664 | 4,213 | +58% | 0 | 0 | — |
case-06 | fail→pass | 9,567 | 7,789 | -19% | 1 | 1 | 0% | 1,738 | 2,305 | +33% | 0 | 0 | — |
case-07 | pass→pass | 15,677 | 16,631 | +6% | 1 | 1 | 0% | 3,034 | 4,272 | +41% | 0 | 0 | — |
case-08 | pass→pass | 12,123 | 13,543 | +12% | 1 | 1 | 0% | 1,977 | 3,259 | +65% | 0 | 0 | — |
case-09 | pass→pass | 9,877 | 13,966 | +41% | 1 | 1 | 0% | 1,726 | 3,647 | +111% | 0 | 0 | — |
case-10 | pass→pass | 10,187 | 12,830 | +26% | 1 | 1 | 0% | 1,664 | 3,260 | +96% | 0 | 0 | — |
case-11 | pass→pass | 13,203 | 22,350 | +69% | 1 | 1 | 0% | 2,820 | 5,813 | +106% | 0 | 0 | — |
case-12 | pass→pass | 15,129 | 14,743 | -3% | 1 | 1 | 0% | 2,759 | 3,625 | +31% | 0 | 0 | — |
case-13 | pass→pass | 16,815 | 22,648 | +35% | 1 | 1 | 0% | 3,189 | 5,824 | +83% | 0 | 0 | — |
case-14 | fail→fail | 35,690 | 20,411 | -43% | 1 | 1 | 0% | 8,222 | 5,353 | -35% | 0 | 0 | — |
case-15 | pass→pass | 9,131 | 12,181 | +33% | 1 | 1 | 0% | 1,813 | 3,384 | +87% | 0 | 0 | — |
case-16 | pass→pass | 13,281 | 10,293 | -22% | 1 | 1 | 0% | 2,393 | 2,916 | +22% | 0 | 0 | — |
case-17 | pass→pass | 17,749 | 15,878 | -11% | 1 | 1 | 0% | 2,677 | 3,977 | +49% | 0 | 0 | — |
case-18 | pass→pass | 10,326 | 13,292 | +29% | 1 | 1 | 0% | 2,014 | 3,776 | +87% | 0 | 0 | — |
case-19 | pass→pass | 12,343 | 6,727 | -45% | 1 | 1 | 0% | 2,015 | 2,032 | +1% | 0 | 0 | — |
case-20 | pass→pass | 11,487 | 13,331 | +16% | 1 | 1 | 0% | 2,239 | 3,632 | +62% | 0 | 0 | — |
case-21 | pass→pass | 9,810 | 26,835 | +174% | 1 | 1 | 0% | 2,057 | 5,305 | +158% | 0 | 0 | — |
case-22 | pass→fail | 14,000 | 46,464 | +232% | 1 | 1 | 0% | 2,342 | 8,948 | +282% | 0 | 0 | — |
case-23 | pass→pass | 14,283 | 15,328 | +7% | 1 | 1 | 0% | 3,224 | 4,305 | +34% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +4 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.