xicons
SVG Vue/React components integrated from fluentui-system-icons, ionicons, ant-design-icons, material-design-icons, Font-Awesome, tabler-icons and carbon icons. (Vue3, Vue2, React, SVG)
Top Related Projects
A set of over 5500 free MIT-licensed high-quality SVG icons for you to use in your web projects.
Simply beautiful open-source icons
Premium hand-crafted icons built by Ionic, for Ionic apps and web apps everywhere 🌎
A scalable set of icons handcrafted with <3 by GitHub
The iconic SVG, font, and CSS toolkit
Material Design icons by Google (Material Symbols)
Quick Overview
Xicons is a comprehensive icon library for Vue and React, providing a unified interface for multiple popular icon sets. It includes Material Design Icons, Ionicons, Ant Design Icons, and more, allowing developers to easily integrate and use various icon styles in their projects.
Pros
- Unified API for multiple icon sets, simplifying integration and usage
- Supports both Vue 3 and React frameworks
- Offers a wide variety of icon styles and options
- Provides TypeScript support for improved development experience
Cons
- Large package size due to the inclusion of multiple icon sets
- May require additional configuration for optimal performance in production
- Limited customization options compared to using individual icon libraries directly
- Potential overhead for projects that only need a small subset of icons
Code Examples
- Using Xicons in a Vue 3 component:
<template>
<div>
<MdAccountCircle />
<IosAddCircleOutline />
<AntDesignAndroidFilled />
</div>
</template>
<script setup>
import { MdAccountCircle } from '@vicons/material'
import { IosAddCircleOutline } from '@vicons/ionicons4'
import { AntDesignAndroidFilled } from '@vicons/antd'
</script>
- Using Xicons in a React component:
import React from 'react'
import { MdAccountCircle } from '@ricons/material'
import { IosAddCircleOutline } from '@ricons/ionicons4'
import { AntDesignAndroidFilled } from '@ricons/antd'
const IconExample = () => {
return (
<div>
<MdAccountCircle />
<IosAddCircleOutline />
<AntDesignAndroidFilled />
</div>
)
}
export default IconExample
- Customizing icon size and color in Vue 3:
<template>
<div>
<MdAccountCircle :size="32" color="#007bff" />
</div>
</template>
<script setup>
import { MdAccountCircle } from '@vicons/material'
</script>
Getting Started
To use Xicons in your project, follow these steps:
-
Install the desired icon set package:
npm install @vicons/material # For Vue 3 # or npm install @ricons/material # For React
-
Import and use the icons in your components:
import { MdAccountCircle } from '@vicons/material' // Vue 3 // or import { MdAccountCircle } from '@ricons/material' // React
-
Use the imported icons in your template or JSX:
<MdAccountCircle />
For more advanced usage and configuration options, refer to the official Xicons documentation.
Competitor Comparisons
A set of over 5500 free MIT-licensed high-quality SVG icons for you to use in your web projects.
Pros of Tabler Icons
- Larger icon set with over 3,400 icons, offering more variety
- Consistent and modern design style across all icons
- Supports multiple file formats (SVG, React, Vue, etc.)
Cons of Tabler Icons
- Larger file size due to the extensive icon set
- May require more time to find specific icons in the larger collection
Code Comparison
Tabler Icons (React):
import { IconHome } from '@tabler/icons-react';
function App() {
return <IconHome size={24} color="blue" />;
}
Xicons (Vue):
<template>
<HomeOutlined />
</template>
<script>
import { HomeOutlined } from '@vicons/antd'
export default {
components: { HomeOutlined }
}
</script>
Summary
Tabler Icons offers a larger, more diverse icon set with a consistent design style, making it suitable for projects requiring a wide range of icons. However, this comes at the cost of a larger file size and potentially more time spent searching for specific icons. Xicons, on the other hand, provides a more focused collection of icons from popular icon sets, which may be more suitable for projects with specific icon requirements or those prioritizing a smaller file size.
Both libraries offer easy integration with popular frameworks, but their usage syntax differs slightly. The choice between the two depends on the project's specific needs, such as icon variety, file size constraints, and preferred icon style.
Simply beautiful open-source icons
Pros of Feather
- Simpler and more focused icon set with a consistent, minimalist design
- Widely adopted and recognized in the design community
- Easier to use and integrate with vanilla JavaScript or HTML
Cons of Feather
- Limited number of icons (around 280) compared to xicons' extensive collection
- Less flexibility in terms of icon styles and customization options
- Fewer framework-specific implementations (e.g., Vue, React)
Code Comparison
Feather usage:
<script src="https://unpkg.com/feather-icons"></script>
<i data-feather="circle"></i>
<script>
feather.replace()
</script>
xicons usage (Vue 3):
<template>
<circle-icon />
</template>
<script>
import { CircleIcon } from '@vicons/ionicons5'
export default {
components: { CircleIcon }
}
</script>
xicons offers more framework-specific implementations, while Feather provides a simpler, more universal approach. xicons requires importing specific icons, whereas Feather allows for easier global usage. Both libraries have their strengths, with Feather focusing on simplicity and recognition, and xicons offering more variety and framework support.
Premium hand-crafted icons built by Ionic, for Ionic apps and web apps everywhere 🌎
Pros of Ionicons
- Larger and more established project with a longer history and wider adoption
- Comprehensive documentation and integration guides for various frameworks
- Includes both iOS and Material Design style icons for consistency across platforms
Cons of Ionicons
- Larger file size due to the extensive icon set, which may impact performance
- Less frequent updates compared to Xicons
- Limited customization options for individual icons
Code Comparison
Xicons usage:
import { MdCheckmarkCircle } from '@vicons/ionicons5'
<MdCheckmarkCircle />
Ionicons usage:
<ion-icon name="checkmark-circle"></ion-icon>
Summary
Ionicons is a well-established icon library with extensive documentation and cross-platform support. It offers a wide range of icons but comes with a larger file size. Xicons, on the other hand, provides a more lightweight solution with frequent updates and easier customization. The choice between the two depends on project requirements, with Ionicons being suitable for larger projects requiring comprehensive icon sets, while Xicons may be preferable for smaller projects or those needing more frequent updates and customization options.
A scalable set of icons handcrafted with <3 by GitHub
Pros of Octicons
- Official GitHub icon set, ensuring consistency with GitHub's design language
- Includes SVG and React versions of icons
- Well-documented with clear usage guidelines and examples
Cons of Octicons
- Limited to GitHub-specific icons, less versatile for general-purpose use
- Fewer icon options compared to xicons' extensive collection
- Less flexibility in customization and icon styles
Code Comparison
Octicons (React):
import { MarkGithubIcon } from '@primer/octicons-react'
function MyComponent() {
return <MarkGithubIcon size={24} />
}
xicons (Vue):
<template>
<github-one-icon />
</template>
<script>
import { GithubOneIcon } from '@vicons/antd'
export default { components: { GithubOneIcon } }
</script>
xicons offers a more diverse set of icon libraries and supports multiple frameworks, while Octicons focuses on GitHub-specific icons with official support. xicons provides greater flexibility and variety, but Octicons ensures consistency with GitHub's design system. The choice between the two depends on the project's specific needs and whether GitHub-specific design is a priority.
The iconic SVG, font, and CSS toolkit
Pros of Font-Awesome
- Larger icon set with over 7,000 icons
- Well-established and widely recognized in the web development community
- Offers both free and paid (Pro) versions with additional features
Cons of Font-Awesome
- Larger file size, which may impact page load times
- Requires more setup and configuration for custom usage
- Some advanced features and icons are only available in the paid version
Code Comparison
Font-Awesome (using CDN):
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<i class="fas fa-user"></i>
xicons (using Vue 3):
<template>
<UserOutlined />
</template>
<script>
import { UserOutlined } from '@vicons/antd'
export default {
components: { UserOutlined }
}
</script>
Summary
Font-Awesome offers a vast collection of icons and is widely adopted, but it comes with a larger file size and potential setup complexity. xicons provides a more lightweight and flexible solution, especially for projects using popular JavaScript frameworks. The choice between the two depends on specific project requirements, such as the number of icons needed, framework compatibility, and performance considerations.
Material Design icons by Google (Material Symbols)
Pros of Material Design Icons
- Extensive collection of icons (over 3,000) covering a wide range of use cases
- Official Google design system, ensuring consistency with Android and other Google products
- Regular updates and maintenance by a large team
Cons of Material Design Icons
- Larger file size due to the comprehensive collection
- Limited customization options without additional tools or libraries
- Primarily designed for Material Design, which may not fit all project styles
Code Comparison
Material Design Icons:
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<i class="material-icons">favorite</i>
xicons:
<template>
<MdHeart />
</template>
<script>
import { MdHeart } from '@vicons/material'
</script>
Summary
Material Design Icons offers a vast, officially supported icon set ideal for Google-aligned projects. xicons provides a more flexible, framework-agnostic approach with multiple icon sets and easier customization. The choice depends on project requirements, design preferences, and framework compatibility.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
xicons
English · ä¸æ
Include vicons
(vue3), ricons
(react), sicons
(svg) & v2icons
(vue2).
SVG Vue/React components integrated from fluentui-system-icons
, ionicons
, ant-design-icons
, material-design-icons
, Font-Awesome
, tabler-icons
and carbon
.
Util icon component for customizing color & size is also provided.
Icons Preview & Search
Installation
Icons Installation
# Install packages on your demand
# For react
npm i -D @ricons/fluent
npm i -D @ricons/ionicons4
npm i -D @ricons/ionicons5
npm i -D @ricons/antd
npm i -D @ricons/material
npm i -D @ricons/fa # font awesome
npm i -D @ricons/tabler
npm i -D @ricons/carbon
# For vue3
npm i -D @vicons/fluent
npm i -D @vicons/ionicons4
npm i -D @vicons/ionicons5
npm i -D @vicons/antd
npm i -D @vicons/material
npm i -D @vicons/fa # font awesome
npm i -D @vicons/tabler
npm i -D @vicons/carbon
# For vue2
npm i -D @v2icons/fluent
npm i -D @v2icons/ionicons4
npm i -D @v2icons/ionicons5
npm i -D @v2icons/antd
npm i -D @v2icons/material
npm i -D @v2icons/fa # font awesome
npm i -D @v2icons/tabler
npm i -D @v2icons/carbon
# For SVG file
npm i -D @sicons/fluent
npm i -D @sicons/ionicons4
npm i -D @sicons/ionicons5
npm i -D @sicons/antd
npm i -D @sicons/material
npm i -D @sicons/fa # font awesome
npm i -D @sicons/tabler
npm i -D @sicons/carbon
Icon Utils Installation
Icon utils provide a icon wrapper component for customizing color & size of the inner SVG icon.
npm i -D @ricons/utils # react
npm i -D @vicons/utils # vue3
npm i -D @v2icons/utils # vue2
Usage
For Vue3
<script>
import { Money16Regular } from '@vicons/fluent'
// or
import Money16Regular from '@vicons/fluent/Money16Regular'
// You can directly use the SVG component
// or wrap it in an Icon component from @vicons/utils
import { Icon } from '@vicons/utils'
export default {
components: {
Icon,
Money16Regular
}
}
</script>
<template>
<Icon>
<Money16Regular />
</Icon>
</template>
Q & A
- (Vue3) How to create a function that accepts an icon component as input in TypeScript?
import type { Component } from 'vue'
function f(iconComponent: Component) {
// ...
}
For React
import { Money16Regular } from '@ricons/fluent'
// or
import Money16Regular from '@ricons/fluent/Money16Regular'
// You can directly use the SVG component
// or wrap it in an Icon component from @ricons/utils
import { Icon } from '@ricons/utils'
function App() {
return (
<Icon>
<Money16Regular />
</Icon>
)
}
For Vue2
<script>
import { Money16Regular } from '@v2icons/fluent'
// or
import Money16Regular from '@v2icons/fluent/Money16Regular'
// You can directly use the SVG component
// or wrap it in an Icon component from @v2icons/utils
import { Icon } from '@v2icons/utils'
export default {
components: {
Icon,
Money16Regular
}
}
</script>
<template>
<Icon>
<Money16Regular />
</Icon>
</template>
For SVG
<img src="@sicons/fluent/Money16Regular.svg" />
Utils API
Icon API
An icon component (in @vicons/utils
, @ricons/utils
, @v2icons/utils
) is provided for customizing color & size of the inner SVG icon.
prop | type | default | description |
---|---|---|---|
size | string | number | - | Size of the icon. |
color | string | - | Color of the icon. |
tag | string | span | Tag to be rendered as. |
For example:
import { Icon } from '@ricons/utils' // react
import { Icon } from '@vicons/utils' // vue3
import { Icon } from '@v2icons/utils' // vue2
// render it
;<Icon color="green" size="48">
<SomeIcon />
</Icon>
IconConfigProvider API
IconConfigProvider will affect all the descendant Icons' default prop value.
prop | type | default | description |
---|---|---|---|
size | string | number | - | Size of the icon. |
color | string | - | Color of the icon. |
tag | string | span | Tag to be rendered as. |
For example:
import { IconConfigProvider, Icon } from '@ricons/utils' // react
import { IconConfigProvider, Icon } from '@vicons/utils' // vue3
import { IconConfigProvider, Icon } from '@v2icons/utils' // vue2
// render it
;<IconConfigProvider color="green" size="48">
<App>
<Icon>
<SomeIcon />
</Icon>
<App/>
</IconConfigProvider>
Common Issues
too many open files
This is because the count of opened files exceeds the limit of operation system.
Use ulimit -n
to check the limit.
You can only increase the limit or import icons by path:
import Money16Regular from '@ricons/fluent/Money16Regular'
Icon Utils Packages
package | version | description |
---|---|---|
@ricons/utils | Util icon components for react. | |
@vicons/utils | Util icon components for vue3. | |
@v2icons/utils | Util icon components for vue2. |
Icon Packages
Vue3
package | version |
---|---|
@vicons/fluent | |
@vicons/ionicons4 | |
@vicons/ionicons5 | |
@vicons/antd | |
@vicons/material | |
@vicons/fa | |
@vicons/tabler | |
@vicons/carbon |
React
package | version |
---|---|
@ricons/fluent | |
@ricons/ionicons4 | |
@ricons/ionicons5 | |
@ricons/antd | |
@ricons/material | |
@ricons/fa | |
@ricons/tabler | |
@ricons/carbon |
Vue2
package | version |
---|---|
@v2icons/fluent | |
@v2icons/ionicons4 | |
@v2icons/ionicons5 | |
@v2icons/antd | |
@v2icons/material | |
@v2icons/fa | |
@v2icons/tabler | |
@v2icons/carbon |
SVG
package | version |
---|---|
@sicons/fluent | |
@sicons/ionicons4 | |
@sicons/ionicons5 | |
@sicons/antd | |
@sicons/material | |
@sicons/fa | |
@sicons/tabler | |
@sicons/carbon |
Credit
Icon Set | License |
---|---|
ant-design-icons | MIT |
fluentui-system-icons | MIT |
Font-Awesome | CC BY 4.0 License |
ionicons | MIT |
material-design-icons | Apache 2 |
tabler-icons | MIT |
carbon | Apache 2 |
Top Related Projects
A set of over 5500 free MIT-licensed high-quality SVG icons for you to use in your web projects.
Simply beautiful open-source icons
Premium hand-crafted icons built by Ionic, for Ionic apps and web apps everywhere 🌎
A scalable set of icons handcrafted with <3 by GitHub
The iconic SVG, font, and CSS toolkit
Material Design icons by Google (Material Symbols)
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot