@charstudios/pallet 0.2.0 → 0.3.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.
@@ -1,26 +1,27 @@
1
1
  /*
2
2
  * Toon variant skin.
3
3
  *
4
- * Soft, elevated, pill-shaped. Controls become rounded pills, surfaces float on
5
- * gentle tinted shadows, borders soften, and focus rings glow — applied across
6
- * the full shadcn data-slot surface set.
4
+ * Cel-shaded / neo-brutalist: moderate radius, no soft shadows, and a thick
5
+ * bottom "lip" whose color is auto-derived from each surface's fill
6
+ * (`--toon-fill`) via color-mix slightly darker than the background.
7
7
  */
8
8
 
9
9
  @layer pallet-variants {
10
10
  [data-pallet-variant="toon"] {
11
- --pallet-control-radius: 9999px;
12
- --pallet-surface-radius: var(--radius-2xl);
13
- --pallet-overlay-radius: var(--radius-xl);
14
- --pallet-chip-radius: 9999px;
15
- --pallet-surface-shadow: var(--shadow-md);
16
- --pallet-overlay-shadow: var(--shadow-lg);
17
- --pallet-control-shadow: var(--shadow-sm);
11
+ --toon-radius: var(--radius-lg);
12
+ --toon-radius-sm: var(--radius-md);
13
+ --toon-outline: 1.5px;
14
+ --toon-lip: 3.5px;
15
+ /* Default fill used when a slot does not override --toon-fill */
16
+ --toon-fill: var(--card);
18
17
  }
19
18
 
20
- /* ── Controls ─────────────────────────────────────────────────────────── */
19
+ /* Shared toon chunk: outline + thick auto-darkened bottom border, no shadow.
20
+ Lip/edge colors read --toon-fill on the element itself so overrides work. */
21
21
  [data-pallet-variant="toon"] :is(
22
22
  [data-slot="button"],
23
23
  [data-slot="input"],
24
+ [data-slot="textarea"],
24
25
  [data-slot="select-trigger"],
25
26
  [data-slot="native-select"],
26
27
  [data-slot="native-select-wrapper"],
@@ -31,6 +32,7 @@
31
32
  [data-slot="input-otp"],
32
33
  [data-slot="input-otp-slot"],
33
34
  [data-slot="input-group"],
35
+ [data-slot="input-group-control"],
34
36
  [data-slot="sidebar-input"],
35
37
  [data-slot="toggle"],
36
38
  [data-slot="toggle-group"],
@@ -47,46 +49,98 @@
47
49
  [data-slot="sidebar-menu-action"],
48
50
  [data-slot="badge"],
49
51
  [data-slot="kbd"],
50
- [data-slot="avatar-badge"]
52
+ [data-slot="card"],
53
+ [data-slot="alert"],
54
+ [data-slot="accordion-item"],
55
+ [data-slot="tabs-list"],
56
+ [data-slot="tabs-trigger"],
57
+ [data-slot="table-container"],
58
+ [data-slot="item"],
59
+ [data-slot="item-group"],
60
+ [data-slot="empty"],
61
+ [data-slot="field-set"],
62
+ [data-slot="sidebar"],
63
+ [data-slot="sidebar-container"],
64
+ [data-slot="sidebar-inner"],
65
+ [data-slot="sidebar-group"],
66
+ [data-slot="carousel"],
67
+ [data-slot="chart"],
68
+ [data-slot="menubar"],
69
+ [data-slot="navigation-menu-viewport"],
70
+ [data-slot="breadcrumb"],
71
+ [data-slot="pagination"],
72
+ [data-slot="scroll-area"],
73
+ [data-slot="calendar"],
74
+ [data-slot="popover-content"],
75
+ [data-slot="dropdown-menu-content"],
76
+ [data-slot="dropdown-menu-sub-content"],
77
+ [data-slot="context-menu-content"],
78
+ [data-slot="context-menu-sub-content"],
79
+ [data-slot="menubar-content"],
80
+ [data-slot="menubar-sub-content"],
81
+ [data-slot="select-content"],
82
+ [data-slot="combobox-content"],
83
+ [data-slot="combobox-list"],
84
+ [data-slot="command"],
85
+ [data-slot="command-list"],
86
+ [data-slot="hover-card-content"],
87
+ [data-slot="tooltip-content"],
88
+ [data-slot="navigation-menu-content"],
89
+ [data-slot="dialog-content"],
90
+ [data-slot="alert-dialog-content"],
91
+ [data-slot="sheet-content"],
92
+ [data-slot="drawer-content"]
51
93
  ) {
52
- border-radius: var(--pallet-control-radius);
94
+ border-style: solid;
95
+ border-width: var(--toon-outline);
96
+ border-bottom-width: var(--toon-lip);
97
+ border-color: color-mix(in oklch, var(--toon-fill) 42%, var(--foreground));
98
+ border-bottom-color: color-mix(in oklch, var(--toon-fill) 68%, black);
99
+ border-radius: var(--toon-radius);
100
+ box-shadow: none !important;
101
+ filter: none;
102
+ text-shadow: none;
53
103
  }
54
104
 
105
+ /* ── Fill tokens (lip color is derived from these) ─────────────────────── */
55
106
  [data-pallet-variant="toon"] :is(
56
- [data-slot="textarea"],
107
+ [data-slot="card"],
108
+ [data-slot="alert"],
109
+ [data-slot="item"],
110
+ [data-slot="item-group"],
111
+ [data-slot="empty"],
112
+ [data-slot="accordion-item"],
113
+ [data-slot="table-container"],
114
+ [data-slot="field-set"],
57
115
  [data-slot="calendar"],
58
- [data-slot="input-group"],
59
- [data-slot="input-otp"]
116
+ [data-slot="chart"],
117
+ [data-slot="carousel"]
60
118
  ) {
61
- border-radius: var(--radius-lg);
119
+ --toon-fill: var(--card);
62
120
  }
63
121
 
64
122
  [data-pallet-variant="toon"] :is(
65
- [data-slot="button"],
66
- [data-slot="pagination-link"],
67
- [data-slot="carousel-previous"],
68
- [data-slot="carousel-next"],
69
- [data-slot="sidebar-menu-button"],
70
- [data-slot="toggle"],
71
- [data-slot="toggle-group-item"]
123
+ [data-slot="popover-content"],
124
+ [data-slot="dropdown-menu-content"],
125
+ [data-slot="dropdown-menu-sub-content"],
126
+ [data-slot="context-menu-content"],
127
+ [data-slot="context-menu-sub-content"],
128
+ [data-slot="menubar-content"],
129
+ [data-slot="menubar-sub-content"],
130
+ [data-slot="select-content"],
131
+ [data-slot="combobox-content"],
132
+ [data-slot="combobox-list"],
133
+ [data-slot="command"],
134
+ [data-slot="command-list"],
135
+ [data-slot="hover-card-content"],
136
+ [data-slot="tooltip-content"],
137
+ [data-slot="navigation-menu-content"],
138
+ [data-slot="dialog-content"],
139
+ [data-slot="alert-dialog-content"],
140
+ [data-slot="sheet-content"],
141
+ [data-slot="drawer-content"]
72
142
  ) {
73
- box-shadow: var(--pallet-control-shadow);
74
- transition:
75
- box-shadow var(--motion-duration) var(--motion-ease),
76
- transform var(--motion-duration) var(--motion-ease),
77
- background-color var(--motion-duration) var(--motion-ease);
78
- }
79
-
80
- [data-pallet-variant="toon"] :is(
81
- [data-slot="button"],
82
- [data-slot="pagination-link"],
83
- [data-slot="carousel-previous"],
84
- [data-slot="carousel-next"],
85
- [data-slot="sidebar-menu-button"],
86
- [data-slot="toggle"],
87
- [data-slot="toggle-group-item"]
88
- ):hover {
89
- box-shadow: var(--shadow-md);
143
+ --toon-fill: var(--popover);
90
144
  }
91
145
 
92
146
  [data-pallet-variant="toon"] :is(
@@ -94,152 +148,169 @@
94
148
  [data-slot="textarea"],
95
149
  [data-slot="select-trigger"],
96
150
  [data-slot="native-select"],
151
+ [data-slot="native-select-wrapper"],
97
152
  [data-slot="combobox-trigger"],
98
153
  [data-slot="combobox-chip-input"],
99
154
  [data-slot="command-input"],
155
+ [data-slot="input-otp"],
100
156
  [data-slot="input-otp-slot"],
101
157
  [data-slot="input-group"],
158
+ [data-slot="input-group-control"],
102
159
  [data-slot="sidebar-input"]
103
160
  ) {
104
- background-color: var(--input);
105
- border-color: transparent;
161
+ --toon-fill: var(--background);
162
+ background-color: var(--background);
106
163
  }
107
164
 
108
165
  [data-pallet-variant="toon"] :is(
109
- [data-slot="input"],
110
- [data-slot="textarea"],
111
- [data-slot="select-trigger"],
112
- [data-slot="native-select"],
113
- [data-slot="combobox-trigger"],
114
- [data-slot="command-input"],
115
- [data-slot="input-otp-slot"],
116
- [data-slot="sidebar-input"]
117
- ):focus-visible {
118
- border-color: var(--ring);
119
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--ring) 30%, transparent);
120
- outline: none;
166
+ [data-slot="button"],
167
+ [data-slot="input-group-button"],
168
+ [data-slot="carousel-previous"],
169
+ [data-slot="carousel-next"],
170
+ [data-slot="pagination-link"]
171
+ ) {
172
+ /* Default / primary-looking controls — lip darkens the primary fill */
173
+ --toon-fill: var(--primary);
121
174
  }
122
175
 
123
- [data-pallet-variant="toon"] :is(
124
- [data-slot="checkbox"],
125
- [data-slot="radio-group-item"],
126
- [data-slot="switch"],
127
- [data-slot="switch-thumb"],
128
- [data-slot="slider-track"],
129
- [data-slot="slider-range"],
130
- [data-slot="slider-thumb"],
131
- [data-slot="progress"],
132
- [data-slot="progress-indicator"],
133
- [data-slot="avatar"],
134
- [data-slot="avatar-fallback"],
135
- [data-slot="avatar-group"],
136
- [data-slot="skeleton"]
176
+ /* Non-primary button variants: lip tracks the light surface fill instead */
177
+ [data-pallet-variant="toon"] [data-slot="button"]:is(
178
+ [data-variant="outline"],
179
+ [data-variant="secondary"],
180
+ [data-variant="ghost"],
181
+ [class*="bg-secondary"],
182
+ [class*="bg-background"]
137
183
  ) {
138
- border-radius: 9999px;
184
+ --toon-fill: var(--background);
139
185
  }
140
186
 
141
- [data-pallet-variant="toon"] [data-slot="checkbox"] {
142
- border-radius: var(--radius-sm);
187
+ [data-pallet-variant="toon"] [data-slot="button"]:is(
188
+ [data-variant="destructive"],
189
+ [class*="bg-destructive"]
190
+ ) {
191
+ --toon-fill: var(--destructive);
143
192
  }
144
193
 
145
- /* ── Surfaces ─────────────────────────────────────────────────────────── */
146
194
  [data-pallet-variant="toon"] :is(
147
- [data-slot="card"],
148
- [data-slot="alert"],
149
- [data-slot="accordion-item"],
195
+ [data-slot="toggle"],
196
+ [data-slot="toggle-group-item"],
197
+ [data-slot="badge"],
198
+ [data-slot="kbd"],
150
199
  [data-slot="tabs-list"],
151
- [data-slot="table-container"],
152
- [data-slot="item"],
153
- [data-slot="item-group"],
154
- [data-slot="empty"],
155
- [data-slot="field-set"],
200
+ [data-slot="tabs-trigger"],
201
+ [data-slot="combobox-chip"]
202
+ ) {
203
+ --toon-fill: var(--secondary);
204
+ }
205
+
206
+ [data-pallet-variant="toon"] :is(
156
207
  [data-slot="sidebar"],
157
208
  [data-slot="sidebar-container"],
158
209
  [data-slot="sidebar-inner"],
159
210
  [data-slot="sidebar-group"],
160
- [data-slot="carousel"],
161
- [data-slot="chart"],
162
- [data-slot="scroll-area"],
163
211
  [data-slot="menubar"],
164
212
  [data-slot="navigation-menu-viewport"]
165
213
  ) {
166
- border-radius: var(--pallet-surface-radius);
167
- box-shadow: var(--pallet-surface-shadow);
168
- border-color: var(--pallet-surface-border);
214
+ --toon-fill: var(--sidebar);
169
215
  }
170
216
 
171
217
  [data-pallet-variant="toon"] :is(
172
- [data-slot="card"],
173
- [data-slot="alert"],
174
- [data-slot="item"],
175
- [data-slot="empty"],
176
- [data-slot="accordion-item"]
218
+ [data-slot="sidebar-menu-button"],
219
+ [data-slot="sidebar-menu-sub-button"],
220
+ [data-slot="sidebar-trigger"],
221
+ [data-slot="sidebar-group-action"],
222
+ [data-slot="sidebar-menu-action"]
177
223
  ) {
178
- --tw-ring-color: var(--pallet-surface-border);
224
+ --toon-fill: var(--sidebar);
179
225
  }
180
226
 
181
- [data-pallet-variant="toon"] [data-slot="tabs-list"] {
182
- background-color: color-mix(in oklch, var(--muted) 80%, transparent);
183
- padding: 0.25rem;
227
+ /* Active / on states: lip tracks the primary fill */
228
+ [data-pallet-variant="toon"] :is(
229
+ [data-slot="sidebar-menu-button"],
230
+ [data-slot="tabs-trigger"],
231
+ [data-slot="toggle"],
232
+ [data-slot="toggle-group-item"],
233
+ [data-slot="pagination-link"]
234
+ ):is([data-active="true"], [data-state="on"], [data-state="active"]) {
235
+ --toon-fill: var(--primary);
184
236
  }
185
237
 
186
- [data-pallet-variant="toon"] [data-slot="tabs-trigger"] {
187
- border-radius: 9999px;
238
+ /* ── Sizing tweaks ─────────────────────────────────────────────────────── */
239
+ [data-pallet-variant="toon"] :is(
240
+ [data-slot="badge"],
241
+ [data-slot="kbd"],
242
+ [data-slot="avatar-badge"],
243
+ [data-slot="checkbox"],
244
+ [data-slot="input-otp-slot"]
245
+ ) {
246
+ border-radius: var(--toon-radius-sm);
247
+ --toon-lip: 2.5px;
188
248
  }
189
249
 
190
- [data-pallet-variant="toon"] [data-slot="accordion-trigger"],
191
- [data-pallet-variant="toon"] [data-slot="accordion-content"] {
192
- border-radius: var(--radius-lg);
250
+ [data-pallet-variant="toon"] :is(
251
+ [data-slot="checkbox"],
252
+ [data-slot="radio-group-item"],
253
+ [data-slot="switch"],
254
+ [data-slot="slider-track"],
255
+ [data-slot="progress"],
256
+ [data-slot="avatar"],
257
+ [data-slot="avatar-fallback"]
258
+ ) {
259
+ --toon-fill: var(--background);
260
+ border-style: solid;
261
+ border-width: var(--toon-outline);
262
+ border-bottom-width: var(--toon-lip);
263
+ border-color: color-mix(in oklch, var(--toon-fill) 42%, var(--foreground));
264
+ border-bottom-color: color-mix(in oklch, var(--toon-fill) 68%, black);
265
+ border-radius: var(--toon-radius-sm);
266
+ box-shadow: none !important;
193
267
  }
194
268
 
195
- [data-pallet-variant="toon"] [data-slot="table"] {
196
- border-collapse: separate;
197
- border-spacing: 0;
269
+ [data-pallet-variant="toon"] [data-slot="switch"],
270
+ [data-pallet-variant="toon"] [data-slot="slider-track"],
271
+ [data-pallet-variant="toon"] [data-slot="progress"] {
272
+ border-radius: 9999px;
273
+ --toon-fill: var(--input);
198
274
  }
199
275
 
200
- [data-pallet-variant="toon"] [data-slot="table-head"],
201
- [data-pallet-variant="toon"] [data-slot="table-cell"] {
202
- border-color: var(--pallet-surface-border);
276
+ [data-pallet-variant="toon"] [data-slot="switch"][data-state="checked"] {
277
+ --toon-fill: var(--primary);
278
+ border-color: color-mix(in oklch, var(--toon-fill) 42%, var(--foreground));
279
+ border-bottom-color: color-mix(in oklch, var(--toon-fill) 68%, black);
203
280
  }
204
281
 
205
- [data-pallet-variant="toon"] [data-slot="table-row"]:hover {
206
- background-color: color-mix(in oklch, var(--accent) 55%, transparent);
282
+ [data-pallet-variant="toon"] [data-slot="textarea"] {
283
+ border-radius: var(--radius-xl);
207
284
  }
208
285
 
286
+ /* Press: sink the lip slightly for a tactile toon feel */
209
287
  [data-pallet-variant="toon"] :is(
210
- [data-slot="breadcrumb-link"],
211
- [data-slot="breadcrumb-page"],
212
- [data-slot="breadcrumb-ellipsis"],
213
- [data-slot="pagination-ellipsis"]
214
- ) {
215
- border-radius: 9999px;
288
+ [data-slot="button"],
289
+ [data-slot="toggle"],
290
+ [data-slot="toggle-group-item"],
291
+ [data-slot="pagination-link"],
292
+ [data-slot="sidebar-menu-button"],
293
+ [data-slot="carousel-previous"],
294
+ [data-slot="carousel-next"]
295
+ ):active {
296
+ transform: translateY(1px);
297
+ border-bottom-width: 2px;
216
298
  }
217
299
 
218
- /* ── Overlays / menus / portals ───────────────────────────────────────── */
219
300
  [data-pallet-variant="toon"] :is(
220
- [data-slot="popover-content"],
221
- [data-slot="dropdown-menu-content"],
222
- [data-slot="dropdown-menu-sub-content"],
223
- [data-slot="context-menu-content"],
224
- [data-slot="context-menu-sub-content"],
225
- [data-slot="menubar-content"],
226
- [data-slot="menubar-sub-content"],
227
- [data-slot="select-content"],
228
- [data-slot="combobox-content"],
229
- [data-slot="combobox-list"],
230
- [data-slot="command"],
231
- [data-slot="command-list"],
232
- [data-slot="hover-card-content"],
233
- [data-slot="tooltip-content"],
234
- [data-slot="navigation-menu-content"],
235
- [data-slot="dialog-content"],
236
- [data-slot="alert-dialog-content"],
237
- [data-slot="sheet-content"],
238
- [data-slot="drawer-content"]
301
+ [data-slot="dropdown-menu-item"],
302
+ [data-slot="dropdown-menu-checkbox-item"],
303
+ [data-slot="dropdown-menu-radio-item"],
304
+ [data-slot="dropdown-menu-sub-trigger"],
305
+ [data-slot="context-menu-item"],
306
+ [data-slot="menubar-item"],
307
+ [data-slot="select-item"],
308
+ [data-slot="combobox-item"],
309
+ [data-slot="command-item"],
310
+ [data-slot="navigation-menu-link"]
239
311
  ) {
240
- border-radius: var(--pallet-overlay-radius);
241
- box-shadow: var(--pallet-overlay-shadow);
242
- border-color: var(--pallet-surface-border);
312
+ border-radius: var(--toon-radius-sm);
313
+ box-shadow: none !important;
243
314
  }
244
315
 
245
316
  [data-pallet-variant="toon"] :is(
@@ -248,30 +319,21 @@
248
319
  [data-slot="sheet-overlay"],
249
320
  [data-slot="drawer-overlay"]
250
321
  ) {
251
- background-color: color-mix(in oklch, var(--foreground) 35%, transparent);
252
- backdrop-filter: blur(2px);
322
+ background-color: color-mix(in oklch, var(--foreground) 45%, transparent);
323
+ backdrop-filter: none;
324
+ }
325
+
326
+ [data-pallet-variant="toon"] [data-slot="table-row"]:hover {
327
+ background-color: color-mix(in oklch, var(--muted) 80%, transparent);
253
328
  }
254
329
 
255
330
  [data-pallet-variant="toon"] :is(
256
- [data-slot="dropdown-menu-item"],
257
- [data-slot="dropdown-menu-checkbox-item"],
258
- [data-slot="dropdown-menu-radio-item"],
259
- [data-slot="dropdown-menu-sub-trigger"],
260
- [data-slot="context-menu-item"],
261
- [data-slot="context-menu-checkbox-item"],
262
- [data-slot="context-menu-radio-item"],
263
- [data-slot="context-menu-sub-trigger"],
264
- [data-slot="menubar-item"],
265
- [data-slot="menubar-checkbox-item"],
266
- [data-slot="menubar-radio-item"],
267
- [data-slot="menubar-sub-trigger"],
268
- [data-slot="menubar-trigger"],
269
- [data-slot="select-item"],
270
- [data-slot="combobox-item"],
271
- [data-slot="command-item"],
272
- [data-slot="navigation-menu-link"],
273
- [data-slot="navigation-menu-trigger"]
331
+ [data-slot="separator"],
332
+ [data-slot="sidebar-separator"],
333
+ [data-slot="dropdown-menu-separator"],
334
+ [data-slot="command-separator"],
335
+ [data-slot="select-separator"]
274
336
  ) {
275
- border-radius: 9999px;
337
+ background-color: color-mix(in oklch, var(--foreground) 18%, transparent);
276
338
  }
277
339
  }
package/package.json CHANGED
@@ -1,79 +1,79 @@
1
- {
2
- "name": "@charstudios/pallet",
3
- "version": "0.2.0",
4
- "description": "Runtime, hook-driven theming layer for shadcn/ui apps. Full control over colors, fonts, roundness, elevation, spacing and motion, with swappable visual variants.",
5
- "type": "module",
6
- "license": "MIT",
7
- "author": "Char Studios",
8
- "repository": {
9
- "type": "git",
10
- "url": "git+https://github.com/Char-Studios/Pallet.git"
11
- },
12
- "bugs": {
13
- "url": "https://github.com/Char-Studios/Pallet/issues"
14
- },
15
- "homepage": "https://github.com/Char-Studios/Pallet#readme",
16
- "keywords": [
17
- "shadcn",
18
- "theme",
19
- "theming",
20
- "design-system",
21
- "tailwind",
22
- "react",
23
- "nextjs",
24
- "css-variables",
25
- "tokens"
26
- ],
27
- "sideEffects": [
28
- "**/*.css"
29
- ],
30
- "files": [
31
- "dist"
32
- ],
33
- "exports": {
34
- ".": {
35
- "types": "./dist/index.d.ts",
36
- "import": "./dist/index.js"
37
- },
38
- "./server": {
39
- "types": "./dist/server.d.ts",
40
- "import": "./dist/server.js"
41
- },
42
- "./presets": {
43
- "types": "./dist/presets/index.d.ts",
44
- "import": "./dist/presets/index.js"
45
- },
46
- "./styles": "./dist/styles/index.css",
47
- "./styles/flat": "./dist/styles/variant-flat.css",
48
- "./styles/toon": "./dist/styles/variant-toon.css",
49
- "./styles/frosted": "./dist/styles/variant-frosted.css",
50
- "./styles/base": "./dist/styles/base.css"
51
- },
52
- "main": "./dist/index.js",
53
- "module": "./dist/index.js",
54
- "types": "./dist/index.d.ts",
55
- "scripts": {
56
- "build": "tsup",
57
- "dev": "tsup --watch",
58
- "typecheck": "tsc --noEmit",
59
- "prepublishOnly": "npm run build"
60
- },
61
- "peerDependencies": {
62
- "react": ">=18",
63
- "react-dom": ">=18"
64
- },
65
- "devDependencies": {
66
- "@types/react": "^19",
67
- "@types/react-dom": "^19",
68
- "react": "^19",
69
- "react-dom": "^19",
70
- "tsup": "^8.5.0",
71
- "typescript": "^5.6.0"
72
- },
73
- "publishConfig": {
74
- "access": "public"
75
- },
76
- "engines": {
77
- "node": ">=18"
78
- }
79
- }
1
+ {
2
+ "name": "@charstudios/pallet",
3
+ "version": "0.3.0",
4
+ "description": "Runtime, hook-driven theming layer for shadcn/ui apps. Full control over colors, fonts, roundness, elevation, spacing and motion, with swappable visual variants.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "author": "Char Studios",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/Char-Studios/Pallet.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/Char-Studios/Pallet/issues"
14
+ },
15
+ "homepage": "https://github.com/Char-Studios/Pallet#readme",
16
+ "keywords": [
17
+ "shadcn",
18
+ "theme",
19
+ "theming",
20
+ "design-system",
21
+ "tailwind",
22
+ "react",
23
+ "nextjs",
24
+ "css-variables",
25
+ "tokens"
26
+ ],
27
+ "sideEffects": [
28
+ "**/*.css"
29
+ ],
30
+ "files": [
31
+ "dist"
32
+ ],
33
+ "exports": {
34
+ ".": {
35
+ "types": "./dist/index.d.ts",
36
+ "import": "./dist/index.js"
37
+ },
38
+ "./server": {
39
+ "types": "./dist/server.d.ts",
40
+ "import": "./dist/server.js"
41
+ },
42
+ "./presets": {
43
+ "types": "./dist/presets/index.d.ts",
44
+ "import": "./dist/presets/index.js"
45
+ },
46
+ "./styles": "./dist/styles/index.css",
47
+ "./styles/flat": "./dist/styles/variant-flat.css",
48
+ "./styles/toon": "./dist/styles/variant-toon.css",
49
+ "./styles/frosted": "./dist/styles/variant-frosted.css",
50
+ "./styles/base": "./dist/styles/base.css"
51
+ },
52
+ "main": "./dist/index.js",
53
+ "module": "./dist/index.js",
54
+ "types": "./dist/index.d.ts",
55
+ "scripts": {
56
+ "build": "tsup",
57
+ "dev": "tsup --watch",
58
+ "typecheck": "tsc --noEmit",
59
+ "prepublishOnly": "npm run build"
60
+ },
61
+ "peerDependencies": {
62
+ "react": ">=18",
63
+ "react-dom": ">=18"
64
+ },
65
+ "devDependencies": {
66
+ "@types/react": "^19",
67
+ "@types/react-dom": "^19",
68
+ "react": "^19",
69
+ "react-dom": "^19",
70
+ "tsup": "^8.5.0",
71
+ "typescript": "^5.6.0"
72
+ },
73
+ "publishConfig": {
74
+ "access": "public"
75
+ },
76
+ "engines": {
77
+ "node": ">=18"
78
+ }
79
+ }