@polymorphism-tech/morph-spec 4.5.0 → 4.7.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.
- package/CLAUDE.md +77 -56
- package/README.md +394 -700
- package/docs/ARCHITECTURE.md +331 -0
- package/docs/CHEATSHEET.md +221 -0
- package/docs/COMMAND-FLOWS.md +368 -0
- package/docs/QUICKSTART.md +212 -0
- package/docs/examples/order-management/contracts.cs +84 -0
- package/docs/examples/order-management/proposal.md +24 -0
- package/docs/examples/order-management/spec.md +162 -0
- package/docs/plans/2026-02-23-ddd-architecture-refactor.md +1153 -0
- package/docs/plans/2026-02-23-ddd-nextsteps.md +682 -0
- package/docs/plans/2026-02-23-infra-architect-refactor.md +437 -0
- package/docs/plans/2026-02-23-nextjs-code-review-design.md +156 -0
- package/docs/plans/2026-02-23-nextjs-code-review-impl.md +1254 -0
- package/docs/plans/2026-02-23-nextjs-standards-design.md +149 -0
- package/docs/plans/2026-02-23-nextjs-standards-impl.md +1846 -0
- package/framework/{skills/level-2-domains → agents}/README.md +14 -14
- package/framework/{skills/level-2-domains → agents}/ai-agents/ai-system-architect.md +1 -4
- package/framework/{skills/level-2-domains → agents}/architecture/po-pm-advisor.md +1 -2
- package/framework/{skills/level-2-domains → agents}/architecture/prompt-engineer.md +1 -2
- package/framework/{skills/level-2-domains → agents}/architecture/seo-growth-hacker.md +1 -2
- package/framework/{skills/level-2-domains → agents}/architecture/standards-architect.md +159 -162
- package/framework/agents/backend/api-designer.md +103 -0
- package/framework/{skills/level-2-domains → agents}/backend/dotnet-senior.md +1 -2
- package/framework/agents/backend/ef-modeler.md +119 -0
- package/framework/{skills/level-2-domains → agents}/backend/hangfire-orchestrator.md +1 -4
- package/framework/{skills/level-2-domains → agents}/backend/ms-agent-expert.md +1 -4
- package/framework/{skills/level-2-domains → agents}/frontend/blazor-builder.md +1 -4
- package/framework/agents/frontend/nextjs-expert.md +118 -0
- package/framework/{skills/level-2-domains → agents}/frontend/ui-ux-designer.md +1 -2
- package/framework/{skills/level-2-domains → agents}/infrastructure/azure-architect.md +147 -148
- package/framework/{skills/level-2-domains → agents}/infrastructure/azure-deploy-specialist.md +1 -2
- package/framework/{skills/level-2-domains → agents}/infrastructure/bicep-architect.md +1 -4
- package/framework/{skills/level-2-domains → agents}/infrastructure/container-specialist.md +1 -4
- package/framework/{skills/level-2-domains → agents}/infrastructure/devops-engineer.md +1 -4
- package/framework/agents/infrastructure/infra-architect.md +45 -0
- package/framework/{skills/level-2-domains → agents}/integrations/asaas-financial.md +1 -4
- package/framework/{skills/level-2-domains → agents}/integrations/azure-identity.md +1 -4
- package/framework/{skills/level-2-domains → agents}/integrations/clerk-auth.md +1 -4
- package/framework/{skills/level-2-domains → agents}/integrations/hangfire-integration.md +1 -2
- package/framework/{skills/level-2-domains → agents}/integrations/resend-email.md +1 -4
- package/framework/{skills/level-2-domains → agents}/quality/code-analyzer.md +1 -4
- package/framework/{skills/level-2-domains → agents}/quality/testing-specialist.md +1 -4
- package/framework/agents.json +1145 -278
- package/framework/hooks/claude-code/statusline.py +384 -85
- package/framework/hooks/shared/phase-utils.js +129 -129
- package/framework/rules/frontend-standards.md +0 -3
- package/framework/rules/nextjs-standards.md +17 -0
- package/framework/skills/README.md +66 -0
- package/framework/skills/level-0-meta/{brainstorming.md → brainstorming/SKILL.md} +3 -1
- package/framework/skills/level-0-meta/brainstorming/references/proposal-example.md +138 -0
- package/framework/skills/level-0-meta/{code-review.md → code-review/SKILL.md} +3 -2
- package/framework/skills/level-0-meta/code-review/references/review-example.md +164 -0
- package/framework/skills/level-0-meta/code-review/scripts/scan-csharp.mjs +121 -0
- package/framework/skills/level-0-meta/code-review-nextjs/SKILL.md +147 -0
- package/framework/skills/level-0-meta/code-review-nextjs/references/review-example-nextjs.md +254 -0
- package/framework/skills/level-0-meta/{morph-checklist.md → morph-checklist/SKILL.md} +2 -5
- package/framework/skills/{level-1-workflows/morph-replicate.md → level-0-meta/morph-replicate/SKILL.md} +6 -7
- package/framework/skills/level-0-meta/{simulation-checklist.md → simulation-checklist/SKILL.md} +3 -6
- package/framework/skills/level-0-meta/{tool-usage-guide.md → tool-usage-guide/SKILL.md} +4 -5
- package/framework/skills/level-0-meta/{verification-before-completion.md → verification-before-completion/SKILL.md} +3 -1
- package/framework/skills/level-0-meta/verification-before-completion/scripts/check-phase-outputs.mjs +110 -0
- package/framework/skills/level-1-workflows/{phase-clarify.md → phase-clarify/SKILL.md} +3 -3
- package/framework/skills/level-1-workflows/phase-clarify/references/clarifications-example.md +117 -0
- package/framework/skills/level-1-workflows/{phase-codebase-analysis.md → phase-codebase-analysis/SKILL.md} +2 -3
- package/framework/skills/level-1-workflows/{phase-design.md → phase-design/SKILL.md} +46 -182
- package/framework/skills/level-1-workflows/phase-design/references/spec-example.md +253 -0
- package/framework/skills/level-1-workflows/{phase-implement.md → phase-implement/SKILL.md} +3 -3
- package/framework/skills/level-1-workflows/phase-implement/references/recap-example.md +132 -0
- package/framework/skills/level-1-workflows/{phase-setup.md → phase-setup/SKILL.md} +2 -3
- package/framework/skills/level-1-workflows/{phase-tasks.md → phase-tasks/SKILL.md} +42 -3
- package/framework/skills/level-1-workflows/phase-tasks/references/tasks-example.md +231 -0
- package/framework/skills/level-1-workflows/phase-tasks/scripts/validate-tasks.mjs +112 -0
- package/framework/skills/level-1-workflows/{phase-uiux.md → phase-uiux/SKILL.md} +2 -3
- package/framework/standards/STANDARDS.json +121 -0
- package/framework/standards/architecture/ddd/bounded-contexts.md +105 -0
- package/framework/standards/architecture/ddd/complexity-levels.md +108 -0
- package/framework/standards/architecture/ddd/ubiquitous-language.md +58 -0
- package/framework/standards/frontend/nextjs/app-router.md +123 -0
- package/framework/standards/frontend/nextjs/components.md +132 -0
- package/framework/standards/frontend/nextjs/data-fetching.md +126 -0
- package/framework/standards/frontend/nextjs/forms.md +128 -0
- package/framework/standards/frontend/nextjs/naming-conventions.md +67 -0
- package/framework/standards/frontend/nextjs/project-structure.md +102 -0
- package/framework/standards/frontend/nextjs/state-management.md +72 -0
- package/framework/standards/frontend/nextjs/testing.md +111 -0
- package/framework/templates/REGISTRY.json +538 -142
- package/framework/templates/code/dotnet/contracts/contracts-level1.cs +69 -0
- package/framework/templates/code/dotnet/contracts/contracts-level2.cs +86 -0
- package/framework/templates/code/dotnet/contracts/contracts-level3.cs +41 -0
- package/framework/templates/docs/spec.md +49 -0
- package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -0
- package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -0
- package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -0
- package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -0
- package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -0
- package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -0
- package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -0
- package/framework/templates/project-structure/dotnet-ddd.md +70 -0
- package/framework/workflows/docs/enforcement-pipeline.md +2 -1
- package/package.json +1 -1
- package/scripts/scan-nextjs.mjs +169 -0
- package/src/commands/project/doctor.js +52 -1
- package/src/commands/project/init.js +19 -65
- package/src/commands/project/update.js +7 -63
- package/src/lib/detectors/claude-config-detector.js +1 -3
- package/src/lib/standards/standards-context-injector.js +5 -0
- package/src/lib/validators/nextjs/index.js +6 -0
- package/src/lib/validators/nextjs/next-component-validator.js +181 -0
- package/src/lib/validators/validation-runner.js +5 -0
- package/src/utils/agents-installer.js +16 -4
- package/src/utils/skills-installer.js +59 -15
- package/.morph/.morphversion +0 -5
- package/.morph/analytics/threads-log.jsonl +0 -44
- package/.morph/config/config.json +0 -8
- package/.morph/context/README.md +0 -17
- package/.morph/framework/agents.json +0 -948
- package/.morph/framework/standards/STANDARDS.json +0 -812
- package/.morph/framework/standards/ai-agents/blazor-ui.md +0 -364
- package/.morph/framework/standards/ai-agents/production.md +0 -415
- package/.morph/framework/standards/ai-agents/setup.md +0 -418
- package/.morph/framework/standards/ai-agents/team-orchestration.md +0 -479
- package/.morph/framework/standards/ai-agents/workflows.md +0 -354
- package/.morph/framework/standards/architecture/ddd/aggregates.md +0 -120
- package/.morph/framework/standards/architecture/ddd/entities.md +0 -99
- package/.morph/framework/standards/architecture/ddd/value-objects.md +0 -124
- package/.morph/framework/standards/backend/api/minimal-api.md +0 -494
- package/.morph/framework/standards/backend/api/rest.md +0 -492
- package/.morph/framework/standards/backend/api/validation.md +0 -88
- package/.morph/framework/standards/backend/authentication/passkeys.md +0 -428
- package/.morph/framework/standards/backend/database/ef-core.md +0 -199
- package/.morph/framework/standards/backend/database/migrations.md +0 -393
- package/.morph/framework/standards/backend/database/postgresql/database.md +0 -352
- package/.morph/framework/standards/backend/database/repository-patterns.md +0 -528
- package/.morph/framework/standards/backend/database/vector-search-rag.md +0 -541
- package/.morph/framework/standards/backend/dotnet/async.md +0 -366
- package/.morph/framework/standards/backend/dotnet/core.md +0 -117
- package/.morph/framework/standards/backend/dotnet/di.md +0 -439
- package/.morph/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
- package/.morph/framework/standards/backend/integrations/asaas/asaas-api.md +0 -216
- package/.morph/framework/standards/backend/integrations/clerk/clerk-auth.md +0 -290
- package/.morph/framework/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -350
- package/.morph/framework/standards/backend/integrations/resend/resend-email.md +0 -385
- package/.morph/framework/standards/context/analytics.md +0 -96
- package/.morph/framework/standards/context/bundles.md +0 -110
- package/.morph/framework/standards/context/priming.md +0 -78
- package/.morph/framework/standards/core/architecture.md +0 -185
- package/.morph/framework/standards/core/coding.md +0 -214
- package/.morph/framework/standards/core/git-branching-strategy.md +0 -403
- package/.morph/framework/standards/core/git.md +0 -185
- package/.morph/framework/standards/core/testing.md +0 -295
- package/.morph/framework/standards/data/nosql/blob-storage.md +0 -102
- package/.morph/framework/standards/data/nosql/cache/redis.md +0 -97
- package/.morph/framework/standards/data/nosql/cosmos-db.md +0 -118
- package/.morph/framework/standards/data/vector-search/azure-ai-search.md +0 -121
- package/.morph/framework/standards/data/vector-search/rag-chunking.md +0 -104
- package/.morph/framework/standards/frontend/blazor/design-checklist.md +0 -222
- package/.morph/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
- package/.morph/framework/standards/frontend/blazor/fluent-ui.md +0 -137
- package/.morph/framework/standards/frontend/blazor/html-conversion.md +0 -184
- package/.morph/framework/standards/frontend/blazor/lifecycle.md +0 -195
- package/.morph/framework/standards/frontend/blazor/pitfalls.md +0 -198
- package/.morph/framework/standards/frontend/blazor/state.md +0 -191
- package/.morph/framework/standards/frontend/design-system/animations.md +0 -151
- package/.morph/framework/standards/frontend/design-system/naming.md +0 -64
- package/.morph/framework/standards/frontend/nextjs/nextjs-patterns.md +0 -198
- package/.morph/framework/standards/infrastructure/azure/azure.md +0 -624
- package/.morph/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
- package/.morph/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
- package/.morph/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
- package/.morph/framework/standards/infrastructure/azure/services/functions.md +0 -486
- package/.morph/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
- package/.morph/framework/standards/infrastructure/azure/services/storage.md +0 -407
- package/.morph/framework/standards/infrastructure/docker/easypanel-deploy.md +0 -196
- package/.morph/framework/standards/infrastructure/supabase/mcp-setup.md +0 -252
- package/.morph/framework/standards/infrastructure/supabase/supabase-auth.md +0 -176
- package/.morph/framework/standards/infrastructure/supabase/supabase-pgvector.md +0 -169
- package/.morph/framework/standards/infrastructure/supabase/supabase-rls.md +0 -184
- package/.morph/framework/standards/infrastructure/supabase/supabase-storage.md +0 -153
- package/.morph/framework/standards/integration/api/graphql.md +0 -91
- package/.morph/framework/standards/integration/api/grpc.md +0 -114
- package/.morph/framework/standards/integration/api/rest-design.md +0 -95
- package/.morph/framework/standards/integration/event-driven/cqrs.md +0 -101
- package/.morph/framework/standards/integration/event-driven/event-sourcing.md +0 -124
- package/.morph/framework/standards/integration/event-driven/service-bus.md +0 -95
- package/.morph/framework/standards/integration/mcp/mcp-tools.md +0 -384
- package/.morph/framework/standards/observability/logging.md +0 -131
- package/.morph/framework/standards/observability/metrics.md +0 -121
- package/.morph/framework/standards/observability/monitoring.md +0 -114
- package/.morph/framework/standards/observability/tracing.md +0 -132
- package/.morph/framework/standards/workflows/parallel-execution.md +0 -112
- package/.morph/framework/standards/workflows/thread-management.md +0 -113
- package/.morph/framework/templates/.idea/morph-templates.xml +0 -92
- package/.morph/framework/templates/.vscode/morph-templates.code-snippets +0 -186
- package/.morph/framework/templates/IDE-SNIPPETS.md +0 -266
- package/.morph/framework/templates/README.md +0 -814
- package/.morph/framework/templates/REGISTRY.json +0 -1492
- package/.morph/framework/templates/code/dotnet/backend/repository.cs +0 -141
- package/.morph/framework/templates/code/dotnet/backend/service.cs +0 -139
- package/.morph/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
- package/.morph/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
- package/.morph/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
- package/.morph/framework/templates/code/dotnet/contracts/README.md +0 -74
- package/.morph/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
- package/.morph/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
- package/.morph/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
- package/.morph/framework/templates/code/dotnet/database/migration.cs +0 -83
- package/.morph/framework/templates/code/dotnet/frontend/component.razor +0 -239
- package/.morph/framework/templates/code/dotnet/jobs/agent.cs +0 -163
- package/.morph/framework/templates/code/dotnet/jobs/job.cs +0 -171
- package/.morph/framework/templates/code/dotnet/test.cs +0 -239
- package/.morph/framework/templates/code/sql/rls-policy.sql +0 -57
- package/.morph/framework/templates/code/sql/supabase-migration.sql +0 -100
- package/.morph/framework/templates/code/sql/supabase-migration.template.sql +0 -113
- package/.morph/framework/templates/code/typescript/contracts.ts +0 -168
- package/.morph/framework/templates/context/CONTEXT-FEATURE.md +0 -276
- package/.morph/framework/templates/context/CONTEXT.md +0 -181
- package/.morph/framework/templates/docs/clarifications.md +0 -253
- package/.morph/framework/templates/docs/onboarding.md +0 -123
- package/.morph/framework/templates/docs/proposal.md +0 -182
- package/.morph/framework/templates/docs/schema-analysis.md +0 -119
- package/.morph/framework/templates/docs/spec.md +0 -149
- package/.morph/framework/templates/docs/ui-components.md +0 -124
- package/.morph/framework/templates/docs/ui-design-system.md +0 -76
- package/.morph/framework/templates/docs/ui-flows.md +0 -167
- package/.morph/framework/templates/docs/ui-mockups.md +0 -98
- package/.morph/framework/templates/examples/design-system-examples.md +0 -357
- package/.morph/framework/templates/examples/spec-examples.md +0 -90
- package/.morph/framework/templates/feature/decisions.md +0 -187
- package/.morph/framework/templates/feature/recap.md +0 -146
- package/.morph/framework/templates/feature/tasks.md +0 -199
- package/.morph/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
- package/.morph/framework/templates/infrastructure/azure/README.md +0 -286
- package/.morph/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
- package/.morph/framework/templates/infrastructure/azure/app-service.bicep +0 -164
- package/.morph/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
- package/.morph/framework/templates/infrastructure/azure/container-app.bicep +0 -156
- package/.morph/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
- package/.morph/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
- package/.morph/framework/templates/infrastructure/azure/deploy.sh +0 -208
- package/.morph/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
- package/.morph/framework/templates/infrastructure/azure/main.bicep +0 -189
- package/.morph/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
- package/.morph/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
- package/.morph/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
- package/.morph/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
- package/.morph/framework/templates/infrastructure/azure/storage.bicep +0 -106
- package/.morph/framework/templates/infrastructure/docker/Dockerfile.template +0 -58
- package/.morph/framework/templates/infrastructure/docker/docker-compose.template.yml +0 -67
- package/.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +0 -38
- package/.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +0 -48
- package/.morph/framework/templates/infrastructure/docker/easypanel.template.json +0 -54
- package/.morph/framework/templates/infrastructure/github/README.md +0 -593
- package/.morph/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
- package/.morph/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +0 -45
- package/.morph/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +0 -27
- package/.morph/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
- package/.morph/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +0 -31
- package/.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +0 -59
- package/.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +0 -39
- package/.morph/framework/templates/integrations/asaas-client.cs +0 -387
- package/.morph/framework/templates/integrations/asaas-webhook.cs +0 -351
- package/.morph/framework/templates/integrations/azure-identity-config.cs +0 -288
- package/.morph/framework/templates/integrations/clerk-config.cs +0 -258
- package/.morph/framework/templates/meta-prompts/fusion/fusion-agent.md +0 -76
- package/.morph/framework/templates/meta-prompts/fusion/fusion-aggregator.md +0 -100
- package/.morph/framework/templates/meta-prompts/hops/hop-retry.md +0 -78
- package/.morph/framework/templates/meta-prompts/hops/hop-validation.md +0 -97
- package/.morph/framework/templates/meta-prompts/hops/hop-wrapper.md +0 -36
- package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +0 -113
- package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +0 -80
- package/.morph/framework/templates/meta-prompts/squad-leaders/backend-squad.md +0 -90
- package/.morph/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +0 -126
- package/.morph/framework/templates/meta-prompts/squad-leaders/squad-leader.md +0 -43
- package/.morph/framework/templates/meta-prompts/validators/checkpoint-validator.md +0 -107
- package/.morph/framework/templates/meta-prompts/validators/pre-commit-validator.md +0 -95
- package/.morph/framework/templates/saas/subscription.cs +0 -347
- package/.morph/framework/templates/saas/tenant.cs +0 -338
- package/.morph/framework/templates/state.template.json +0 -17
- package/.morph/framework/templates/ui/FluentDesignTheme.cs +0 -149
- package/.morph/framework/templates/ui/MudTheme.cs +0 -281
- package/.morph/framework/templates/ui/design-system.css +0 -226
- package/.morph/logs/tool-failures.log +0 -51
- package/.morph/memory/pre-compact-2026-02-22T17-01-01-658Z.json +0 -16
- package/.morph/state.json +0 -48
- package/framework/skills/level-2-domains/backend/api-designer.md +0 -66
- package/framework/skills/level-2-domains/backend/ef-modeler.md +0 -65
- package/framework/skills/level-2-domains/frontend/nextjs-expert.md +0 -161
- package/framework/skills/level-3-technologies/README.md +0 -7
- package/framework/skills/level-4-patterns/README.md +0 -7
- package/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
- package/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
using Microsoft.FluentUI.AspNetCore.Components;
|
|
2
|
-
|
|
3
|
-
namespace {Namespace}.Themes;
|
|
4
|
-
|
|
5
|
-
/// <summary>
|
|
6
|
-
/// Fluent UI Design Theme customizado para {Project Name}.
|
|
7
|
-
/// Gerado automaticamente baseado em ui-design-system.md
|
|
8
|
-
/// </summary>
|
|
9
|
-
/// <remarks>
|
|
10
|
-
/// Template MORPH-SPEC v2.1.1 by Polymorphism Tech
|
|
11
|
-
/// </remarks>
|
|
12
|
-
public static class FluentDesignTheme
|
|
13
|
-
{
|
|
14
|
-
/// <summary>
|
|
15
|
-
/// Paleta de cores do tema
|
|
16
|
-
/// </summary>
|
|
17
|
-
public static DesignThemePalette GetPalette() => new()
|
|
18
|
-
{
|
|
19
|
-
// Cores Principais
|
|
20
|
-
Primary = "#{hex da cor primária}", // Ex: #3b82f6
|
|
21
|
-
Secondary = "#{hex da cor secundária}", // Ex: #6b7280
|
|
22
|
-
|
|
23
|
-
// Cores de Estado
|
|
24
|
-
Success = "#{hex}", // Ex: #10b981
|
|
25
|
-
Error = "#{hex}", // Ex: #ef4444
|
|
26
|
-
Warning = "#{hex}", // Ex: #f59e0b
|
|
27
|
-
Info = "#{hex}", // Ex: #06b6d4
|
|
28
|
-
|
|
29
|
-
// Neutros
|
|
30
|
-
NeutralLight = "#{hex do gray-50}", // Ex: #f9fafb
|
|
31
|
-
NeutralLighter = "#{hex do gray-100}", // Ex: #f3f4f6
|
|
32
|
-
NeutralDark = "#{hex do gray-800}", // Ex: #1f2937
|
|
33
|
-
NeutralDarker = "#{hex do gray-900}", // Ex: #111827
|
|
34
|
-
|
|
35
|
-
// Background e Foreground
|
|
36
|
-
Background = "#ffffff",
|
|
37
|
-
Foreground = "#{hex do gray-900}", // Texto principal
|
|
38
|
-
|
|
39
|
-
// Accent (geralmente = Primary)
|
|
40
|
-
Accent = "#{hex da cor primária}",
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
/// <summary>
|
|
44
|
-
/// Configuração de tipografia
|
|
45
|
-
/// </summary>
|
|
46
|
-
public static DesignThemeTypography GetTypography() => new()
|
|
47
|
-
{
|
|
48
|
-
FontFamily = "'{Font Name}', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
|
|
49
|
-
|
|
50
|
-
// Tamanhos
|
|
51
|
-
FontSizeBase = "1rem", // 16px
|
|
52
|
-
FontSizeSmall = "0.875rem", // 14px
|
|
53
|
-
FontSizeLarge = "1.125rem", // 18px
|
|
54
|
-
|
|
55
|
-
// Weights
|
|
56
|
-
FontWeightRegular = 400,
|
|
57
|
-
FontWeightSemibold = 600,
|
|
58
|
-
FontWeightBold = 700,
|
|
59
|
-
|
|
60
|
-
// Line Heights
|
|
61
|
-
LineHeightBase = 1.5,
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
/// <summary>
|
|
65
|
-
/// Configuração de espaçamento e layout
|
|
66
|
-
/// </summary>
|
|
67
|
-
public static DesignThemeLayout GetLayout() => new()
|
|
68
|
-
{
|
|
69
|
-
// Espaçamento (baseado em múltiplos de {base}px - ex: 4px)
|
|
70
|
-
SpacingBase = "0.25rem", // 4px
|
|
71
|
-
SpacingSmall = "0.5rem", // 8px
|
|
72
|
-
SpacingMedium = "1rem", // 16px
|
|
73
|
-
SpacingLarge = "1.5rem", // 24px
|
|
74
|
-
|
|
75
|
-
// Border Radius
|
|
76
|
-
BorderRadiusSmall = "0.125rem", // 2px
|
|
77
|
-
BorderRadiusMedium = "0.375rem", // 6px
|
|
78
|
-
BorderRadiusLarge = "0.5rem", // 8px
|
|
79
|
-
|
|
80
|
-
// Shadows (depende da biblioteca - ajustar conforme API)
|
|
81
|
-
Elevation1 = "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
|
|
82
|
-
Elevation2 = "0 4px 6px -1px rgba(0, 0, 0, 0.1)",
|
|
83
|
-
Elevation3 = "0 10px 15px -3px rgba(0, 0, 0, 0.1)",
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
/// <summary>
|
|
87
|
-
/// Aplica o tema customizado ao FluentUI
|
|
88
|
-
/// </summary>
|
|
89
|
-
/// <param name="services">Service collection</param>
|
|
90
|
-
public static void AddFluentUIWithCustomTheme(this IServiceCollection services)
|
|
91
|
-
{
|
|
92
|
-
services.AddFluentUIComponents(options =>
|
|
93
|
-
{
|
|
94
|
-
// Aplicar paleta customizada
|
|
95
|
-
options.DesignThemePalette = GetPalette();
|
|
96
|
-
|
|
97
|
-
// Outras configurações do Fluent UI
|
|
98
|
-
// ...
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/// <summary>
|
|
104
|
-
/// Classe de configuração de tipografia
|
|
105
|
-
/// (Ajustar conforme API do Fluent UI Blazor v4.x)
|
|
106
|
-
/// </summary>
|
|
107
|
-
public class DesignThemeTypography
|
|
108
|
-
{
|
|
109
|
-
public string FontFamily { get; set; } = string.Empty;
|
|
110
|
-
public string FontSizeBase { get; set; } = string.Empty;
|
|
111
|
-
public string FontSizeSmall { get; set; } = string.Empty;
|
|
112
|
-
public string FontSizeLarge { get; set; } = string.Empty;
|
|
113
|
-
public int FontWeightRegular { get; set; }
|
|
114
|
-
public int FontWeightSemibold { get; set; }
|
|
115
|
-
public int FontWeightBold { get; set; }
|
|
116
|
-
public double LineHeightBase { get; set; }
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/// <summary>
|
|
120
|
-
/// Classe de configuração de layout
|
|
121
|
-
/// (Ajustar conforme API do Fluent UI Blazor v4.x)
|
|
122
|
-
/// </summary>
|
|
123
|
-
public class DesignThemeLayout
|
|
124
|
-
{
|
|
125
|
-
public string SpacingBase { get; set; } = string.Empty;
|
|
126
|
-
public string SpacingSmall { get; set; } = string.Empty;
|
|
127
|
-
public string SpacingMedium { get; set; } = string.Empty;
|
|
128
|
-
public string SpacingLarge { get; set; } = string.Empty;
|
|
129
|
-
|
|
130
|
-
public string BorderRadiusSmall { get; set; } = string.Empty;
|
|
131
|
-
public string BorderRadiusMedium { get; set; } = string.Empty;
|
|
132
|
-
public string BorderRadiusLarge { get; set; } = string.Empty;
|
|
133
|
-
|
|
134
|
-
public string Elevation1 { get; set; } = string.Empty;
|
|
135
|
-
public string Elevation2 { get; set; } = string.Empty;
|
|
136
|
-
public string Elevation3 { get; set; } = string.Empty;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/// <summary>
|
|
140
|
-
/// EXEMPLO DE USO:
|
|
141
|
-
///
|
|
142
|
-
/// // Program.cs
|
|
143
|
-
/// builder.Services.AddFluentUIWithCustomTheme();
|
|
144
|
-
///
|
|
145
|
-
/// // App.razor ou MainLayout.razor
|
|
146
|
-
/// <FluentDesignTheme Mode="DesignThemeMode.Light" />
|
|
147
|
-
///
|
|
148
|
-
/// // Componentes podem acessar cores via CSS variables ou propriedades do tema
|
|
149
|
-
/// </summary>
|
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
using MudBlazor;
|
|
2
|
-
|
|
3
|
-
namespace {Namespace}.Themes;
|
|
4
|
-
|
|
5
|
-
/// <summary>
|
|
6
|
-
/// MudBlazor Theme customizado para {Project Name}.
|
|
7
|
-
/// Gerado automaticamente baseado em ui-design-system.md
|
|
8
|
-
/// </summary>
|
|
9
|
-
/// <remarks>
|
|
10
|
-
/// Template MORPH-SPEC v2.1.1 by Polymorphism Tech
|
|
11
|
-
/// </remarks>
|
|
12
|
-
public static class AppTheme
|
|
13
|
-
{
|
|
14
|
-
/// <summary>
|
|
15
|
-
/// Tema Light Mode
|
|
16
|
-
/// </summary>
|
|
17
|
-
public static MudTheme LightTheme => new()
|
|
18
|
-
{
|
|
19
|
-
Palette = new PaletteLight
|
|
20
|
-
{
|
|
21
|
-
// Cores Principais
|
|
22
|
-
Primary = "#{hex da cor primária}", // Ex: #3b82f6
|
|
23
|
-
Secondary = "#{hex da cor secundária}", // Ex: #6b7280
|
|
24
|
-
Tertiary = "#{hex da cor terciária}", // Opcional
|
|
25
|
-
|
|
26
|
-
// Cores de Estado
|
|
27
|
-
Success = "#{hex}", // Ex: #10b981
|
|
28
|
-
Error = "#{hex}", // Ex: #ef4444
|
|
29
|
-
Warning = "#{hex}", // Ex: #f59e0b
|
|
30
|
-
Info = "#{hex}", // Ex: #06b6d4
|
|
31
|
-
|
|
32
|
-
// Background e Superfícies
|
|
33
|
-
Background = "#ffffff",
|
|
34
|
-
BackgroundGrey = "#{hex do gray-50}", // Ex: #f9fafb
|
|
35
|
-
Surface = "#ffffff",
|
|
36
|
-
|
|
37
|
-
// Text Colors
|
|
38
|
-
TextPrimary = "#{hex do gray-900}", // Texto principal
|
|
39
|
-
TextSecondary = "#{hex do gray-600}", // Texto secundário
|
|
40
|
-
TextDisabled = "#{hex do gray-400}", // Texto desabilitado
|
|
41
|
-
|
|
42
|
-
// Borders
|
|
43
|
-
Divider = "#{hex do gray-200}", // Divisores
|
|
44
|
-
DividerLight = "#{hex do gray-100}", // Divisores mais claros
|
|
45
|
-
Lines = "#{hex do gray-300}", // Linhas de borda
|
|
46
|
-
|
|
47
|
-
// Action colors (usados em botões, links, etc)
|
|
48
|
-
ActionDefault = "#{hex do gray-500}",
|
|
49
|
-
ActionDisabled = "#{hex do gray-300}",
|
|
50
|
-
ActionDisabledBackground = "#{hex do gray-100}",
|
|
51
|
-
|
|
52
|
-
// Outros
|
|
53
|
-
Dark = "#{hex do gray-800}",
|
|
54
|
-
DarkLighten = "#{hex do gray-700}",
|
|
55
|
-
DarkDarken = "#{hex do gray-900}",
|
|
56
|
-
|
|
57
|
-
// Overlay (usado em modais, dropdowns)
|
|
58
|
-
OverlayLight = "rgba(255, 255, 255, 0.95)",
|
|
59
|
-
OverlayDark = "rgba(33, 33, 33, 0.95)",
|
|
60
|
-
|
|
61
|
-
// Hover effects
|
|
62
|
-
HoverOpacity = 0.06, // Opacidade do hover (6%)
|
|
63
|
-
},
|
|
64
|
-
|
|
65
|
-
Typography = new Typography
|
|
66
|
-
{
|
|
67
|
-
// Font Families
|
|
68
|
-
Default = new Default
|
|
69
|
-
{
|
|
70
|
-
FontFamily = new[] { "{Font Name}", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "sans-serif" },
|
|
71
|
-
FontSize = "1rem", // 16px
|
|
72
|
-
FontWeight = 400, // Regular
|
|
73
|
-
LineHeight = 1.5,
|
|
74
|
-
LetterSpacing = "normal",
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
H1 = new H1
|
|
78
|
-
{
|
|
79
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
80
|
-
FontSize = "2.25rem", // 36px
|
|
81
|
-
FontWeight = 700, // Bold
|
|
82
|
-
LineHeight = 1.2,
|
|
83
|
-
},
|
|
84
|
-
|
|
85
|
-
H2 = new H2
|
|
86
|
-
{
|
|
87
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
88
|
-
FontSize = "1.875rem", // 30px
|
|
89
|
-
FontWeight = 700,
|
|
90
|
-
LineHeight = 1.3,
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
H3 = new H3
|
|
94
|
-
{
|
|
95
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
96
|
-
FontSize = "1.5rem", // 24px
|
|
97
|
-
FontWeight = 600,
|
|
98
|
-
LineHeight = 1.4,
|
|
99
|
-
},
|
|
100
|
-
|
|
101
|
-
H4 = new H4
|
|
102
|
-
{
|
|
103
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
104
|
-
FontSize = "1.25rem", // 20px
|
|
105
|
-
FontWeight = 600,
|
|
106
|
-
LineHeight = 1.4,
|
|
107
|
-
},
|
|
108
|
-
|
|
109
|
-
H5 = new H5
|
|
110
|
-
{
|
|
111
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
112
|
-
FontSize = "1.125rem", // 18px
|
|
113
|
-
FontWeight = 600,
|
|
114
|
-
LineHeight = 1.5,
|
|
115
|
-
},
|
|
116
|
-
|
|
117
|
-
H6 = new H6
|
|
118
|
-
{
|
|
119
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
120
|
-
FontSize = "1rem", // 16px
|
|
121
|
-
FontWeight = 600,
|
|
122
|
-
LineHeight = 1.5,
|
|
123
|
-
},
|
|
124
|
-
|
|
125
|
-
Body1 = new Body1
|
|
126
|
-
{
|
|
127
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
128
|
-
FontSize = "1rem", // 16px
|
|
129
|
-
FontWeight = 400,
|
|
130
|
-
LineHeight = 1.5,
|
|
131
|
-
},
|
|
132
|
-
|
|
133
|
-
Body2 = new Body2
|
|
134
|
-
{
|
|
135
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
136
|
-
FontSize = "0.875rem", // 14px
|
|
137
|
-
FontWeight = 400,
|
|
138
|
-
LineHeight = 1.43,
|
|
139
|
-
},
|
|
140
|
-
|
|
141
|
-
Button = new Button
|
|
142
|
-
{
|
|
143
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
144
|
-
FontSize = "0.875rem", // 14px
|
|
145
|
-
FontWeight = 600, // Semibold
|
|
146
|
-
LineHeight = 1.75,
|
|
147
|
-
TextTransform = "none", // Ou "uppercase" se preferir
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
Caption = new Caption
|
|
151
|
-
{
|
|
152
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
153
|
-
FontSize = "0.75rem", // 12px
|
|
154
|
-
FontWeight = 400,
|
|
155
|
-
LineHeight = 1.66,
|
|
156
|
-
},
|
|
157
|
-
|
|
158
|
-
Subtitle1 = new Subtitle1
|
|
159
|
-
{
|
|
160
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
161
|
-
FontSize = "1rem",
|
|
162
|
-
FontWeight = 500, // Medium
|
|
163
|
-
LineHeight = 1.75,
|
|
164
|
-
},
|
|
165
|
-
|
|
166
|
-
Subtitle2 = new Subtitle2
|
|
167
|
-
{
|
|
168
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
169
|
-
FontSize = "0.875rem",
|
|
170
|
-
FontWeight = 500,
|
|
171
|
-
LineHeight = 1.57,
|
|
172
|
-
},
|
|
173
|
-
|
|
174
|
-
Overline = new Overline
|
|
175
|
-
{
|
|
176
|
-
FontFamily = new[] { "{Font Name}", "sans-serif" },
|
|
177
|
-
FontSize = "0.75rem",
|
|
178
|
-
FontWeight = 600,
|
|
179
|
-
LineHeight = 2.66,
|
|
180
|
-
LetterSpacing = "0.08em",
|
|
181
|
-
},
|
|
182
|
-
},
|
|
183
|
-
|
|
184
|
-
Shadows = new Shadow
|
|
185
|
-
{
|
|
186
|
-
Elevation = new[]
|
|
187
|
-
{
|
|
188
|
-
"none", // 0
|
|
189
|
-
"0 1px 2px 0 rgba(0, 0, 0, 0.05)", // 1
|
|
190
|
-
"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)", // 2
|
|
191
|
-
"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)", // 3
|
|
192
|
-
"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)", // 4
|
|
193
|
-
"0 25px 50px -12px rgba(0, 0, 0, 0.25)", // 5
|
|
194
|
-
// Adicione mais elevações conforme necessário
|
|
195
|
-
}
|
|
196
|
-
},
|
|
197
|
-
|
|
198
|
-
LayoutProperties = new LayoutProperties
|
|
199
|
-
{
|
|
200
|
-
// Border Radius
|
|
201
|
-
DefaultBorderRadius = "6px", // md
|
|
202
|
-
|
|
203
|
-
// Drawer
|
|
204
|
-
DrawerWidthLeft = "240px",
|
|
205
|
-
DrawerWidthRight = "240px",
|
|
206
|
-
|
|
207
|
-
// AppBar
|
|
208
|
-
AppbarHeight = "64px",
|
|
209
|
-
},
|
|
210
|
-
|
|
211
|
-
ZIndex = new ZIndex
|
|
212
|
-
{
|
|
213
|
-
Drawer = 1200,
|
|
214
|
-
AppBar = 1100,
|
|
215
|
-
Dialog = 1300,
|
|
216
|
-
Popover = 1400,
|
|
217
|
-
Snackbar = 1500,
|
|
218
|
-
Tooltip = 1600,
|
|
219
|
-
},
|
|
220
|
-
};
|
|
221
|
-
|
|
222
|
-
/// <summary>
|
|
223
|
-
/// Tema Dark Mode (opcional - ajustar cores)
|
|
224
|
-
/// </summary>
|
|
225
|
-
public static MudTheme DarkTheme => new()
|
|
226
|
-
{
|
|
227
|
-
Palette = new PaletteDark
|
|
228
|
-
{
|
|
229
|
-
// Cores Principais (ajustar para dark mode)
|
|
230
|
-
Primary = "#{hex}",
|
|
231
|
-
Secondary = "#{hex}",
|
|
232
|
-
|
|
233
|
-
// Cores de Estado
|
|
234
|
-
Success = "#{hex}",
|
|
235
|
-
Error = "#{hex}",
|
|
236
|
-
Warning = "#{hex}",
|
|
237
|
-
Info = "#{hex}",
|
|
238
|
-
|
|
239
|
-
// Background e Superfícies (tons escuros)
|
|
240
|
-
Background = "#{hex do gray-900}",
|
|
241
|
-
BackgroundGrey = "#{hex do gray-800}",
|
|
242
|
-
Surface = "#{hex do gray-800}",
|
|
243
|
-
|
|
244
|
-
// Text Colors (invertidos)
|
|
245
|
-
TextPrimary = "#{hex do gray-50}",
|
|
246
|
-
TextSecondary = "#{hex do gray-400}",
|
|
247
|
-
TextDisabled = "#{hex do gray-600}",
|
|
248
|
-
|
|
249
|
-
// Etc... (ajustar conforme design system dark mode)
|
|
250
|
-
},
|
|
251
|
-
|
|
252
|
-
// Compartilhar Typography e outras configurações do LightTheme
|
|
253
|
-
Typography = LightTheme.Typography,
|
|
254
|
-
Shadows = LightTheme.Shadows,
|
|
255
|
-
LayoutProperties = LightTheme.LayoutProperties,
|
|
256
|
-
ZIndex = LightTheme.ZIndex,
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
/// <summary>
|
|
261
|
-
/// EXEMPLO DE USO:
|
|
262
|
-
///
|
|
263
|
-
/// // Program.cs
|
|
264
|
-
/// builder.Services.AddMudServices(config =>
|
|
265
|
-
/// {
|
|
266
|
-
/// config.SnackbarConfiguration.PositionClass = Defaults.Classes.Position.BottomRight;
|
|
267
|
-
/// });
|
|
268
|
-
///
|
|
269
|
-
/// // App.razor ou MainLayout.razor
|
|
270
|
-
/// <MudThemeProvider Theme="@AppTheme.LightTheme" />
|
|
271
|
-
/// <MudDialogProvider />
|
|
272
|
-
/// <MudSnackbarProvider />
|
|
273
|
-
///
|
|
274
|
-
/// // Para suportar dark mode dinâmico:
|
|
275
|
-
/// <MudThemeProvider @bind-IsDarkMode="@_isDarkMode"
|
|
276
|
-
/// Theme="@(_isDarkMode ? AppTheme.DarkTheme : AppTheme.LightTheme)" />
|
|
277
|
-
///
|
|
278
|
-
/// @code {
|
|
279
|
-
/// private bool _isDarkMode;
|
|
280
|
-
/// }
|
|
281
|
-
/// </summary>
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Design System - {Project Name}
|
|
3
|
-
*
|
|
4
|
-
* CSS Variables generated from ui-design-system.md
|
|
5
|
-
* Use estas variáveis em todo o projeto para manter consistência visual.
|
|
6
|
-
*
|
|
7
|
-
* Template MORPH-SPEC v2.1.1 by Polymorphism Tech
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
:root {
|
|
11
|
-
/* ========================================
|
|
12
|
-
* CORES PRINCIPAIS
|
|
13
|
-
* ======================================== */
|
|
14
|
-
|
|
15
|
-
--color-primary: #{hex da cor primária};
|
|
16
|
-
--color-primary-hover: #{hex da cor primária mais escura};
|
|
17
|
-
--color-primary-active: #{hex da cor primária ainda mais escura};
|
|
18
|
-
|
|
19
|
-
--color-secondary: #{hex da cor secundária};
|
|
20
|
-
--color-secondary-hover: #{hex};
|
|
21
|
-
--color-secondary-active: #{hex};
|
|
22
|
-
|
|
23
|
-
/* ========================================
|
|
24
|
-
* CORES DE ESTADO
|
|
25
|
-
* ======================================== */
|
|
26
|
-
|
|
27
|
-
--color-success: #{hex};
|
|
28
|
-
--color-success-bg: #{hex com transparência ou shade mais claro};
|
|
29
|
-
--color-success-border: #{hex};
|
|
30
|
-
|
|
31
|
-
--color-error: #{hex};
|
|
32
|
-
--color-error-bg: #{hex};
|
|
33
|
-
--color-error-border: #{hex};
|
|
34
|
-
|
|
35
|
-
--color-warning: #{hex};
|
|
36
|
-
--color-warning-bg: #{hex};
|
|
37
|
-
--color-warning-border: #{hex};
|
|
38
|
-
|
|
39
|
-
--color-info: #{hex};
|
|
40
|
-
--color-info-bg: #{hex};
|
|
41
|
-
--color-info-border: #{hex};
|
|
42
|
-
|
|
43
|
-
/* ========================================
|
|
44
|
-
* ESCALA DE NEUTROS (Cinzas)
|
|
45
|
-
* ======================================== */
|
|
46
|
-
|
|
47
|
-
--color-gray-50: #{hex};
|
|
48
|
-
--color-gray-100: #{hex};
|
|
49
|
-
--color-gray-200: #{hex};
|
|
50
|
-
--color-gray-300: #{hex};
|
|
51
|
-
--color-gray-400: #{hex};
|
|
52
|
-
--color-gray-500: #{hex};
|
|
53
|
-
--color-gray-600: #{hex};
|
|
54
|
-
--color-gray-700: #{hex};
|
|
55
|
-
--color-gray-800: #{hex};
|
|
56
|
-
--color-gray-900: #{hex};
|
|
57
|
-
|
|
58
|
-
/* ========================================
|
|
59
|
-
* TIPOGRAFIA - FONTES
|
|
60
|
-
* ======================================== */
|
|
61
|
-
|
|
62
|
-
--font-sans: '{Font Name}', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
|
|
63
|
-
--font-serif: '{Font Name}', Georgia, 'Times New Roman', serif;
|
|
64
|
-
--font-mono: '{Font Name}', 'Fira Code', 'Courier New', Consolas, monospace;
|
|
65
|
-
|
|
66
|
-
/* ========================================
|
|
67
|
-
* TIPOGRAFIA - TAMANHOS
|
|
68
|
-
* ======================================== */
|
|
69
|
-
|
|
70
|
-
--text-xs: 0.75rem; /* 12px */
|
|
71
|
-
--text-sm: 0.875rem; /* 14px */
|
|
72
|
-
--text-base: 1rem; /* 16px */
|
|
73
|
-
--text-lg: 1.125rem; /* 18px */
|
|
74
|
-
--text-xl: 1.25rem; /* 20px */
|
|
75
|
-
--text-2xl: 1.5rem; /* 24px */
|
|
76
|
-
--text-3xl: 1.875rem; /* 30px */
|
|
77
|
-
--text-4xl: 2.25rem; /* 36px */
|
|
78
|
-
--text-5xl: 3rem; /* 48px */
|
|
79
|
-
|
|
80
|
-
/* ========================================
|
|
81
|
-
* TIPOGRAFIA - LINE HEIGHTS
|
|
82
|
-
* ======================================== */
|
|
83
|
-
|
|
84
|
-
--leading-none: 1;
|
|
85
|
-
--leading-tight: 1.25;
|
|
86
|
-
--leading-snug: 1.375;
|
|
87
|
-
--leading-normal: 1.5;
|
|
88
|
-
--leading-relaxed: 1.625;
|
|
89
|
-
--leading-loose: 2;
|
|
90
|
-
|
|
91
|
-
/* ========================================
|
|
92
|
-
* TIPOGRAFIA - FONT WEIGHTS
|
|
93
|
-
* ======================================== */
|
|
94
|
-
|
|
95
|
-
--font-light: 300;
|
|
96
|
-
--font-regular: 400;
|
|
97
|
-
--font-medium: 500;
|
|
98
|
-
--font-semibold: 600;
|
|
99
|
-
--font-bold: 700;
|
|
100
|
-
--font-extrabold: 800;
|
|
101
|
-
|
|
102
|
-
/* ========================================
|
|
103
|
-
* ESPAÇAMENTO
|
|
104
|
-
* Baseado em múltiplos de {base}px (ex: 4px)
|
|
105
|
-
* ======================================== */
|
|
106
|
-
|
|
107
|
-
--space-0: 0;
|
|
108
|
-
--space-1: 0.25rem; /* 4px */
|
|
109
|
-
--space-2: 0.5rem; /* 8px */
|
|
110
|
-
--space-3: 0.75rem; /* 12px */
|
|
111
|
-
--space-4: 1rem; /* 16px */
|
|
112
|
-
--space-5: 1.25rem; /* 20px */
|
|
113
|
-
--space-6: 1.5rem; /* 24px */
|
|
114
|
-
--space-7: 1.75rem; /* 28px */
|
|
115
|
-
--space-8: 2rem; /* 32px */
|
|
116
|
-
--space-10: 2.5rem; /* 40px */
|
|
117
|
-
--space-12: 3rem; /* 48px */
|
|
118
|
-
--space-16: 4rem; /* 64px */
|
|
119
|
-
--space-20: 5rem; /* 80px */
|
|
120
|
-
--space-24: 6rem; /* 96px */
|
|
121
|
-
|
|
122
|
-
/* ========================================
|
|
123
|
-
* BORDER RADIUS
|
|
124
|
-
* ======================================== */
|
|
125
|
-
|
|
126
|
-
--rounded-none: 0;
|
|
127
|
-
--rounded-sm: 0.125rem; /* 2px */
|
|
128
|
-
--rounded-md: 0.375rem; /* 6px */
|
|
129
|
-
--rounded-lg: 0.5rem; /* 8px */
|
|
130
|
-
--rounded-xl: 0.75rem; /* 12px */
|
|
131
|
-
--rounded-2xl: 1rem; /* 16px */
|
|
132
|
-
--rounded-full: 9999px;
|
|
133
|
-
|
|
134
|
-
/* ========================================
|
|
135
|
-
* SOMBRAS (Shadows)
|
|
136
|
-
* ======================================== */
|
|
137
|
-
|
|
138
|
-
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
139
|
-
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
140
|
-
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
|
|
141
|
-
--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
|
|
142
|
-
--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
|
|
143
|
-
|
|
144
|
-
/* ========================================
|
|
145
|
-
* Z-INDEX LAYERS
|
|
146
|
-
* ======================================== */
|
|
147
|
-
|
|
148
|
-
--z-0: 0;
|
|
149
|
-
--z-10: 10;
|
|
150
|
-
--z-20: 20;
|
|
151
|
-
--z-30: 30;
|
|
152
|
-
--z-40: 40;
|
|
153
|
-
--z-50: 50; /* Modals, dropdowns */
|
|
154
|
-
--z-100: 100; /* Tooltips */
|
|
155
|
-
--z-max: 9999; /* Toasts, notifications */
|
|
156
|
-
|
|
157
|
-
/* ========================================
|
|
158
|
-
* TRANSITIONS / ANIMATIONS
|
|
159
|
-
* ======================================== */
|
|
160
|
-
|
|
161
|
-
--transition-fast: 150ms ease-in-out;
|
|
162
|
-
--transition-base: 250ms ease-in-out;
|
|
163
|
-
--transition-slow: 350ms ease-in-out;
|
|
164
|
-
|
|
165
|
-
--ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
166
|
-
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
167
|
-
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
168
|
-
|
|
169
|
-
/* ========================================
|
|
170
|
-
* BREAKPOINTS (informativo - usar em media queries)
|
|
171
|
-
* ======================================== */
|
|
172
|
-
|
|
173
|
-
/* @media (min-width: 640px) - sm */
|
|
174
|
-
/* @media (min-width: 768px) - md */
|
|
175
|
-
/* @media (min-width: 1024px) - lg */
|
|
176
|
-
/* @media (min-width: 1280px) - xl */
|
|
177
|
-
/* @media (min-width: 1536px) - 2xl */
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/* ========================================
|
|
181
|
-
* MODO ESCURO (Dark Mode)
|
|
182
|
-
* Opcional - ajuste as cores para dark theme
|
|
183
|
-
* ======================================== */
|
|
184
|
-
|
|
185
|
-
@media (prefers-color-scheme: dark) {
|
|
186
|
-
:root {
|
|
187
|
-
/* Inverter cores conforme necessário */
|
|
188
|
-
--color-gray-50: #{hex do gray-900};
|
|
189
|
-
--color-gray-900: #{hex do gray-50};
|
|
190
|
-
/* ... outras inversões */
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/* ========================================
|
|
195
|
-
* CLASSES UTILITÁRIAS (Exemplo)
|
|
196
|
-
* ======================================== */
|
|
197
|
-
|
|
198
|
-
/* Exemplo de uso das variáveis */
|
|
199
|
-
.btn-primary {
|
|
200
|
-
background-color: var(--color-primary);
|
|
201
|
-
color: white;
|
|
202
|
-
padding: var(--space-2) var(--space-4);
|
|
203
|
-
border-radius: var(--rounded-md);
|
|
204
|
-
font-weight: var(--font-semibold);
|
|
205
|
-
transition: background-color var(--transition-base);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
.btn-primary:hover {
|
|
209
|
-
background-color: var(--color-primary-hover);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
.card {
|
|
213
|
-
background-color: white;
|
|
214
|
-
padding: var(--space-6);
|
|
215
|
-
border-radius: var(--rounded-lg);
|
|
216
|
-
box-shadow: var(--shadow-md);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
.text-muted {
|
|
220
|
-
color: var(--color-gray-600);
|
|
221
|
-
font-size: var(--text-sm);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/* ========================================
|
|
225
|
-
* FIM DO DESIGN SYSTEM
|
|
226
|
-
* ======================================== */
|