Gathering detailed insights and metrics for @iconify/types
Gathering detailed insights and metrics for @iconify/types
Gathering detailed insights and metrics for @iconify/types
Gathering detailed insights and metrics for @iconify/types
Universal icon framework. One syntax for FontAwesome, Material Design Icons, DashIcons, Feather Icons, EmojiOne, Noto Emoji and many other open source icon sets (over 150 icon sets and 200k icons). SVG framework, React, Vue and Svelte components!
npm install @iconify/types
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
4,654 Stars
976 Commits
132 Forks
22 Watching
10 Branches
24 Contributors
Updated on 28 Nov 2024
TypeScript (84.99%)
JavaScript (4.5%)
Svelte (3.76%)
Vue (3.36%)
HTML (2.12%)
CSS (1.19%)
Dockerfile (0.09%)
Cumulative downloads
Total Downloads
Last day
-2.7%
170,190
Compared to previous day
Last week
3.5%
965,296
Compared to previous week
Last month
14.9%
3,888,854
Compared to previous month
Last year
147.9%
29,646,402
Compared to previous year
1
Iconify is the most versatile icon framework.
For more information visit https://iconify.design/.
There are several parts of project, some are in this repository, some are in other repositories.
What is included in this repository?
packages
contains main reusable packages: types, utilities, reusable functions used by various components.iconify-icon
contains iconify-icon
web component that renders icons. It also contains wrappers for various frameworks that cannot handle web components.components
contains older version of icon components that are native to various frameworks, which do not use web component.plugins
contains plugins for various frameworks, which generate icons.Other repositories you might want to look at:
iconify/icon-sets
repository.iconify/tools
repository.Main packages in this repository are various icon components.
Why are those icon components needed? Iconify icon components are not just yet another set of icon components. Unlike other icon components, Iconify icon components do not include icon data. Instead, icon data is loaded on demand from Iconify API.
Iconify API provides data for over 200,000 open source icons! API is hosted on publicly available servers, spread out geographically to make sure visitors from all over the world have the fastest possible connection with redundancies in place to make sure it is always online.
When you use an icon font, each visitor loads an entire font, even if your page only uses a few icons. This is a major downside of using icon fonts. That limits developers to one or two fonts or icon sets.
If you are using typical icon set that is not a font, you still need to bundle all icons used in your application, even ones that visitor does not need.
Unlike icon fonts and components for various icon sets, Iconify icon components dynamically load icon data from Iconify API whenever it is needed.
This makes it possible to have an unlimited choice of icons!
There are several types of packages, split in their own directories.
Directory packages
contains main packages that are reusable by all other packages in this repository as well as third party components.
Main packages:
Directory iconify-icon
contains iconify-icon
web component and wrappers for various frameworks.
Package | Usage |
---|---|
Web component | Everywhere |
React wrapper | React |
SolidJS wrapper | SolidJS |
Frameworks that are confirmed to work with web components without custom wrappers:
class
instead of className
. Wrapper fixes it and provides types.Directory iconify-icon-demo
contains demo packages that show usage of iconify-icon
web component.
npm run dev
to start demo.npm run dev
to start demo.npm run dev
to start demo.npm run dev
to start the demo.npm run dev
to start demo.npm run dev
to start demo. Requires custom config, see below.npm run build
to build demo and npm run serve
to start it.npm run dev
to start demo.npm run start
to start demo.When using web component with Nuxt 3, you need to tell Nuxt that iconify-icon
is a custom element. Otherwise it will show few warnings in dev mode.
Example nuxt.config.ts
:
1export default defineNuxtConfig({ 2 vue: { 3 compilerOptions: { 4 isCustomElement: (tag) => tag === 'iconify-icon', 5 }, 6 }, 7});
This configuration change is not needed when using Vue with @vitejs/plugin-vue
.
Directory components
contains native components for several frameworks:
Package | Usage |
---|---|
React component | React |
Vue component | Vue |
Svelte component | Svelte |
Components in directory components
are slowly phased out in favor of iconify-icon
web component. Components are still maintained and supported, but it is better to switch to web component.
Functionality is identical, but web component has some advantages:
Deprecation status:
iconify-icon
.iconify-icon
using @iconify-icon/react
wrapper.iconify-icon
, does not require Svelte specific wrapper.iconify-icon
, does not require Vue specific wrapper.iconify-icon
, does not require Vue specific wrapper. Make sure you are not using Webpack older than version 5.iconify-icon
, does not require Ember specific wrapper.To import web component, just import it once in your script, as per iconify-icon
README file.
Directory components-demo
contains demo packages that show usage of icon components.
npm run dev
to start demo.npm run dev
to start demo.npm run dev
to start demo.npm run dev
to start demo.npm run dev
to start demo.npm run dev
to start the demo.Directory plugins
contains plugins.
Package | Usage |
---|---|
Tailwind CSS plugin | Tailwind CSS |
Directory plugins-demo
contains demo packages that show usage of plugins.
npm run build
to build demo, open src/index.html
in browser to see result.See CONTRIBUTING.md.
Documentation for all packages is available on Iconify documentation website:
Iconify is licensed under MIT license.
SPDX-License-Identifier: MIT
Some packages of this monorepo in previous versions were dual-licensed under Apache 2.0 and GPL 2.0 licence, which was messy and confusing. This was later changed to MIT for simplicity.
This licence does not apply to icons. Icons are released under different licences, see each icon set for details. Icons available by default are all licensed under various open-source licences.
© 2020-PRESENT Vjacheslav Trushkin
No vulnerabilities found.
Reason
0 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
Found 3/26 approved changesets -- score normalized to 1
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
dependency not pinned by hash detected -- score normalized to 0
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
security policy file not detected
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
39 existing vulnerabilities detected
Details
Score
Last Scanned on 2024-11-25
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More