@exem-ui/tailwindcss4 0.1.0-next.bf3c711

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.en.md ADDED
@@ -0,0 +1,88 @@
1
+ <p align="center">
2
+ <h1 align="center">@exem-ui/tailwindcss4</h1>
3
+ <p align="center">Tailwind CSS v4 theme for the EXEM Design System</p>
4
+ </p>
5
+
6
+ <p align="center">
7
+ <a href="https://www.npmjs.com/package/@exem-ui/tailwindcss4"><img src="https://img.shields.io/npm/v/@exem-ui/tailwindcss4?style=flat-square&color=blue" alt="npm version" /></a>
8
+ <a href="https://www.npmjs.com/package/@exem-ui/tailwindcss4"><img src="https://img.shields.io/npm/dm/@exem-ui/tailwindcss4?style=flat-square" alt="npm downloads" /></a>
9
+ <img src="https://img.shields.io/badge/Tailwind_CSS-4-06B6D4?style=flat-square&logo=tailwindcss&logoColor=white" alt="Tailwind CSS" />
10
+ <img src="https://img.shields.io/badge/CSS--first-native-ff69b4?style=flat-square" alt="CSS-first" />
11
+ <a href="https://github.com/CloudMOA/exem-ui/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green?style=flat-square" alt="license" /></a>
12
+ </p>
13
+
14
+ <p align="center">
15
+ English | <a href="./README.md">한국어</a>
16
+ </p>
17
+
18
+ ---
19
+
20
+ ## Introduction
21
+
22
+ `@exem-ui/tailwindcss4` is an EXEM Design System theme built for Tailwind CSS v4's CSS-first configuration. Apply 450+ design tokens to your project with a single CSS `@import` — no JavaScript config needed.
23
+
24
+ ## Key Features
25
+
26
+ - **CSS-first Design** — Native Tailwind v4 CSS configuration, no JavaScript setup
27
+ - **Pure CSS Output** — `@theme` directive-based pure CSS file with zero runtime
28
+ - **Auto-generated** — Automatically converted from `@exem-ui/core` CSS variables, always in sync
29
+ - **450+ Tokens** — 321 colors + radius/shadow/breakpoint tokens
30
+ - **Zero Dependencies** — No runtime JavaScript dependencies
31
+
32
+ ## Installation
33
+
34
+ ```bash
35
+ # npm
36
+ npm install @exem-ui/tailwindcss4
37
+
38
+ # pnpm
39
+ pnpm add @exem-ui/tailwindcss4
40
+
41
+ # yarn
42
+ yarn add @exem-ui/tailwindcss4
43
+ ```
44
+
45
+ ### Prerequisites
46
+
47
+ - Tailwind CSS >= 4.0.0
48
+
49
+ ## Usage
50
+
51
+ Add a single line to your CSS entry file:
52
+
53
+ ```css
54
+ /* app.css */
55
+ @import "tailwindcss";
56
+ @import "@exem-ui/tailwindcss4";
57
+ ```
58
+
59
+ That's it! Now use EXEM design tokens as Tailwind utilities:
60
+
61
+ ```html
62
+ <div class="bg-primary-500 text-mono-light rounded-md shadow-md">
63
+ EXEM styled content
64
+ </div>
65
+ ```
66
+
67
+ ## v3 vs v4
68
+
69
+ | | @exem-ui/tailwindcss3 | @exem-ui/tailwindcss4 |
70
+ |---|---|---|
71
+ | Config | JavaScript (`tailwind.config.ts`) | CSS (`@import`) |
72
+ | Complexity | Preset/Plugin registration | Single CSS import |
73
+ | Runtime deps | Requires `@exem-ui/core` | None (pure CSS) |
74
+ | Tailwind version | v3.x | v4.x |
75
+
76
+ ## Related Packages
77
+
78
+ | Package | Description |
79
+ |---------|-------------|
80
+ | [@exem-ui/core](https://www.npmjs.com/package/@exem-ui/core) | Design tokens, CSS variables |
81
+ | [@exem-ui/react](https://www.npmjs.com/package/@exem-ui/react) | React UI components |
82
+ | [@exem-ui/tailwindcss3](https://www.npmjs.com/package/@exem-ui/tailwindcss3) | Tailwind CSS v3 plugin |
83
+
84
+ ## License
85
+
86
+ Apache License 2.0 - Copyright 2026 Exem Co., Ltd.
87
+
88
+ See [LICENSE](https://github.com/CloudMOA/exem-ui/blob/main/LICENSE) for details.
package/README.md ADDED
@@ -0,0 +1,88 @@
1
+ <p align="center">
2
+ <h1 align="center">@exem-ui/tailwindcss4</h1>
3
+ <p align="center">EXEM 디자인 시스템을 위한 Tailwind CSS v4 테마</p>
4
+ </p>
5
+
6
+ <p align="center">
7
+ <a href="https://www.npmjs.com/package/@exem-ui/tailwindcss4"><img src="https://img.shields.io/npm/v/@exem-ui/tailwindcss4?style=flat-square&color=blue" alt="npm version" /></a>
8
+ <a href="https://www.npmjs.com/package/@exem-ui/tailwindcss4"><img src="https://img.shields.io/npm/dm/@exem-ui/tailwindcss4?style=flat-square" alt="npm downloads" /></a>
9
+ <img src="https://img.shields.io/badge/Tailwind_CSS-4-06B6D4?style=flat-square&logo=tailwindcss&logoColor=white" alt="Tailwind CSS" />
10
+ <img src="https://img.shields.io/badge/CSS--first-native-ff69b4?style=flat-square" alt="CSS-first" />
11
+ <a href="https://github.com/CloudMOA/exem-ui/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green?style=flat-square" alt="license" /></a>
12
+ </p>
13
+
14
+ <p align="center">
15
+ <a href="./README.en.md">English</a> | 한국어
16
+ </p>
17
+
18
+ ---
19
+
20
+ ## 소개
21
+
22
+ `@exem-ui/tailwindcss4`는 Tailwind CSS v4의 CSS-first 설정 방식에 맞게 설계된 EXEM 디자인 시스템 테마입니다. JavaScript 설정 없이 순수 CSS `@import`만으로 450+ 디자인 토큰을 프로젝트에 적용할 수 있습니다.
23
+
24
+ ## 주요 특징
25
+
26
+ - **CSS-first 설계** — Tailwind v4의 네이티브 CSS 설정 방식 채택, JavaScript 설정 불필요
27
+ - **Pure CSS 출력** — `@theme` 지시어 기반 순수 CSS 파일로 제로 런타임
28
+ - **자동 생성** — `@exem-ui/core`의 CSS 변수에서 자동 변환, 디자인-개발 항상 동기화
29
+ - **450+ 토큰** — 321개 색상 + 반경/그림자/브레이크포인트 토큰
30
+ - **제로 의존성** — 런타임 JavaScript 의존성 없음
31
+
32
+ ## 설치
33
+
34
+ ```bash
35
+ # npm
36
+ npm install @exem-ui/tailwindcss4
37
+
38
+ # pnpm
39
+ pnpm add @exem-ui/tailwindcss4
40
+
41
+ # yarn
42
+ yarn add @exem-ui/tailwindcss4
43
+ ```
44
+
45
+ ### 사전 요구사항
46
+
47
+ - Tailwind CSS >= 4.0.0
48
+
49
+ ## 사용법
50
+
51
+ CSS 엔트리 파일에 한 줄만 추가하면 됩니다:
52
+
53
+ ```css
54
+ /* app.css */
55
+ @import "tailwindcss";
56
+ @import "@exem-ui/tailwindcss4";
57
+ ```
58
+
59
+ 설정 끝! 이제 EXEM 디자인 토큰을 Tailwind 유틸리티로 사용할 수 있습니다:
60
+
61
+ ```html
62
+ <div class="bg-primary-500 text-mono-light rounded-md shadow-md">
63
+ EXEM 스타일 적용됨
64
+ </div>
65
+ ```
66
+
67
+ ## v3와의 차이점
68
+
69
+ | | @exem-ui/tailwindcss3 | @exem-ui/tailwindcss4 |
70
+ |---|---|---|
71
+ | 설정 방식 | JavaScript (`tailwind.config.ts`) | CSS (`@import`) |
72
+ | 설정 복잡도 | Preset/Plugin 등록 필요 | CSS import 한 줄 |
73
+ | 런타임 의존성 | `@exem-ui/core` 필요 | 없음 (순수 CSS) |
74
+ | Tailwind 버전 | v3.x | v4.x |
75
+
76
+ ## 관련 패키지
77
+
78
+ | 패키지 | 설명 |
79
+ |--------|------|
80
+ | [@exem-ui/core](https://www.npmjs.com/package/@exem-ui/core) | 디자인 토큰, CSS 변수 |
81
+ | [@exem-ui/react](https://www.npmjs.com/package/@exem-ui/react) | React UI 컴포넌트 |
82
+ | [@exem-ui/tailwindcss3](https://www.npmjs.com/package/@exem-ui/tailwindcss3) | Tailwind CSS v3 플러그인 |
83
+
84
+ ## 라이선스
85
+
86
+ Apache License 2.0 - Copyright 2026 Exem Co., Ltd.
87
+
88
+ 자세한 내용은 [LICENSE](https://github.com/CloudMOA/exem-ui/blob/main/LICENSE)를 참조하세요.
package/dist/theme.css ADDED
@@ -0,0 +1,434 @@
1
+ /**
2
+ * EXEM Design System - Tailwind CSS 4 Theme
3
+ * Auto-generated file. Do not edit directly.
4
+ *
5
+ * @exem-ui/core/css (global.css)를 함께 import해야 합니다.
6
+ *
7
+ * @example
8
+ * ```css
9
+ * @import "tailwindcss";
10
+ * @import "@exem-ui/core/css";
11
+ * @import "@exem-ui/tailwindcss4";
12
+ * ```
13
+ */
14
+
15
+ /* ──────────── Colors ──────────── */
16
+ /* @theme inline: global.css의 --color-* 변수와 네이밍 충돌 방지 */
17
+ /* TW4는 유틸리티 클래스에 var() 참조를 직접 삽입 */
18
+ @theme inline {
19
+ --color-mono-light: var(--color-mono-light);
20
+ --color-mono-dark: var(--color-mono-dark);
21
+ --color-gray-00: var(--color-gray-00);
22
+ --color-gray-01: var(--color-gray-01);
23
+ --color-gray-02: var(--color-gray-02);
24
+ --color-gray-03: var(--color-gray-03);
25
+ --color-gray-04: var(--color-gray-04);
26
+ --color-gray-05: var(--color-gray-05);
27
+ --color-gray-06: var(--color-gray-06);
28
+ --color-gray-07: var(--color-gray-07);
29
+ --color-gray-08: var(--color-gray-08);
30
+ --color-gray-09: var(--color-gray-09);
31
+ --color-gray-10: var(--color-gray-10);
32
+ --color-red-00: var(--color-red-00);
33
+ --color-red-01: var(--color-red-01);
34
+ --color-red-02: var(--color-red-02);
35
+ --color-red-03: var(--color-red-03);
36
+ --color-red-04: var(--color-red-04);
37
+ --color-red-05: var(--color-red-05);
38
+ --color-red-06: var(--color-red-06);
39
+ --color-red-07: var(--color-red-07);
40
+ --color-red-08: var(--color-red-08);
41
+ --color-red-09: var(--color-red-09);
42
+ --color-red-10: var(--color-red-10);
43
+ --color-orange-00: var(--color-orange-00);
44
+ --color-orange-01: var(--color-orange-01);
45
+ --color-orange-02: var(--color-orange-02);
46
+ --color-orange-03: var(--color-orange-03);
47
+ --color-orange-04: var(--color-orange-04);
48
+ --color-orange-05: var(--color-orange-05);
49
+ --color-orange-06: var(--color-orange-06);
50
+ --color-orange-07: var(--color-orange-07);
51
+ --color-orange-08: var(--color-orange-08);
52
+ --color-orange-09: var(--color-orange-09);
53
+ --color-orange-10: var(--color-orange-10);
54
+ --color-amber-00: var(--color-amber-00);
55
+ --color-amber-01: var(--color-amber-01);
56
+ --color-amber-02: var(--color-amber-02);
57
+ --color-amber-03: var(--color-amber-03);
58
+ --color-amber-04: var(--color-amber-04);
59
+ --color-amber-05: var(--color-amber-05);
60
+ --color-amber-06: var(--color-amber-06);
61
+ --color-amber-07: var(--color-amber-07);
62
+ --color-amber-08: var(--color-amber-08);
63
+ --color-amber-09: var(--color-amber-09);
64
+ --color-amber-10: var(--color-amber-10);
65
+ --color-yellow-00: var(--color-yellow-00);
66
+ --color-yellow-01: var(--color-yellow-01);
67
+ --color-yellow-02: var(--color-yellow-02);
68
+ --color-yellow-03: var(--color-yellow-03);
69
+ --color-yellow-04: var(--color-yellow-04);
70
+ --color-yellow-05: var(--color-yellow-05);
71
+ --color-yellow-06: var(--color-yellow-06);
72
+ --color-yellow-07: var(--color-yellow-07);
73
+ --color-yellow-08: var(--color-yellow-08);
74
+ --color-yellow-09: var(--color-yellow-09);
75
+ --color-yellow-10: var(--color-yellow-10);
76
+ --color-lime-00: var(--color-lime-00);
77
+ --color-lime-01: var(--color-lime-01);
78
+ --color-lime-02: var(--color-lime-02);
79
+ --color-lime-03: var(--color-lime-03);
80
+ --color-lime-04: var(--color-lime-04);
81
+ --color-lime-05: var(--color-lime-05);
82
+ --color-lime-06: var(--color-lime-06);
83
+ --color-lime-07: var(--color-lime-07);
84
+ --color-lime-08: var(--color-lime-08);
85
+ --color-lime-09: var(--color-lime-09);
86
+ --color-lime-10: var(--color-lime-10);
87
+ --color-green-00: var(--color-green-00);
88
+ --color-green-01: var(--color-green-01);
89
+ --color-green-02: var(--color-green-02);
90
+ --color-green-03: var(--color-green-03);
91
+ --color-green-04: var(--color-green-04);
92
+ --color-green-05: var(--color-green-05);
93
+ --color-green-06: var(--color-green-06);
94
+ --color-green-07: var(--color-green-07);
95
+ --color-green-08: var(--color-green-08);
96
+ --color-green-09: var(--color-green-09);
97
+ --color-green-10: var(--color-green-10);
98
+ --color-emerald-00: var(--color-emerald-00);
99
+ --color-emerald-01: var(--color-emerald-01);
100
+ --color-emerald-02: var(--color-emerald-02);
101
+ --color-emerald-03: var(--color-emerald-03);
102
+ --color-emerald-04: var(--color-emerald-04);
103
+ --color-emerald-05: var(--color-emerald-05);
104
+ --color-emerald-06: var(--color-emerald-06);
105
+ --color-emerald-07: var(--color-emerald-07);
106
+ --color-emerald-08: var(--color-emerald-08);
107
+ --color-emerald-09: var(--color-emerald-09);
108
+ --color-emerald-10: var(--color-emerald-10);
109
+ --color-teal-00: var(--color-teal-00);
110
+ --color-teal-01: var(--color-teal-01);
111
+ --color-teal-02: var(--color-teal-02);
112
+ --color-teal-03: var(--color-teal-03);
113
+ --color-teal-04: var(--color-teal-04);
114
+ --color-teal-05: var(--color-teal-05);
115
+ --color-teal-06: var(--color-teal-06);
116
+ --color-teal-07: var(--color-teal-07);
117
+ --color-teal-08: var(--color-teal-08);
118
+ --color-teal-09: var(--color-teal-09);
119
+ --color-teal-10: var(--color-teal-10);
120
+ --color-cyan-00: var(--color-cyan-00);
121
+ --color-cyan-01: var(--color-cyan-01);
122
+ --color-cyan-02: var(--color-cyan-02);
123
+ --color-cyan-03: var(--color-cyan-03);
124
+ --color-cyan-04: var(--color-cyan-04);
125
+ --color-cyan-05: var(--color-cyan-05);
126
+ --color-cyan-06: var(--color-cyan-06);
127
+ --color-cyan-07: var(--color-cyan-07);
128
+ --color-cyan-08: var(--color-cyan-08);
129
+ --color-cyan-09: var(--color-cyan-09);
130
+ --color-cyan-10: var(--color-cyan-10);
131
+ --color-sky-00: var(--color-sky-00);
132
+ --color-sky-01: var(--color-sky-01);
133
+ --color-sky-02: var(--color-sky-02);
134
+ --color-sky-03: var(--color-sky-03);
135
+ --color-sky-04: var(--color-sky-04);
136
+ --color-sky-05: var(--color-sky-05);
137
+ --color-sky-06: var(--color-sky-06);
138
+ --color-sky-07: var(--color-sky-07);
139
+ --color-sky-08: var(--color-sky-08);
140
+ --color-sky-09: var(--color-sky-09);
141
+ --color-sky-10: var(--color-sky-10);
142
+ --color-blue-00: var(--color-blue-00);
143
+ --color-blue-01: var(--color-blue-01);
144
+ --color-blue-02: var(--color-blue-02);
145
+ --color-blue-03: var(--color-blue-03);
146
+ --color-blue-04: var(--color-blue-04);
147
+ --color-blue-05: var(--color-blue-05);
148
+ --color-blue-06: var(--color-blue-06);
149
+ --color-blue-07: var(--color-blue-07);
150
+ --color-blue-08: var(--color-blue-08);
151
+ --color-blue-09: var(--color-blue-09);
152
+ --color-blue-10: var(--color-blue-10);
153
+ --color-indigo-00: var(--color-indigo-00);
154
+ --color-indigo-01: var(--color-indigo-01);
155
+ --color-indigo-02: var(--color-indigo-02);
156
+ --color-indigo-03: var(--color-indigo-03);
157
+ --color-indigo-04: var(--color-indigo-04);
158
+ --color-indigo-05: var(--color-indigo-05);
159
+ --color-indigo-06: var(--color-indigo-06);
160
+ --color-indigo-07: var(--color-indigo-07);
161
+ --color-indigo-08: var(--color-indigo-08);
162
+ --color-indigo-09: var(--color-indigo-09);
163
+ --color-indigo-10: var(--color-indigo-10);
164
+ --color-violet-00: var(--color-violet-00);
165
+ --color-violet-01: var(--color-violet-01);
166
+ --color-violet-02: var(--color-violet-02);
167
+ --color-violet-03: var(--color-violet-03);
168
+ --color-violet-04: var(--color-violet-04);
169
+ --color-violet-05: var(--color-violet-05);
170
+ --color-violet-06: var(--color-violet-06);
171
+ --color-violet-07: var(--color-violet-07);
172
+ --color-violet-08: var(--color-violet-08);
173
+ --color-violet-09: var(--color-violet-09);
174
+ --color-violet-10: var(--color-violet-10);
175
+ --color-purple-00: var(--color-purple-00);
176
+ --color-purple-01: var(--color-purple-01);
177
+ --color-purple-02: var(--color-purple-02);
178
+ --color-purple-03: var(--color-purple-03);
179
+ --color-purple-04: var(--color-purple-04);
180
+ --color-purple-05: var(--color-purple-05);
181
+ --color-purple-06: var(--color-purple-06);
182
+ --color-purple-07: var(--color-purple-07);
183
+ --color-purple-08: var(--color-purple-08);
184
+ --color-purple-09: var(--color-purple-09);
185
+ --color-purple-10: var(--color-purple-10);
186
+ --color-fuchsia-00: var(--color-fuchsia-00);
187
+ --color-fuchsia-01: var(--color-fuchsia-01);
188
+ --color-fuchsia-02: var(--color-fuchsia-02);
189
+ --color-fuchsia-03: var(--color-fuchsia-03);
190
+ --color-fuchsia-04: var(--color-fuchsia-04);
191
+ --color-fuchsia-05: var(--color-fuchsia-05);
192
+ --color-fuchsia-06: var(--color-fuchsia-06);
193
+ --color-fuchsia-07: var(--color-fuchsia-07);
194
+ --color-fuchsia-08: var(--color-fuchsia-08);
195
+ --color-fuchsia-09: var(--color-fuchsia-09);
196
+ --color-fuchsia-10: var(--color-fuchsia-10);
197
+ --color-pink-00: var(--color-pink-00);
198
+ --color-pink-01: var(--color-pink-01);
199
+ --color-pink-02: var(--color-pink-02);
200
+ --color-pink-03: var(--color-pink-03);
201
+ --color-pink-04: var(--color-pink-04);
202
+ --color-pink-05: var(--color-pink-05);
203
+ --color-pink-06: var(--color-pink-06);
204
+ --color-pink-07: var(--color-pink-07);
205
+ --color-pink-08: var(--color-pink-08);
206
+ --color-pink-09: var(--color-pink-09);
207
+ --color-pink-10: var(--color-pink-10);
208
+ --color-rose-00: var(--color-rose-00);
209
+ --color-rose-01: var(--color-rose-01);
210
+ --color-rose-02: var(--color-rose-02);
211
+ --color-rose-03: var(--color-rose-03);
212
+ --color-rose-04: var(--color-rose-04);
213
+ --color-rose-05: var(--color-rose-05);
214
+ --color-rose-06: var(--color-rose-06);
215
+ --color-rose-07: var(--color-rose-07);
216
+ --color-rose-08: var(--color-rose-08);
217
+ --color-rose-09: var(--color-rose-09);
218
+ --color-rose-10: var(--color-rose-10);
219
+ --color-text-primary: var(--color-text-primary);
220
+ --color-text-secondary: var(--color-text-secondary);
221
+ --color-text-tertiary: var(--color-text-tertiary);
222
+ --color-text-disabled: var(--color-text-disabled);
223
+ --color-text-inverse: var(--color-text-inverse);
224
+ --color-text-inverse-disabled: var(--color-text-inverse-disabled);
225
+ --color-text-static-light: var(--color-text-static-light);
226
+ --color-text-static-dark: var(--color-text-static-dark);
227
+ --color-text-inverse-subtle: var(--color-text-inverse-subtle);
228
+ --color-text-accent: var(--color-text-accent);
229
+ --color-text-accent-disabled: var(--color-text-accent-disabled);
230
+ --color-text-success: var(--color-text-success);
231
+ --color-text-success-disabled: var(--color-text-success-disabled);
232
+ --color-text-warning: var(--color-text-warning);
233
+ --color-text-warning-disabled: var(--color-text-warning-disabled);
234
+ --color-text-critical: var(--color-text-critical);
235
+ --color-text-critical-disabled: var(--color-text-critical-disabled);
236
+ --color-text-link: var(--color-text-link);
237
+ --color-border-primary: var(--color-border-primary);
238
+ --color-border-secondary: var(--color-border-secondary);
239
+ --color-border-hovered: var(--color-border-hovered);
240
+ --color-border-focused: var(--color-border-focused);
241
+ --color-border-disabled: var(--color-border-disabled);
242
+ --color-border-accent: var(--color-border-accent);
243
+ --color-border-accent-disabled: var(--color-border-accent-disabled);
244
+ --color-border-success: var(--color-border-success);
245
+ --color-border-success-disabled: var(--color-border-success-disabled);
246
+ --color-border-warning: var(--color-border-warning);
247
+ --color-border-warning-disabled: var(--color-border-warning-disabled);
248
+ --color-border-critical: var(--color-border-critical);
249
+ --color-border-critical-disabled: var(--color-border-critical-disabled);
250
+ --color-icon-primary: var(--color-icon-primary);
251
+ --color-icon-secondary: var(--color-icon-secondary);
252
+ --color-icon-tertiary: var(--color-icon-tertiary);
253
+ --color-icon-disabled: var(--color-icon-disabled);
254
+ --color-icon-inverse: var(--color-icon-inverse);
255
+ --color-icon-inverse-disabled: var(--color-icon-inverse-disabled);
256
+ --color-icon-static-light: var(--color-icon-static-light);
257
+ --color-icon-static-dark: var(--color-icon-static-dark);
258
+ --color-icon-accent: var(--color-icon-accent);
259
+ --color-icon-accent-disabled: var(--color-icon-accent-disabled);
260
+ --color-icon-success: var(--color-icon-success);
261
+ --color-icon-success-disabled: var(--color-icon-success-disabled);
262
+ --color-icon-warning: var(--color-icon-warning);
263
+ --color-icon-warning-disabled: var(--color-icon-warning-disabled);
264
+ --color-icon-critical: var(--color-icon-critical);
265
+ --color-icon-critical-disabled: var(--color-icon-critical-disabled);
266
+ --color-solid-primary-default: var(--color-solid-primary-default);
267
+ --color-solid-primary-hovered: var(--color-solid-primary-hovered);
268
+ --color-solid-primary-disabled: var(--color-solid-primary-disabled);
269
+ --color-solid-accent-default: var(--color-solid-accent-default);
270
+ --color-solid-accent-hovered: var(--color-solid-accent-hovered);
271
+ --color-solid-accent-disabled: var(--color-solid-accent-disabled);
272
+ --color-solid-success-default: var(--color-solid-success-default);
273
+ --color-solid-success-hovered: var(--color-solid-success-hovered);
274
+ --color-solid-success-disabled: var(--color-solid-success-disabled);
275
+ --color-solid-warning-default: var(--color-solid-warning-default);
276
+ --color-solid-warning-hovered: var(--color-solid-warning-hovered);
277
+ --color-solid-warning-disabled: var(--color-solid-warning-disabled);
278
+ --color-solid-critical-default: var(--color-solid-critical-default);
279
+ --color-solid-critical-hovered: var(--color-solid-critical-hovered);
280
+ --color-solid-critical-disabled: var(--color-solid-critical-disabled);
281
+ --color-elevation-elevation-0: var(--color-elevation-elevation-0);
282
+ --color-elevation-elevation-1: var(--color-elevation-elevation-1);
283
+ --color-elevation-elevation-2: var(--color-elevation-elevation-2);
284
+ --color-elevation-elevation-3: var(--color-elevation-elevation-3);
285
+ --color-elevation-elevation-4: var(--color-elevation-elevation-4);
286
+ --color-elevation-elevation-5: var(--color-elevation-elevation-5);
287
+ --color-elevation-elevation-6: var(--color-elevation-elevation-6);
288
+ --color-elevation-accent: var(--color-elevation-accent);
289
+ --color-elevation-success: var(--color-elevation-success);
290
+ --color-elevation-warning: var(--color-elevation-warning);
291
+ --color-elevation-critical: var(--color-elevation-critical);
292
+ --color-component-dim: var(--color-component-dim);
293
+ --color-component-scroll: var(--color-component-scroll);
294
+ --color-component-segmentedOption: var(--color-component-segmentedOption);
295
+ --color-component-tooltip: var(--color-component-tooltip);
296
+ --color-component-toast: var(--color-component-toast);
297
+ --color-component-tag: var(--color-component-tag);
298
+ --color-chart-axis-line: var(--color-chart-axis-line);
299
+ --color-chart-tick: var(--color-chart-tick);
300
+ --color-chart-label: var(--color-chart-label);
301
+ --color-tint-background-mono: var(--color-tint-background-mono);
302
+ --color-tint-background-sky: var(--color-tint-background-sky);
303
+ --color-tint-background-red: var(--color-tint-background-red);
304
+ --color-tint-background-orange: var(--color-tint-background-orange);
305
+ --color-tint-background-amber: var(--color-tint-background-amber);
306
+ --color-tint-background-yellow: var(--color-tint-background-yellow);
307
+ --color-tint-background-lime: var(--color-tint-background-lime);
308
+ --color-tint-background-green: var(--color-tint-background-green);
309
+ --color-tint-background-emerald: var(--color-tint-background-emerald);
310
+ --color-tint-background-teal: var(--color-tint-background-teal);
311
+ --color-tint-background-cyan: var(--color-tint-background-cyan);
312
+ --color-tint-background-blue: var(--color-tint-background-blue);
313
+ --color-tint-background-indigo: var(--color-tint-background-indigo);
314
+ --color-tint-background-violet: var(--color-tint-background-violet);
315
+ --color-tint-background-purple: var(--color-tint-background-purple);
316
+ --color-tint-background-fuchsia: var(--color-tint-background-fuchsia);
317
+ --color-tint-background-pink: var(--color-tint-background-pink);
318
+ --color-tint-background-rose: var(--color-tint-background-rose);
319
+ --color-tint-foreground-mono: var(--color-tint-foreground-mono);
320
+ --color-tint-foreground-sky: var(--color-tint-foreground-sky);
321
+ --color-tint-foreground-red: var(--color-tint-foreground-red);
322
+ --color-tint-foreground-orange: var(--color-tint-foreground-orange);
323
+ --color-tint-foreground-amber: var(--color-tint-foreground-amber);
324
+ --color-tint-foreground-yellow: var(--color-tint-foreground-yellow);
325
+ --color-tint-foreground-lime: var(--color-tint-foreground-lime);
326
+ --color-tint-foreground-green: var(--color-tint-foreground-green);
327
+ --color-tint-foreground-emerald: var(--color-tint-foreground-emerald);
328
+ --color-tint-foreground-teal: var(--color-tint-foreground-teal);
329
+ --color-tint-foreground-cyan: var(--color-tint-foreground-cyan);
330
+ --color-tint-foreground-blue: var(--color-tint-foreground-blue);
331
+ --color-tint-foreground-indigo: var(--color-tint-foreground-indigo);
332
+ --color-tint-foreground-violet: var(--color-tint-foreground-violet);
333
+ --color-tint-foreground-purple: var(--color-tint-foreground-purple);
334
+ --color-tint-foreground-fuchsia: var(--color-tint-foreground-fuchsia);
335
+ --color-tint-foreground-pink: var(--color-tint-foreground-pink);
336
+ --color-tint-foreground-rose: var(--color-tint-foreground-rose);
337
+ --color-background-primary: var(--color-background-primary);
338
+ --color-background-secondary: var(--color-background-secondary);
339
+ --color-background-overlay: var(--color-background-overlay);
340
+ }
341
+
342
+ /* ──────────── Border Radius ──────────── */
343
+ @theme inline {
344
+ --radius-weak: var(--radius-weak);
345
+ --radius-medium: var(--radius-medium);
346
+ --radius-strong: var(--radius-strong);
347
+ --radius-hard: var(--radius-hard);
348
+ }
349
+
350
+ /* ──────────── Box Shadow ──────────── */
351
+ @theme inline {
352
+ --shadow-weak: var(--shadow-weak);
353
+ --shadow-medium: var(--shadow-medium);
354
+ --shadow-strong: var(--shadow-strong);
355
+ --shadow-hard: var(--shadow-hard);
356
+ }
357
+
358
+ /* ──────────── Breakpoints ──────────── */
359
+ /* TW4 기본 브레이크포인트(sm:640px, md:768px 등)를 초기화하고 디자인 시스템 값으로 교체 */
360
+ @theme {
361
+ --breakpoint-*: initial;
362
+ --breakpoint-md: 1200px;
363
+ --breakpoint-lg: 1600px;
364
+ --breakpoint-xl: 1920px;
365
+ }
366
+
367
+ /* ──────────── Typography ──────────── */
368
+ /* font-size 전용 — line-height는 font-* 유틸리티에서 관리 */
369
+ @theme {
370
+ --text-header-1: 28px;
371
+ --text-header-2: 24px;
372
+ --text-title-1: 20px;
373
+ --text-title-2: 18px;
374
+ --text-body-1: 16px;
375
+ --text-body-2: 14px;
376
+ --text-body-3: 12px;
377
+ --text-caption: 11px;
378
+ --text-code: 14px;
379
+ }
380
+
381
+ @utility text-code {
382
+ font-size: var(--text-code);
383
+ font-family: 'JetBrains Mono', monospace;
384
+ }
385
+
386
+ /* ──────────── Font Style ──────────── */
387
+ /* font-* 유틸리티: fontWeight + lineHeight 복합 지정 */
388
+ @utility font-regular {
389
+ font-weight: 400;
390
+ line-height: 140%;
391
+ }
392
+ @utility font-medium {
393
+ font-weight: 500;
394
+ line-height: 140%;
395
+ }
396
+ @utility font-semibold {
397
+ font-weight: 600;
398
+ line-height: 140%;
399
+ }
400
+ @utility font-bold {
401
+ font-weight: 700;
402
+ line-height: 140%;
403
+ }
404
+ @utility font-readable {
405
+ font-weight: 400;
406
+ line-height: 160%;
407
+ }
408
+
409
+ /* ──────────── Gradient Utilities ──────────── */
410
+ /* bg-gradient-exem-logo-{direction} */
411
+ @utility bg-gradient-exem-logo-to-right {
412
+ background-image: linear-gradient(to right, #FF470E 0%, #3E81F6 50%, #FFE100 100%);
413
+ }
414
+ @utility bg-gradient-exem-logo-to-left {
415
+ background-image: linear-gradient(to left, #FF470E 0%, #3E81F6 50%, #FFE100 100%);
416
+ }
417
+ @utility bg-gradient-exem-logo-to-top {
418
+ background-image: linear-gradient(to top, #FF470E 0%, #3E81F6 50%, #FFE100 100%);
419
+ }
420
+ @utility bg-gradient-exem-logo-to-bottom {
421
+ background-image: linear-gradient(to bottom, #FF470E 0%, #3E81F6 50%, #FFE100 100%);
422
+ }
423
+ @utility bg-gradient-exem-logo-to-top-right {
424
+ background-image: linear-gradient(to top right, #FF470E 0%, #3E81F6 50%, #FFE100 100%);
425
+ }
426
+ @utility bg-gradient-exem-logo-to-top-left {
427
+ background-image: linear-gradient(to top left, #FF470E 0%, #3E81F6 50%, #FFE100 100%);
428
+ }
429
+ @utility bg-gradient-exem-logo-to-bottom-right {
430
+ background-image: linear-gradient(to bottom right, #FF470E 0%, #3E81F6 50%, #FFE100 100%);
431
+ }
432
+ @utility bg-gradient-exem-logo-to-bottom-left {
433
+ background-image: linear-gradient(to bottom left, #FF470E 0%, #3E81F6 50%, #FFE100 100%);
434
+ }
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@exem-ui/tailwindcss4",
3
+ "version": "0.1.0-next.bf3c711",
4
+ "description": "EXEM Design System - Tailwind CSS 4 Theme (CSS-first)",
5
+ "author": "EXEM Design Team",
6
+ "license": "Apache-2.0",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "default": "./dist/theme.css"
11
+ }
12
+ },
13
+ "sideEffects": [
14
+ "*.css"
15
+ ],
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/CloudMOA/exem-ui.git",
22
+ "directory": "packages/design-system/tailwind4"
23
+ },
24
+ "homepage": "https://github.com/CloudMOA/exem-ui",
25
+ "bugs": {
26
+ "url": "https://github.com/CloudMOA/exem-ui/issues"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "scripts": {
32
+ "build": "node scripts/generate-theme.js",
33
+ "dev": "node scripts/generate-theme.js",
34
+ "prepublishOnly": "node scripts/generate-theme.js"
35
+ },
36
+ "keywords": [
37
+ "tailwindcss",
38
+ "tailwindcss4",
39
+ "theme",
40
+ "design-system",
41
+ "exem",
42
+ "css"
43
+ ],
44
+ "dependencies": {},
45
+ "peerDependencies": {
46
+ "tailwindcss": "^4.0.0"
47
+ }
48
+ }