-
Notifications
You must be signed in to change notification settings - Fork 1
Features
Figma frames are converted to Elementor Flexbox containers with proper direction, alignment, and spacing. The plugin maps:
-
layoutMode→ Flexbox direction (row/column) -
primaryAxisAlignItems→ justify-content -
counterAxisAlignItems→ align-items -
itemSpacing→ gap -
padding→ padding -
itemReverseZIndex→ reverse column/row
Full typography preservation including:
- Font family (via Figma style lookup)
- Font size (px)
- Font weight
- Line height
- Letter spacing
- Text color
- Text alignment
- Text decoration
- Solid colors — converted to hex or rgba
- Linear gradients — angle, stops, opacity preserved
- Radial gradients — position and radius mapped
- Opacities — respected via rgba or Elementor opacity controls
- Border width — uniform or per-side (top/right/bottom/left)
- Border color — with opacity support
- Border radius — uniform or per-corner
- Box shadows — color, blur, spread, offset, inset
Figma text nodes with button-like properties are detected and converted to Elementor Button widgets with:
- Text and link
- Background color with hover states
- Border radius
- Icon support
- Alignment
Figma text nodes are converted to Elementor Heading widgets with full typography settings.
Figma rectangle nodes with fill images are converted to Elementor Image widgets. Images are downloaded from Figma's CDN.
Figma frames with icon-like elements are converted to Elementor Icon Box widgets with:
- Icon color and size
- Title and description
- Hover effects
- Alignment
Non-auto-layout Figma frames (where layoutMode is null) have their children positioned absolutely using Elementor's positioning controls. The plugin:
- Calculates relative position (
xandyfrom bounding boxes) - Sets
_position: absolute(widgets) orposition: absolute(containers) - Configures
_offset_orientation_h/vasstart(for positive offsets) orend(for negative offsets) - Sets explicit
width/heightfrom the bounding box -
Skips rotated nodes (rotation > 0.01) — these require
relativeTransformmatrix support (planned)
Your Figma Personal Access Token is encrypted at rest using AES-256-CBC with WordPress's wp_salt('AUTH_KEY') as the encryption key. Old plaintext tokens are automatically detected and encrypted on the next settings save.
All user inputs are sanitized with sanitize_text_field(). All AJAX endpoints verify both nonces and user capabilities (manage_options).
All database queries use $wpdb->prepare() with parameterized queries. No raw SQL string interpolation.
During import, a progress bar shows:
- Current stage (fetching, converting, downloading, saving)
- Percentage complete
- Per-image download progress (e.g., 3/15 images)
The progress is tracked via WordPress transients and polled via AJAX every 1.5 seconds.
Sync Figma design system styles to Elementor global styles:
- Colors — Figma fill styles → Elementor global colors
- Typography — Figma text styles → Elementor global typography
- Accessible from Figma Sync → Style Sync or the Elementor Kit settings
- Caching — All Figma API responses are cached via WordPress transients (file data, nodes, styles, images, variables)
-
Configurable TTL — Filter
hello_figma_cache_ttlto customize cache duration per context -
Configurable Timeout — Filter
hello_figma_api_timeoutto adjust API request timeout (default 120s) - Rate Limiting — Built-in rate limiter respects Figma's 2 requests/second limit
Powered by Figma to Elementor — Convert Figma designs into Elementor templates.