Agent skill

Framer Component Best Practices

by framer in framer/plugins

Best practices for building and improving React code components in Framer, a no-code website builder.

MITAuto-check passedFrontend & Design

Install Framer Component Best Practices

skills CLI
$ npx skills add framer/plugins --skill framer-component-best-practices -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install framer/plugins framer-component-best-practices --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/framer/plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/code-link-cli/skills .claude/skills/framer-component-best-practices && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
framer-component-best-practices
GitHub stars
138
Token cost
~1.3k tokens
SKILL.md length
433 words
Files
5 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Best practices for building and improving React code components in Framer, a no-code website builder.

  • Works in 6 steps: Single file, default export - Use named… → Imports - Only react, react-dom, framer,… → Position - Use position: relative on the… → …
  • Reviewing Framer components
  • SKILL.md covers Core Rules, Term Interpretation and Reference Files
  • Reaches framerusercontent.com

What it does

Framer Component Best Practices is an agent skill from framer/plugins. Best practices for building and improving React code components in Framer, a no-code website builder. Covers property controls, animations, accessibility, and platform constraints. Use when creating, editing, or reviewing Framer components, working with ControlType property controls, or building React components for Framer projects.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/EXAMPLES.md`, `references/PROPERTY_CONTROLS.md` and `references/PROPERTY_CONTROL_GUIDE.md`).

It sits in Frontend & Design, covering React components and Accessibility. It works with React. The repository describes itself as: A collection of example Framer Plugins. The licence is MIT.

When your agent uses it

  • Reviewing Framer components
  • Working with ControlType property controls
  • Building React components for Framer projects

Example prompts

  • “/framer-component-best-practices”

Requirements

  • Node.js

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Single file, default export - Use named function syntax (not arrow functions), no named exports
  2. Imports - Only react, react-dom, framer, framer-motion. Import motion from "framer-motion", not "framer"
  3. Position - Use position: relative on the root element, never fixed
  4. SSR - Guard window/document access: if (typeof window !== "undefined")
  5. Annotations - Include @framerSupportedLayoutWidth/Height in a /** */ block comment immediately above the component function
  6. Types - Provide a typed props interface (e.g. MyComponentProps). Avoid NodeJS types like Timeout — use number instead

What it can do on your machine

Read from SKILL.md and the folder at commit 6f9a02e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • framerusercontent.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Framer Component Best Practices loads about 1.3k tokens when it runs, and up to ~16k if it reads all its reference files. Until then it costs about 92 tokens; SKILL.md has 433 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~92
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~16k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from framer/plugins at commit 6f9a02e, republished under its MIT licence (© framer). 433 words, ~1,340 tokens.

Download SKILL.mdSave it as .claude/skills/framer-component-best-practices/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
framer-component-best-practices
description
Best practices for building and improving React code components in Framer, a no-code website builder. Covers property controls, animations, accessibility, and platform constraints. Use when creating, editing, or reviewing Framer components, working with ControlType property controls, or building React components for Framer projects.
license
MIT
metadata.author
framer
metadata.version
1.0

Framer Component Best Practices

Best practices for building and improving React components in Framer with property controls, animations, and accessibility.

Core Rules

Component Structure
tsx
import { addPropertyControls, ControlType } from "framer";
import { motion } from "framer-motion"; // NOT from "framer"

interface MyComponentProps {
  /* typed props */
}

/**
 * @framerSupportedLayoutWidth any-prefer-fixed
 * @framerSupportedLayoutHeight any-prefer-fixed
 */
export default function MyComponent(props: MyComponentProps) {
  // component
}

addPropertyControls(MyComponent, {
  /* controls */
});
Platform Constraints

These will cause errors if violated:

  1. Single file, default export - Use named function syntax (not arrow functions), no named exports
  2. Imports - Only react, react-dom, framer, framer-motion. Import motion from "framer-motion", not "framer"
  3. Position - Use position: relative on the root element, never fixed
  4. SSR - Guard window/document access: if (typeof window !== "undefined")
  5. Annotations - Include @framerSupportedLayoutWidth/Height in a /** */ block comment immediately above the component function
  6. Types - Provide a typed props interface (e.g. MyComponentProps). Avoid NodeJS types like Timeout — use number instead
Layout Annotations
ContentWidthHeight
No intrinsic sizefixedfixed
Text/auto-sizingautoauto
Flexibleany-prefer-fixedany-prefer-fixed

Detect auto vs fixed sizing: check if style.width or style.height is "100%".

Property Controls

To make components configurable in Framer's properties panel, add property controls:

  • To make colors customizable, use ControlType.Color. Reuse the same prop for elements sharing a color.
  • To make text styling customizable, use ControlType.Font with controls: "extended" and defaultFontType: "sans-serif".
  • For images, use ControlType.ResponsiveImage. Set defaults in the component body via destructuring (the control doesn't support defaultValue).
  • Provide a defaultValue for every prop so components render correctly in the Framer canvas. Include at least one item in ControlType.Array controls.
  • ComponentName.defaultProps is not supported in Framer — use defaultValue on the property control instead.
  • Use hidden for conditional visibility: hidden: (props) => !props.showFeature
  • Prefer sliders over steppers unless step values are large.
  • Keep controls focused — make key elements configurable, hardcode the rest.
  • See Property Control Guide for detailed patterns, font styling rules, and recommended default values.
Show full SKILL.md (161 more words)Show less
Image Defaults (in component body)
tsx
const {
  image = {
    src: "https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg",
    alt: "Default",
  },
} = props;
Animation Performance
tsx
import { useIsStaticRenderer } from "framer";
import { useInView } from "framer-motion";

const isStatic = useIsStaticRenderer();
const ref = useRef(null);
const isInView = useInView(ref);

if (isStatic) return <StaticPreview />; // Show useful static state
// Pause animations when out of viewport
  • For very complex animations, consider WebGL instead of framer-motion.
  • Static preview should include visual effects, not just text.
  • Wrapping state updates in startTransition() prevents UI blocking and keeps interactions smooth.
Text
  • For auto-sized components with text, apply width: max-content or minWidth: max-content to prevent text from collapsing.
Common Errors
  • WebGL cross-origin: handle SecurityError: Failed to execute 'texImage2D' for cross-origin images.
  • Inverted Y-axis: check if WebGL images render upside down and accommodate.
Accessibility
  • aria roles on interactive elements
  • Semantic HTML (<nav>, <article>, <section>)
  • alt="" on decorative images
  • 4.5:1 color contrast

Term Interpretation

  • "responsive" → width/height 100%
  • "modern" → 8px radius, 16px spacing, subtle shadows
  • "minimal" → limited colors, whitespace
  • "interactive" → hover/active states
  • "accessible" → ARIA, semantic HTML
  • "props"/"properties" → Framer property controls

Reference Files

© framer, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (references) in packages/code-link-cli/skills of framer/plugins.

  • SKILL.md
  • references/EXAMPLES.md
  • references/PROPERTY_CONTROLS.md
  • references/PROPERTY_CONTROL_GUIDE.md
  • references/PROPERTY_CONTROL_TYPES.md

Open the folder on GitHubat commit 6f9a02e

Compare with similar skills

Framer Component Best Practices next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Framer Component Best Practices compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Framer Component Best Practices this skillframer/plugins138—~1.3kAutomated safety check: PassMIT
Connect Component To Figmadequelabs/cauldron129—~2kAutomated safety check: PassMPL-2.0
A11y Auditscaleway/ultraviolet127—~967Automated safety check: PassApache-2.0
Base UI Reactsecondsky/claude-skills227—~1.9kAutomated safety check: PassMIT
Stitch to React and Vite Dashboardgoogle-labs-code/stitch-skills8.4k—~914Automated safety check: NotesApache-2.0
Design Code for Any Frameworkplugin87/ux-ui-agent-skills1.6k—~1.7kAutomated safety check: PassMIT

Similar skills

  • Connect Component To Figma

    dequelabs/cauldron

    Add a Figma Code Connect (.figma.tsx) file for a Cauldron React component.

    129 GitHub stars~2k tokensUpdated today
    Frontend & DesignAuto-check passed
  • A11y Audit

    scaleway/ultraviolet

    Audit components for accessibility. An agent skill from scaleway/ultraviolet.

    127 GitHub stars~967 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Base UI React

    secondsky/claude-skills

    MUI Base UI unstyled React components with Floating UI. An agent skill from secondsky/claude-skills.

    227 GitHub stars~1.9k tokensUpdated 11 days ago
    Frontend & DesignAuto-check passed
  • Stitch to React and Vite Dashboard

    google-labs-code/stitch-skills

    Official

    Turns Stitch screens into a React, Vite and TypeScript dashboard with TanStack Query data fetching, DESIGN.md tokens as CSS variables and optional read-only Web3 data.

    8.4k GitHub stars~914 tokensUpdated 1 mo ago
    Frontend & DesignAuto-check: notes
  • Design Code for Any Framework

    plugin87/ux-ui-agent-skills

    Generates complete, accessible, token-driven UI component code for a chosen framework such as React with Tailwind, SwiftUI, Vue, Flutter or Jetpack Compose.

    1.6k GitHub stars~1.7k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Shift UI Components

    shift-editor/shift

    Guides design, implementation and review of Shift interface work: shared Base UI wrappers, Tailwind v4 theme tokens, Figma matching and accessible interaction states.

    348 GitHub stars~2.5k tokensUpdated today
    Frontend & DesignAuto-check passed

Works with

Questions about Framer Component Best Practices

What does Framer Component Best Practices do?

Best practices for building and improving React code components in Framer, a no-code website builder. Framer Component Best Practices is an agent skill from framer/plugins. Best practices for building and improving React code components in Framer, a no-code website builder.

When should I use Framer Component Best Practices?

Framer Component Best Practices fits situations like: reviewing Framer components; working with ControlType property controls; building React components for Framer projects.

How do I install Framer Component Best Practices in Claude Code?

Run `npx skills add framer/plugins --skill framer-component-best-practices -a claude-code`. Or copy the skill folder (packages/code-link-cli/skills in framer/plugins) into .claude/skills/framer-component-best-practices in your project. Claude Code loads it when a task matches its description.

How do I install Framer Component Best Practices in Codex?

Run `npx skills add framer/plugins --skill framer-component-best-practices -a codex`. Or copy the skill folder (packages/code-link-cli/skills in framer/plugins) into .agents/skills/framer-component-best-practices in your project. Codex loads it when a task matches its description.

Can I use Framer Component Best Practices in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add framer/plugins --skill framer-component-best-practices -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/framer-component-best-practices, .gemini/skills/framer-component-best-practices, .github/skills/framer-component-best-practices and .opencode/skills/framer-component-best-practices in your project.

What does Framer Component Best Practices need to run?

SKILL.md names no scripts, command-line tools or credentials: Framer Component Best Practices is instructions for the agent only. Our summary lists: Node.js.

Does Framer Component Best Practices access the network?

SKILL.md names 1 domain. In commands or code: framerusercontent.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Framer Component Best Practices safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Framer Component Best Practices use?

Framer Component Best Practices is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Framer Component Best Practices use?

About 1.3k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 15k tokens, read only when the agent opens those files.

What are the alternatives to Framer Component Best Practices?

Skills that share tags, products or a category with Framer Component Best Practices: Connect Component To Figma (dequelabs/cauldron, 129 stars), A11y Audit (scaleway/ultraviolet, 127 stars), Base UI React (secondsky/claude-skills, 227 stars) and Stitch to React and Vite Dashboard (google-labs-code/stitch-skills, 8.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Framer Component Best Practices?

framer (a GitHub organization) maintains it in framer/plugins, which has 138 GitHub stars. The repository was last updated on October 1, 2026.

Source: framer/plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.