@nkanish/liquidglass-ui 0.0.0-stage → 0.2.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/LICENSE +21 -0
- package/README.md +138 -2
- package/THIRD_PARTY_NOTICES.md +41 -0
- package/dist/index.cjs +6199 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +722 -0
- package/dist/index.d.ts +722 -0
- package/dist/index.js +6100 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +425 -0
- package/package.json +104 -4
package/dist/styles.css
ADDED
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
/* ============================================
|
|
2
|
+
LiquidGlass UI - CSS Custom Properties & Base Styles
|
|
3
|
+
Copyright 2026 Nitin Kanish, Debugged Pro
|
|
4
|
+
MIT License
|
|
5
|
+
============================================ */
|
|
6
|
+
|
|
7
|
+
/* ===== CSS Custom Properties (Theming) ===== */
|
|
8
|
+
|
|
9
|
+
:where(:root, [data-theme="light"]) {
|
|
10
|
+
/* Colors */
|
|
11
|
+
--lg-foreground: rgb(0 0 0 / 0.88);
|
|
12
|
+
--lg-foreground-secondary: rgb(60 60 67 / 0.8);
|
|
13
|
+
--lg-muted: rgb(60 60 67 / 0.6);
|
|
14
|
+
--lg-background: rgb(255 255 255);
|
|
15
|
+
|
|
16
|
+
/* Glass surfaces */
|
|
17
|
+
--lg-glass: rgb(255 255 255 / 0.65);
|
|
18
|
+
--lg-glass-hover: rgb(255 255 255 / 0.75);
|
|
19
|
+
--lg-glass-active: rgb(236 236 240 / 0.85);
|
|
20
|
+
--lg-glass-elevated: rgb(255 255 255 / 0.8);
|
|
21
|
+
|
|
22
|
+
/* Borders & edges */
|
|
23
|
+
--lg-edge: rgb(0 0 0 / 0.08);
|
|
24
|
+
--lg-edge-strong: rgb(0 0 0 / 0.12);
|
|
25
|
+
--lg-ring: rgb(0 0 0 / 0.4);
|
|
26
|
+
|
|
27
|
+
/* Shadows */
|
|
28
|
+
--lg-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.05);
|
|
29
|
+
--lg-shadow: 0 1px 3px rgb(0 0 0 / 0.1), 0 1px 2px rgb(0 0 0 / 0.06);
|
|
30
|
+
--lg-shadow-md: 0 4px 6px rgb(0 0 0 / 0.1), 0 2px 4px rgb(0 0 0 / 0.06);
|
|
31
|
+
--lg-shadow-lg: 0 10px 15px rgb(0 0 0 / 0.1), 0 4px 6px rgb(0 0 0 / 0.05);
|
|
32
|
+
--lg-shadow-xl: 0 20px 25px rgb(0 0 0 / 0.1), 0 8px 10px rgb(0 0 0 / 0.04);
|
|
33
|
+
--lg-drop: rgb(0 0 0 / 0.06);
|
|
34
|
+
|
|
35
|
+
/* Lens effects */
|
|
36
|
+
--lg-lens: rgb(0 0 0 / 0.03);
|
|
37
|
+
--lg-lens-drop: rgb(0 0 0 / 0.11);
|
|
38
|
+
--lg-lens-shine: -1.5;
|
|
39
|
+
--lg-rim-shine: 0.3;
|
|
40
|
+
|
|
41
|
+
/* Selection & highlights */
|
|
42
|
+
--lg-selection: rgb(0 0 0 / 0.1);
|
|
43
|
+
--lg-highlight: rgb(60 60 67 / 0.09);
|
|
44
|
+
|
|
45
|
+
/* Surfaces */
|
|
46
|
+
--lg-surface: rgb(250 250 252 / 0.86);
|
|
47
|
+
--lg-surface-edge: rgb(0 0 0 / 0.08);
|
|
48
|
+
--lg-separator: rgb(60 60 67 / 0.15);
|
|
49
|
+
|
|
50
|
+
/* Controls */
|
|
51
|
+
--lg-track: rgb(59 59 66 / 0.3);
|
|
52
|
+
--lg-rail: rgb(0 0 0 / 0.1);
|
|
53
|
+
|
|
54
|
+
/* Segments */
|
|
55
|
+
--lg-segment-track: rgb(118 118 128 / 0.12);
|
|
56
|
+
--lg-segment-thumb: rgb(255 255 255);
|
|
57
|
+
--lg-segment-label: rgb(0 0 0);
|
|
58
|
+
--lg-segment-lens: rgb(0 0 0 / 0.03);
|
|
59
|
+
|
|
60
|
+
/* Accent colors */
|
|
61
|
+
--lg-accent: #007aff;
|
|
62
|
+
--lg-accent-hover: #0066d6;
|
|
63
|
+
--lg-accent-light: rgb(0 122 255 / 0.1);
|
|
64
|
+
--lg-success: #34c759;
|
|
65
|
+
--lg-warning: #ff9f0a;
|
|
66
|
+
--lg-destructive: #ff383c;
|
|
67
|
+
--lg-info: #5ac8fa;
|
|
68
|
+
|
|
69
|
+
/* Control states */
|
|
70
|
+
--lg-on: #34c759;
|
|
71
|
+
--lg-fill: #007aff;
|
|
72
|
+
|
|
73
|
+
/* Blur & filter values */
|
|
74
|
+
--lg-blur: 20px;
|
|
75
|
+
--lg-blur-sm: 8px;
|
|
76
|
+
--lg-blur-lg: 40px;
|
|
77
|
+
--lg-saturate: 1.8;
|
|
78
|
+
|
|
79
|
+
/* Animation */
|
|
80
|
+
--lg-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
|
|
81
|
+
--lg-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
82
|
+
--lg-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
83
|
+
--lg-duration-fast: 150ms;
|
|
84
|
+
--lg-duration: 200ms;
|
|
85
|
+
--lg-duration-slow: 300ms;
|
|
86
|
+
|
|
87
|
+
/* Spacing */
|
|
88
|
+
--lg-radius-sm: 8px;
|
|
89
|
+
--lg-radius: 12px;
|
|
90
|
+
--lg-radius-md: 16px;
|
|
91
|
+
--lg-radius-lg: 20px;
|
|
92
|
+
--lg-radius-xl: 28px;
|
|
93
|
+
--lg-radius-full: 9999px;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* ===== Dark Mode ===== */
|
|
97
|
+
|
|
98
|
+
:where([data-theme="dark"]) {
|
|
99
|
+
--lg-foreground: rgb(255 255 255);
|
|
100
|
+
--lg-foreground-secondary: rgb(235 235 245 / 0.8);
|
|
101
|
+
--lg-muted: rgb(235 235 245 / 0.6);
|
|
102
|
+
--lg-background: rgb(0 0 0);
|
|
103
|
+
|
|
104
|
+
--lg-glass: rgb(40 40 40 / 0.62);
|
|
105
|
+
--lg-glass-hover: rgb(50 50 50 / 0.7);
|
|
106
|
+
--lg-glass-active: rgb(70 70 70 / 0.62);
|
|
107
|
+
--lg-glass-elevated: rgb(50 50 50 / 0.75);
|
|
108
|
+
|
|
109
|
+
--lg-edge: rgb(255 255 255 / 0.08);
|
|
110
|
+
--lg-edge-strong: rgb(255 255 255 / 0.12);
|
|
111
|
+
--lg-ring: rgb(255 255 255 / 0.5);
|
|
112
|
+
|
|
113
|
+
--lg-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.3);
|
|
114
|
+
--lg-shadow: 0 1px 3px rgb(0 0 0 / 0.4);
|
|
115
|
+
--lg-shadow-md: 0 4px 6px rgb(0 0 0 / 0.4);
|
|
116
|
+
--lg-shadow-lg: 0 10px 15px rgb(0 0 0 / 0.4);
|
|
117
|
+
--lg-shadow-xl: 0 20px 25px rgb(0 0 0 / 0.5);
|
|
118
|
+
--lg-drop: transparent;
|
|
119
|
+
|
|
120
|
+
--lg-lens: rgb(255 255 255 / 0.055);
|
|
121
|
+
--lg-lens-drop: transparent;
|
|
122
|
+
--lg-lens-shine: 1;
|
|
123
|
+
--lg-rim-shine: 0.13;
|
|
124
|
+
|
|
125
|
+
--lg-selection: rgb(255 255 255 / 0.145);
|
|
126
|
+
--lg-highlight: rgb(235 235 245 / 0.13);
|
|
127
|
+
|
|
128
|
+
--lg-surface: rgb(28 28 31 / 0.86);
|
|
129
|
+
--lg-surface-edge: rgb(255 255 255 / 0.13);
|
|
130
|
+
--lg-separator: rgb(235 235 245 / 0.16);
|
|
131
|
+
|
|
132
|
+
--lg-track: rgb(235 235 245 / 0.3);
|
|
133
|
+
--lg-rail: rgb(255 255 255 / 0.1);
|
|
134
|
+
|
|
135
|
+
--lg-segment-track: transparent;
|
|
136
|
+
--lg-segment-thumb: rgb(235 235 245 / 0.3);
|
|
137
|
+
--lg-segment-label: rgb(255 255 255);
|
|
138
|
+
--lg-segment-lens: transparent;
|
|
139
|
+
|
|
140
|
+
--lg-accent: #0a84ff;
|
|
141
|
+
--lg-accent-hover: #409cff;
|
|
142
|
+
--lg-accent-light: rgb(10 132 255 / 0.15);
|
|
143
|
+
--lg-success: #30d158;
|
|
144
|
+
--lg-warning: #ffd60a;
|
|
145
|
+
--lg-destructive: #ff453a;
|
|
146
|
+
--lg-info: #64d2ff;
|
|
147
|
+
|
|
148
|
+
--lg-on: #30d158;
|
|
149
|
+
--lg-fill: #0a84ff;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/* ===== System preference fallback ===== */
|
|
153
|
+
|
|
154
|
+
@media (prefers-color-scheme: dark) {
|
|
155
|
+
:where(:root:not([data-theme="light"])) {
|
|
156
|
+
--lg-foreground: rgb(255 255 255);
|
|
157
|
+
--lg-foreground-secondary: rgb(235 235 245 / 0.8);
|
|
158
|
+
--lg-muted: rgb(235 235 245 / 0.6);
|
|
159
|
+
--lg-background: rgb(0 0 0);
|
|
160
|
+
|
|
161
|
+
--lg-glass: rgb(40 40 40 / 0.62);
|
|
162
|
+
--lg-glass-hover: rgb(50 50 50 / 0.7);
|
|
163
|
+
--lg-glass-active: rgb(70 70 70 / 0.62);
|
|
164
|
+
--lg-glass-elevated: rgb(50 50 50 / 0.75);
|
|
165
|
+
|
|
166
|
+
--lg-edge: rgb(255 255 255 / 0.08);
|
|
167
|
+
--lg-edge-strong: rgb(255 255 255 / 0.12);
|
|
168
|
+
--lg-ring: rgb(255 255 255 / 0.5);
|
|
169
|
+
|
|
170
|
+
--lg-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.3);
|
|
171
|
+
--lg-shadow: 0 1px 3px rgb(0 0 0 / 0.4);
|
|
172
|
+
--lg-shadow-md: 0 4px 6px rgb(0 0 0 / 0.4);
|
|
173
|
+
--lg-shadow-lg: 0 10px 15px rgb(0 0 0 / 0.4);
|
|
174
|
+
--lg-shadow-xl: 0 20px 25px rgb(0 0 0 / 0.5);
|
|
175
|
+
--lg-drop: transparent;
|
|
176
|
+
|
|
177
|
+
--lg-lens: rgb(255 255 255 / 0.055);
|
|
178
|
+
--lg-lens-drop: transparent;
|
|
179
|
+
--lg-lens-shine: 1;
|
|
180
|
+
--lg-rim-shine: 0.13;
|
|
181
|
+
|
|
182
|
+
--lg-selection: rgb(255 255 255 / 0.145);
|
|
183
|
+
--lg-highlight: rgb(235 235 245 / 0.13);
|
|
184
|
+
|
|
185
|
+
--lg-surface: rgb(28 28 31 / 0.86);
|
|
186
|
+
--lg-surface-edge: rgb(255 255 255 / 0.13);
|
|
187
|
+
--lg-separator: rgb(235 235 245 / 0.16);
|
|
188
|
+
|
|
189
|
+
--lg-track: rgb(235 235 245 / 0.3);
|
|
190
|
+
--lg-rail: rgb(255 255 255 / 0.1);
|
|
191
|
+
|
|
192
|
+
--lg-segment-track: transparent;
|
|
193
|
+
--lg-segment-thumb: rgb(235 235 245 / 0.3);
|
|
194
|
+
--lg-segment-label: rgb(255 255 255);
|
|
195
|
+
--lg-segment-lens: transparent;
|
|
196
|
+
|
|
197
|
+
--lg-accent: #0a84ff;
|
|
198
|
+
--lg-accent-hover: #409cff;
|
|
199
|
+
--lg-accent-light: rgb(10 132 255 / 0.15);
|
|
200
|
+
--lg-success: #30d158;
|
|
201
|
+
--lg-warning: #ffd60a;
|
|
202
|
+
--lg-destructive: #ff453a;
|
|
203
|
+
--lg-info: #64d2ff;
|
|
204
|
+
|
|
205
|
+
--lg-on: #30d158;
|
|
206
|
+
--lg-fill: #0a84ff;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/* ===== Reduced Motion ===== */
|
|
211
|
+
|
|
212
|
+
@media (prefers-reduced-motion: reduce) {
|
|
213
|
+
:root {
|
|
214
|
+
--lg-duration-fast: 0ms;
|
|
215
|
+
--lg-duration: 0ms;
|
|
216
|
+
--lg-duration-slow: 0ms;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/* ===== Reduced Transparency ===== */
|
|
221
|
+
|
|
222
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
223
|
+
:root {
|
|
224
|
+
--lg-glass: rgb(245 245 247);
|
|
225
|
+
--lg-glass-hover: rgb(240 240 242);
|
|
226
|
+
--lg-glass-active: rgb(230 230 235);
|
|
227
|
+
--lg-blur: 0px;
|
|
228
|
+
--lg-blur-sm: 0px;
|
|
229
|
+
--lg-blur-lg: 0px;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
[data-theme="dark"] {
|
|
233
|
+
--lg-glass: rgb(44 44 46);
|
|
234
|
+
--lg-glass-hover: rgb(54 54 56);
|
|
235
|
+
--lg-glass-active: rgb(64 64 66);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/* ===== Base Glass Styles ===== */
|
|
240
|
+
|
|
241
|
+
.lg-glass {
|
|
242
|
+
position: relative;
|
|
243
|
+
background-color: var(--lg-glass);
|
|
244
|
+
background-image: var(--lg-rim, none);
|
|
245
|
+
background-size: 100% 100%;
|
|
246
|
+
-webkit-backdrop-filter: blur(var(--lg-blur, 20px)) saturate(var(--lg-saturate, 1.8));
|
|
247
|
+
backdrop-filter: blur(var(--lg-blur, 20px)) saturate(var(--lg-saturate, 1.8));
|
|
248
|
+
box-shadow:
|
|
249
|
+
inset 0 0 0 0.5px var(--lg-edge),
|
|
250
|
+
0 1px 3px var(--lg-drop);
|
|
251
|
+
transition: background-color var(--lg-duration) var(--lg-ease);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.lg-glass[data-rim] {
|
|
255
|
+
box-shadow: 0 1px 3px var(--lg-drop);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/* Pointer-reactive highlight */
|
|
259
|
+
.lg-glass::after {
|
|
260
|
+
content: "";
|
|
261
|
+
position: absolute;
|
|
262
|
+
inset: 0;
|
|
263
|
+
border-radius: inherit;
|
|
264
|
+
pointer-events: none;
|
|
265
|
+
background: radial-gradient(
|
|
266
|
+
circle 240px at var(--lg-pointer-x, 50%) var(--lg-pointer-y, 50%),
|
|
267
|
+
rgb(255 255 255 / 0.06),
|
|
268
|
+
rgb(255 255 255 / 0.03) 50%,
|
|
269
|
+
transparent
|
|
270
|
+
);
|
|
271
|
+
opacity: 0;
|
|
272
|
+
transition: opacity var(--lg-duration) var(--lg-ease);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.lg-glass:hover::after,
|
|
276
|
+
.lg-glass[data-hover]::after {
|
|
277
|
+
opacity: 1;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.lg-glass[data-pressed]::after {
|
|
281
|
+
opacity: 1;
|
|
282
|
+
transition-duration: 0ms;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/* Glass variants */
|
|
286
|
+
.lg-glass-elevated {
|
|
287
|
+
background-color: var(--lg-glass-elevated);
|
|
288
|
+
box-shadow:
|
|
289
|
+
inset 0 0 0 0.5px var(--lg-edge),
|
|
290
|
+
var(--lg-shadow-lg);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.lg-glass-subtle {
|
|
294
|
+
--lg-blur: var(--lg-blur-sm);
|
|
295
|
+
background-color: rgb(255 255 255 / 0.4);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
[data-theme="dark"] .lg-glass-subtle {
|
|
299
|
+
background-color: rgb(40 40 40 / 0.4);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/* ===== Backdrop Container ===== */
|
|
303
|
+
|
|
304
|
+
[data-lg-backdrop] {
|
|
305
|
+
position: relative;
|
|
306
|
+
isolation: isolate;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/* ===== Focus Styles ===== */
|
|
310
|
+
|
|
311
|
+
.lg-focus-ring:focus-visible {
|
|
312
|
+
outline: 2px solid var(--lg-ring);
|
|
313
|
+
outline-offset: 2px;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.lg-focus-ring-inset:focus-visible {
|
|
317
|
+
outline: 2px solid var(--lg-ring);
|
|
318
|
+
outline-offset: -2px;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/* ===== Interactive Base ===== */
|
|
322
|
+
|
|
323
|
+
.lg-interactive {
|
|
324
|
+
cursor: pointer;
|
|
325
|
+
touch-action: manipulation;
|
|
326
|
+
-webkit-tap-highlight-color: transparent;
|
|
327
|
+
-webkit-touch-callout: none;
|
|
328
|
+
user-select: none;
|
|
329
|
+
-webkit-user-select: none;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/* ===== Typography ===== */
|
|
333
|
+
|
|
334
|
+
.lg-text {
|
|
335
|
+
color: var(--lg-foreground);
|
|
336
|
+
font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'SF Pro Display', system-ui, sans-serif;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.lg-text-secondary {
|
|
340
|
+
color: var(--lg-foreground-secondary);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.lg-text-muted {
|
|
344
|
+
color: var(--lg-muted);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/* ===== Animations ===== */
|
|
348
|
+
|
|
349
|
+
@keyframes lg-fade-in {
|
|
350
|
+
from { opacity: 0; }
|
|
351
|
+
to { opacity: 1; }
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
@keyframes lg-fade-out {
|
|
355
|
+
from { opacity: 1; }
|
|
356
|
+
to { opacity: 0; }
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
@keyframes lg-scale-in {
|
|
360
|
+
from {
|
|
361
|
+
opacity: 0;
|
|
362
|
+
transform: scale(0.95);
|
|
363
|
+
}
|
|
364
|
+
to {
|
|
365
|
+
opacity: 1;
|
|
366
|
+
transform: scale(1);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
@keyframes lg-scale-out {
|
|
371
|
+
from {
|
|
372
|
+
opacity: 1;
|
|
373
|
+
transform: scale(1);
|
|
374
|
+
}
|
|
375
|
+
to {
|
|
376
|
+
opacity: 0;
|
|
377
|
+
transform: scale(0.95);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
@keyframes lg-slide-up {
|
|
382
|
+
from {
|
|
383
|
+
opacity: 0;
|
|
384
|
+
transform: translateY(10px);
|
|
385
|
+
}
|
|
386
|
+
to {
|
|
387
|
+
opacity: 1;
|
|
388
|
+
transform: translateY(0);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
@keyframes lg-slide-down {
|
|
393
|
+
from {
|
|
394
|
+
opacity: 0;
|
|
395
|
+
transform: translateY(-10px);
|
|
396
|
+
}
|
|
397
|
+
to {
|
|
398
|
+
opacity: 1;
|
|
399
|
+
transform: translateY(0);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
@keyframes lg-spin {
|
|
404
|
+
from { transform: rotate(0deg); }
|
|
405
|
+
to { transform: rotate(360deg); }
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
@keyframes lg-pulse {
|
|
409
|
+
0%, 100% { opacity: 1; }
|
|
410
|
+
50% { opacity: 0.5; }
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
/* ===== Utility Classes ===== */
|
|
414
|
+
|
|
415
|
+
.lg-sr-only {
|
|
416
|
+
position: absolute;
|
|
417
|
+
width: 1px;
|
|
418
|
+
height: 1px;
|
|
419
|
+
padding: 0;
|
|
420
|
+
margin: -1px;
|
|
421
|
+
overflow: hidden;
|
|
422
|
+
clip: rect(0, 0, 0, 0);
|
|
423
|
+
white-space: nowrap;
|
|
424
|
+
border: 0;
|
|
425
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,106 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nkanish/liquidglass-ui",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Advanced Apple Liquid Glass (iOS 26 / macOS Tahoe) UI component library for React with SVG refraction effects, backdrop blur, and beautiful animations",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"react",
|
|
7
|
+
"liquid glass",
|
|
8
|
+
"glass",
|
|
9
|
+
"glassmorphism",
|
|
10
|
+
"glisse",
|
|
11
|
+
"ui",
|
|
12
|
+
"components",
|
|
13
|
+
"ios",
|
|
14
|
+
"macos",
|
|
15
|
+
"tahoe",
|
|
16
|
+
"backdrop-filter",
|
|
17
|
+
"svg-filter",
|
|
18
|
+
"refraction",
|
|
19
|
+
"apple",
|
|
20
|
+
"design-system",
|
|
21
|
+
"accessibility",
|
|
22
|
+
"typescript",
|
|
23
|
+
"tailwind"
|
|
24
|
+
],
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"author": "Nitin Kanish, Debugged Pro",
|
|
27
|
+
"homepage": "https://liquidglass-ui-docs.vercel.app/",
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "git+https://github.com/nitinkanish/liquidglass-ui.git"
|
|
31
|
+
},
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/nitinkanish/liquidglass-ui/issues"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=18.0.0"
|
|
37
|
+
},
|
|
38
|
+
"type": "module",
|
|
39
|
+
"sideEffects": [
|
|
40
|
+
"**/*.css",
|
|
41
|
+
"./dist/styles.css"
|
|
42
|
+
],
|
|
43
|
+
"main": "./dist/index.cjs",
|
|
44
|
+
"module": "./dist/index.js",
|
|
45
|
+
"types": "./dist/index.d.ts",
|
|
46
|
+
"exports": {
|
|
47
|
+
".": {
|
|
48
|
+
"import": {
|
|
49
|
+
"types": "./dist/index.d.ts",
|
|
50
|
+
"default": "./dist/index.js"
|
|
51
|
+
},
|
|
52
|
+
"require": {
|
|
53
|
+
"types": "./dist/index.d.cts",
|
|
54
|
+
"default": "./dist/index.cjs"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"./styles.css": {
|
|
58
|
+
"style": "./dist/styles.css",
|
|
59
|
+
"default": "./dist/styles.css"
|
|
60
|
+
},
|
|
61
|
+
"./package.json": "./package.json"
|
|
62
|
+
},
|
|
63
|
+
"files": [
|
|
64
|
+
"dist",
|
|
65
|
+
"README.md",
|
|
66
|
+
"LICENSE",
|
|
67
|
+
"THIRD_PARTY_NOTICES.md"
|
|
68
|
+
],
|
|
69
|
+
"scripts": {
|
|
70
|
+
"dev": "tsup --watch",
|
|
71
|
+
"build": "tsup",
|
|
72
|
+
"typecheck": "tsc --noEmit",
|
|
73
|
+
"lint": "eslint src --ext .ts,.tsx",
|
|
74
|
+
"test": "vitest run",
|
|
75
|
+
"test:watch": "vitest",
|
|
76
|
+
"clean": "rm -rf dist",
|
|
77
|
+
"prepublishOnly": "pnpm build && pnpm test"
|
|
78
|
+
},
|
|
79
|
+
"peerDependencies": {
|
|
80
|
+
"react": ">=18.0.0",
|
|
81
|
+
"react-dom": ">=18.0.0"
|
|
82
|
+
},
|
|
83
|
+
"devDependencies": {
|
|
84
|
+
"@testing-library/dom": "^10.4.0",
|
|
85
|
+
"@testing-library/jest-dom": "^7.0.1",
|
|
86
|
+
"@testing-library/react": "^16.0.1",
|
|
87
|
+
"@testing-library/user-event": "^14.6.10",
|
|
88
|
+
"@types/react": "^18.3.12",
|
|
89
|
+
"@types/react-dom": "^18.3.1",
|
|
90
|
+
"@typescript-eslint/eslint-plugin": "^8.14.0",
|
|
91
|
+
"@typescript-eslint/parser": "^8.14.0",
|
|
92
|
+
"@vitejs/plugin-react": "^4.3.3",
|
|
93
|
+
"eslint": "^8.57.1",
|
|
94
|
+
"eslint-plugin-react": "^7.37.2",
|
|
95
|
+
"eslint-plugin-react-hooks": "^5.0.0",
|
|
96
|
+
"jsdom": "^25.0.1",
|
|
97
|
+
"react": "^18.3.1",
|
|
98
|
+
"react-dom": "^18.3.1",
|
|
99
|
+
"tsup": "^8.3.5",
|
|
100
|
+
"typescript": "^5.6.3",
|
|
101
|
+
"vitest": "^2.1.4"
|
|
102
|
+
},
|
|
103
|
+
"publishConfig": {
|
|
104
|
+
"access": "public"
|
|
105
|
+
}
|
|
106
|
+
}
|