mirror of
https://github.com/lucide-icons/lucide.git
synced 2025-12-16 16:27:43 +01:00
Extending the Contribution.md description with more topics (#654)
* improve contribution guide * Add credits * Add more info contribution.md * Fix typos * Update CONTRIBUTING.md
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,5 +1,6 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
.next
|
.next
|
||||||
|
.obsidian
|
||||||
.now
|
.now
|
||||||
node_modules
|
node_modules
|
||||||
dist
|
dist
|
||||||
|
|||||||
137
CONTRIBUTING.md
137
CONTRIBUTING.md
@@ -42,10 +42,11 @@ Here you can find templates and instructions on how to implement the guidelines
|
|||||||
`Instructions`: You can find the [Inkscape Guide](/docs/INKSCAPE_GUIDE.md) and how to set up Inkscape under `/docs/INKSCAPE_GUIDE.md`.
|
`Instructions`: You can find the [Inkscape Guide](/docs/INKSCAPE_GUIDE.md) and how to set up Inkscape under `/docs/INKSCAPE_GUIDE.md`.
|
||||||
|
|
||||||
#### Figma
|
#### Figma
|
||||||
|
|
||||||
`Template`: None
|
`Template`: None
|
||||||
`Instructions`: You can find the [Figma Guide](/docs/FIGMA_GUIDE.md) and how to set up Figma under `/docs/FIGMA_GUIDE.md`.
|
`Instructions`: You can find the [Figma Guide](/docs/FIGMA_GUIDE.md) and how to set up Figma under `/docs/FIGMA_GUIDE.md`.
|
||||||
|
|
||||||
#### Submitting Mulitple Icons
|
#### Submitting Multiple Icons
|
||||||
|
|
||||||
If you want submit multiple icons, please separate the icons and group them. That makes reviewing the icons easier and keep the thread clean and scoped.
|
If you want submit multiple icons, please separate the icons and group them. That makes reviewing the icons easier and keep the thread clean and scoped.
|
||||||
So don't submit multiple icons in one PR that have noting to do with each other.
|
So don't submit multiple icons in one PR that have noting to do with each other.
|
||||||
@@ -58,6 +59,138 @@ Before creating an icon request, please search to see if someone has requested t
|
|||||||
|
|
||||||
If the icon has not already been requested, [create an issue](https://github.com/lucide-icons/lucide/issues/new?title=Icon%20Request:) with a title of `Icon request: <icon name>` and add as much information as possible.
|
If the icon has not already been requested, [create an issue](https://github.com/lucide-icons/lucide/issues/new?title=Icon%20Request:) with a title of `Icon request: <icon name>` and add as much information as possible.
|
||||||
|
|
||||||
## Icon Requests from Feather
|
### Icon Requests from Feather
|
||||||
|
|
||||||
If you are a designer who wants to contribute to Lucide but you don't know what icons to work on, then have a look at the Requests from Feather. All open, unfinished and valid requests can be found in [Feather Icon Requests](https://github.com/lucide-icons/lucide/issues/119).
|
If you are a designer who wants to contribute to Lucide but you don't know what icons to work on, then have a look at the Requests from Feather. All open, unfinished and valid requests can be found in [Feather Icon Requests](https://github.com/lucide-icons/lucide/issues/119).
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
You will need minimum version of [Nodejs 16+](https://nodejs.org)
|
||||||
|
For packagemanagement you will need [yarn v1](https://yarnpkg.com/getting-started/install).
|
||||||
|
For flutter package development, you need [Flutter 1.17+](https://docs.flutter.dev/get-started/install).
|
||||||
|
|
||||||
|
After cloning the project you need to run:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn # Install dependencies, including the workspace packages
|
||||||
|
```
|
||||||
|
|
||||||
|
### Packages -> Yarn Workspaces
|
||||||
|
|
||||||
|
To distribute different packages we use yarn workspaces. Before you start make sure you are familiar with this setup. Read guide here: [yarn workspaces](https://classic.yarnpkg.com/lang/en/docs/workspaces).
|
||||||
|
|
||||||
|
The configured directory for workspaces is the [packages](./packages) directory, located in the root directory. There you will find all the current packages from lucide.
|
||||||
|
|
||||||
|
> Note: One package is not managed by yarn: **lucide-flutter**
|
||||||
|
|
||||||
|
### Generated Code
|
||||||
|
|
||||||
|
For icons we use one single source of truth the icons svgs located in the icons directory. To distribute icons to the packages we generate code including: icon files with svg paths, index files with imports, and types files. Depending on the use case other necessary code will be generated.
|
||||||
|
|
||||||
|
The commands for generating this code you will read in the next chapter.
|
||||||
|
|
||||||
|
### Commonly used scripts
|
||||||
|
|
||||||
|
#### Building
|
||||||
|
|
||||||
|
The build script includes multiple subcommands to: clean the dist directory, generate icon files, generate types files, and build/transpile code for each build format.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn [package-name] build
|
||||||
|
|
||||||
|
#example:
|
||||||
|
|
||||||
|
yarn lucide-react build
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Testing
|
||||||
|
|
||||||
|
Run unit tests with jest for each package to make sure all the package apis still works as expected.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn [package-name] test
|
||||||
|
|
||||||
|
#example:
|
||||||
|
|
||||||
|
yarn lucide-vue test
|
||||||
|
```
|
||||||
|
|
||||||
|
Recommended to run the test watcher when making changes.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn [package-name] test:watch
|
||||||
|
|
||||||
|
#example:
|
||||||
|
|
||||||
|
yarn lucide-preact test:watch
|
||||||
|
```
|
||||||
|
|
||||||
|
### Unit Testing
|
||||||
|
|
||||||
|
When adding new features to for example the icon component for a framework. It is required to have this covered with some unit tests.
|
||||||
|
|
||||||
|
### Local Testing
|
||||||
|
|
||||||
|
To test changes in a local project, you can use `yarn link` or `npm link` to link the package. Before you do this make sure you builded the package first.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# in packages/lucide-react
|
||||||
|
yarn link
|
||||||
|
|
||||||
|
# in your local project
|
||||||
|
|
||||||
|
yarn link lucide-react
|
||||||
|
```
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
Root directories
|
||||||
|
|
||||||
|
```sh
|
||||||
|
lucide
|
||||||
|
|
|
||||||
|
├── docs
|
||||||
|
├── icons
|
||||||
|
├── packages
|
||||||
|
├── scripts
|
||||||
|
└── site
|
||||||
|
```
|
||||||
|
|
||||||
|
### Docs
|
||||||
|
|
||||||
|
Detailed documentation about: installation, guides, packages, design guides etc.
|
||||||
|
|
||||||
|
### Icons
|
||||||
|
|
||||||
|
All the icons of lucide in SVG format. These will be used as source for all the packages and other distributions for the lucide icons.
|
||||||
|
|
||||||
|
### packages
|
||||||
|
|
||||||
|
Includes all the (npm) packages of lucide.
|
||||||
|
|
||||||
|
> Note: One package is not managed by yarn: **lucide-flutter**
|
||||||
|
|
||||||
|
### scripts
|
||||||
|
|
||||||
|
Includes usefully scripts to automate certain jobs. Big part of the scripts is the template generation, for example it generates icon components for all the packages. These scripts are usually executed from the "scripts" section in the package.json.
|
||||||
|
|
||||||
|
### site
|
||||||
|
|
||||||
|
The lucide.dev website using [Nextjs](https://nextjs.org).
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
The documentation files are located in the [docs](./docs) directory. All these markdown files will be loaded in the build of the lucide.dev website.
|
||||||
|
|
||||||
|
Feel free to write, adjust or add new markdown files to improve our documentation.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
If you need any help or have problems with you contribution. Please don't hesitate to contact the Lucide Community, you can find us on [Github](https://github.com/lucide-icons/lucide) and [Discord](https://discord.gg/EH6nSts).
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
Thank you to all the people who already contributed to Lucide!
|
||||||
|
|
||||||
|
<a href="https://github.com/lucide-icons/lucide/graphs/contributors">
|
||||||
|
<img src="https://opencollective.com/lucide-icons/contributors.svg?width=890" /></a>
|
||||||
|
|||||||
@@ -189,8 +189,16 @@ Join the community on our [Discord](https://discord.gg/EH6nSts) server!
|
|||||||
|
|
||||||
Lucide is totally free for commercial use and personally use, this software is licensed under the [ISC License](https://github.com/lucide-icons/lucide/blob/master/LICENSE).
|
Lucide is totally free for commercial use and personally use, this software is licensed under the [ISC License](https://github.com/lucide-icons/lucide/blob/master/LICENSE).
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
Thank you to all the people who contributed to Lucide!
|
||||||
|
|
||||||
|
<a href="https://github.com/lucide-icons/lucide/graphs/contributors">
|
||||||
|
<img src="https://opencollective.com/lucide-icons/contributors.svg?width=890" /></a>
|
||||||
|
|
||||||
## Sponsors
|
## Sponsors
|
||||||
|
|
||||||
<a href="https://vercel.com?utm_source=lucide&utm_campaign=oss">
|
<a href="https://vercel.com?utm_source=lucide&utm_campaign=oss">
|
||||||
<img src="./site/public/vercel.svg" alt="Powered by Vercel" width="200" />
|
<img src="./site/public/vercel.svg" alt="Powered by Vercel" width="200" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user