dolphincss 1.0.3 → 1.0.4

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.
@@ -0,0 +1,80 @@
1
+ /* ===== Glass Component - Tailwind v4 Compatible (Variable-Based) ===== */
2
+
3
+ .glass {
4
+ @apply rounded-xl border transition-all duration-300 ease-out;
5
+ background-color: var(--glass-bg);
6
+ border-color: var(--glass-border);
7
+ backdrop-filter: var(--glass-blur);
8
+ box-shadow: var(--glass-shadow);
9
+ }
10
+
11
+ .glass:hover {
12
+ background-color: var(--glass-bg-alt);
13
+ border-color: var(--glass-border-alt);
14
+ backdrop-filter: var(--glass-blur-lg);
15
+ box-shadow: var(--glass-shadow-lg);
16
+ }
17
+
18
+ .glass:active {
19
+ @apply scale-95;
20
+ }
21
+
22
+ /* Size variants */
23
+ .glass-sm {
24
+ @apply rounded-lg p-2;
25
+ backdrop-filter: var(--glass-blur-sm);
26
+ border-color: var(--glass-border-alt);
27
+ }
28
+
29
+ .glass-md {
30
+ @apply rounded-xl p-4;
31
+ backdrop-filter: var(--glass-blur);
32
+ border-color: var(--glass-border);
33
+ }
34
+
35
+ .glass-lg {
36
+ @apply rounded-2xl p-6;
37
+ backdrop-filter: var(--glass-blur-lg);
38
+ border-color: var(--glass-border-alt);
39
+ }
40
+
41
+ /* Color Tints */
42
+ .glass-primary { background-color: var(--color-primary-bg, var(--glass-bg)); border-color: var(--color-primary-border, var(--glass-border)); }
43
+ .glass-success { background-color: var(--color-success-bg, var(--glass-bg)); border-color: var(--color-success-border, var(--glass-border)); }
44
+ .glass-warning { background-color: var(--color-warning-bg, var(--glass-bg)); border-color: var(--color-warning-border, var(--glass-border)); }
45
+ .glass-danger { background-color: var(--color-danger-bg, var(--glass-bg)); border-color: var(--color-danger-border, var(--glass-border)); }
46
+ .glass-info { background-color: var(--color-info-bg, var(--glass-bg)); border-color: var(--color-info-border, var(--glass-border)); }
47
+
48
+ /* Button + Glass combination */
49
+ .filled.glass {
50
+ @apply text-white font-medium;
51
+ backdrop-filter: var(--glass-blur);
52
+ background-color: var(--glass-bg);
53
+ }
54
+
55
+ .filled.glass:hover {
56
+ background-color: var(--glass-bg-alt);
57
+ backdrop-filter: var(--glass-blur-lg);
58
+ }
59
+
60
+ .outlined.glass {
61
+ @apply text-white border-2;
62
+ border-color: var(--glass-border);
63
+ backdrop-filter: var(--glass-blur);
64
+ background-color: transparent;
65
+ }
66
+
67
+ .outlined.glass:hover {
68
+ background-color: var(--glass-bg);
69
+ border-color: var(--glass-border-alt);
70
+ }
71
+
72
+ .plain.glass {
73
+ @apply text-white;
74
+ background-color: transparent;
75
+ backdrop-filter: var(--glass-blur-sm);
76
+ }
77
+
78
+ .plain.glass:hover {
79
+ background-color: var(--glass-bg-alt);
80
+ }
@@ -0,0 +1,74 @@
1
+ /* ============================
2
+ 🌊 DolphinCSS Motion System
3
+ ✅ Works with: filled, primary, circle, glow, etc.
4
+ ✅ Tailwind v4 Compatible
5
+ ============================ */
6
+
7
+ @keyframes hover-pulse {
8
+ 0%, 100% { transform: scale(1); }
9
+ 50% { transform: scale(1.08); }
10
+ }
11
+
12
+ @keyframes gentle-wave {
13
+ 0%, 100% { transform: translateY(0); }
14
+ 50% { transform: translateY(-6px); }
15
+ }
16
+
17
+ @keyframes dolphin-float {
18
+ 0%, 100% { transform: translateY(0) rotate(0deg); }
19
+ 50% { transform: translateY(-8px) rotate(2deg); }
20
+ }
21
+
22
+ @keyframes spin-slow {
23
+ 0% { transform: rotate(0deg); }
24
+ 100% { transform: rotate(360deg); }
25
+ }
26
+
27
+ @theme {
28
+ --motion-speed: 600ms;
29
+ --motion-ease: cubic-bezier(0.4, 0, 0.2, 1);
30
+ }
31
+
32
+ /* ===== Motion Classes ===== */
33
+ @layer utilities {
34
+ .motion { transition: all var(--motion-speed) var(--motion-ease); }
35
+
36
+ /* Hover pulse effect */
37
+ .hover-pulse:hover {
38
+ animation: hover-pulse 0.8s var(--motion-ease) both;
39
+ }
40
+
41
+ /* Continuous gentle float (for icons, buttons, cards) */
42
+ .float {
43
+ animation: dolphin-float 3s ease-in-out infinite;
44
+ }
45
+
46
+ /* Soft wave hover */
47
+ .hover-wave:hover {
48
+ animation: gentle-wave 0.7s ease-in-out both;
49
+ }
50
+
51
+ /* Slow spin (for loaders / refresh buttons) */
52
+ .spin-slow {
53
+ animation: spin-slow 3s linear infinite;
54
+ }
55
+
56
+ /* Entry animations */
57
+ .fade-in {
58
+ animation: fade-in 0.6s var(--motion-ease) both;
59
+ }
60
+
61
+ .slide-up {
62
+ animation: slide-up 0.6s var(--motion-ease) both;
63
+ }
64
+
65
+ @keyframes fade-in {
66
+ from { opacity: 0; transform: translateY(6px); }
67
+ to { opacity: 1; transform: translateY(0); }
68
+ }
69
+
70
+ @keyframes slide-up {
71
+ from { transform: translateY(25px); opacity: 0; }
72
+ to { transform: translateY(0); opacity: 1; }
73
+ }
74
+ }
@@ -0,0 +1,347 @@
1
+ /* ============================
2
+ 🌊 DolphinCSS Admin Side Navigation - UPDATED
3
+ ✅ Fixed Text Colors
4
+ ✅ Enhanced Mobile Responsive
5
+ ============================ */
6
+
7
+ .admin-nav {
8
+ background-color: var(--color-surface);
9
+ border-right: 1px solid var(--color-border);
10
+ min-height: 100vh;
11
+ transition: all var(--motion-speed) var(--motion-ease);
12
+ display: flex;
13
+ flex-direction: column;
14
+ position: relative;
15
+ width: 280px;
16
+ z-index: 1000;
17
+ }
18
+
19
+ /* Header Section - TEXT COLOR FIXED */
20
+ .admin-nav-header {
21
+ padding: calc(var(--spacing) * 4);
22
+ border-bottom: 1px solid var(--color-border);
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: space-between;
26
+ }
27
+
28
+ .admin-nav-brand {
29
+ display: flex;
30
+ align-items: center;
31
+ gap: calc(var(--spacing) * 3);
32
+ }
33
+
34
+ .admin-nav-logo {
35
+ height: calc(var(--spacing) * 8);
36
+ width: calc(var(--spacing) * 8);
37
+ border-radius: var(--radius-lg);
38
+ background-color: var(--color-primary);
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ color: var(--color-text);
43
+ font-weight: var(--font-weight-bold);
44
+ flex-shrink: 0;
45
+ }
46
+
47
+ .admin-nav-title {
48
+ font-size: var(--text-lg);
49
+ font-weight: var(--font-weight-bold);
50
+ color: var(--color-text); /* FIXED: Text color variable */
51
+ white-space: nowrap;
52
+ overflow: hidden;
53
+ }
54
+
55
+ /* Navigation Items - TEXT COLOR FIXED */
56
+ .admin-nav-items {
57
+ flex: 1;
58
+ padding: calc(var(--spacing) * 2) 0;
59
+ display: flex;
60
+ flex-direction: column;
61
+ gap: calc(var(--spacing) * 1);
62
+ overflow-y: auto;
63
+ }
64
+
65
+ .admin-nav-item {
66
+ display: flex;
67
+ align-items: center;
68
+ gap: calc(var(--spacing) * 3);
69
+ padding: calc(var(--spacing) * 3) calc(var(--spacing) * 4);
70
+ color: var(--color-text-muted); /* FIXED: Text color variable */
71
+ text-decoration: none;
72
+ transition: all var(--motion-speed) var(--motion-ease);
73
+ position: relative;
74
+ margin: 0 calc(var(--spacing) * 2);
75
+ border-radius: var(--radius-md);
76
+ cursor: pointer;
77
+ }
78
+
79
+ .admin-nav-item:hover {
80
+ background-color: var(--color-primary);
81
+ color: var(--color-text); /* FIXED: Text color variable */
82
+ transform: translateX(calc(var(--spacing) * 1));
83
+ }
84
+
85
+ .admin-nav-item.active {
86
+ background-color: var(--color-primary);
87
+ color: var(--color-text); /* FIXED: Text color variable */
88
+ font-weight: var(--font-weight-semibold);
89
+ }
90
+
91
+ .admin-nav-item.active::before {
92
+ content: '';
93
+ position: absolute;
94
+ left: calc(var(--spacing) * -2);
95
+ top: 50%;
96
+ transform: translateY(-50%);
97
+ width: calc(var(--spacing) * 1);
98
+ height: 60%;
99
+ background-color: var(--color-primary);
100
+ border-radius: var(--radius-sm);
101
+ }
102
+
103
+ .admin-nav-icon {
104
+ width: calc(var(--spacing) * 5);
105
+ height: calc(var(--spacing) * 5);
106
+ display: flex;
107
+ align-items: center;
108
+ justify-content: center;
109
+ transition: all var(--motion-speed) var(--motion-ease);
110
+ flex-shrink: 0;
111
+ }
112
+
113
+ .admin-nav-text {
114
+ white-space: nowrap;
115
+ overflow: hidden;
116
+ font-size: var(--text-sm);
117
+ transition: all var(--motion-speed) var(--motion-ease);
118
+ color: inherit; /* FIXED: Inherit parent color */
119
+ }
120
+
121
+ /* User Section - TEXT COLOR FIXED */
122
+ .admin-nav-user {
123
+ padding: calc(var(--spacing) * 4);
124
+ border-top: 1px solid var(--color-border);
125
+ display: flex;
126
+ align-items: center;
127
+ gap: calc(var(--spacing) * 3);
128
+ }
129
+
130
+ .admin-nav-avatar {
131
+ width: calc(var(--spacing) * 10);
132
+ height: calc(var(--spacing) * 10);
133
+ border-radius: 3.40282e38px;
134
+ background-color: var(--color-primary);
135
+ display: flex;
136
+ align-items: center;
137
+ justify-content: center;
138
+ color: var(--color-text); /* FIXED: Text color variable */
139
+ font-weight: var(--font-weight-bold);
140
+ flex-shrink: 0;
141
+ }
142
+
143
+ .admin-nav-user-info {
144
+ flex: 1;
145
+ min-width: 0;
146
+ }
147
+
148
+ .admin-nav-user-name {
149
+ font-size: var(--text-sm);
150
+ font-weight: var(--font-weight-semibold);
151
+ color: var(--color-text); /* FIXED: Text color variable */
152
+ white-space: nowrap;
153
+ overflow: hidden;
154
+ text-overflow: ellipsis;
155
+ }
156
+
157
+ .admin-nav-user-role {
158
+ font-size: var(--text-xs);
159
+ color: var(--color-text-muted); /* FIXED: Text color variable */
160
+ white-space: nowrap;
161
+ overflow: hidden;
162
+ text-overflow: ellipsis;
163
+ }
164
+
165
+ /* Collapse State */
166
+ .admin-nav.collapsed {
167
+ width: calc(var(--spacing) * 16);
168
+ }
169
+
170
+ .admin-nav.collapsed .admin-nav-title,
171
+ .admin-nav.collapsed .admin-nav-text,
172
+ .admin-nav.collapsed .admin-nav-user-info {
173
+ opacity: 0;
174
+ width: 0;
175
+ height: 0;
176
+ overflow: hidden;
177
+ }
178
+
179
+ .admin-nav.collapsed .admin-nav-item {
180
+ justify-content: center;
181
+ padding: calc(var(--spacing) * 3);
182
+ margin: 0 calc(var(--spacing) * 1);
183
+ }
184
+
185
+ .admin-nav.collapsed .admin-nav-item:hover .admin-nav-tooltip {
186
+ display: block;
187
+ }
188
+
189
+ /* Tooltip for Collapsed State */
190
+ .admin-nav-tooltip {
191
+ display: none;
192
+ position: absolute;
193
+ left: 100%;
194
+ top: 50%;
195
+ transform: translateY(-50%);
196
+ background-color: var(--color-surface);
197
+ border: 1px solid var(--color-border);
198
+ padding: calc(var(--spacing) * 2) calc(var(--spacing) * 3);
199
+ border-radius: var(--radius-md);
200
+ font-size: var(--text-sm);
201
+ color: var(--color-text); /* FIXED: Text color variable */
202
+ white-space: nowrap;
203
+ z-index: 1000;
204
+ box-shadow: var(--tw-shadow);
205
+ margin-left: calc(var(--spacing) * 2);
206
+ }
207
+
208
+ /* Toggle Button */
209
+ .admin-nav-toggle {
210
+ position: absolute;
211
+ top: calc(var(--spacing) * 4);
212
+ right: calc(var(--spacing) * -3);
213
+ width: calc(var(--spacing) * 6);
214
+ height: calc(var(--spacing) * 6);
215
+ border-radius: 3.40282e38px;
216
+ background-color: var(--color-surface);
217
+ border: 1px solid var(--color-border);
218
+ display: flex;
219
+ align-items: center;
220
+ justify-content: center;
221
+ cursor: pointer;
222
+ transition: all var(--motion-speed) var(--motion-ease);
223
+ color: var(--color-text); /* FIXED: Text color variable */
224
+ z-index: 1001;
225
+ }
226
+
227
+ .admin-nav-toggle:hover {
228
+ background-color: var(--color-primary);
229
+ color: var(--color-text);
230
+ transform: scale(1.1);
231
+ }
232
+
233
+ /* ===== MOBILE RESPONSIVE ENHANCEMENTS ===== */
234
+ @media (max-width: 768px) {
235
+ .admin-nav {
236
+ position: fixed;
237
+ top: 0;
238
+ left: 0;
239
+ height: 100vh;
240
+ transform: translateX(-100%);
241
+ transition: transform 0.3s var(--motion-ease);
242
+ width: 280px;
243
+ box-shadow: 0 0 20px var(--color-shadow);
244
+ }
245
+
246
+ .admin-nav.mobile-open {
247
+ transform: translateX(0);
248
+ }
249
+
250
+ .admin-nav-overlay {
251
+ display: none;
252
+ position: fixed;
253
+ top: 0;
254
+ left: 0;
255
+ right: 0;
256
+ bottom: 0;
257
+ background-color: var(--color-shadow);
258
+ z-index: 999;
259
+ backdrop-filter: blur(4px);
260
+ }
261
+
262
+ .admin-nav-overlay.mobile-open {
263
+ display: block;
264
+ }
265
+
266
+ /* Mobile Header */
267
+ .admin-nav-header {
268
+ padding: calc(var(--spacing) * 3);
269
+ }
270
+
271
+ .admin-nav-title {
272
+ font-size: var(--text-base);
273
+ }
274
+
275
+ /* Mobile Menu Items */
276
+ .admin-nav-items {
277
+ padding: calc(var(--spacing) * 1) 0;
278
+ }
279
+
280
+ .admin-nav-item {
281
+ padding: calc(var(--spacing) * 2.5) calc(var(--spacing) * 3);
282
+ margin: 0 calc(var(--spacing) * 1.5);
283
+ }
284
+
285
+ /* Mobile User Section */
286
+ .admin-nav-user {
287
+ padding: calc(var(--spacing) * 3);
288
+ flex-direction: column;
289
+ text-align: center;
290
+ gap: calc(var(--spacing) * 2);
291
+ }
292
+
293
+ .admin-nav-avatar {
294
+ width: calc(var(--spacing) * 8);
295
+ height: calc(var(--spacing) * 8);
296
+ }
297
+
298
+ /* Mobile Toggle Button */
299
+ .admin-nav-toggle {
300
+ display: none; /* Hide desktop toggle on mobile */
301
+ }
302
+
303
+ /* Mobile Close Button */
304
+ .admin-nav-close {
305
+ position: absolute;
306
+ top: calc(var(--spacing) * 3);
307
+ right: calc(var(--spacing) * 3);
308
+ width: calc(var(--spacing) * 6);
309
+ height: calc(var(--spacing) * 6);
310
+ border-radius: 3.40282e38px;
311
+ background-color: var(--color-surface);
312
+ border: 1px solid var(--color-border);
313
+ display: flex;
314
+ align-items: center;
315
+ justify-content: center;
316
+ cursor: pointer;
317
+ color: var(--color-text);
318
+ z-index: 1002;
319
+ }
320
+
321
+ .admin-nav-close:hover {
322
+ background-color: var(--color-danger);
323
+ color: var(--color-text);
324
+ }
325
+ }
326
+
327
+ /* Desktop specific */
328
+ @media (min-width: 769px) {
329
+ .admin-nav-close {
330
+ display: none;
331
+ }
332
+ }
333
+
334
+ /* Small mobile devices */
335
+ @media (max-width: 480px) {
336
+ .admin-nav {
337
+ width: 100vw;
338
+ }
339
+
340
+ .admin-nav-header {
341
+ padding: calc(var(--spacing) * 2);
342
+ }
343
+
344
+ .admin-nav-item {
345
+ padding: calc(var(--spacing) * 2) calc(var(--spacing) * 2);
346
+ }
347
+ }