@papernote/ui 1.13.0 → 2.0.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/dist/components/FilterBar.d.ts +1 -1
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterPills.d.ts +14 -0
- package/dist/components/FilterPills.d.ts.map +1 -0
- package/dist/components/LetterNav.d.ts +8 -0
- package/dist/components/LetterNav.d.ts.map +1 -0
- package/dist/components/Pagination.d.ts +11 -1
- package/dist/components/Pagination.d.ts.map +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/index.d.ts +36 -4
- package/dist/index.esm.js +346 -280
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +346 -278
- package/dist/index.js.map +1 -1
- package/dist/styles.css +6228 -6713
- package/package.json +6 -4
- package/src/components/AdminModal.tsx +1 -1
- package/src/components/Autocomplete.tsx +1 -1
- package/src/components/CommandPalette.tsx +2 -2
- package/src/components/DataTable.tsx +1 -1
- package/src/components/Drawer.tsx +1 -1
- package/src/components/FilterBar.tsx +116 -3
- package/src/components/FilterPills.tsx +58 -0
- package/src/components/LetterNav.tsx +67 -0
- package/src/components/MarkdownEditor.tsx +1 -1
- package/src/components/MaskedInput.tsx +1 -1
- package/src/components/Modal.tsx +1 -1
- package/src/components/NotificationBar.tsx +2 -2
- package/src/components/Pagination.tsx +49 -1
- package/src/components/PasswordInput.tsx +1 -1
- package/src/components/SearchBar.tsx +1 -1
- package/src/components/Textarea.tsx +1 -1
- package/src/components/index.ts +6 -0
- package/src/styles/index.css +50 -160
- package/src/styles/theme.css +302 -0
package/src/styles/index.css
CHANGED
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
/* Component styles */
|
|
4
4
|
@import '../components/Spreadsheet.css';
|
|
5
5
|
|
|
6
|
-
@
|
|
7
|
-
@
|
|
8
|
-
|
|
6
|
+
@import "tailwindcss";
|
|
7
|
+
@import "./theme.css";
|
|
8
|
+
|
|
9
|
+
/* Content sources for class detection */
|
|
10
|
+
@source "../components/**/*.{tsx,ts}";
|
|
11
|
+
@source inline("bg-sky-100 bg-sky-50 bg-sky-100/50 bg-amber-100 bg-amber-50 bg-amber-100/50 bg-emerald-100 bg-emerald-50 bg-emerald-100/50 bg-pink-100 bg-pink-50 bg-pink-100/50");
|
|
9
12
|
|
|
10
13
|
@layer base {
|
|
11
14
|
body {
|
|
@@ -47,7 +50,7 @@
|
|
|
47
50
|
|
|
48
51
|
/* Input Styles - Comfortable & Clear */
|
|
49
52
|
.input {
|
|
50
|
-
@apply block w-full px-4 py-2.5 border border-paper-300 rounded-lg text-sm text-ink-800 placeholder-ink-400 bg-white transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-accent-400 focus:border-accent-400 hover:border-paper-400;
|
|
53
|
+
@apply block w-full px-4 py-2.5 border border-paper-300 rounded-lg text-sm text-ink-800 placeholder:text-ink-400 bg-white transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-accent-400 focus:border-accent-400 hover:border-paper-400;
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
.label {
|
|
@@ -84,27 +87,6 @@
|
|
|
84
87
|
@apply bg-primary-50 text-primary-700 border border-primary-200;
|
|
85
88
|
}
|
|
86
89
|
|
|
87
|
-
/* Table Styles - Clean & Minimal */
|
|
88
|
-
.table {
|
|
89
|
-
@apply min-w-full divide-y divide-paper-200;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.table-header {
|
|
93
|
-
@apply bg-paper-50;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.table-header-cell {
|
|
97
|
-
@apply px-6 py-3 text-left text-xs font-medium text-ink-500 uppercase tracking-wider;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.table-cell {
|
|
101
|
-
@apply px-6 py-4 whitespace-nowrap text-sm text-ink-700;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.table-row {
|
|
105
|
-
@apply hover:bg-paper-50 transition-colors duration-150;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
90
|
/* Navigation Styles - Notebook-like */
|
|
109
91
|
.nav-link {
|
|
110
92
|
@apply flex items-center px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200;
|
|
@@ -140,7 +122,7 @@
|
|
|
140
122
|
}
|
|
141
123
|
|
|
142
124
|
input:checked + .slider:before {
|
|
143
|
-
@apply
|
|
125
|
+
@apply translate-x-5;
|
|
144
126
|
}
|
|
145
127
|
|
|
146
128
|
/* Stat Card Styles - Paper-like */
|
|
@@ -316,56 +298,33 @@
|
|
|
316
298
|
}
|
|
317
299
|
}
|
|
318
300
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
-webkit-line-clamp: 1;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
.line-clamp-2 {
|
|
328
|
-
overflow: hidden;
|
|
329
|
-
display: -webkit-box;
|
|
330
|
-
-webkit-box-orient: vertical;
|
|
331
|
-
-webkit-line-clamp: 2;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
.line-clamp-3 {
|
|
335
|
-
overflow: hidden;
|
|
336
|
-
display: -webkit-box;
|
|
337
|
-
-webkit-box-orient: vertical;
|
|
338
|
-
-webkit-line-clamp: 3;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
.scrollbar-hide {
|
|
342
|
-
-ms-overflow-style: none;
|
|
343
|
-
scrollbar-width: none;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
.scrollbar-hide::-webkit-scrollbar {
|
|
301
|
+
/* Custom utilities */
|
|
302
|
+
@utility scrollbar-hide {
|
|
303
|
+
-ms-overflow-style: none;
|
|
304
|
+
scrollbar-width: none;
|
|
305
|
+
&::-webkit-scrollbar {
|
|
347
306
|
display: none;
|
|
348
307
|
}
|
|
308
|
+
}
|
|
349
309
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
310
|
+
@utility text-shadow {
|
|
311
|
+
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
312
|
+
}
|
|
353
313
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
314
|
+
@utility bg-gradient-primary {
|
|
315
|
+
background: linear-gradient(135deg, #64748b, #475569);
|
|
316
|
+
}
|
|
357
317
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
318
|
+
@utility bg-gradient-success {
|
|
319
|
+
background: linear-gradient(135deg, #10b981, #059669);
|
|
320
|
+
}
|
|
361
321
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
322
|
+
@utility bg-gradient-warning {
|
|
323
|
+
background: linear-gradient(135deg, #f59e0b, #d97706);
|
|
324
|
+
}
|
|
365
325
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
}
|
|
326
|
+
@utility bg-gradient-accent {
|
|
327
|
+
background: linear-gradient(135deg, #f59e0b, #d97706);
|
|
369
328
|
}
|
|
370
329
|
|
|
371
330
|
/* Custom scrollbar - Subtle paper aesthetic */
|
|
@@ -388,21 +347,7 @@
|
|
|
388
347
|
background: #a8a29e;
|
|
389
348
|
}
|
|
390
349
|
|
|
391
|
-
/*
|
|
392
|
-
@keyframes pulse {
|
|
393
|
-
0%, 100% {
|
|
394
|
-
opacity: 1;
|
|
395
|
-
}
|
|
396
|
-
50% {
|
|
397
|
-
opacity: .5;
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
.animate-pulse {
|
|
402
|
-
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
/* Table styles - Clean & minimal */
|
|
350
|
+
/* Table styles - Clean & minimal (un-layered for higher specificity) */
|
|
406
351
|
.table {
|
|
407
352
|
@apply min-w-full divide-y divide-paper-200;
|
|
408
353
|
}
|
|
@@ -429,35 +374,33 @@
|
|
|
429
374
|
}
|
|
430
375
|
|
|
431
376
|
.table-stable {
|
|
432
|
-
|
|
433
|
-
/* Removed min-height to allow content-based sizing for two-row layout */
|
|
377
|
+
table-layout: fixed !important;
|
|
434
378
|
}
|
|
435
379
|
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
380
|
+
.table-stable thead {
|
|
381
|
+
height: auto !important;
|
|
382
|
+
}
|
|
439
383
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
}
|
|
384
|
+
.table-stable thead th {
|
|
385
|
+
position: sticky;
|
|
386
|
+
top: 0;
|
|
387
|
+
z-index: 10;
|
|
388
|
+
background-color: #fafaf9;
|
|
389
|
+
backdrop-filter: blur(8px);
|
|
390
|
+
height: 28px !important;
|
|
391
|
+
min-height: 28px !important;
|
|
392
|
+
max-height: 28px !important;
|
|
393
|
+
line-height: 1 !important;
|
|
394
|
+
vertical-align: middle !important;
|
|
395
|
+
overflow: hidden !important;
|
|
396
|
+
box-sizing: border-box !important;
|
|
397
|
+
font-size: 0.75rem !important;
|
|
398
|
+
border-bottom: 1px solid #e7e5e4;
|
|
399
|
+
}
|
|
457
400
|
|
|
458
401
|
/* Primary rows with normal content */
|
|
459
402
|
.table-stable tbody tr {
|
|
460
|
-
height: auto;
|
|
403
|
+
height: auto;
|
|
461
404
|
}
|
|
462
405
|
|
|
463
406
|
/* Secondary rows should be compact */
|
|
@@ -534,59 +477,6 @@
|
|
|
534
477
|
overflow: hidden;
|
|
535
478
|
}
|
|
536
479
|
|
|
537
|
-
/* Drawer Slide Animations */
|
|
538
|
-
@keyframes slideInLeft {
|
|
539
|
-
from {
|
|
540
|
-
transform: translateX(-100%);
|
|
541
|
-
}
|
|
542
|
-
to {
|
|
543
|
-
transform: translateX(0);
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
@keyframes slideInRight {
|
|
548
|
-
from {
|
|
549
|
-
transform: translateX(100%);
|
|
550
|
-
}
|
|
551
|
-
to {
|
|
552
|
-
transform: translateX(0);
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
|
|
556
|
-
@keyframes slideInTop {
|
|
557
|
-
from {
|
|
558
|
-
transform: translateY(-100%);
|
|
559
|
-
}
|
|
560
|
-
to {
|
|
561
|
-
transform: translateY(0);
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
@keyframes slideInBottom {
|
|
566
|
-
from {
|
|
567
|
-
transform: translateY(100%);
|
|
568
|
-
}
|
|
569
|
-
to {
|
|
570
|
-
transform: translateY(0);
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
.animate-slide-in-left {
|
|
575
|
-
animation: slideInLeft 0.3s ease-out;
|
|
576
|
-
}
|
|
577
|
-
|
|
578
|
-
.animate-slide-in-right {
|
|
579
|
-
animation: slideInRight 0.3s ease-out;
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
.animate-slide-in-top {
|
|
583
|
-
animation: slideInTop 0.3s ease-out;
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
.animate-slide-in-bottom {
|
|
587
|
-
animation: slideInBottom 0.3s ease-out;
|
|
588
|
-
}
|
|
589
|
-
|
|
590
480
|
/* Touch-friendly sizing for coarse pointer devices (touch screens) */
|
|
591
481
|
@media (pointer: coarse) {
|
|
592
482
|
/* Ensure buttons meet 48px minimum touch target on touch devices */
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @papernote/ui Design Tokens — Tailwind CSS v4 Theme
|
|
3
|
+
*
|
|
4
|
+
* This file is the CSS-first equivalent of tailwind.config.js.
|
|
5
|
+
* Consumers on Tailwind v4 import this via: @import "@papernote/ui/theme";
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
@theme {
|
|
9
|
+
/* === Colors: Primary (Warm Slate — ink on paper feel) === */
|
|
10
|
+
--color-primary-50: #f8fafc;
|
|
11
|
+
--color-primary-100: #f1f5f9;
|
|
12
|
+
--color-primary-200: #e2e8f0;
|
|
13
|
+
--color-primary-300: #cbd5e1;
|
|
14
|
+
--color-primary-400: #94a3b8;
|
|
15
|
+
--color-primary-500: #64748b;
|
|
16
|
+
--color-primary-600: #475569;
|
|
17
|
+
--color-primary-700: #334155;
|
|
18
|
+
--color-primary-800: #1e293b;
|
|
19
|
+
--color-primary-900: #0f172a;
|
|
20
|
+
--color-primary-950: #020617;
|
|
21
|
+
|
|
22
|
+
/* === Colors: Accent (Subtle warm tone, Claude-like) === */
|
|
23
|
+
--color-accent-50: #fafaf8;
|
|
24
|
+
--color-accent-100: #f5f5f0;
|
|
25
|
+
--color-accent-200: #e8e7e0;
|
|
26
|
+
--color-accent-300: #d4d2c8;
|
|
27
|
+
--color-accent-400: #a8a599;
|
|
28
|
+
--color-accent-500: #8b8878;
|
|
29
|
+
--color-accent-600: #6e6d5e;
|
|
30
|
+
--color-accent-700: #565548;
|
|
31
|
+
--color-accent-800: #3f3e35;
|
|
32
|
+
--color-accent-900: #2a2922;
|
|
33
|
+
|
|
34
|
+
/* === Colors: Success (Muted emerald green) === */
|
|
35
|
+
--color-success-50: #f0fdf4;
|
|
36
|
+
--color-success-100: #dcfce7;
|
|
37
|
+
--color-success-200: #bbf7d0;
|
|
38
|
+
--color-success-300: #86efac;
|
|
39
|
+
--color-success-400: #4ade80;
|
|
40
|
+
--color-success-500: #10b981;
|
|
41
|
+
--color-success-600: #059669;
|
|
42
|
+
--color-success-700: #047857;
|
|
43
|
+
--color-success-800: #065f46;
|
|
44
|
+
--color-success-900: #064e3b;
|
|
45
|
+
|
|
46
|
+
/* === Colors: Warning (Soft amber) === */
|
|
47
|
+
--color-warning-50: #fffbeb;
|
|
48
|
+
--color-warning-100: #fef3c7;
|
|
49
|
+
--color-warning-200: #fde68a;
|
|
50
|
+
--color-warning-300: #fcd34d;
|
|
51
|
+
--color-warning-400: #fbbf24;
|
|
52
|
+
--color-warning-500: #f59e0b;
|
|
53
|
+
--color-warning-600: #d97706;
|
|
54
|
+
--color-warning-700: #b45309;
|
|
55
|
+
--color-warning-800: #92400e;
|
|
56
|
+
--color-warning-900: #78350f;
|
|
57
|
+
|
|
58
|
+
/* === Colors: Error (Muted red) === */
|
|
59
|
+
--color-error-50: #fef2f2;
|
|
60
|
+
--color-error-100: #fee2e2;
|
|
61
|
+
--color-error-200: #fecaca;
|
|
62
|
+
--color-error-300: #fca5a5;
|
|
63
|
+
--color-error-400: #f87171;
|
|
64
|
+
--color-error-500: #ef4444;
|
|
65
|
+
--color-error-600: #dc2626;
|
|
66
|
+
--color-error-700: #b91c1c;
|
|
67
|
+
--color-error-800: #991b1b;
|
|
68
|
+
--color-error-900: #7f1d1d;
|
|
69
|
+
|
|
70
|
+
/* === Colors: Paper (Warm off-white backgrounds) === */
|
|
71
|
+
--color-paper-50: #fafaf9;
|
|
72
|
+
--color-paper-100: #f5f5f4;
|
|
73
|
+
--color-paper-200: #e7e5e4;
|
|
74
|
+
--color-paper-300: #d6d3d1;
|
|
75
|
+
--color-paper-400: #a8a29e;
|
|
76
|
+
|
|
77
|
+
/* === Colors: Ink (Text colors — warm grays) === */
|
|
78
|
+
--color-ink-50: #fafaf9;
|
|
79
|
+
--color-ink-100: #f5f5f4;
|
|
80
|
+
--color-ink-200: #e7e5e4;
|
|
81
|
+
--color-ink-300: #d6d3d1;
|
|
82
|
+
--color-ink-400: #a8a29e;
|
|
83
|
+
--color-ink-500: #78716c;
|
|
84
|
+
--color-ink-600: #57534e;
|
|
85
|
+
--color-ink-700: #44403c;
|
|
86
|
+
--color-ink-800: #292524;
|
|
87
|
+
--color-ink-900: #1c1917;
|
|
88
|
+
|
|
89
|
+
/* === Colors: Neutral (Backwards compatibility) === */
|
|
90
|
+
--color-neutral-25: #fcfcfd;
|
|
91
|
+
--color-neutral-50: #f8fafc;
|
|
92
|
+
--color-neutral-100: #f1f5f9;
|
|
93
|
+
--color-neutral-200: #e2e8f0;
|
|
94
|
+
--color-neutral-300: #cbd5e1;
|
|
95
|
+
--color-neutral-400: #94a3b8;
|
|
96
|
+
--color-neutral-500: #64748b;
|
|
97
|
+
--color-neutral-600: #475569;
|
|
98
|
+
--color-neutral-700: #334155;
|
|
99
|
+
--color-neutral-800: #1e293b;
|
|
100
|
+
--color-neutral-900: #0f172a;
|
|
101
|
+
--color-neutral-950: #020617;
|
|
102
|
+
|
|
103
|
+
/* === Font Families === */
|
|
104
|
+
--font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Inter, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
|
|
105
|
+
--font-mono: 'JetBrains Mono Variable', 'JetBrains Mono', 'Fira Code', Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
|
|
106
|
+
|
|
107
|
+
/* === Font Sizes (with line-heights) === */
|
|
108
|
+
--text-2xs: 0.625rem;
|
|
109
|
+
--text-2xs--line-height: 0.875rem;
|
|
110
|
+
--text-xs: 0.75rem;
|
|
111
|
+
--text-xs--line-height: 1.125rem;
|
|
112
|
+
--text-sm: 0.875rem;
|
|
113
|
+
--text-sm--line-height: 1.375rem;
|
|
114
|
+
--text-base: 1rem;
|
|
115
|
+
--text-base--line-height: 1.625rem;
|
|
116
|
+
--text-lg: 1.125rem;
|
|
117
|
+
--text-lg--line-height: 1.875rem;
|
|
118
|
+
--text-xl: 1.25rem;
|
|
119
|
+
--text-xl--line-height: 2rem;
|
|
120
|
+
--text-2xl: 1.5rem;
|
|
121
|
+
--text-2xl--line-height: 2.25rem;
|
|
122
|
+
--text-3xl: 1.875rem;
|
|
123
|
+
--text-3xl--line-height: 2.5rem;
|
|
124
|
+
--text-4xl: 2.25rem;
|
|
125
|
+
--text-4xl--line-height: 2.75rem;
|
|
126
|
+
--text-5xl: 3rem;
|
|
127
|
+
--text-5xl--line-height: 3.25rem;
|
|
128
|
+
--text-6xl: 3.75rem;
|
|
129
|
+
--text-6xl--line-height: 1;
|
|
130
|
+
--text-7xl: 4.5rem;
|
|
131
|
+
--text-7xl--line-height: 1;
|
|
132
|
+
--text-8xl: 6rem;
|
|
133
|
+
--text-8xl--line-height: 1;
|
|
134
|
+
--text-9xl: 8rem;
|
|
135
|
+
--text-9xl--line-height: 1;
|
|
136
|
+
|
|
137
|
+
/* === Spacing === */
|
|
138
|
+
--spacing-4_5: 1.125rem;
|
|
139
|
+
--spacing-5_5: 1.375rem;
|
|
140
|
+
--spacing-6_5: 1.625rem;
|
|
141
|
+
--spacing-7_5: 1.875rem;
|
|
142
|
+
--spacing-8_5: 2.125rem;
|
|
143
|
+
--spacing-9_5: 2.375rem;
|
|
144
|
+
--spacing-17: 4.25rem;
|
|
145
|
+
--spacing-18: 4.5rem;
|
|
146
|
+
--spacing-19: 4.75rem;
|
|
147
|
+
--spacing-21: 5.25rem;
|
|
148
|
+
--spacing-22: 5.5rem;
|
|
149
|
+
--spacing-23: 5.75rem;
|
|
150
|
+
--spacing-25: 6.25rem;
|
|
151
|
+
--spacing-26: 6.5rem;
|
|
152
|
+
--spacing-27: 6.75rem;
|
|
153
|
+
--spacing-29: 7.25rem;
|
|
154
|
+
--spacing-30: 7.5rem;
|
|
155
|
+
--spacing-31: 7.75rem;
|
|
156
|
+
--spacing-33: 8.25rem;
|
|
157
|
+
--spacing-34: 8.5rem;
|
|
158
|
+
--spacing-35: 8.75rem;
|
|
159
|
+
--spacing-touch-sm: 2.25rem;
|
|
160
|
+
--spacing-touch: 2.75rem;
|
|
161
|
+
--spacing-touch-lg: 3rem;
|
|
162
|
+
|
|
163
|
+
/* === Border Radius === */
|
|
164
|
+
--radius-4xl: 2rem;
|
|
165
|
+
--radius-5xl: 2.5rem;
|
|
166
|
+
|
|
167
|
+
/* === Box Shadow === */
|
|
168
|
+
--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.03);
|
|
169
|
+
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
170
|
+
--shadow-md: 0 2px 4px 0 rgb(0 0 0 / 0.06);
|
|
171
|
+
--shadow-lg: 0 4px 6px -1px rgb(0 0 0 / 0.08);
|
|
172
|
+
--shadow-xl: 0 10px 15px -3px rgb(0 0 0 / 0.1);
|
|
173
|
+
--shadow-2xl: 0 20px 25px -5px rgb(0 0 0 / 0.12);
|
|
174
|
+
--shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.04);
|
|
175
|
+
--shadow-paper: 0 1px 3px 0 rgb(0 0 0 / 0.04), 0 1px 2px 0 rgb(0 0 0 / 0.03);
|
|
176
|
+
--shadow-card: 0 2px 4px 0 rgb(0 0 0 / 0.04), 0 1px 2px 0 rgb(0 0 0 / 0.02);
|
|
177
|
+
|
|
178
|
+
/* === Backdrop Blur === */
|
|
179
|
+
--backdrop-blur-xs: 2px;
|
|
180
|
+
|
|
181
|
+
/* === Background Images === */
|
|
182
|
+
--background-image-gradient-radial: radial-gradient(var(--tw-gradient-stops));
|
|
183
|
+
--background-image-gradient-conic: conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops));
|
|
184
|
+
--background-image-grid-pattern: url("data:image/svg+xml,%3csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3e%3cg fill='none' fill-rule='evenodd'%3e%3cg fill='%23e2e8f0' fill-opacity='0.4'%3e%3ccircle cx='30' cy='30' r='1.5'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");
|
|
185
|
+
--background-image-paper-texture: url("data:image/svg+xml,%3csvg width='200' height='200' viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3e%3cfilter id='noise'%3e%3cfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3e%3cfeColorMatrix type='saturate' values='0'/%3e%3c/filter%3e%3crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3e%3c/svg%3e");
|
|
186
|
+
--background-image-subtle-grain: url("data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3e%3cfilter id='noise'%3e%3cfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3e%3cfeColorMatrix type='saturate' values='0'/%3e%3c/filter%3e%3crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.015'/%3e%3c/svg%3e");
|
|
187
|
+
|
|
188
|
+
/* === Animations === */
|
|
189
|
+
--animate-fade-in: fade-in 0.5s ease-in-out;
|
|
190
|
+
--animate-fade-in-up: fade-in-up 0.5s ease-out;
|
|
191
|
+
--animate-slide-in: slide-in 0.3s ease-out;
|
|
192
|
+
--animate-slide-in-right: slide-in-right 0.3s ease-out;
|
|
193
|
+
--animate-slide-in-left: slide-in-left 0.3s ease-out;
|
|
194
|
+
--animate-slide-in-bottom: slide-in-bottom 0.3s ease-out;
|
|
195
|
+
--animate-slide-in-top: slide-in-top 0.3s ease-out;
|
|
196
|
+
--animate-slide-out-right: slide-out-right 0.3s ease-in;
|
|
197
|
+
--animate-slide-out-left: slide-out-left 0.3s ease-in;
|
|
198
|
+
--animate-slide-out-bottom: slide-out-bottom 0.3s ease-in;
|
|
199
|
+
--animate-slide-out-top: slide-out-top 0.3s ease-in;
|
|
200
|
+
--animate-bounce-subtle: bounce-subtle 2s infinite;
|
|
201
|
+
--animate-pulse-slow: pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
202
|
+
--animate-shimmer: shimmer 2s linear infinite;
|
|
203
|
+
--animate-float: float 6s ease-in-out infinite;
|
|
204
|
+
--animate-scale-in: scale-in 0.2s ease-out;
|
|
205
|
+
--animate-scale-out: scale-out 0.2s ease-in;
|
|
206
|
+
--animate-row-flash: row-flash 2s ease-out;
|
|
207
|
+
--animate-success-check: success-check 0.6s ease-out;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/* === Keyframes === */
|
|
211
|
+
|
|
212
|
+
@keyframes fade-in {
|
|
213
|
+
0% { opacity: 0; }
|
|
214
|
+
100% { opacity: 1; }
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
@keyframes fade-in-up {
|
|
218
|
+
0% { opacity: 0; transform: translateY(10px); }
|
|
219
|
+
100% { opacity: 1; transform: translateY(0); }
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
@keyframes slide-in {
|
|
223
|
+
0% { transform: translateX(-10px); opacity: 0; }
|
|
224
|
+
100% { transform: translateX(0); opacity: 1; }
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
@keyframes slide-in-right {
|
|
228
|
+
0% { transform: translateX(100%); opacity: 0; }
|
|
229
|
+
100% { transform: translateX(0); opacity: 1; }
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
@keyframes slide-in-left {
|
|
233
|
+
0% { transform: translateX(-100%); opacity: 0; }
|
|
234
|
+
100% { transform: translateX(0); opacity: 1; }
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
@keyframes slide-in-bottom {
|
|
238
|
+
0% { transform: translateY(100%); opacity: 0; }
|
|
239
|
+
100% { transform: translateY(0); opacity: 1; }
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
@keyframes slide-in-top {
|
|
243
|
+
0% { transform: translateY(-100%); opacity: 0; }
|
|
244
|
+
100% { transform: translateY(0); opacity: 1; }
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
@keyframes slide-out-right {
|
|
248
|
+
0% { transform: translateX(0); opacity: 1; }
|
|
249
|
+
100% { transform: translateX(100%); opacity: 0; }
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
@keyframes slide-out-left {
|
|
253
|
+
0% { transform: translateX(0); opacity: 1; }
|
|
254
|
+
100% { transform: translateX(-100%); opacity: 0; }
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
@keyframes slide-out-bottom {
|
|
258
|
+
0% { transform: translateY(0); opacity: 1; }
|
|
259
|
+
100% { transform: translateY(100%); opacity: 0; }
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
@keyframes slide-out-top {
|
|
263
|
+
0% { transform: translateY(0); opacity: 1; }
|
|
264
|
+
100% { transform: translateY(-100%); opacity: 0; }
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
@keyframes bounce-subtle {
|
|
268
|
+
0%, 100% { transform: translateY(0); }
|
|
269
|
+
50% { transform: translateY(-2px); }
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
@keyframes shimmer {
|
|
273
|
+
0% { transform: translateX(-100%); }
|
|
274
|
+
100% { transform: translateX(100%); }
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
@keyframes float {
|
|
278
|
+
0%, 100% { transform: translateY(0px); }
|
|
279
|
+
50% { transform: translateY(-10px); }
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
@keyframes scale-in {
|
|
283
|
+
0% { transform: scale(0.9); opacity: 0; }
|
|
284
|
+
100% { transform: scale(1); opacity: 1; }
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
@keyframes scale-out {
|
|
288
|
+
0% { transform: scale(1); opacity: 1; }
|
|
289
|
+
100% { transform: scale(0.9); opacity: 0; }
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
@keyframes row-flash {
|
|
293
|
+
0% { background-color: rgb(187 247 208); }
|
|
294
|
+
25% { background-color: rgb(187 247 208); }
|
|
295
|
+
100% { background-color: transparent; }
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
@keyframes success-check {
|
|
299
|
+
0% { transform: scale(0); opacity: 0; }
|
|
300
|
+
50% { transform: scale(1.2); opacity: 1; }
|
|
301
|
+
100% { transform: scale(1); opacity: 1; }
|
|
302
|
+
}
|