@uiw/icons
The premium icon font for uiwjs Component Library. Designed @uiw/icons
by @liwen0526.
Visit https://uiwjs.github.io/icons/ and check out the search feature, which has keywords identifying common icon names and styles. For example, if you search for "arrow" we call up every icon that could possibly be used as an arrow. We've also included each icon's class name for easy copy / pasting when you're developing!
They are free to use and licensed under MIT. We intend for this icon pack to be used with uiw, but it’s by no means limited to it. Use them wherever you see fit, personal or commercial.
Installation
npm install @uiw/icons --save
HTML Example
You can use https://uiwjs.github.io/icons/ to easily find the icon you want to use. Once you've copied the desired icon's CSS classname, simply add the icon and icon's classname, such as apple
to an HTML element.
You need link CSS
<link rel="stylesheet" type="text/css" href="node_modules/@uiw/icons/w-icon.css">
Used in Less:
@import "~@uiw/icons/fonts/w-icon.css";
Used in JS:
import '@uiw/icons/fonts/w-icon.css';
// or
import '@uiw/icons/fonts/w-icon.less';
note: It has a w-icon-
prefix.
<i class="w-icon-apple"></i>
Or use the Unicode
, You can use Unicode website to easily find the Unicode
icon you want to use.
<style>
.iconfont{
font-family: "w-icon" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0.2px;
-moz-osx-font-smoothing: grayscale;
}
</style>
<span class="iconfont"></span>
Or manually download and link **@uiw/icons**
in your HTML, It can also be downloaded via UNPKG:
<link rel="stylesheet" type="text/css" href="https://unpkg.com/@uiw/icons/fonts/w-icon.css">
<span class="w-icon-adobe"></span>
In Webpack
{
test: /w-icon\.(eot|ttf|svg)$/,
use: [
{
loader: require.resolve('url-loader'),
options: { limit: 8192 }
},
{
loader: require.resolve('file-loader'),
options: {
name: 'static/fonts/[name].[hash:8].[ext]',
}
}
]
},
Used in React
Icons are used as components. v2.6.2+
support.
import { Adobe, Alipay } from '@uiw/icons';
import { Alipay } from '@uiw/icons/Alipay';
<Adobe style={{ fill: 'red' }} />
<Alipay height="36" />
To use SVG images as React components directly, webpack loader support is required.
Install dependencies:
yarn add @svgr/webpack file-loader
Configure webpack loader:
// webpack.config.js
{
test: /\.svg$/,
use: [
{
loader: require.resolve('@svgr/webpack'),
options: {
prettier: false,
svgo: false,
svgoConfig: {
plugins: [{ removeViewBox: false }],
},
titleProp: true,
ref: true,
},
},
{
loader: require.resolve('file-loader'),
options: {
name: 'static/media/[name].[hash].[ext]',
},
},
],
issuer: {
and: [/\.(ts|tsx|js|jsx|md|mdx)$/],
},
},
You can then import the SVG as a React component like this:
import { ReactComponent as ComLogo } from '@uiw/icons/icon/alipay.svg';
<ComLogo />
Custom Icon Component
Create an Icon
component.
import React from 'react';
import svgPaths from '@uiw/icons/fonts/w-icon.json';
const renderSvgPaths = (type) => {
const pathStrings = svgPaths[type];
if (pathStrings == null) {
return null
}
return pathStrings.map((d, i) => <path key={i} d={d} fillRule="evenodd" />)
}
export default class Icon extends React.PureComponent {
render() {
const { type, color } = this.props;
if (type == null || typeof type === "boolean") {
return null;
}
return (
<svg fill={color} viewBox={`0 0 24 24`}>{this.renderSvgPaths(type)}</svg>
);
}
}
Use the Icon
component:
const demo = () => {
return (
<Icon type="heart-on" />
)
}
Development
Run the npm install
to install the dependencies after cloning the project and you'll be able to:
To build *.svg
*.ttf
*.woff
*.eot
files
npm run font
To build site and push gh-pages branch
npm run start
Contributors
As always, thanks to our amazing contributors!
Made with github-action-contributors.
License
Created By svgtofont, Licensed under the MIT License.