Webflow Code Components
Build, define, and import React code components into Webflow using DevLink. Code components let you develop advanced, interactive React components in your codebase and deploy them to Webflow as shared libraries for visual composition on the canvas.
Quick Start
Prerequisite: Webflow Workspace on Freelancer, Core, Growth, Agency, or Enterprise plan (or a site on CMS, Business, or Enterprise). Node.js 20+ and npm 10+.
- Set up your project — Install the CLI and dependencies
- Create a React component — Build your standard React component
- Define the code component — Create a
.webflow.tsx file with declareComponent
- Import to Webflow — Run
npx webflow library share
- Use on canvas — Install the library on a site, then drag and drop components
See references/quick-start.md for a full end-to-end tutorial.
Key Concepts
- Shadow DOM isolation — Styles and DOM are sandboxed per component
- Separate React roots — No shared React Context or state between components. Use URL params, browser storage, Nano Stores, or custom events
- SSR by default — Server-rendered HTML is hydrated on the client. Disable with
ssr: false for browser-only components
declareComponent — Defines how your React component appears in Webflow. See references/hooks.md for the full API
- Prop types — 11 types available (
Text, Rich Text, Text Node, Link, Image, Number, Boolean, Variant, Visibility, Slot, ID)
- Bundling — Webpack bundles your library (50MB max)
Important Notes
- File names are unique identifiers. Renaming a
.webflow.tsx file creates a new component and removes the old one — existing instances on sites will break.
- React Server Components are not supported. Use standard React components only.
- Components can fetch data client-side, but APIs must support CORS and you must never embed API keys in component code.
Reference Documentation
Each reference file includes YAML frontmatter with name, description, and tags for searchability. Use the search script in scripts/search_references.py to find relevant references.
Getting Started
- references/introduction.md: Overview of DevLink and code components
- references/quick-start.md: End-to-end tutorial from setup to canvas
- references/installation.md: CLI installation,
webflow.json config, authentication
Building Components
- references/define-code-component.md:
declareComponent, props, decorators, options
- references/hooks.md:
declareComponent and useWebflowContext hook reference
- references/component-architecture.md: Shadow DOM, SSR, state patterns, data fetching
- references/styling-components.md: CSS in Shadow DOM, site variables, tag selectors
- references/frameworks-and-libraries.md: Tailwind, styled-components, Emotion, Material UI, Shadcn/UI, Sass, Less
Prop Types
- references/prop-types.md: All prop types with usage, return values, and examples
- references/prop-types/text.md: Text — single-line text input
- references/prop-types/rich-text.md: Rich Text — formatted HTML content
- references/prop-types/text-node.md: Text Node — on-canvas editable text
- references/prop-types/link.md: Link — URL with target and preload
- references/prop-types/image.md: Image — asset library image selection
- references/prop-types/number.md: Number — numeric input with range controls
- references/prop-types/boolean.md: Boolean — true/false toggle
- references/prop-types/variant.md: Variant — predefined option dropdown
- references/prop-types/visibility.md: Visibility — show/hide toggle
- references/prop-types/slot.md: Slot — child component insertion
- references/prop-types/id.md: ID — HTML element identifier
Bundling & CLI
- references/cli.md: Webflow CLI commands, flags, CI/CD usage, troubleshooting
- references/bundling-and-import.md: Webpack bundling, CLI import, CI/CD, debugging
Help
- references/faq.md: Frequently asked questions — setup, styling, imports, troubleshooting, performance
Searching References
# List all references with metadata
python scripts/search_references.py --list
# Search by tag (exact match)
python scripts/search_references.py --tag <tag>
# Search by keyword (across name, description, tags, and content)
python scripts/search_references.py --search <query>
# Search only prop type references
python scripts/search_references.py --prop-types
python scripts/search_references.py --prop-types --tag <tag>
python scripts/search_references.py --prop-types --search <query>
Scripts
scripts/search_references.py: Search reference files by tag, keyword, or list all with metadata
1---2name: webflow-code-components3description: Build, define, and import React code components into Webflow via DevLink. Use when creating Webflow code components, configuring declareComponent definitions, working with prop types, styling within Shadow DOM, bundling with Webpack, or troubleshooting DevLink imports.4license: MIT5---67# Webflow Code Components89Build, define, and import React code components into Webflow using DevLink. Code components let you develop advanced, interactive React components in your codebase and deploy them to Webflow as shared libraries for visual composition on the canvas.1011## Quick Start1213> **Prerequisite:** Webflow Workspace on Freelancer, Core, Growth, Agency, or Enterprise plan (or a site on CMS, Business, or Enterprise). Node.js 20+ and npm 10+.14151. **Set up your project** — Install the CLI and dependencies162. **Create a React component** — Build your standard React component173. **Define the code component** — Create a `.webflow.tsx` file with `declareComponent`184. **Import to Webflow** — Run `npx webflow library share`195. **Use on canvas** — Install the library on a site, then drag and drop components2021See `references/quick-start.md` for a full end-to-end tutorial.2223## Key Concepts2425- **Shadow DOM isolation** — Styles and DOM are sandboxed per component26- **Separate React roots** — No shared React Context or state between components. Use URL params, browser storage, Nano Stores, or custom events27- **SSR by default** — Server-rendered HTML is hydrated on the client. Disable with `ssr: false` for browser-only components28- **`declareComponent`** — Defines how your React component appears in Webflow. See `references/hooks.md` for the full API29- **Prop types** — 11 types available (`Text`, `Rich Text`, `Text Node`, `Link`, `Image`, `Number`, `Boolean`, `Variant`, `Visibility`, `Slot`, `ID`)30- **Bundling** — Webpack bundles your library (50MB max)3132## Important Notes3334- **File names are unique identifiers.** Renaming a `.webflow.tsx` file creates a new component and removes the old one — existing instances on sites will break.35- React Server Components are **not** supported. Use standard React components only.36- Components can fetch data client-side, but APIs must support CORS and you must never embed API keys in component code.3738## Reference Documentation3940Each reference file includes YAML frontmatter with `name`, `description`, and `tags` for searchability. Use the search script in `scripts/search_references.py` to find relevant references.4142### Getting Started4344- **[references/introduction.md](references/introduction.md)**: Overview of DevLink and code components45- **[references/quick-start.md](references/quick-start.md)**: End-to-end tutorial from setup to canvas46- **[references/installation.md](references/installation.md)**: CLI installation, `webflow.json` config, authentication4748### Building Components4950- **[references/define-code-component.md](references/define-code-component.md)**: `declareComponent`, props, decorators, options51- **[references/hooks.md](references/hooks.md)**: `declareComponent` and `useWebflowContext` hook reference52- **[references/component-architecture.md](references/component-architecture.md)**: Shadow DOM, SSR, state patterns, data fetching53- **[references/styling-components.md](references/styling-components.md)**: CSS in Shadow DOM, site variables, tag selectors54- **[references/frameworks-and-libraries.md](references/frameworks-and-libraries.md)**: Tailwind, styled-components, Emotion, Material UI, Shadcn/UI, Sass, Less5556### Prop Types5758- **[references/prop-types.md](references/prop-types.md)**: All prop types with usage, return values, and examples59- **[references/prop-types/text.md](references/prop-types/text.md)**: Text — single-line text input60- **[references/prop-types/rich-text.md](references/prop-types/rich-text.md)**: Rich Text — formatted HTML content61- **[references/prop-types/text-node.md](references/prop-types/text-node.md)**: Text Node — on-canvas editable text62- **[references/prop-types/link.md](references/prop-types/link.md)**: Link — URL with target and preload63- **[references/prop-types/image.md](references/prop-types/image.md)**: Image — asset library image selection64- **[references/prop-types/number.md](references/prop-types/number.md)**: Number — numeric input with range controls65- **[references/prop-types/boolean.md](references/prop-types/boolean.md)**: Boolean — true/false toggle66- **[references/prop-types/variant.md](references/prop-types/variant.md)**: Variant — predefined option dropdown67- **[references/prop-types/visibility.md](references/prop-types/visibility.md)**: Visibility — show/hide toggle68- **[references/prop-types/slot.md](references/prop-types/slot.md)**: Slot — child component insertion69- **[references/prop-types/id.md](references/prop-types/id.md)**: ID — HTML element identifier7071### Bundling & CLI7273- **[references/cli.md](references/cli.md)**: Webflow CLI commands, flags, CI/CD usage, troubleshooting74- **[references/bundling-and-import.md](references/bundling-and-import.md)**: Webpack bundling, CLI import, CI/CD, debugging7576### Help7778- **[references/faq.md](references/faq.md)**: Frequently asked questions — setup, styling, imports, troubleshooting, performance7980### Searching References8182```bash83# List all references with metadata84python scripts/search_references.py --list8586# Search by tag (exact match)87python scripts/search_references.py --tag <tag>8889# Search by keyword (across name, description, tags, and content)90python scripts/search_references.py --search <query>9192# Search only prop type references93python scripts/search_references.py --prop-types94python scripts/search_references.py --prop-types --tag <tag>95python scripts/search_references.py --prop-types --search <query>96```9798## Scripts99100- **`scripts/search_references.py`**: Search reference files by tag, keyword, or list all with metadata