@polymorphism-tech/morph-spec 4.10.9 → 4.11.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 (145) hide show
  1. package/CLAUDE.md +3 -3
  2. package/LICENSE +71 -71
  3. package/README.md +5 -11
  4. package/bin/morph-spec.js +23 -1
  5. package/bin/task-manager.js +5 -5
  6. package/claude-plugin.json +1 -1
  7. package/docs/CHEATSHEET.md +1 -1
  8. package/docs/QUICKSTART.md +2 -8
  9. package/framework/agents/README.md +14 -14
  10. package/framework/agents/architecture/standards-architect.md +159 -159
  11. package/framework/agents/frontend/css-specialist.md +1 -1
  12. package/framework/agents/infrastructure/azure-architect.md +149 -149
  13. package/framework/agents/infrastructure/azure-deploy-specialist.md +4 -4
  14. package/framework/agents/infrastructure/infra-architect.md +48 -48
  15. package/framework/commands/morph-apply.md +18 -18
  16. package/framework/commands/morph-preflight.md +3 -3
  17. package/framework/commands/morph-proposal.md +15 -15
  18. package/framework/commands/morph-status.md +3 -3
  19. package/framework/commands/morph-troubleshoot.md +1 -1
  20. package/framework/hooks/README.md +204 -204
  21. package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +2 -2
  22. package/framework/hooks/claude-code/session-start/inject-morph-context.js +1 -1
  23. package/framework/hooks/claude-code/teammate-idle/teammate-idle.js +3 -3
  24. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +2 -2
  25. package/framework/hooks/git/pre-commit/agents.sh +1 -1
  26. package/framework/hooks/shared/phase-utils.js +139 -139
  27. package/framework/rules/csharp-standards.md +13 -13
  28. package/framework/rules/frontend-standards.md +13 -13
  29. package/framework/rules/infrastructure-standards.md +16 -16
  30. package/framework/rules/testing-standards.md +14 -14
  31. package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +8 -8
  32. package/framework/skills/level-0-meta/morph-checklist/SKILL.md +3 -3
  33. package/framework/skills/level-0-meta/morph-code-review-nextjs/references/review-example-nextjs.md +254 -254
  34. package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +1 -1
  35. package/framework/skills/level-0-meta/morph-init/SKILL.md +11 -11
  36. package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +3 -3
  37. package/framework/skills/level-0-meta/morph-replicate/SKILL.md +1 -1
  38. package/framework/skills/level-0-meta/morph-simulation-checklist/SKILL.md +4 -4
  39. package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +25 -25
  40. package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +8 -8
  41. package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +7 -7
  42. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +4 -4
  43. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +23 -23
  44. package/framework/skills/level-1-workflows/morph-phase-design/references/architecture-analysis-guide.md +1 -1
  45. package/framework/skills/level-1-workflows/morph-phase-implement/.morph/logs/activity.json +38 -0
  46. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +29 -29
  47. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +4 -4
  48. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +9 -9
  49. package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +17 -17
  50. package/framework/skills/level-1-workflows/morph-phase-tasks/.morph/logs/activity.json +14 -0
  51. package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +12 -12
  52. package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +16 -16
  53. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +5 -5
  54. package/framework/standards/STANDARDS.json +2338 -2041
  55. package/framework/standards/frontend/nextjs/nextjs-patterns.md +17 -17
  56. package/framework/standards/infrastructure/supabase/supabase-custom-jwt.md +206 -0
  57. package/framework/templates/.idea/morph-templates.xml +92 -0
  58. package/framework/templates/.vscode/morph-templates.code-snippets +186 -0
  59. package/framework/templates/README.md +814 -814
  60. package/framework/templates/code/dotnet/contracts/Commands.cs +74 -74
  61. package/framework/templates/code/dotnet/contracts/Entities.cs +25 -25
  62. package/framework/templates/code/dotnet/contracts/Queries.cs +74 -74
  63. package/framework/templates/code/dotnet/contracts/README.md +74 -74
  64. package/framework/templates/code/dotnet/contracts/api-contracts.cs +173 -173
  65. package/framework/templates/code/dotnet/frontend/component.razor +239 -239
  66. package/framework/templates/code/dotnet/jobs/agent.cs +163 -163
  67. package/framework/templates/code/dotnet/jobs/job.cs +171 -171
  68. package/framework/templates/code/dotnet/test.cs +239 -239
  69. package/framework/templates/code/sql/rls-policy.sql +57 -57
  70. package/framework/templates/code/sql/supabase-migration.sql +100 -100
  71. package/framework/templates/code/sql/supabase-migration.template.sql +113 -113
  72. package/framework/templates/code/typescript/contracts.ts +168 -168
  73. package/framework/templates/context/CONTEXT.md +181 -181
  74. package/framework/templates/docs/proposal.md +182 -182
  75. package/framework/templates/docs/user-stories.md +34 -34
  76. package/framework/templates/examples/design-system-examples.md +357 -357
  77. package/framework/templates/examples/spec-examples.md +90 -90
  78. package/framework/templates/feature/decisions.md +187 -187
  79. package/framework/templates/feature/recap.md +146 -146
  80. package/framework/templates/feature/tasks.md +199 -199
  81. package/framework/templates/infrastructure/azure/README.md +286 -286
  82. package/framework/templates/infrastructure/azure/deploy-checklist.md +426 -426
  83. package/framework/templates/infrastructure/azure/parameters.dev.json +29 -29
  84. package/framework/templates/infrastructure/azure/parameters.prod.json +29 -29
  85. package/framework/templates/infrastructure/azure/parameters.staging.json +29 -29
  86. package/framework/templates/infrastructure/docker/docker-compose.template.yml +67 -67
  87. package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
  88. package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
  89. package/framework/templates/infrastructure/docker/easypanel.template.json +54 -54
  90. package/framework/workflows/README.md +18 -18
  91. package/framework/workflows/docs/enforcement-pipeline.md +1 -1
  92. package/framework/workflows/docs/full-morph.md +2 -2
  93. package/package.json +1 -1
  94. package/src/commands/agents/dispatch-agents.js +17 -0
  95. package/src/commands/agents/index.js +13 -13
  96. package/src/commands/agents/project-metrics.js +74 -0
  97. package/src/commands/project/doctor.js +3 -4
  98. package/src/commands/project/install-plugin-cmd.js +28 -28
  99. package/src/commands/project/setup-infra-cmd.js +12 -12
  100. package/src/commands/project/status.js +8 -1
  101. package/src/commands/scope/escalate.js +5 -3
  102. package/src/commands/standards/context-budget.js +89 -0
  103. package/src/commands/tasks/index.js +4 -4
  104. package/src/commands/templates/index.js +5 -5
  105. package/src/commands/utils/index.js +3 -3
  106. package/src/commands/validation/index.js +4 -4
  107. package/src/commands/validation/validate-feature.js +32 -3
  108. package/src/core/state/phase-state-machine.js +217 -217
  109. package/src/lib/agents/metrics-aggregator.js +56 -0
  110. package/src/lib/generators/design-system-generator.js +298 -298
  111. package/src/lib/generators/index.js +10 -10
  112. package/src/lib/generators/metadata-extractor.js +387 -387
  113. package/src/lib/stack-filter.js +65 -65
  114. package/src/lib/standards/digest-builder.js +57 -3
  115. package/src/lib/standards/index.js +7 -7
  116. package/src/lib/standards/standards-context-injector.js +302 -302
  117. package/src/lib/validators/architecture/architecture-validator.js +387 -387
  118. package/src/lib/validators/architecture/index.js +7 -7
  119. package/src/lib/validators/blazor/blazor-concurrency-analyzer.js +316 -316
  120. package/src/lib/validators/blazor/blazor-state-validator.js +279 -279
  121. package/src/lib/validators/blazor/blazor-validator.js +369 -369
  122. package/src/lib/validators/blazor/index.js +9 -9
  123. package/src/lib/validators/content/content-validator.js +287 -287
  124. package/src/lib/validators/content/index.js +7 -7
  125. package/src/lib/validators/contracts/index.js +7 -7
  126. package/src/lib/validators/css/css-validator.js +352 -352
  127. package/src/lib/validators/css/index.js +7 -7
  128. package/src/lib/validators/design-system/design-system-validator.js +231 -231
  129. package/src/lib/validators/design-system/index.js +7 -7
  130. package/src/lib/validators/nextjs/index.js +6 -6
  131. package/src/lib/validators/nextjs/next-component-validator.js +183 -183
  132. package/src/lib/validators/packages/index.js +7 -7
  133. package/src/lib/validators/packages/package-validator.js +360 -360
  134. package/src/lib/validators/shared/index.js +12 -12
  135. package/src/lib/validators/shared/issue-counter.js +18 -18
  136. package/src/lib/validators/shared/result-formatter.js +124 -124
  137. package/src/lib/validators/ui/index.js +7 -7
  138. package/src/lib/validators/ui/ui-contrast-validator.js +422 -422
  139. package/src/scripts/global-install.js +112 -58
  140. package/src/scripts/install-plugin.js +126 -126
  141. package/src/utils/claude-md-injector.js +90 -90
  142. package/src/utils/file-copier.js +200 -200
  143. package/src/utils/logger.js +32 -32
  144. package/src/utils/skills-installer.js +178 -178
  145. package/src/utils/version-checker.js +169 -175
@@ -1,357 +1,357 @@
1
- # Design System CSS Index Template
2
-
3
- > Template de indice estruturado para arquivos CSS grandes.
4
- > Copie este header para o inicio do seu `design-system.css`.
5
-
6
- ## Indice Padrao
7
-
8
- ```css
9
- /* ===========================================================================
10
- {PROJECT_NAME} Design System
11
- ===========================================================================
12
-
13
- Indice de Secoes
14
- ================
15
-
16
- 1-99: Tokens e Variaveis CSS
17
- 100-199: Reset e Base Styles
18
- 200-299: Tipografia
19
- 300-399: Layout e Containers
20
- 400-499: Componentes Base (buttons, inputs, cards)
21
- 500-599: Componentes Compostos (forms, tables, lists)
22
- 600-699: Navegacao (header, sidebar, footer, menus)
23
- 700-799: Paginas Especificas
24
- 800-849: Modais e Overlays
25
- 850-899: Animacoes e Keyframes
26
- 900-949: Responsivo e Media Queries
27
- 950-979: Utilities e Helpers
28
- 980-989: Overrides de Fluent UI / MudBlazor
29
- 990-999: Hotfixes e Temporarios
30
-
31
- Convencoes de Nomenclatura
32
- ==========================
33
-
34
- Prefixo por Pagina:
35
- - .home-* : Pagina inicial
36
- - .checkout-* : Pagina de checkout
37
- - .dashboard-* : Pagina de dashboard
38
- - .auth-* : Paginas de autenticacao
39
-
40
- Prefixo por Componente:
41
- - .btn-* : Botoes
42
- - .card-* : Cards
43
- - .modal-* : Modais
44
- - .form-* : Formularios
45
- - .nav-* : Navegacao
46
-
47
- Sufixos de Estado:
48
- - *--active : Estado ativo
49
- - *--disabled : Estado desabilitado
50
- - *--loading : Estado de loading
51
- - *--error : Estado de erro
52
-
53
- Validacao:
54
- morph-spec validate-css src/MyApp.Web
55
-
56
- =========================================================================== */
57
-
58
-
59
- /* ===========================================================================
60
- SECAO 1-99: TOKENS E VARIAVEIS CSS
61
- =========================================================================== */
62
-
63
- :root {
64
- /* Cores Primarias */
65
- --primary: #3b82f6;
66
- --primary-hover: #2563eb;
67
- --primary-active: #1d4ed8;
68
-
69
- /* Cores Secundarias */
70
- --secondary: #6b7280;
71
- --secondary-hover: #4b5563;
72
-
73
- /* Cores Semanticas */
74
- --success: #10b981;
75
- --warning: #f59e0b;
76
- --error: #ef4444;
77
- --info: #06b6d4;
78
-
79
- /* Neutros */
80
- --neutral-50: #f9fafb;
81
- --neutral-100: #f3f4f6;
82
- --neutral-200: #e5e7eb;
83
- --neutral-300: #d1d5db;
84
- --neutral-400: #9ca3af;
85
- --neutral-500: #6b7280;
86
- --neutral-600: #4b5563;
87
- --neutral-700: #374151;
88
- --neutral-800: #1f2937;
89
- --neutral-900: #111827;
90
-
91
- /* Tipografia */
92
- --font-family: 'Inter', system-ui, -apple-system, sans-serif;
93
- --font-family-mono: 'JetBrains Mono', monospace;
94
-
95
- --font-size-xs: 0.75rem; /* 12px */
96
- --font-size-sm: 0.875rem; /* 14px */
97
- --font-size-base: 1rem; /* 16px */
98
- --font-size-lg: 1.125rem; /* 18px */
99
- --font-size-xl: 1.25rem; /* 20px */
100
- --font-size-2xl: 1.5rem; /* 24px */
101
- --font-size-3xl: 1.875rem; /* 30px */
102
- --font-size-4xl: 2.25rem; /* 36px */
103
-
104
- /* Espacamento (base 4px) */
105
- --space-1: 0.25rem; /* 4px */
106
- --space-2: 0.5rem; /* 8px */
107
- --space-3: 0.75rem; /* 12px */
108
- --space-4: 1rem; /* 16px */
109
- --space-5: 1.25rem; /* 20px */
110
- --space-6: 1.5rem; /* 24px */
111
- --space-8: 2rem; /* 32px */
112
- --space-10: 2.5rem; /* 40px */
113
- --space-12: 3rem; /* 48px */
114
-
115
- /* Border Radius */
116
- --radius-sm: 0.25rem; /* 4px */
117
- --radius-md: 0.5rem; /* 8px */
118
- --radius-lg: 0.75rem; /* 12px */
119
- --radius-xl: 1rem; /* 16px */
120
- --radius-full: 9999px;
121
-
122
- /* Sombras */
123
- --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
124
- --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
125
- --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
126
- --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1);
127
-
128
- /* Transicoes */
129
- --transition-fast: 150ms ease;
130
- --transition-normal: 300ms ease;
131
- --transition-slow: 500ms ease;
132
-
133
- /* Z-Index */
134
- --z-dropdown: 1000;
135
- --z-sticky: 1020;
136
- --z-fixed: 1030;
137
- --z-modal-backdrop: 1040;
138
- --z-modal: 1050;
139
- --z-popover: 1060;
140
- --z-tooltip: 1070;
141
- }
142
-
143
-
144
- /* ===========================================================================
145
- SECAO 100-199: RESET E BASE STYLES
146
- =========================================================================== */
147
-
148
- /* ... */
149
-
150
-
151
- /* ===========================================================================
152
- SECAO 200-299: TIPOGRAFIA
153
- =========================================================================== */
154
-
155
- /* ... */
156
-
157
-
158
- /* ===========================================================================
159
- SECAO 300-399: LAYOUT E CONTAINERS
160
- =========================================================================== */
161
-
162
- .page-layout {
163
- min-height: 100vh;
164
- display: flex;
165
- flex-direction: column;
166
- }
167
-
168
- .page-content {
169
- flex: 1;
170
- padding: var(--space-6);
171
- }
172
-
173
- .container {
174
- width: 100%;
175
- max-width: 1280px;
176
- margin: 0 auto;
177
- padding: 0 var(--space-4);
178
- }
179
-
180
-
181
- /* ===========================================================================
182
- SECAO 400-499: COMPONENTES BASE
183
- =========================================================================== */
184
-
185
- /* Botoes */
186
- .btn-primary { /* ... */ }
187
- .btn-secondary { /* ... */ }
188
-
189
- /* Cards */
190
- .card { /* ... */ }
191
- .card-premium { /* ... */ }
192
-
193
- /* Inputs */
194
- .input { /* ... */ }
195
-
196
-
197
- /* ===========================================================================
198
- SECAO 500-599: COMPONENTES COMPOSTOS
199
- =========================================================================== */
200
-
201
- /* Forms */
202
- .form-group { /* ... */ }
203
- .form-label { /* ... */ }
204
-
205
- /* Tables */
206
- .data-table { /* ... */ }
207
-
208
-
209
- /* ===========================================================================
210
- SECAO 600-699: NAVEGACAO
211
- =========================================================================== */
212
-
213
- .page-header-nav { /* ... */ }
214
- .page-footer { /* ... */ }
215
- .sidebar { /* ... */ }
216
-
217
-
218
- /* ===========================================================================
219
- SECAO 700-799: PAGINAS ESPECIFICAS
220
- =========================================================================== */
221
-
222
- /* Home */
223
- .home-hero { /* ... */ }
224
- .home-features { /* ... */ }
225
-
226
- /* Checkout */
227
- .checkout-form { /* ... */ }
228
- .checkout-summary { /* ... */ }
229
-
230
-
231
- /* ===========================================================================
232
- SECAO 800-849: MODAIS E OVERLAYS
233
- =========================================================================== */
234
-
235
- .modal-overlay {
236
- position: fixed;
237
- inset: 0;
238
- background: rgba(0, 0, 0, 0.5);
239
- backdrop-filter: blur(4px);
240
- z-index: var(--z-modal-backdrop);
241
- }
242
-
243
- .modal-container {
244
- position: fixed;
245
- top: 50%;
246
- left: 50%;
247
- transform: translate(-50%, -50%);
248
- z-index: var(--z-modal);
249
- }
250
-
251
-
252
- /* ===========================================================================
253
- SECAO 850-899: ANIMACOES E KEYFRAMES
254
- =========================================================================== */
255
-
256
- @keyframes slideInUp {
257
- from {
258
- opacity: 0;
259
- transform: translateY(20px);
260
- }
261
- to {
262
- opacity: 1;
263
- transform: translateY(0);
264
- }
265
- }
266
-
267
- @keyframes scaleIn {
268
- from {
269
- opacity: 0;
270
- transform: scale(0.95);
271
- }
272
- to {
273
- opacity: 1;
274
- transform: scale(1);
275
- }
276
- }
277
-
278
- .animate-slideInUp {
279
- animation: slideInUp var(--transition-normal) forwards;
280
- }
281
-
282
- .animate-scaleIn {
283
- animation: scaleIn var(--transition-fast) forwards;
284
- }
285
-
286
- /* Stagger delays para animacoes em sequencia */
287
- .stagger-1 { animation-delay: 0.1s; }
288
- .stagger-2 { animation-delay: 0.2s; }
289
- .stagger-3 { animation-delay: 0.3s; }
290
- .stagger-4 { animation-delay: 0.4s; }
291
- .stagger-5 { animation-delay: 0.5s; }
292
-
293
-
294
- /* ===========================================================================
295
- SECAO 900-949: RESPONSIVO E MEDIA QUERIES
296
- =========================================================================== */
297
-
298
- @media (max-width: 768px) {
299
- /* Tablet e Mobile */
300
- }
301
-
302
- @media (max-width: 480px) {
303
- /* Mobile */
304
- }
305
-
306
-
307
- /* ===========================================================================
308
- SECAO 950-979: UTILITIES E HELPERS
309
- =========================================================================== */
310
-
311
- .sr-only {
312
- position: absolute;
313
- width: 1px;
314
- height: 1px;
315
- padding: 0;
316
- margin: -1px;
317
- overflow: hidden;
318
- clip: rect(0, 0, 0, 0);
319
- white-space: nowrap;
320
- border: 0;
321
- }
322
-
323
-
324
- /* ===========================================================================
325
- SECAO 980-989: OVERRIDES DE FLUENT UI / MUDBLAZOR
326
- =========================================================================== */
327
-
328
- /* Fluent UI overrides */
329
- .fluent-card {
330
- /* Customizacoes */
331
- }
332
-
333
-
334
- /* ===========================================================================
335
- SECAO 990-999: HOTFIXES E TEMPORARIOS
336
- =========================================================================== */
337
-
338
- /* TODO: Remover apos fix no componente X */
339
- ```
340
-
341
- ## Uso
342
-
343
- 1. Copie o header para o inicio do seu `design-system.css`
344
- 2. Substitua `{PROJECT_NAME}` pelo nome do seu projeto
345
- 3. Adicione suas classes CSS nas secoes apropriadas
346
- 4. Mantenha o indice atualizado conforme adiciona novas secoes
347
-
348
- ## Beneficios
349
-
350
- - **Navegacao rapida:** Use Ctrl+G (go to line) para pular para secoes
351
- - **Organizacao clara:** Cada tipo de componente em sua secao
352
- - **Facil manutencao:** Encontre onde adicionar novos estilos
353
- - **Evita conflitos:** Prefixos por pagina previnem colisoes
354
-
355
- ---
356
-
357
- *Template MORPH-SPEC by Polymorphism Tech*
1
+ # Design System CSS Index Template
2
+
3
+ > Template de indice estruturado para arquivos CSS grandes.
4
+ > Copie este header para o inicio do seu `design-system.css`.
5
+
6
+ ## Indice Padrao
7
+
8
+ ```css
9
+ /* ===========================================================================
10
+ {PROJECT_NAME} Design System
11
+ ===========================================================================
12
+
13
+ Indice de Secoes
14
+ ================
15
+
16
+ 1-99: Tokens e Variaveis CSS
17
+ 100-199: Reset e Base Styles
18
+ 200-299: Tipografia
19
+ 300-399: Layout e Containers
20
+ 400-499: Componentes Base (buttons, inputs, cards)
21
+ 500-599: Componentes Compostos (forms, tables, lists)
22
+ 600-699: Navegacao (header, sidebar, footer, menus)
23
+ 700-799: Paginas Especificas
24
+ 800-849: Modais e Overlays
25
+ 850-899: Animacoes e Keyframes
26
+ 900-949: Responsivo e Media Queries
27
+ 950-979: Utilities e Helpers
28
+ 980-989: Overrides de Fluent UI / MudBlazor
29
+ 990-999: Hotfixes e Temporarios
30
+
31
+ Convencoes de Nomenclatura
32
+ ==========================
33
+
34
+ Prefixo por Pagina:
35
+ - .home-* : Pagina inicial
36
+ - .checkout-* : Pagina de checkout
37
+ - .dashboard-* : Pagina de dashboard
38
+ - .auth-* : Paginas de autenticacao
39
+
40
+ Prefixo por Componente:
41
+ - .btn-* : Botoes
42
+ - .card-* : Cards
43
+ - .modal-* : Modais
44
+ - .form-* : Formularios
45
+ - .nav-* : Navegacao
46
+
47
+ Sufixos de Estado:
48
+ - *--active : Estado ativo
49
+ - *--disabled : Estado desabilitado
50
+ - *--loading : Estado de loading
51
+ - *--error : Estado de erro
52
+
53
+ Validacao:
54
+ morph-spec validate-css src/MyApp.Web
55
+
56
+ =========================================================================== */
57
+
58
+
59
+ /* ===========================================================================
60
+ SECAO 1-99: TOKENS E VARIAVEIS CSS
61
+ =========================================================================== */
62
+
63
+ :root {
64
+ /* Cores Primarias */
65
+ --primary: #3b82f6;
66
+ --primary-hover: #2563eb;
67
+ --primary-active: #1d4ed8;
68
+
69
+ /* Cores Secundarias */
70
+ --secondary: #6b7280;
71
+ --secondary-hover: #4b5563;
72
+
73
+ /* Cores Semanticas */
74
+ --success: #10b981;
75
+ --warning: #f59e0b;
76
+ --error: #ef4444;
77
+ --info: #06b6d4;
78
+
79
+ /* Neutros */
80
+ --neutral-50: #f9fafb;
81
+ --neutral-100: #f3f4f6;
82
+ --neutral-200: #e5e7eb;
83
+ --neutral-300: #d1d5db;
84
+ --neutral-400: #9ca3af;
85
+ --neutral-500: #6b7280;
86
+ --neutral-600: #4b5563;
87
+ --neutral-700: #374151;
88
+ --neutral-800: #1f2937;
89
+ --neutral-900: #111827;
90
+
91
+ /* Tipografia */
92
+ --font-family: 'Inter', system-ui, -apple-system, sans-serif;
93
+ --font-family-mono: 'JetBrains Mono', monospace;
94
+
95
+ --font-size-xs: 0.75rem; /* 12px */
96
+ --font-size-sm: 0.875rem; /* 14px */
97
+ --font-size-base: 1rem; /* 16px */
98
+ --font-size-lg: 1.125rem; /* 18px */
99
+ --font-size-xl: 1.25rem; /* 20px */
100
+ --font-size-2xl: 1.5rem; /* 24px */
101
+ --font-size-3xl: 1.875rem; /* 30px */
102
+ --font-size-4xl: 2.25rem; /* 36px */
103
+
104
+ /* Espacamento (base 4px) */
105
+ --space-1: 0.25rem; /* 4px */
106
+ --space-2: 0.5rem; /* 8px */
107
+ --space-3: 0.75rem; /* 12px */
108
+ --space-4: 1rem; /* 16px */
109
+ --space-5: 1.25rem; /* 20px */
110
+ --space-6: 1.5rem; /* 24px */
111
+ --space-8: 2rem; /* 32px */
112
+ --space-10: 2.5rem; /* 40px */
113
+ --space-12: 3rem; /* 48px */
114
+
115
+ /* Border Radius */
116
+ --radius-sm: 0.25rem; /* 4px */
117
+ --radius-md: 0.5rem; /* 8px */
118
+ --radius-lg: 0.75rem; /* 12px */
119
+ --radius-xl: 1rem; /* 16px */
120
+ --radius-full: 9999px;
121
+
122
+ /* Sombras */
123
+ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
124
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
125
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
126
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1);
127
+
128
+ /* Transicoes */
129
+ --transition-fast: 150ms ease;
130
+ --transition-normal: 300ms ease;
131
+ --transition-slow: 500ms ease;
132
+
133
+ /* Z-Index */
134
+ --z-dropdown: 1000;
135
+ --z-sticky: 1020;
136
+ --z-fixed: 1030;
137
+ --z-modal-backdrop: 1040;
138
+ --z-modal: 1050;
139
+ --z-popover: 1060;
140
+ --z-tooltip: 1070;
141
+ }
142
+
143
+
144
+ /* ===========================================================================
145
+ SECAO 100-199: RESET E BASE STYLES
146
+ =========================================================================== */
147
+
148
+ /* ... */
149
+
150
+
151
+ /* ===========================================================================
152
+ SECAO 200-299: TIPOGRAFIA
153
+ =========================================================================== */
154
+
155
+ /* ... */
156
+
157
+
158
+ /* ===========================================================================
159
+ SECAO 300-399: LAYOUT E CONTAINERS
160
+ =========================================================================== */
161
+
162
+ .page-layout {
163
+ min-height: 100vh;
164
+ display: flex;
165
+ flex-direction: column;
166
+ }
167
+
168
+ .page-content {
169
+ flex: 1;
170
+ padding: var(--space-6);
171
+ }
172
+
173
+ .container {
174
+ width: 100%;
175
+ max-width: 1280px;
176
+ margin: 0 auto;
177
+ padding: 0 var(--space-4);
178
+ }
179
+
180
+
181
+ /* ===========================================================================
182
+ SECAO 400-499: COMPONENTES BASE
183
+ =========================================================================== */
184
+
185
+ /* Botoes */
186
+ .btn-primary { /* ... */ }
187
+ .btn-secondary { /* ... */ }
188
+
189
+ /* Cards */
190
+ .card { /* ... */ }
191
+ .card-premium { /* ... */ }
192
+
193
+ /* Inputs */
194
+ .input { /* ... */ }
195
+
196
+
197
+ /* ===========================================================================
198
+ SECAO 500-599: COMPONENTES COMPOSTOS
199
+ =========================================================================== */
200
+
201
+ /* Forms */
202
+ .form-group { /* ... */ }
203
+ .form-label { /* ... */ }
204
+
205
+ /* Tables */
206
+ .data-table { /* ... */ }
207
+
208
+
209
+ /* ===========================================================================
210
+ SECAO 600-699: NAVEGACAO
211
+ =========================================================================== */
212
+
213
+ .page-header-nav { /* ... */ }
214
+ .page-footer { /* ... */ }
215
+ .sidebar { /* ... */ }
216
+
217
+
218
+ /* ===========================================================================
219
+ SECAO 700-799: PAGINAS ESPECIFICAS
220
+ =========================================================================== */
221
+
222
+ /* Home */
223
+ .home-hero { /* ... */ }
224
+ .home-features { /* ... */ }
225
+
226
+ /* Checkout */
227
+ .checkout-form { /* ... */ }
228
+ .checkout-summary { /* ... */ }
229
+
230
+
231
+ /* ===========================================================================
232
+ SECAO 800-849: MODAIS E OVERLAYS
233
+ =========================================================================== */
234
+
235
+ .modal-overlay {
236
+ position: fixed;
237
+ inset: 0;
238
+ background: rgba(0, 0, 0, 0.5);
239
+ backdrop-filter: blur(4px);
240
+ z-index: var(--z-modal-backdrop);
241
+ }
242
+
243
+ .modal-container {
244
+ position: fixed;
245
+ top: 50%;
246
+ left: 50%;
247
+ transform: translate(-50%, -50%);
248
+ z-index: var(--z-modal);
249
+ }
250
+
251
+
252
+ /* ===========================================================================
253
+ SECAO 850-899: ANIMACOES E KEYFRAMES
254
+ =========================================================================== */
255
+
256
+ @keyframes slideInUp {
257
+ from {
258
+ opacity: 0;
259
+ transform: translateY(20px);
260
+ }
261
+ to {
262
+ opacity: 1;
263
+ transform: translateY(0);
264
+ }
265
+ }
266
+
267
+ @keyframes scaleIn {
268
+ from {
269
+ opacity: 0;
270
+ transform: scale(0.95);
271
+ }
272
+ to {
273
+ opacity: 1;
274
+ transform: scale(1);
275
+ }
276
+ }
277
+
278
+ .animate-slideInUp {
279
+ animation: slideInUp var(--transition-normal) forwards;
280
+ }
281
+
282
+ .animate-scaleIn {
283
+ animation: scaleIn var(--transition-fast) forwards;
284
+ }
285
+
286
+ /* Stagger delays para animacoes em sequencia */
287
+ .stagger-1 { animation-delay: 0.1s; }
288
+ .stagger-2 { animation-delay: 0.2s; }
289
+ .stagger-3 { animation-delay: 0.3s; }
290
+ .stagger-4 { animation-delay: 0.4s; }
291
+ .stagger-5 { animation-delay: 0.5s; }
292
+
293
+
294
+ /* ===========================================================================
295
+ SECAO 900-949: RESPONSIVO E MEDIA QUERIES
296
+ =========================================================================== */
297
+
298
+ @media (max-width: 768px) {
299
+ /* Tablet e Mobile */
300
+ }
301
+
302
+ @media (max-width: 480px) {
303
+ /* Mobile */
304
+ }
305
+
306
+
307
+ /* ===========================================================================
308
+ SECAO 950-979: UTILITIES E HELPERS
309
+ =========================================================================== */
310
+
311
+ .sr-only {
312
+ position: absolute;
313
+ width: 1px;
314
+ height: 1px;
315
+ padding: 0;
316
+ margin: -1px;
317
+ overflow: hidden;
318
+ clip: rect(0, 0, 0, 0);
319
+ white-space: nowrap;
320
+ border: 0;
321
+ }
322
+
323
+
324
+ /* ===========================================================================
325
+ SECAO 980-989: OVERRIDES DE FLUENT UI / MUDBLAZOR
326
+ =========================================================================== */
327
+
328
+ /* Fluent UI overrides */
329
+ .fluent-card {
330
+ /* Customizacoes */
331
+ }
332
+
333
+
334
+ /* ===========================================================================
335
+ SECAO 990-999: HOTFIXES E TEMPORARIOS
336
+ =========================================================================== */
337
+
338
+ /* TODO: Remover apos fix no componente X */
339
+ ```
340
+
341
+ ## Uso
342
+
343
+ 1. Copie o header para o inicio do seu `design-system.css`
344
+ 2. Substitua `{PROJECT_NAME}` pelo nome do seu projeto
345
+ 3. Adicione suas classes CSS nas secoes apropriadas
346
+ 4. Mantenha o indice atualizado conforme adiciona novas secoes
347
+
348
+ ## Beneficios
349
+
350
+ - **Navegacao rapida:** Use Ctrl+G (go to line) para pular para secoes
351
+ - **Organizacao clara:** Cada tipo de componente em sua secao
352
+ - **Facil manutencao:** Encontre onde adicionar novos estilos
353
+ - **Evita conflitos:** Prefixos por pagina previnem colisoes
354
+
355
+ ---
356
+
357
+ *Template MORPH-SPEC by Polymorphism Tech*