-
Notifications
You must be signed in to change notification settings - Fork 9.6k
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
Updating Material Design Icons npm package [central issue] #1129
Comments
Issues closable when this issue has been resolved can be found with the |
Thank you thank you thank you! This change is exactly what's needed! Great you are taking this seriously now. 👍
Wow! That gives you an idea of how many people / projects are using an outdated version of these icons without realizing it. This will all be so much better if you publish to NPM on release. |
Hey @RoelN Curious, and just want to be clear in my reading of this issue, but is it proposing a plan / path for:
or
The wording of the issue appears to be written in the 3rd person, maybe implying option 2. Is that the case? Are you a maintainer or just trying to share with the maintainers how to accomplish option 1? Thanks in advance, and either way appreciate you putting this together and consolidating all these issues into once place. 💯 |
@thescientist13 This is a proposal from me to the repo owners, so option 1 :-) |
Thanks for putting this together!
Wondering if anyone had any luck with this. I tried to take a stab at it, but it might be too big of a task for a contributor like myself, due to all the restructuring that took place between v3.0.2 and v4.0.0. |
@tpapaz Also, it seems they don't hear us, or don;t care, because where are they? #1050 and this issue are the top issues for this repo right now. I basically am only still here because I opened #1050 and want to follow up on it. But in all other ways I already gave up on this repo. NPM install this stuff has been broken for years and now is even removed from this repo, so in essence this repo now has zero value to me. I am not going to create some personal fork and publish that to NPM, especially since that is now much harder because they removed all NPM things. And they are not going to publish it, apparently. So I just need to download the icon font directly and self-host it. That's annoying but not hard, so that's what I do now. This repo is now dead to me technically speaking since I don't see what it could bring me if not the source code, not the icons, not reliable documentation... then what? If anyone that has commit/publish rights on this repo reads this; now might be a good time to speak. Because when issues like #1054 and this one are created by the community and the maintainers say nothing, that basically says this project is unmaintained and dead. Let me get one thing straight about my opinion on this repo. I feel not supporting NPM is not necessarily wrong. In fact, since NPM is owned by Microsoft, one of Google's big competitors, that's a valid reason all by itself already. However, you are doing it all wrong the way you are doing it now. And frankly, you should be ashamed of yourself, the way you are handling this. And that's what pisses me off. Not the decision per se, but the reasons you give for it and the way you handle it. The reason you give 'not enough resources' shows zero respect for the fact that third-party developers buying into your Material Design philosophy also invest scarce resources. You are leaving them hanging and waste their resources so you can save some for Google. Right now, some poor third party developer is trying to make an app for a client. He sold that client on the Material Design philosopy. And he is following your instructions to the letter and is running It's not that hard to do. And this community we have here is willing to help you with it. I personally would still help you with it, pissed as I am. And I would help you understand why it's important for this package to be on NPM. I can tell you about Less and Sass and CSS Modules and CSS in JS and Webpack and module loaders and bundles and code splitting and all those nitty gritty technical details that come into play when we try to write progressive web apps. Because there is some real irony here. Material Design is obviously blending web and apps into one uniform design philosophy. It very explicitly targets both native phone/tablet apps as well as the web. And it explicitly targets a wide range of screen sizes. Everything about it screams web app / SPA / progressive web app. Modern. And those modern web apps use modern toolchains to build. We want to install service workers, do client-side navigation, load bundles on demand, perform background requests, do offline caching etc etc. The very apps that Material Design is targetting are complex to build and rely on toolchains like Webpack that all use NPM. Yes, Webpack ❤️ NPM. The very developers building the very apps that Material Design targets rely on NPM the most of all developers in the web ecosystem. Old-school people using Bootstrap and jQuery don't care about NPM. But modern devs using React and Angular, they do care about NPM. A lot. Because they use it for everything. Well, everything except for Material Design Icons that is. Or at least, that's what they will eventually discover after they went through the whole 'read outdated docs, install outdated version, seems to work for a while, breaks mysteriously for some icons, spend hours debugging / researching / read this issue' cycle. I know I'm ranting. I am passionate, I'm sorry. But I'm willing and able to spend this passion working FOR the project i.s.o. ranting against it. But I need a maintainer to speak up and tell us. Do you want to learn how to publish to NPM? May we help you? Will you please reconsider your decision and hear us out first? Because NPM is HUGE. It is THE most important repository in the Javascript ecosystem. And publishing to it is simple. We can teach you how. |
This issue proposes separate packages for web and SVG: #14 |
@Download Thanks for writing this. It's an absolute joke for a company like Google to respond with "lack of resources". |
@RoelN when can community expect to get fonts for all themes? And icons to match the ligatures, that are provided on the icon page At the moment npm package provided ( |
I created the following npm packages that are automatically updated and published using GitHub Actions. So they will always have the latest icons. material-icons
@material-design-icons/font
@material-design-icons/svg
|
This is brilliant, thank you @marella ! |
Just deprecate this repo already and let the community maintain something better. It's deceptive and confusing to keep this outdated repo going and linking to it from the google font docs. |
Is there any update on this issue? |
Updating Material Design Icons npm package
This document proposes a way to automatically publish the Material Design icons as an npm package.
Current version is 3.0.1 (https://www.npmjs.com/package/material-design-icons) published in early 2016.
Initial set up
Set your npm author info:
Create a
package.json
. This can be based on the last version when this repo still had a build process → https://github.com/google/material-design-icons/blob/a6145e167b4a3a65640dd6279319cbc77a7e4e96/package.json ThedevDependencies
stuff can be omitted as this isn't in use anymore.Initialize the npm package:
The package can then be manually published:
Automated publishing to the npm registry
Each time you create a new release, you can trigger a workflow to publish your package.
https://docs.github.com/en/actions/guides/publishing-nodejs-packages
Updates necessary for backwards compatibility
Documentation
Based on decisions taken in this issue, update the documentation accordingly.
Web fonts missing
WOFF and WOFF2 files are missing. EOT was also delivered in version 3.0.1 but could be omitted since it's 2021?
Stylesheet is missing
Developers use the current npm package as such:
or even
Note the change of directory from
iconfont
tofont
.Most recent CSS file shipped → https://github.com/google/material-design-icons/blob/a6145e167b4a3a65640dd6279319cbc77a7e4e96/iconfont/material-icons.css
Sprites missing
There are no pre-generated sprite sheets. These must either be recreated, or be removed from the package, resulting in backwards incompatibility.
The original Gulp file could be brought back to life → https://github.com/google/material-design-icons/blob/a6145e167b4a3a65640dd6279319cbc77a7e4e96/gulpfile.babel.js
Notes
In 3.0.1 there doesn't seem to be an approach to use the SVG or PNG icons. People complain about the large package size on Stackoverflow. They could perhaps be omitted from the npm package, or a mechanism can be added to easily import them.
Alternative approach: deprecate or discourage from use
The 3.0.1 package has ~100.000 weekly downloads. Roughly 380 other packages depend on it. These users are all getting outdated icons.
If maintenance can't be guaranteed, the package can be abandoned and marked as "Deprecated" → https://docs.npmjs.com/deprecating-and-undeprecating-packages-or-package-versions
References and examples regarding npm should be removed from the repository and developer guide.
The text was updated successfully, but these errors were encountered: