nitrostack 1.0.65 → 1.0.67

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.
Files changed (61) hide show
  1. package/package.json +3 -2
  2. package/src/studio/README.md +140 -0
  3. package/src/studio/app/api/auth/fetch-metadata/route.ts +71 -0
  4. package/src/studio/app/api/auth/register-client/route.ts +67 -0
  5. package/src/studio/app/api/chat/route.ts +250 -0
  6. package/src/studio/app/api/health/checks/route.ts +42 -0
  7. package/src/studio/app/api/health/route.ts +13 -0
  8. package/src/studio/app/api/init/route.ts +109 -0
  9. package/src/studio/app/api/ping/route.ts +13 -0
  10. package/src/studio/app/api/prompts/[name]/route.ts +21 -0
  11. package/src/studio/app/api/prompts/route.ts +13 -0
  12. package/src/studio/app/api/resources/[...uri]/route.ts +18 -0
  13. package/src/studio/app/api/resources/route.ts +13 -0
  14. package/src/studio/app/api/roots/route.ts +13 -0
  15. package/src/studio/app/api/sampling/route.ts +14 -0
  16. package/src/studio/app/api/tools/[name]/call/route.ts +41 -0
  17. package/src/studio/app/api/tools/route.ts +23 -0
  18. package/src/studio/app/api/widget-examples/route.ts +44 -0
  19. package/src/studio/app/auth/callback/page.tsx +175 -0
  20. package/src/studio/app/auth/page.tsx +560 -0
  21. package/src/studio/app/chat/page.tsx +1133 -0
  22. package/src/studio/app/chat/page.tsx.backup +390 -0
  23. package/src/studio/app/globals.css +486 -0
  24. package/src/studio/app/health/page.tsx +179 -0
  25. package/src/studio/app/layout.tsx +68 -0
  26. package/src/studio/app/logs/page.tsx +279 -0
  27. package/src/studio/app/page.tsx +351 -0
  28. package/src/studio/app/page.tsx.backup +346 -0
  29. package/src/studio/app/ping/page.tsx +209 -0
  30. package/src/studio/app/prompts/page.tsx +230 -0
  31. package/src/studio/app/resources/page.tsx +315 -0
  32. package/src/studio/app/settings/page.tsx +199 -0
  33. package/src/studio/branding.md +807 -0
  34. package/src/studio/components/EnlargeModal.tsx +138 -0
  35. package/src/studio/components/LogMessage.tsx +153 -0
  36. package/src/studio/components/MarkdownRenderer.tsx +410 -0
  37. package/src/studio/components/Sidebar.tsx +295 -0
  38. package/src/studio/components/ToolCard.tsx +139 -0
  39. package/src/studio/components/WidgetRenderer.tsx +346 -0
  40. package/src/studio/lib/api.ts +207 -0
  41. package/src/studio/lib/http-client-transport.ts +222 -0
  42. package/src/studio/lib/llm-service.ts +480 -0
  43. package/src/studio/lib/log-manager.ts +76 -0
  44. package/src/studio/lib/mcp-client.ts +258 -0
  45. package/src/studio/lib/store.ts +192 -0
  46. package/src/studio/lib/theme-provider.tsx +50 -0
  47. package/src/studio/lib/types.ts +107 -0
  48. package/src/studio/lib/widget-loader.ts +90 -0
  49. package/src/studio/middleware.ts +27 -0
  50. package/src/studio/next.config.js +38 -0
  51. package/src/studio/package.json +35 -0
  52. package/src/studio/postcss.config.mjs +10 -0
  53. package/src/studio/public/nitrocloud.png +0 -0
  54. package/src/studio/tailwind.config.ts +67 -0
  55. package/src/studio/tsconfig.json +42 -0
  56. package/templates/typescript-oauth/AI_AGENT_CLI_REFERENCE.md +0 -701
  57. package/templates/typescript-oauth/AI_AGENT_SDK_REFERENCE.md +0 -1260
  58. package/templates/typescript-oauth/package-lock.json +0 -4253
  59. package/templates/typescript-pizzaz/IMPLEMENTATION.md +0 -98
  60. package/templates/typescript-starter/AI_AGENT_CLI_REFERENCE.md +0 -701
  61. package/templates/typescript-starter/AI_AGENT_SDK_REFERENCE.md +0 -1260
@@ -0,0 +1,807 @@
1
+ # Nitrocloud Frontend Branding Guide
2
+
3
+ ## Overview
4
+ This document defines the visual identity, design system, and UI/UX philosophy of the Nitrocloud frontend application. Use this guide to maintain consistency across all new features, pages, and components.
5
+
6
+ ---
7
+
8
+ ## 🎨 Color Palette
9
+
10
+ ### Brand Colors
11
+
12
+ #### Primary Brand Color
13
+ ```css
14
+ /* Nitrocloud Blue */
15
+ --nitrocloud-primary: hsl(217, 91%, 60%) /* #3B9FFF - Main brand blue */
16
+ --nitrocloud-primary-dark: hsl(217, 91%, 50%) /* #1A8CFF - Darker variant */
17
+ ```
18
+
19
+ **Usage**: Logo, primary CTAs, key UI elements, focus states
20
+
21
+ #### Brand Gradient
22
+ ```css
23
+ /* Signature Nitrocloud Gradient */
24
+ --nitrocloud-gradient-start: hsl(217, 91%, 60%) /* Blue */
25
+ --nitrocloud-gradient-end: hsl(221, 83%, 53%) /* Deep Blue-Purple */
26
+
27
+ /* CSS Utility Classes */
28
+ .nitrocloud-gradient {
29
+ background: linear-gradient(135deg,
30
+ hsl(var(--nitrocloud-gradient-start)),
31
+ hsl(var(--nitrocloud-gradient-end))
32
+ );
33
+ }
34
+
35
+ .nitrocloud-text-gradient {
36
+ background: linear-gradient(135deg,
37
+ hsl(var(--nitrocloud-gradient-start)),
38
+ hsl(var(--nitrocloud-gradient-end))
39
+ );
40
+ -webkit-background-clip: text;
41
+ -webkit-text-fill-color: transparent;
42
+ background-clip: text;
43
+ }
44
+ ```
45
+
46
+ **Usage**:
47
+ - Hero sections
48
+ - Premium buttons and CTAs
49
+ - Feature highlights
50
+ - Brand moments
51
+
52
+ ### Semantic Colors
53
+
54
+ #### Light Mode
55
+ ```css
56
+ --background: hsl(0, 0%, 100%) /* #FFFFFF */
57
+ --foreground: hsl(222.2, 84%, 4.9%) /* #020617 - Near black */
58
+ --primary: hsl(221.2, 83.2%, 53.3%) /* #3B82F6 - Primary blue */
59
+ --primary-foreground: hsl(210, 40%, 98%) /* #F8FAFC */
60
+ --secondary: hsl(210, 40%, 96.1%) /* #F1F5F9 */
61
+ --muted: hsl(210, 40%, 96.1%) /* #F1F5F9 */
62
+ --muted-foreground: hsl(215.4, 16.3%, 46.9%) /* #64748B */
63
+ --border: hsl(214.3, 31.8%, 91.4%) /* #E2E8F0 */
64
+ --destructive: hsl(0, 84.2%, 60.2%) /* #EF4444 */
65
+ ```
66
+
67
+ #### Dark Mode
68
+ ```css
69
+ --background: hsl(222.2, 84%, 4.9%) /* #020617 - Deep dark blue */
70
+ --foreground: hsl(210, 40%, 98%) /* #F8FAFC */
71
+ --primary: hsl(217, 91%, 60%) /* #3B9FFF - Brighter in dark */
72
+ --primary-foreground: hsl(222.2, 47.4%, 11.2%) /* #0F172A */
73
+ --secondary: hsl(217.2, 32.6%, 17.5%) /* #1E293B */
74
+ --muted: hsl(217.2, 32.6%, 17.5%) /* #1E293B */
75
+ --muted-foreground: hsl(215, 20.2%, 65.1%) /* #94A3B8 */
76
+ --border: hsl(217.2, 32.6%, 17.5%) /* #1E293B */
77
+ --destructive: hsl(0, 62.8%, 30.6%) /* #991B1B */
78
+ ```
79
+
80
+ ### Feature-Specific Color Palettes
81
+
82
+ #### Plan Tiers
83
+ ```typescript
84
+ const planColors = {
85
+ FREE: {
86
+ gradient: 'from-blue-500/20 via-cyan-500/20 to-blue-500/20',
87
+ border: 'border-blue-500/30',
88
+ badge: 'bg-blue-500/10 text-blue-600 dark:text-blue-400',
89
+ icon: 'text-blue-500'
90
+ },
91
+ PRO: {
92
+ gradient: 'from-purple-500/20 via-pink-500/20 to-purple-500/20',
93
+ border: 'border-purple-500/30',
94
+ badge: 'bg-purple-500/10 text-purple-600 dark:text-purple-400',
95
+ icon: 'text-purple-500'
96
+ },
97
+ ENTERPRISE: {
98
+ gradient: 'from-amber-500/20 via-orange-500/20 to-amber-500/20',
99
+ border: 'border-amber-500/30',
100
+ badge: 'bg-amber-500/10 text-amber-600 dark:text-amber-400',
101
+ icon: 'text-amber-500'
102
+ }
103
+ };
104
+ ```
105
+
106
+ #### Feature Highlights
107
+ ```css
108
+ /* Used in carousel and feature cards */
109
+ Emerald (Free Forever): from-emerald-50 via-teal-100 to-cyan-200
110
+ Blue-Indigo-Purple (Deploy Fast): from-blue-50 via-indigo-100 to-purple-200
111
+ Cyan-Blue-Indigo (Security): from-cyan-50 via-blue-100 to-indigo-200
112
+ Sky-Blue-Cyan (Auto-scaling): from-sky-50 via-blue-100 to-cyan-200
113
+ ```
114
+
115
+ ---
116
+
117
+ ## 🔤 Typography
118
+
119
+ ### Font Family
120
+ ```typescript
121
+ import { Inter } from 'next/font/google';
122
+
123
+ const inter = Inter({ subsets: ['latin'] });
124
+ ```
125
+
126
+ **Primary Font**: [Inter](https://fonts.google.com/specimen/Inter) - A modern, highly legible sans-serif font optimized for UI
127
+
128
+ ### Type Scale
129
+
130
+ #### Headings
131
+ ```css
132
+ /* Hero Headings */
133
+ .text-7xl /* 72px / 4.5rem - Landing page hero */
134
+ .text-6xl /* 60px / 3.75rem - Large hero */
135
+ .text-5xl /* 48px / 3rem - Page hero */
136
+
137
+ /* Section Headings */
138
+ .text-4xl /* 36px / 2.25rem - Major sections */
139
+ .text-3xl /* 30px / 1.875rem - Section headers */
140
+ .text-2xl /* 24px / 1.5rem - Subsection headers */
141
+ .text-xl /* 20px / 1.25rem - Card titles */
142
+ .text-lg /* 18px / 1.125rem - Small headers */
143
+
144
+ /* Body Text */
145
+ .text-base /* 16px / 1rem - Default body */
146
+ .text-sm /* 14px / 0.875rem - Secondary text */
147
+ .text-xs /* 12px / 0.75rem - Captions, labels */
148
+ ```
149
+
150
+ #### Font Weights
151
+ ```css
152
+ font-bold /* 700 - Headings, emphasis */
153
+ font-semibold /* 600 - Subheadings, card titles */
154
+ font-medium /* 500 - Buttons, labels */
155
+ font-normal /* 400 - Body text */
156
+ ```
157
+
158
+ #### Line Heights & Spacing
159
+ ```css
160
+ tracking-tight /* -0.025em - Large headings */
161
+ tracking-normal /* 0em - Default */
162
+ leading-tight /* 1.25 - Headings */
163
+ leading-normal /* 1.5 - Body text */
164
+ leading-relaxed /* 1.625 - Long-form content */
165
+ ```
166
+
167
+ ---
168
+
169
+ ## 📐 Spacing & Layout
170
+
171
+ ### Base Spacing Unit
172
+ The design system uses Tailwind's spacing scale (4px base unit):
173
+
174
+ ```css
175
+ /* Common Spacing */
176
+ space-y-2 /* 8px - Tight spacing */
177
+ space-y-4 /* 16px - Default component spacing */
178
+ space-y-6 /* 24px - Section spacing */
179
+ space-y-8 /* 32px - Large section spacing */
180
+ space-y-12 /* 48px - Major section breaks */
181
+ space-y-16 /* 64px - Page section spacing */
182
+ ```
183
+
184
+ ### Container Widths
185
+ ```css
186
+ max-w-xs /* 320px - Tight containers */
187
+ max-w-sm /* 384px - Small forms */
188
+ max-w-md /* 448px - Auth pages */
189
+ max-w-lg /* 512px - Modal dialogs */
190
+ max-w-xl /* 576px - Forms */
191
+ max-w-2xl /* 672px - Content width */
192
+ max-w-4xl /* 896px - Large content */
193
+ max-w-6xl /* 1152px - Page max width */
194
+ max-w-7xl /* 1280px - Full layout */
195
+
196
+ /* Global Container */
197
+ container /* Centered, responsive container with padding */
198
+ ```
199
+
200
+ ### Border Radius
201
+ ```css
202
+ --radius: 0.75rem; /* 12px - Global default */
203
+
204
+ rounded-sm /* 4px - Small elements */
205
+ rounded-md /* 8px - Buttons, inputs */
206
+ rounded-lg /* 12px - Cards, dialogs (default) */
207
+ rounded-xl /* 16px - Large cards */
208
+ rounded-2xl /* 24px - Hero sections */
209
+ rounded-full /* Badges, avatars */
210
+ ```
211
+
212
+ ---
213
+
214
+ ## 🎯 Component Patterns
215
+
216
+ ### Buttons
217
+
218
+ #### Variants
219
+ ```typescript
220
+ // Primary (Brand)
221
+ <Button className="nitrocloud-gradient border-0">
222
+ Deploy Now
223
+ </Button>
224
+
225
+ // Default (Primary Color)
226
+ <Button variant="default">
227
+ Continue
228
+ </Button>
229
+
230
+ // Outline
231
+ <Button variant="outline">
232
+ Cancel
233
+ </Button>
234
+
235
+ // Ghost (Minimal)
236
+ <Button variant="ghost">
237
+ Learn More
238
+ </Button>
239
+
240
+ // Destructive
241
+ <Button variant="destructive">
242
+ Delete Project
243
+ </Button>
244
+
245
+ // Link
246
+ <Button variant="link">
247
+ View Details
248
+ </Button>
249
+ ```
250
+
251
+ #### Sizes
252
+ ```typescript
253
+ <Button size="sm">Small</Button> /* 32px height */
254
+ <Button size="default">Default</Button> /* 40px height */
255
+ <Button size="lg">Large</Button> /* 44px height */
256
+ <Button size="icon">Icon</Button> /* 40x40px square */
257
+ ```
258
+
259
+ #### Loading State
260
+ ```typescript
261
+ <Button disabled={isLoading}>
262
+ {isLoading ? (
263
+ <>
264
+ <Loader2 className="mr-2 h-4 w-4 animate-spin" />
265
+ Processing...
266
+ </>
267
+ ) : (
268
+ 'Submit'
269
+ )}
270
+ </Button>
271
+ ```
272
+
273
+ ### Cards
274
+
275
+ #### Standard Card
276
+ ```typescript
277
+ <Card className="border-0 shadow-2xl">
278
+ <CardHeader>
279
+ <CardTitle>Title</CardTitle>
280
+ <CardDescription>Description</CardDescription>
281
+ </CardHeader>
282
+ <CardContent>
283
+ Content
284
+ </CardContent>
285
+ <CardFooter>
286
+ Footer actions
287
+ </CardFooter>
288
+ </Card>
289
+ ```
290
+
291
+ #### Gradient Accent Card
292
+ ```typescript
293
+ <Card className="border-2 bg-gradient-to-br from-purple-500/20 via-pink-500/20 to-purple-500/20 border-purple-500/30">
294
+ {/* Plan tier card, feature highlight */}
295
+ </Card>
296
+ ```
297
+
298
+ #### Glass Card
299
+ ```typescript
300
+ <Card className="bg-background/60 backdrop-blur-sm border-border/50">
301
+ {/* Floating cards, overlays */}
302
+ </Card>
303
+ ```
304
+
305
+ ### Badges
306
+
307
+ #### Status Badges
308
+ ```typescript
309
+ // Active/Success
310
+ <Badge className="bg-emerald-500/10 text-emerald-600 border-emerald-500/20">
311
+ Active
312
+ </Badge>
313
+
314
+ // Warning
315
+ <Badge className="bg-amber-500/10 text-amber-600 border-amber-500/20">
316
+ Pending
317
+ </Badge>
318
+
319
+ // Error
320
+ <Badge className="bg-red-500/10 text-red-600 border-red-500/20">
321
+ Failed
322
+ </Badge>
323
+
324
+ // Info
325
+ <Badge className="bg-blue-500/10 text-blue-600 border-blue-500/20">
326
+ Info
327
+ </Badge>
328
+ ```
329
+
330
+ ### Icons
331
+
332
+ **Icon Library**: [Lucide React](https://lucide.dev/)
333
+
334
+ #### Size Guidelines
335
+ ```typescript
336
+ <Icon className="h-4 w-4" /> /* Small - Inline text, buttons */
337
+ <Icon className="h-5 w-5" /> /* Default - Most UI elements */
338
+ <Icon className="h-6 w-6" /> /* Medium - Card headers */
339
+ <Icon className="h-8 w-8" /> /* Large - Feature icons */
340
+ <Icon className="h-12 w-12" /> /* XL - Hero sections */
341
+ ```
342
+
343
+ #### Common Icons
344
+ ```typescript
345
+ // Navigation & Actions
346
+ import { Menu, X, ChevronRight, ArrowRight, ExternalLink } from 'lucide-react';
347
+
348
+ // Status
349
+ import { CheckCircle2, XCircle, AlertCircle, Info, Loader2 } from 'lucide-react';
350
+
351
+ // Features
352
+ import { Rocket, Zap, Shield, Cloud, Code, Database } from 'lucide-react';
353
+
354
+ // Social
355
+ import { Github, Twitter, Mail } from 'lucide-react';
356
+
357
+ // UI
358
+ import { Plus, Trash2, Edit, Eye, EyeOff, Search, Filter } from 'lucide-react';
359
+ ```
360
+
361
+ ---
362
+
363
+ ## 🏗️ Layout Structure
364
+
365
+ ### Page Architecture
366
+
367
+ #### Full Page Layout
368
+ ```typescript
369
+ <div className="min-h-screen bg-background">
370
+ {/* Header/Navigation */}
371
+ <header className="border-b">
372
+ {/* Navigation content */}
373
+ </header>
374
+
375
+ {/* Main Content */}
376
+ <main className="container mx-auto px-4 py-8">
377
+ {/* Page content */}
378
+ </main>
379
+
380
+ {/* Footer (optional) */}
381
+ <footer className="border-t mt-auto">
382
+ {/* Footer content */}
383
+ </footer>
384
+ </div>
385
+ ```
386
+
387
+ #### Auth Pages Layout
388
+ ```typescript
389
+ <div className="min-h-screen flex items-center justify-center p-4 bg-gradient-to-br from-slate-50 to-slate-100 dark:from-slate-900 dark:to-slate-800">
390
+ <div className="w-full max-w-6xl flex flex-col lg:flex-row gap-8">
391
+ {/* Feature Carousel (Left) */}
392
+ <div className="flex-1">
393
+ <FeatureCarousel />
394
+ </div>
395
+
396
+ {/* Auth Form (Right) */}
397
+ <div className="w-full lg:w-[480px]">
398
+ <Card className="border-0 shadow-2xl">
399
+ {/* Form content */}
400
+ </Card>
401
+ </div>
402
+ </div>
403
+ </div>
404
+ ```
405
+
406
+ #### Dashboard Layout
407
+ ```typescript
408
+ <div className="min-h-screen bg-background">
409
+ <DashboardHeader />
410
+
411
+ <div className="container mx-auto px-4 py-8">
412
+ {/* Page Header */}
413
+ <div className="flex items-center justify-between mb-8">
414
+ <div>
415
+ <h1 className="text-3xl font-bold">Page Title</h1>
416
+ <p className="text-muted-foreground">Description</p>
417
+ </div>
418
+ <Button className="nitrocloud-gradient">
419
+ Primary Action
420
+ </Button>
421
+ </div>
422
+
423
+ {/* Content Grid */}
424
+ <div className="grid grid-cols-1 lg:grid-cols-3 gap-6">
425
+ {/* Sidebar or filters */}
426
+ {/* Main content */}
427
+ </div>
428
+ </div>
429
+ </div>
430
+ ```
431
+
432
+ ### Responsive Breakpoints
433
+ ```typescript
434
+ /* Tailwind Breakpoints */
435
+ sm: '640px' /* Small tablets */
436
+ md: '768px' /* Tablets */
437
+ lg: '1024px' /* Desktops */
438
+ xl: '1280px' /* Large desktops */
439
+ 2xl: '1536px' /* Extra large screens */
440
+ ```
441
+
442
+ ---
443
+
444
+ ## ✨ Visual Effects & Animations
445
+
446
+ ### Gradients
447
+
448
+ #### Background Gradients
449
+ ```css
450
+ /* Hero Sections */
451
+ bg-gradient-to-br from-primary/5 via-background to-primary/5
452
+
453
+ /* Decorative Backgrounds */
454
+ bg-gradient-to-br from-slate-50 to-slate-100
455
+ dark:from-slate-900 dark:to-slate-800
456
+ ```
457
+
458
+ #### Text Gradients
459
+ ```typescript
460
+ <h1 className="bg-gradient-to-r from-primary via-primary/80 to-primary/60 bg-clip-text text-transparent">
461
+ Gradient Heading
462
+ </h1>
463
+ ```
464
+
465
+ ### Shadows
466
+ ```css
467
+ shadow-sm /* Subtle elevation */
468
+ shadow-md /* Default cards */
469
+ shadow-lg /* Prominent cards */
470
+ shadow-xl /* Floating elements */
471
+ shadow-2xl /* Hero cards, modals */
472
+ ```
473
+
474
+ ### Animations
475
+
476
+ #### Fade In
477
+ ```css
478
+ @keyframes fadeIn {
479
+ from { opacity: 0; transform: translateY(8px); }
480
+ to { opacity: 1; transform: translateY(0); }
481
+ }
482
+
483
+ .animate-fadeIn {
484
+ animation: fadeIn 0.6s ease-out forwards;
485
+ }
486
+ ```
487
+
488
+ #### Spin (Loading)
489
+ ```typescript
490
+ <Loader2 className="h-4 w-4 animate-spin" />
491
+ ```
492
+
493
+ #### Transitions
494
+ ```css
495
+ /* Default Button/Card Hover */
496
+ transition-colors /* Color changes */
497
+ transition-opacity /* Fade effects */
498
+ transition-all /* Multi-property */
499
+
500
+ /* Duration */
501
+ duration-150 /* 150ms - Fast interactions */
502
+ duration-300 /* 300ms - Standard */
503
+ duration-500 /* 500ms - Smooth effects */
504
+ ```
505
+
506
+ ### Hover States
507
+ ```css
508
+ /* Buttons */
509
+ hover:opacity-80
510
+ hover:bg-primary/90
511
+
512
+ /* Cards */
513
+ hover:shadow-lg
514
+ hover:border-primary/50
515
+
516
+ /* Links */
517
+ hover:underline
518
+ hover:text-primary
519
+ ```
520
+
521
+ ---
522
+
523
+ ## 🎨 Design Philosophy
524
+
525
+ ### Core Principles
526
+
527
+ #### 1. **Clarity First**
528
+ - Clean, uncluttered interfaces
529
+ - Clear visual hierarchy
530
+ - Obvious call-to-actions
531
+ - Minimal cognitive load
532
+
533
+ #### 2. **Modern & Professional**
534
+ - Contemporary design language
535
+ - Subtle gradients and shadows
536
+ - Refined spacing and typography
537
+ - Professional color palette
538
+
539
+ #### 3. **Accessible by Default**
540
+ - WCAG 2.1 AA compliance
541
+ - Sufficient color contrast
542
+ - Keyboard navigation support
543
+ - Screen reader friendly
544
+
545
+ #### 4. **Responsive & Adaptive**
546
+ - Mobile-first approach
547
+ - Fluid layouts
548
+ - Touch-friendly interactions
549
+ - Progressive enhancement
550
+
551
+ #### 5. **Performance Conscious**
552
+ - Optimized images (WebP, AVIF)
553
+ - Lazy loading
554
+ - Minimal animations
555
+ - Fast page loads
556
+
557
+ ### Visual Style
558
+
559
+ #### **Glass morphism** (Subtle)
560
+ ```css
561
+ bg-background/60 backdrop-blur-sm border-border/50
562
+ ```
563
+
564
+ #### **Neumorphism** (Minimal)
565
+ Used sparingly for depth, primarily through shadows
566
+
567
+ #### **Flat Design 2.0**
568
+ Primary style - flat with subtle depth cues
569
+
570
+ ### Whitespace Usage
571
+ - **Generous spacing** between sections (48-64px)
572
+ - **Comfortable padding** in containers (16-32px)
573
+ - **Breathing room** around text and UI elements
574
+ - **Visual separation** through space, not just lines
575
+
576
+ ---
577
+
578
+ ## 🎭 Brand Voice & Tone
579
+
580
+ ### Visual Tone
581
+ - **Professional** yet approachable
582
+ - **Modern** and cutting-edge
583
+ - **Confident** without arrogance
584
+ - **Clean** and sophisticated
585
+
586
+ ### Key Brand Attributes
587
+ 1. **Fast** - Emphasize speed and efficiency
588
+ 2. **Reliable** - Convey stability and trust
589
+ 3. **Powerful** - Showcase capabilities
590
+ 4. **Simple** - Maintain ease of use
591
+
592
+ ---
593
+
594
+ ## 📱 Component Usage Guidelines
595
+
596
+ ### When to Use Gradients
597
+
598
+ ✅ **DO Use:**
599
+ - Primary CTAs (Deploy, Upgrade, etc.)
600
+ - Hero sections and landing pages
601
+ - Brand moments and highlights
602
+ - Premium features
603
+
604
+ ❌ **DON'T Use:**
605
+ - Regular text content
606
+ - Every button
607
+ - Dense data tables
608
+ - Form inputs
609
+
610
+ ### When to Use Shadows
611
+
612
+ ✅ **DO Use:**
613
+ - Cards and containers
614
+ - Modals and dialogs
615
+ - Floating action buttons
616
+ - Dropdown menus
617
+
618
+ ❌ **DON'T Use:**
619
+ - Body text
620
+ - List items
621
+ - Table rows
622
+ - Inline elements
623
+
624
+ ### Color Accessibility
625
+
626
+ #### Contrast Ratios
627
+ - **Normal text** (16px+): 4.5:1 minimum
628
+ - **Large text** (24px+): 3:1 minimum
629
+ - **UI elements**: 3:1 minimum
630
+
631
+ #### Testing
632
+ ```typescript
633
+ // Primary on background (Light)
634
+ hsl(221.2, 83.2%, 53.3%) on hsl(0, 0%, 100%) = 4.98:1 ✅
635
+
636
+ // Muted text on background (Light)
637
+ hsl(215.4, 16.3%, 46.9%) on hsl(0, 0%, 100%) = 4.63:1 ✅
638
+ ```
639
+
640
+ ---
641
+
642
+ ## 🧩 Reusable Patterns
643
+
644
+ ### Loading States
645
+ ```typescript
646
+ {isLoading ? (
647
+ <div className="flex items-center justify-center py-8">
648
+ <Loader2 className="h-8 w-8 animate-spin text-primary" />
649
+ </div>
650
+ ) : (
651
+ <Content />
652
+ )}
653
+ ```
654
+
655
+ ### Empty States
656
+ ```typescript
657
+ <div className="text-center py-12">
658
+ <Icon className="h-12 w-12 text-muted-foreground mx-auto mb-4" />
659
+ <h3 className="text-lg font-semibold mb-2">No items found</h3>
660
+ <p className="text-muted-foreground mb-4">
661
+ Get started by creating your first item.
662
+ </p>
663
+ <Button className="nitrocloud-gradient">
664
+ Create Item
665
+ </Button>
666
+ </div>
667
+ ```
668
+
669
+ ### Error States
670
+ ```typescript
671
+ <div className="rounded-md bg-destructive/10 border border-destructive/20 p-4">
672
+ <div className="flex items-start gap-3">
673
+ <AlertCircle className="h-5 w-5 text-destructive flex-shrink-0 mt-0.5" />
674
+ <div>
675
+ <h4 className="font-semibold text-destructive mb-1">Error Title</h4>
676
+ <p className="text-sm text-destructive/90">Error message details</p>
677
+ </div>
678
+ </div>
679
+ </div>
680
+ ```
681
+
682
+ ### Success States
683
+ ```typescript
684
+ <div className="rounded-md bg-emerald-500/10 border border-emerald-500/20 p-4">
685
+ <div className="flex items-center gap-2">
686
+ <CheckCircle2 className="h-5 w-5 text-emerald-600" />
687
+ <p className="text-sm text-emerald-600 dark:text-emerald-400">
688
+ Success message
689
+ </p>
690
+ </div>
691
+ </div>
692
+ ```
693
+
694
+ ---
695
+
696
+ ## 🔧 Utility Classes Reference
697
+
698
+ ### Custom Utilities (globals.css)
699
+
700
+ ```css
701
+ /* Brand Gradient */
702
+ .nitrocloud-gradient
703
+ .nitrocloud-text-gradient
704
+
705
+ /* Scrollbars */
706
+ .custom-scrollbar
707
+
708
+ /* Mobile Fixes */
709
+ .h-screen (iOS fix included)
710
+ ```
711
+
712
+ ### Common Class Combinations
713
+
714
+ ```css
715
+ /* Card Container */
716
+ .border-0 .shadow-2xl .rounded-lg
717
+
718
+ /* Page Section */
719
+ .container .mx-auto .px-4 .py-8
720
+
721
+ /* Flex Center */
722
+ .flex .items-center .justify-center
723
+
724
+ /* Text Muted */
725
+ .text-sm .text-muted-foreground
726
+
727
+ /* Interactive Element */
728
+ .transition-colors .hover:opacity-80 .cursor-pointer
729
+
730
+ /* Glass Effect */
731
+ .bg-background/60 .backdrop-blur-sm .border-border/50
732
+ ```
733
+
734
+ ---
735
+
736
+ ## 📖 Best Practices
737
+
738
+ ### DO's
739
+ ✅ Use semantic color variables (--primary, --foreground, etc.)
740
+ ✅ Maintain consistent spacing with Tailwind scale
741
+ ✅ Apply `.nitrocloud-gradient` for premium CTAs
742
+ ✅ Use Lucide icons for consistency
743
+ ✅ Follow mobile-first responsive design
744
+ ✅ Include loading and empty states
745
+ ✅ Test in both light and dark modes
746
+ ✅ Use Inter font throughout
747
+ ✅ Apply proper heading hierarchy (h1 → h2 → h3)
748
+
749
+ ### DON'Ts
750
+ ❌ Don't use arbitrary color values (use CSS variables)
751
+ ❌ Don't mix different icon libraries
752
+ ❌ Don't override font family
753
+ ❌ Don't use inline styles (use Tailwind classes)
754
+ ❌ Don't create inconsistent spacing
755
+ ❌ Don't forget dark mode variants
756
+ ❌ Don't use too many different shadows
757
+ ❌ Don't overuse animations
758
+
759
+ ---
760
+
761
+ ## 🚀 Quick Start Checklist
762
+
763
+ When creating a new page or component:
764
+
765
+ - [ ] Use Inter font (inherited from layout)
766
+ - [ ] Support both light and dark modes
767
+ - [ ] Apply proper semantic colors (--primary, --foreground, etc.)
768
+ - [ ] Use `.nitrocloud-gradient` for primary CTAs
769
+ - [ ] Include responsive breakpoints (mobile-first)
770
+ - [ ] Add loading, error, and empty states
771
+ - [ ] Use Lucide icons (h-5 w-5 for default)
772
+ - [ ] Apply proper spacing (space-y-4, space-y-6, etc.)
773
+ - [ ] Use Card components for containers
774
+ - [ ] Test keyboard navigation
775
+ - [ ] Verify color contrast (4.5:1 minimum)
776
+ - [ ] Add hover states for interactive elements
777
+
778
+ ---
779
+
780
+ ## 📚 Component Library
781
+
782
+ **UI Framework**: Custom components built on [Radix UI](https://www.radix-ui.com/) + [Tailwind CSS](https://tailwindcss.com/)
783
+
784
+ **Component Location**: `/components/ui/`
785
+
786
+ **Available Components**:
787
+ - Button, Card, Badge, Input, Label
788
+ - Select, Tabs, Dialog, Alert Dialog
789
+ - Dropdown Menu, Progress, Separator, Switch
790
+
791
+ ---
792
+
793
+ ## 🎯 Success Metrics
794
+
795
+ A well-branded component should:
796
+ 1. **Feel familiar** - Consistent with existing design
797
+ 2. **Look professional** - Polished and modern
798
+ 3. **Be accessible** - WCAG compliant
799
+ 4. **Work everywhere** - Responsive and cross-browser
800
+ 5. **Load fast** - Optimized performance
801
+
802
+ ---
803
+
804
+ **Last Updated**: 2025-11-16
805
+ **Version**: 1.0
806
+ **Maintained by**: Nitrocloud Design Team
807
+ **Questions?**: Refer to existing components in `/components/` and `/app/` directories