К основному содержанию
скилл CX Codex

screenshot-to-code — скилл для Claude Code: код из скриншота

Превращает скриншот, макет или экспорт из Figma в рабочий фронтенд-код и сверяет результат с картинкой. Пригодится, когда есть дизайн, но нет вёрстки.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add OneWave-AI/claude-skills --skill screenshot-to-code -a claude-code
Открыть на GitHub

Что делает screenshot-to-code

Скилл смотрит на изображение интерфейса и собирает по нему код: React + Tailwind CSS v4, Next.js, Vue или обычный HTML/CSS. Сначала пишется короткий спек — регионы макета сверху вниз, цвета в hex, шкала шрифтов, ритм отступов, радиусы. Потом по нему строится вёрстка.

Если вы уже внутри проекта, скилл читает package.json, определяет React, Next или Vue и версию Tailwind, переиспользует существующие компоненты и иконки. Спрашивать не станет, если репозиторий сам всё отвечает. Без проекта одиночный экран собирается в один index.html, многоэкранное приложение — на React + TypeScript + Tailwind v4 с Vite.

После сборки скилл рендерит результат в браузере и сравнивает со скриншотом при той же ширине вьюпорта. Правки идут по убыванию: сначала раскладка и выравнивание, затем отступы, размер и вес шрифта, потом цвет. Для этого нужен Playwright, headless-браузер или браузерный инструмент. Если отрендерить не удалось, скилл скажет, что сверка не сделана, а не выдаст совпадение за факт. В конце — файлы, команда запуска и список допущений: какие шрифты угаданы, какие состояния придуманы, где нужны настоящие ассеты.

Какие задачи решает

  • собрать вёрстку по скриншоту интерфейса
  • перенести макет из Figma в React-компоненты
  • сделать адаптивную версию экрана под мобильный
  • вынести повторяющиеся карточки в компонент с пропсами
  • сверить готовую страницу с исходной картинкой

Примеры запросов агенту

  • вот скриншот дашборда, собери его на React и Tailwind
  • сделай этот макет реальным, стек подхвати из package.json
  • собери страницу по этой картинке и сравни рендер со скриншотом

Как установить screenshot-to-code

1Через Skills CLI (Vercel)

npx skills add OneWave-AI/claude-skills --skill screenshot-to-code -a claude-code

2Вручную: положить файлы

~/.claude/skills/screenshot-to-code/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/screenshot-to-code/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора58

landing-page-copywriter Скилл пишет тексты для лендингов, списков ожидания и страниц тарифов по формулам PAS, AIDA или StoryBrand. Помогает подготовить конверсионные блоки и варианты CTA без написания вёрстки. CX Codex +1 6 500установок code-review-pro Разбирает файлы, модуль, диф или ветку и выдаёт находки по критичности: уязвимости, баги, узкие места, проблемы поддержки. С доказательствами и готовыми правками. CX Codex +1 2 600установок csv-excel-merger Скилл складывает несколько CSV, TSV и Excel в один файл: склеивает, джойнит по ключу, убирает дубли и проверяет арифметику строк. CX Codex +1 1 200установок technical-writer Пишет и переписывает README, туториалы, how-to, runbook и release notes, опираясь на реальный код. Пригодится, когда проект надо объяснить новым разработчикам. CX Codex +1 1 000установок sports-betting-analyzer Разбирает спреды, тоталы и проп-ставки на основе исторических трендов и ситуационной статистики. Подходит для образовательного анализа спортивных рынков. CX Codex +1 808установок css-animation-creator Скилл для ИИ-кодинга, который помогает писать CSS-анимации, переходы, микроинтеракции и анимации по скроллу. Пригодится, когда нужно добавить движение в интерфейс без ручного подбора таймингов. CX Codex +1 805установок job-application-optimizer Скилл подгоняет резюме под конкретную вакансию, пишет сопроводительное письмо и готовит вопросы к собеседованию. Пригодится, когда отклик нужно отправить сегодня. CX Codex +1 698установок knowledge-base-builder Разбирает тикеты поддержки, находит повторяющиеся вопросы и собирает из них статьи базы знаний, туториалы и скрипты для видео. CX Codex +1 667установок

Похожие

figma-design-to-code официальный Figma Помогает перенести выбранный узел Figma в код проекта с учётом его стека и компонентов. Нужен перед вызовом get_design_context. CX Codex GP ChatGPT 30установок extract-design Manavarya09 Скилл анализирует сайт по URL и собирает его дизайн-систему в файлы для разработки и дизайна. Пригодится, когда нужно перенести цвета, шрифты и другие решения сайта в проект. CX Codex +1 2 900установок design-handoff официальный anthropics Скилл превращает макет или его описание в спецификацию для разработчиков: размеры, токены, состояния, брейкпоинты, краевые случаи. CX Codex +1 3 500установок figma-create-design-system-rules официальный openai Генерирует правила дизайн-системы для кодовой базы при переносе макетов из Figma. Помогает агентам соблюдать структуру компонентов и токенов проекта. CX Codex +1 2 900установок figma openai Скилл связывает Claude с Figma MCP: забирает контекст узла, скриншот и ассеты, а потом переводит макет в код проекта. 858установок figma-build awdr74100 Собирает дизайн в подключённом Figma-файле из кода или описания и переиспользует его компоненты, переменные и стили. Пригодится для переноса экранов и UI-компонентов. CX Codex +1 1 300установок

Рядом в теме «Фронтенд и UI»

Всё по теме «Фронтенд и UI» →

Вопросы о screenshot-to-code

Как установить screenshot-to-code в Claude?

Выполните npx skills add OneWave-AI/claude-skills --skill screenshot-to-code -a claude-code. После этого файл скилла лежит в ~/.claude/skills/screenshot-to-code/SKILL.md.

Что делает screenshot-to-code?

Разбирает изображение интерфейса на регионы, цвета и шкалу шрифтов, пишет по ним фронтенд-код и затем сверяет рендер с исходной картинкой.

Какой стек выбирает скилл?

Внутри проекта — тот, что уже есть: React, Next.js или Vue и текущая версия Tailwind. Без проекта одиночный экран идёт в один index.html, приложение — на React + TypeScript + Tailwind v4 с Vite.

Исходный текст

SKILL.md · MIT
---
name: screenshot-to-code
description: Turns a screenshot, mockup, Figma export, or photo of a UI into working front-end code - React + Tailwind CSS v4 by default, or Next.js, Vue, or plain HTML/CSS - matching layout, spacing, colors, and typography, then renders the result and compares it against the image to close visual gaps. Use whenever the user shares an image of a website, app screen, dashboard, component, or wireframe and wants it built, cloned, recreated, or "made real", or says "code this up", "build this design", or "match this screenshot".
---

# Screenshot to Code

Recreate the UI in the image as clean, responsive, accessible code, then check the render against the image.

## Workflow

1. **Pick the target stack.** If the user is inside a project, match it: read `package.json` for React/Next/Vue and the Tailwind version, and reuse existing components, tokens, and icon libraries. Do not ask when the repo already answers it. With no project:
   - Single screen or quick prototype: one self-contained `index.html` (Tailwind via the browser build, see [references/stack-setup.md](references/stack-setup.md)).
   - App or multi-screen: React + TypeScript + Tailwind v4 on Vite.
   - User mentions Next.js, SSR, or routing: Next.js App Router.

2. **Write a short spec before coding.** Looking at the image, note:
   - Layout regions top to bottom (nav, hero, sidebar, grid, footer) and the grid or flex structure of each
   - Design tokens: 3-6 colors as hex, font family guess and the type scale, spacing rhythm (usually multiples of 4px), corner radius, shadow style
   - Repeated components (cards, list rows, buttons) that should be one component with props
   - What the image cannot show: hover and focus states, mobile layout, real data, content below the fold

   Estimate sizes from the image resolution. If the screenshot is 2x (a Retina capture 2880px wide is a 1440px layout), halve the pixel measurements.

3. **Build.** Use semantic elements (`header`, `nav`, `main`, `section`, `button`, `a`), extract repeated pieces into components, and put tokens in one place (Tailwind v4 `@theme` or CSS custom properties) rather than scattering hex codes. Use real text from the image, not lorem ipsum. For images and logos you cannot extract, use sized placeholders with descriptive `alt` text. Use an icon library the project already has (default: `lucide-react`), not hand-drawn SVGs or emoji.

4. **Make it responsive.** Build for the screenshot's viewport first, then define how it collapses: multi-column grids stack, navs become a menu button, and type scales down with `clamp()` or responsive utilities. If the screenshot is mobile, go the other direction.

5. **Render and compare.** If you can run a browser (Playwright, a headless browser, or a browser tool), screenshot the result at the source image's viewport width and compare side by side. See [references/visual-check.md](references/visual-check.md). Fix the largest differences first: layout and alignment, then spacing, then type size and weight, then color. Two or three passes is usually enough; stop when remaining differences are at the level of font rendering.

6. **Deliver.** Provide the files, how to run them, and a short list of assumptions (fonts guessed, states invented, content inferred). Name anything that needs real assets.

## Stack notes

- **React 19**: function components with TypeScript prop types. `propTypes` checks were removed from React 19; do not add them. `forwardRef` is not needed for passing `ref` to function components.
- **Tailwind CSS v4**: configuration lives in CSS. Use `@import "tailwindcss";` and `@theme { --color-brand: #...; }`, not a `tailwind.config.js` and not the v3 `@tailwind base/components/utilities` directives. Custom tokens become utilities automatically (`bg-brand`).
- **Next.js (App Router)**: pages in `app/`, components are Server Components by default. Add `"use client"` only to components that use state, effects, or event handlers.
- **Create React App** is deprecated. Use Vite for plain React.

Setup commands for each stack are in [references/stack-setup.md](references/stack-setup.md).

## Worked example

Input: a 1440px-wide screenshot of a pricing section - centered heading, three plan cards with the middle one highlighted, feature checklists, and a button per card.

Spec:
- Regions: heading block, then a 3-column card grid, max width about 1100px, 24px gap
- Tokens: background `#0B1220`, card `#111A2E`, accent `#3B82F6`, text `#E5E7EB`, muted `#94A3B8`; Inter-like sans; radius 12px
- Components: `PlanCard` with `name`, `price`, `features[]`, `highlighted`, `cta`
- Unknowns: hover states, monthly/annual toggle behavior, mobile layout

Build: `PricingSection.tsx` mapping a `plans` array into `PlanCard`; `highlighted` adds an accent border and a "Most popular" label; `grid-cols-1 md:grid-cols-3`. Check icons from `lucide-react`.

Compare: the first render has cards 40px too tall because of button padding, and the heading weight is 600 against a 700 in the image. Fix both, re-render, and deliver with an assumptions list: toggle not built, font assumed Inter.

## Failure modes

- **Guessing the stack** when the repo already defines it, or mixing Tailwind v3 config into a v4 project.
- **Absolute positioning to force a pixel match.** It breaks on the first resize. Use flex and grid, and accept small differences.
- **One giant component.** Anything that repeats three times is a component with props.
- **Invisible states.** Buttons and links need hover and `focus-visible` styles even though the screenshot cannot show them. Inputs need labels.
- **Color drift.** Sample colors from flat areas of the image, not anti-aliased edges or gradients, and check text contrast meets WCAG AA (4.5:1 for body text).
- **Claiming a match without looking.** If you could not render the result, say the comparison was not done.

© OneWave-AI · MIT · OneWave-AI/claude-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой