webflow-development
Build and style websites in the Webflow Designer using the Webflow MCP Bridge and browser automation. Use when the user wants to: (1) create or style pages/sections/elements in Webflow, (2) transfer a local web project (React, HTML/CSS, Next.js, etc.) to Webflow, (3) implement a Figma design in Webflow, (4) fix styling or layout issues in Webflow, (5) create or manage Webflow components, variables, or CMS collections, (6) work with responsive breakpoints in Webflow, (7) add custom code (Code Embeds) for SVGs, animations, or complex layouts, or (8) publish and QA a Webflow site. Trigger when user mentions "Webflow", "webflow designer", "MCP bridge", or asks to build/style web pages with Webflow tools.
Webflow Development
Build pixel-perfect websites in the Webflow Designer using MCP tools and browser automation.
Prerequisites
- Webflow MCP Bridge Chrome extension connected (provides
mcp__webflow__*tools) - Claude in Chrome extension for browser automation (navigation, clicks, JS injection)
- Webflow Designer open in Chrome with the target site loaded
Core Workflow
- Discover — Use
element_toolto explore the current page structure and find elements by style name - Build — Use
element_builderto create new elements (DivBlock, Heading, Paragraph, LinkBlock, Image, etc.) - Style — Use
style_toolto apply CSS properties at each breakpoint - Content — Use
set_text(viaelement_tool) to set text content on Heading/Paragraph elements - Components — Use
element_builderwithcomponentparam to insert component instances - Code Embeds — Use browser automation to add Code Embed elements for SVGs, custom CSS, or complex patterns
- QA — Use
element_snapshot_toolto capture screenshots, resize browser for responsive checks - Publish — Use
data_sites_toolto publish the site
Tool Quick Reference
| Tool | Purpose |
|---|---|
element_tool | Select/find elements, get element tree, set text, move/delete elements |
element_builder | Create new elements (type, parent, position, component instances) |
style_tool | Read/write CSS properties on style classes at specific breakpoints |
element_snapshot_tool | Capture visual screenshots of elements or pages |
variable_tool | Manage design variables (colors, fonts, spacing) |
data_pages_tool | List/manage pages |
data_sites_tool | Publish site, get site info |
de_page_tool | Page-level settings (title, slug, SEO) |
de_component_tool | Manage components (create, rename, list instances) |
style_tool with get_styles | List all existing style classes on the site |
webflow_guide_tool | Ask Webflow-specific questions (documentation reference) |
Breakpoint System (Critical)
Webflow uses a desktop-first cascade. Styles set on main inherit downward unless overridden.
| Breakpoint | Name | Width | Cascade |
|---|---|---|---|
main | Desktop | ≥992px | Default — all screens inherit |
medium | Tablet | ≤991px | Overrides main |
small | Mobile landscape | ≤767px | Overrides medium |
tiny | Mobile portrait | ≤478px | Overrides small |
xl | Wide | ≥1440px | Extends main upward |
When transferring from a local mobile-first codebase, see references/breakpoints-and-styles.md for the mapping table.
Setting Styles at Breakpoints
style_tool → set_styles:
styleName: "my-element"
breakpoint: "main" # or "medium", "small", "tiny", "xl"
pseudo: "noPseudo" # REQUIRED when updating existing properties on main
properties:
font-size: "18px"
color: "#1A2332"
Known Gotchas (Must-Know)
pseudo: "noPseudo"is required when updating existing properties onmainbreakpoint. Without it, the value silently fails to change.overflowis a shorthand — useoverflow-xandoverflow-yseparately.TextBlocktype creates a DivBlock that does NOT supportset_text. UseHeadingorParagraphtypes for text elements.element_builderwithcomponent: ""(empty string) causes timeouts. Always pass a valid component ID or omit the parameter.- Large element trees —
element_toolwithget_elementson complex pages can return 100K+ characters. Filter by style name or save to file and parse with jq/Python. - Designer in preview mode — URLs with
workflow=sitePreviewblock style edits. Navigate to the designer URL without this parameter. - MCP connection drops — If you get "Unable to connect to Webflow Designer", navigate to the designer URL with the
?app=parameter to reconnect the MCP Bridge. - Inline styles override CSS — Some Webflow interactions (e.g., animations) leave stuck inline styles like
transform: translate3d(...). Override with!importantin a Code Embed.
For the complete gotchas reference with solutions, see references/gotchas.md.
Section Container Pattern
Every page section should include container constraints to prevent content from touching viewport edges:
- main:
max-width: 1200px,margin-left: auto,margin-right: auto - medium:
padding-left: 40px,padding-right: 40px - small:
padding-left: 20px,padding-right: 20px
Workflow: Transferring a Local Project to Webflow
When the user has a local web project (React, Vue, HTML/CSS, etc.) and wants to replicate it in Webflow:
- Read the local component (TSX/HTML + CSS) to understand structure, styles, and content
- Map CSS variables to pixel values at each breakpoint (resolve
var(--x)to actual values) - Map local breakpoints to Webflow breakpoints (see breakpoint mapping reference)
- Build the element tree in Webflow using
element_builder - Apply styles using
style_toolwith resolved pixel values at each Webflow breakpoint - Set text content using
element_tool→set_text - Handle SVGs/custom code via Code Embed (see references/code-embeds-and-svgs.md)
- QA — screenshot and compare with local dev site
For the full detailed guide, see references/local-to-webflow.md.
Workflow: Building from Scratch (Figma or No Design)
- Establish design tokens — Create Webflow variables for colors, fonts, spacing via
variable_tool - Build page structure — Create sections, containers, grids via
element_builder - Style top-down — Start with
mainbreakpoint, then override formedium,small,tiny - Componentize repeating patterns — Use
de_component_tool→transform_element_to_component - Add interactions/animations — Use Code Embeds for CSS animations, or Webflow's native interactions
- Responsive QA — Check each breakpoint, screenshot at 1440px, 992px, 768px, 480px, 375px
Workflow: Creating Reusable Components
- Build and style the element as a regular element first
- Select the root element via
element_tool - Use
de_component_tool→transform_element_to_componentwith a name - Insert instances on other pages via
element_builderwithcomponent: "<component-id>" - Override text content on instances via
element_tool→set_text
Using Design Variables
Prefer Webflow variables over hardcoded values for consistency:
variable_tool → set_variable:
collection_id: "<collection-id>"
variable_id: "<variable-id>"
value: "#FF4733"
Reference variables in styles:
style_tool → set_styles:
properties:
color: "var(--variable-id)"
Discover existing variables with variable_tool → get_variables.
Reference Files
- references/breakpoints-and-styles.md — Breakpoint mapping table, typography scale patterns, style_tool examples
- references/local-to-webflow.md — Detailed guide for transferring local web projects to Webflow
- references/code-embeds-and-svgs.md — Code Embed insertion, SVG conversion (JSX→HTML), CodeMirror injection, custom CSS patterns
- references/gotchas.md — Complete list of known issues, error messages, and workarounds