图标
LynKit Icons 是一个现代化的图标库,提供了丰富的图标集合,可用于 React 应用中。这些图标采用 SVG 格式,支持自定义大小、颜色等属性。
特点
- 高质量矢量图标 - 基于 SVG,清晰度不受缩放影响
- 样式可定制 - 支持自定义颜色、大小等属性
- 轻量级 - 支持按需加载,减小应用体积
- 响应式 - 适配不同屏幕尺寸
- 易于使用 - 简单的 API 和丰富的文档
- TypeScript 支持 - 提供完整的类型定义
图标分类
基础图标
- IconAdd - 添加图标
- IconDelete - 删除图标
- IconEdit - 编辑图标
- IconSearch - 搜索图标
- IconRefresh - 刷新图标
- IconMore - 更多图标
方向图标
- IconArrowUp - 向上箭头
- IconArrowDown - 向下箭头
- IconArrowLeft - 向左箭头
- IconArrowRight - 向右箭头
- IconCaretUp - 上三角
- IconCaretDown - 下三角
导航图标
- IconHome - 首页图标
- IconUser - 用户图标
- IconSetting - 设置图标
- IconNotification - 通知图标
- IconMenu - 菜单图标
- IconDashboard - 仪表盘图标
媒体图标
- IconPlay - 播放图标
- IconPause - 暂停图标
- IconStop - 停止图标
- IconVolume - 音量图标
- IconImage - 图片图标
- IconVideo - 视频图标
状态图标
- IconSuccess - 成功图标
- IconWarning - 警告图标
- IconError - 错误图标
- IconInfo - 信息图标
- IconLoading - 加载图标
- IconCheck - 检查图标
社交图标
- IconGithub - GitHub 图标
- IconTwitter - Twitter 图标
- IconFacebook - Facebook 图标
- IconLinkedin - LinkedIn 图标
- IconYoutube - YouTube 图标
- IconInstagram - Instagram 图标
文件类型图标
- IconFile - 文件图标
- IconFolder - 文件夹图标
- IconDocument - 文档图标
- IconImage - 图片文件图标
- IconPdf - PDF 文件图标
- IconZip - 压缩文件图标
安装
npm install @lynkit/icons
使用示例
基本用法
import { IconHome, IconSearch, IconUser } from '@lynkit/icons';
function App() {
return (
<div>
<IconHome /> Home
<IconSearch /> Search
<IconUser /> User
</div>
);
}
自定义大小和颜色
import { IconNotification } from '@lynkit/icons';
function NotificationBadge() {
return (
<div>
<IconNotification size={24} color="#f5222d" />
<IconNotification size="2em" color="royalblue" />
<IconNotification style={{ fontSize: 36, color: 'green' }} />
</div>
);
}
响应式图标
import { IconMenu } from '@lynkit/icons';
function ResponsiveMenu() {
return (
<div>
<IconMenu
className="menu-icon"
style={{
fontSize: 'clamp(24px, 5vw, 40px)',
color: 'currentColor'
}}
/>
</div>
);
}
动画图标
import { IconLoading } from '@lynkit/icons';
function LoadingIndicator() {
return (
<div>
<IconLoading
className="rotate-animation"
color="#1890ff"
size={32}
/>
<style jsx>{`
.rotate-animation {
animation: rotate 1.5s linear infinite;
}
@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
`}</style>
</div>
);
}
图标属性
所有图标组件都接受以下属性:
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
size | number | string | '1em' | 图标大小 |
color | string | 'currentColor' | 图标颜色 |
className | string | - | 自定义类名 |
style | CSSProperties | - | 自定义样式 |
onClick | function | - | 点击事件处理函数 |
按需加载
为了减小打包体积,建议使用按需加载的方式:
// 只导入需要的图标
import { IconHome } from '@lynkit/icons/IconHome';
import { IconSearch } from '@lynkit/icons/IconSearch';
或者使用 babel-plugin-import 自动实现按需加载:
// .babelrc
{
"plugins": [
["import", {
"libraryName": "@lynkit/icons",
"libraryDirectory": "",
"camel2DashComponentName": false
}]
]
}
自定义图标
LynKit Icons 也提供了创建自定义图标的工具:
import { createIcon } from '@lynkit/icons/create';
const CustomIcon = createIcon({
path: 'M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z', // SVG path
viewBox: '0 0 24 24'
});
function App() {
return <CustomIcon size={24} color="tomato" />;
}
浏览器兼容性
LynKit Icons 支持所有现代浏览器。在 IE11 中使用需要添加 SVG polyfill。