AgentSkillsCN

figma-navigator

为你深度解读 regelrecht Figma 设计系统,并在 Figma 相关任务中提供帮助,例如组件查找、设计对比等。当你需要实现 UI 组件、查询 Figma 节点 ID、将代码与 Figma 设计进行比对、下载 Figma 资产,或处理设计令牌时,可主动调用此技能;当用户提及 Figma、设计系统、组件样式,或询问关于 RR-Components 的相关问题时,该技能将自动激活。

SKILL.md
--- frontmatter
name: figma-navigator
description: Provides context about the regelrecht Figma design system and helps with Figma-related tasks like component lookups and design comparisons. Use this skill proactively when: implementing UI components, looking up Figma node IDs, comparing code with Figma designs, downloading Figma assets, or working with design tokens. Activate automatically when user mentions Figma, design system, component styling, or asks about RR-Components.
allowed-tools: Read, mcp__figma-with-token__get_figma_data, mcp__figma-with-token__download_figma_images

Figma Navigator

This skill provides quick access to the RegelRecht (RR) Figma design system structure and helps with Figma-related tasks.

Figma File Info

Quick Lookup

For component IDs and structure, read the reference file:

code
.claude/skills/figma-navigator/reference.md

This contains all component node IDs, pages, variants, and implementation details.

Workflows

1. Find a Component's Figma ID

  1. Check reference.md for the component
  2. Use the node ID directly with the Figma MCP tool

Example:

code
mcp__figma-with-token__get_figma_data(fileKey: "5DyHMXUNVxbgH7ZjhQxPZe", nodeId: "20-27")

2. Get Component Details

When you need current properties, variants, or layout info:

code
mcp__figma-with-token__get_figma_data(
  fileKey: "5DyHMXUNVxbgH7ZjhQxPZe",
  nodeId: "<component-node-id>"
)

The MCP tool returns:

  • Component variants and their node IDs
  • Layout properties (padding, gap, sizing)
  • Text styles and colors
  • Border radius and strokes

3. Compare Figma vs Implementation

  1. Get component specs from Figma using node ID from reference.md
  2. Read the implementation file (listed in reference.md)
  3. Compare:
    • Token usage (should match Figma variables)
    • Sizing (min-height, padding, gap)
    • Variants (all Figma variants should be implemented)
    • States (disabled, focused, hover)

4. Download Component Images

For pixel comparison or assets:

code
mcp__figma-with-token__download_figma_images(
  fileKey: "5DyHMXUNVxbgH7ZjhQxPZe",
  nodes: [
    { nodeId: "<node-id>", fileName: "component-name.png" }
  ],
  localPath: "/path/to/save"
)

5. Find Specific Variant

Each component set contains multiple variants. The variant node IDs follow patterns:

  • Button variants: Inside component set 20:27
    • Specific variant: style=accent-filled, size=m = 20:28
    • Pattern: style={style}, size={size}, is-disabled={bool}

Use get_figma_data on the component set to see all variants.

Rate Limits

The Figma MCP can hit rate limits. If you get errors:

  1. Wait 60-120 seconds
  2. Use cached info from reference.md when possible
  3. Open Figma in browser as fallback

Token Hierarchy

The design system uses three token layers:

code
Primitives (--primitives-*)  → base values (colors, space, opacity)
Semantics (--semantics-*)    → meaningful tokens (buttons, controls, focus)
Components (--components-*)  → component-specific tokens

Always use semantic tokens when available. Only use primitives when no semantic exists.

Key Design Tokens

Controls (sizing)

  • --semantics-controls-xs-min-size: 24px
  • --semantics-controls-s-min-size: 32px
  • --semantics-controls-m-min-size: 44px

Focus Ring

  • --semantics-focus-ring-thickness: 2px
  • --semantics-focus-ring-color: #0f172a

Disabled State

  • Use calc(var(--primitives-opacity-disabled, 38) / 100) for opacity

Tips

  1. Start with reference.md - Don't search Figma from scratch
  2. Use node IDs with colons - Format is 123:456 or 123-456 (both work)
  3. Component sets vs components - Component sets (like 20:27) contain multiple variant components
  4. Check asymmetric padding - Figma sometimes uses different top/bottom padding

Storybook Integration

The project uses @minbzk/storybook web components. When implementing UI, always use these components instead of custom HTML/CSS.

Storybook Docs: https://minbzk.github.io/storybook

Available Web Components

ComponentTagVariants
Box<rr-box>padding, radius
Button<rr-button>accent-filled, accent-outlined, accent-tinted, neutral-tinted, accent-transparent, danger-tinted; sizes: xs, s, m
Checkbox<rr-checkbox>checked, indeterminate, disabled
Icon Button<rr-icon-button>Same variants as Button
Menu Bar<rr-menu-bar>With title, links, disabled items
Radio Button<rr-radio-button>In groups
Switch<rr-switch>On/off states, disabled
Toggle Button<rr-toggle-button>selected states, with icons
Top Navigation Bar<rr-top-navigation-bar>With logo, back button, utility menu
Back Button<rr-back-button>Sub-component
Logo<rr-logo>Sub-component with branding
Utility Menu Bar<rr-utility-menu-bar>Search, help, settings

Figma → Storybook Mapping

When converting Figma designs to code:

Figma ComponentStorybook Tag
button (accent-filled)<rr-button variant="accent-filled">
button (accent-outlined)<rr-button variant="accent-outlined">
icon-button<rr-icon-button>
checkbox-list-cell<rr-checkbox>
radio-button-list-cell<rr-radio-button>
switch-list-cell<rr-switch>
toggle-button<rr-toggle-button>
top-navigation-bar<rr-top-navigation-bar>

Components NOT in Storybook

These components don't exist in Storybook and require custom CSS:

ComponentDescriptionCustom CSS Location
ListLists with sections, headers, chevronscss/components/list.css
TabsTab navigation with panelscss/components/tabs.css
Search FieldInput with search iconCustom
Split Pane LayoutMulti-column layout systemcss/layout.css
Editor ToolbarRich text toolbar (B, I, U, undo, redo)css/components/editor.css

Usage in HTML

html
<!-- Import web components -->
<script type="module" src="/main.js"></script>

<!-- Use components -->
<rr-button variant="accent-filled" size="m">Primary Button</rr-button>
<rr-button variant="accent-outlined" size="m">Secondary Button</rr-button>
<rr-icon-button variant="neutral-tinted" size="s">
  <svg>...</svg>
</rr-icon-button>

Installation

bash
npm install @minbzk/storybook

Requires GITHUB_TOKEN with read:packages scope for npm registry access.