naive-icons 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -2
- package/README.en.md +19 -7
- package/README.md +19 -6
- package/dist/index.d.mts +15 -19
- package/dist/index.d.ts +15 -19
- package/dist/index.js +31 -30
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +28 -30
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/svg/arrow-down.svg +4 -0
- package/svg/arrow-left.svg +4 -0
- package/svg/arrow-right.svg +4 -0
- package/svg/arrow-up.svg +4 -0
- package/svg/user.svg +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -4,19 +4,27 @@
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
官方文档站点重构,并新增 4 个方向键图标。
|
|
8
8
|
|
|
9
9
|
改进
|
|
10
10
|
|
|
11
11
|
- 官网三层(HTML / CSS / JS)完全重写:语义化标签、统一的设计令牌体系(间距 4px 基数、圆角与阴影尺度)、清除模板导出的冗余属性
|
|
12
12
|
- 信息架构收敛:原先并列的 4 个代码面板合并为「安装 / React / SVG / TypeScript」标签页,调色板与设计原则合并为「设计规范」一节
|
|
13
13
|
- 视觉基调改为温暖手绘:纸张颗粒纹理、暖调深色模式、手绘分隔线,浅色与深色主题均可手动切换并记忆
|
|
14
|
+
- 新增 4 个方向键图标:上(arrow-up)、下(arrow-down)、左(arrow-left)、右(arrow-right),与已有的关闭(close)图标组成基础方向/操作图标组;同步更新 `index.ts`、`types.ts`、`svg/` 与官网数据
|
|
14
15
|
- 引入 LXGW 悠哉字体(OFL,自托管子集化,仅 715 个字符 ≈ 170KB ×2 个字重)作为网站字体;图标库本体仍无任何字体/资源依赖
|
|
15
16
|
- 图标浏览器工具栏在宽屏下吸顶,新增分类结果计数、搜索清空、描边快捷色板与自定义取色器
|
|
16
17
|
- 预览切换深色底时,若描边仍为默认墨黑会自动换成奶油色,避免图标不可见;用户显式选择的颜色不会被改写
|
|
17
18
|
- 详情弹窗支持键盘方向键连续切换图标,打开时背景内容设为 inert
|
|
18
19
|
- 无障碍补强:skip link、aria-live 结果计数、标签页方向键切换、焦点归还
|
|
19
20
|
|
|
21
|
+
## 1.0.2
|
|
22
|
+
|
|
23
|
+
修复
|
|
24
|
+
|
|
25
|
+
- 修复组件不传 `size` 时没有明确尺寸的问题:`normalizeIconProps` 现在始终向 svg 写入 `width` / `height`,默认 24,保证 `<HomeIcon />` 也有稳定的 24px 尺寸
|
|
26
|
+
- 顺手补上默认 `fill="none"`,避免与 SVG 内部已有的 `fill` 属性在覆盖时产生歧义
|
|
27
|
+
|
|
20
28
|
## 1.0.1
|
|
21
29
|
|
|
22
30
|
修复
|
|
@@ -29,7 +37,7 @@
|
|
|
29
37
|
|
|
30
38
|
新增
|
|
31
39
|
|
|
32
|
-
-
|
|
40
|
+
- 105 个手绘 naive folk art 风格 SVG 图标,覆盖界面基础、操作、文件与媒体、导航方位、通信、自然天气、动物、食物饮品、日常物品、交通工具、表情共 11 个分类
|
|
33
41
|
- 每个图标同时提供 SVG 源文件与 React TSX 组件
|
|
34
42
|
- 完整 TypeScript 类型定义:IconProps、IconName、IconCategory、PaletteColor、NAIVE_PALETTE
|
|
35
43
|
- 统一规格:48x48 viewBox、3.5 描边宽度、round 线帽与线角
|
package/README.en.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<h1>Naive Icons</h1>
|
|
2
|
+
|
|
1
3
|
<p align="right">
|
|
2
4
|
<a href="./README.md">中文</a> | <a href="./README.en.md">English</a>
|
|
3
5
|
</p>
|
|
@@ -6,15 +8,25 @@
|
|
|
6
8
|
<img src="assets/logo.svg" alt="Naive Icons" width="132" height="132">
|
|
7
9
|
</p>
|
|
8
10
|
|
|
9
|
-
<h1 align="center">Naive Icons</h1>
|
|
10
|
-
|
|
11
11
|
<p align="center">Hand-drawn "naive folk art" style SVG icon library, built for React and TypeScript</p>
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="https://github.com/guokaigdg/naive-icons/stargazers"><img src="https://img.shields.io/github/stars/guokaigdg/naive-icons?style=flat-square&color=E9C46A" alt="GitHub stars"></a>
|
|
15
|
+
<a href="https://www.npmjs.com/package/naive-icons"><img src="https://img.shields.io/npm/v/naive-icons?style=flat-square&color=E76F51" alt="npm version"></a>
|
|
16
|
+
<a href="https://www.npmjs.com/package/naive-icons"><img src="https://img.shields.io/npm/dm/naive-icons?style=flat-square&color=2A9D8F" alt="npm downloads"></a>
|
|
17
|
+
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-264653?style=flat-square" alt="license: MIT"></a>
|
|
18
|
+
<br/>
|
|
19
|
+
<img src="https://img.shields.io/badge/React-61DAFB?style=flat-square&logo=react&logoColor=black" alt="React">
|
|
20
|
+
<img src="https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript">
|
|
21
|
+
<img src="https://img.shields.io/badge/SVG-FFB13B?style=flat-square&logoColor=black" alt="SVG">
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
Naive Icons is a hand-drawn SVG icon library with a naive folk art style, built for React and TypeScript. All 105 icons are AI-generated original works.
|
|
14
26
|
|
|
15
27
|
Each icon is drawn on a 48x48 grid with a 3.5 stroke, rounded line caps, and a unified retro palette — keeping the charming clumsiness and warmth of hand-drawn illustration. Some icons even feature a pair of dot eyes and a little smile, adding a touch of humanity to your interface.
|
|
16
28
|
|
|
17
|
-
- Icon count:
|
|
29
|
+
- Icon count: 105
|
|
18
30
|
- Per-icon size: roughly 400–700 bytes
|
|
19
31
|
- Dependencies: zero runtime dependencies, React as a peer dependency only
|
|
20
32
|
- License: MIT
|
|
@@ -36,7 +48,7 @@ Each icon is drawn on a 48x48 grid with a 3.5 stroke, rounded line caps, and a u
|
|
|
36
48
|
|
|
37
49
|
## Features
|
|
38
50
|
|
|
39
|
-
-
|
|
51
|
+
- 105 original hand-drawn SVG icons spanning 11 categories: interface, actions, media, navigation, animals, food, and more
|
|
40
52
|
- Unified spec: 48x48 viewBox, 3.5 stroke width, round line caps and joins
|
|
41
53
|
- Unified palette: 9 retro colors, usable directly as design tokens
|
|
42
54
|
- Some icons feature dot eyes and a little smile for a highly recognizable style
|
|
@@ -211,8 +223,8 @@ Naive Icons follows four fixed rules. They should be respected when adding new i
|
|
|
211
223
|
|
|
212
224
|
```
|
|
213
225
|
naive-icons/
|
|
214
|
-
├── svg/
|
|
215
|
-
├── src/
|
|
226
|
+
├── svg/ 105 SVG source files
|
|
227
|
+
├── src/ 105 React TSX components + index.ts + types.ts
|
|
216
228
|
├── assets/ Brand assets (logo)
|
|
217
229
|
├── scripts/ Icon generation and preview build scripts
|
|
218
230
|
├── website/ Official documentation site
|
package/README.md
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
|
|
2
|
+
<h1>Naive Icons</h1>
|
|
3
|
+
|
|
1
4
|
<p align="right">
|
|
2
5
|
<a href="./README.md">中文</a> | <a href="./README.en.md">English</a>
|
|
3
6
|
</p>
|
|
@@ -6,15 +9,25 @@
|
|
|
6
9
|
<img src="assets/logo.svg" alt="Naive Icons" width="132" height="132">
|
|
7
10
|
</p>
|
|
8
11
|
|
|
9
|
-
<h1 align="center">Naive Icons</h1>
|
|
10
12
|
|
|
11
13
|
<p align="center">手绘 naive folk art 风格的 SVG 图标库,为 React 与 TypeScript 打造</p>
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="https://github.com/guokaigdg/naive-icons/stargazers"><img src="https://img.shields.io/github/stars/guokaigdg/naive-icons?style=flat-square&color=E9C46A" alt="GitHub stars"></a>
|
|
17
|
+
<a href="https://www.npmjs.com/package/naive-icons"><img src="https://img.shields.io/npm/v/naive-icons?style=flat-square&color=E76F51" alt="npm version"></a>
|
|
18
|
+
<a href="https://www.npmjs.com/package/naive-icons"><img src="https://img.shields.io/npm/dm/naive-icons?style=flat-square&color=2A9D8F" alt="npm downloads"></a>
|
|
19
|
+
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-264653?style=flat-square" alt="license: MIT"></a>
|
|
20
|
+
<br/>
|
|
21
|
+
<img src="https://img.shields.io/badge/React-61DAFB?style=flat-square&logo=react&logoColor=black" alt="React">
|
|
22
|
+
<img src="https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript">
|
|
23
|
+
<img src="https://img.shields.io/badge/SVG-FFB13B?style=flat-square&logoColor=black" alt="SVG">
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
Naive Icons 是一套手绘 naive folk art 风格的 SVG 图标库,为 React 与 TypeScript 打造。全部 105 个图标由 AI 生成,均为原创作品。
|
|
14
27
|
|
|
15
28
|
每一个图标都建立在 48x48 的网格上,使用 3.5 的粗描边、圆角线帽与统一的复古调色板,并保留了手绘插画特有的笨拙感与温度——部分图标还带有一对小圆点眼睛和微笑,让界面多一点点人情味。
|
|
16
29
|
|
|
17
|
-
- 图标数量:
|
|
30
|
+
- 图标数量:105
|
|
18
31
|
- 单个体积:约 400 至 700 字节
|
|
19
32
|
- 依赖:零运行时依赖,仅 peer 依赖 React
|
|
20
33
|
- 许可证:MIT
|
|
@@ -36,7 +49,7 @@ Naive Icons 是一套手绘 naive folk art 风格的 SVG 图标库,为 React
|
|
|
36
49
|
|
|
37
50
|
## 特性
|
|
38
51
|
|
|
39
|
-
-
|
|
52
|
+
- 105 个手绘风格的原创 SVG 图标,覆盖界面、操作、媒体、导航、动物、食物等 11 个分类
|
|
40
53
|
- 统一规格:48x48 viewBox、3.5 描边宽度、round 线帽与线角
|
|
41
54
|
- 统一调色板:9 色复古配色,可作为设计令牌直接引用
|
|
42
55
|
- 部分图标带有圆点眼睛与微笑表情,风格辨识度高
|
|
@@ -211,8 +224,8 @@ Naive Icons 遵循四条固定规则,新增图标时也应保持一致。
|
|
|
211
224
|
|
|
212
225
|
```
|
|
213
226
|
naive-icons/
|
|
214
|
-
├── svg/
|
|
215
|
-
├── src/
|
|
227
|
+
├── svg/ 105 个 SVG 源文件
|
|
228
|
+
├── src/ 105 个 React TSX 组件 + index.ts + types.ts
|
|
216
229
|
├── assets/ 品牌资源(logo)
|
|
217
230
|
├── scripts/ 图标生成与预览构建脚本
|
|
218
231
|
├── website/ 官方文档站点
|
package/dist/index.d.mts
CHANGED
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { SVGProps, FC } from 'react';
|
|
3
3
|
|
|
4
|
-
/**
|
|
4
|
+
/** 所有图标的通用 Props(继承原生 SVG 属性) */
|
|
5
5
|
interface IconProps extends SVGProps<SVGSVGElement> {
|
|
6
|
-
/**
|
|
6
|
+
/** 图标尺寸(宽高等同),默认 48 */
|
|
7
7
|
size?: number | string;
|
|
8
|
-
/** 描边颜色,默认 currentColor */
|
|
9
|
-
color?: string;
|
|
10
|
-
/** 描边宽度,默认 3.5(相对 48x48 画布) */
|
|
11
|
-
strokeWidth?: number | string;
|
|
12
|
-
/** 填充色,默认 none */
|
|
13
|
-
fill?: string;
|
|
14
|
-
/** 无障碍标题 */
|
|
15
|
-
title?: string;
|
|
16
8
|
}
|
|
17
|
-
|
|
18
|
-
/** Naive Icons 调色板 */
|
|
9
|
+
/** naive 风格调色板 */
|
|
19
10
|
declare const NAIVE_PALETTE: {
|
|
20
11
|
readonly ink: "#2A2A2A";
|
|
21
12
|
readonly navy: "#264653";
|
|
@@ -28,13 +19,10 @@ declare const NAIVE_PALETTE: {
|
|
|
28
19
|
readonly cream: "#FAEDCD";
|
|
29
20
|
};
|
|
30
21
|
type PaletteColor = keyof typeof NAIVE_PALETTE;
|
|
31
|
-
/**
|
|
32
|
-
type IconName = '
|
|
33
|
-
/**
|
|
22
|
+
/** 所有图标组件名(共 105 个) */
|
|
23
|
+
type IconName = 'AirplaneIconIcon' | 'AnchorIconIcon' | 'AppleIconIcon' | 'ArrowDownIconIcon' | 'ArrowLeftIconIcon' | 'ArrowRightIconIcon' | 'ArrowUpIconIcon' | 'BalloonIconIcon' | 'BearIconIcon' | 'BeeIconIcon' | 'BellIconIcon' | 'BicycleIconIcon' | 'BirdIconIcon' | 'BookIconIcon' | 'BookmarkIconIcon' | 'BulbIconIcon' | 'ButterflyIconIcon' | 'CactusIconIcon' | 'CakeIconIcon' | 'CalendarIconIcon' | 'CameraIconIcon' | 'CandleIconIcon' | 'CarIconIcon' | 'CartIconIcon' | 'CatIconIcon' | 'ChatIconIcon' | 'CheckIconIcon' | 'CherryIconIcon' | 'ClockIconIcon' | 'CloseIconIcon' | 'CloudIconIcon' | 'CodeIconIcon' | 'CoffeeIconIcon' | 'CompassIconIcon' | 'CreditCardIconIcon' | 'DogIconIcon' | 'DonutIconIcon' | 'DownloadIconIcon' | 'EditIconIcon' | 'EyeIconIcon' | 'FileIconIcon' | 'FishIconIcon' | 'FlagIconIcon' | 'FlameIconIcon' | 'FlowerIconIcon' | 'FolderIconIcon' | 'FoxIconIcon' | 'FrogIconIcon' | 'GiftIconIcon' | 'GlobeIconIcon' | 'HeadphonesIconIcon' | 'HeartIconIcon' | 'HomeIconIcon' | 'IcecreamIconIcon' | 'ImageIconIcon' | 'KeyIconIcon' | 'LadybugIconIcon' | 'LampIconIcon' | 'LeafIconIcon' | 'LemonIconIcon' | 'LocationIconIcon' | 'LockIconIcon' | 'MagnetIconIcon' | 'MailIconIcon' | 'MapIconIcon' | 'MicIconIcon' | 'MoonIconIcon' | 'MushroomIconIcon' | 'MusicIconIcon' | 'OwlIconIcon' | 'PaintbrushIconIcon' | 'PencilIconIcon' | 'PenguinIconIcon' | 'PhoneIconIcon' | 'PlayIconIcon' | 'PlusIconIcon' | 'RabbitIconIcon' | 'RainbowIconIcon' | 'RefreshIconIcon' | 'RocketIconIcon' | 'SailboatIconIcon' | 'SaveIconIcon' | 'SearchIconIcon' | 'SettingsIconIcon' | 'ShareIconIcon' | 'ShoppingBagIconIcon' | 'SmileIconIcon' | 'SnailIconIcon' | 'SnowflakeIconIcon' | 'StarIconIcon' | 'StrawberryIconIcon' | 'SunIconIcon' | 'TagIconIcon' | 'ThermometerIconIcon' | 'ThumbsUpIconIcon' | 'TrainIconIcon' | 'TrashIconIcon' | 'TreeIconIcon' | 'TrophyIconIcon' | 'UmbrellaIconIcon' | 'UploadIconIcon' | 'UserIconIcon' | 'VideoIconIcon' | 'WatermelonIconIcon' | 'WifiIconIcon';
|
|
24
|
+
/** 图标组件类型 */
|
|
34
25
|
type IconComponent = FC<IconProps>;
|
|
35
|
-
/** Naive Icons 图标分类 */
|
|
36
|
-
declare const ICON_CATEGORIES: readonly ["interface", "action", "media", "navigation", "communication", "nature", "animals", "food", "objects", "transport", "emoji"];
|
|
37
|
-
type IconCategory = (typeof ICON_CATEGORIES)[number];
|
|
38
26
|
|
|
39
27
|
declare const AirplaneIcon: (props: IconProps) => react.JSX.Element;
|
|
40
28
|
|
|
@@ -42,6 +30,14 @@ declare const AnchorIcon: (props: IconProps) => react.JSX.Element;
|
|
|
42
30
|
|
|
43
31
|
declare const AppleIcon: (props: IconProps) => react.JSX.Element;
|
|
44
32
|
|
|
33
|
+
declare const ArrowDownIcon: (props: IconProps) => react.JSX.Element;
|
|
34
|
+
|
|
35
|
+
declare const ArrowLeftIcon: (props: IconProps) => react.JSX.Element;
|
|
36
|
+
|
|
37
|
+
declare const ArrowRightIcon: (props: IconProps) => react.JSX.Element;
|
|
38
|
+
|
|
39
|
+
declare const ArrowUpIcon: (props: IconProps) => react.JSX.Element;
|
|
40
|
+
|
|
45
41
|
declare const BalloonIcon: (props: IconProps) => react.JSX.Element;
|
|
46
42
|
|
|
47
43
|
declare const BearIcon: (props: IconProps) => react.JSX.Element;
|
|
@@ -238,4 +234,4 @@ declare const WatermelonIcon: (props: IconProps) => react.JSX.Element;
|
|
|
238
234
|
|
|
239
235
|
declare const WifiIcon: (props: IconProps) => react.JSX.Element;
|
|
240
236
|
|
|
241
|
-
export { AirplaneIcon, AnchorIcon, AppleIcon, BalloonIcon, BearIcon, BeeIcon, BellIcon, BicycleIcon, BirdIcon, BookIcon, BookmarkIcon, BulbIcon, ButterflyIcon, CactusIcon, CakeIcon, CalendarIcon, CameraIcon, CandleIcon, CarIcon, CartIcon, CatIcon, ChatIcon, CheckIcon, CherryIcon, ClockIcon, CloseIcon, CloudIcon, CodeIcon, CoffeeIcon, CompassIcon, CreditCardIcon, DogIcon, DonutIcon, DownloadIcon, EditIcon, EyeIcon, FileIcon, FishIcon, FlagIcon, FlameIcon, FlowerIcon, FolderIcon, FoxIcon, FrogIcon, GiftIcon, GlobeIcon, HeadphonesIcon, HeartIcon, HomeIcon,
|
|
237
|
+
export { AirplaneIcon, AnchorIcon, AppleIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, BalloonIcon, BearIcon, BeeIcon, BellIcon, BicycleIcon, BirdIcon, BookIcon, BookmarkIcon, BulbIcon, ButterflyIcon, CactusIcon, CakeIcon, CalendarIcon, CameraIcon, CandleIcon, CarIcon, CartIcon, CatIcon, ChatIcon, CheckIcon, CherryIcon, ClockIcon, CloseIcon, CloudIcon, CodeIcon, CoffeeIcon, CompassIcon, CreditCardIcon, DogIcon, DonutIcon, DownloadIcon, EditIcon, EyeIcon, FileIcon, FishIcon, FlagIcon, FlameIcon, FlowerIcon, FolderIcon, FoxIcon, FrogIcon, GiftIcon, GlobeIcon, HeadphonesIcon, HeartIcon, HomeIcon, IcecreamIcon, type IconComponent, type IconName, type IconProps, ImageIcon, KeyIcon, LadybugIcon, LampIcon, LeafIcon, LemonIcon, LocationIcon, LockIcon, MagnetIcon, MailIcon, MapIcon, MicIcon, MoonIcon, MushroomIcon, MusicIcon, NAIVE_PALETTE, OwlIcon, PaintbrushIcon, type PaletteColor, PencilIcon, PenguinIcon, PhoneIcon, PlayIcon, PlusIcon, RabbitIcon, RainbowIcon, RefreshIcon, RocketIcon, SailboatIcon, SaveIcon, SearchIcon, SettingsIcon, ShareIcon, ShoppingBagIcon, SmileIcon, SnailIcon, SnowflakeIcon, StarIcon, StrawberryIcon, SunIcon, TagIcon, ThermometerIcon, ThumbsUpIcon, TrainIcon, TrashIcon, TreeIcon, TrophyIcon, UmbrellaIcon, UploadIcon, UserIcon, VideoIcon, WatermelonIcon, WifiIcon };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { SVGProps, FC } from 'react';
|
|
3
3
|
|
|
4
|
-
/**
|
|
4
|
+
/** 所有图标的通用 Props(继承原生 SVG 属性) */
|
|
5
5
|
interface IconProps extends SVGProps<SVGSVGElement> {
|
|
6
|
-
/**
|
|
6
|
+
/** 图标尺寸(宽高等同),默认 48 */
|
|
7
7
|
size?: number | string;
|
|
8
|
-
/** 描边颜色,默认 currentColor */
|
|
9
|
-
color?: string;
|
|
10
|
-
/** 描边宽度,默认 3.5(相对 48x48 画布) */
|
|
11
|
-
strokeWidth?: number | string;
|
|
12
|
-
/** 填充色,默认 none */
|
|
13
|
-
fill?: string;
|
|
14
|
-
/** 无障碍标题 */
|
|
15
|
-
title?: string;
|
|
16
8
|
}
|
|
17
|
-
|
|
18
|
-
/** Naive Icons 调色板 */
|
|
9
|
+
/** naive 风格调色板 */
|
|
19
10
|
declare const NAIVE_PALETTE: {
|
|
20
11
|
readonly ink: "#2A2A2A";
|
|
21
12
|
readonly navy: "#264653";
|
|
@@ -28,13 +19,10 @@ declare const NAIVE_PALETTE: {
|
|
|
28
19
|
readonly cream: "#FAEDCD";
|
|
29
20
|
};
|
|
30
21
|
type PaletteColor = keyof typeof NAIVE_PALETTE;
|
|
31
|
-
/**
|
|
32
|
-
type IconName = '
|
|
33
|
-
/**
|
|
22
|
+
/** 所有图标组件名(共 105 个) */
|
|
23
|
+
type IconName = 'AirplaneIconIcon' | 'AnchorIconIcon' | 'AppleIconIcon' | 'ArrowDownIconIcon' | 'ArrowLeftIconIcon' | 'ArrowRightIconIcon' | 'ArrowUpIconIcon' | 'BalloonIconIcon' | 'BearIconIcon' | 'BeeIconIcon' | 'BellIconIcon' | 'BicycleIconIcon' | 'BirdIconIcon' | 'BookIconIcon' | 'BookmarkIconIcon' | 'BulbIconIcon' | 'ButterflyIconIcon' | 'CactusIconIcon' | 'CakeIconIcon' | 'CalendarIconIcon' | 'CameraIconIcon' | 'CandleIconIcon' | 'CarIconIcon' | 'CartIconIcon' | 'CatIconIcon' | 'ChatIconIcon' | 'CheckIconIcon' | 'CherryIconIcon' | 'ClockIconIcon' | 'CloseIconIcon' | 'CloudIconIcon' | 'CodeIconIcon' | 'CoffeeIconIcon' | 'CompassIconIcon' | 'CreditCardIconIcon' | 'DogIconIcon' | 'DonutIconIcon' | 'DownloadIconIcon' | 'EditIconIcon' | 'EyeIconIcon' | 'FileIconIcon' | 'FishIconIcon' | 'FlagIconIcon' | 'FlameIconIcon' | 'FlowerIconIcon' | 'FolderIconIcon' | 'FoxIconIcon' | 'FrogIconIcon' | 'GiftIconIcon' | 'GlobeIconIcon' | 'HeadphonesIconIcon' | 'HeartIconIcon' | 'HomeIconIcon' | 'IcecreamIconIcon' | 'ImageIconIcon' | 'KeyIconIcon' | 'LadybugIconIcon' | 'LampIconIcon' | 'LeafIconIcon' | 'LemonIconIcon' | 'LocationIconIcon' | 'LockIconIcon' | 'MagnetIconIcon' | 'MailIconIcon' | 'MapIconIcon' | 'MicIconIcon' | 'MoonIconIcon' | 'MushroomIconIcon' | 'MusicIconIcon' | 'OwlIconIcon' | 'PaintbrushIconIcon' | 'PencilIconIcon' | 'PenguinIconIcon' | 'PhoneIconIcon' | 'PlayIconIcon' | 'PlusIconIcon' | 'RabbitIconIcon' | 'RainbowIconIcon' | 'RefreshIconIcon' | 'RocketIconIcon' | 'SailboatIconIcon' | 'SaveIconIcon' | 'SearchIconIcon' | 'SettingsIconIcon' | 'ShareIconIcon' | 'ShoppingBagIconIcon' | 'SmileIconIcon' | 'SnailIconIcon' | 'SnowflakeIconIcon' | 'StarIconIcon' | 'StrawberryIconIcon' | 'SunIconIcon' | 'TagIconIcon' | 'ThermometerIconIcon' | 'ThumbsUpIconIcon' | 'TrainIconIcon' | 'TrashIconIcon' | 'TreeIconIcon' | 'TrophyIconIcon' | 'UmbrellaIconIcon' | 'UploadIconIcon' | 'UserIconIcon' | 'VideoIconIcon' | 'WatermelonIconIcon' | 'WifiIconIcon';
|
|
24
|
+
/** 图标组件类型 */
|
|
34
25
|
type IconComponent = FC<IconProps>;
|
|
35
|
-
/** Naive Icons 图标分类 */
|
|
36
|
-
declare const ICON_CATEGORIES: readonly ["interface", "action", "media", "navigation", "communication", "nature", "animals", "food", "objects", "transport", "emoji"];
|
|
37
|
-
type IconCategory = (typeof ICON_CATEGORIES)[number];
|
|
38
26
|
|
|
39
27
|
declare const AirplaneIcon: (props: IconProps) => react.JSX.Element;
|
|
40
28
|
|
|
@@ -42,6 +30,14 @@ declare const AnchorIcon: (props: IconProps) => react.JSX.Element;
|
|
|
42
30
|
|
|
43
31
|
declare const AppleIcon: (props: IconProps) => react.JSX.Element;
|
|
44
32
|
|
|
33
|
+
declare const ArrowDownIcon: (props: IconProps) => react.JSX.Element;
|
|
34
|
+
|
|
35
|
+
declare const ArrowLeftIcon: (props: IconProps) => react.JSX.Element;
|
|
36
|
+
|
|
37
|
+
declare const ArrowRightIcon: (props: IconProps) => react.JSX.Element;
|
|
38
|
+
|
|
39
|
+
declare const ArrowUpIcon: (props: IconProps) => react.JSX.Element;
|
|
40
|
+
|
|
45
41
|
declare const BalloonIcon: (props: IconProps) => react.JSX.Element;
|
|
46
42
|
|
|
47
43
|
declare const BearIcon: (props: IconProps) => react.JSX.Element;
|
|
@@ -238,4 +234,4 @@ declare const WatermelonIcon: (props: IconProps) => react.JSX.Element;
|
|
|
238
234
|
|
|
239
235
|
declare const WifiIcon: (props: IconProps) => react.JSX.Element;
|
|
240
236
|
|
|
241
|
-
export { AirplaneIcon, AnchorIcon, AppleIcon, BalloonIcon, BearIcon, BeeIcon, BellIcon, BicycleIcon, BirdIcon, BookIcon, BookmarkIcon, BulbIcon, ButterflyIcon, CactusIcon, CakeIcon, CalendarIcon, CameraIcon, CandleIcon, CarIcon, CartIcon, CatIcon, ChatIcon, CheckIcon, CherryIcon, ClockIcon, CloseIcon, CloudIcon, CodeIcon, CoffeeIcon, CompassIcon, CreditCardIcon, DogIcon, DonutIcon, DownloadIcon, EditIcon, EyeIcon, FileIcon, FishIcon, FlagIcon, FlameIcon, FlowerIcon, FolderIcon, FoxIcon, FrogIcon, GiftIcon, GlobeIcon, HeadphonesIcon, HeartIcon, HomeIcon,
|
|
237
|
+
export { AirplaneIcon, AnchorIcon, AppleIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, BalloonIcon, BearIcon, BeeIcon, BellIcon, BicycleIcon, BirdIcon, BookIcon, BookmarkIcon, BulbIcon, ButterflyIcon, CactusIcon, CakeIcon, CalendarIcon, CameraIcon, CandleIcon, CarIcon, CartIcon, CatIcon, ChatIcon, CheckIcon, CherryIcon, ClockIcon, CloseIcon, CloudIcon, CodeIcon, CoffeeIcon, CompassIcon, CreditCardIcon, DogIcon, DonutIcon, DownloadIcon, EditIcon, EyeIcon, FileIcon, FishIcon, FlagIcon, FlameIcon, FlowerIcon, FolderIcon, FoxIcon, FrogIcon, GiftIcon, GlobeIcon, HeadphonesIcon, HeartIcon, HomeIcon, IcecreamIcon, type IconComponent, type IconName, type IconProps, ImageIcon, KeyIcon, LadybugIcon, LampIcon, LeafIcon, LemonIcon, LocationIcon, LockIcon, MagnetIcon, MailIcon, MapIcon, MicIcon, MoonIcon, MushroomIcon, MusicIcon, NAIVE_PALETTE, OwlIcon, PaintbrushIcon, type PaletteColor, PencilIcon, PenguinIcon, PhoneIcon, PlayIcon, PlusIcon, RabbitIcon, RainbowIcon, RefreshIcon, RocketIcon, SailboatIcon, SaveIcon, SearchIcon, SettingsIcon, ShareIcon, ShoppingBagIcon, SmileIcon, SnailIcon, SnowflakeIcon, StarIcon, StrawberryIcon, SunIcon, TagIcon, ThermometerIcon, ThumbsUpIcon, TrainIcon, TrashIcon, TreeIcon, TrophyIcon, UmbrellaIcon, UploadIcon, UserIcon, VideoIcon, WatermelonIcon, WifiIcon };
|
package/dist/index.js
CHANGED
|
@@ -4,18 +4,13 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
|
|
5
5
|
// src/iconProps.ts
|
|
6
6
|
function normalizeIconProps(props) {
|
|
7
|
-
const { size, color, strokeWidth, ...rest } = props;
|
|
7
|
+
const { size = 24, color = "#2A2A2A", strokeWidth = 3.5, fill = "none", ...rest } = props;
|
|
8
8
|
const svgProps = { ...rest };
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
svgProps.stroke = color;
|
|
15
|
-
}
|
|
16
|
-
if (strokeWidth !== void 0 && strokeWidth !== null) {
|
|
17
|
-
svgProps.strokeWidth = strokeWidth;
|
|
18
|
-
}
|
|
9
|
+
svgProps.width = size;
|
|
10
|
+
svgProps.height = size;
|
|
11
|
+
svgProps.fill = fill;
|
|
12
|
+
svgProps.stroke = color;
|
|
13
|
+
svgProps.strokeWidth = strokeWidth;
|
|
19
14
|
return svgProps;
|
|
20
15
|
}
|
|
21
16
|
var AirplaneIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
|
|
@@ -37,6 +32,22 @@ var AppleIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0
|
|
|
37
32
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "20", cy: "26", r: "1.5", fill: "#2A2A2A" }),
|
|
38
33
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "28", cy: "26", r: "1.5", fill: "#2A2A2A" })
|
|
39
34
|
] });
|
|
35
|
+
var ArrowDownIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
|
|
36
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M24 9 L24 30", stroke: "#2A2A2A", "stroke-width": "4" }),
|
|
37
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 26 L24 40 L33 26 Z", fill: "#E76F51" })
|
|
38
|
+
] });
|
|
39
|
+
var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
|
|
40
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M39 24 L18 24", stroke: "#2A2A2A", "stroke-width": "4" }),
|
|
41
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M23 15 L9 24 L23 33 Z", fill: "#E76F51" })
|
|
42
|
+
] });
|
|
43
|
+
var ArrowRightIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
|
|
44
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 24 L30 24", stroke: "#2A2A2A", "stroke-width": "4" }),
|
|
45
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M25 15 L39 24 L25 33 Z", fill: "#E76F51" })
|
|
46
|
+
] });
|
|
47
|
+
var ArrowUpIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
|
|
48
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M24 39 L24 18", stroke: "#2A2A2A", "stroke-width": "4" }),
|
|
49
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 22 L24 8 L33 22 Z", fill: "#E76F51" })
|
|
50
|
+
] });
|
|
40
51
|
var BalloonIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
|
|
41
52
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M24 5 C 14 5 9 13 9 19 C 9 26 15 31 24 31 C 33 31 39 26 39 19 C 39 13 34 5 24 5 Z", fill: "#E76F51" }),
|
|
42
53
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 31 L 27 31 L 24 35 Z", fill: "#E76F51" }),
|
|
@@ -731,11 +742,11 @@ var UploadIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0
|
|
|
731
742
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "8", y: "38", width: "32", height: "6", rx: "2", fill: "#2A9D8F" })
|
|
732
743
|
] });
|
|
733
744
|
var UserIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
|
|
734
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "24", cy: "
|
|
735
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "
|
|
736
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "21", cy: "
|
|
737
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "27", cy: "
|
|
738
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "
|
|
745
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "24", cy: "16", r: "8.5", fill: "#E76F51" }),
|
|
746
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7 43 C 7 33 14 29 24 29 C 34 29 41 33 41 43", fill: "#2A9D8F" }),
|
|
747
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "21", cy: "16", r: "1.6", fill: "#2A2A2A" }),
|
|
748
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "27", cy: "16", r: "1.6", fill: "#2A2A2A" }),
|
|
749
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20.5 20 Q 24 23 27.5 20", stroke: "#2A2A2A", fill: "none" })
|
|
739
750
|
] });
|
|
740
751
|
var VideoIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
|
|
741
752
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "4", y: "14", width: "28", height: "20", rx: "4", fill: "#264653" }),
|
|
@@ -770,23 +781,14 @@ var NAIVE_PALETTE = {
|
|
|
770
781
|
brown: "#8B5E3C",
|
|
771
782
|
cream: "#FAEDCD"
|
|
772
783
|
};
|
|
773
|
-
var ICON_CATEGORIES = [
|
|
774
|
-
"interface",
|
|
775
|
-
"action",
|
|
776
|
-
"media",
|
|
777
|
-
"navigation",
|
|
778
|
-
"communication",
|
|
779
|
-
"nature",
|
|
780
|
-
"animals",
|
|
781
|
-
"food",
|
|
782
|
-
"objects",
|
|
783
|
-
"transport",
|
|
784
|
-
"emoji"
|
|
785
|
-
];
|
|
786
784
|
|
|
787
785
|
exports.AirplaneIcon = AirplaneIcon;
|
|
788
786
|
exports.AnchorIcon = AnchorIcon;
|
|
789
787
|
exports.AppleIcon = AppleIcon;
|
|
788
|
+
exports.ArrowDownIcon = ArrowDownIcon;
|
|
789
|
+
exports.ArrowLeftIcon = ArrowLeftIcon;
|
|
790
|
+
exports.ArrowRightIcon = ArrowRightIcon;
|
|
791
|
+
exports.ArrowUpIcon = ArrowUpIcon;
|
|
790
792
|
exports.BalloonIcon = BalloonIcon;
|
|
791
793
|
exports.BearIcon = BearIcon;
|
|
792
794
|
exports.BeeIcon = BeeIcon;
|
|
@@ -833,7 +835,6 @@ exports.GlobeIcon = GlobeIcon;
|
|
|
833
835
|
exports.HeadphonesIcon = HeadphonesIcon;
|
|
834
836
|
exports.HeartIcon = HeartIcon;
|
|
835
837
|
exports.HomeIcon = HomeIcon;
|
|
836
|
-
exports.ICON_CATEGORIES = ICON_CATEGORIES;
|
|
837
838
|
exports.IcecreamIcon = IcecreamIcon;
|
|
838
839
|
exports.ImageIcon = ImageIcon;
|
|
839
840
|
exports.KeyIcon = KeyIcon;
|