asharyu-design-token 2.0.4 → 2.1.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.ja.md +222 -0
- package/README.ko.md +222 -0
- package/README.md +222 -135
- package/README.zh-TW.md +222 -0
- package/SKILL.md +91 -0
- package/dist/{src/color → color}/semanticValue.d.ts +1 -1
- package/dist/elevation/index.d.ts +19 -0
- package/dist/figma-variables.json +624 -0
- package/dist/font/index.d.ts +64 -0
- package/dist/index.css +106 -0
- package/dist/index.css.d.ts +2 -0
- package/dist/index.d.ts +603 -0
- package/dist/index.js +104 -4
- package/dist/radius/index.d.ts +20 -0
- package/dist/spacing/index.d.ts +24 -0
- package/dist/tokens.json +1393 -0
- package/dist/zIndex/index.d.ts +30 -0
- package/package.json +61 -42
- package/dist/src/color/index.d.ts +0 -0
- package/dist/src/color/value.d.ts +0 -21
- package/dist/src/font/index.d.ts +0 -12
- package/dist/src/index.d.ts +0 -297
- package/dist/src/prev/value.d.ts +0 -21
- /package/dist/{src/color → color}/colorValue.d.ts +0 -0
- /package/dist/{src/font → font}/value.d.ts +0 -0
- /package/dist/{src/interaction → interaction}/index.d.ts +0 -0
- /package/dist/{src/motion → motion}/index.d.ts +0 -0
- /package/dist/{src/stroke → stroke}/index.d.ts +0 -0
package/README.ja.md
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# asharyu-design-token
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
**陰陽五行思想と水墨・淡彩画の美学を現代UIに昇華させたデザイントークンシステム**
|
|
6
|
+
*A Design Token System Inspired by Yin-Yang, Wu Xing, and Korean Traditional Ink & Wash Aesthetics.*
|
|
7
|
+
|
|
8
|
+
[English](README.md) | [한국어](README.ko.md) | [繁體中文](README.zh-TW.md) | [日本語](README.ja.md)
|
|
9
|
+
|
|
10
|
+
[](https://www.npmjs.com/package/asharyu-design-token)
|
|
11
|
+
[](https://github.com/yoonjonglyu/asharyu-design/blob/main/LICENSE)
|
|
12
|
+
[-success?style=flat-square&color=ACC4A6)](https://www.w3.org/WAI/WCAG21/quickref/)
|
|
13
|
+
[](https://tokens.studio/)
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 📖 目次
|
|
20
|
+
1. [インストール (Installation)](#1-インストール-installation)
|
|
21
|
+
2. [クイックスタート (Quick Start)](#2-クイックスタート-quick-start)
|
|
22
|
+
3. [設計思想と美学 (Design Philosophy)](#3-設計思想と美学-design-philosophy)
|
|
23
|
+
4. [トークン仕様とCSS変数 (Token Specifications)](#4-トークン仕様とcss変数-token-specifications)
|
|
24
|
+
5. [🎨 Figma デザイントークン連携 (Figma Integration)](#5--figma-デザイントークン連携-figma-integration)
|
|
25
|
+
6. [🤖 AI エージェント連携 (Agent & Skill Integration)](#6--ai-エージェント連携-agent--skill-integration)
|
|
26
|
+
7. [アクセシビリティと品質検証 (Accessibility)](#7-アクセシビリティと品質検証-accessibility)
|
|
27
|
+
8. [ライセンス (License)](#8-ライセンス-license)
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 1. インストール (Installation)
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# npm
|
|
35
|
+
npm install asharyu-design-token
|
|
36
|
+
|
|
37
|
+
# pnpm
|
|
38
|
+
pnpm add asharyu-design-token
|
|
39
|
+
|
|
40
|
+
# yarn
|
|
41
|
+
yarn add asharyu-design-token
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 2. クイックスタート (Quick Start)
|
|
47
|
+
|
|
48
|
+
### 1) グローバルCSS変数の読み込み
|
|
49
|
+
プロジェクトのエントリーポイント(`index.tsx`、`App.tsx`、またはメインCSS)でスタイルシートをインポートします:
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
import 'asharyu-design-token/index.css';
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 2) CSS-in-JS (Emotion / Styled-Components) での使用
|
|
56
|
+
TypeScriptの型定義と自動補完に対応した `tokens` ブリッジオブジェクトを使用します:
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
import styled from '@emotion/styled';
|
|
60
|
+
import { tokens } from 'asharyu-design-token';
|
|
61
|
+
|
|
62
|
+
const AsharyuCard = styled.div`
|
|
63
|
+
background-color: ${tokens.color.semantic.surface.primary};
|
|
64
|
+
border: ${tokens.stroke.weight.sharp} solid ${tokens.color.semantic.stroke};
|
|
65
|
+
border-radius: ${tokens.radius.gentle};
|
|
66
|
+
padding: ${tokens.spacing.void};
|
|
67
|
+
box-shadow: ${tokens.elevation.damMuk};
|
|
68
|
+
transition: ${tokens.interaction.flow.sangSaeng};
|
|
69
|
+
|
|
70
|
+
&:hover {
|
|
71
|
+
border-width: ${tokens.stroke.weight.fine};
|
|
72
|
+
box-shadow: ${tokens.elevation.jungMuk};
|
|
73
|
+
transform: translateY(-2px);
|
|
74
|
+
}
|
|
75
|
+
`;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 3) 陰陽(ライト / ダーク)テーマ切り替え
|
|
79
|
+
`data-theme` 属性によって即座に全域のテーマが切り替わります:
|
|
80
|
+
|
|
81
|
+
```html
|
|
82
|
+
<!-- 陽(ライトモード): デフォルト -->
|
|
83
|
+
<html data-theme="light"> ... </html>
|
|
84
|
+
|
|
85
|
+
<!-- 陰(ダークモード) -->
|
|
86
|
+
<html data-theme="dark"> ... </html>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 3. 設計思想と美学 (Design Philosophy)
|
|
92
|
+
|
|
93
|
+
**asharyu** は主観的な感覚のみに依存せず、東洋の自然観である **陰陽(Yin-Yang)** と **五行(Wu Xing)**、そして水墨画の **筆致と濃淡(Nong-dam)** を現代のデジタルUIとして体系化したデザインシステムです。
|
|
94
|
+
|
|
95
|
+
1. **鋭利さ (Sharpness / 墨線)**: 刃物で断ち切ったような 0.5px の墨線(`--asharyu-stroke-weight-sharp`)により、情報の境界を明確に定義します。
|
|
96
|
+
2. **余白 (Void / 韓紙の呼吸)**: 詰め込みすぎを避け、情報と情報の間に空気の通る余白(`--asharyu-spacing-void`)を確保します。
|
|
97
|
+
3. **濃淡の深み (Nong-dam Elevation)**: 不自然な人工的シャドウの代わりに、水墨のにじみや濃淡(淡墨・中墨・濃墨・極墨)によって静謐な奥行きを表現します。
|
|
98
|
+
4. **気韻生動 (Ki-un Motion)**: アニメーションは五行の「相生(しなやかな循環)」と「相剋(鋭い決断のフィードバック)」の論理に従って制御されます。
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 4. トークン仕様とCSS変数 (Token Specifications)
|
|
103
|
+
|
|
104
|
+
### ① カラー (Color Tokens)
|
|
105
|
+
|
|
106
|
+
#### 五行 (五行) — 主要アクション & サーフェス (Primary Semantic)
|
|
107
|
+
| 元素 | セマンティック役割 | 主な用途 | 代表CSS変数 |
|
|
108
|
+
|---|---|---|---|
|
|
109
|
+
| **陽 / 陰 (Theme)** | 背景・基本テキスト | 韓紙の米白、深淵の墨色 | `--asharyu-color-semantic-background`, `-text` |
|
|
110
|
+
| **木 (Wood)** | `Action` | 実行、プライマリボタン、主要リンク | `--asharyu-color-semantic-action-primary` |
|
|
111
|
+
| **火 (Fire)** | `Danger` | 警告、破壊的アクション、エラー | `--asharyu-color-semantic-danger-primary` |
|
|
112
|
+
| **土 (Earth)** | `Surface` | カード、コンテナ背景、滞留の場 | `--asharyu-color-semantic-surface-primary` |
|
|
113
|
+
| **金 (Metal)** | `Border` | 境界線、区切り線、堅固な輪郭 | `--asharyu-color-semantic-border-primary` |
|
|
114
|
+
| **水 (Water)** | `Info` | ナビゲーション、補助情報、流れ | `--asharyu-color-semantic-info-primary` |
|
|
115
|
+
|
|
116
|
+
#### 五間色 (五間色) — 状態フィードバック (Secondary Status)
|
|
117
|
+
| 間色 | セマンティック役割 | 配合関係 | 代表CSS変数 |
|
|
118
|
+
|---|---|---|---|
|
|
119
|
+
| **緑 (Nok)** | `Success` | 木 + 土 | `--asharyu-color-semantic-status-success-primary` |
|
|
120
|
+
| **紅 (Hong)** | `Alert-Hover` | 火 + 金 | `--asharyu-color-semantic-status-alert-hover-primary` |
|
|
121
|
+
| **碧 (Byeok)** | `Focus` | 木 + 金 | `--asharyu-color-semantic-status-action-focus-primary` |
|
|
122
|
+
| **硫黄 (Yu)** | `Warning / Sub-Surface` | 土 + 水 | `--asharyu-color-semantic-status-sub-surface-primary` |
|
|
123
|
+
| **紫 (Ja)** | `Special / Active` | 火 + 水 | `--asharyu-color-semantic-status-info-active-primary` |
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### ② 空間と余白 (Spacing & Void)
|
|
128
|
+
|
|
129
|
+
| キー | CSS変数 | 値 (rem) | 値 (px) | 用途と意味 |
|
|
130
|
+
|---|---|---|---|---|
|
|
131
|
+
| `compact` | `--asharyu-spacing-compact` | `0.25rem` | 4px | 刹那: アイコン間隔、バッジ余白 |
|
|
132
|
+
| `fine` | `--asharyu-spacing-fine` | `0.5rem` | 8px | 細目: インライン要素間隔 |
|
|
133
|
+
| `moderate` | `--asharyu-spacing-moderate` | `0.75rem` | 12px | 近距離: フォーム項目とリスト |
|
|
134
|
+
| `base` | `--asharyu-spacing-base` | `1rem` | 16px | 平常: 標準カード内パディング |
|
|
135
|
+
| `void` | `--asharyu-spacing-void` | `1.5rem` | 24px | **余白: 韓紙の呼吸(標準コンポーネント余白)** |
|
|
136
|
+
| `wide` | `--asharyu-spacing-wide` | `2rem` | 32px | 深遠: セクショングループ余白 |
|
|
137
|
+
| `spacious` | `--asharyu-spacing-spacious` | `3rem` | 48px | 大余白: セクション間の境界 |
|
|
138
|
+
| `vast` | `--asharyu-spacing-vast` | `4rem` | 64px | 広漠: ページレベル余白 |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### ③ コーナー曲率 (Radius)
|
|
143
|
+
|
|
144
|
+
- `--asharyu-radius-sharp`: `0px`(剣鋒の直角、鋭利な角)
|
|
145
|
+
- `--asharyu-radius-delicate`: `0.25rem`(4px、控えめな角丸)
|
|
146
|
+
- `--asharyu-radius-gentle`: `0.5rem`(8px、温和な曲率)
|
|
147
|
+
- `--asharyu-radius-smooth`: `0.75rem`(12px、流麗な曲率)
|
|
148
|
+
- `--asharyu-radius-prominent`: `1rem`(16px、ゆったりとした丸み)
|
|
149
|
+
- `--asharyu-radius-full`: `9999px`(太極、円形アバターやピル)
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
### ④ 濃淡シャドウ (Elevation & Depth)
|
|
154
|
+
|
|
155
|
+
水墨の濃淡に合わせてダーク/ライトモードに連動する奥行きトークン:
|
|
156
|
+
- `--asharyu-elevation-none`: 平面(シャドウなし)
|
|
157
|
+
- `--asharyu-elevation-dam-muk`: **淡墨 (Dam-muk)** — カードホバー、ドロップダウン
|
|
158
|
+
- `--asharyu-elevation-jung-muk`: **中墨 (Jung-muk)** — ポップオーバー、フローティングパネル
|
|
159
|
+
- `--asharyu-elevation-nong-muk`: **濃墨 (Nong-muk)** — モーダルダイアログ
|
|
160
|
+
- `--asharyu-elevation-guk-muk`: **極墨 (Guk-muk)** — 最上位トースト通知
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### ⑤ タイポグラフィ (Typography)
|
|
165
|
+
|
|
166
|
+
- **フォントファミリー (Family)**:
|
|
167
|
+
- `--asharyu-font-family-serif`: 韓紙の質感を宿す明朝体 (`Gowun Batang`, `Noto Serif KR`)
|
|
168
|
+
- `--asharyu-font-family-sans`: 現代的で可読性の高いゴシック体 (`Pretendard`, system-ui)
|
|
169
|
+
- `--asharyu-font-family-mono`: コード・数値用等幅フォント (`JetBrains Mono`, monospace)
|
|
170
|
+
- **筆圧 (Weight)**:
|
|
171
|
+
- `--asharyu-font-weight-light`(300/淡)、`regular`(400/常)、`semibold`(600/濃)、`bold`(700/筆)
|
|
172
|
+
- **行間 (Line Height)**:
|
|
173
|
+
- `--asharyu-font-line-height-tight`(1.25)、`normal`(1.5)、`relaxed`(1.75)
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 5. 🎨 Figma デザイントークン連携 (Figma Integration)
|
|
178
|
+
|
|
179
|
+
`asharyu-design-token` はビルド時にFigmaと完全互換のトークンファイルを自動生成します:
|
|
180
|
+
|
|
181
|
+
### 方法 A: Tokens Studio for Figma プラグイン連携(推奨)
|
|
182
|
+
1. Figmaで **Tokens Studio for Figma** プラグインを起動します。
|
|
183
|
+
2. `Settings` > `Sync Providers` で **GitHub** を接続するか、**Load from local file** を選択します。
|
|
184
|
+
3. **`node_modules/asharyu-design-token/dist/tokens.json`** を指定します。
|
|
185
|
+
4. `global`、`light`、`dark` のトークンセットが自動読み込みされ、カラー、余白、角丸、シャドウが即座に同期されます。
|
|
186
|
+
|
|
187
|
+
### 方法 B: ネイティブ Figma Variables
|
|
188
|
+
1. **`node_modules/asharyu-design-token/dist/figma-variables.json`** を使用します。
|
|
189
|
+
2. Figma Variables REST API またはインポート用プラグインを通じて、`Color (Raw)`、`Color (Semantic)`、`Spacing & Radius` コレクションを一括登録できます。
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 6. 🤖 AI エージェント連携 (Agent & Skill Integration)
|
|
194
|
+
|
|
195
|
+
**Antigravity**、**Cursor**、**Claude Code**、**GitHub Copilot** などのAIアシスタントとのペアプログラミングにおいて、Asharyuの設計ルールを自動学習させることができます:
|
|
196
|
+
|
|
197
|
+
### 1) Antigravity ワークスペース連携
|
|
198
|
+
本リポジトリには `.agents/skills/asharyu-design-system/` スキルと `.agents/rules/asharyu-design-system.md` ルールが整備されており、AI生成コードのトークン逸脱を防止します。
|
|
199
|
+
|
|
200
|
+
### 2) プロンプトガイドの直接参照
|
|
201
|
+
同封のプロンプトガイドをAIのシステムプロンプトに注入して使用できます:
|
|
202
|
+
```
|
|
203
|
+
node_modules/asharyu-design-token/SKILL.md
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 7. アクセシビリティと品質検証 (Accessibility)
|
|
209
|
+
|
|
210
|
+
- **WCAG 2.1 AAA 準拠**:
|
|
211
|
+
- ライトモード文字コントラスト比: **18.52 : 1**(AAA基準 7.0:1 を大幅に超過)
|
|
212
|
+
- ダークモード文字コントラスト比: **18.52 : 1**(AAA基準 7.0:1 を大幅に超過)
|
|
213
|
+
- **状態境界線とフォーカスリング**:
|
|
214
|
+
- 全ての状態ラインが WCAG 2.1 AA 基準(4.5:1 以上)を満たしています。
|
|
215
|
+
- **自動検証テストスイート**:
|
|
216
|
+
- ビルド時に `token-validation.test.mjs` を実行し、トークン整合性、CSS変数一致率、コントラスト比を100%テストします。
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 8. ライセンス (License)
|
|
221
|
+
|
|
222
|
+
本プロジェクトは [Apache 2.0 License](https://github.com/yoonjonglyu/asharyu-design/blob/main/LICENSE) のもとで公開されています。
|
package/README.ko.md
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# asharyu-design-token
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
**음양오행(陰陽五行)과 수묵·담채화의 미학을 담은 디자인 토큰 시스템**
|
|
6
|
+
*A Design Token System Inspired by Yin-Yang, Wu Xing, and Korean Traditional Ink & Wash Aesthetics.*
|
|
7
|
+
|
|
8
|
+
[English](README.md) | [한국어](README.ko.md) | [繁體中文](README.zh-TW.md) | [日本語](README.ja.md)
|
|
9
|
+
|
|
10
|
+
[](https://www.npmjs.com/package/asharyu-design-token)
|
|
11
|
+
[](https://github.com/yoonjonglyu/asharyu-design/blob/main/LICENSE)
|
|
12
|
+
[-success?style=flat-square&color=ACC4A6)](https://www.w3.org/WAI/WCAG21/quickref/)
|
|
13
|
+
[](https://tokens.studio/)
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 📖 목차
|
|
20
|
+
1. [설치 (Installation)](#1-설치-installation)
|
|
21
|
+
2. [빠른 시작 (Quick Start)](#2-빠른-시작-quick-start)
|
|
22
|
+
3. [핵심 미학 및 설계 철학 (Design Philosophy)](#3-핵심-미학-및-설계-철학-design-philosophy)
|
|
23
|
+
4. [토큰 명세 및 CSS 변수 (Token Specifications)](#4-토큰-명세-및-css-변수-token-specifications)
|
|
24
|
+
5. [🎨 피그마 연동 가이드 (Figma Integration)](#5--피그마-연동-가이드-figma-integration)
|
|
25
|
+
6. [🤖 AI 에이전트 연동 (Agent & Skill Integration)](#6--ai-에이전트-연동-agent--skill-integration)
|
|
26
|
+
7. [접근성 및 품질 검증 (Accessibility)](#7-접근성-및-품질-검증-accessibility)
|
|
27
|
+
8. [라이선스 (License)](#8-라이선스-license)
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 1. 설치 (Installation)
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# npm
|
|
35
|
+
npm install asharyu-design-token
|
|
36
|
+
|
|
37
|
+
# pnpm
|
|
38
|
+
pnpm add asharyu-design-token
|
|
39
|
+
|
|
40
|
+
# yarn
|
|
41
|
+
yarn add asharyu-design-token
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 2. 빠른 시작 (Quick Start)
|
|
47
|
+
|
|
48
|
+
### 1) CSS 전역 변수 로드
|
|
49
|
+
프로젝트 진입점(예: `index.tsx`, `App.tsx`, 또는 메인 CSS)에서 스타일시트를 임포트합니다:
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
import 'asharyu-design-token/index.css';
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 2) CSS-in-JS (Emotion / Styled-Components)에서 사용
|
|
56
|
+
토큰 브릿지 객체(`tokens`)를 임포트하면 TypeScript 자동 완성을 지원받으며 CSS 변수를 안전하게 참조할 수 있습니다:
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
import styled from '@emotion/styled';
|
|
60
|
+
import { tokens } from 'asharyu-design-token';
|
|
61
|
+
|
|
62
|
+
const AsharyuCard = styled.div`
|
|
63
|
+
background-color: ${tokens.color.semantic.surface.primary};
|
|
64
|
+
border: ${tokens.stroke.weight.sharp} solid ${tokens.color.semantic.stroke};
|
|
65
|
+
border-radius: ${tokens.radius.gentle};
|
|
66
|
+
padding: ${tokens.spacing.void};
|
|
67
|
+
box-shadow: ${tokens.elevation.damMuk};
|
|
68
|
+
transition: ${tokens.interaction.flow.sangSaeng};
|
|
69
|
+
|
|
70
|
+
&:hover {
|
|
71
|
+
border-width: ${tokens.stroke.weight.fine};
|
|
72
|
+
box-shadow: ${tokens.elevation.jungMuk};
|
|
73
|
+
transform: translateY(-2px);
|
|
74
|
+
}
|
|
75
|
+
`;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 3) 음양(다크/라이트) 테마 전환
|
|
79
|
+
`data-theme` 속성을 통해 즉각적으로 테마가 전환됩니다:
|
|
80
|
+
|
|
81
|
+
```html
|
|
82
|
+
<!-- 라이트 모드 (양 陽) : 기본값 -->
|
|
83
|
+
<html data-theme="light"> ... </html>
|
|
84
|
+
|
|
85
|
+
<!-- 다크 모드 (음 陰) -->
|
|
86
|
+
<html data-theme="dark"> ... </html>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 3. 핵심 미학 및 설계 철학 (Design Philosophy)
|
|
92
|
+
|
|
93
|
+
**asharyu**는 주관적인 감각에만 의존하지 않고, 동양의 자연관인 **음양(陰陽)**과 **오행(五行)**, 그리고 수묵화의 **필치와 농담(濃淡)**을 현대 디지털 인터페이스로 정형화한 시스템입니다.
|
|
94
|
+
|
|
95
|
+
1. **예리함 (Sharpness / 묵선)**: 칼로 벤 듯 명확한 0.5px 묵선(`--asharyu-stroke-weight-sharp`)으로 정보의 경계를 정의합니다.
|
|
96
|
+
2. **여백 (Void / 한지의 숨구멍)**: 빽빽한 배치를 지양하고, 정보 사이의 숨구멍(`--asharyu-spacing-void`)을 확보합니다.
|
|
97
|
+
3. **농담의 깊이 (Nong-dam Elevation)**: 강한 인공 그림자 대신 수묵화의 엷고 짙음(담묵·중묵·농묵)으로 스며드는 깊이를 표현합니다.
|
|
98
|
+
4. **기운생동 (Ki-un Motion)**: 오행의 상생(相生, 부드러운 연결)과 상극(相剋, 예리한 결단 피드백) 논리에 따라 애니메이션을 제어합니다.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 4. 토큰 명세 및 CSS 변수 (Token Specifications)
|
|
103
|
+
|
|
104
|
+
### ① 색상 (Color Tokens)
|
|
105
|
+
|
|
106
|
+
#### 오행 (五行) — Primary Action & Surface
|
|
107
|
+
| 기운 | 시맨틱 역할 | 주요 용도 | 대표 CSS 변수 |
|
|
108
|
+
|---|---|---|---|
|
|
109
|
+
| **양/음 (Theme)** | 배경 및 본문 텍스트 | 한지의 미색, 심연의 묵빛 | `--asharyu-color-semantic-background`, `-text` |
|
|
110
|
+
| **목 (木, Wood)** | `Action` | 실행, 주 버튼, 주요 링크 | `--asharyu-color-semantic-action-primary` |
|
|
111
|
+
| **화 (火, Fire)** | `Danger` | 경고, 오류, 파괴적 액션 | `--asharyu-color-semantic-danger-primary` |
|
|
112
|
+
| **토 (土, Earth)** | `Surface` | 카드, 컨테이너 배경, 머무르는 공간 | `--asharyu-color-semantic-surface-primary` |
|
|
113
|
+
| **금 (金, Metal)** | `Border` | 경계선, 구분선, 단단한 테두리 | `--asharyu-color-semantic-border-primary` |
|
|
114
|
+
| **수 (水, Water)** | `Info` | 안내, 보조 정보, 네비게이션 | `--asharyu-color-semantic-info-primary` |
|
|
115
|
+
|
|
116
|
+
#### 오간색 (五間色) — Secondary Status & Feedback
|
|
117
|
+
| 간색 | 시맨틱 역할 | 배합 | 대표 CSS 변수 |
|
|
118
|
+
|---|---|---|---|
|
|
119
|
+
| **녹 (綠, Nok)** | `Success` | 목(木) + 토(土) | `--asharyu-color-semantic-status-success-primary` |
|
|
120
|
+
| **홍 (紅, Hong)** | `Alert-Hover` | 화(火) + 금(金) | `--asharyu-color-semantic-status-alert-hover-primary` |
|
|
121
|
+
| **벽 (碧, Byeok)** | `Focus` | 목(木) + 금(金) | `--asharyu-color-semantic-status-action-focus-primary` |
|
|
122
|
+
| **유황 (硫黃, Yu)** | `Warning / Sub-Surface` | 토(土) + 수(水) | `--asharyu-color-semantic-status-sub-surface-primary` |
|
|
123
|
+
| **자 (紫, Ja)** | `Special / Active` | 화(火) + 수(水) | `--asharyu-color-semantic-status-info-active-primary` |
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### ② 공간과 여백 (Spacing & Void)
|
|
128
|
+
|
|
129
|
+
| 키 | CSS 변수 | 값 (rem) | 값 (px) | 용도 및 의미 |
|
|
130
|
+
|---|---|---|---|---|
|
|
131
|
+
| `compact` | `--asharyu-spacing-compact` | `0.25rem` | 4px | 찰나: 아이콘 간격, 뱃지 패딩 |
|
|
132
|
+
| `fine` | `--asharyu-spacing-fine` | `0.5rem` | 8px | 세목: 인라인 요소 간격 |
|
|
133
|
+
| `moderate` | `--asharyu-spacing-moderate` | `0.75rem` | 12px | 근거리: 폼 컨트롤 및 리스트 |
|
|
134
|
+
| `base` | `--asharyu-spacing-base` | `1rem` | 16px | 평상: 표준 패딩 |
|
|
135
|
+
| `void` | `--asharyu-spacing-void` | `1.5rem` | 24px | **여백: 한지의 숨구멍 (표준 컴포넌트 여백)** |
|
|
136
|
+
| `wide` | `--asharyu-spacing-wide` | `2rem` | 32px | 심원: 섹션 내부 여백 |
|
|
137
|
+
| `spacious` | `--asharyu-spacing-spacious` | `3rem` | 48px | 대여백: 섹션 간 구분 여백 |
|
|
138
|
+
| `vast` | `--asharyu-spacing-vast` | `4rem` | 64px | 광막: 페이지 레벨 여백 |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### ③ 곡률 (Radius)
|
|
143
|
+
|
|
144
|
+
- `--asharyu-radius-sharp`: `0px` (검의 예리한 각)
|
|
145
|
+
- `--asharyu-radius-delicate`: `0.25rem` (4px, 절제된 모서리)
|
|
146
|
+
- `--asharyu-radius-gentle`: `0.5rem` (8px, 온화한 곡률)
|
|
147
|
+
- `--asharyu-radius-smooth`: `0.75rem` (12px, 유려한 곡률)
|
|
148
|
+
- `--asharyu-radius-prominent`: `1rem` (16px, 넉넉한 둥글림)
|
|
149
|
+
- `--asharyu-radius-full`: `9999px` (태극, 원형 아바타)
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
### ④ 농담(濃淡) 그림자 (Elevation & Depth)
|
|
154
|
+
|
|
155
|
+
수묵화의 먹빛 농도에 따라 다크/라이트 테마에 자동으로 감응하는 그림자 토큰입니다:
|
|
156
|
+
- `--asharyu-elevation-none`: 평면
|
|
157
|
+
- `--asharyu-elevation-dam-muk`: **담묵(淡墨)** — 카드 호버, 드롭다운 표면
|
|
158
|
+
- `--asharyu-elevation-jung-muk`: **중묵(中墨)** — 팝오버, 플로팅 보드
|
|
159
|
+
- `--asharyu-elevation-nong-muk`: **농묵(濃墨)** — 모달 다이얼로그
|
|
160
|
+
- `--asharyu-elevation-guk-muk`: **극묵(極墨)** — 최상위 토스트 및 플로팅 알림
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### ⑤ 타이포그래피 (Typography)
|
|
165
|
+
|
|
166
|
+
- **서체 (Family)**:
|
|
167
|
+
- `--asharyu-font-family-serif`: 한지의 결을 살린 서정적 바탕체 (`Gowun Batang`, `Noto Serif KR`)
|
|
168
|
+
- `--asharyu-font-family-sans`: 현대적 본문 고딕체 (`Pretendard`, system-ui)
|
|
169
|
+
- `--asharyu-font-family-mono`: 고정폭 코드 서체 (`JetBrains Mono`, monospace)
|
|
170
|
+
- **필압 (Weight)**:
|
|
171
|
+
- `--asharyu-font-weight-light` (300/담), `--asharyu-font-weight-regular` (400/상), `--asharyu-font-weight-semibold` (600/농), `--asharyu-font-weight-bold` (700/필)
|
|
172
|
+
- **행간 (Line Height)**:
|
|
173
|
+
- `--asharyu-font-line-height-tight` (1.25), `--asharyu-font-line-height-normal` (1.5), `--asharyu-font-line-height-relaxed` (1.75)
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 5. 🎨 피그마 연동 가이드 (Figma Integration)
|
|
178
|
+
|
|
179
|
+
`asharyu-design-token`은 빌드 시 Figma에서 즉시 사용할 수 있는 토큰 파일을 자동으로 생성 및 배포합니다.
|
|
180
|
+
|
|
181
|
+
### 방법 A: Tokens Studio for Figma 플러그인 연동 (권장)
|
|
182
|
+
1. Figma에서 **Tokens Studio for Figma** 플러그인을 실행합니다.
|
|
183
|
+
2. `Settings` > `Sync Providers`에서 **GitHub**를 연결하거나 `Load from local file`을 선택합니다.
|
|
184
|
+
3. 패키지 내 **`node_modules/asharyu-design-token/dist/tokens.json`** 파일을 지정합니다.
|
|
185
|
+
4. `global`, `light`, `dark` 토큰 세트가 자동으로 불러와지며, 컴포넌트에 색상/여백/곡률/그림자가 동기화됩니다.
|
|
186
|
+
|
|
187
|
+
### 방법 B: Figma Variables 직접 연동
|
|
188
|
+
1. **`node_modules/asharyu-design-token/dist/figma-variables.json`** 파일을 사용합니다.
|
|
189
|
+
2. Figma Variables Import 플러그인 또는 Figma REST API를 통해 `Color (Raw)`, `Color (Semantic)`, `Spacing & Radius` 컬렉션으로 한 번에 등록할 수 있습니다.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 6. 🤖 AI 에이전트 연동 (Agent & Skill Integration)
|
|
194
|
+
|
|
195
|
+
**Antigravity**, **Cursor**, **Claude Code**, **GitHub Copilot** 등의 AI 에이전트와 페어 프로그래밍 시 Asharyu 디자인 시스템의 규칙을 자동으로 학습시킬 수 있습니다.
|
|
196
|
+
|
|
197
|
+
### 1) Antigravity 사용 시
|
|
198
|
+
프로젝트의 `.agents/skills/asharyu-design-system/` 또는 패키지의 [SKILL.md](file:///e:/withc/Documents/coding/asharyu-design/packages/design-token/SKILL.md)를 통해 에이전트가 오행 원칙과 토큰을 준수하여 코드를 생성합니다.
|
|
199
|
+
|
|
200
|
+
### 2) 프롬프트 가이드 파일 참조
|
|
201
|
+
패키지 내에 내장된 프롬프트 가이드를 직접 참조할 수 있습니다:
|
|
202
|
+
```
|
|
203
|
+
node_modules/asharyu-design-token/SKILL.md
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 7. 접근성 및 품질 검증 (Accessibility)
|
|
209
|
+
|
|
210
|
+
- **WCAG 2.1 AAA 등급 만족**:
|
|
211
|
+
- 라이트 모드 (한지 미색 `#fdfaf4` 위 묵빛 `#0c0c0c`): **18.52 : 1** (AAA 기준 7:1 대폭 초과)
|
|
212
|
+
- 다크 모드 (심연 묵빛 `#0c0c0c` 위 한지색 `#fdfaf4`): **18.52 : 1** (AAA 기준 7:1 대폭 초과)
|
|
213
|
+
- **UI 경계선 및 포커스 링**:
|
|
214
|
+
- `action.sharp`, `danger.sharp` 등 모든 상태선이 WCAG 2.1 AA 기준(4.5:1 이상)을 충족합니다.
|
|
215
|
+
- **자동화 테스트 스위트**:
|
|
216
|
+
- 패키지 빌드 시 `token-validation.test.mjs`를 통해 토큰 무결성, CSS 변수 일치, WCAG 대비율을 100% 자동 검증합니다.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 8. 라이선스 (License)
|
|
221
|
+
|
|
222
|
+
This project is licensed under the [Apache 2.0 License](https://github.com/yoonjonglyu/asharyu-design/blob/main/LICENSE).
|