Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #199

Merged
merged 2 commits into from
Jun 28, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 60 additions & 56 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,21 @@
</h1>

<p align="center"><a href="https://www.mozilla.org/en-US/MPL/2.0" rel="nofollow"><img src="https://camo.githubusercontent.com/3fcf3d6b678ea15fde3cf7d6af0e242160366282d62a7c182d83a50bfee3f45e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d504c2d322e302d626c75652e737667" alt="License: MPL-2.0" data-canonical-src="https://img.shields.io/badge/MPL-2.0-blue.svg" style="max-width:100%;"></a>
<a href="https://tree.taiga.io/project/penpot/" title="Managed with Taiga.io" rel="nofollow"><img src="https://camo.githubusercontent.com/4a1d1112f0272e3393b1e8da312ff4435418e9e2eb4c0964881e3680f90a653c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d616e61676564253230776974682d54414947412e696f2d3730396631342e737667" alt="Managed with Taiga.io" data-canonical-src="https://img.shields.io/badge/managed%20with-TAIGA.io-709f14.svg" style="max-width:100%;"></a>
<a href="https://github.com/orgs/penpot/projects/1" title="Managed with GitHub Projects" rel="nofollow"><img src="https://camo.githubusercontent.com/4a1d1112f0272e3393b1e8da312ff4435418e9e2eb4c0964881e3680f90a653c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d616e61676564253230776974682d54414947412e696f2d3730396631342e737667" alt="Managed with GitHub Projects" data-canonical-src="https://img.shields.io/badge/managed%20with-TAIGA.io-709f14.svg" style="max-width:100%;"></a>
<a href="https://gitpod.io/#https://github.com/penpot/penpot" rel="nofollow"><img src="https://camo.githubusercontent.com/daadb4894128d1e19b72d80236f5959f1f2b47f9fe081373f3246131f0189f6c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476974706f642d72656164792d2d746f2d2d636f64652d626c75653f6c6f676f3d676974706f64" alt="Gitpod ready-to-code" data-canonical-src="https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod" style="max-width:100%;"></a></p>

<p align="center">
<a href="https://penpot.app/"><b>Penpot Website</b></a> •
<a href="https://community.penpot.app/t/figma-file-importer/1684"><b>Export Figma to Penpot (penpot community)</b></a> •
<a href="https://community.penpot.app/t/figma-to-penpot-export-plugin/5554"><b>Export Figma to Penpot (Penpot community)</b></a> •
<a href="https://community.penpot.app/"><b>Penpot Community</b></a> •
<a href="https://www.figma.com/community/plugin/1219369440655168734/penpot-exporter"><b>Plugin in Figma community</b></a>
</p>

<p align="center">
<img src="https://user-images.githubusercontent.com/1045247/198583387-5c243c18-8ca9-4b66-9c91-6a30c8787bcc.jpg" alt="Help us">
</p>

![](penpotexporter.gif)

This is a **very early-stage** Figma plugin to export Figma files to Penpot format. For now is
little more than a proof of concept, or a first scaffolding, not a fully functional exporter.
https://github.com/penpot/penpot-exporter-figma-plugin/assets/165997885/44208d17-1ca0-4fe8-a541-4e68a24ee554

## Table of contents

Expand All @@ -44,11 +42,11 @@ little more than a proof of concept, or a first scaffolding, not a fully functio

## Why a Penpot exporter

The aim of this plugin is to help people migrate their files from Figma to
[Penpot](https://penpot.app/). Migrating work from one design tool to another was never an easy task
due to the abundance of closed and non-standard formats, and this is not a different case. Our
approach to better solve this situation is to release a code skeleton for the minimum version of a
Figma plugin that can convert a Figma file into a Penpot annotated SVG file.
The aim of this plugin is to help people migrate their files from Figma
to [Penpot](https://penpot.app/). Migrating work from one design tool to another was never an easy
task due to the abundance of closed and non-standard formats, and this is not a different case. Our
approach to better solve this situation is to build a Figma plugin that can convert a Figma file
into a .zip file that can be imported to Penpot.

There is a sense of urgency for this capability because there is a feeling that Adobe might force
Figma to limit exports and interoperability via plugins very soon.
Expand Down Expand Up @@ -111,68 +109,74 @@ for the plugin.

### To use the plugin

1. Select what you want to export
2. `Figma menu` > `Plugins` > `Development` > `Penpot Exporter` go to the `Plugins` menu in Figma
and select `Development` followed by `Penpot Exporter`.
3. This will generate a .zip file that you can import into Penpot.
1. `Open a Figma file` > `Figma top toolbar` > `Resources` > `Plugins` > search for
`Penpot Exporter` > `Select the plugin` > `Export your file`.
<img width="421" alt="Screenshot 2024-06-26 at 08 51 49" src="https://github.com/penpot/penpot-exporter-figma-plugin/assets/165997885/c50ad95d-2ebc-41dc-a62d-3f901612bdd3">

2. A `.zip file` will be generated that you can `import into Penpot`.
3. `Open Penpot` > `Select the projects or drafts menu` (three dots on the right side) >
`Select Import Penpot files` > `Select the exported .zip file` > `Open the file` and continue
your work in Penpot 🥳
![Untitled](https://github.com/penpot/penpot-exporter-figma-plugin/assets/165997885/3dc1bd1e-1f59-4069-b3a5-90e024ffc806)

Visit the <a href="https://github.com/penpot/penpot-exporter-figma-plugin/wiki"><b>Penpot Exporter
Wik</b></a> to learn more about how to use the plug-in.

## Call to the community

Answering to the interest expressed by community members to build the plugin by themselves, at the
Penpot team we decided to help solve the need without having to depend on our current product
priorities. That is why we have published this bare minimum version of the plugin, unsatisfactory in
itself, but it unlocks the possibility for others to continue the task.
Answering to the interest expressed by community members to build the plugin by themselves, we're
opening the door for anyone interested to jump in and contribute.

Yes, we are asking for help. 🤗
We'd love your help! 🤗

We have explained this approach in a
[community post](https://community.penpot.app/t/figma-file-importer/1684). Feel free to join the
conversation there.
For more details on this initiative, we've shared our approach in a
[community post](https://community.penpot.app/t/figma-file-importer/1684) and provided updates in
another [community post](https://community.penpot.app/t/figma-to-penpot-export-plugin/5554). Feel
free to join the conversation!

## What can this plugin currently import?

As mentioned above, this plugin gets you to a starting point. Things that are currently included in
the import are:

- **Basic shapes** (rectangles, ellipses).
- **Frames** (Boards in Penpot).
- **Groups**.
- **Fills** (solid colors and linear gradients).
- **Texts** (basic support. Only fonts available on Google fonts).
- **Images** (basic support)
Things that are currently included in the import are:

- **Basic shapes** (Rectangles, Ellipses, Stars and Polygons)
- **Vectors, Lines and Arrows**
- **Frames and Sections** (Boards in Penpot)
- **Groups and Boolean groups**
- **Masks groups**
- **Texts** (you can upload your own fonts too)
- **All basic shapes properties** (fills, visibility, strokes, corner radius, shadows, rotations,
effects, etc...)
- **Components and Components Sets**
- **Component instances**
- **Variants and properties**
- **Variables**
- **Libraries and local styles**
- **Files connected to a Library** (exported as a page in exported file)
- **Remote design systems**
- **Auto Layouts**

## Limitations

The obvious limitations are the features that are in Figma but not in Penpot or work differently in
both tools so they can not be easily converted. We leave some comments below about the ones that are
commonly considered more important:
Since the objective of the plug-in is to enable seamless file exports from Figma to Penpot. A key
part of this goal is to support exporting large files, making **performance a primary challenge**.
The exportation process requires comprehensive navigation through all nodes in a Figma file, and
currently we’re facing some limitation with the Figma API to solve this.

- **Autolayout**: Not in Penpot yet but in a very advanced state of development. There will be news
soon.
- **Components**: Currently very different from their counterparts at Figma. However, Penpot
components are under a rework that we expect will make the conversion easier.
- **Variants**: Not expected in the short term. Also, we are thinking of different solutions to
solve component states, things that eventually could make it difficult to import.
Another obvious limitations are the features that are in Figma but not in Penpot or work differently
in both tools so they can not be easily converted, consequently, some features may not look exactly
the same. Additionally, **prototyping settings are currently not supported** in the export/import
process of files.

## Contributing

If you want to make many people very happy and help us build this code skeleton for the minimum
version of the Figma plugin, a further effort will be needed to have a satisfactory import
experience.

For instance, it will be interesting to add:
If you want to make many people very happy and help us continue to build this Figma plugin, for
instance, it would be interesting to add:

- Strokes
- Fills with radial gradients
- Paths
- Images (full support)
- Texts (full support)
- Rotations
- Constraints
- ...
- Performance optimization
- Prototyping interactions and flows

Motivated to contribute? Take a look at our
[Contributing Guide](https://help.penpot.app/contributing-guide/) that explains our guidelines
Motivated to contribute? Take a look at
our [Contributing Guide](https://help.penpot.app/contributing-guide/) that explains our guidelines
(they're for the Penpot Core, but are mostly of application here too).

## License
Expand Down