Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
The supported way to bring a live website into Figma is to capture it with Figma’s Chrome extension, then paste the capture into a Figma Design canvas or FigJam board. The result is a set of editable Figma layers—not a permanently linked copy of the website. You can capture an entire page or a selected element.
Figma’s general import command is for files such as images, vectors, videos, GIFs, .fig and Sketch files. It is not a general “paste any URL” website converter. Figma Sites documentation describes the opposite direction—turning Figma designs into published sites—so use the browser-capture workflow for website-to-Figma work.
What “import a website” means in Figma
A browser capture reproduces the current rendered state of a page as ordinary Figma layers. You can move, resize and restyle those layers, but the capture is not automatically connected to the site’s code, CMS, component library or future content changes. If the page changes, capture it again.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsFigma lists the Chrome-extension workflow as available on all plans. It also documents separate routes for coded screens in a Figma Make preview and for code-to-canvas workflows; those are useful when your source is already a Figma Make project or code pipeline rather than a public URL.
#1 Best Overall
- HTML CSS Design and Build Web Sites
- Comes with secure packaging
- It can be a gift option
Official workflow: capture a page with Chrome
Before you start
- Use Google Chrome and open the page at the exact route, query string and state you need.
- Sign in to Figma in the desktop app or browser, and open the destination Figma Design file or FigJam board.
- Decide whether you need the whole page or one component. Selecting an element usually produces a cleaner, more manageable file.
- For pages that reveal content only after scrolling, be prepared to scroll through the page before capturing.
Capture and paste
- Open the target webpage in Chrome.
- Run Figma’s Chrome extension from the browser toolbar. If it is hidden, open Chrome’s Extensions menu and pin it for easier access.
- Choose the capture mode for a full page or a particular element, then select the page or element to capture.
- Wait for the capture to finish. Figma places the latest capture on your clipboard.
- Switch to the destination Figma Design canvas or FigJam board, click an empty area to focus it, and paste.
- Expand the resulting layer tree and compare it with the source page before making edits. If nothing appears, focus the canvas and paste again; if necessary, recapture and retry.
The paste operation creates layers at the captured dimensions. Rename the top-level frame immediately if you are collecting several states, such as “Desktop / Home / signed out”.
What remains editable after capture
The capture is not a screenshot flattened into one bitmap. Figma documents support for many common properties:
- Frames: fill and stroke colors, stroke weights, corner radius, padding, gap and opacity.
- Text: text color, font family, font size, weight, line height and letter spacing.
- Other vector layers: fills and strokes.
- Variables: existing color, number and string variables may bind when the names or code syntax match.
Variable binding is opportunistic. Color variables that include opacity are not bound automatically, and scrambled CSS variable names can prevent reliable matches. Captured layers do not automatically become instances of your published library components or inherit your library styles. Plan on a cleanup pass for component replacement, naming and token assignment.
Turn the capture into a maintainable design
- Replace repeated controls with your own library components instead of editing every captured copy.
- Map colors, spacing and typography to your variables after checking that the visual values match.
- Group layers according to their design role—navigation, hero, card, footer—rather than preserving only the browser’s generated nesting.
- Rename text and image layers so another designer can identify them without inspecting the page.
- Keep the untouched capture in a reference page and perform edits on a duplicate.
Improve fidelity before and after capture
Capture the correct browser state
Log in, select the required account or locale, dismiss one-time dialogs and set the viewport before starting. A capture records what Chrome displays at that moment; it will not infer an alternate mobile state or a hidden menu.
Rank #3
Activate reveal-on-scroll content
For pages that load or animate sections as they enter the viewport, scroll to the bottom first, then return to the top and capture. This follows Figma’s guidance for dynamic reveal behavior. If a full-page result is still incomplete, capture the affected section or element separately.
Check responsive behavior manually
A single capture represents one viewport. Capture desktop, tablet and mobile states separately when you need responsive documentation, then place them in clearly labeled frames. Compare line wrapping, navigation changes, spacing and image crops; do not assume one capture contains the site’s responsive rules.
Rank #4
- Brand: Wiley
- Set of 2 Volumes
- A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers
Known limitations and what to do about them
Animated, canvas-rendered or virtualized interfaces
Complex JavaScript animation, scroll-driven effects, HTML <canvas> content and virtualized lists can capture imperfectly. A canvas may arrive as an approximation rather than individually editable objects, while a virtualized list may contain only the rows rendered at capture time. Capture a specific element or static section when you need reliable layers, and document any content that must be recreated manually.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Privileged Chrome pages
The extension cannot capture privileged browser pages, such as Chrome’s internal settings or extension-management screens. Move the content to a normal web URL or use a manually created reference frame instead.
Best Value
Fonts, media and external state
After pasting, inspect typography and media against the source. A browser can display a font or image conditionally, while the resulting layer may need manual replacement or adjustment. Treat the capture as a visual starting point, not proof that every external dependency was transferred.
Alternative ways to bring coded screens into Figma
| Method | Best fit | Main trade-off |
|---|---|---|
| Figma Chrome extension | Live webpage or selected UI element | Animation, canvas rendering, virtualized content and privileged pages have limitations; library component and style mapping is not automatic. |
| Figma Make copy/paste | A coded screen already shown in a Figma Make preview | It is a separate Make workflow, not a general URL importer. |
| Code-to-canvas route | Teams moving coded screens through Figma’s code-to-canvas or MCP workflow | Follow the instructions for that source; it is distinct from browser capture. |
| Third-party saved-file plugin | A process built around an archived webpage | The html2figma publisher describes importing a single MHTML/MHT file or a zipped HTML-and-assets folder. Its guide says direct URL import is unavailable, and a bare HTML file can lose relative images and styles. These are publisher claims, not an independent test. |
Choose the method based on where the source actually lives. Use the extension for a live page, Make copy/paste for a Make preview, code-to-canvas for a code-driven workflow, and a saved-file plugin only when your process can produce a complete archive.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshooting checklist
| Symptom | Likely cause | Fix |
|---|---|---|
| Paste appears to do nothing | The Figma canvas is not focused, or the clipboard capture is stale. | Click the canvas, paste again, then recapture if needed. Confirm that the extension reports a completed capture. |
| Only part of a long page appears | Lazy, reveal-on-scroll or virtualized content was not rendered. | Scroll through the page first; capture the missing section or a specific element instead of relying on one full-page capture. |
| Visual effects look wrong | Animation, canvas rendering or scroll-driven JavaScript is difficult to represent as layers. | Freeze the page at a useful state, capture a simpler container, and recreate the effect manually in Figma. |
| Variables do not bind | Names or code syntax do not match, names were scrambled, or the color variable includes opacity. | Rename variables to match the captured values where appropriate and apply opacity separately. |
| The result is one giant, hard-to-edit structure | The selected scope was too broad for the design task. | Recapture the key element or section, keep the full-page capture as reference, and rebuild repeated patterns with components. |
| The extension cannot access the page | The URL is a privileged Chrome page. | Use a normal web page or recreate the reference manually; privileged pages are outside the extension’s capture scope. |
Quality-control pass for handoff
- Compare the pasted frame with the source at the same viewport width.
- Check heading and body fonts, line height, letter spacing and wrapping.
- Inspect spacing between sections, card gaps, corner radii, borders and shadows.
- Verify interactive states that were not visible in the capture, such as hover, focus, open menus and validation errors.
- Mark content that is dynamic, personalized or loaded from a virtualized list so developers know it was not fully represented.
- Replace duplicated captured controls with library components and apply approved variables.
- Keep source URL, viewport, login state and capture date in the Figma file description.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server if you need repeatable captures in a script or from an AI agent. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups and chat widgets; each step can be disabled. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, and the response identifies the page verdict and billing status in headers.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteOne GET request returns PNG, JPEG, WebP or PDF. The API also supports full-page and CSS-selector captures, device and viewport settings, retina scale, custom CSS and JavaScript, click and wait actions, request blocking, headers, cookies, user agents, authorization, timezone, geolocation, transparent backgrounds, resizing, configurable caching, signed links, asynchronous webhooks, bulk capture and a usage API. Its MCP server exposes take_screenshot, get_page_info and capture_pdf for Claude, Cursor and other MCP clients.
cURL
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
See the ScreenshotNeo documentation for request options and response headers. The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots, and every feature is on every plan. Create a free ScreenshotNeo account to start.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

