@pisodev/ui-common 0.0.1 → 0.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/README.md ADDED
@@ -0,0 +1,217 @@
1
+ # @library/common
2
+
3
+ Shared library for common components, utilities, and design tokens across projects.
4
+
5
+ ## Overview
6
+
7
+ This package provides:
8
+ - **Design Tokens**: Color system generated from Figma design tokens
9
+ - **Common Components**: Shared UI components (coming soon)
10
+ - **Utilities**: Helper functions and types (coming soon)
11
+
12
+ ## Color System
13
+
14
+ The color system automatically converts Figma design tokens into hex values for use in CSS and SCSS.
15
+
16
+ ### Features
17
+
18
+ - **Figma to Code**: Export Figma tokens → Auto-generate hex values
19
+ - **Three Token Types**: Scale, Semantic, and Static tokens
20
+ - **Theme Support**: Built-in light/dark mode switching
21
+ - **Type-Safe**: Full TypeScript support
22
+
23
+ ## Available Tokens
24
+
25
+ **Scale Tokens** - Base color scales with light/dark mode variants
26
+ ```typescript
27
+ grayScale, blue1Scale, blue2Scale, greenScale, purpleScale, yellowScale, redScale
28
+ ```
29
+
30
+ **Alpha Tokens** - Transparent color variants
31
+ ```typescript
32
+ grayAlpha, blue1Alpha, blue2Alpha, greenAlpha, purpleAlpha, yellowAlpha, redAlpha, whiteAlpha
33
+ ```
34
+
35
+ **Semantic Tokens** - Purpose-based colors
36
+ ```typescript
37
+ graySemantic, semanticPaper, semanticDivider, semanticOverlay, semanticBrand, semanticInformation
38
+ ```
39
+
40
+ **Static Tokens** - Fixed colors across themes
41
+ ```typescript
42
+ staticBlack, staticWhite, staticColor
43
+ ```
44
+
45
+ ## Quick Start
46
+
47
+ ### Using Colors in Your Project
48
+
49
+ **CSS:**
50
+ ```css
51
+ @import '@library/common/theme/colors.css';
52
+
53
+ .button {
54
+ background: var(--blue1-400);
55
+ color: var(--gray-00);
56
+ }
57
+ ```
58
+
59
+ **SCSS:**
60
+ ```scss
61
+ @import '@library/common/theme/colors';
62
+
63
+ .button {
64
+ background: $blue1-400;
65
+ color: $gray-00;
66
+ }
67
+ ```
68
+
69
+ **TypeScript/JavaScript:**
70
+ ```typescript
71
+ import { grayScale, semanticBrand } from '@library/common/theme/colors.data';
72
+
73
+ const primaryColor = grayScale.light['400']; // '#AAACAE'
74
+ const brandColor = semanticBrand['gluwa-primary']; // 'var(--blue1-400)'
75
+ ```
76
+
77
+ ---
78
+
79
+ ## Updating Colors
80
+
81
+ When colors change in Figma:
82
+
83
+ 1. **Export** Figma tokens as JSON to `tokens/` directory
84
+ 2. **Extract** colors from tokens: `npm run build:extract-colors`
85
+ 3. **Build** CSS/SCSS files: `npm run build:colors`
86
+
87
+ ```bash
88
+ npm run build:extract-colors # Parse JSON → colors.data.ts
89
+ npm run build:colors # Generate CSS/SCSS
90
+ ```
91
+
92
+ ---
93
+
94
+ ## How It Works
95
+
96
+ ### From Figma to Hex Values
97
+
98
+ The system converts Figma design tokens into hex color values:
99
+
100
+ **1. Figma Tokens (JSON)**
101
+ ```json
102
+ {
103
+ "scale-blue1": {
104
+ "400": {
105
+ "$value": { "hex": "#1473FF" }
106
+ }
107
+ }
108
+ }
109
+ ```
110
+
111
+ **2. Generated TypeScript**
112
+ ```typescript
113
+ export const blue1Scale = {
114
+ light: { '400': '#1473FF' },
115
+ dark: { '400': '#1473FF' }
116
+ }
117
+ ```
118
+
119
+ **3. Generated CSS**
120
+ ```css
121
+ :root {
122
+ --blue1-400: #1473FF;
123
+ }
124
+ ```
125
+
126
+ ### Key Features
127
+
128
+ **Alias References**
129
+ Semantic and static tokens reference scale tokens instead of duplicating hex values:
130
+ ```typescript
131
+ 'gluwa-primary': 'var(--blue1-400)' // ✅ References scale token
132
+ ```
133
+
134
+ **Dynamic Generation**
135
+ Adding new colors in Figma automatically includes them in the build:
136
+ - No manual code updates needed
137
+ - Rename-safe across all files
138
+
139
+ **Sanitization**
140
+ Parentheses in token names are converted to suffixes:
141
+ - `"trugi-primary(legacy)"` → `"trugi-primary-legacy"`
142
+ - Ensures valid CSS/SCSS variable names
143
+
144
+ ## File Structure
145
+
146
+ ```
147
+ src/theme/
148
+ ├── extract-colors.ts # Parses Figma JSON → colors.data.ts
149
+ ├── build-colors.ts # Generates CSS/SCSS from colors.data.ts
150
+ ├── colors.data.ts # TypeScript exports (auto-generated)
151
+ ├── colors.css # CSS variables (auto-generated)
152
+ └── _colors.scss # SCSS variables (auto-generated)
153
+
154
+ tokens/
155
+ └── *.json # Figma design token JSON files
156
+ ```
157
+
158
+ ## Scripts
159
+
160
+ Add to your `package.json`:
161
+ ```json
162
+ {
163
+ "scripts": {
164
+ "extract:colors": "tsx src/theme/extract-colors.ts",
165
+ "build:colors": "npm run extract:colors && tsx src/theme/build-colors.ts"
166
+ }
167
+ }
168
+ ```
169
+
170
+ ## Theme Switching
171
+
172
+ The generated CSS supports multiple theme modes:
173
+
174
+ **Auto (OS preference):**
175
+ Automatically switches based on system preference (default behavior)
176
+
177
+ **Force Light Mode:**
178
+ ```html
179
+ <html class="light">
180
+ ```
181
+
182
+ **Force Dark Mode:**
183
+ ```html
184
+ <html class="dark">
185
+ ```
186
+
187
+ ## Extending the Color System
188
+
189
+ ### Add New Color Scale
190
+
191
+ 1. **In Figma:** Create new color group with `scale-{name}` prefix
192
+ 2. **In Code:** Add mapping to [extract-colors.ts](src/theme/extract-colors.ts):
193
+ ```typescript
194
+ const SCALE_EXPORT: Record<string, string> = {
195
+ // ...existing mappings
196
+ orange: 'orangeScale',
197
+ };
198
+ ```
199
+ 3. **Build:** Run `npm run build:colors`
200
+
201
+ ### Add New Semantic Token Group
202
+
203
+ 1. **In Figma:** Create new semantic group with `semantic-{name}` prefix
204
+ 2. **In Code:** Add mapping to [extract-colors.ts](src/theme/extract-colors.ts):
205
+ ```typescript
206
+ const SEMANTIC_GROUP_EXPORT: Record<string, string> = {
207
+ // ...existing mappings
208
+ text: 'semanticText',
209
+ };
210
+ ```
211
+ 3. **Build:** Run `npm run build:colors`
212
+
213
+ ---
214
+
215
+ ## License
216
+
217
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/theme/colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,eAAO,MAAM,WAAW,EAAE,KAIzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAIxB,CAAC"}
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/theme/colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,eAAO,MAAM,WAAW,EAAE,KAmBzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAmBxB,CAAC"}
@@ -1,29 +1,557 @@
1
1
  export declare const grayScale: {
2
- light: {
3
- '00': string;
4
- '50': string;
5
- '100': string;
6
- '200': string;
7
- '300': string;
8
- '400': string;
9
- '500': string;
10
- '600': string;
11
- '700': string;
12
- '800': string;
13
- '900': string;
14
- };
15
- dark: {
16
- '00': string;
17
- '50': string;
18
- '100': string;
19
- '200': string;
20
- '300': string;
21
- '400': string;
22
- '500': string;
23
- '600': string;
24
- '700': string;
25
- '800': string;
26
- '900': string;
2
+ readonly light: {
3
+ readonly '50': "#F6F8FA";
4
+ readonly '100': "#EEF0F2";
5
+ readonly '200': "#E6E8EA";
6
+ readonly '300': "#DADCDD";
7
+ readonly '400': "#CED0D2";
8
+ readonly '500': "#AAACAE";
9
+ readonly '600': "#86888A";
10
+ readonly '700': "#4C4E50";
11
+ readonly '800': "#2C2E30";
12
+ readonly '900': "#0C0E10";
13
+ readonly '00': "#FFFFFF";
14
+ };
15
+ readonly dark: {
16
+ readonly '50': "#1A1C1E";
17
+ readonly '100': "#282A2C";
18
+ readonly '200': "#36383A";
19
+ readonly '300': "#444648";
20
+ readonly '400': "#525456";
21
+ readonly '500': "#66686A";
22
+ readonly '600': "#888A8C";
23
+ readonly '700': "#AAACAE";
24
+ readonly '800': "#CCCED0";
25
+ readonly '900': "#FFFFFF";
26
+ readonly '00': "#0C0E10";
27
+ };
28
+ };
29
+ export declare const blue1Scale: {
30
+ readonly light: {
31
+ readonly '50': "#AFCFFF";
32
+ readonly '100': "#8EBCFF";
33
+ readonly '200': "#6DA8FF";
34
+ readonly '300': "#4C95FF";
35
+ readonly '400': "#1473FF";
36
+ readonly '500': "#1267E6";
37
+ readonly '600': "#0F57C2";
38
+ readonly '700': "#0C4599";
39
+ readonly '800': "#093370";
40
+ readonly '900': "#06234D";
41
+ readonly '00': "#C7DDFF";
42
+ };
43
+ readonly dark: {
44
+ readonly '50': "#0C4599";
45
+ readonly '100': "#0E51B3";
46
+ readonly '200': "#105CCC";
47
+ readonly '300': "#1267E6";
48
+ readonly '400': "#1473FF";
49
+ readonly '500': "#4C95FF";
50
+ readonly '600': "#6DA8FF";
51
+ readonly '700': "#8ECBFF";
52
+ readonly '800': "#AFCFFF";
53
+ readonly '900': "#C7DDFF";
54
+ readonly '00': "#0A3980";
55
+ };
56
+ };
57
+ export declare const blue2Scale: {
58
+ readonly light: {
59
+ readonly '50': "#A9C4FF";
60
+ readonly '100': "#85ACFF";
61
+ readonly '200': "#6194FF";
62
+ readonly '300': "#3E7CFF";
63
+ readonly '400': "#0152FF";
64
+ readonly '500': "#014AE6";
65
+ readonly '600': "#013EC2";
66
+ readonly '700': "#013199";
67
+ readonly '800': "#002470";
68
+ readonly '900': "#00194D";
69
+ readonly '00': "#C2D5FF";
70
+ };
71
+ readonly dark: {
72
+ readonly '50': "#1F4699";
73
+ readonly '100': "#2451B3";
74
+ readonly '200': "#295DCC";
75
+ readonly '300': "#2E68E6";
76
+ readonly '400': "#3374FF";
77
+ readonly '500': "#6495FF";
78
+ readonly '600': "#80A9FF";
79
+ readonly '700': "#9DBCFF";
80
+ readonly '800': "#BAD0FF";
81
+ readonly '900': "#CEDEFF";
82
+ readonly '00': "#1A3A80";
83
+ };
84
+ };
85
+ export declare const greenScale: {
86
+ readonly light: {
87
+ readonly '50': "#B0ECDA";
88
+ readonly '100': "#90E4CB";
89
+ readonly '200': "#70DCBB";
90
+ readonly '300': "#4FD4AC";
91
+ readonly '400': "#18C792";
92
+ readonly '500': "#16B383";
93
+ readonly '600': "#12976F";
94
+ readonly '700': "#0E7758";
95
+ readonly '800': "#0B5840";
96
+ readonly '900': "#073C2C";
97
+ readonly '00': "#C8F2E5";
98
+ };
99
+ readonly dark: {
100
+ readonly '50': "#128F69";
101
+ readonly '100': "#15A77B";
102
+ readonly '200': "#18BE8C";
103
+ readonly '300': "#1BD69E";
104
+ readonly '400': "#1EEEAF";
105
+ readonly '500': "#54F2C2";
106
+ readonly '600': "#73F4CD";
107
+ readonly '700': "#93F7D9";
108
+ readonly '800': "#B2F9E4";
109
+ readonly '900': "#C9FBEC";
110
+ readonly '00': "#0F7758";
111
+ };
112
+ };
113
+ export declare const purpleScale: {
114
+ readonly light: {
115
+ readonly '50': "#C0CBFC";
116
+ readonly '100': "#A7B6FA";
117
+ readonly '200': "#8DA1F9";
118
+ readonly '300': "#738BF7";
119
+ readonly '400': "#4767F5";
120
+ readonly '500': "#405DDC";
121
+ readonly '600': "#364EBA";
122
+ readonly '700': "#2B3E93";
123
+ readonly '800': "#1F2D6C";
124
+ readonly '900': "#151F4A";
125
+ readonly '00': "#D3DAFD";
126
+ };
127
+ readonly dark: {
128
+ readonly '50': "#2C4099";
129
+ readonly '100': "#344BB3";
130
+ readonly '200': "#3B56CC";
131
+ readonly '300': "#4360E6";
132
+ readonly '400': "#4A6BFF";
133
+ readonly '500': "#758FFF";
134
+ readonly '600': "#8FA3FF";
135
+ readonly '700': "#A8B8FF";
136
+ readonly '800': "#C1CDFF";
137
+ readonly '900': "#D4DBFF";
138
+ readonly '00': "#253580";
139
+ };
140
+ };
141
+ export declare const yellowScale: {
142
+ readonly light: {
143
+ readonly '50': "#FAE7A8";
144
+ readonly '100': "#F8DD84";
145
+ readonly '200': "#F6D361";
146
+ readonly '300': "#F4C93D";
147
+ readonly '400': "#F0B800";
148
+ readonly '500': "#D8A600";
149
+ readonly '600': "#B68C00";
150
+ readonly '700': "#906E00";
151
+ readonly '800': "#6A5100";
152
+ readonly '900': "#483700";
153
+ readonly '00': "#FBEEC2";
154
+ };
155
+ readonly dark: {
156
+ readonly '50': "#997600";
157
+ readonly '100': "#B38900";
158
+ readonly '200': "#CC9D00";
159
+ readonly '300': "#E6B000";
160
+ readonly '400': "#FFC400";
161
+ readonly '500': "#FFD23D";
162
+ readonly '600': "#FFDA61";
163
+ readonly '700': "#FFE384";
164
+ readonly '800': "#FFEBA8";
165
+ readonly '900': "#FFF1C2";
166
+ readonly '00': "#806200";
167
+ };
168
+ };
169
+ export declare const redScale: {
170
+ readonly light: {
171
+ readonly '50': "#F8BFBF";
172
+ readonly '100': "#F5A4A4";
173
+ readonly '200': "#F38A8A";
174
+ readonly '300': "#F06F6F";
175
+ readonly '400': "#EB4242";
176
+ readonly '500': "#D43B3B";
177
+ readonly '600': "#B33232";
178
+ readonly '700': "#8D2828";
179
+ readonly '800': "#681D1D";
180
+ readonly '900': "#471414";
181
+ readonly '00': "#FAD2D2";
182
+ };
183
+ readonly dark: {
184
+ readonly '50': "#992B2B";
185
+ readonly '100': "#B33232";
186
+ readonly '200': "#CC3A3A";
187
+ readonly '300': "#E64141";
188
+ readonly '400': "#FF4848";
189
+ readonly '500': "#FF7474";
190
+ readonly '600': "#FF8E8E";
191
+ readonly '700': "#FFA7A7";
192
+ readonly '800': "#FFC1C1";
193
+ readonly '900': "#FFD3D3";
194
+ readonly '00': "#802424";
195
+ };
196
+ };
197
+ export declare const grayAlpha: {
198
+ readonly light: {
199
+ readonly '30': "#FFFFFF08";
200
+ readonly '50': "#FFFFFF0D";
201
+ readonly '100': "#FFFFFF1A";
202
+ readonly '200': "#FFFFFF33";
203
+ readonly '500': "#FFFFFF80";
204
+ };
205
+ readonly dark: {
206
+ readonly '30': "#00000008";
207
+ readonly '50': "#0000000D";
208
+ readonly '100': "#0000001A";
209
+ readonly '200': "#00000033";
210
+ readonly '500': "#00000080";
211
+ };
212
+ };
213
+ export declare const blue1Alpha: {
214
+ readonly light: {
215
+ readonly '30': "#1473FF0A";
216
+ readonly '50': "#1473FF14";
217
+ readonly '100': "#1473FF24";
218
+ readonly '200': "#1473FF33";
219
+ readonly '500': "#1473FF80";
220
+ };
221
+ readonly dark: {
222
+ readonly '30': "#1473FF0A";
223
+ readonly '50': "#1473FF14";
224
+ readonly '100': "#1473FF24";
225
+ readonly '200': "#1473FF33";
226
+ readonly '500': "#1473FF80";
227
+ };
228
+ };
229
+ export declare const blue2Alpha: {
230
+ readonly light: {
231
+ readonly '30': "#0152FF0A";
232
+ readonly '50': "#0152FF14";
233
+ readonly '100': "#0152FF24";
234
+ readonly '200': "#0152FF33";
235
+ readonly '500': "#0152FF80";
236
+ };
237
+ readonly dark: {
238
+ readonly '30': "#3374FF0A";
239
+ readonly '50': "#3374FF14";
240
+ readonly '100': "#3374FF24";
241
+ readonly '200': "#3374FF33";
242
+ readonly '500': "#3374FF80";
243
+ };
244
+ };
245
+ export declare const greenAlpha: {
246
+ readonly light: {
247
+ readonly '30': "#18C7920A";
248
+ readonly '50': "#18C79214";
249
+ readonly '100': "#18C79224";
250
+ readonly '200': "#18C7924D";
251
+ readonly '500': "#18C79299";
252
+ };
253
+ readonly dark: {
254
+ readonly '30': "#1EEEAF0A";
255
+ readonly '50': "#1EEEAF14";
256
+ readonly '100': "#1EEEAF24";
257
+ readonly '200': "#1EEEAF33";
258
+ readonly '500': "#1EEEAF80";
259
+ };
260
+ };
261
+ export declare const purpleAlpha: {
262
+ readonly light: {
263
+ readonly '30': "#4767F50A";
264
+ readonly '50': "#4767F514";
265
+ readonly '100': "#4767F524";
266
+ readonly '200': "#4767F533";
267
+ readonly '500': "#4767F580";
268
+ };
269
+ readonly dark: {
270
+ readonly '30': "#4A6BFF0A";
271
+ readonly '50': "#4A6BFF14";
272
+ readonly '100': "#4A6BFF24";
273
+ readonly '200': "#4A6BFF33";
274
+ readonly '500': "#4A6BFF80";
275
+ };
276
+ };
277
+ export declare const yellowAlpha: {
278
+ readonly light: {
279
+ readonly '30': "#F0B8000A";
280
+ readonly '50': "#F0B80014";
281
+ readonly '100': "#F0B80024";
282
+ readonly '200': "#F0B80033";
283
+ readonly '500': "#F0B80080";
284
+ };
285
+ readonly dark: {
286
+ readonly '30': "#FFC4000A";
287
+ readonly '50': "#FFC40014";
288
+ readonly '100': "#FFC40024";
289
+ readonly '200': "#FFC40033";
290
+ readonly '500': "#FFC40080";
291
+ };
292
+ };
293
+ export declare const redAlpha: {
294
+ readonly light: {
295
+ readonly '30': "#EB42420A";
296
+ readonly '50': "#EB424214";
297
+ readonly '100': "#EB424224";
298
+ readonly '200': "#EB424233";
299
+ readonly '500': "#EB424280";
300
+ };
301
+ readonly dark: {
302
+ readonly '30': "#FF48480A";
303
+ readonly '50': "#FF484814";
304
+ readonly '100': "#FF484824";
305
+ readonly '200': "#FF484833";
306
+ readonly '500': "#FF484880";
307
+ };
308
+ };
309
+ export declare const whiteAlpha: {
310
+ readonly light: {
311
+ readonly '30': "#00000008";
312
+ readonly '50': "#0000000D";
313
+ readonly '100': "#0000001A";
314
+ readonly '200': "#00000033";
315
+ readonly '500': "#00000080";
316
+ };
317
+ readonly dark: {
318
+ readonly '30': "#FFFFFF08";
319
+ readonly '50': "#FFFFFF0D";
320
+ readonly '100': "#FFFFFF1A";
321
+ readonly '200': "#FFFFFF33";
322
+ readonly '500': "#FFFFFF80";
323
+ };
324
+ };
325
+ export declare const graySemantic: {
326
+ readonly light: {
327
+ readonly '50': "#FFFFFF";
328
+ readonly '100': "#F6F8FA";
329
+ readonly '00': "#F6F8FA";
330
+ };
331
+ readonly dark: {
332
+ readonly '50': "#1A1C1E";
333
+ readonly '100': "#282A2C";
334
+ readonly '00': "#0C0E10";
335
+ };
336
+ };
337
+ export declare const semanticPaper: {
338
+ readonly light: {
339
+ readonly contents: "var(--gray-50)";
340
+ readonly default: "var(--gray-00)";
341
+ readonly dialog: "var(--gray-semantic-50)";
342
+ readonly neutral: "var(--gray-semantic-00)";
343
+ readonly sheet: "var(--gray-semantic-50)";
344
+ };
345
+ readonly dark: {
346
+ readonly contents: "var(--gray-50)";
347
+ readonly default: "var(--gray-00)";
348
+ readonly dialog: "var(--gray-semantic-50)";
349
+ readonly neutral: "var(--gray-semantic-00)";
350
+ readonly sheet: "var(--gray-semantic-50)";
351
+ };
352
+ };
353
+ export declare const semanticDivider: {
354
+ readonly light: {
355
+ readonly 'divider-1': "var(--white-alpha-50)";
356
+ readonly 'divider-2': "var(--gray-100)";
357
+ readonly 'divider-3': "var(--white-alpha-100)";
358
+ readonly 'divider-4': "var(--white-alpha-200)";
359
+ };
360
+ readonly dark: {
361
+ readonly 'divider-1': "var(--white-alpha-50)";
362
+ readonly 'divider-2': "var(--gray-100)";
363
+ readonly 'divider-3': "var(--white-alpha-100)";
364
+ readonly 'divider-4': "var(--white-alpha-200)";
365
+ };
366
+ };
367
+ export declare const semanticOverlay: {
368
+ readonly light: {
369
+ readonly 'overlay-dim': "";
370
+ readonly 'overlay-low': "";
371
+ };
372
+ readonly dark: {
373
+ readonly 'overlay-dim': "";
374
+ readonly 'overlay-low': "";
375
+ };
376
+ };
377
+ export declare const semanticBrand: {
378
+ readonly light: {
379
+ readonly 'credit-primary': "var(--green-400)";
380
+ readonly 'credit-primary-hover': "var(--green-600)";
381
+ readonly 'credit-primary-low': "var(--green-alpha-50)";
382
+ readonly 'credit-primary-low-hover': "var(--green-alpha-100)";
383
+ readonly 'credit-primary-low-pressed': "var(--green-alpha-100)";
384
+ readonly 'credit-primary-pressed': "var(--green-600)";
385
+ readonly 'gluwa-primary': "var(--blue1-400)";
386
+ readonly 'gluwa-primary-hover': "var(--blue1-600)";
387
+ readonly 'gluwa-primary-low': "var(--blue1-alpha-50)";
388
+ readonly 'gluwa-primary-low-hover': "var(--blue1-alpha-100)";
389
+ readonly 'gluwa-primary-low-pressed': "var(--blue1-alpha-100)";
390
+ readonly 'gluwa-primary-pressed': "var(--blue1-600)";
391
+ readonly 'space-primary': "var(--purple-400)";
392
+ readonly 'space-primary-hover': "var(--purple-600)";
393
+ readonly 'space-primary-low': "var(--purple-alpha-50)";
394
+ readonly 'space-primary-low-hover': "var(--purple-alpha-100)";
395
+ readonly 'space-primary-low-pressed': "var(--purple-alpha-100)";
396
+ readonly 'space-primary-pressed': "var(--purple-600)";
397
+ readonly 'trugi-primary': "var(--blue2-400)";
398
+ readonly 'trugi-primary-hover': "var(--blue2-600)";
399
+ readonly 'trugi-primary-legacy': "#2848FEFF";
400
+ readonly 'trugi-primary-low': "var(--blue2-alpha-50)";
401
+ readonly 'trugi-primary-low-hover': "var(--blue2-alpha-100)";
402
+ readonly 'trugi-primary-low-pressed': "var(--blue2-alpha-100)";
403
+ readonly 'trugi-primary-pressed': "var(--blue2-600)";
404
+ };
405
+ readonly dark: {
406
+ readonly 'credit-primary': "var(--green-400)";
407
+ readonly 'credit-primary-hover': "var(--green-600)";
408
+ readonly 'credit-primary-low': "var(--green-alpha-50)";
409
+ readonly 'credit-primary-low-hover': "var(--green-alpha-100)";
410
+ readonly 'credit-primary-low-pressed': "var(--green-alpha-100)";
411
+ readonly 'credit-primary-pressed': "var(--green-600)";
412
+ readonly 'gluwa-primary': "var(--blue1-400)";
413
+ readonly 'gluwa-primary-hover': "var(--blue1-600)";
414
+ readonly 'gluwa-primary-low': "var(--blue1-alpha-50)";
415
+ readonly 'gluwa-primary-low-hover': "var(--blue1-alpha-100)";
416
+ readonly 'gluwa-primary-low-pressed': "var(--blue1-alpha-100)";
417
+ readonly 'gluwa-primary-pressed': "var(--blue1-600)";
418
+ readonly 'space-primary': "var(--purple-400)";
419
+ readonly 'space-primary-hover': "var(--purple-600)";
420
+ readonly 'space-primary-low': "var(--purple-alpha-50)";
421
+ readonly 'space-primary-low-hover': "var(--purple-alpha-100)";
422
+ readonly 'space-primary-low-pressed': "var(--purple-alpha-100)";
423
+ readonly 'space-primary-pressed': "var(--purple-600)";
424
+ readonly 'trugi-primary': "var(--blue2-400)";
425
+ readonly 'trugi-primary-hover': "var(--blue2-600)";
426
+ readonly 'trugi-primary-legacy': "#2848FEFF";
427
+ readonly 'trugi-primary-low': "var(--blue2-alpha-50)";
428
+ readonly 'trugi-primary-low-hover': "var(--blue2-alpha-100)";
429
+ readonly 'trugi-primary-low-pressed': "var(--blue2-alpha-100)";
430
+ readonly 'trugi-primary-pressed': "var(--blue2-600)";
431
+ };
432
+ };
433
+ export declare const semanticInformation: {
434
+ readonly light: {
435
+ readonly caution: "var(--yellow-400)";
436
+ readonly 'caution-low': "var(--yellow-alpha-50)";
437
+ readonly error: "var(--red-400)";
438
+ readonly 'error-low': "var(--red-alpha-50)";
439
+ readonly info: "var(--blue1-400)";
440
+ readonly 'info-low': "var(--blue1-alpha-50)";
441
+ readonly success: "var(--green-400)";
442
+ readonly 'success-low': "var(--green-alpha-50)";
443
+ };
444
+ readonly dark: {
445
+ readonly caution: "var(--yellow-400)";
446
+ readonly 'caution-low': "var(--yellow-alpha-50)";
447
+ readonly error: "var(--red-400)";
448
+ readonly 'error-low': "var(--red-alpha-50)";
449
+ readonly info: "var(--blue1-400)";
450
+ readonly 'info-low': "var(--blue1-alpha-50)";
451
+ readonly success: "var(--green-400)";
452
+ readonly 'success-low': "var(--green-alpha-50)";
453
+ };
454
+ };
455
+ export declare const staticBlack: {
456
+ readonly light: {
457
+ readonly 'alpha-100': "#0000001A";
458
+ readonly 'alpha-200': "#00000033";
459
+ readonly 'alpha-30': "#00000008";
460
+ readonly 'alpha-50': "#0000000D";
461
+ readonly 'alpha-500': "#00000080";
462
+ readonly 'alpha-800': "#000000CC";
463
+ readonly main: "#000000FF";
464
+ };
465
+ readonly dark: {
466
+ readonly 'alpha-100': "#0000001A";
467
+ readonly 'alpha-200': "#00000033";
468
+ readonly 'alpha-30': "#00000008";
469
+ readonly 'alpha-50': "#0000000D";
470
+ readonly 'alpha-500': "#00000080";
471
+ readonly 'alpha-800': "#000000CC";
472
+ readonly main: "#000000FF";
473
+ };
474
+ };
475
+ export declare const staticWhite: {
476
+ readonly light: {
477
+ readonly 'alpha-100': "#FFFFFF1A";
478
+ readonly 'alpha-200': "#FFFFFF33";
479
+ readonly 'alpha-30': "#FFFFFF08";
480
+ readonly 'alpha-50': "#FFFFFF0D";
481
+ readonly 'alpha-500': "#FFFFFF80";
482
+ readonly 'alpha-800': "#FFFFFFCC";
483
+ readonly main: "#FFFFFFFF";
484
+ };
485
+ readonly dark: {
486
+ readonly 'alpha-100': "#FFFFFF1A";
487
+ readonly 'alpha-200': "#FFFFFF33";
488
+ readonly 'alpha-30': "#FFFFFF08";
489
+ readonly 'alpha-50': "#FFFFFF0D";
490
+ readonly 'alpha-500': "#FFFFFF80";
491
+ readonly 'alpha-800': "#FFFFFFCC";
492
+ readonly main: "#FFFFFFFF";
493
+ };
494
+ };
495
+ export declare const staticColor: {
496
+ readonly light: {
497
+ readonly 'blue1-400': "#1473FFFF";
498
+ readonly 'blue1-700': "#ACD2FFFF";
499
+ readonly 'blue2-400': "#0152FFFF";
500
+ readonly 'blue2-700': "#85ACFFFF";
501
+ readonly 'gluwa-lightblue': "#67CEFFFF";
502
+ readonly 'gluwa-navy': "#292751FF";
503
+ readonly 'gray-00': "#0C0E10FF";
504
+ readonly 'gray-200': "#36383AFF";
505
+ readonly 'gray-alpha-100': "#0C0E101A";
506
+ readonly 'gray-alpha-200': "#0C0E1033";
507
+ readonly 'gray-alpha-500': "#0C0E1080";
508
+ readonly 'gray-alpha-700': "#0C0E10B2";
509
+ readonly 'green-400': "#1EEEAFFF";
510
+ readonly 'green-700': "#93F7D9FF";
511
+ readonly 'purple-400': "#4A6BFFFF";
512
+ readonly 'purple-700': "#A8B8FFFF";
513
+ readonly 'red-400': "#FF4848FF";
514
+ readonly 'red-700': "#FFA7A7FF";
515
+ readonly 'trugi-blue-200-legacy': "#D9E8F9FF";
516
+ readonly 'trugi-blue-300-legacy': "#C0DAF8FF";
517
+ readonly 'trugi-blue-700-legacy': "#132DBBFF";
518
+ readonly 'trugi-blue-alpha': "#2848FE24";
519
+ readonly 'trugi-green': "#4EE28CFF";
520
+ readonly 'trugi-orange': "#FF8A4BFF";
521
+ readonly 'trugi-pink': "#FF6CBFFF";
522
+ readonly 'trugi-purple': "#B5AAFFFF";
523
+ readonly 'yellow-400': "#FFC400FF";
524
+ readonly 'yellow-700': "#FFE384FF";
525
+ };
526
+ readonly dark: {
527
+ readonly 'blue1-400': "#1473FFFF";
528
+ readonly 'blue1-700': "#ACD2FFFF";
529
+ readonly 'blue2-400': "#0152FFFF";
530
+ readonly 'blue2-700': "#85ACFFFF";
531
+ readonly 'gluwa-lightblue': "#67CEFFFF";
532
+ readonly 'gluwa-navy': "#292751FF";
533
+ readonly 'gray-00': "#0C0E10FF";
534
+ readonly 'gray-200': "#36383AFF";
535
+ readonly 'gray-alpha-100': "#0C0E101A";
536
+ readonly 'gray-alpha-200': "#0C0E1033";
537
+ readonly 'gray-alpha-500': "#0C0E1080";
538
+ readonly 'gray-alpha-700': "#0C0E10B2";
539
+ readonly 'green-400': "#1EEEAFFF";
540
+ readonly 'green-700': "#93F7D9FF";
541
+ readonly 'purple-400': "#4A6BFFFF";
542
+ readonly 'purple-700': "#A8B8FFFF";
543
+ readonly 'red-400': "#FF4848FF";
544
+ readonly 'red-700': "#FFA7A7FF";
545
+ readonly 'trugi-blue-200-legacy': "#D9E8F9FF";
546
+ readonly 'trugi-blue-300-legacy': "#C0DAF8FF";
547
+ readonly 'trugi-blue-700-legacy': "#132DBBFF";
548
+ readonly 'trugi-blue-alpha': "#2848FE24";
549
+ readonly 'trugi-green': "#4EE28CFF";
550
+ readonly 'trugi-orange': "#FF8A4BFF";
551
+ readonly 'trugi-pink': "#FF6CBFFF";
552
+ readonly 'trugi-purple': "#B5AAFFFF";
553
+ readonly 'yellow-400': "#FFC400FF";
554
+ readonly 'yellow-700': "#FFE384FF";
27
555
  };
28
556
  };
29
557
  //# sourceMappingURL=colors.data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors.data.d.ts","sourceRoot":"","sources":["../../src/theme/colors.data.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BrB,CAAC"}
1
+ {"version":3,"file":"colors.data.d.ts","sourceRoot":"","sources":["../../src/theme/colors.data.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BZ,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Bb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Bb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Bb,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Bd,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Bd,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BX,CAAC;AAEX,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;CAeZ,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;CAeb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;CAeb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;CAeb,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;CAed,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;CAed,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;CAeX,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;CAeb,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;CAWf,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CAehB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAalB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;CASlB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDhB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;CAqBtB,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;CAmBd,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;CAmBd,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Dd,CAAC"}
@@ -11,9 +11,31 @@ export interface ColorScale {
11
11
  '800': string;
12
12
  '900': string;
13
13
  }
14
+ export interface ColorAlpha {
15
+ '30': string;
16
+ '50': string;
17
+ '100': string;
18
+ '200': string;
19
+ '500': string;
20
+ }
14
21
  export interface Theme {
15
22
  colors: {
16
23
  gray: ColorScale;
24
+ grayAlpha: ColorAlpha;
25
+ graySemantic: Partial<ColorScale>;
26
+ whiteAlpha: ColorAlpha;
27
+ blue1: ColorScale;
28
+ blue1Alpha: ColorAlpha;
29
+ blue2: ColorScale;
30
+ blue2Alpha: ColorAlpha;
31
+ green: ColorScale;
32
+ greenAlpha: ColorAlpha;
33
+ purple: ColorScale;
34
+ purpleAlpha: ColorAlpha;
35
+ yellow: ColorScale;
36
+ yellowAlpha: ColorAlpha;
37
+ red: ColorScale;
38
+ redAlpha: ColorAlpha;
17
39
  };
18
40
  }
19
41
  export type ThemeMode = 'light' | 'dark';
@@ -1 +1 @@
1
- {"version":3,"file":"colors.types.d.ts","sourceRoot":"","sources":["../../src/theme/colors.types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE;QACN,IAAI,EAAE,UAAU,CAAC;KAElB,CAAC;CACH;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"colors.types.d.ts","sourceRoot":"","sources":["../../src/theme/colors.types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE;QACN,IAAI,EAAE,UAAU,CAAC;QACjB,SAAS,EAAE,UAAU,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAClC,UAAU,EAAE,UAAU,CAAC;QACvB,KAAK,EAAE,UAAU,CAAC;QAClB,UAAU,EAAE,UAAU,CAAC;QACvB,KAAK,EAAE,UAAU,CAAC;QAClB,UAAU,EAAE,UAAU,CAAC;QACvB,KAAK,EAAE,UAAU,CAAC;QAClB,UAAU,EAAE,UAAU,CAAC;QACvB,MAAM,EAAE,UAAU,CAAC;QACnB,WAAW,EAAE,UAAU,CAAC;QACxB,MAAM,EAAE,UAAU,CAAC;QACnB,WAAW,EAAE,UAAU,CAAC;QACxB,GAAG,EAAE,UAAU,CAAC;QAChB,QAAQ,EAAE,UAAU,CAAC;KACtB,CAAC;CACH;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=extract-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-colors.d.ts","sourceRoot":"","sources":["../../src/theme/extract-colors.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisodev/ui-common",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "웹과 React Native를 위한 공통 타입 및 테마",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -10,8 +10,9 @@
10
10
  "dist"
11
11
  ],
12
12
  "scripts": {
13
+ "build:extract-colors": "ts-node src/theme/extract-colors.ts",
13
14
  "build:colors": "ts-node src/theme/build-colors.ts",
14
- "build": "npm run build:colors && rollup -c rollup.config.js"
15
+ "build": "npm run build:extract-colors && npm run build:colors && rollup -c rollup.config.js"
15
16
  },
16
17
  "keywords": [
17
18
  "react",