> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Turn a Figma design into an interactive app

> Import a Figma frame into Replit, turn it into a React app, test the result, and refine it into an interactive experience.

export const AiPrompt = ({children}) => {
  return <CodeBlock className="relative block font-sans whitespace-pre-wrap break-words">
      <div className="pr-7">
        {children}
      </div>
    </CodeBlock>;
};

⏰ *Estimated time: 15 minutes*

A Figma design shows what the experience should look like. Replit can turn a Figma frame into a React app that you can test, refine, and share.

You will use **FitStart** as the example: a Figma frame for a fitness tracker dashboard that needs a working workout form, progress card, weekly goal, and mobile layout.

<Frame>
  <img src="https://mintcdn.com/replit/aRjqxvnoTuPani4_/images/fitstart/turn-mockup-into-app/figma-source.png?fit=max&auto=format&n=aRjqxvnoTuPani4_&q=85&s=1aa070bf0d24decf4c9924c6cf80510b" alt="The source Figma frame for the FitStart fitness tracker showing the dashboard, profile, and supporting screens that you will turn into an interactive Replit app" width="1920" height="1080" data-path="images/fitstart/turn-mockup-into-app/figma-source.png" />
</Frame>

## What you'll learn

You will learn how to:

* Prepare a Figma frame for better import results.
* Import a Figma frame into Replit.
* Check what Replit preserved from the design.
* Refine behavior, responsiveness, and polish after import.
* Use Agent, Canvas, and the Visual Editor when the imported app needs changes.

## Before you start

You need:

* A [Replit account](https://replit.com).
* A Figma file with the frame you want to import.
* Access to connect your Figma account.
* The URL for the exact Figma frame you want to turn into an app.

Figma import limits are set by Figma — for exact limits and account requirements, check Figma's own developer documentation.

## Import the Figma frame

Use the Replit import flow to turn the frame into a React app.

<Frame>
  <img src="https://mintcdn.com/replit/aRjqxvnoTuPani4_/images/fitstart/turn-mockup-into-app/figma-import-page.png?fit=max&auto=format&n=aRjqxvnoTuPani4_&q=85&s=381f46b4437197d7caceb78090467d55" alt="The Replit import page with the Figma Design tile highlighted; selecting it opens the Figma import flow that turns a frame into a React app" width="720" height="450" data-path="images/fitstart/turn-mockup-into-app/figma-import-page.png" />
</Frame>

<Steps>
  <Step title="Open Replit import">
    Go to [replit.com/import](https://replit.com/import).
  </Step>

  <Step title="Select Figma Design">
    Choose **Figma Design** and connect your Figma account.
  </Step>

  <Step title="Copy the frame URL">
    In Figma, select the exact frame you want to import and copy its URL.
  </Step>

  <Step title="Paste and import">
    Paste the frame URL into Replit and select **Import**.
  </Step>
</Steps>

### Or attach Figma directly to a prompt

If you'd rather hand the frame to Agent alongside a build prompt, use the prompt composer's attachment menu instead of the import wizard.

<Steps>
  <Step title="Open Replit and focus the prompt box">
    Go to [replit.com](https://replit.com). The prompt composer is on the home screen.
  </Step>

  <Step title="Open the attachment menu">
    Select the **+** button on the prompt composer to open the **Add attachment** menu.

    <Frame>
      <img src="https://mintcdn.com/replit/aRjqxvnoTuPani4_/images/fitstart/turn-mockup-into-app/figma-prompt-plus.png?fit=max&auto=format&n=aRjqxvnoTuPani4_&q=85&s=4678037001e3566c12af0cacf342edca" alt="The Replit prompt composer with the plus button highlighted; selecting it opens the Add attachment menu where you can import a Figma design" width="760" height="320" data-path="images/fitstart/turn-mockup-into-app/figma-prompt-plus.png" />
    </Frame>
  </Step>

  <Step title="Choose Import a Figma design">
    Pick **Import a Figma design** and paste the URL of the exact Figma frame you want to build from.
  </Step>

  <Step title="Describe what to build">
    Type a short prompt that tells Agent what to do with the design — for example, what should be interactive, what should stay close to the visuals, and what desktop and mobile behavior you expect. Submit when ready.
  </Step>
</Steps>

Agent imports the frame and builds an interactive app based on your prompt. Test it in Preview when the build finishes.

<Frame>
  <img src="https://mintcdn.com/replit/aRjqxvnoTuPani4_/images/fitstart/turn-mockup-into-app/figma-build-result.png?fit=max&auto=format&n=aRjqxvnoTuPani4_&q=85&s=9f0643e91740c5d403d8bc92a1914712" alt="The interactive FitStart app built by Agent from the Figma frame, running in a browser tab with stat cards, a Log Workout form, today's entries, and a 7-day trend chart" width="1440" height="850" data-path="images/fitstart/turn-mockup-into-app/figma-build-result.png" />
</Frame>

## What Replit imports

Replit uses the Figma frame to create a React project. The import can include:

* Theme and component styling.
* Images and icon assets.
* App scaffolding for a React project.

The import gives you a working starting point. You should still test behavior, responsiveness, and any interactions the design does not fully define.

## Check what Agent built

After import, open Preview and compare the app to the Figma frame.

<Frame>
  <img src="https://mintcdn.com/replit/aRjqxvnoTuPani4_/images/fitstart/turn-mockup-into-app/figma-check-what-agent-built.png?fit=max&auto=format&n=aRjqxvnoTuPani4_&q=85&s=813cffb55c2a94d86eebbd92b188ea07" alt="The imported FitStart Personal Fitness Trainer landing page running in Preview alongside Agent's checkpoint history, showing the hero, money-back guarantee badge, and stat row Agent built from the Figma frame" width="3452" height="1988" data-path="images/fitstart/turn-mockup-into-app/figma-check-what-agent-built.png" />
</Frame>

Visual checks:

* Layout matches the Figma frame closely enough.
* Colors, typography, spacing, and assets are preserved.
* Important images and icons appear.
* The app works at desktop and mobile sizes.

Interaction checks:

* Buttons and links do what you expect.
* Forms, menus, tabs, or navigation are present if needed.
* The app still works after refresh.
* Anything missing is clear enough to ask Agent to add.

## Refine the app after import

Some behavior may need to be added after import. Use Agent when the change affects interactions, data, multiple screens, or hidden logic.

For FitStart, ask Agent to make the imported design interactive:

<AiPrompt>
  Review this imported FitStart app.<br />
  Keep the visual design close to the Figma frame.<br />
  Make the workout form interactive: a visitor should choose a workout type, enter minutes and a note, then add the workout.<br />
  After submission, update today's workout list and total minutes.<br />
  Preserve the desktop layout and improve the mobile layout if needed.
</AiPrompt>

Use the [Visual Editor](/learn/design/visual-editor) when the change is mostly text, color, spacing, layout, or image polish.

Use [Canvas](/learn/design/canvas) when you want to annotate visual feedback, compare variants, or show what should change directly on the design.

### Compare layouts and annotate in Canvas

Canvas turns the imported app into a free-form board where you can ask Agent for alternate layouts and mark up the design with text and sketches.

<Steps>
  <Step title="Open Canvas">
    Select **Canvas** in the workspace pane header to switch the right pane from Preview to Canvas.

    <Frame>
      <img src="https://mintcdn.com/replit/aRjqxvnoTuPani4_/images/fitstart/turn-mockup-into-app/figma-canvas-button.png?fit=max&auto=format&n=aRjqxvnoTuPani4_&q=85&s=2bb7f136351d5fe48d7f8364ac5066f3" alt="The Replit workspace pane header with the Canvas tab highlighted next to Preview and Tools & files" width="720" height="450" data-path="images/fitstart/turn-mockup-into-app/figma-canvas-button.png" />
    </Frame>
  </Step>

  <Step title="Try different layouts">
    Click your imported mockup, select **Reimagine**, and choose **Try different layouts**. Agent suggests alternate layouts that keep the content but rearrange the visual hierarchy.

    <Frame>
      <img src="https://mintcdn.com/replit/aRjqxvnoTuPani4_/images/fitstart/turn-mockup-into-app/figma-canvas-reimagine.png?fit=max&auto=format&n=aRjqxvnoTuPani4_&q=85&s=ebf02908edafd07e2a8b76f694a54332" alt="The Reimagine menu open on a Canvas mockup with the Try different layouts option highlighted" width="720" height="450" data-path="images/fitstart/turn-mockup-into-app/figma-canvas-reimagine.png" />
    </Frame>
  </Step>

  <Step title="Review the suggested layouts">
    Wait for Agent to generate the alternates, then zoom out to review them next to the original mockup.

    <Frame>
      <img src="https://mintcdn.com/replit/aRjqxvnoTuPani4_/images/fitstart/turn-mockup-into-app/figma-canvas-layouts.png?fit=max&auto=format&n=aRjqxvnoTuPani4_&q=85&s=0611161518c09408ea9b4790c541938a" alt="The Canvas with the imported FitStart mockup and Agent's layout suggestions in the chat panel" width="1440" height="900" data-path="images/fitstart/turn-mockup-into-app/figma-canvas-layouts.png" />
    </Frame>
  </Step>

  <Step title="Annotate with Text and Draw">
    Use **Text** to add notes on the canvas.

    <Frame>
      <img src="https://mintcdn.com/replit/aRjqxvnoTuPani4_/images/fitstart/turn-mockup-into-app/figma-canvas-text-tool.png?fit=max&auto=format&n=aRjqxvnoTuPani4_&q=85&s=d6b2a2422a9199cfa995ddee8f5a6deb" alt="The Canvas annotation toolbar with the Text tool highlighted" width="720" height="360" data-path="images/fitstart/turn-mockup-into-app/figma-canvas-text-tool.png" />
    </Frame>

    Use **Draw** to sketch arrows or shapes that point at the parts you want to change.

    <Frame>
      <img src="https://mintcdn.com/replit/aRjqxvnoTuPani4_/images/fitstart/turn-mockup-into-app/figma-canvas-draw-tool.png?fit=max&auto=format&n=aRjqxvnoTuPani4_&q=85&s=44811ad4c1579c80dd6e1999c97de9ae" alt="The Canvas annotation toolbar with the Draw tool highlighted" width="720" height="360" data-path="images/fitstart/turn-mockup-into-app/figma-canvas-draw-tool.png" />
    </Frame>
  </Step>

  <Step title="Send your annotations to Agent">
    With the notes in place, ask Agent to apply the feedback to the imported app.

    <Frame>
      <img src="https://mintcdn.com/replit/aRjqxvnoTuPani4_/images/fitstart/turn-mockup-into-app/figma-canvas-annotated.png?fit=max&auto=format&n=aRjqxvnoTuPani4_&q=85&s=6ba511fedb00d712178d5a144359ef0d" alt="The imported FitStart mockup on Canvas with a text annotation pointing at the hero stat row" width="1000" height="800" data-path="images/fitstart/turn-mockup-into-app/figma-canvas-annotated.png" />
    </Frame>
  </Step>
</Steps>

<AiPrompt>
  Use my Canvas annotations to refine the imported FitStart app.<br />
  Keep the workout form behavior unchanged.<br />
  Apply the notes to the progress card, weekly goal area, and mobile spacing only.<br />
  Then test that adding a workout still updates today's list and total minutes.
</AiPrompt>

## Use Figma links in Agent when needed

After import, you can paste Figma links into Agent chat when you want Agent to inspect a specific frame or layer, extract design data, or compare the implementation against the design.

A Figma Dev or Full seat is recommended for Agent chat features. For details, see [Figma MCP Integration](/references/mcp/figma).

Congratulations on finishing the tutorial! You turned a Figma frame into an interactive Replit app and refined it into something you can share and test.

## Next steps

<CardGroup cols={2}>
  <Card title="Visual Editor" icon="wand-magic-sparkles" href="/learn/design/visual-editor">
    Polish small visual details like text, color, spacing, and images.
  </Card>

  <Card title="Canvas" icon="palette" href="/learn/design/canvas">
    Compare visual directions and annotate feedback directly on the design.
  </Card>

  <Card title="Add a database" icon="database" href="/build/add-database">
    Save form data so it persists across refreshes.
  </Card>

  <Card title="Add login" icon="lock" href="/build/add-login">
    Put private screens behind authentication.
  </Card>

  <Card title="Add a custom domain" icon="globe" href="/build/add-custom-domain">
    Give reviewers a public URL to try the app.
  </Card>

  <Card title="Collaborate in a team workspace" icon="users" href="/references/collaboration/team-workspaces">
    Invite teammates to build on the imported app together.
  </Card>
</CardGroup>

## Related

* [Figma MCP Integration](/references/mcp/figma)
* [Canvas](/learn/design/canvas)
* [Visual Editor](/learn/design/visual-editor)

## Credits

The example design used in this guide is the [Personal Fitness Trainer Template](https://www.figma.com/community/file/1569006333493544411) on Figma Community.
