O design system fica hospedado em ui.ajudaecom.com.br — uma fonte única. Todos os apps puxam o CSS e o JS de lá. Quando algo muda no servidor, todos os apps mudam juntos, sem precisar mexer em cada um.
<link> e <script> apontando para o servidor.Dois exemplos prontos para você ver a identidade funcionando — um app avulso e um painel completo.
os exemplos abrem do servidor — suba DEMO-modelo-painel.html e DEMO-modelo-app.html junto com os outros arquivos.
Os arquivos do design system ficam em ui.ajudaecom.com.br. Baixe aqui para subir a primeira vez (ou quando o Claude gerar uma versão nova). Depois é só substituir no servidor — os apps puxam a versão nova sozinhos.
suba ajuda-ds.css e ajuda-ds.js na raiz de ui.ajudaecom.com.br. veja o passo a passo e a configuração de cache na seção "publicar e atualizar" mais abaixo.
Dois prompts pro Claude, conforme o momento. Copie o que se aplica e cole no começo da conversa.
Quando for criar uma ferramenta nova já aplicando a identidade desde o início.
Vou criar um app novo usando o design system da Ajuda Ecommerce, hospedado no nosso servidor. NÃO recrie o CSS nem copie estilos para dentro do app — sempre referencie os arquivos do servidor. TIPO (escolha um e apague os outros): [ ] FERRAMENTA AVULSA — tela simples: header com a marca + conteúdo, sem menu lateral. [ ] PÁGINA DO PAINEL — usa a casca .aj-shell com a sidebar; esta ferramenta é um item do menu (marque-a com .is-active). Replique a mesma sidebar do painel. [ ] O PAINEL EM SI — a estrutura completa do painel (sidebar com categorias + área de conteúdo). No <head>, nesta ordem: <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Space+Grotesk:wght@400;600;700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://ui.ajudaecom.com.br/ajuda-ds.css"> Antes de </body>: <script src="https://ui.ajudaecom.com.br/ajuda-ds.js"></script> Construa a interface com as classes aj-* (botoes, formularios, alertas, tabela; painel .aj-shell/.aj-side/.aj-navgroup/.aj-navitem se for painel). Use data-mask nos campos de documento. Regras: verde so para acao/destaque, nunca como texto; azul como base; o // como assinatura; numeros grandes na fonte display; botoes lado a lado em .aj-btn-row. App responsivo, mobile-first. Depois eu descrevo a tela.
Quando a solução já está pronta e funcionando, e você só quer vestir ela com o design.
Este app já funciona. Quero que você aplique o design system da Ajuda Ecommerce SÓ na aparência, sem mexer na lógica. TIPO (escolha um e apague os outros): [ ] FERRAMENTA AVULSA — tela simples: header com a marca + conteúdo, sem menu lateral. [ ] PÁGINA DO PAINEL — envolva o conteúdo atual na casca .aj-shell com a sidebar; esta ferramenta vira um item do menu (.is-active). Replique a mesma sidebar do painel. REGRA PRINCIPAL: não altere nenhum comportamento. Preserve todo o JavaScript, funções, cálculos, validações, IDs, nomes de variáveis e o fluxo que já funcionam. Você só troca o visual. O que fazer: 1. No <head> adicione (sem remover o que já existe): <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Space+Grotesk:wght@400;600;700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://ui.ajudaecom.com.br/ajuda-ds.css"> 2. Antes de </body>: <script src="https://ui.ajudaecom.com.br/ajuda-ds.js"></script> 3. Remova o CSS visual antigo que conflita (cores, fontes, espacamentos) e aplique as classes aj-* nos elementos que já existem: botoes viram .aj-btn (a acao principal .aj-btn--primary verde); inputs/selects viram .aj-input/.aj-select dentro de .aj-field com .aj-label; tabelas .aj-table; avisos .aj-alert. Botoes lado a lado em .aj-btn-row. Se for PÁGINA DO PAINEL, envolva tudo na .aj-shell. 4. Se o app já tem header/logo/cabecalho ou rodape/footer proprios, SUBSTITUA pelos nossos: o cabecalho vira .aj-appbar (logo da Ajuda + titulo da ferramenta, reaproveitando o nome que ja existia); o rodape vira .aj-footer (logo + atendimento@ajudaecom.com.br + copyright). Se for PÁGINA DO PAINEL, o cabecalho vira a topbar .aj-topbar com .aj-topbar__brand (logo pequena + nome da ferramenta). Descarte a logo/header/footer antigos do app. 5. Regras de identidade: verde so para acao/destaque, nunca texto; azul como base; numeros grandes na fonte display. App responsivo, mobile-first. NÃO mude textos, rotulos, ordem dos campos nem a logica. Se algo for ambiguo, pergunte antes de mexer. Vou colar o codigo do app a seguir.
Abaixo, tudo que o sistema oferece: logo, cores, tipografia, componentes, pattern e diretrizes. Use como consulta ao construir.
A logo é o wordmark oficial — nunca redigite "ajuda//ecommerce" como texto. Use o arquivo SVG. Duas versões conforme o fundo.
O // do logo vira textura de fundo, em grade escalonada. Quatro combinações de cor para diferentes contextos. Use com moderação — em faixas, capas e áreas de respiro, nunca atrás de texto corrido.
Modelo para slides, capas e heros de página: fundo azul, título display em branco, apoio em verde. Pattern opcional em baixa opacidade ao fundo.
Texto de apoio em verde, sempre curto e direto, reforçando a ideia central da seção.
Três cores-âncora extraídas do logo, com escalas derivadas para estados, fundos e texto.
PX Grotesk é a fonte da marca; sem licença, cai para Space Mono (mono) e Space Grotesk (corpo/display). Cada nível tem tamanho, peso, entrelinha, tracking e uso definidos. Use a classe correspondente.
| nível | amostra | tam / peso | entrelinha / tracking | uso |
|---|---|---|---|---|
| .aj-display | Performance | 3.5rem / 700 |
1.1 / -.02em |
capas, heros, números de destaque |
| .aj-h1 | Título de página | 2.5rem / 700 |
1.1 / -.02em |
título principal da tela |
| .aj-h2 | Título de seção | 1.75rem / 700 |
1.3 / -.02em |
seções dentro da página |
| .aj-h3 | Subtítulo | 1.25rem / 600 |
1.3 / 0 |
cards, blocos, agrupamentos |
| .aj-body | Texto de corpo padrão. | 1rem / 400 |
1.6 / 0 |
parágrafos e leitura corrida |
| .aj-small | Texto auxiliar menor. | .875rem / 400 |
1.6 / 0 |
legendas, apoio, metadados |
| .aj-label-txt | // rótulo | .75rem / 700 |
1.6 / .12em |
eyebrows, rótulos, tags mono |
A cor principal é o verde (primary) — use-o sempre. As outras variantes existem só quando há hierarquia real (uma ação principal e outra alternativa). Evite dois botões cheios competindo na mesma tela.
Para duas ações verdes lado a lado (ex.: downloads): primary + primary-soft.
| propriedade | médio (.aj-btn--md) | grande (.aj-btn--lg) |
|---|---|---|
| padding | 14px 28px | 18px 38px |
| font-size | .875rem | 1rem |
| font-weight | 700 | 700 |
| line-height | 1 | 1 |
| letter-spacing | .01em | .01em |
| gap (ícone↔texto) | 10px | 10px |
| border-radius | 4px | 4px |
| família | mono | mono |
Topo verde como assinatura, base azul para texto. Reuse em listas, dashboards e métricas.
Decisão de UX: o ícone do botão deve descrever a ação — não ser enfeite. Se o botão baixa algo, ícone de download; se copia, ícone de cópia; se salva, ícone de disquete. Isso acelera o reconhecimento e reduz o esforço de leitura. O ícone vem antes do texto.
O ícone reforça a ação que o texto já diz. Os dois juntos comunicam mais rápido.
Estilo linha fina. Use dentro do botão como <svg viewBox="0 0 24 24">…</svg> antes do texto. O CSS já cuida do tamanho e alinhamento.
Conjunto pronto para montar telas inteiras em HTML/CSS puro. Cada componente já vem com estados (foco por teclado, ativo, erro, desabilitado) e acessibilidade. Use as classes aj-*.
Conteúdo da visão geral. Clique nas abas acima — elas trocam de verdade.
Lista de pedidos apareceria aqui.
Documentos fiscais (NF-e, NFS-e) apareceriam aqui.
| cliente | plano | status | |
|---|---|---|---|
LCLittle Closet | Suporte mensal | ativo | |
QPQuatro Patas | Migração | em análise |
Tudo é múltiplo de 4px. Cada token tem um uso recomendado — seguir isso é o que faz telas diferentes respirarem igual. Na dúvida, use o token mais próximo, nunca um valor solto.
Regra prática: quanto mais relacionados dois elementos, menor o espaço entre eles. Espaço comunica agrupamento.
As peças combinadas em padrões reais. Copie estes arranjos em vez de inventar — é o que mantém os apps parecidos.
Rótulo mono pequeno em cima, número grande em destaque, variação em verde. Topo verde de assinatura.
Label sempre acima do campo. Campos separados por --aj-3. Uma ação principal (verde), à direita.
Avatar + info à esquerda, status à direita. Linhas separadas por borda sutil, não por espaço grande.
A escrita é parte da identidade. Direto, claro, em minúsculas nos botões. Sem firula, sem "termos de robô". O texto deve dizer o que acontece.
| faça | evite | por quê |
|---|---|---|
| emitir nf-e | confirmar | o botão deve dizer o que vai acontecer |
| salvar cliente | ok | verbo + objeto remove a dúvida |
| cancelar | não, voltar atrás | curto e previsível |
| faça | evite | por quê |
|---|---|---|
| CNPJ inválido. Confira os 14 dígitos. | Erro 422 | o usuário não sabe o que é 422 |
| Não foi possível emitir. Tente de novo em instantes. | Falha inesperada no sistema | diga o próximo passo, não só o problema |
Nenhum cliente ainda
Cadastre o primeiro para começar a acompanhar.
Tela vazia não é erro — é oportunidade. Explique e ofereça a ação principal.
Para reunir várias ferramentas num só lugar, o sistema tem um layout de painel: menu lateral com categorias recolhíveis (Financeiro, Logística…) e área de conteúdo. No mobile, o menu vira gaveta. Cada ferramenta é uma página que usa essa mesma casca — o menu é idêntico em todas.
A casca é a classe .aj-shell com sidebar (.aj-side) + área principal (.aj-main). As categorias usam .aj-navgroup (accordion) e cada ferramenta é um .aj-navitem. O JS cuida de abrir/fechar e da gaveta mobile sozinho.
.is-active — a categoria dela abre sozinha.Todo app nasce mobile-first. O ajuda-ds.css já traz as regras abaixo prontas — você só precisa seguir a estrutura. Há também um arquivo modelo-app.html para baixar e usar como ponto de partida.
<meta name="viewport" content="width=device-width, initial-scale=1">.max-width e padding lateral..aj-btn-row (ou .aj-modal__foot no modal). Nunca use um <div> com flex solto — eles não empilham e vazam da tela no mobile.width fixo em px num container que precisa caber no celular — use max-width + largura fluida.grid-template-columns:repeat(auto-fit,minmax(...)) em vez de colunas fixas.max-width:100%.Um só, simples: 640px. Acima, layout de desktop; abaixo, tudo empilha. Não invente vários breakpoints — um ponto de quebra cobre quase tudo e mantém a manutenção fácil.
Toda a mágica está aqui: os arquivos moram em ui.ajudaecom.com.br e os apps puxam de lá. Muda no servidor, muda em todos.
public_html/ui).ajuda-ds.css, ajuda-ds.js e a central como index.html.https://ui.ajudaecom.com.br/ajuda-ds.css no navegador — tem que aparecer o código.Sem isso, o navegador guarda a versão antiga e a atualização demora a aparecer. Crie um arquivo .htaccess na mesma pasta com cache curto e revalidação:
<FilesMatch "\.(css|js)$"> Header set Cache-Control "public, max-age=300, must-revalidate" </FilesMatch>
max-age=300 = o navegador revalida a cada 5 minutos. Para mudança imediata em todos, veja o passo 3.
ajuda-ds.css novo.<link> e o <script> apontando para o servidor. É isso que mantém tudo sincronizado.