lucide-icons / lucide

Beautiful & consistent icon toolkit made by the community. Open-source project and a fork of Feather Icons.
https://lucide.dev
ISC License
11.18k stars 506 forks source link

Lucide 1.0 - Defining Scope and Features #1687

Open ericfennis opened 11 months ago

ericfennis commented 11 months ago

Defining Lucide 1.0

Summary

Lucide is almost reaching the 300 in the minor version number and it’s good to start thinking about version 1.0 and start working to this goal.

Looking at some issues we have open on Github we can define 1.0. If combine the relevant issues in one list we can split it up into 3 sections: “icons”, “Community” and “packages”.

Subjects & issues

Icons

**Community**

****Packages****

****Site****

Motivation

Icons

We have added so many new icons in the past year. We now have more than 1300 icons, that’s the crazy number if you compare it with where we started with 287 icons. Thank you to all contributors who contributed all those icons, We should continue with adding more.

But for 1.0 we can’t determine which icons we should have included in our library, it will always be an ongoing process. However, we started issue #119 almost from the beginning. It would be a nice achievement if we could say we have added all requested icons from the feather project. We have still 15 icons to go!

If we look at the whole library, we still have some icons that are not well-named. Some are not generic and some are a bit weirdly named. Also, we want to stop naming icons with a -2 suffix. Brand icons will be removed on v1.0.

We want to make it easier to work with Lucide icons by exploring the idea of flattening SVGs. This will make it easier to use alpha color values with Lucide icons like rgba, hsla etc. Currently, it's making overlapping icons visible. This also can make the library a bit smaller and more performant, since machines only need to draw an SVG path one time.

Community

Some call it our marketing website, our “front of site”. But it’s more of that. It’s a tool to find your icons, a tool to adjust icons, and it’s a book of documentation on how to use our libraries.

The last year we improved it a lot. With the launch of the new website, we have created something we can continue for the next years. And we are happy that we switched to Vitepress which is updated frequently.

But we are not done yet, we still need to improve our documentation. We have already written a “basics” section, which helps to get started. But we also want to write more “in-depth” articles about using Lucide icons. Some topic ideas: “Accessibility”, “Global styling”, “Animations”.

We should highlight the Figma plugin more. The Lucide Figma plugin is a great addition to the Lucide ecosystem. It also meets new designers to contribute to Lucide.

We also have ideas about a second icon library containing icons without known use cases. Before we merge new icons in the library, we require icons to have a valid use case. Otherwise, we will end up with icons people will never use. But unfortunately, we reject icon proposals now and then, some icon designs are beautifully made. So we want to explore the idea of a second library that contains these “rejected” icons. We will research the use of these icons and consider adding them to the main library.

Packages

We want to make all packages as stable as possible, but we still have some issues with certain frameworks. We need to solve these issues before going to v1.

For the React package, we added some experimental features like dynamicImports and JS Docs. These features are well adopted and should be added to all other packages as well.

Packages should be released under the @lucide organization. This will make it more clear that packages are official Lucide packages, and we don’t have any name conflicts when we want to publish new packages.

But it requires devs to change the package name. Not sure if NPM has something to migrate from lucide-react to @lucide/react for example. But we should make this change on Lucide 1.0

Feedback

We encourage the community to provide feedback on this RFC. Your input is valuable and will help us shape the direction of Lucide 1.0. Please feel free to share your thoughts, suggestions, concerns, or any other feedback you may have.

To provide feedback, you can:

We appreciate your involvement and look forward to hearing from you!

Participate

We welcome and encourage everyone to participate in the development and improvement of Lucide 1.0. Your contributions, feedback, and ideas are vital to shaping the future of Lucide.

Feel free to help on those open issues we linked in the “Subjects & issues” section. For new features, make sure you post a comment on the issue and share your ideas before you start working on it.

We will label issues with Version 1 to easily filter on these.

Thank you to all the people who already contributed to Lucide. Let's create an amazing icon library for developers worldwide!

zaaakher commented 11 months ago

Wonderful 👍

Here are a few suggestions that just came to mind:

Lucide History

Something like lucide-history or lucide-archive

Putting all the removed icons (throughout lucide history) into a separate package/repo

It's true that I can just install an older version of lucide to access a removed icon, but that would have two problems:

Lucide AI

an AI that generates new lucide icons

Since the design guidelines/standards are clear and concise, we can perhaps feed it to an AI that would assist generating new icons based on a prompt.

NPM Package names

Getting the @lucide npm handle

It would be great if the npm packages were named like: @lucide/core @lucide/react @lucide/vue ... etc

As I'm writing this, I noticed that @lucide npm handle is taken by an empty unused organization. In this case I suggest the maintainers to file an npm name dispute form. Although it's not garuanteed npm would release that handle to us, but inshallah they will, since this is growing and beautiful open-source project that's well-maintained ✨

Another teeny tiny suggestion is to remove "a fork of Feather Icons" from this project bio since it's already mentioned in the README. (and we have about a thousand more icons than feather-icons). But that's just my opinion, 😁

karsa-mistmere commented 11 months ago

@zaaakher:

lucide-history

To be truly backwards compatible this would pretty much have to be an extra package per framework, which is a burden we're not really willing to take. Other than this technical issue, icons queued for removal are brand icons only and this is due to copyright and brand guideline violations, so still keeping these icons around in any official format would not resolve this issue. As Eric has mentioned, we're looking into building a new Lucide ecosystem where third party icons can be more fluidly added; people wishing to knowingly violate brand icon guidelines or copyrights will be able to piggyback this system, but we will no longer support these icons under the Lucide flag in any way.

Lucide AI

Fun idea, but I'd put this in the v1.1 or even v2 milestone idea box (or we'll never manage to finally release v1). 😄

The @lucide npm namespace

This is part of our v1 RFC, it's in Eric's checklist under Packages. To my best knowledge, the handle was also reserved by him. 🙂

zaaakher commented 11 months ago

it's in Eric's checklist under Packages

Oops I totally missed that, I came in guns blazin' with thoughts I didn't even read the full text 😅

To be truly backwards compatible this would pretty much have to be an extra package per framework, which is a burden we're not really willing to take.

Oh ok in that case it's definitely not worth it since it's mostly for very rare edge cases.

Fun idea, but I'd put this in the v1.1 or even v2 milestone idea box (or we'll never manage to finally release v1). 😄

Agree, I don't think it should be anchored to any version, just an experimental path to explore until its mature enough to be released.

I'm excited about the future of this project and looking forward to collaborating with you all when possible. 👍🌹

josephclaytonhansen commented 6 months ago

Should lucide labs be added to this list? Also, a web icon viewer for labs would be awesome 👀

Phexyaa commented 5 months ago

Hello, is there any interest in a desktop package? For instance a WPF library to turn Lucide icons into ImageSources, Bitmaps, etc. What I have in mind could be used to modify icons details dynamically (size color etc) based on application logic without multiple resource files.

ericfennis commented 4 months ago

@Phexyaa I think this is not something we should discuss for the goal of V1. I recommend creating a discussion so you can evaluate interests from the community.