👍🎉 Thank you for investing your time in contributing to our project! 👍🎉
In this guide you will get an overview of the contribution workflow.
Use the table of contents icon on the top left corner of this document to get to a specific section of this guide quickly.
To get an overview of the project, read the README
Below you will find the process and workflow used to review and merge your changes.
G## Getting Started
If you spot a problem with the docs, search if an issue already exists. If a related issue doesn't exist, you can open a new issue using a relevant issue form.
Scan through our existing issues to find one that interests you. You can narrow down the search using labels as filters. See Labels for more information.
- Create a branch related to the issue you plan on working.
You can refer to the following articles on basics of Git and Github and also contact the Project Mentors, in case you are stuck:
- Forking a Repo
- Cloning a Repo
- How to create a Pull Request
- Getting started with Git and GitHub
- Learn GitHub from Scratch
-
Prior to opening your pull request add yourself as a contributor
npm run contributors:add keonik doc
where
keonik
is your github username anddoc
is the type of contributionUpdate all-contributors list
npm run contributors:generate
-
Create a Pull Request from your
forked
repo's issue branch- If there are review comments, update them
- Commit and push changes
-
👍🎉 Reviewer merges your PR! 👍🎉
Following tree depicts the folder structure for the lib
folder.
├── lib
│ ├── data
| | ├── widget_category.dart # To display the components card at home screen
│ ├── screens
| | ├── main_app_widgets
| | | ├── components_card.dart
| | ├── about.dart
| | ├── bottom_navigation.dart
| | ├── display.dart
| | ├── home.dart
| | ├── request.dart
| | ├── search.dart
| | ├── splash_screen.dart
│ ├── ui_components # Add/update the ui components here
| | ├── alerts
| | ├── avatars
| | ├── bottom_nav
| | ├── ...
│ ├── main.dart
Step 1 : Navigate to ui-components folder and Create the file for the component ui.
Step 2 : Create all the examples of the components in separate files.
Step 3 : Create another file in the same folder to include all those components in the single file. This can be achieved using Lists.
For example: Here the 'alert1', 'alert2', 'alert3', 'alert4' are examples of the Alert widget. The alert.dart file consist a List of widget type and includes the examples widgets.
Step 4 : Once you are done with designing ui screen. It's time to create it's card at home screen. Navigate to widget_category. Assign a value to the keys 'categoryName' and 'categoryScreen'.
Here, categoryName
is the key for the title name of a card and categoryScreen
is the key for the Screen name of the component you have added.
Step 5 : Test it one more time. Happy Coding🤗.
Step 1 : Navigate to ui-components folder. Open the folder named as the component you wanna update.
Step 2 : Add/Update the example of the component in separate files.
Step 3 : Add your added/updated component in the List contained in the screen file.
For example: Here the 'alert1', 'alert2', 'alert3', 'alert4' are examples of the Alert widget. The alert.dart file consist a List of widget type and includes the examples widgets. Actually this file will act as the screen for the component examples.
Step 4 (Optional
): Once you are done with designing ui screen. It's time to create it's card at home screen. Navigate to widget_category. Assign a value to the keys 'categoryName' and 'categoryScreen'.
Here, categoryName
is the key for the title name of a card and categoryScreen
is the key for the Screen name of the component you have added.
Step 5 : Test it one more time. Happy Coding🤗.
-
Follow the Dart Style Guide.
-
Do not use any external package library for UI's. If you want, you can see their source code from GitHub Repository.
-
Don't use any State Management package apart from
Provider
. Consult the maintainers before using state-management logic in the code. -
Always adhere to the Folder Structure that is specified for your specified UI section.
-
Try to write code as modular as possible.
-
Use meaningful variable and function names.
-
Keep the code clean and organized.
-
Avoid duplicating code. Instead, create reusable widgets or functions.
-
Use comments to explain complex code or describe the purpose of a function or variable.
-
Always test the UI code on multiple devices and screen sizes.
Following these guidelines and adhering to the folder structure will help ensure that your Flutter UI Kit is organized, easy to maintain, and follows best practices. Remember to keep the code clean, modular, and reusable.
It's always welcomed to report and fix the bugs.
If you found any bug or the feature not working properly, you can create that issue and start working on it. We will merge your pull request if it will make improvement in the app.
If you would prefer to write code, you may wish to start with our list of [good first contributions]https://github.com/Clueless-Community/flutter-ui-components/issues
-
Setting up your engine development environment, which describes the steps you need to configure your computer to work on Flutter's engine. If you only want to write code for the Flutter framework, you can skip this step. Flutter's engine mainly uses C++, Java, and Objective-C.
-
[Setting up your framework development environment]
which describes the steps you need to configure your computer to work on Flutter's framework. Flutter's framework mainly uses Dart.
-
[Tree hygiene] which covers how to land a PR, how to do code review, how to handle breaking changes, how to handle regressions, and how to handle post-commit test failures.
-
[Our style guide] which includes advice for designing APIs for Flutter, and how to format code in the framework.
which should be used when proposing a new technical design. This is a good practice to do before coding more intricate changes.
Finally, one area where you could have a lot of impact is in contributing to social interactions among the Flutter contributor community itself
It always takes time to understand and learn. So, do not worry at all. We know you have got this!💪
🥳 Hurray! You have contributed to our project! 🥳