ice icon indicating copy to clipboard operation
ice copied to clipboard

图标(Icon)解决方案

Open imsobear opened this issue 3 years ago • 11 comments

Do you want to request a feature or report a bug?

feature

What is the current behavior?

icon 比较少

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.

  • icejs version:
  • Node verson:
  • Platform:
  • build.json
  • src/app.(ts|js)

What is the expected behavior?

imsobear avatar Sep 21 '20 08:09 imsobear

方案参考:

  • 使用 https://ant.design/components/icon-cn/ 资源,然后开发者只需要写 <Icon type="xxx" />,我们通过语法分析自动帮他引入 xxx 的 Icon 组件
  • 已有资源如果不满足,可以给个 dynamic 注册的口子,只要注册了就可以用对应的 type

对于开发者来说使用的都是从 Fusion/antd 里导出的 <Icon /> 组件,目标是「同一个 Icon 组件,type 你随便用,扩展 type 不需要改 jsx 代码」。

imsobear avatar Sep 22 '20 02:09 imsobear

非常期待这个功能早日落地,目前我使用以下方式使用额外的icon,但是icon样式比较难控制

const CustomIcon = Icon.createFromIconfontCN({ scriptUrl: '//at.alicdn.com/t/font_2014782_5n26pinyyvm.js', });

we6288815 avatar Oct 10 '20 06:10 we6288815

@imsobear @we6288815 请教下 iconfont的svg js链接怎么生成的?我想引入外部icon但是找不到对应的url

jacktang avatar Oct 19 '20 01:10 jacktang

@jacktang 我是把图标加入到项目里面生成的 image

we6288815 avatar Oct 19 '20 01:10 we6288815

@we6288815 多谢 解决了 👍

jacktang avatar Oct 19 '20 01:10 jacktang

https://iconify.design/ 基于这个方案貌似不错

imsobear avatar Feb 19 '21 03:02 imsobear

https://iconify.design/ 基于这个方案貌似不错

希望能够采用该方案

TrumanDu avatar Jun 05 '21 01:06 TrumanDu

@imsobear 类似于这样?

Usage

import { Icon, addIconSet } from 'ice'

// 自定义 icon
addIconSet('cos', {
  'account-box': {
    body: '<path />'
  },
  'home': {
    body: '<path />'
  }
})

function FC() {
  return (
    <>
      <Icon type="cos:home" style={{ width: 25, height: 25 }} />
      <Icon type="icon:home" style={{ width: 25, height: 25 }} />
    </>
  )
}

Decs

默认添加 https://ant.design/components/icon-cn 的资源,引用时:type = 'icon:114514'

Icon 组件收集所有 type,然后进行分析并远程拉取内部定义的资源

FuzzyFade avatar Jun 09 '21 07:06 FuzzyFade

这个功能什么时候能落地?都等了一两年了……

we6288815 avatar Feb 15 '22 06:02 we6288815

这个功能什么时候能落地?都等了一两年了……

Vite 模式的话可以直接用 unocss 来实现,参考:https://github.com/alibaba/ice/issues/4864#issuecomment-961599838 ,unocss 貌似已经支持 webpack 模式了,不过我目前还没有测试过。

imsobear avatar Feb 15 '22 06:02 imsobear

这个功能什么时候能落地?都等了一两年了……

Vite 模式的话可以直接用 unocss 来实现,参考:#4864 (comment) ,unocss 貌似已经支持 webpack 模式了,不过我目前还没有测试过。

ok,我看看

we6288815 avatar Feb 15 '22 06:02 we6288815