You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

3.9 KiB

category type title toc
Components General Icon false

Semantic vector graphics.

List of icons

Click the icon and copy the code.

Directional Icons

import IconSet from 'site/theme/template/IconSet';
ReactDOM.render(<IconSet className="icons" catigory="direction" />, mountNode);

Suggested Icons

import IconSet from 'site/theme/template/IconSet';
ReactDOM.render(<IconSet className="icons" catigory="suggestion" />, mountNode);

Application Icons

import IconSet from 'site/theme/template/IconSet';
ReactDOM.render(<IconSet className="icons" catigory="other" />, mountNode);

Brand and Logos

import IconSet from 'site/theme/template/IconSet';
ReactDOM.render(<IconSet className="icons" catigory="logo" />, mountNode);

API

Icon

Property Description Type Default
type Type of the ant design icon string -
style Style properties of icon, like fontSize and color CSSProperties -
theme Theme of the ant design icon 'filled' | 'outlined' | 'two-tone' -
svgStyle Inline style to apply to the SVG element CSSProperties -
svgClassName Define extra class name for the SVG element string -
spin Rotate icon with animation boolean false
component The component used for the root node. This will override the type property. ComponentType<CustomIconComponentProps> -
primaryColor Only support the two-tone icon. Specific the primary color. string (hex color) -
secondaryColor Only support the two-tone icon. Specific the secondary color. string (hex color) -

All the icons will render to <svg>. You can still set style and className for size and color of icons.

<Icon type="message" style={{ fontSize: '16px', color: '#08c' }} />

You can import svg icon as an react component by using webpack and @svgr/webpack. @svgr/webpack's options reference.

// webpack.config.js
{
  test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
  use: [
    {
      loader: 'babel-loader',
    },
    {
      loader: '@svgr/webpack',
      options: {
        babel: false,
        icon: true,
      },
    },
  ],
}
import { Icon } from 'antd';
import MessageSvg from 'path/to/message.svg'; // path to your '*.svg' file.

ReactDOM.render(
  <Icon component={MessageSvg} />,
  mountNode
);

CustomIconComponentProps

The following properties are available fot the component:

Property Description Type Default
width The width of the svg element string | number '1em'
height The height of the svg element string | number '1em'
fill Define the color used to paint the svg element string 'currentColor'
className The computed class name of the svg element string -
style The computed style of the svg element CSSProperties -

Icon.createFromIconfontCN(options)

This method is specified for iconfont.cn.

const MyIcon = Icon.createFromIconfontCN({
  namespace: 'foo', // identifier
  scriptUrl: 'at.alicdn.com/t/font_8d5l8fzk5b87iudi', // generated by iconfont.cn
  prefix: 'icon-',
});

ReactDOM.render(<MyIcon type="example" />, mountedNode);

It create a component that uses SVG sprites in essence.

The following options are available:

Property Description Type Default
scriptUrl The URL generated by iconfont.cn project. string -
extraCommonProps Define extra properties to the component { [key: string]: any } {}

The property scriptUrl should be set together with property namespace.

See iconfont.cn documents to learn about how to generate scriptUrl.