@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 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
- ## SVGアイコンの追加方法
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
- ### 1. SVGファイルの準備
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
- 以下は適切なSVGファイルの例です:
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
- ### 2. SVGファイルの配置
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
- ### 3. ビルド実行
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
- ### 4. アイコンの利用
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
- アイコン名は、ファイル名から拡張子を除いたものになります (例: `arrow-right.svg` → `'arrow-right'`)
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