From 142f2215574b643defde0a96b831f35b636f1dc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jir=CC=8Ci=CC=81=20Tr=CC=8Cec=CC=8Ca=CC=81k?= Date: Mon, 5 Apr 2021 14:51:41 +0200 Subject: [PATCH] Readme, licence, issue templates, exporter configuration --- LICENSE.md | 22 +++++++++++ README.md | 96 ++++++++++++++++++++++++++++++++++++++++++++++++ exporter.json | 19 ++++++---- icon.png | Bin 0 -> 4019 bytes readme-icon.png | Bin 0 -> 8549 bytes 5 files changed, 129 insertions(+), 8 deletions(-) create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 icon.png create mode 100644 readme-icon.png diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..24b3078 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2021-present Supernova and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..79f3ea1 --- /dev/null +++ b/README.md @@ -0,0 +1,96 @@ +Supernova Logo + + +[Supernova](https://supernova.io) is a design system platform that allows you to seamlessly translate your design system data to production-ready code. Supernova works with any platform or tech stack, is used by many developers and organizations around the world, and can help you save time by replacing manual and repetitive tasks that all developers hate. To learn everything Supernova, please check out our [developer documentation](https://developers.supernova.io/). + + +# Flutter Exporter + + +The Flutter Exporter allows you to **produce production-ready code for all product styles (such as colors) defined inside your design system** in such a way that you can immediately use them to style your application elements. Specifically, this exporter automates the coding of: + +- [x] Color definitions +- [x] Text Styles +- [x] Gradients +- [x] Shadows +- [x] Borders + +You can generate all production ready-code either manually using Supernova's [VS Code extension](https://marketplace.visualstudio.com/items?itemName=SupernovaIO.pulsar-vsc-extension), or automate your code delivery pipeline using Supernova [Design Continuous Delivery](https://supernova.io/automated-code-delivery). + + +## Example Usage + +Once you have run the exporter against your design system, you can start using the code in your codebase right away. Here are a few examples of how you can use the output of the Flutter exporter: + +### [Example 1] + +[Todo description] + +``` +[Code] +``` + + +### [Example 2] + +[Todo description] + +``` +Code +``` + +## Installing + +In order to make the Supernova Flutter exporter available for your organization so you can start generating code from your design system, please follow the installation guide in our [developer documentation](https://developers.supernova.io/using-exporters/installing-exporters). + +## Reporting Bugs or Requesting Features + +In order to faciliate easy communication and speed up delivery of fixes and features for this exporter, we require everyone to log all issues and feature requests through the issue tracking of this repository. + +Please read through the [existing issues](../../issues) before you open a new issue! It might be that we have already discussed it before. If you are sure your request wasn't mentioned just yet, proceed to [open a new issue](../../issues) and fill in the required information. Thank you! + +## Contributing + +If you have an idea for improving this exporter package or want a specific issue fixed quickly, we would love to see you contribute to its development! + +There are multiple ways you can contribute, so we have written a [contribution guide](https://developers.supernova.io/building-exporters/contribution-and-requests) that will walk your through the process. Any pull requests to this repository are very welcome. + +## License + +This exporter is distributed under the [MIT license](./LICENSE.md). [We absolutely encourage you](https://developers.supernova.io/building-exporters/cloning-exporters) to clone it and modify it for your purposes, so it fits the requirements of your stack. If you see that you have created something amazing in the process that others would benefit from, we strongly recommend you consider [publishing it back to the community](https://developers.supernova.io/building-exporters/sharing-exporters-with-others) as well. + +## Useful Links + +- To learn more about Supernova, [go visit our website](https://supernova.io) +- To join our community of fellow developers where we try to push what is possible with design systems and code automation, join our [community discord](https://community.supernova.io) +- To understand everything you can do with Supernova and how much time and resources it can save you, go read our [product documentation](https://learn.supernova.io/) +- Finally, to learn everything about what exporters are and how you can integrate with your codebase, go read our [developer documentation](https://developers.supernova.io/) + +## Other Supernova Exporters + +We are developing and maintaining exporters for many major technologies. Here are all the official exporters maintained by Supernova: + +- [iOS Exporter](https://github.com/Supernova-Studio/exporter-ios) +- [iOS Localization Exporter](https://github.com/Supernova-Studio/exporter-ios-localization) +- [Android Exporter](https://github.com/Supernova-Studio/exporter-android) +- [React Exporter](https://github.com/Supernova-Studio/exporter-react) +- [Flutter Exporter](https://github.com/Supernova-Studio/exporter-flutter) +- [Angular Exporter](https://github.com/Supernova-Studio/exporter-angular) +- [Typescript Exporter](https://github.com/Supernova-Studio/exporter-typescript) +- [CSS Exporter](https://github.com/Supernova-Studio/exporter-css) +- [LESS Exporter](https://github.com/Supernova-Studio/exporter-less) +- [SASS Exporter](https://github.com/Supernova-Studio/exporter-sass) + + +Additionally, we are also developing and maintaining exporters for specific use cases: + +- [Style Dictionary Exporter](https://github.com/Supernova-Studio/exporter-style-dictionary) +- [HTML Preview Exporter](https://github.com/Supernova-Studio/exporter-html-preview) + +To browse all exporters created by our amazing community, please visit the [Supernova](https://supernova.io) Exporter Store. + + + + + + diff --git a/exporter.json b/exporter.json index 65ad571..37e33da 100644 --- a/exporter.json +++ b/exporter.json @@ -1,18 +1,21 @@ { - "id": "io.supernova.example-exporter", - "name": "Example Exporter", - "description": "Example exporter that can export basic colors from the targeted design system", + "id": "io.supernova.flutter-styles", + "name": "Flutter", + "description": "Flutter token and style exporter", "source_dir": "src", "version": "1.0.0", "tags": [ - "Flutter" + "Flutter", + "Dart", + "Tokens", + "Styles" ], - "author": "Your name goes here", - "organization": "Your organization goes here", + "author": "Artem Ufimtcev", + "organization": "Supernova", + "homepage": "https://supernova.io", "config": { "output": "output.json", - "sources": "sources.json", - "js": "src/functions.js" + "sources": "sources.json" }, "engines": { "pulsar": "1.0.0", diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6f05a9cab7152cab27af4c5deee46f6865487c40 GIT binary patch literal 4019 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 K!WBE8PW%r(Mh(>f literal 0 HcmV?d00001 diff --git a/readme-icon.png b/readme-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..15a29adec0be7f6f95a3f0939f9c1e613e44272a GIT binary patch literal 8549 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 literal 0 HcmV?d00001