Can HTML.to.design Import a Website Behind a Login?
Yes. Capture the page with the html.to.design browser extension while you are logged in, then import the capture through its Figma plugin.
Yes. You can import a page behind a login into Figma with html.to.design. Sign in to the page in your browser, capture it with the html.to.design browser extension, then import that capture using the html.to.design Figma plugin. The regular URL import is for public pages; for authenticated pages, use the extension capture flow. See the official private-page instructions.
How to import a private page
- Install the html.to.design browser extension and Figma plugin. The private-page workflow uses both.
- Sign in to the website in your browser. Navigate to the exact page and state you want to bring into Figma. If the site requires a VPN, connect to it first.
- Open the extension while viewing the page. Choose the viewport and theme you need, then capture. The extension captures the page available in your authenticated browser session.
- Choose how to hand off the capture. Send it directly to the Figma plugin, or download a local
.h2dfile. - Import it in Figma. For direct transfer, open the html.to.design plugin and find the capture in its Extension tab. For a file, drop the
.h2dfile into the plugin or use its file picker. - Choose import settings and resolve fonts. Select the options you need, map any missing fonts if prompted, and start the import.
The result is an editable Figma representation of the captured page. It reflects the page state that was visible when captured; it does not grant access to other pages, roles, or states in the website.
Choose direct transfer or a local .h2d file
| Handoff | What to do | Useful when |
|---|---|---|
| Send to the Figma plugin | Be logged in to Figma, select the direct-send option in the extension, capture, then open the plugin’s Extension tab. | You want the fewest manual steps and are comfortable using the direct handoff. |
| Download .h2d locally | Choose local download, then drag the file into the plugin or select it with the plugin’s file picker. | You want a local file handoff or need to move the capture into Figma later. |
html.to.design recommends downloading the capture as a local .h2d file if you want the captured data to remain off its servers. That is the vendor’s recommendation, not an independent security audit or guarantee. Review the vendor’s explanation and your organization’s data-handling requirements before capturing sensitive content.
What the capture can and cannot do
- It can capture a page you can access in the browser. The extension documentation covers private and local pages, logged-in session states, and pages protected by a CAPTCHA after you solve the challenge in your browser.
- It uses the current browser state. If the page needs a particular account, role, tenant, selected tab, expanded panel, or loaded data, establish that state before capturing.
- It is a design import, not an authentication bypass. You must already have permission to view the target page. The extension cannot supply credentials or expose content your account cannot access.
- It is not the same as entering a private URL in the Web tab. Use the extension for pages that depend on your signed-in browser session.
Options and practical capture choices
- Viewport: capture the viewport or device dimensions that fit the design task. If you need multiple responsive states, capture each relevant viewport separately.
- Theme: choose the theme needed for the page state, where the extension offers that choice. Make sure the page itself is displaying the intended theme before capturing.
- Page state: wait for the relevant content to load and set up menus, tabs, filters, or expanded sections first. For pages that populate content as you scroll, check the captured result and recapture if parts are absent.
- Import settings and fonts: choose the plugin’s import settings for the result you need. If a font is missing, map it during import; the replacement can change text wrapping and layout.
- CAPTCHA: solve the challenge yourself in the browser first, then capture the accessible page. A challenge that remains unresolved may be what gets captured.
Privacy and handling sensitive pages
A capture of an authenticated page may contain personal, customer, or internal business information. Treat the resulting design and .h2d file according to the same rules as the source page. Avoid capturing secrets or regulated data unless your organization has approved the workflow. If keeping the capture local is important, use the local-file handoff and follow your own device, storage, and sharing controls. The vendor says this option keeps the captured data from reaching its servers; consult its current private-page guidance for the exact claim.
Or skip the browser setup
If you need a screenshot for documentation, review, or a visual reference rather than editable Figma layers, ScreenshotNeo can capture a page through one API request. It is a screenshot API, so it does not replace html.to.design’s conversion of a capture into editable Figma layers. ScreenshotNeo removes cookie banners, popups, and chat widgets before the shot; bot checks, blank pages, and failed loads are never billed; and its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. See the ScreenshotNeo API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
timeout=90,
)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', res);
Replace YOUR_API_KEY with your ScreenshotNeo key and change the target URL as needed. Keep the key on a trusted server rather than exposing it in public client-side code. Create a free ScreenshotNeo account for 1,000 screenshots a month with no card.
Troubleshooting
| Symptom | Likely cause | What to try |
|---|---|---|
| The capture shows a login screen. | The browser was signed out, the session expired, or the extension captured a different tab. | Sign in again, confirm the target page is open in the active tab, then capture again. |
| The page is inaccessible even though it works at home. | The page depends on a VPN or network access rule. | Connect to the required VPN and verify the page loads in that same browser before opening the extension. |
| The CAPTCHA or bot-check screen appears in the design. | The challenge was not completed before capture, or access was still blocked. | Complete the challenge in the browser, wait until the intended page appears, then recapture. |
| The direct capture does not appear in Figma. | The direct-send path requires being logged in to Figma, or the plugin is not open/ready. | Confirm the Figma session, open the html.to.design plugin, and check its Extension tab. Alternatively download the .h2d file and import it locally. |
| The plugin will not load the capture. | The wrong file may have been selected, or the download may be incomplete. | Use the generated .h2d file and drag it into the plugin, or select it through the plugin’s file picker. |
| Some content, fonts, or layout differ. | The content had not loaded, a font is unavailable, or the page uses dynamic or responsive behavior. | Wait for content and images to settle, set the desired viewport and state, recapture, and map missing fonts during import. Check the result at the viewport you captured. |
| The capture contains sensitive information. | The visible page included data that should not be shared or uploaded. | Stop and handle or delete the artifact under your organization’s policies. For future captures, use the local .h2d option if appropriate and restrict access to the file. |
Performance, reliability, and cost considerations
This workflow captures what the browser has rendered, so completion depends on the page loading and the authenticated session remaining valid. Heavy pages, delayed API responses, lazy-loaded content, and expiring sessions can affect what appears in the capture. For repeatable design work, use a stable test account and data set where permitted, keep the VPN connection active, and capture after the page reaches the state you need.
The research sources do not establish a current price or import quota for html.to.design, so check the vendor’s current plan information before relying on a quota or cost estimate. Extension and privacy details can change; the reviewed privacy policy was dated January 15, 2026. The Chrome Web Store listing was reported in the research dossier as version 0.0.206, updated August 31, 2026; verify the live listing before relying on version details.
FAQ
Can I import a page behind a VPN?
Yes, if you can open it in the authenticated browser while connected to the VPN. Capture it with the extension, then import the capture in Figma.
Do I need to give html.to.design my website password?
The documented workflow is to sign in to the website in your browser and capture the page there. Do not share your password in the article workflow; follow your organization’s policies for browser extensions and captured data.
Can I import a page after solving its CAPTCHA?
The extension documentation describes capturing CAPTCHA-protected pages after you solve the challenge in your browser. The page must be accessible before capture.
Does the screenshot API produce editable Figma layers?
No. ScreenshotNeo returns an image or PDF. Use html.to.design when your goal is to turn a webpage capture into editable Figma content.


