@zenkigen-inc/component-icons 1.16.3 → 1.18.0
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/README.md +148 -10
- package/dist/index.d.mts +701 -5
- package/dist/index.d.ts +701 -5
- package/dist/index.js +761 -529
- package/dist/index.mjs +843 -611
- package/docs/icon-addition-workflow.md +617 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
コンポーネントで使用するアイコンを管理するパッケージです。
|
|
4
4
|
|
|
5
|
+
## 目次
|
|
6
|
+
|
|
7
|
+
- [使い方](#使い方)
|
|
8
|
+
- [Icon コンポーネントを使用する方法(推奨)](#icon-コンポーネントを使用する方法推奨)
|
|
9
|
+
- [直接インポートする方法](#直接インポートする方法)
|
|
10
|
+
- [アクセントカラー対応アイコン](#アクセントカラー対応アイコン)
|
|
11
|
+
- [対応アイコン一覧](#対応アイコン一覧)
|
|
12
|
+
- [使用例](#使用例)
|
|
13
|
+
- [開発者向け](#開発者向け)
|
|
14
|
+
- [SVGアイコンの追加方法](#svgアイコンの追加方法)
|
|
15
|
+
- [1. SVGファイルの準備](#1-svgファイルの準備)
|
|
16
|
+
- [2. SVGファイルの配置](#2-svgファイルの配置)
|
|
17
|
+
- [3. ビルド実行](#3-ビルド実行)
|
|
18
|
+
- [4. アイコンの利用](#4-アイコンの利用)
|
|
19
|
+
- [関連ドキュメント](#関連ドキュメント)
|
|
20
|
+
- [ライセンス](#ライセンス)
|
|
21
|
+
|
|
5
22
|
## 使い方
|
|
6
23
|
|
|
7
24
|
インストール:
|
|
@@ -10,7 +27,33 @@
|
|
|
10
27
|
yarn add @zenkigen-inc/component-icons
|
|
11
28
|
```
|
|
12
29
|
|
|
13
|
-
|
|
30
|
+
### Icon コンポーネントを使用する方法(推奨)
|
|
31
|
+
|
|
32
|
+
`@zenkigen-inc/component-ui` の Icon コンポーネントを使用することで、より柔軟にアイコンを扱えます:
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import { Icon } from '@zenkigen-inc/component-ui';
|
|
36
|
+
|
|
37
|
+
// 基本的な使用
|
|
38
|
+
<Icon name="add" size="medium" color="icon01" />
|
|
39
|
+
|
|
40
|
+
// サイズとカラーの指定
|
|
41
|
+
<Icon name="settings" size="large" color="icon02" />
|
|
42
|
+
|
|
43
|
+
// アクセントカラーを使用(対応アイコンのみ)
|
|
44
|
+
<Icon
|
|
45
|
+
name="calendar-today"
|
|
46
|
+
size="medium"
|
|
47
|
+
color="icon01"
|
|
48
|
+
accentColor="interactive01"
|
|
49
|
+
/>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
詳細は [Icon コンポーネント仕様書](../../docs/component/icon-specification.md) を参照してください。
|
|
53
|
+
|
|
54
|
+
### 直接インポートする方法
|
|
55
|
+
|
|
56
|
+
アイコン要素を直接インポートして使用することもできます:
|
|
14
57
|
|
|
15
58
|
```tsx
|
|
16
59
|
import { iconElements } from '@zenkigen-inc/component-icons';
|
|
@@ -19,11 +62,59 @@ import { iconElements } from '@zenkigen-inc/component-icons';
|
|
|
19
62
|
<div>{iconElements['add']}</div>;
|
|
20
63
|
```
|
|
21
64
|
|
|
22
|
-
##
|
|
65
|
+
## アクセントカラー対応アイコン
|
|
66
|
+
|
|
67
|
+
一部のアイコンは **アクセントカラー** 機能に対応しています。これにより、アイコン内の特定要素に異なる色を適用して、状態やステータスを視覚的に表現できます。
|
|
68
|
+
|
|
69
|
+
### 対応アイコン一覧
|
|
70
|
+
|
|
71
|
+
現在、以下のアイコンがアクセントカラーに対応しています:
|
|
72
|
+
|
|
73
|
+
| アイコン名 | 用途 | 推奨アクセントカラー例 |
|
|
74
|
+
| -------------------- | ---------------------------- | -------------------------------- |
|
|
75
|
+
| `calendar-attention` | カレンダー注意状態 | `supportError` |
|
|
76
|
+
| `calendar-check` | カレンダーチェック状態 | `supportSuccess` |
|
|
77
|
+
| `calendar-minus` | カレンダーマイナス状態 | `supportWarning` |
|
|
78
|
+
| `calendar-today` | カレンダー今日表示 | `interactive01` |
|
|
79
|
+
| `mic` | マイク(アクティブ状態表示) | `supportSuccess`, `supportError` |
|
|
80
|
+
| `volume-off` | 音量オフ(オフライン表示) | `supportError` |
|
|
81
|
+
|
|
82
|
+
### 使用例
|
|
83
|
+
|
|
84
|
+
```tsx
|
|
85
|
+
import { Icon } from '@zenkigen-inc/component-ui';
|
|
86
|
+
|
|
87
|
+
// カレンダー - 今日の日付を強調
|
|
88
|
+
<Icon
|
|
89
|
+
name="calendar-today"
|
|
90
|
+
color="icon01"
|
|
91
|
+
accentColor="interactive01"
|
|
92
|
+
/>
|
|
93
|
+
|
|
94
|
+
// カレンダー - 注意が必要な日付
|
|
95
|
+
<Icon
|
|
96
|
+
name="calendar-attention"
|
|
97
|
+
color="icon01"
|
|
98
|
+
accentColor="supportError"
|
|
99
|
+
/>
|
|
100
|
+
|
|
101
|
+
// マイク - アクティブ/ミュート状態の切り替え
|
|
102
|
+
const MicIcon = ({ isActive }: { isActive: boolean }) => (
|
|
103
|
+
<Icon
|
|
104
|
+
name="mic"
|
|
105
|
+
color="icon01"
|
|
106
|
+
accentColor={isActive ? 'supportSuccess' : 'supportError'}
|
|
107
|
+
/>
|
|
108
|
+
);
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## 開発者向け
|
|
112
|
+
|
|
113
|
+
### SVGアイコンの追加方法
|
|
23
114
|
|
|
24
115
|
新しいSVGアイコンを追加するには、以下の手順に従ってください。
|
|
25
116
|
|
|
26
|
-
|
|
117
|
+
#### 1. SVGファイルの準備
|
|
27
118
|
|
|
28
119
|
SVGファイルは以下の条件を満たす必要があります:
|
|
29
120
|
|
|
@@ -31,7 +122,9 @@ SVGファイルは以下の条件を満たす必要があります:
|
|
|
31
122
|
- 命名: キャメルケースまたはケバブケース (例: `arrow-right.svg`、`userAdd.svg`)
|
|
32
123
|
- フォーマット: 基本的なSVG構造を持つこと
|
|
33
124
|
|
|
34
|
-
|
|
125
|
+
#### 通常のSVGアイコン
|
|
126
|
+
|
|
127
|
+
以下は標準的なSVGファイルの例です:
|
|
35
128
|
|
|
36
129
|
```svg
|
|
37
130
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
@@ -41,7 +134,28 @@ SVGファイルは以下の条件を満たす必要があります:
|
|
|
41
134
|
|
|
42
135
|
> **注意**: `fill`属性はコード生成時に削除されるため、アイコン表示時のスタイルに影響しません。
|
|
43
136
|
|
|
44
|
-
|
|
137
|
+
#### アクセントカラー対応SVGアイコン
|
|
138
|
+
|
|
139
|
+
アクセントカラー機能に対応させたい場合は、異なる色を適用したい要素に `class="accentColor"` を追加します:
|
|
140
|
+
|
|
141
|
+
```svg
|
|
142
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
143
|
+
<!-- 基本形状(通常の色) -->
|
|
144
|
+
<path d="M19 4H5C3.89543 4 3 4.89543 3 6V20C3 21.1046 3.89543 22 5 22H19C20.1046 22 21 21.1046 21 20V6C21 4.89543 20.1046 4 19 4Z" fill="#7C868A"/>
|
|
145
|
+
|
|
146
|
+
<!-- アクセントカラーを適用する要素 -->
|
|
147
|
+
<circle class="accentColor" cx="12" cy="12" r="3" fill="#FF0000"/>
|
|
148
|
+
</svg>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**ポイント**:
|
|
152
|
+
|
|
153
|
+
- アクセントカラーを適用したい要素に `class="accentColor"` を追加
|
|
154
|
+
- 複数の要素に適用可能
|
|
155
|
+
- Icon コンポーネントの `accentColor` プロパティで色を動的に変更可能
|
|
156
|
+
- アクセントカラー要素の `fill` 属性も削除されるため、初期値は無視されます
|
|
157
|
+
|
|
158
|
+
#### 2. SVGファイルの配置
|
|
45
159
|
|
|
46
160
|
準備したSVGファイルを以下のディレクトリに配置します:
|
|
47
161
|
|
|
@@ -49,7 +163,7 @@ SVGファイルは以下の条件を満たす必要があります:
|
|
|
49
163
|
packages/component-icons/src/svg/
|
|
50
164
|
```
|
|
51
165
|
|
|
52
|
-
|
|
166
|
+
#### 3. ビルド実行
|
|
53
167
|
|
|
54
168
|
以下のコマンドを実行してアイコンをビルドします:
|
|
55
169
|
|
|
@@ -64,18 +178,42 @@ yarn build:all
|
|
|
64
178
|
3. テンプレートを使用して `icon.tsx` が生成されます
|
|
65
179
|
4. パッケージがビルドされます
|
|
66
180
|
|
|
67
|
-
|
|
181
|
+
#### 4. アイコンの利用
|
|
68
182
|
|
|
69
183
|
ビルド後、追加したアイコンは Icon コンポーネントで利用できます:
|
|
70
184
|
|
|
71
185
|
```tsx
|
|
72
186
|
import { Icon } from '@zenkigen-inc/component-ui';
|
|
73
187
|
|
|
74
|
-
//
|
|
75
|
-
<Icon name="new-icon-name"
|
|
188
|
+
// 通常のアイコン
|
|
189
|
+
<Icon name="new-icon-name" size="medium" color="icon01" />
|
|
190
|
+
|
|
191
|
+
// アクセントカラー対応アイコン
|
|
192
|
+
<Icon
|
|
193
|
+
name="new-icon-name"
|
|
194
|
+
size="medium"
|
|
195
|
+
color="icon01"
|
|
196
|
+
accentColor="interactive01"
|
|
197
|
+
/>
|
|
76
198
|
```
|
|
77
199
|
|
|
78
|
-
|
|
200
|
+
**アイコン名の規則**:
|
|
201
|
+
|
|
202
|
+
- ファイル名から拡張子を除いたものがアイコン名になります
|
|
203
|
+
- 例: `arrow-right.svg` → `'arrow-right'`
|
|
204
|
+
- 例: `calendar-today.svg` → `'calendar-today'`
|
|
205
|
+
|
|
206
|
+
**TypeScript型定義**:
|
|
207
|
+
|
|
208
|
+
- 追加したアイコンは `IconName` 型に自動的に含まれ、型安全に使用できます
|
|
209
|
+
- 存在しないアイコン名を指定するとコンパイルエラーになります
|
|
210
|
+
|
|
211
|
+
## 関連ドキュメント
|
|
212
|
+
|
|
213
|
+
より詳細な情報については、以下のドキュメントを参照してください:
|
|
214
|
+
|
|
215
|
+
- **[Icon コンポーネント仕様書](../../docs/component/icon-specification.md)** - Icon コンポーネントの詳細な使用方法、Props、アクセシビリティ情報
|
|
216
|
+
- **[アイコン追加ワークフロー](./docs/icon-addition-workflow.md)** - アイコン追加の詳細なプロセス、ビルドフロー、コード生成の仕組み
|
|
79
217
|
|
|
80
218
|
## ライセンス
|
|
81
219
|
|