@polymorphism-tech/morph-spec 3.0.0 → 3.1.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 (240) hide show
  1. package/CLAUDE.md +68 -400
  2. package/README.md +198 -76
  3. package/bin/detect-agents.js +227 -225
  4. package/bin/morph-spec.js +10 -0
  5. package/bin/render-template.js +303 -302
  6. package/bin/semantic-detect-agents.js +247 -246
  7. package/bin/{task-manager.js → task-manager.cjs} +12 -1
  8. package/bin/validate-agents-skills.js +257 -251
  9. package/bin/validate-agents.js +70 -69
  10. package/bin/validate-phase.js +263 -263
  11. package/docs/getting-started.md +3 -3
  12. package/package.json +3 -4
  13. package/scripts/reorganize-skills.cjs +175 -0
  14. package/scripts/validate-agents-structure.cjs +52 -0
  15. package/scripts/validate-skills.cjs +180 -0
  16. package/src/commands/create-story.js +354 -351
  17. package/src/commands/detect-agents.js +13 -2
  18. package/src/commands/detect.js +104 -104
  19. package/src/commands/state.js +334 -333
  20. package/src/commands/sync.js +167 -167
  21. package/src/commands/task.js +1 -1
  22. package/src/commands/update.js +13 -1
  23. package/src/lib/context-generator.js +7 -4
  24. package/{detectors → src/lib/detectors}/config-detector.js +223 -223
  25. package/{detectors → src/lib/detectors}/conversation-analyzer.js +163 -163
  26. package/{detectors → src/lib/detectors}/index.js +84 -84
  27. package/{detectors → src/lib/detectors}/standards-generator.js +275 -275
  28. package/src/lib/hook-executor.js +2 -1
  29. package/src/lib/stack-resolver.js +148 -0
  30. package/src/lib/standards-context-injector.js +4 -3
  31. package/src/lib/state-manager.js +21 -4
  32. package/src/lib/team-orchestrator.js +2 -1
  33. package/src/lib/troubleshoot-grep.js +13 -3
  34. package/src/lib/validation-runner.js +2 -1
  35. package/src/utils/file-copier.js +3 -1
  36. package/{content → stacks/blazor-azure}/.azure/README.md +293 -293
  37. package/{content → stacks/blazor-azure}/.azure/docs/azure-devops-setup.md +454 -454
  38. package/{content → stacks/blazor-azure}/.azure/docs/branch-strategy.md +398 -398
  39. package/{content → stacks/blazor-azure}/.azure/docs/local-development.md +515 -515
  40. package/{content → stacks/blazor-azure}/.azure/pipelines/pipeline-variables.yml +34 -34
  41. package/{content → stacks/blazor-azure}/.azure/pipelines/prod-pipeline.yml +319 -319
  42. package/{content → stacks/blazor-azure}/.azure/pipelines/staging-pipeline.yml +234 -234
  43. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/build-dotnet.yml +75 -75
  44. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/deploy-app-service.yml +94 -94
  45. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/deploy-container-app.yml +120 -120
  46. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/infra-deploy.yml +90 -90
  47. package/{content → stacks/blazor-azure}/.claude/commands/morph-archive.md +79 -79
  48. package/{content → stacks/blazor-azure}/.claude/commands/morph-deploy.md +529 -529
  49. package/{content → stacks/blazor-azure}/.claude/commands/morph-infra.md +209 -209
  50. package/{content → stacks/blazor-azure}/.claude/commands/morph-troubleshoot.md +1 -1
  51. package/{content → stacks/blazor-azure}/.claude/settings.local.json +15 -15
  52. package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-setup.md +1 -1
  53. package/{content/.claude/skills/specialists → stacks/blazor-azure/.claude/skills/level-2-domains/architecture}/prompt-engineer.md +189 -189
  54. package/{content/.claude/skills/specialists → stacks/blazor-azure/.claude/skills/level-2-domains/architecture}/seo-growth-hacker.md +320 -320
  55. package/{content/.claude/skills/infra → stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure}/azure-deploy-specialist.md +699 -699
  56. package/{content → stacks/blazor-azure}/.morph/.morphversion +5 -5
  57. package/{content → stacks/blazor-azure}/.morph/archive/.gitkeep +25 -25
  58. package/{content → stacks/blazor-azure}/.morph/config/agents.json +7 -5
  59. package/{content → stacks/blazor-azure}/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
  60. package/{content → stacks/blazor-azure}/.morph/docs/workflows/enforcement-pipeline.md +3 -3
  61. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/README.md +241 -241
  62. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/contracts.ts +307 -307
  63. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/spec.md +399 -399
  64. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/tasks.md +168 -168
  65. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/README.md +125 -125
  66. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/contracts.cs +358 -358
  67. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/decisions.md +246 -246
  68. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/spec.md +236 -236
  69. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/tasks.md +150 -150
  70. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/README.md +309 -309
  71. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/contracts.cs +433 -433
  72. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/spec.md +479 -479
  73. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/tasks.md +185 -185
  74. package/{content → stacks/blazor-azure}/.morph/examples/state-v3.json +188 -188
  75. package/{content → stacks/blazor-azure}/.morph/features/.gitkeep +25 -25
  76. package/{content → stacks/blazor-azure}/.morph/hooks/README.md +12 -12
  77. package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-all.sh +48 -48
  78. package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-specs.sh +49 -49
  79. package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-tests.sh +60 -60
  80. package/{content → stacks/blazor-azure}/.morph/project.md +160 -160
  81. package/{content → stacks/blazor-azure}/.morph/schemas/agent.schema.json +296 -296
  82. package/{content → stacks/blazor-azure}/.morph/specs/.gitkeep +20 -20
  83. package/{content → stacks/blazor-azure}/.morph/standards/agent-teams-workflow.md +2 -2
  84. package/{content → stacks/blazor-azure}/.morph/standards/coding.md +377 -377
  85. package/{content → stacks/blazor-azure}/.morph/standards/fluent-ui-setup.md +590 -590
  86. package/{content → stacks/blazor-azure}/.morph/standards/migration-guide.md +514 -514
  87. package/{content → stacks/blazor-azure}/.morph/standards/passkeys-auth.md +423 -423
  88. package/{content → stacks/blazor-azure}/.morph/standards/vector-search-rag.md +536 -536
  89. package/{content → stacks/blazor-azure}/.morph/state.json +17 -17
  90. package/{content → stacks/blazor-azure}/.morph/templates/FluentDesignTheme.cs +149 -149
  91. package/{content → stacks/blazor-azure}/.morph/templates/MudTheme.cs +281 -281
  92. package/{content → stacks/blazor-azure}/.morph/templates/component.razor +239 -239
  93. package/{content → stacks/blazor-azure}/.morph/templates/contracts.cs +217 -217
  94. package/{content → stacks/blazor-azure}/.morph/templates/design-system.css +226 -226
  95. package/{content → stacks/blazor-azure}/.morph/templates/infra/.dockerignore.example +89 -89
  96. package/{content → stacks/blazor-azure}/.morph/templates/infra/Dockerfile.example +82 -82
  97. package/{content → stacks/blazor-azure}/.morph/templates/infra/README.md +286 -286
  98. package/{content → stacks/blazor-azure}/.morph/templates/infra/app-insights.bicep +63 -63
  99. package/{content → stacks/blazor-azure}/.morph/templates/infra/app-service.bicep +164 -164
  100. package/{content → stacks/blazor-azure}/.morph/templates/infra/azure-pipelines-deploy.yml +480 -480
  101. package/{content → stacks/blazor-azure}/.morph/templates/infra/container-app-env.bicep +49 -49
  102. package/{content → stacks/blazor-azure}/.morph/templates/infra/container-app.bicep +156 -156
  103. package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy.ps1 +229 -229
  104. package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy.sh +208 -208
  105. package/{content → stacks/blazor-azure}/.morph/templates/infra/key-vault.bicep +91 -91
  106. package/{content → stacks/blazor-azure}/.morph/templates/infra/main.bicep +189 -189
  107. package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.dev.json +29 -29
  108. package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.prod.json +29 -29
  109. package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.staging.json +29 -29
  110. package/{content → stacks/blazor-azure}/.morph/templates/infra/sql-database.bicep +103 -103
  111. package/{content → stacks/blazor-azure}/.morph/templates/infra/storage.bicep +106 -106
  112. package/{content → stacks/blazor-azure}/.morph/templates/integrations/asaas-client.cs +387 -387
  113. package/{content → stacks/blazor-azure}/.morph/templates/integrations/asaas-webhook.cs +351 -351
  114. package/{content → stacks/blazor-azure}/.morph/templates/integrations/azure-identity-config.cs +288 -288
  115. package/{content → stacks/blazor-azure}/.morph/templates/integrations/clerk-config.cs +258 -258
  116. package/{content → stacks/blazor-azure}/.morph/templates/job.cs +171 -171
  117. package/{content → stacks/blazor-azure}/.morph/templates/migration.cs +83 -83
  118. package/{content → stacks/blazor-azure}/.morph/templates/repository.cs +141 -141
  119. package/{content → stacks/blazor-azure}/.morph/templates/saas/subscription.cs +347 -347
  120. package/{content → stacks/blazor-azure}/.morph/templates/saas/tenant.cs +338 -338
  121. package/{content → stacks/blazor-azure}/.morph/templates/service.cs +139 -139
  122. package/{content → stacks/blazor-azure}/.morph/templates/sprint-status.yaml +68 -68
  123. package/{content → stacks/blazor-azure}/.morph/templates/story.md +143 -143
  124. package/{content → stacks/blazor-azure}/.morph/templates/test.cs +239 -239
  125. package/{content → stacks/blazor-azure}/.morph/templates/ui-design-system.md +286 -286
  126. package/{content → stacks/blazor-azure}/.morph/templates/ui-flows.md +336 -336
  127. package/{content → stacks/blazor-azure}/.morph/templates/ui-mockups.md +133 -133
  128. package/{content → stacks/blazor-azure}/.morph/test-infra/example.bicep +59 -59
  129. package/{content → stacks/blazor-azure}/README.md +79 -79
  130. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/backend/dotnet-supabase.md +244 -0
  131. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/frontend/nextjs-supabase.md +335 -0
  132. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/infrastructure/easypanel-deployer.md +189 -0
  133. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +170 -0
  134. package/stacks/nextjs-supabase/.morph/config/agents.json +345 -0
  135. package/stacks/nextjs-supabase/.morph/config/config.template.json +92 -0
  136. package/stacks/nextjs-supabase/.morph/docs/easypanel-setup.md +169 -0
  137. package/stacks/nextjs-supabase/.morph/docs/supabase-mcp-setup.md +247 -0
  138. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/README.md +697 -0
  139. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/spec.md +85 -0
  140. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/tasks.md +86 -0
  141. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/README.md +498 -0
  142. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/decisions.md +121 -0
  143. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/spec.md +138 -0
  144. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/tasks.md +162 -0
  145. package/stacks/nextjs-supabase/.morph/project.md +168 -0
  146. package/stacks/nextjs-supabase/.morph/standards/easypanel-deploy.md +191 -0
  147. package/stacks/nextjs-supabase/.morph/standards/nextjs-patterns.md +193 -0
  148. package/stacks/nextjs-supabase/.morph/standards/supabase-auth.md +171 -0
  149. package/stacks/nextjs-supabase/.morph/standards/supabase-pgvector.md +164 -0
  150. package/stacks/nextjs-supabase/.morph/standards/supabase-rls.md +179 -0
  151. package/stacks/nextjs-supabase/.morph/standards/supabase-storage.md +148 -0
  152. package/stacks/nextjs-supabase/.morph/templates/contracts.cs +173 -0
  153. package/stacks/nextjs-supabase/.morph/templates/contracts.ts +168 -0
  154. package/stacks/nextjs-supabase/.morph/templates/decisions.md +115 -0
  155. package/stacks/nextjs-supabase/.morph/templates/dockerfile-api.dockerfile +38 -0
  156. package/stacks/nextjs-supabase/.morph/templates/dockerfile-web.dockerfile +48 -0
  157. package/stacks/nextjs-supabase/.morph/templates/proposal.md +145 -0
  158. package/stacks/nextjs-supabase/.morph/templates/recap.md +134 -0
  159. package/stacks/nextjs-supabase/.morph/templates/rls-policy.sql +57 -0
  160. package/stacks/nextjs-supabase/.morph/templates/spec.md +231 -0
  161. package/stacks/nextjs-supabase/.morph/templates/supabase-migration.sql +100 -0
  162. package/stacks/nextjs-supabase/.morph/templates/tasks.md +257 -0
  163. package/stacks/nextjs-supabase/CLAUDE.md +149 -0
  164. package/stacks/nextjs-supabase/README.md +112 -0
  165. /package/{detectors → src/lib/detectors}/structure-detector.js +0 -0
  166. /package/{content → stacks/blazor-azure}/.claude/commands/morph-apply.md +0 -0
  167. /package/{content → stacks/blazor-azure}/.claude/commands/morph-preflight.md +0 -0
  168. /package/{content → stacks/blazor-azure}/.claude/commands/morph-proposal.md +0 -0
  169. /package/{content → stacks/blazor-azure}/.claude/commands/morph-status.md +0 -0
  170. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/README.md +0 -0
  171. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/code-review.md +0 -0
  172. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/morph-checklist.md +0 -0
  173. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/simulation-checklist.md +0 -0
  174. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/README.md +0 -0
  175. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/morph-replicate.md +0 -0
  176. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-clarify.md +0 -0
  177. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-design.md +0 -0
  178. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-tasks.md +0 -0
  179. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-uiux.md +0 -0
  180. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/README.md +0 -0
  181. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +0 -0
  182. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/architecture/po-pm-advisor.md +0 -0
  183. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/architecture/standards-architect.md +0 -0
  184. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/dotnet-senior.md +0 -0
  185. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/ef-modeler.md +0 -0
  186. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/hangfire-orchestrator.md +0 -0
  187. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/ms-agent-expert.md +0 -0
  188. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/blazor-builder.md +0 -0
  189. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/nextjs-expert.md +0 -0
  190. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/ui-ux-designer.md +0 -0
  191. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/azure-architect.md +0 -0
  192. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/bicep-architect.md +0 -0
  193. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/container-specialist.md +0 -0
  194. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/devops-engineer.md +0 -0
  195. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/asaas-financial.md +0 -0
  196. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/azure-identity.md +0 -0
  197. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/clerk-auth.md +0 -0
  198. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/resend-email.md +0 -0
  199. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/quality/code-analyzer.md +0 -0
  200. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/quality/testing-specialist.md +0 -0
  201. /package/{content → stacks/blazor-azure}/.claude/skills/level-3-technologies/README.md +0 -0
  202. /package/{content → stacks/blazor-azure}/.claude/skills/level-4-patterns/README.md +0 -0
  203. /package/{content → stacks/blazor-azure}/.morph/config/config.template.json +0 -0
  204. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/design-impl.md +0 -0
  205. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/fast-track.md +0 -0
  206. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/full-morph.md +0 -0
  207. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/standard.md +0 -0
  208. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/ui-refresh.md +0 -0
  209. /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/decisions.md +0 -0
  210. /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/proposal.md +0 -0
  211. /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/spec.md +0 -0
  212. /package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-agents.sh +0 -0
  213. /package/{content → stacks/blazor-azure}/.morph/hooks/task-completed.js +0 -0
  214. /package/{content → stacks/blazor-azure}/.morph/hooks/teammate-idle.js +0 -0
  215. /package/{content → stacks/blazor-azure}/.morph/schemas/tasks.schema.json +0 -0
  216. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-blazor-ui.md +0 -0
  217. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-production.md +0 -0
  218. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-setup.md +0 -0
  219. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-workflows.md +0 -0
  220. /package/{content → stacks/blazor-azure}/.morph/standards/architecture.md +0 -0
  221. /package/{content → stacks/blazor-azure}/.morph/standards/azure.md +0 -0
  222. /package/{content → stacks/blazor-azure}/.morph/standards/dotnet10-migration.md +0 -0
  223. /package/{content → stacks/blazor-azure}/.morph/templates/CONTEXT-FEATURE.md +0 -0
  224. /package/{content → stacks/blazor-azure}/.morph/templates/CONTEXT.md +0 -0
  225. /package/{content → stacks/blazor-azure}/.morph/templates/agent.cs +0 -0
  226. /package/{content → stacks/blazor-azure}/.morph/templates/clarify-questions.md +0 -0
  227. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Commands.cs +0 -0
  228. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Entities.cs +0 -0
  229. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Queries.cs +0 -0
  230. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/README.md +0 -0
  231. /package/{content → stacks/blazor-azure}/.morph/templates/decisions.md +0 -0
  232. /package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy-checklist.md +0 -0
  233. /package/{content → stacks/blazor-azure}/.morph/templates/proposal.md +0 -0
  234. /package/{content → stacks/blazor-azure}/.morph/templates/recap.md +0 -0
  235. /package/{content → stacks/blazor-azure}/.morph/templates/simulation.md +0 -0
  236. /package/{content → stacks/blazor-azure}/.morph/templates/spec.md +0 -0
  237. /package/{content → stacks/blazor-azure}/.morph/templates/state.template.json +0 -0
  238. /package/{content → stacks/blazor-azure}/.morph/templates/tasks.md +0 -0
  239. /package/{content → stacks/blazor-azure}/.morph/templates/ui-components.md +0 -0
  240. /package/{content → stacks/blazor-azure}/CLAUDE.md +0 -0
@@ -1,286 +1,286 @@
1
- # UI Design System - {Project Name}
2
-
3
- > Design system do projeto: cores, tipografia, espaçamento e padrões visuais.
4
- > Este arquivo é a fonte da verdade para todos os aspectos visuais do projeto.
5
-
6
- ---
7
-
8
- ## 🎨 Paleta de Cores
9
-
10
- ### Cores Principais
11
-
12
- | Uso | Cor | Hex | RGB | Preview |
13
- |-----|-----|-----|-----|---------|
14
- | **Primária** | {Nome da cor} | `#{hex}` | `rgb({r}, {g}, {b})` | ███ |
15
- | **Secundária** | {Nome da cor} | `#{hex}` | `rgb({r}, {g}, {b})` | ███ |
16
-
17
- **Exemplo:**
18
- | Uso | Cor | Hex | RGB | Preview |
19
- |-----|-----|-----|-----|---------|
20
- | **Primária** | Blue | `#3b82f6` | `rgb(59, 130, 246)` | 🔵 |
21
- | **Secundária** | Gray | `#6b7280` | `rgb(107, 114, 128)` | ⚫ |
22
-
23
- ### Cores de Estado
24
-
25
- | Estado | Cor | Hex | RGB | Uso |
26
- |--------|-----|-----|-----|-----|
27
- | **Sucesso** | {Cor} | `#{hex}` | `rgb({r}, {g}, {b})` | Confirmações, operações bem-sucedidas |
28
- | **Erro** | {Cor} | `#{hex}` | `rgb({r}, {g}, {b})` | Erros, validações falhas |
29
- | **Warning** | {Cor} | `#{hex}` | `rgb({r}, {g}, {b})` | Avisos, atenção necessária |
30
- | **Info** | {Cor} | `#{hex}` | `rgb({r}, {g}, {b})` | Informações, dicas |
31
-
32
- **Exemplo (Tailwind):**
33
- | Estado | Cor | Hex | RGB | Uso |
34
- |--------|-----|-----|-----|-----|
35
- | **Sucesso** | Green | `#10b981` | `rgb(16, 185, 129)` | Confirmações |
36
- | **Erro** | Red | `#ef4444` | `rgb(239, 68, 68)` | Erros |
37
- | **Warning** | Amber | `#f59e0b` | `rgb(245, 158, 11)` | Avisos |
38
- | **Info** | Cyan | `#06b6d4` | `rgb(6, 182, 212)` | Informações |
39
-
40
- ### Escala de Neutros (Cinzas)
41
-
42
- | Shade | Hex | RGB | Uso |
43
- |-------|-----|-----|-----|
44
- | **50** | `#{hex}` | `rgb({r}, {g}, {b})` | Fundos muito claros |
45
- | **100** | `#{hex}` | `rgb({r}, {g}, {b})` | Fundos claros |
46
- | **200** | `#{hex}` | `rgb({r}, {g}, {b})` | Bordas suaves |
47
- | **300** | `#{hex}` | `rgb({r}, {g}, {b})` | Bordas padrão |
48
- | **400** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto desabilitado |
49
- | **500** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto secundário |
50
- | **600** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto placeholder |
51
- | **700** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto principal |
52
- | **800** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto ênfase |
53
- | **900** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto super ênfase |
54
-
55
- **Exemplo (Tailwind Gray):**
56
- | Shade | Hex | RGB |
57
- |-------|-----|-----|
58
- | **50** | `#f9fafb` | `rgb(249, 250, 251)` |
59
- | **100** | `#f3f4f6` | `rgb(243, 244, 246)` |
60
- | **500** | `#6b7280` | `rgb(107, 114, 128)` |
61
- | **900** | `#111827` | `rgb(17, 24, 39)` |
62
-
63
- ---
64
-
65
- ## 🔤 Tipografia
66
-
67
- ### Fontes
68
-
69
- | Tipo | Font Family | Stack Completo | Uso |
70
- |------|-------------|----------------|-----|
71
- | **Sans-serif** | {Font} | `'{Font}', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif` | Texto principal, UI |
72
- | **Serif** | {Font} | `'{Font}', Georgia, serif` | Títulos, ênfase (opcional) |
73
- | **Monospace** | {Font} | `'{Font}', 'Courier New', monospace` | Código, dados técnicos |
74
-
75
- **Exemplo:**
76
- | Tipo | Font Family | Stack | Uso |
77
- |------|-------------|-------|-----|
78
- | **Sans-serif** | Inter | `'Inter', -apple-system, sans-serif` | Texto principal |
79
- | **Monospace** | Fira Code | `'Fira Code', 'Courier New', monospace` | Código |
80
-
81
- ### Escala de Tamanhos
82
-
83
- | Size | Valor | Line Height | Uso |
84
- |------|-------|-------------|-----|
85
- | **xs** | `{size}` | `{height}` | Texto muito pequeno, labels |
86
- | **sm** | `{size}` | `{height}` | Texto pequeno, captions |
87
- | **base** | `{size}` | `{height}` | Texto padrão, body |
88
- | **lg** | `{size}` | `{height}` | Texto grande, leads |
89
- | **xl** | `{size}` | `{height}` | Títulos H4 |
90
- | **2xl** | `{size}` | `{height}` | Títulos H3 |
91
- | **3xl** | `{size}` | `{height}` | Títulos H2 |
92
- | **4xl** | `{size}` | `{height}` | Títulos H1 |
93
- | **5xl** | `{size}` | `{height}` | Display text |
94
-
95
- **Exemplo (Tailwind):**
96
- | Size | Valor | Line Height |
97
- |------|-------|-------------|
98
- | **xs** | `0.75rem` (12px) | `1rem` (16px) |
99
- | **sm** | `0.875rem` (14px) | `1.25rem` (20px) |
100
- | **base** | `1rem` (16px) | `1.5rem` (24px) |
101
- | **lg** | `1.125rem` (18px) | `1.75rem` (28px) |
102
- | **xl** | `1.25rem` (20px) | `1.75rem` (28px) |
103
- | **4xl** | `2.25rem` (36px) | `2.5rem` (40px) |
104
-
105
- ### Pesos (Font Weight)
106
-
107
- | Weight | Valor | Uso |
108
- |--------|-------|-----|
109
- | **Light** | `300` | Texto decorativo, opcional |
110
- | **Regular** | `400` | Texto padrão |
111
- | **Medium** | `500` | Texto com ênfase leve |
112
- | **Semibold** | `600` | Botões, labels importantes |
113
- | **Bold** | `700` | Títulos, ênfase forte |
114
-
115
- ---
116
-
117
- ## 📏 Espaçamento
118
-
119
- ### Sistema Base
120
-
121
- **Unidade base:** `{value}` (ex: 4px, 8px)
122
- **Escala:** Múltiplos da unidade base
123
-
124
- | Token | Valor | Pixels | Uso |
125
- |-------|-------|--------|-----|
126
- | **0** | `0` | 0px | Sem espaçamento |
127
- | **1** | `{base * 1}` | {px} | Espaço mínimo |
128
- | **2** | `{base * 2}` | {px} | Espaço pequeno |
129
- | **3** | `{base * 3}` | {px} | Espaço médio-pequeno |
130
- | **4** | `{base * 4}` | {px} | Espaço médio |
131
- | **5** | `{base * 5}` | {px} | Espaço médio-grande |
132
- | **6** | `{base * 6}` | {px} | Espaço grande |
133
- | **8** | `{base * 8}` | {px} | Espaço muito grande |
134
- | **10** | `{base * 10}` | {px} | Espaço extra grande |
135
- | **12** | `{base * 12}` | {px} | Espaço gigante |
136
-
137
- **Exemplo (base 4px = 0.25rem):**
138
- | Token | Valor | Pixels | Uso |
139
- |-------|-------|--------|-----|
140
- | **1** | `0.25rem` | 4px | Gap mínimo entre ícones |
141
- | **2** | `0.5rem` | 8px | Padding interno de botões |
142
- | **4** | `1rem` | 16px | Padding padrão de cards |
143
- | **6** | `1.5rem` | 24px | Margin entre seções |
144
- | **8** | `2rem` | 32px | Margin grande entre blocos |
145
-
146
- ---
147
-
148
- ## 🔲 Border Radius
149
-
150
- | Size | Valor | Uso |
151
- |------|-------|-----|
152
- | **none** | `0` | Sem arredondamento |
153
- | **sm** | `{value}` | Arredondamento sutil |
154
- | **md** | `{value}` | Arredondamento padrão |
155
- | **lg** | `{value}` | Arredondamento pronunciado |
156
- | **xl** | `{value}` | Muito arredondado |
157
- | **full** | `9999px` | Circular (botões redondos, avatares) |
158
-
159
- **Exemplo:**
160
- | Size | Valor | Uso |
161
- |------|-------|-----|
162
- | **sm** | `0.125rem` (2px) | Inputs, tabelas |
163
- | **md** | `0.375rem` (6px) | Botões, cards |
164
- | **lg** | `0.5rem` (8px) | Modais, containers |
165
- | **full** | `9999px` | Avatares, badges circulares |
166
-
167
- ---
168
-
169
- ## 🌑 Sombras (Shadows)
170
-
171
- | Size | Valor | Uso |
172
- |------|-------|-----|
173
- | **sm** | `{shadow}` | Sombra sutil (hover) |
174
- | **md** | `{shadow}` | Sombra padrão (cards) |
175
- | **lg** | `{shadow}` | Sombra pronunciada (modals) |
176
- | **xl** | `{shadow}` | Sombra forte (dropdowns) |
177
-
178
- **Exemplo (Tailwind):**
179
- | Size | Valor |
180
- |------|-------|
181
- | **sm** | `0 1px 2px 0 rgba(0, 0, 0, 0.05)` |
182
- | **md** | `0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)` |
183
- | **lg** | `0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)` |
184
-
185
- ---
186
-
187
- ## 📱 Breakpoints (Responsive)
188
-
189
- | Breakpoint | Min Width | Dispositivos |
190
- |------------|-----------|--------------|
191
- | **xs** | `0px` | Mobile portrait (padrão) |
192
- | **sm** | `{value}` | Mobile landscape / Tablet pequeno |
193
- | **md** | `{value}` | Tablet |
194
- | **lg** | `{value}` | Desktop pequeno |
195
- | **xl** | `{value}` | Desktop grande |
196
- | **2xl** | `{value}` | Desktop muito grande |
197
-
198
- **Exemplo (Tailwind):**
199
- | Breakpoint | Min Width |
200
- |------------|-----------|
201
- | **sm** | `640px` |
202
- | **md** | `768px` |
203
- | **lg** | `1024px` |
204
- | **xl** | `1280px` |
205
- | **2xl** | `1536px` |
206
-
207
- ---
208
-
209
- ## 🎯 Aplicação no Código
210
-
211
- ### CSS Variables (Recomendado)
212
-
213
- Ver template: `design-system.css`
214
-
215
- ```css
216
- :root {
217
- /* Cores */
218
- --color-primary: #{hex};
219
- --color-secondary: #{hex};
220
-
221
- /* Tipografia */
222
- --font-sans: '{Font}', sans-serif;
223
- --text-base: 1rem;
224
-
225
- /* Espaçamento */
226
- --space-4: 1rem;
227
- }
228
- ```
229
-
230
- ### Fluent UI Theme (se Fluent UI)
231
-
232
- Ver template: `FluentDesignTheme.cs`
233
-
234
- ```csharp
235
- public static class FluentDesignTheme
236
- {
237
- public static DesignThemePalette GetPalette() => new()
238
- {
239
- Primary = "#{cor primária}",
240
- // ...
241
- };
242
- }
243
- ```
244
-
245
- ### MudBlazor Theme (se MudBlazor)
246
-
247
- Ver template: `MudTheme.cs`
248
-
249
- ```csharp
250
- public static MudTheme Theme => new()
251
- {
252
- Palette = new PaletteLight
253
- {
254
- Primary = "#{cor primária}",
255
- // ...
256
- }
257
- };
258
- ```
259
-
260
- ---
261
-
262
- ## 📋 Checklist de Consistência
263
-
264
- - [ ] Todas as cores têm hex + rgb documentados
265
- - [ ] Escala de neutros completa (50-900)
266
- - [ ] Fontes têm fallback stacks completos
267
- - [ ] Escala de tamanhos cobre todos os casos (xs até 5xl)
268
- - [ ] Espaçamento usa múltiplos da unidade base
269
- - [ ] Border radius tem tamanhos sm, md, lg, full
270
- - [ ] Sombras têm variações de intensidade
271
- - [ ] Breakpoints cobrem mobile até desktop grande
272
- - [ ] Design system será implementado na FASE 5 (arquivos CSS/C#)
273
-
274
- ---
275
-
276
- ## 🔗 Referências
277
-
278
- - [Fluent Design System](https://fluent2.microsoft.design/)
279
- - [Material Design](https://m3.material.io/)
280
- - [Tailwind CSS Palette](https://tailwindcss.com/docs/customizing-colors)
281
- - [Type Scale](https://type-scale.com/)
282
- - [Modular Scale](https://www.modularscale.com/)
283
-
284
- ---
285
-
286
- *Template MORPH-SPEC v2.1.1 by Polymorphism Tech*
1
+ # UI Design System - {Project Name}
2
+
3
+ > Design system do projeto: cores, tipografia, espaçamento e padrões visuais.
4
+ > Este arquivo é a fonte da verdade para todos os aspectos visuais do projeto.
5
+
6
+ ---
7
+
8
+ ## 🎨 Paleta de Cores
9
+
10
+ ### Cores Principais
11
+
12
+ | Uso | Cor | Hex | RGB | Preview |
13
+ |-----|-----|-----|-----|---------|
14
+ | **Primária** | {Nome da cor} | `#{hex}` | `rgb({r}, {g}, {b})` | ███ |
15
+ | **Secundária** | {Nome da cor} | `#{hex}` | `rgb({r}, {g}, {b})` | ███ |
16
+
17
+ **Exemplo:**
18
+ | Uso | Cor | Hex | RGB | Preview |
19
+ |-----|-----|-----|-----|---------|
20
+ | **Primária** | Blue | `#3b82f6` | `rgb(59, 130, 246)` | 🔵 |
21
+ | **Secundária** | Gray | `#6b7280` | `rgb(107, 114, 128)` | ⚫ |
22
+
23
+ ### Cores de Estado
24
+
25
+ | Estado | Cor | Hex | RGB | Uso |
26
+ |--------|-----|-----|-----|-----|
27
+ | **Sucesso** | {Cor} | `#{hex}` | `rgb({r}, {g}, {b})` | Confirmações, operações bem-sucedidas |
28
+ | **Erro** | {Cor} | `#{hex}` | `rgb({r}, {g}, {b})` | Erros, validações falhas |
29
+ | **Warning** | {Cor} | `#{hex}` | `rgb({r}, {g}, {b})` | Avisos, atenção necessária |
30
+ | **Info** | {Cor} | `#{hex}` | `rgb({r}, {g}, {b})` | Informações, dicas |
31
+
32
+ **Exemplo (Tailwind):**
33
+ | Estado | Cor | Hex | RGB | Uso |
34
+ |--------|-----|-----|-----|-----|
35
+ | **Sucesso** | Green | `#10b981` | `rgb(16, 185, 129)` | Confirmações |
36
+ | **Erro** | Red | `#ef4444` | `rgb(239, 68, 68)` | Erros |
37
+ | **Warning** | Amber | `#f59e0b` | `rgb(245, 158, 11)` | Avisos |
38
+ | **Info** | Cyan | `#06b6d4` | `rgb(6, 182, 212)` | Informações |
39
+
40
+ ### Escala de Neutros (Cinzas)
41
+
42
+ | Shade | Hex | RGB | Uso |
43
+ |-------|-----|-----|-----|
44
+ | **50** | `#{hex}` | `rgb({r}, {g}, {b})` | Fundos muito claros |
45
+ | **100** | `#{hex}` | `rgb({r}, {g}, {b})` | Fundos claros |
46
+ | **200** | `#{hex}` | `rgb({r}, {g}, {b})` | Bordas suaves |
47
+ | **300** | `#{hex}` | `rgb({r}, {g}, {b})` | Bordas padrão |
48
+ | **400** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto desabilitado |
49
+ | **500** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto secundário |
50
+ | **600** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto placeholder |
51
+ | **700** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto principal |
52
+ | **800** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto ênfase |
53
+ | **900** | `#{hex}` | `rgb({r}, {g}, {b})` | Texto super ênfase |
54
+
55
+ **Exemplo (Tailwind Gray):**
56
+ | Shade | Hex | RGB |
57
+ |-------|-----|-----|
58
+ | **50** | `#f9fafb` | `rgb(249, 250, 251)` |
59
+ | **100** | `#f3f4f6` | `rgb(243, 244, 246)` |
60
+ | **500** | `#6b7280` | `rgb(107, 114, 128)` |
61
+ | **900** | `#111827` | `rgb(17, 24, 39)` |
62
+
63
+ ---
64
+
65
+ ## 🔤 Tipografia
66
+
67
+ ### Fontes
68
+
69
+ | Tipo | Font Family | Stack Completo | Uso |
70
+ |------|-------------|----------------|-----|
71
+ | **Sans-serif** | {Font} | `'{Font}', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif` | Texto principal, UI |
72
+ | **Serif** | {Font} | `'{Font}', Georgia, serif` | Títulos, ênfase (opcional) |
73
+ | **Monospace** | {Font} | `'{Font}', 'Courier New', monospace` | Código, dados técnicos |
74
+
75
+ **Exemplo:**
76
+ | Tipo | Font Family | Stack | Uso |
77
+ |------|-------------|-------|-----|
78
+ | **Sans-serif** | Inter | `'Inter', -apple-system, sans-serif` | Texto principal |
79
+ | **Monospace** | Fira Code | `'Fira Code', 'Courier New', monospace` | Código |
80
+
81
+ ### Escala de Tamanhos
82
+
83
+ | Size | Valor | Line Height | Uso |
84
+ |------|-------|-------------|-----|
85
+ | **xs** | `{size}` | `{height}` | Texto muito pequeno, labels |
86
+ | **sm** | `{size}` | `{height}` | Texto pequeno, captions |
87
+ | **base** | `{size}` | `{height}` | Texto padrão, body |
88
+ | **lg** | `{size}` | `{height}` | Texto grande, leads |
89
+ | **xl** | `{size}` | `{height}` | Títulos H4 |
90
+ | **2xl** | `{size}` | `{height}` | Títulos H3 |
91
+ | **3xl** | `{size}` | `{height}` | Títulos H2 |
92
+ | **4xl** | `{size}` | `{height}` | Títulos H1 |
93
+ | **5xl** | `{size}` | `{height}` | Display text |
94
+
95
+ **Exemplo (Tailwind):**
96
+ | Size | Valor | Line Height |
97
+ |------|-------|-------------|
98
+ | **xs** | `0.75rem` (12px) | `1rem` (16px) |
99
+ | **sm** | `0.875rem` (14px) | `1.25rem` (20px) |
100
+ | **base** | `1rem` (16px) | `1.5rem` (24px) |
101
+ | **lg** | `1.125rem` (18px) | `1.75rem` (28px) |
102
+ | **xl** | `1.25rem` (20px) | `1.75rem` (28px) |
103
+ | **4xl** | `2.25rem` (36px) | `2.5rem` (40px) |
104
+
105
+ ### Pesos (Font Weight)
106
+
107
+ | Weight | Valor | Uso |
108
+ |--------|-------|-----|
109
+ | **Light** | `300` | Texto decorativo, opcional |
110
+ | **Regular** | `400` | Texto padrão |
111
+ | **Medium** | `500` | Texto com ênfase leve |
112
+ | **Semibold** | `600` | Botões, labels importantes |
113
+ | **Bold** | `700` | Títulos, ênfase forte |
114
+
115
+ ---
116
+
117
+ ## 📏 Espaçamento
118
+
119
+ ### Sistema Base
120
+
121
+ **Unidade base:** `{value}` (ex: 4px, 8px)
122
+ **Escala:** Múltiplos da unidade base
123
+
124
+ | Token | Valor | Pixels | Uso |
125
+ |-------|-------|--------|-----|
126
+ | **0** | `0` | 0px | Sem espaçamento |
127
+ | **1** | `{base * 1}` | {px} | Espaço mínimo |
128
+ | **2** | `{base * 2}` | {px} | Espaço pequeno |
129
+ | **3** | `{base * 3}` | {px} | Espaço médio-pequeno |
130
+ | **4** | `{base * 4}` | {px} | Espaço médio |
131
+ | **5** | `{base * 5}` | {px} | Espaço médio-grande |
132
+ | **6** | `{base * 6}` | {px} | Espaço grande |
133
+ | **8** | `{base * 8}` | {px} | Espaço muito grande |
134
+ | **10** | `{base * 10}` | {px} | Espaço extra grande |
135
+ | **12** | `{base * 12}` | {px} | Espaço gigante |
136
+
137
+ **Exemplo (base 4px = 0.25rem):**
138
+ | Token | Valor | Pixels | Uso |
139
+ |-------|-------|--------|-----|
140
+ | **1** | `0.25rem` | 4px | Gap mínimo entre ícones |
141
+ | **2** | `0.5rem` | 8px | Padding interno de botões |
142
+ | **4** | `1rem` | 16px | Padding padrão de cards |
143
+ | **6** | `1.5rem` | 24px | Margin entre seções |
144
+ | **8** | `2rem` | 32px | Margin grande entre blocos |
145
+
146
+ ---
147
+
148
+ ## 🔲 Border Radius
149
+
150
+ | Size | Valor | Uso |
151
+ |------|-------|-----|
152
+ | **none** | `0` | Sem arredondamento |
153
+ | **sm** | `{value}` | Arredondamento sutil |
154
+ | **md** | `{value}` | Arredondamento padrão |
155
+ | **lg** | `{value}` | Arredondamento pronunciado |
156
+ | **xl** | `{value}` | Muito arredondado |
157
+ | **full** | `9999px` | Circular (botões redondos, avatares) |
158
+
159
+ **Exemplo:**
160
+ | Size | Valor | Uso |
161
+ |------|-------|-----|
162
+ | **sm** | `0.125rem` (2px) | Inputs, tabelas |
163
+ | **md** | `0.375rem` (6px) | Botões, cards |
164
+ | **lg** | `0.5rem` (8px) | Modais, containers |
165
+ | **full** | `9999px` | Avatares, badges circulares |
166
+
167
+ ---
168
+
169
+ ## 🌑 Sombras (Shadows)
170
+
171
+ | Size | Valor | Uso |
172
+ |------|-------|-----|
173
+ | **sm** | `{shadow}` | Sombra sutil (hover) |
174
+ | **md** | `{shadow}` | Sombra padrão (cards) |
175
+ | **lg** | `{shadow}` | Sombra pronunciada (modals) |
176
+ | **xl** | `{shadow}` | Sombra forte (dropdowns) |
177
+
178
+ **Exemplo (Tailwind):**
179
+ | Size | Valor |
180
+ |------|-------|
181
+ | **sm** | `0 1px 2px 0 rgba(0, 0, 0, 0.05)` |
182
+ | **md** | `0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)` |
183
+ | **lg** | `0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)` |
184
+
185
+ ---
186
+
187
+ ## 📱 Breakpoints (Responsive)
188
+
189
+ | Breakpoint | Min Width | Dispositivos |
190
+ |------------|-----------|--------------|
191
+ | **xs** | `0px` | Mobile portrait (padrão) |
192
+ | **sm** | `{value}` | Mobile landscape / Tablet pequeno |
193
+ | **md** | `{value}` | Tablet |
194
+ | **lg** | `{value}` | Desktop pequeno |
195
+ | **xl** | `{value}` | Desktop grande |
196
+ | **2xl** | `{value}` | Desktop muito grande |
197
+
198
+ **Exemplo (Tailwind):**
199
+ | Breakpoint | Min Width |
200
+ |------------|-----------|
201
+ | **sm** | `640px` |
202
+ | **md** | `768px` |
203
+ | **lg** | `1024px` |
204
+ | **xl** | `1280px` |
205
+ | **2xl** | `1536px` |
206
+
207
+ ---
208
+
209
+ ## 🎯 Aplicação no Código
210
+
211
+ ### CSS Variables (Recomendado)
212
+
213
+ Ver template: `design-system.css`
214
+
215
+ ```css
216
+ :root {
217
+ /* Cores */
218
+ --color-primary: #{hex};
219
+ --color-secondary: #{hex};
220
+
221
+ /* Tipografia */
222
+ --font-sans: '{Font}', sans-serif;
223
+ --text-base: 1rem;
224
+
225
+ /* Espaçamento */
226
+ --space-4: 1rem;
227
+ }
228
+ ```
229
+
230
+ ### Fluent UI Theme (se Fluent UI)
231
+
232
+ Ver template: `FluentDesignTheme.cs`
233
+
234
+ ```csharp
235
+ public static class FluentDesignTheme
236
+ {
237
+ public static DesignThemePalette GetPalette() => new()
238
+ {
239
+ Primary = "#{cor primária}",
240
+ // ...
241
+ };
242
+ }
243
+ ```
244
+
245
+ ### MudBlazor Theme (se MudBlazor)
246
+
247
+ Ver template: `MudTheme.cs`
248
+
249
+ ```csharp
250
+ public static MudTheme Theme => new()
251
+ {
252
+ Palette = new PaletteLight
253
+ {
254
+ Primary = "#{cor primária}",
255
+ // ...
256
+ }
257
+ };
258
+ ```
259
+
260
+ ---
261
+
262
+ ## 📋 Checklist de Consistência
263
+
264
+ - [ ] Todas as cores têm hex + rgb documentados
265
+ - [ ] Escala de neutros completa (50-900)
266
+ - [ ] Fontes têm fallback stacks completos
267
+ - [ ] Escala de tamanhos cobre todos os casos (xs até 5xl)
268
+ - [ ] Espaçamento usa múltiplos da unidade base
269
+ - [ ] Border radius tem tamanhos sm, md, lg, full
270
+ - [ ] Sombras têm variações de intensidade
271
+ - [ ] Breakpoints cobrem mobile até desktop grande
272
+ - [ ] Design system será implementado na FASE 5 (arquivos CSS/C#)
273
+
274
+ ---
275
+
276
+ ## 🔗 Referências
277
+
278
+ - [Fluent Design System](https://fluent2.microsoft.design/)
279
+ - [Material Design](https://m3.material.io/)
280
+ - [Tailwind CSS Palette](https://tailwindcss.com/docs/customizing-colors)
281
+ - [Type Scale](https://type-scale.com/)
282
+ - [Modular Scale](https://www.modularscale.com/)
283
+
284
+ ---
285
+
286
+ *Template MORPH-SPEC v2.1.1 by Polymorphism Tech*