Convert Figma logo to code with AI

07akioni logoxicons

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)

1,266
55
1,266
46

Top Related Projects

A set of over 5500 free MIT-licensed high-quality SVG icons for you to use in your web projects.

24,931

Simply beautiful open-source icons

17,564

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

  1. 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>
  1. 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
  1. 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:

  1. Install the desired icon set package:

    npm install @vicons/material  # For Vue 3
    # or
    npm install @ricons/material  # For React
    
  2. Import and use the icons in your components:

    import { MdAccountCircle } from '@vicons/material'  // Vue 3
    // or
    import { MdAccountCircle } from '@ricons/material'  // React
    
  3. 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.

24,931

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.

17,564

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

xicons License: MIT

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

https://www.xicons.org

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

vue3 demo

<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

react demo

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

vue2 demo

<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.

proptypedefaultdescription
sizestring | number-Size of the icon.
colorstring-Color of the icon.
tagstringspanTag 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.

proptypedefaultdescription
sizestring | number-Size of the icon.
colorstring-Color of the icon.
tagstringspanTag 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

packageversiondescription
@ricons/utilsnpm versionUtil icon components for react.
@vicons/utilsnpm versionUtil icon components for vue3.
@v2icons/utilsnpm versionUtil icon components for vue2.

Icon Packages

Vue3

packageversion
@vicons/fluentnpm version
@vicons/ionicons4npm version
@vicons/ionicons5npm version
@vicons/antdnpm version
@vicons/materialnpm version
@vicons/fanpm version
@vicons/tablernpm version
@vicons/carbonnpm version

React

packageversion
@ricons/fluentnpm version
@ricons/ionicons4npm version
@ricons/ionicons5npm version
@ricons/antdnpm version
@ricons/materialnpm version
@ricons/fanpm version
@ricons/tablernpm version
@ricons/carbonnpm version

Vue2

packageversion
@v2icons/fluentnpm version
@v2icons/ionicons4npm version
@v2icons/ionicons5npm version
@v2icons/antdnpm version
@v2icons/materialnpm version
@v2icons/fanpm version
@v2icons/tablernpm version
@v2icons/carbonnpm version

SVG

packageversion
@sicons/fluentnpm version
@sicons/ionicons4npm version
@sicons/ionicons5npm version
@sicons/antdnpm version
@sicons/materialnpm version
@sicons/fanpm version
@sicons/tablernpm version
@sicons/carbonnpm version

Credit

Icon SetLicense
ant-design-iconsMIT
fluentui-system-iconsMIT
Font-AwesomeCC BY 4.0 License
ioniconsMIT
material-design-iconsApache 2
tabler-iconsMIT
carbonApache 2

NPM DownloadsLast 30 Days