Skip to content

Contributing

Hordekiller edited this page Jun 26, 2026 · 1 revision

Contributing

Thank you for your interest in contributing to Figma to Elementor! Here are the ways you can help.

Code of Conduct

Please be respectful and constructive in all interactions. This project follows the GitHub Community Guidelines.

Ways to Contribute

1. Report Bugs 🐛

Open a GitHub Issue with:

  • WordPress version and PHP version
  • Elementor version (free or pro)
  • Steps to reproduce (be specific)
  • Expected vs actual behavior
  • Screenshots if applicable
  • Error logs (WordPress debug.log or browser console)

2. Suggest Features 💡

Start a Discussion in the Ideas category:

  • Describe the feature and its use case
  • How would it benefit Figma-to-Elementor workflows?
  • Include examples or mockups if possible

3. Submit Code 🔧

Getting Started

# Clone the repo
git clone https://github.com/Hordekiller/FigmaToelementor.git
cd FigmaToelementor

# Set up a local WordPress environment
# (Local WP, Docker, or any local server)

Development Workflow

  1. Fork the repository
  2. Create a branch: git checkout -b feature/your-feature-name
  3. Make your changes
  4. Test locally (see Architecture page for code structure)
  5. Run PHP syntax check: php -l includes/your-file.php
  6. Commit: git commit -m "Description of your change"
  7. Push: git push origin feature/your-feature-name
  8. Open a Pull Request against the main branch

Code Standards

  • PHP — 8.0+, strict types, PSR-4 autoloading
  • Namespaces — all classes under HelloFigma\
  • Naming — methods: camelCase, classes: PascalCase, constants: UPPER_CASE
  • Security — always use nonces, capability checks, sanitize_text_field(), and esc_html()/esc_attr()
  • SQL — always use $wpdb->prepare()
  • No JavaScript framework — vanilla JS only (WordPress admin compatible)

4. Improve Documentation 📖

  • Wiki — improve this wiki with better examples
  • README — suggest README improvements
  • Code comments — add PHPDoc to methods
  • Translations — help translate the plugin (.pot file in /languages/)

5. Spread the Word 🌟

  • Star the repository on GitHub
  • Share with other WordPress developers
  • Write a blog post or tutorial
  • Review the plugin

Pull Request Process

  1. Ensure your code follows the existing code style
  2. Test that the plugin activates without errors
  3. Test an import end-to-end if possible
  4. Update the wiki if your change affects user-facing features
  5. Your PR will be reviewed within a few days

Development Setup

For detailed architecture, see the Architecture page.

Key Files

File Purpose
hello-elementor-figma-sync.php Bootstrap and autoloader
includes/class-plugin.php Main plugin class (hook registration)
includes/class-figma-api.php Figma REST API client
includes/class-elementor-renderer.php Figma → Elementor conversion
includes/class-admin.php Admin UI and AJAX handlers
includes/class-template-manager.php Save/manage Elementor templates
includes/class-image-handler.php Download and process images
includes/class-style-sync.php Sync Figma styles to Elementor
includes/class-logger.php Debug logging
includes/class-compatibility.php Dependency checks
includes/class-asset-manager.php CSS/JS asset management
widgets/ Custom Elementor widgets (Container, Button, Image, etc.)
admin/views/ Admin page templates
uninstall.php Cleanup on plugin deletion

Clone this wiki locally