screenshot-to-component · git:20261025.7c7d700 · 2026-10-25 · sha256 0a462c759fae985b
screenshot-to-component git:20261025.7c7d700A
Immutable. This exact content never changes and is served at /api/v1/blob/0a462c759fae985b.
--- name: screenshot-to-component description: Converts a screenshot, mockup, or Figma export into a production-ready UI component that reuses the project's existing design system (React/Next, Vue, Svelte, React Native, Flutter, or SwiftUI with Tailwind, CSS modules, or a component library), so the result is responsive and accessible. Use when the user shares an image of a UI and asks to build, implement, or recreate it in code. --- # Screenshot to Component From a picture to code that looks like *your* team wrote it. ## 1. Learn the project's UI conventions first - Framework and styling: Tailwind (read `tailwind.config.*` for theme tokens), CSS modules, styled-components, a component library (shadcn/ui, MUI, Chakra, Ant), React Native StyleSheet, Flutter `ThemeData`. - **Existing components** to reuse: `Button`, `Card`, `Input`, `Avatar`, `Icon`, `Modal`... Search `components/` and `ui/`. - Design tokens: colors, spacing scale, radii, typography, dark mode, and the icon library in use (lucide, heroicons...). - File naming, export style, prop typing and the i18n approach. ## 2. Analyse the image Break it into a component tree before writing any code: ```text PricingCard ├── Header (plan name, badge "Popular") ├── Price (amount, period) ├── FeatureList (icon + text) ×5 └── CTA Button (primary) ``` Note the layout (flex or grid, alignment, gaps), the states shown (hover, active, disabled, empty, loading), and which content is static and which should be props. ## 3. Build - **Reuse existing components and tokens.** Map the colors and spacing in the image to the *nearest theme token* rather than hard-coding hex or pixel values. - Turn dynamic content into typed props with sensible defaults. Repeated items become arrays. - **Responsive**: mobile first, with breakpoints that follow the project's conventions. - **Accessible**: semantic elements, labels and alt text, keyboard focus states and sufficient contrast. - Use the project's icon library. Never embed raster screenshots of icons. - Use realistic placeholder content, and route strings through i18n if the project uses it. ## 4. Verify - Type-check and lint. If Storybook exists, add a story with the main states. Otherwise add a usage example. - If a dev server or browser tool is available, render the component and compare it with the screenshot, then fix spacing and alignment differences. - Report which existing components were reused, the assumptions you made (exact fonts, unclear interactions) and the pieces the user should confirm. ## Rules - Don't add new UI libraries or fonts without asking. - Pixel-perfect matters less than following the design system. If they conflict, follow the system and mention the difference.