@qubiit/lmagent 2.5.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.
Files changed (155) hide show
  1. package/.editorconfig +18 -0
  2. package/AGENTS.md +169 -0
  3. package/CLAUDE.md +122 -0
  4. package/CONTRIBUTING.md +90 -0
  5. package/LICENSE +21 -0
  6. package/README.md +195 -0
  7. package/config/commands.yaml +194 -0
  8. package/config/levels.yaml +135 -0
  9. package/config/models.yaml +192 -0
  10. package/config/settings.yaml +405 -0
  11. package/config/tools-extended.yaml +534 -0
  12. package/config/tools.yaml +437 -0
  13. package/docs/assets/logo.png +0 -0
  14. package/docs/commands.md +132 -0
  15. package/docs/customization-guide.md +445 -0
  16. package/docs/getting-started.md +154 -0
  17. package/docs/how-to-start.md +242 -0
  18. package/docs/navigation-index.md +227 -0
  19. package/docs/usage-guide.md +113 -0
  20. package/install.js +1044 -0
  21. package/package.json +35 -0
  22. package/pyproject.toml +182 -0
  23. package/rules/_bootstrap.md +138 -0
  24. package/rules/agents-ia.md +607 -0
  25. package/rules/api-design.md +337 -0
  26. package/rules/automations-n8n.md +646 -0
  27. package/rules/code-style.md +570 -0
  28. package/rules/documentation.md +98 -0
  29. package/rules/security.md +316 -0
  30. package/rules/stack.md +395 -0
  31. package/rules/testing.md +326 -0
  32. package/rules/workflow.md +353 -0
  33. package/scripts/create_skill.js +300 -0
  34. package/scripts/validate_skills.js +283 -0
  35. package/skills/ai-agent-engineer/SKILL.md +394 -0
  36. package/skills/ai-agent-engineer/references/agent-patterns.md +149 -0
  37. package/skills/api-designer/SKILL.md +429 -0
  38. package/skills/api-designer/references/api-standards.md +13 -0
  39. package/skills/architect/SKILL.md +285 -0
  40. package/skills/architect/references/c4-model.md +133 -0
  41. package/skills/automation-engineer/SKILL.md +352 -0
  42. package/skills/automation-engineer/references/n8n-patterns.md +127 -0
  43. package/skills/backend-engineer/SKILL.md +261 -0
  44. package/skills/backend-engineer/assets/fastapi-project-structure.yaml +74 -0
  45. package/skills/backend-engineer/references/debugging-guide.md +174 -0
  46. package/skills/backend-engineer/references/design-patterns.md +208 -0
  47. package/skills/backend-engineer/scripts/scaffold_backend.py +313 -0
  48. package/skills/bmad-methodology/SKILL.md +202 -0
  49. package/skills/bmad-methodology/references/scale-adaptive-levels.md +141 -0
  50. package/skills/browser-agent/SKILL.md +502 -0
  51. package/skills/browser-agent/scripts/playwright_setup.ts +16 -0
  52. package/skills/code-reviewer/SKILL.md +306 -0
  53. package/skills/code-reviewer/references/code-review-checklist.md +16 -0
  54. package/skills/data-engineer/SKILL.md +474 -0
  55. package/skills/data-engineer/assets/pg-monitoring-queries.sql +154 -0
  56. package/skills/data-engineer/references/index-strategy.md +128 -0
  57. package/skills/data-engineer/scripts/backup_postgres.py +221 -0
  58. package/skills/devops-engineer/SKILL.md +547 -0
  59. package/skills/devops-engineer/references/ci-cd-patterns.md +265 -0
  60. package/skills/devops-engineer/scripts/docker_healthcheck.py +125 -0
  61. package/skills/document-generator/SKILL.md +746 -0
  62. package/skills/document-generator/references/pdf-generation.md +22 -0
  63. package/skills/frontend-engineer/SKILL.md +532 -0
  64. package/skills/frontend-engineer/references/accessibility-guide.md +146 -0
  65. package/skills/frontend-engineer/scripts/audit_bundle.py +144 -0
  66. package/skills/git-workflow/SKILL.md +374 -0
  67. package/skills/git-workflow/references/git-flow.md +25 -0
  68. package/skills/mcp-builder/SKILL.md +471 -0
  69. package/skills/mcp-builder/references/mcp-server-guide.md +23 -0
  70. package/skills/mobile-engineer/SKILL.md +502 -0
  71. package/skills/mobile-engineer/references/platform-guidelines.md +160 -0
  72. package/skills/orchestrator/SKILL.md +246 -0
  73. package/skills/orchestrator/references/methodology-routing.md +117 -0
  74. package/skills/orchestrator/references/persona-mapping.md +85 -0
  75. package/skills/orchestrator/references/routing-logic.md +110 -0
  76. package/skills/performance-engineer/SKILL.md +549 -0
  77. package/skills/performance-engineer/references/caching-patterns.md +181 -0
  78. package/skills/performance-engineer/scripts/profile_endpoint.py +170 -0
  79. package/skills/product-manager/SKILL.md +488 -0
  80. package/skills/product-manager/references/prioritization-frameworks.md +126 -0
  81. package/skills/prompt-engineer/SKILL.md +433 -0
  82. package/skills/prompt-engineer/references/prompt-patterns.md +158 -0
  83. package/skills/qa-engineer/SKILL.md +441 -0
  84. package/skills/qa-engineer/references/testing-strategy.md +166 -0
  85. package/skills/qa-engineer/scripts/run_coverage.py +147 -0
  86. package/skills/scrum-master/SKILL.md +225 -0
  87. package/skills/scrum-master/references/sprint-ceremonies.md +159 -0
  88. package/skills/security-analyst/SKILL.md +390 -0
  89. package/skills/security-analyst/references/owasp-top10.md +188 -0
  90. package/skills/security-analyst/scripts/audit_security.py +242 -0
  91. package/skills/seo-auditor/SKILL.md +523 -0
  92. package/skills/seo-auditor/references/seo-checklist.md +17 -0
  93. package/skills/spec-driven-dev/SKILL.md +342 -0
  94. package/skills/spec-driven-dev/references/phase-gates.md +107 -0
  95. package/skills/supabase-expert/SKILL.md +602 -0
  96. package/skills/supabase-expert/references/supabase-patterns.md +19 -0
  97. package/skills/swe-agent/SKILL.md +311 -0
  98. package/skills/swe-agent/references/trajectory-format.md +134 -0
  99. package/skills/systematic-debugger/SKILL.md +512 -0
  100. package/skills/systematic-debugger/references/debugging-guide.md +12 -0
  101. package/skills/tech-lead/SKILL.md +409 -0
  102. package/skills/tech-lead/references/code-review-checklist.md +111 -0
  103. package/skills/technical-writer/SKILL.md +631 -0
  104. package/skills/technical-writer/references/doc-templates.md +218 -0
  105. package/skills/testing-strategist/SKILL.md +476 -0
  106. package/skills/testing-strategist/references/testing-pyramid.md +16 -0
  107. package/skills/ux-ui-designer/SKILL.md +419 -0
  108. package/skills/ux-ui-designer/references/design-system-foundation.md +168 -0
  109. package/skills_overview.txt +94 -0
  110. package/templates/PROJECT_KICKOFF.md +284 -0
  111. package/templates/SKILL_TEMPLATE.md +131 -0
  112. package/templates/USAGE.md +95 -0
  113. package/templates/agent-python/README.md +71 -0
  114. package/templates/agent-python/agent.py +272 -0
  115. package/templates/agent-python/config.yaml +76 -0
  116. package/templates/agent-python/prompts/system.md +109 -0
  117. package/templates/agent-python/requirements.txt +7 -0
  118. package/templates/automation-n8n/README.md +14 -0
  119. package/templates/automation-n8n/webhook-handler.json +57 -0
  120. package/templates/backend-node/Dockerfile +12 -0
  121. package/templates/backend-node/README.md +15 -0
  122. package/templates/backend-node/package.json +30 -0
  123. package/templates/backend-node/src/index.ts +19 -0
  124. package/templates/backend-node/src/routes.ts +7 -0
  125. package/templates/backend-node/tsconfig.json +22 -0
  126. package/templates/backend-python/Dockerfile +11 -0
  127. package/templates/backend-python/README.md +78 -0
  128. package/templates/backend-python/app/core/config.py +12 -0
  129. package/templates/backend-python/app/core/database.py +12 -0
  130. package/templates/backend-python/app/main.py +17 -0
  131. package/templates/backend-python/app/routers/__init__.py +1 -0
  132. package/templates/backend-python/app/routers/health.py +7 -0
  133. package/templates/backend-python/requirements-dev.txt +6 -0
  134. package/templates/backend-python/requirements.txt +4 -0
  135. package/templates/backend-python/tests/test_health.py +9 -0
  136. package/templates/checkpoint.yaml +117 -0
  137. package/templates/database/README.md +474 -0
  138. package/templates/frontend-react/README.md +446 -0
  139. package/templates/plan.yaml +320 -0
  140. package/templates/session.yaml +125 -0
  141. package/templates/spec.yaml +229 -0
  142. package/templates/tasks.yaml +330 -0
  143. package/workflows/bugfix-backend.md +380 -0
  144. package/workflows/documentation.md +232 -0
  145. package/workflows/generate-prd.md +320 -0
  146. package/workflows/ideation.md +396 -0
  147. package/workflows/new-agent-ia.md +497 -0
  148. package/workflows/new-automation.md +374 -0
  149. package/workflows/new-feature.md +290 -0
  150. package/workflows/optimize-performance.md +373 -0
  151. package/workflows/resolve-github-issue.md +524 -0
  152. package/workflows/security-review.md +291 -0
  153. package/workflows/spec-driven.md +476 -0
  154. package/workflows/testing-strategy.md +296 -0
  155. package/workflows/third-party-integration.md +277 -0
@@ -0,0 +1,446 @@
1
+ # LMAgent Frontend React/Next.js Template
2
+
3
+ Template de proyecto frontend moderno con React/Next.js siguiendo las mejores prácticas de UI/UX.
4
+
5
+ ## 🎨 Inspiración de Diseño
6
+
7
+ Este template sigue principios de diseño modernos inspirados en:
8
+ - **[Dribbble](https://dribbble.com/)** - Para tendencias visuales
9
+ - **[Awwwards](https://www.awwwards.com/)** - Para sitios premiados
10
+ - **Material Design 3** - Sistema de diseño de Google
11
+ - **Shadcn/UI** - Componentes accesibles
12
+
13
+ ## Estructura del Proyecto
14
+
15
+ ```
16
+ frontend/
17
+ ├── app/ # App Router (Next.js 14+)
18
+ │ ├── (auth)/ # Grupo de rutas auth
19
+ │ │ ├── login/
20
+ │ │ └── register/
21
+ │ ├── (dashboard)/ # Grupo dashboard
22
+ │ │ ├── layout.tsx
23
+ │ │ └── page.tsx
24
+ │ ├── globals.css # Estilos globales
25
+ │ ├── layout.tsx # Layout raíz
26
+ │ └── page.tsx # Home
27
+
28
+ ├── components/ # Componentes reutilizables
29
+ │ ├── ui/ # Primitivos UI (shadcn style)
30
+ │ │ ├── button.tsx
31
+ │ │ ├── card.tsx
32
+ │ │ ├── input.tsx
33
+ │ │ ├── modal.tsx
34
+ │ │ └── ...
35
+ │ ├── layout/ # Componentes de layout
36
+ │ │ ├── header.tsx
37
+ │ │ ├── sidebar.tsx
38
+ │ │ └── footer.tsx
39
+ │ ├── features/ # Componentes por feature
40
+ │ │ ├── auth/
41
+ │ │ └── dashboard/
42
+ │ └── shared/ # Componentes compartidos
43
+
44
+ ├── lib/ # Utilidades
45
+ │ ├── api.ts # Cliente API
46
+ │ ├── auth.ts # Utilidades auth
47
+ │ ├── utils.ts # Helpers
48
+ │ └── cn.ts # classnames utility
49
+
50
+ ├── hooks/ # Custom hooks
51
+ │ ├── use-auth.ts
52
+ │ ├── use-media-query.ts
53
+ │ └── use-theme.ts
54
+
55
+ ├── styles/ # Estilos adicionales
56
+ │ ├── tokens.css # Design tokens
57
+ │ └── animations.css # Animaciones
58
+
59
+ ├── types/ # TypeScript types
60
+ │ └── index.ts
61
+
62
+ ├── public/ # Assets estáticos
63
+ │ ├── fonts/
64
+ │ ├── images/
65
+ │ └── icons/
66
+
67
+ ├── tailwind.config.ts # Config Tailwind
68
+ ├── next.config.js # Config Next.js
69
+ ├── tsconfig.json # Config TypeScript
70
+ └── package.json
71
+ ```
72
+
73
+ ## Quick Start
74
+
75
+ ```bash
76
+ # Crear proyecto con este template
77
+ npx create-next-app@latest my-app --typescript --tailwind --eslint --app
78
+
79
+ # Instalar dependencias adicionales
80
+ npm install @radix-ui/react-dialog @radix-ui/react-dropdown-menu
81
+ npm install class-variance-authority clsx tailwind-merge
82
+ npm install lucide-react
83
+ npm install framer-motion
84
+
85
+ # Dev dependencies
86
+ npm install -D @types/node prettier prettier-plugin-tailwindcss
87
+ ```
88
+
89
+ ## 🎨 Sistema de Diseño
90
+
91
+ ### Design Tokens (CSS Variables)
92
+
93
+ ```css
94
+ /* styles/tokens.css */
95
+ :root {
96
+ /* Colors - Palette moderna */
97
+ --color-primary: 220 90% 56%;
98
+ --color-primary-foreground: 0 0% 100%;
99
+
100
+ --color-secondary: 270 60% 50%;
101
+ --color-secondary-foreground: 0 0% 100%;
102
+
103
+ --color-accent: 340 82% 52%;
104
+ --color-accent-foreground: 0 0% 100%;
105
+
106
+ --color-background: 0 0% 100%;
107
+ --color-foreground: 222 47% 11%;
108
+
109
+ --color-muted: 210 40% 96%;
110
+ --color-muted-foreground: 215 16% 47%;
111
+
112
+ --color-card: 0 0% 100%;
113
+ --color-card-foreground: 222 47% 11%;
114
+
115
+ --color-border: 214 32% 91%;
116
+ --color-ring: 220 90% 56%;
117
+
118
+ /* Dark mode */
119
+ --color-background-dark: 222 47% 11%;
120
+ --color-foreground-dark: 210 40% 98%;
121
+
122
+ /* Spacing */
123
+ --spacing-xs: 0.25rem;
124
+ --spacing-sm: 0.5rem;
125
+ --spacing-md: 1rem;
126
+ --spacing-lg: 1.5rem;
127
+ --spacing-xl: 2rem;
128
+ --spacing-2xl: 3rem;
129
+
130
+ /* Border radius */
131
+ --radius-sm: 0.25rem;
132
+ --radius-md: 0.5rem;
133
+ --radius-lg: 0.75rem;
134
+ --radius-xl: 1rem;
135
+ --radius-full: 9999px;
136
+
137
+ /* Typography */
138
+ --font-sans: 'Inter', system-ui, sans-serif;
139
+ --font-mono: 'JetBrains Mono', monospace;
140
+
141
+ /* Shadows */
142
+ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
143
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
144
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
145
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1);
146
+
147
+ /* Animations */
148
+ --transition-fast: 150ms;
149
+ --transition-base: 200ms;
150
+ --transition-slow: 300ms;
151
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
152
+ --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
153
+ }
154
+
155
+ .dark {
156
+ --color-background: var(--color-background-dark);
157
+ --color-foreground: var(--color-foreground-dark);
158
+ /* ... resto de variables dark */
159
+ }
160
+ ```
161
+
162
+ ### Componentes UI Base
163
+
164
+ ```tsx
165
+ // components/ui/button.tsx
166
+ import { cva, type VariantProps } from 'class-variance-authority';
167
+ import { cn } from '@/lib/cn';
168
+
169
+ const buttonVariants = cva(
170
+ 'inline-flex items-center justify-center rounded-lg font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
171
+ {
172
+ variants: {
173
+ variant: {
174
+ default: 'bg-primary text-primary-foreground hover:bg-primary/90 shadow-md hover:shadow-lg',
175
+ secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/90',
176
+ outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
177
+ ghost: 'hover:bg-accent hover:text-accent-foreground',
178
+ destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
179
+ gradient: 'bg-gradient-to-r from-primary to-secondary text-white shadow-lg hover:shadow-xl',
180
+ },
181
+ size: {
182
+ sm: 'h-8 px-3 text-sm',
183
+ md: 'h-10 px-4',
184
+ lg: 'h-12 px-6 text-lg',
185
+ icon: 'h-10 w-10',
186
+ },
187
+ },
188
+ defaultVariants: {
189
+ variant: 'default',
190
+ size: 'md',
191
+ },
192
+ }
193
+ );
194
+
195
+ interface ButtonProps
196
+ extends React.ButtonHTMLAttributes<HTMLButtonElement>,
197
+ VariantProps<typeof buttonVariants> {}
198
+
199
+ export function Button({ className, variant, size, ...props }: ButtonProps) {
200
+ return (
201
+ <button
202
+ className={cn(buttonVariants({ variant, size, className }))}
203
+ {...props}
204
+ />
205
+ );
206
+ }
207
+ ```
208
+
209
+ ### Animaciones Modernas
210
+
211
+ ```css
212
+ /* styles/animations.css */
213
+
214
+ /* Fade in up - para entradas de contenido */
215
+ @keyframes fade-in-up {
216
+ from {
217
+ opacity: 0;
218
+ transform: translateY(20px);
219
+ }
220
+ to {
221
+ opacity: 1;
222
+ transform: translateY(0);
223
+ }
224
+ }
225
+
226
+ /* Slide in from right - para modales */
227
+ @keyframes slide-in-right {
228
+ from {
229
+ transform: translateX(100%);
230
+ }
231
+ to {
232
+ transform: translateX(0);
233
+ }
234
+ }
235
+
236
+ /* Scale up - para hover effects */
237
+ @keyframes scale-up {
238
+ from {
239
+ transform: scale(0.95);
240
+ opacity: 0;
241
+ }
242
+ to {
243
+ transform: scale(1);
244
+ opacity: 1;
245
+ }
246
+ }
247
+
248
+ /* Shimmer - para loading states */
249
+ @keyframes shimmer {
250
+ 0% {
251
+ background-position: -200% 0;
252
+ }
253
+ 100% {
254
+ background-position: 200% 0;
255
+ }
256
+ }
257
+
258
+ /* Utility classes */
259
+ .animate-fade-in-up {
260
+ animation: fade-in-up 0.5s var(--ease-out) forwards;
261
+ }
262
+
263
+ .animate-slide-in-right {
264
+ animation: slide-in-right 0.3s var(--ease-out) forwards;
265
+ }
266
+
267
+ .animate-scale-up {
268
+ animation: scale-up 0.2s var(--ease-out) forwards;
269
+ }
270
+
271
+ .skeleton {
272
+ background: linear-gradient(
273
+ 90deg,
274
+ hsl(var(--color-muted)) 25%,
275
+ hsl(var(--color-muted-foreground) / 0.1) 50%,
276
+ hsl(var(--color-muted)) 75%
277
+ );
278
+ background-size: 200% 100%;
279
+ animation: shimmer 1.5s infinite;
280
+ }
281
+
282
+ /* Hover effects */
283
+ .hover-lift {
284
+ transition: transform var(--transition-base) var(--ease-out),
285
+ box-shadow var(--transition-base) var(--ease-out);
286
+ }
287
+
288
+ .hover-lift:hover {
289
+ transform: translateY(-4px);
290
+ box-shadow: var(--shadow-xl);
291
+ }
292
+
293
+ /* Glassmorphism */
294
+ .glass {
295
+ background: rgba(255, 255, 255, 0.1);
296
+ backdrop-filter: blur(10px);
297
+ -webkit-backdrop-filter: blur(10px);
298
+ border: 1px solid rgba(255, 255, 255, 0.2);
299
+ }
300
+
301
+ /* Gradient text */
302
+ .gradient-text {
303
+ background: linear-gradient(135deg, hsl(var(--color-primary)), hsl(var(--color-secondary)));
304
+ -webkit-background-clip: text;
305
+ -webkit-text-fill-color: transparent;
306
+ background-clip: text;
307
+ }
308
+ ```
309
+
310
+ ## 🎯 Patrones de Diseño (Dribbble-Inspired)
311
+
312
+ ### 1. Hero Section Moderna
313
+
314
+ ```tsx
315
+ // components/features/landing/hero.tsx
316
+ export function Hero() {
317
+ return (
318
+ <section className="relative min-h-screen overflow-hidden bg-gradient-to-br from-background via-background to-primary/5">
319
+ {/* Decorative elements */}
320
+ <div className="absolute inset-0 overflow-hidden">
321
+ <div className="absolute -top-1/2 -right-1/4 h-[800px] w-[800px] rounded-full bg-primary/10 blur-3xl" />
322
+ <div className="absolute -bottom-1/2 -left-1/4 h-[600px] w-[600px] rounded-full bg-secondary/10 blur-3xl" />
323
+ </div>
324
+
325
+ <div className="container relative z-10 mx-auto px-4 py-20 lg:py-32">
326
+ <div className="mx-auto max-w-4xl text-center">
327
+ {/* Badge */}
328
+ <div className="mb-6 inline-flex items-center rounded-full border border-primary/20 bg-primary/5 px-4 py-1.5 text-sm text-primary animate-fade-in-up">
329
+ ✨ Nuevo lanzamiento v2.0
330
+ </div>
331
+
332
+ {/* Heading */}
333
+ <h1 className="mb-6 text-5xl font-bold tracking-tight sm:text-6xl lg:text-7xl animate-fade-in-up [animation-delay:100ms]">
334
+ Build products with{' '}
335
+ <span className="gradient-text">AI-powered</span>{' '}
336
+ automation
337
+ </h1>
338
+
339
+ {/* Subtitle */}
340
+ <p className="mb-10 text-xl text-muted-foreground animate-fade-in-up [animation-delay:200ms]">
341
+ The complete framework for developing intelligent agents
342
+ and automated workflows
343
+ </p>
344
+
345
+ {/* CTAs */}
346
+ <div className="flex flex-col items-center gap-4 sm:flex-row sm:justify-center animate-fade-in-up [animation-delay:300ms]">
347
+ <Button size="lg" variant="gradient" className="w-full sm:w-auto">
348
+ Get Started Free
349
+ </Button>
350
+ <Button size="lg" variant="outline" className="w-full sm:w-auto">
351
+ View Demo
352
+ </Button>
353
+ </div>
354
+ </div>
355
+ </div>
356
+ </section>
357
+ );
358
+ }
359
+ ```
360
+
361
+ ### 2. Cards con Hover Effect
362
+
363
+ ```tsx
364
+ // components/ui/feature-card.tsx
365
+ export function FeatureCard({ icon, title, description }) {
366
+ return (
367
+ <div className="group relative overflow-hidden rounded-2xl border border-border bg-card p-6 hover-lift">
368
+ {/* Gradient overlay on hover */}
369
+ <div className="absolute inset-0 bg-gradient-to-br from-primary/5 to-secondary/5 opacity-0 transition-opacity group-hover:opacity-100" />
370
+
371
+ {/* Content */}
372
+ <div className="relative z-10">
373
+ <div className="mb-4 inline-flex h-12 w-12 items-center justify-center rounded-xl bg-primary/10 text-primary">
374
+ {icon}
375
+ </div>
376
+ <h3 className="mb-2 text-xl font-semibold">{title}</h3>
377
+ <p className="text-muted-foreground">{description}</p>
378
+ </div>
379
+ </div>
380
+ );
381
+ }
382
+ ```
383
+
384
+ ### 3. Dashboard Layout
385
+
386
+ ```tsx
387
+ // app/(dashboard)/layout.tsx
388
+ export default function DashboardLayout({ children }) {
389
+ return (
390
+ <div className="flex min-h-screen bg-muted/30">
391
+ {/* Sidebar */}
392
+ <aside className="fixed left-0 top-0 z-40 h-screen w-64 border-r border-border bg-card">
393
+ <Sidebar />
394
+ </aside>
395
+
396
+ {/* Main content */}
397
+ <div className="ml-64 flex-1">
398
+ <Header />
399
+ <main className="p-6">
400
+ {children}
401
+ </main>
402
+ </div>
403
+ </div>
404
+ );
405
+ }
406
+ ```
407
+
408
+ ## 📱 Responsive Design
409
+
410
+ ```tsx
411
+ // Breakpoints en Tailwind config
412
+ const breakpoints = {
413
+ sm: '640px', // Mobile landscape
414
+ md: '768px', // Tablet
415
+ lg: '1024px', // Desktop
416
+ xl: '1280px', // Large desktop
417
+ '2xl': '1536px', // Extra large
418
+ };
419
+
420
+ // Ejemplo de grid responsive
421
+ <div className="grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
422
+ {items.map(item => <Card key={item.id} {...item} />)}
423
+ </div>
424
+ ```
425
+
426
+ ## 📚 Recursos de Diseño
427
+
428
+ - [Dribbble](https://dribbble.com/) - Inspiración visual
429
+ - [Mobbin](https://mobbin.com/) - Patrones UI reales
430
+ - [Refero](https://refero.design/) - Referencias de SaaS
431
+ - [Shadcn/UI](https://ui.shadcn.com/) - Componentes accesibles
432
+ - [Radix UI](https://www.radix-ui.com/) - Primitivos headless
433
+
434
+ ## Checklist de UX/UI
435
+
436
+ - [ ] Sistema de tokens de diseño definido
437
+ - [ ] Dark mode implementado
438
+ - [ ] Componentes accesibles (WCAG 2.1)
439
+ - [ ] Animaciones suaves y con propósito
440
+ - [ ] Estados de loading (skeletons)
441
+ - [ ] Estados de error claros
442
+ - [ ] Feedback visual en interacciones
443
+ - [ ] Responsive en todos los breakpoints
444
+ - [ ] Tipografía legible
445
+ - [ ] Contraste adecuado
446
+ - [ ] Focus states visibles