home / skills / thebushidocollective / han / figma-analyze-frame
This skill analyzes a Figma frame and delivers actionable HTML, CSS, and accessibility guidance for accurate, responsive implementation.
npx playbooks add skill thebushidocollective/han --skill figma-analyze-frameReview the files below or copy the command above to add this skill to your agents.
---
name: figma-analyze-frame
description: Analyze a Figma frame's structure, properties, and implementation considerations
---
# Analyze Figma Frame
## Name
figma:figma-analyze-frame - Analyze Figma frame structure and implementation guidance
## Synopsis
Analyze a Figma frame's hierarchy, styling, layout, interactivity, and provide comprehensive implementation recommendations including HTML structure, CSS approach, component breakdown, accessibility considerations, and responsive strategy.
## Description
You are tasked with analyzing a Figma frame to understand its structure, properties, and provide implementation guidance. This command provides detailed technical analysis to help engineers understand how to implement a design.
## Implementation
Uses Figma Desktop MCP server to access frame properties, layers, styling, and layout information. Analyzes component instances, auto-layout configurations, constraints, and design tokens to generate actionable implementation guidance.
## Your Task
1. **Access the Frame**:
- Use Figma MCP tools to access the specified frame
- Accept either selection-based or link-based input
- If neither provided, ask the user to select a frame or provide a URL
2. **Analyze Structure**:
- Identify the frame hierarchy (parent-child relationships)
- List all layers and their types (text, rectangle, group, component, etc.)
- Note frame layout method (auto-layout, fixed, absolute positioning)
- Identify any component instances used
3. **Analyze Styling**:
- Extract colors (fills, strokes, shadows)
- Note typography properties (font, size, weight, line height)
- Identify spacing and sizing values
- Check for design token usage
- Note effects (shadows, blurs, etc.)
4. **Analyze Layout**:
- Describe layout system (flexbox equivalent, grid, absolute)
- Note responsive behavior (constraints, resizing rules)
- Identify spacing patterns (padding, gaps, margins)
- Check alignment and distribution
5. **Analyze Interactivity**:
- Identify interactive elements (buttons, links, inputs)
- Note any prototyping connections or interactions
- Check for states (hover, active, disabled, etc.)
- Identify any component variants for different states
6. **Implementation Analysis**:
- Recommend HTML structure and semantic elements
- Suggest CSS approach (flexbox, grid, custom properties)
- Identify component breakdown opportunities
- Note accessibility considerations
- Recommend responsive strategy
## Report Format
Provide a comprehensive analysis report:
```markdown
# Figma Frame Analysis
Frame: [Frame name]
File: [Figma file name]
URL: [Figma URL]
Analyzed: [date]
## Overview
Brief description of the frame's purpose and content.
## Structure
### Hierarchy
```
Frame: [name] (Auto-layout, Vertical)
├─ Header (Auto-layout, Horizontal)
│ ├─ Logo (Component Instance)
│ └─ Navigation (Auto-layout, Horizontal)
│ ├─ NavItem (Component Instance) x4
│ └─ Button (Component Instance)
├─ MainContent (Auto-layout, Vertical)
│ ├─ Hero (Frame)
│ │ ├─ Title (Text)
│ │ └─ Subtitle (Text)
│ └─ Features (Auto-layout, Horizontal, wrap)
│ └─ FeatureCard (Component Instance) x6
└─ Footer (Auto-layout, Horizontal)
```
### Layout System
- **Type**: Auto-layout (Flexbox equivalent)
- **Direction**: Vertical
- **Spacing**: 24px gap between sections
- **Padding**: 64px horizontal, 32px vertical
- **Alignment**: Center-aligned content
## Styling
### Colors
- Background: #FFFFFF (--color-background)
- Primary: #3B82F6 (--color-primary)
- Text: #111827 (--color-text)
- Border: #E5E7EB (--color-border)
### Typography
- Heading: Inter 32px/40px, weight 700
- Body: Inter 16px/24px, weight 400
- Caption: Inter 14px/20px, weight 500
### Spacing
- Section gap: 24px
- Card gap: 16px
- Button padding: 12px 24px
### Effects
- Card shadow: 0px 4px 6px rgba(0, 0, 0, 0.1)
- Button hover: 0px 2px 4px rgba(0, 0, 0, 0.2)
## Components Used
1. **Button** (4 instances)
- Variant: Primary (2), Secondary (2)
- Size: Medium
- Figma: [component URL]
2. **FeatureCard** (6 instances)
- No variants
- Figma: [component URL]
3. **NavItem** (4 instances)
- State: Default (3), Active (1)
- Figma: [component URL]
## Responsive Behavior
### Constraints
- Header: Fixed to top, stretches horizontally
- MainContent: Center-aligned, max-width 1200px
- Footer: Fixed to bottom, stretches horizontally
### Breakpoints Needed
- Desktop (1200px+): 6 feature cards in 3 columns
- Tablet (768px-1199px): 4 cards in 2 columns
- Mobile (<768px): Stack cards in 1 column
### Resizing Rules
- Text: Fixed size, wraps at small widths
- Images: Scale proportionally
- Containers: Flexible width with max-width
## Accessibility Considerations
### Semantic HTML
```html
<header>
<nav>
<a href="/" aria-label="Home">
<img src="logo.svg" alt="Company Name" />
</a>
<ul role="list">
<li><a href="/about">About</a></li>
<!-- ... -->
</ul>
</nav>
</header>
<main>
<section aria-labelledby="hero-title">
<h1 id="hero-title">...</h1>
</section>
<section aria-labelledby="features-title">
<h2 id="features-title">Features</h2>
<div role="list">
<!-- Feature cards -->
</div>
</section>
</main>
<footer>
<!-- Footer content -->
</footer>
```
### ARIA Requirements
- Navigation landmarks
- Heading hierarchy (h1 → h2 → h3)
- Button labels and roles
- Image alt text
- Focus indicators
### Keyboard Navigation
- All interactive elements reachable via Tab
- Skip-to-content link
- Logical tab order
- Focus visible styles
## Implementation Recommendations
### Component Breakdown
Suggest creating these components:
1. `Header` - Top navigation bar
2. `Hero` - Hero section with title and CTA
3. `FeatureGrid` - Grid of feature cards
4. `FeatureCard` - Individual feature card
5. `Footer` - Footer section
### CSS Approach
```css
/* Use CSS Grid for feature layout */
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: var(--spacing-lg);
}
/* Use Flexbox for header */
.header {
display: flex;
justify-content: space-between;
align-items: center;
padding: var(--spacing-md) var(--spacing-xl);
}
```
### Responsive Strategy
- Mobile-first approach
- CSS Grid with auto-fit for feature cards
- Flexbox for header navigation
- Media queries at 768px and 1200px
- Fluid typography (clamp for heading sizes)
### Design Tokens
Reference these tokens (create if they don't exist):
- `--color-primary`, `--color-text`, `--color-background`
- `--spacing-sm`, `--spacing-md`, `--spacing-lg`, `--spacing-xl`
- `--font-family-base`, `--font-size-body`, `--line-height-body`
- `--shadow-sm`, `--shadow-md`
## Potential Issues
1. **Performance**: 6 feature cards with images - consider lazy loading
2. **Accessibility**: Ensure sufficient color contrast (verify WCAG AA)
3. **Responsive**: Navigation may need hamburger menu on mobile
4. **Content**: Text lengths vary - ensure layout handles overflow
## Next Steps
1. Generate component code (use `/figma:generate-component`)
2. Extract design tokens (use `/figma:extract-tokens`)
3. Create responsive breakpoint tests
4. Implement accessibility features
5. Add loading states and error handling
```
## Best Practices
1. **Be Thorough**: Analyze every aspect of the frame
2. **Be Specific**: Include exact values, not approximations
3. **Be Actionable**: Provide concrete implementation guidance
4. **Be Accessible**: Always consider accessibility from the start
5. **Be Responsive**: Think mobile-first and adaptive layouts
## Additional Analysis
If the user requests, also analyze:
- **Performance**: Large images, heavy animations, rendering complexity
- **Browser Support**: CSS features used, fallbacks needed
- **Internationalization**: Text direction, character sets, dynamic content
- **Dark Mode**: Color tokens, theme switching, contrast
- **Print Styles**: If the design should be printable
## Notes
- If the frame is very complex, offer to analyze sections separately
- Suggest improvements to the Figma design if appropriate
- Note any Figma-specific features that don't translate to code
- Recommend collaboration points between design and engineering
This skill analyzes a Figma frame to produce a developer-ready implementation report. It inspects hierarchy, layout, styling, interactivity, and produces HTML/CSS/component recommendations, accessibility notes, and responsive strategies. The output focuses on actionable details and exact values to speed engineering handoff.
The skill reads the selected frame (or a provided Figma link) via Figma MCP access, enumerates layers and component instances, and extracts layout and style properties. It interprets auto-layout, constraints, fills, typography, effects, and prototype links to produce a structured implementation guide including semantic HTML, CSS approach, component breakdown, and accessibility checks.
What input do you need to analyze a frame?
Provide a selected frame via the Figma desktop client or a public Figma URL. If neither is supplied, I will prompt you to select or paste the link.
Will the report include exact CSS and HTML?
Yes — the report recommends semantic HTML structure and concrete CSS approaches (examples using Flexbox, Grid, and custom properties), but it does not generate production code unless you request component generation.
Can you check accessibility automatically?
I flag common accessibility issues (contrast, landmarks, focus order, alt text) and provide ARIA recommendations; some checks require manual verification in the running app.