更新记录
1.0.2(2026-11-11) 下载此版本
修复
- 修复
size单位不一致的问题:数字和纯数字字符串此前按px渲染,现统一按rpx。 size正则改为/^\d+(\.\d+)?$/,避免空字符串被拼接成px、小数缺少单位的问题。
说明
size="40"现在等价于size="40rpx";如需px,请显式写size="40px"。
升级提示
- 原来依赖
size="40"按 40px 渲染的页面,升级后会变成 40rpx(视觉缩小一半)。如需保持原大小,请改为size="80rpx",或显式写size="40px"。
1.0.1(2026-11-11) 下载此版本
修复
- 修正图标数据中的命名不一致,使
name与font_class保持一致:like→like-fillrefresh→refresh-fillnotification_fill→notificationfill
- 修正
dwon拼写错误,name与font_class统一为down。
新增
-
图标数据新增
aliases字段,组件查找时自动匹配别名:dwon→downlike→like-fillrefresh→refresh-fillnotification_fill→notificationfill
旧写法仍然可用,不需要修改现有页面。
变更
package.json的uni_modules.dependencies声明依赖y-scss。- 完善 README:补充属性说明、图标列表、尺寸规则、主题颜色和常见问题。
平台兼容性
uni-app(5.0)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| × | √ | - | - | - | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | - | - | - | - | - | - | - | - | - | - | - |
y-icon
y-icon 是面向 uni-app(Vue 3) 的字体图标组件,基于本地 iconfont.ttf,内置 29 个常用图标。组件用一个 <text> 节点渲染图标,支持名称、尺寸、颜色配置,默认颜色跟随 y-scss 的明暗主题。
- 当前版本:
1.0.2 - 依赖:
y-scss(提供默认颜色变量--y-title) - 主要使用环境:微信小程序(Vue 3)
- 图标数量:29
特性
- 无图片请求:字体图标,按文字渲染,体积小、缩放清晰。
- 按名称使用:
type="search"即可,内置 29 个常用图标。 - 尺寸灵活:数字和纯数字字符串按
rpx,带单位的字符串按原值。 - 跟随主题:默认
color: rgb(var(--y-title)),自动适配y-scss的明暗主题。 - 旧名兼容:数据层提供
aliases,dwon、like、refresh、notification_fill仍可使用。
兼容性
| 平台 | 状态 | 说明 |
|---|---|---|
| 微信小程序(Vue 3) | ✅ 可用 | 本地 iconfont.ttf 可直接使用 |
| H5 | ⚠️ 未验证 | 本地 ttf 通常可用,需确认构建后的资源路径 |
| App(vue) | ⚠️ 未验证 | 本地 ttf 通常可用 |
| nvue / uni-app x | ❌ 不支持 | nvue 对字体图标支持有限 |
安装
- 将
y-icon目录放入项目的uni_modules/下。 - 同时安装
y-scss(默认颜色依赖其--y-title变量)。 - 依赖已在
package.json的uni_modules.dependencies中声明为["y-scss"]。
y-scss的安装、引入方式和主题变量用法,请参考插件市场文档: https://ext.dcloud.net.cn/plugin?id=30683
组件通过 easycom 自动注册,无需手动 import。
快速开始
<template>
<view class="d-flex ai-center gap-16">
<y-icon type="search" size="40rpx" />
<y-icon type="heart-fill" size="32" color="#D32F2F" />
<y-icon type="right" size="24rpx" color="rgb(var(--y-main))" />
</view>
</template>
属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
type |
String |
'' |
图标名称,取值见「图标列表」 |
size |
Number / String |
null |
数字或纯数字字符串按 rpx;带单位字符串按原值;不传时使用默认 18rpx |
color |
String |
null |
图标颜色,支持十六进制、rgb()、rgb(var(--y-*));不传时使用 --y-title |
尺寸规则
| 写法 | 实际值 | 说明 |
|---|---|---|
size="32" |
32rpx |
数字按 rpx |
size="32rpx" |
32rpx |
字符串带单位,原样使用 |
size="1.5" |
1.5rpx |
纯数字字符串支持小数 |
size="32px" |
32px |
显式写 px 时按 px |
| 不传 | 18rpx |
组件默认字号(约 9px,偏小) |
数字和纯数字字符串统一按
rpx处理,size="40"与size="40rpx"等价;只有显式写px才会按 px 渲染。
图标列表
type |
说明 | 别名 |
|---|---|---|
search |
搜索 | - |
sort |
排序 | - |
config-props |
配置 / 属性 | - |
close |
关闭 | - |
copy |
复制 | - |
up |
向上箭头 | - |
down |
向下箭头 | dwon |
share |
分享 | - |
warning |
警告(线框) | - |
warning-fill |
警告(填充) | - |
like-fill |
点赞(填充) | like |
heart |
爱心 / 收藏(线框) | - |
heart-fill |
爱心 / 收藏(填充) | - |
star |
星标(线框) | - |
star-fill |
星标(填充) | - |
refresh-fill |
刷新(填充) | refresh |
battle-array-fill |
阵容(填充) | - |
crown-fill |
皇冠(填充) | - |
card |
卡牌(线框) | - |
card-fill |
卡牌(填充) | - |
news |
资讯(线框) | - |
news-fill |
资讯(填充) | - |
man |
男性 | - |
woman |
女性 | - |
notificationfill |
通知(填充) | notification_fill |
notification |
通知(线框) | - |
notice |
公告 | - |
left |
左箭头 | - |
right |
右箭头 | - |
颜色与主题
组件默认样式:
.y-icon {
color: rgb(var(--y-title));
}
- 引入
y-scss后,图标颜色自动跟随明暗主题的标题色。 - 未引入
y-scss时,--y-title未定义,color回退为继承父级颜色。 - 可用
color覆盖,例如color="#D32F2F"、color="rgb(var(--y-main))"。 - 组件使用内联
style设置颜色和字号,优先级高于普通 CSS;需要从外部覆盖时请使用!important或直接传color。
插槽
<y-icon type="search">搜索</y-icon>
传入默认插槽时,会显示插槽内容而不是图标字符,适合临时替换或“图标 + 文字”场景。组件根节点是 <text>,插槽内只应放文本,不要放 <view>。
常见问题
Q:图标不显示?
A:先确认 type 是否在「图标列表」中(拼写错误会显示空白);再确认 iconfont.ttf 是否随组件一起打包到了目标平台。
Q:type="down" 能用吗?
A:可以。当前版本已把 dwon 修正为 down,同时保留 dwon 作为别名;like、refresh、notification_fill 也可以作为旧名使用。
Q:size="40" 和 size="40rpx" 有区别吗?
A:没有,两者都按 40rpx 处理。数字和纯数字字符串统一按 rpx;如果确实需要 px,请显式写 size="40px"。
Q:暗色模式下图标颜色没变?
A:默认颜色来自 --y-title,需要引入 y-scss 并确保 page 上定义了主题变量;如果传了 color,以 color 为准。
Q:支持多色图标吗?
A:字体图标是单色字体,只能通过 color 改整体颜色;多色图标请使用 SVG 或图片。
Q:可以只用图标、不装 y-scss 吗?
A:可以,但默认颜色会回退为继承父级颜色。建议保留 y-scss,或在 color 中显式传色值。
更新日志
见 changelog.md。
许可
本项目未声明开源许可证。如需商用、分发或二次发布,请先与作者确认授权方式。

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 9
赞赏 0
下载 12757447
赞赏 1959
赞赏
京公网安备:11010802035340号