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.
@@ -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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vireum-spec-cli",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Spec Driven Development framework by Vireum Desenvolvimento",
5
5
  "main": "dist/index.js",
6
6
  "bin": {