vireum-spec-cli 0.4.0 → 0.4.1
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/dist/commands/setup.js +49 -2
- package/package.json +1 -1
package/dist/commands/setup.js
CHANGED
|
@@ -174,7 +174,7 @@ async function runSetup() {
|
|
|
174
174
|
{ name: 'Nenhum — sem design system definido', value: 'none' },
|
|
175
175
|
],
|
|
176
176
|
});
|
|
177
|
-
const design = { system: designSystem, cores: {}, fontes: {}, customizacoes: '' };
|
|
177
|
+
const design = { system: designSystem, cores: {}, fontes: {}, customizacoes: '', gerarBase: false, baseTailwind: false };
|
|
178
178
|
if (['shadcn', 'tailwind', 'chakra', 'mui'].includes(designSystem)) {
|
|
179
179
|
const temCustom = await (0, prompts_1.confirm)({
|
|
180
180
|
message: 'Tem customizacoes? (cores da marca, fontes especificas?)',
|
|
@@ -204,6 +204,24 @@ async function runSetup() {
|
|
|
204
204
|
design.customizacoes = await (0, prompts_1.input)({ message: 'Componentes ou convencoes importantes (Enter para pular):', default: '' });
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
|
+
if (designSystem === 'none') {
|
|
208
|
+
const criarBase = await (0, prompts_1.confirm)({
|
|
209
|
+
message: 'Quer criar uma estrutura de design basica para o projeto?',
|
|
210
|
+
default: true,
|
|
211
|
+
});
|
|
212
|
+
if (criarBase) {
|
|
213
|
+
design.system = 'base';
|
|
214
|
+
design.gerarBase = true;
|
|
215
|
+
design.baseTailwind = await (0, prompts_1.confirm)({ message: 'Usar Tailwind CSS como base?', default: true });
|
|
216
|
+
design.cores.primary = await (0, prompts_1.input)({ message: 'Cor primaria (Enter para #2D7DD2):', default: '#2D7DD2' });
|
|
217
|
+
design.cores.secondary = await (0, prompts_1.input)({ message: 'Cor secundaria (Enter para #1A3A5C):', default: '#1A3A5C' });
|
|
218
|
+
design.cores.accent = await (0, prompts_1.input)({ message: 'Cor de destaque (Enter para #1D9E75):', default: '#1D9E75' });
|
|
219
|
+
design.cores.background = await (0, prompts_1.input)({ message: 'Cor de fundo (Enter para #F4F7FB):', default: '#F4F7FB' });
|
|
220
|
+
design.cores.text = await (0, prompts_1.input)({ message: 'Cor de texto (Enter para #1A1A2E):', default: '#1A1A2E' });
|
|
221
|
+
design.fontes.heading = await (0, prompts_1.input)({ message: 'Fonte de titulos (Enter para Inter):', default: 'Inter' });
|
|
222
|
+
design.fontes.body = await (0, prompts_1.input)({ message: 'Fonte de corpo (Enter para Inter):', default: 'Inter' });
|
|
223
|
+
}
|
|
224
|
+
}
|
|
207
225
|
// ── Gerar arquivos ─────────────────────────────────────────────────────────
|
|
208
226
|
console.log('');
|
|
209
227
|
const projeto = extrairProjeto(path.join(specDir, 'INDEX.md'));
|
|
@@ -592,6 +610,18 @@ function gerarDesign(d) {
|
|
|
592
610
|
],
|
|
593
611
|
tokens: 'createTheme()',
|
|
594
612
|
},
|
|
613
|
+
base: {
|
|
614
|
+
descricao: 'Design system basico gerado pelo Vireum Spec Framework',
|
|
615
|
+
convencoes: [
|
|
616
|
+
`Usar ${design.baseTailwind ? 'Tailwind CSS' : 'CSS customizado'} para estilizacao`,
|
|
617
|
+
'Tokens de cor definidos neste arquivo — nunca hardcodar valores',
|
|
618
|
+
'Componentes em src/components/',
|
|
619
|
+
'Tipografia consistente — usar apenas as fontes definidas aqui',
|
|
620
|
+
'Espacamento em multiplos de 4px',
|
|
621
|
+
'Bordas arredondadas padrao: 8px',
|
|
622
|
+
],
|
|
623
|
+
tokens: design.baseTailwind ? 'tailwind.config.ts + CSS variables' : 'CSS variables em globals.css',
|
|
624
|
+
},
|
|
595
625
|
custom: {
|
|
596
626
|
descricao: 'Design system proprio',
|
|
597
627
|
convencoes: ['Ver secao de convencoes abaixo'],
|
|
@@ -616,6 +646,22 @@ function gerarDesign(d) {
|
|
|
616
646
|
.map(([k, v]) => `- ${k}: ${v}`)
|
|
617
647
|
.join('\n')
|
|
618
648
|
: '> Usar fonte padrao do sistema';
|
|
649
|
+
const baseSection = design.system === 'base' ? `
|
|
650
|
+
## Espacamento
|
|
651
|
+
- Base: 4px
|
|
652
|
+
- xs: 4px | sm: 8px | md: 16px | lg: 24px | xl: 32px | 2xl: 48px
|
|
653
|
+
|
|
654
|
+
## Bordas
|
|
655
|
+
- Radius padrao: 8px
|
|
656
|
+
- Radius pequeno: 4px
|
|
657
|
+
- Radius grande: 16px
|
|
658
|
+
- Radius pill: 9999px
|
|
659
|
+
|
|
660
|
+
## Sombras
|
|
661
|
+
- sm: 0 1px 2px rgba(0,0,0,0.05)
|
|
662
|
+
- md: 0 4px 6px rgba(0,0,0,0.07)
|
|
663
|
+
- lg: 0 10px 15px rgba(0,0,0,0.10)
|
|
664
|
+
` : '';
|
|
619
665
|
return `# Design — ${projeto}
|
|
620
666
|
|
|
621
667
|
> A IA deve consultar este arquivo antes de criar ou modificar qualquer componente de UI.
|
|
@@ -634,7 +680,7 @@ ${fontesSection}
|
|
|
634
680
|
## Convencoes
|
|
635
681
|
${ds.convencoes.map((c) => `- ${c}`).join('\n')}
|
|
636
682
|
${design.customizacoes ? `\n## Convencoes Customizadas\n${design.customizacoes}` : ''}
|
|
637
|
-
|
|
683
|
+
${baseSection}
|
|
638
684
|
## Regras para a IA
|
|
639
685
|
- Nunca criar componente sem consultar este arquivo primeiro
|
|
640
686
|
- Nunca hardcodar cores — usar sempre os tokens definidos acima
|
|
@@ -643,6 +689,7 @@ ${design.customizacoes ? `\n## Convencoes Customizadas\n${design.customizacoes}`
|
|
|
643
689
|
- Em caso de duvida sobre UI, perguntar ao dev antes de implementar
|
|
644
690
|
${design.system === 'shadcn' ? '- Sempre usar cn() para mesclar classes condicionais\n- Preferir componentes do Shadcn antes de criar do zero' : ''}
|
|
645
691
|
${design.system === 'tailwind' ? '- Preferir classes Tailwind a CSS customizado\n- Nao criar novas classes sem necessidade real' : ''}
|
|
692
|
+
${design.system === 'base' ? `- Seguir tokens de espacamento e bordas definidos acima\n- ${design.baseTailwind ? 'Usar classes Tailwind mapeadas para os tokens' : 'Usar CSS variables definidas em globals.css'}` : ''}
|
|
646
693
|
|
|
647
694
|
## Componentes Existentes
|
|
648
695
|
> A IA deve atualizar esta secao conforme novos componentes sao criados
|