图标与主题
这篇解决什么
侧栏图标写哪种字符串、页面里怎么引 Iconify、主题开关为什么顶栏看不见。读完用 IconifyIcon 和菜单 icon 字段,不要再引一套本地 svg 雪碧图。
默认主题 theme.mode = light。widget.themeToggle、widget.languageToggle 在本仓库都是 false。工程入口见 前端工程结构。
示意图:菜单图标跟后端走。页面图标跟组件走。主题默认亮色。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 页面图标 | <IconifyIcon icon="lucide:..." /> | @vben/icons |
| 预置导出 | 登录微信 / 钉钉等 | ruoyi-office-vben/packages/icons/src/iconify/index.ts |
| 菜单图标 | system_menu.icon | ruoyi-office/yudao-module-system/ 菜单,见 菜单与路由 |
| 偏好 | 主题、导航是否显示图标 | apps/web-antd/src/preferences.ts |
| Logo | public/static/imgs/logo.png | preferences.logo |
侧栏、面包屑、页签:navigation.showIcon = true,tabbar.showIcon / breadcrumb.showIcon 为 false。改页签图标不会自动出现在面包屑。
菜单 icon 填 Iconify 名,例如 lucide:cpu、ant-design:setting-outlined。对不上就空着,不要填本地文件名。
页面里常用 lucide: 前缀。表格工具栏用 ACTION_ICON(#/adapter/vxe-table),不要和菜单 icon 混用。
样式优先 Tailwind 类。组件自己的颜色用 scoped。不要为了换肤去改 Ant Design 源码 less。
生产 Logo 走 import.meta.env.BASE_URL,子路径 /web/ 时不要写死 /static/imgs/logo.png。
字段
| 名称 | 说明 | 仓库路径 |
|---|---|---|
icon | Iconify 字符串 | system_menu / IconifyIcon |
theme.mode | 默认 light | preferences.ts |
navigation.iconColor | 侧栏图标跟主题色 | theme-primary |
顶栏默认没有主题按钮
widget.themeToggle = false。要给客户切暗色,先改偏好再测,不要以为组件坏了。
先搜已有导出
登录渠道那几个图标已在 packages/icons 具名导出。业务页直接 icon="lucide:plus" 即可,不必每个都 createIconifyIcon。
<IconifyIcon class="size-5" icon="lucide:cpu" />