图标 Icon
基于字体的图标集,可以通过 Icon 组件使用,也可以在其他组件中通过 icon 属性引用
使用
API安装使用
import { TiIcon } from '@titian-design/mobile-react'
用法示例
基础用法
const App: React.FC = () => {
  return (
    <>
      <TiIcon name="plus" size={30} color="#f60" />
    </>
  )
}
使用自定义图标
在组件层级配置
- index.tsx
 - index.css
 
const App: React.FC = () => {
  return (
    <TiIcon prefix="weimob-icon" name="plus" />
  )
}
// 在html的head中添加link标签,引入字体css文件,或者在全局index.css文件中引入如下字体css文件内容
@font-face {
  font-family: 'weimob-icon';
  src: url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.eot?t=1669700415255'); /* IE9*/
  src: url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.eot?t=1669700415255#iefix') form  ('embedded-opentype'), /* IE6-IE8 */
      url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.woff2?t=1669700415255')
      format('woff2'),
    url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.woff?t=1669700415255')
      format('woff'),
    url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.ttf?t=1669700415255')
      format('truetype'),
    /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
      url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.svg?t=1669700415255#weimob-icon')
      format('svg'); /* iOS 4.1- */
}
.weimob-icon {
  font-family: "weimob-icon" !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.weimob-icon-plus:before {
  content: "\e60b";
}
在全局配置层控制
危险
该配置会覆盖默认配置,如果需要使用组件库提供的图标,需要组件层级添加 prefix="titian"
- index.tsx
 - index.css
 
const App: React.FC = () => {
  return (
    <TiConfigProvider iconClassPrefix="weimob-icon">
      <TiIcon name="plus" />
      <TiIcon name="share" />
    </TiConfigProvider>
  )
}
// 在html的head中添加link标签,引入字体css文件,或者在全局index.css文件中引入如下字体css文件内容
@font-face {
  font-family: 'weimob-icon';
  src: url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.eot?t=1669700415255'); /* IE9*/
  src: url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.eot?t=1669700415255#iefix') form  ('embedded-opentype'), /* IE6-IE8 */
      url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.woff2?t=1669700415255')
      format('woff2'),
    url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.woff?t=1669700415255')
      format('woff'),
    url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.ttf?t=1669700415255')
      format('truetype'),
    /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
      url('https://cdn2.weimob.com/saas/saas-fe-sirius-orion-node/production/106/weimob-icon.svg?t=1669700415255#weimob-icon')
      format('svg'); /* iOS 4.1- */
}
.weimob-icon {
  font-family: "weimob-icon" !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.weimob-icon-plus:before {
  content: "\e60b";
}
.weimob-icon-share:before {
  content: "\e6cf";
}
TiIcon API
属性 Properties
| 名称 | 类型 | 必填 | 默认值 | 说明 | 备注 | 
|---|---|---|---|---|---|
| name | string | 是 | - | Icon 名字 | - | 
| rotate | string | 否 | - | 旋转 | - | 
| color | string | 否 | - | 颜色 | - | 
| size | number | 否 | - | 大小 | - | 
| hyphen | string | 否 | - | 连接符 | - | 
| spin | boolean | 否 | false | 旋转动画 | - | 
| prefix | string | 否 | - | 类名前缀 | - | 
| iconStyle | string | 否 | - | 取值:'' lovely popular | - | 
| extStyle | string | Record<string, string> | 否 | - | 根节点样式 | - | 
外部样式类 External Classes
| 类名 | 说明 | 备注 | 
|---|---|---|
| extClass | 扩展样式类名 | - | 
CSS 变量 CSS Variable
| 变量 | 默认值 | 说明 | 备注 | 
|---|---|---|---|
| --icon-font-size | inherit | 字体图标大小 | - | 
| --icon-color | inherit | 字体图标颜色 | - |