Visão geral

Design System Vutti

Uma identidade. Diferentes experiências. Referência de marca, interface e aplicação para todo o ecossistema Vutti.

Versão 1.0.0Consolidação · 10 de outubro de 2026

Uma base para decidir e construir

Este manual reúne fundamentos, componentes e regras de aplicação. Painel de gestão, Presentes e comunicação compartilham a marca; cada superfície conserva sua função e suas decisões próprias.

As demonstrações são locais e didáticas. Não representam dados de clientes, operações, pagamentos ou resultados da Vutti.

Áreas de aplicação

Autoridade das referências

Decisão aprovada mais recente > referência viva do produto > implementação atual compatível > fundamentos da família > histórico. Uma implementação isolada não substitui uma decisão aprovada. Tokens históricos não prevalecem sobre overrides e documentação consolidada.

Visão geral

Consulta rápida

Medidas por função, com escopo explícito. Dimensão de um produto não vira automaticamente regra universal.

Componentes operacionais
ElementoMedidaAplicação
Botão principal48 pxAção principal da etapa
Ação contextual44 pxOperação e navegação
Alvo somente ícone44 × 44 pxDesenho 20 px, nome acessível
Campo42 pxInter 16/22; não encolher no mobile
Textareamín. 104 pxConteúdo livre, não componentes de kit
Topbar Presentes64 pxContainer 1120; menu em telas estreitas
Larguras de referência
ComposiçãoContainerGutterSituação
Presentes1120 px24 px desktop/tablet; 16 px mobileVigente
Focado / acesso720 / 450 pxConforme superfícieVigente; acesso público tem exceção
Painel operacional1440 px24 px desktop; 16 px compactoVigente, após a sidebar
Cadastro / login548 / 542 px24 / 27 px internos; 20 px mobileExceção PROMPT 090
Sites / blogSem máximo universalConforme aplicação existenteSem decisão global

Escolha o padrão pela função

Operar

Listas, editor e reservas usam densidade compacta, campos 42 px e ações 44/48 px. Sem altura artificial para preencher a tela.

Consultar Presentes

Administrar

Sidebar administrativa, container operacional, tabelas e fichas. Permissões e dados continuam sendo autoridade do servidor.

Consultar Painel

Comunicar

Sites, blog, redes e documentos partem da marca, preservam o contexto e não herdam automaticamente o app shell.

Consultar aplicações web
A · Fundamentos

Marca e identidade

O símbolo V e os assets oficiais preservam a identidade da família Vutti. Não redesenhar, distorcer ou recolorir o arquivo para simular uma variante aprovada.

Logotipo oficial Vutti
Logotipo do site · aplicação sobre fundo institucional
Símbolo V da Vutti
Símbolo oficial · aplicação de produto
Produto identificado em texto: Vutti Presentes ou Painel Vutti. O símbolo não cria um logotipo novo.

Aplicação

Preservar

  • Proporção e transparência originais.
  • Contraste real do asset com a superfície.
  • Texto alternativo quando a marca transmite identidade; alt vazio em repetição decorativa.
  • Assets locais para evitar dependência do WordPress no carregamento do manual.

Evitar

  • Nome ou identidade de outra marca.
  • Filtro CSS para produzir versão monocromática não aprovada.
  • Moldura decorativa sobre o símbolo no cabeçalho administrativo.
  • Acrescentar stock genérico ou mascote como identidade geral.
Dimensões ainda não normatizadas

Área de proteção e mínimo de redução não foram consolidados nas fontes. Os arquivos do acervo incluem variações de wordmark, preservadas como recebidas. Este manual não transforma tamanhos de demonstração em norma. Exportação: medidas normativas null.

Assets disponíveis

ArquivoOrigemUso identificado
vutti-logo.webpUpload público do siteLogotipo claro sobre superfície escura
vutti-symbol.pngAsset do SaaSSímbolo V
vutti-presentes.pngAsset do site PresentesMesmo símbolo, preservado como recebido
vutti-institutional.pngUpload institucional do siteArquivo original disponível; não recortar como novo master

Acervo local de logos

Arquivos disponibilizados na pasta de logos do projeto. Variações Vutti e aplicações CRM são identificadas separadamente, sem substituir automaticamente o símbolo já vigente nos produtos. Os originais permanecem íntegros; dimensões de arquivo não definem redução mínima.

Símbolo V sobre fundo escuro
Símbolo V sobre fundo escuroFamília Vutti1080 × 1080 pxBaixar original
Símbolo V compacto
Símbolo V compactoFamília Vutti180 × 180 pxBaixar original
Wordmark Vutti em composição escura
Wordmark Vutti em composição escuraFamília Vutti1081 × 1081 pxBaixar original
Wordmark Vutti em composição clara
Wordmark Vutti em composição claraFamília Vutti1081 × 1081 pxBaixar original
Wordmark escuro, transparente
Wordmark escuro, transparenteFamília Vutti764 × 214 pxBaixar original
Wordmark branco com acento verde
Wordmark branco com acento verdeFamília Vutti765 × 214 pxBaixar original
Identificador CRM compacto A
Identificador CRM compacto AVutti CRM; uso específico180 × 180 pxBaixar original
Identificador CRM compacto B
Identificador CRM compacto BVutti CRM; uso específico180 × 180 pxBaixar original
Composição Vutti CRM
Composição Vutti CRMVutti CRM; uso específico1921 × 1081 pxBaixar original
Logotipo Vutti CRM com fundo
Logotipo Vutti CRM com fundoVutti CRM; uso específico1080 × 1080 pxBaixar original
Logotipo Vutti CRM transparente
Logotipo Vutti CRM transparenteVutti CRM; uso específico1080 × 1080 pxBaixar original
Símbolo Vutti CRM, transparente
Símbolo Vutti CRM, transparenteVutti CRM1080 × 975 pxBaixar original
Assinatura circular CRM branca
Assinatura circular CRM brancaVutti CRM1077 × 1054 pxBaixar original
Assinatura circular CRM escura
Assinatura circular CRM escuraVutti CRM1055 × 1031 pxBaixar original
Wordmark em fundo petróleo
Wordmark em fundo petróleoFamília Vutti1921 × 1081 pxBaixar original
Wordmark em fundo escuro
Wordmark em fundo escuroFamília Vutti1921 × 1081 pxBaixar original
Assinatura horizontal CRM em fundo escuro
Assinatura horizontal CRM em fundo escuroVutti CRM1921 × 1081 pxBaixar original
Assinatura horizontal CRM em fundo petróleo
Assinatura horizontal CRM em fundo petróleoVutti CRM1921 × 1081 pxBaixar original
Símbolo em fundo petróleo
Símbolo em fundo petróleoFamília Vutti1921 × 1081 pxBaixar original
Símbolo em fundo escuro
Símbolo em fundo escuroFamília Vutti1921 × 1081 pxBaixar original
A · Fundamentos

Cores e superfícies

Separar marca, ação e superfície operacional. A paleta do Presentes abaixo reflete o CSS efetivo depois dos overrides; valores históricos estão registrados como histórico.

Identidade

Gradiente de marcalinear-gradient(135deg, #00e497, #01b5f2)

Superfícies e texto

PapelClaro efetivo · PresentesEscuro · Painel
canvas#f5f7f6#111a23
surface#ffffff#1c2934
surfaceAlt#e7f6f2#263641
text#17252b#f1f5f8
muted#68777b#b4c2cb
border#dfe7e4#354652
accent#087d72#61d9c3
accentStrong#05645c#95eadb

Ação e estados

Demonstração CTA operacional; texto escuro sobre o gradiente de ação
SucessoAtençãoErro

O gradiente efetivo de ação é linear-gradient(135deg, #00e19f 0%, #00b6ea 100%). A combinação original de marca permanece distinta desse acabamento. Não trocar todos os verdes pelo verde vivo do logo.

Semânticas e contraste

O tema escuro do Painel já existe. Cores semânticas escuras usadas nas demonstrações são uma adaptação de leitura do manual, não uma paleta completa aprovada para o futuro Presentes. Estados usam texto e ícone. A borda sutil não substitui um indicador de foco com contraste funcional.

Paleta histórica e regra de consolidação

O CSS inicial trazia #fff9f1, #fffdf8, #242424 e #0f8278. Overrides posteriores do redesign operacional definem #f5f7f6, #ffffff, #17252b e #087d72. Não usar o primeiro :root encontrado como prova da aparência atual.

A · Fundamentos

Tipografia

Três famílias por função. A escala da referência viva do Presentes prevalece sobre os tamanhos históricos da matriz de identidade.

Plus Jakarta Sans

Clareza em cada título.

Estrutura · pesos 600, 700 e 800. Peso 900 não é padrão.

Inter

Informação que se lê e se usa.

Interface · 400, 500 e 600. 700 em indicadores funcionais.

Sometype Mono

REFERÊNCIA · TOKEN

Tags técnicas/contextuais curtas · 500; 600 quando necessário.

PapelFamília / pesoTamanho / linhaTrackingExemplo
Auxiliar não críticoInter 40012/16 px0emVutti
Labels, botões, navegaçãoInter 60014/20 px0emVutti
Ajuda e metadadosInter 40014/20 px0emVutti
Leitura e camposInter 40016/22 px0emVutti
Título de cardPlus Jakarta Sans 70020/26 px-0.02emVutti
Seção, painel, modalPlus Jakarta Sans 70024/30 px-0.02emVutti
Título operacional mobilePlus Jakarta Sans 80028/34 px-0.025emVutti
Título operacional amploPlus Jakarta Sans 80032/38 px-0.03emVutti
Destaque público amploPlus Jakarta Sans 80040/44 px-0.035emVutti
Resumo numéricoInter 70028/34 px0emVutti
Tag contextual curtaSometype Mono 50012/16 px0.04emVutti
Aplicação por função

H1 não impõe um tamanho único. Título operacional mobile usa 28/34; amplo 32/38. Destaque público amplo usa 40/44. Tablet não ganha uma escala própria. Texto auxiliar comum usa 14/20; 12/16 é apenas auxiliar não crítico. Tracking negativo somente nos títulos em Plus Jakarta Sans.

Exceções

Login e cadastro públicos: 40/48 no desktop/tablet e 28/34 no mobile. Confirmações operacionais: título de referência 20 px, peso 600, linha 1,3. Sites históricos com Montserrat/Nunito Sans conservam sua decisão local até uma migração aprovada.

As fontes do manual são servidas localmente em WOFF2, com font-display: swap; o HTML portátil incorpora os mesmos arquivos.

A · Fundamentos

Geometria e layout

Dimensões acompanham função e breakpoint. A escala de espaços não arredonda campos, botões, ícones ou radii já definidos.

Espaçamento

4 px
8 px
12 px
16 px
20 px
24 px
32 px
40 px
48 px
64 px
RelaçãoValor
Campo → ajuda4 px
Label → campo / ícone → texto8 px
Ações próximas12 px
Gap padrão / padding mobile16 px
Padding card desktop/tablet20 px
Separação interna ampla24 px
Grupos principais32 px
Seções principais48 px
Mudança excepcional de seção64 px

Raios

10 pxcontrol
12 pxmedia
16 pxcard
20 pxoverlay
999 pxpill

Containers e breakpoints

SuperfícieLimiteObservação
Presentes1120 pxTopbar, conteúdo e rodapé no mesmo eixo
Focado720 pxFormulários lineares e estados
Acesso geral450 pxLogin/cadastro: 542/548 px
Painel1440 pxDentro da área restante à direita da sidebar
Três resumos300 px por card / 932 px conjuntoGap 16; não aplicar às cinco métricas de Reservas
ComposiçãoLarguraComportamento
Mobile< 720 pxGutter 16; labels contextuais; ações reorganizadas
Tablet720–1099 pxComposição própria; gutter estrutural 24 no Presentes, principal operacional 16
Desktop≥ 1100 pxAproveitar largura sem alongar leitura; gutter 24
Altura, borda e elevação

Cards seguem o conteúdo. Estados e acesso centralizam sem cortar em viewport baixo ou teclado aberto. Borda/foco/sombras não possuem escala universal fechada; os acabamentos do próprio manual são identificados como adaptação editorial.

A · Fundamentos

Iconografia

Ícones lineares apoiam a leitura. O tamanho do desenho não é o alvo interativo.

PropriedadeValor
ViewBox0 0 24 24
Traço1.8 px
CorcurrentColor
Desenhos16, 18, 20, 24 e 32 px
Ação com texto18 px + gap 8 px
Somente ícone44 × 44 px de área acionável, nome acessível
Demonstração O desenho permanece 20 px; a área clicável mede 44 px
Excluir no editor usa lixeira neutra em todos os viewports.

O sprite contém apenas desenhos de interface reutilizáveis, adaptados da referência; marcas de terceiros, como Google e WhatsApp, precisam de seus assets oficiais. Não substituir por emoji.

A · Fundamentos

Temas e estados

A alternância deste manual é independente dos produtos. Cada aplicação tem status próprio.

AplicaçãoClaroEscuro
Manual VuttiImplementadoImplementado para consulta
Painel VuttiImplementadoImplementado, preferência local
PresentesImplementadoAplicação futura; paleta semântica completa pendente
Acesso públicoExceção clara aprovadaSem versão escura de produto aprovada
Sites, blog e comunicaçãoConforme materialSem regra universal aprovada
Claro

Superfície operacional

Texto e ação usam a paleta efetiva.

Escuro

Superfície operacional

Base do Painel; preview futuro no Presentes.

Não confundir os estados

Vigente

O Painel aplica superfícies escuras e salva a preferência local. Acesso administrativo conserva a composição clara aprovada.

Definido para evolução

Presentes manterá fontes, dimensões, geometria e comportamento. Mapear texto, superfície, campo, borda, foco e feedback; validar todas as combinações antes de implantar.

Ainda sem definição

Semânticas completas, celebração escura e tratamento de imagens não foram aprovados universalmente. Não copiar automaticamente os previews deste manual para produção.

Persistência e acessibilidade

Alternar tema não muda medidas nem ordem de leitura. A preferência do manual é local e retorna a claro quando ausente ou inválida. O foco permanece visível, inclusive em chips, menus e divisores de tabela.

B · Componentes

Botões e feedback

Hierarquia depende da ação. Normal, hover, focus, active, disabled e loading mantêm a geometria.

Demonstração Ações operacionais
TipoDimensõesRegra
Botão principal48 pxAção principal da etapa
Ação contextual44 pxOperação e navegação
Alvo somente ícone44 × 44 pxDesenho 20 px, nome acessível

Status, badges e mensagens

Demonstração Funções distintas
PublicadoPausadoRascunhoConta de testePrioridade

Status operacional: ponto e texto 14/20, peso 500; sem pill. Qualificação e conta de teste podem ter badge próprio. Prioridade, Meta atingida e Aceita extra usam 12/16, peso 500.

Desfazer fica disponível por cerca de quatro segundos nas exclusões reversíveis de presente/categoria. Operações sucessivas conservam ações individuais. Lista e conta não oferecem Desfazer.

Loading, vazio e erro

Carregando

Carregando conteúdo…

Não apagar dados já visíveis durante atualização em segundo plano.

Nenhum resultado

A busca não encontrou conteúdo para os critérios atuais.

Revisar os termos ou limpar filtros, sem simular registros.

Falha ao carregar

Não foi possível carregar.

Manter contexto e oferecer uma tentativa pertinente.

B · Componentes

Campos e seletores

Labels permanecem visíveis. Ajuda e erro ficam fora da caixa. O conteúdo não encolhe para caber no mobile.

Demonstração Formulário local de componentes
ElementoMedida
Campo externo42 px
Padding horizontal16 px
Label / conteúdoInter 14/20 600 / 16/22 400
Label → campo / campo → ajuda8 / 4 px
Textareamín. 104; padding 12 × 16
Opção de comboboxalvo 44 px
Ação mostrar senha44 × 44; não aumenta o campo de 42

Combobox do editor

Tipo, Prioridade e Aceito mais: texto central com padding simétrico, seta fora do eixo; dropdown acompanha o campo, inverte quando necessário e evita recorte. Setas, Home/End, letras, Enter/Espaço, Tab e Escape. Campo mantém 42 px.

Recuperação de lista indisponível

Demonstração Consulta estática; nenhuma edição
Tipo
Kit
Aceito mais
Não

Os valores acima exemplificam a aparência de escolhas recuperadas. No produto, usar somente o último estado local real; sem menu, edição ou gravação.

Validação real continua no produto

O manual demonstra apresentação de erros e foco. Não implementa políticas de conta, aceite, segurança ou salvamento dos produtos.

B · Componentes

Tabelas, busca e grids

Ordenar, filtrar e paginar sem perder o contexto. A demonstração usa o inventário real de componentes deste manual, sem criar registros de clientes.

Demonstração Inventário: busca, filtro, ordenação em três estados e paginação
Inventário de componentes do manual
Ações

Comportamento

  • Sem ordenação → crescente → decrescente → sem ordenação. Só o texto do título pode truncar; indicador ocupa trilho próprio.
  • Divisores verticais contínuos. Resize não aciona sort; duplo clique restaura apenas a coluna. Teclado no divisor: setas ajustam, Home restaura.
  • Cada tabela conserva larguras próprias no navegador. Em tablet, divisor visual fino oferece alvo transparente de 44 px; mobile prioriza leitura e rolagem local.
  • Ações ficam no fluxo. A tabela pode rolar; a página inteira não.
  • Ao voltar de detalhes: manter busca, filtros, ordem, página e larguras. Ausência de dados não vira zero.
  • Faixa exibida, total e página atual aparecem em texto. A paginação do demo usa cinco componentes por página; o Painel vigente usa dez registros do servidor.
Resumo quantitativo

Métricas numéricas centralizam label e valor; fichas e cards genéricos conservam sua composição. Mini-grades de resumo usam título, duas colunas Indicador/Quantidade ou Indicador/Valor e divisores. Não preencher com números fictícios para simular atividade.

C · Gestão

Painel Vutti

Plataforma administrativa: app shell, permissões, consultas, detalhes e operações. A evolução visual abaixo não altera o sistema existente.

Atual implementadoComposição futura definida
AspectoEstado atualPadrão desejado
Container operacional1440 px1440 px
Sidebar expandida / recolhida240 / 72 px232 / 76 px
Organização superiorSem topbar; busca na primeira linha útilHeader de 64 px no modelo administrativo
Gutters24 desktop / 16 compacto24 desktop / 16 compacto
Área de conteúdoComeça no topo; padding superior 16Área à direita da sidebar; modos operacional/focado/acesso
Tema escuroImplementado no PainelPreservar superfícies, legibilidade e preferência
Tablet / mobileDrawer único sobre conteúdoDrawer até 286 px / 84vw; alvo 44; foco e Escape
Demonstração Modelo administrativo desejado · conteúdo é o inventário deste manual
Composição futura
OPERAÇÃO VUTTI · DEMONSTRAÇÃO

Visão geral

Organização de conteúdo e indicadores; dados não conectados.

Contas vigentes—Sem conexão a dados
Listas ativas—Sem conexão a dados
Créditos disponíveis—Sem conexão a dados

Consulta administrativa

IndicadorValorInformação do servidorIndisponível no manual

A demonstração troca a área visual e recolhe/abre a sidebar. Não reproduz regras de negócio ou autoriza operações.

Estado atual preservado

  • Módulos reais: Visão geral, Usuários, Listas, Créditos, Financeiro, Operação, Equipe, Histórico. Exposição depende do perfil; não exibir ações proibidas como disponíveis.
  • Autenticação administrativa própria e Google vinculado; RBAC, origem e CSRF no servidor. Não copiar backend, sessões ou credenciais.
  • Busca global mantém Buscar e Atualizar juntos; atualizar recarrega rota/contexto. Mobile pode mover o grupo unido para a linha seguinte.
  • Sidebar atual 240/72; preferência local. Drawer no tablet/mobile fecha por Escape, seleção e toque fora. Perfil no rodapé; imagem da própria conta ou iniciais.
  • Tabelas atuais paginam dez registros; P075 conserva menção histórica a 25. A documentação viva e o backend vigente prevalecem.
  • Filtros e larguras retornam ao voltar de fichas. Datas manuais só no período personalizado; intervalos prontos limpam os valores.
  • Métricas, relatórios e resumos indicam dado ausente; datas sem evidência confiável são indisponíveis. Nenhuma atividade é inferida.

Orientação de evolução

Adotar a organização administrativa apresentada na referência HTML: sidebar 232/76, header 64 e container operacional 1440. Conservar os tokens escuros do Painel, módulos e permissões. Formulários lineares podem usar 720 px; acesso geral 450 px. A composição futura precisa de tarefa própria de migração e QA no produto.

D · Soluções

Vutti Presentes

Produto especializado, com topbar e container próprios. Compartilha fundamentos; a sidebar de gestão não substitui sua navegação.

Referência viva · 09/10/2026

Os padrões seguintes vêm do documento específico do SaaS e decisões posteriores incorporadas. Claro vigente; previews escuros deste manual são aplicação futura, sem alteração no produto.

Demonstração Shell de produto · navegação contextual demonstrada
Vutti Presentes
DEMONSTRAÇÃO DE COMPOSIÇÃO

Informações da lista

Campos operacionais e autosave no eixo do conteúdo.

Aguardando edição local

Simulação local de feedback; não salva em um servidor.

Categoria · exemplo estruturalExpansão acessível

Linhas estruturadas de até 120 caracteres; colagem com múltiplas linhas preservada integralmente ou rejeitada por inteiro. Kit é uma unidade reservável. Demonstração local, sem salvar no produto.

Container 1120 px · topbar 64 px · rodapé no mesmo eixo
ÁreaComposição e comportamento
AcessoCadastro 548 / login 542; exceções abaixo; Google e avisos legais preservados
Suas listasTítulo e apoio centrais, ação desktop à direita/mobile integrada; sem hero ou métricas inventadas
Cards de listaCapa 3:2; desktop mídia à esquerda + gap 24; status ponto/texto; Reservas principal, editar e prévia secundários
EditorCampos agrupados; nome recebe mais espaço; novo item começa com quantidade em branco
CategoriasFaixa verde-clara contínua; desktop controles à esquerda, adicionar/excluir à direita; tablet/mobile Adicionar presente em linha própria
Presentes / kitsTrilhos coerentes; labels contextuais compactos; kit em linhas até 120 caracteres; sem limite fictício de componentes
ReservasConvidados, Unidades reservadas, Presentes com reserva, Pendentes, Preenchimento; dados confiáveis, cinco métricas
Lista públicaSem edição ou dado privado; Quantidade/Falta/Reservado/Reservar; kit compacto em linha Inclui:
Prévia privadaExperiência pública com sessão e faixa de retorno; não possui convite comercial destacado
Encerrada / indisponívelConsulta desabilitada ou recuperação estática; sem edição e sem fingir salvamento

Autosave, publicação e encerramento

  • Salvando… durante a operação; Salvo após confirmação do servidor; Falha ao salvar persistente até resolução. Respostas antigas não sobrescrevem edições novas.
  • Salvo aparece temporariamente; Falha ao salvar permanece até resolução. Respostas antigas não sobrescrevem edição mais recente.
  • Publicar lista fica na topbar do rascunho. Concluir autosave antes de Antes de publicar; reunir pendências e focar a primeira correção. Após confirmação, trocar por Compartilhar e abrir uma vez.
  • Pagamento único para um evento, sem mensalidade nem vencimento pela data. Preço vem do servidor, não do manual. Após encerramento: consulta por 12 meses.
  • Nome livremente editável; ocasião bloqueada após vínculo. Data e conteúdo até encerramento definitivo. Pausar reversível; encerrar exige Encerrar lista definitivamente?.
  • Seu evento já aconteceu! é aviso em fluxo do organizador com Manter ativa / Encerrar lista; não bloqueia e não aparece na lista pública.

Exclusão, colagem e acessibilidade

  • Lixeira neutra uniforme 44 × 44 para categoria, presente e item de kit. Categoria/presente exigem confirmação específica e oferecem Desfazer por cerca de quatro segundos.
  • Mobile/tablet: arraste e expansão em alvos adjacentes à esquerda; título flexível no centro; excluir à direita. Trilhos internos e recuos 4 px preservados.
  • Uma colagem inválida é rejeitada integralmente, com mensagem e conteúdo anterior preservado; não cortar silenciosamente componentes.
  • Prioridade e Aceito mais unidades na lista pública/prévia possuem balão acessível por foco, mouse e toque; máximo 320, margem 12; Escape e toque fora. Não acionar reserva.

Confirmação e estados públicos

Demonstração Composição de resultado · nenhum dado de reserva é criado

Reserva confirmada!

O produto apresenta aqui o resumo compacto da reserva real.

Confirmação é página dedicada com dois cards centralizados e empilhados em todos os viewports. Pausa, encerramento, arquivamento e disponibilidade esgotada têm mensagens próprias sob o contexto do evento. Data passada não encerra a lista; aceitar extras pode manter disponibilidade; lista vazia não significa tudo reservado.

Consultar a referência viva integral do produto

Vutti Presentes

Design System do SaaS

Referência viva da interface do produto

Revisão consolidada: 9 de outubro de 2026

Escopo: aplicação web Vutti Presentes, superfícies públicas e autenticadas

Este documento reúne os padrões visuais aprovados e as exceções próprias do Vutti Presentes. Deve orientar a criação e a revisão de interfaces do SaaS. Não autoriza alterações de produto, regras de negócio, produção ou outros produtos Vutti.

1. Princípios e aplicação

  • A interface combina produto digital moderno, confiável e operacional com uma camada acolhedora e celebrativa moderada. A proporção conceitual de referência é 80% produto e 20% celebração; não é uma medida de pixels.
  • Clareza, leitura, consistência e acesso às ações têm prioridade sobre decoração e ocupação artificial da tela.
  • A altura dos componentes acompanha o conteúdo, exceto quando uma dimensão está definida neste sistema.
  • Desktop, tablet e mobile são composições próprias. Reorganizar conteúdo e ações antes de comprimir controles.
  • Superfícies com funções diferentes podem ter composição específica, mas compartilham tipografia, geometria, iconografia, hierarquia e responsividade.
  • O padrão visual não altera ações, dados, permissões, autenticação, pagamentos, reservas, aceites ou validações existentes.

Hierarquia de decisão

  1. Decisão visual explícita mais recente aprovada para o produto.
  2. Este documento, atualizado para incorporar decisões aprovadas.
  3. Implementação atual quando não houver regra normativa específica e sua origem não indicar regressão pendente.
  4. Padrão global da família Vutti, como matriz de identidade.
  5. Materiais históricos, protótipos e referências parciais.

Uma implementação isolada não substitui uma regra aprovada. Uma regra explícita não deve ser descartada apenas porque uma tela ainda não a aplica integralmente.

2. Identidade e tipografia

Famílias

FamíliaUso
Plus Jakarta SansTítulos e hierarquia estrutural. Pesos 600, 700 e 800; 900 não é padrão.
InterNavegação, leitura, labels, campos, botões, mensagens e interface. Pesos 400, 500 e 600; 700 para indicadores numéricos ou destaques funcionais.
Sometype MonoTags e pequenos indicadores técnicos/contextuais. Peso 500 por padrão; 600 quando necessário para legibilidade.

As três famílias são carregadas no HTML da aplicação. A fonte efetiva deve corresponder ao papel acima; declarações antigas remanescentes no CSS não definem a família vigente quando regras posteriores a substituem.

Escala

PapelFamília/pesoTamanho e entrelinhaEspaçamento entre letras
Auxiliar não críticoInter 40012/16 px0
Tag contextual curta em caixa altaSometype Mono 50012/16 px+0,04em
Labels, botões e navegaçãoInter 60014/20 px0
Metadados e ênfase moderadaInter 400 ou 50014/20 px0
Leitura e conteúdo de camposInter 40016/22 px0
Título de cardPlus Jakarta Sans 70020/26 px-0,02em
Título de seção, painel ou modalPlus Jakarta Sans 70024/30 px-0,02em
Título operacional mobilePlus Jakarta Sans 80028/34 px-0,025em
Título operacional amploPlus Jakarta Sans 80032/38 px-0,03em
Destaque público amploPlus Jakarta Sans 80040/44 px-0,035em
Indicador numérico de resumoInter 70028/34 px0

Títulos escolhem o token pela função, não apenas pela tag HTML. Texto auxiliar comum usa 14/20 px; 12/16 px fica restrito a informação auxiliar não crítica e ações textuais terciárias, como Esqueci minha senha. Texto principal de apoio usa 16/22 px. Letter-spacing negativo aplica-se somente a títulos em Plus Jakarta Sans. Não há tamanho exclusivo para tablet.

3. Containers, espaçamento e densidade

Larguras e gutters

ContainerMáximoUso
Global1120 pxListas, editor, reservas, lista pública, prévia e rodapé
Focado720 pxFormulários lineares e estados/conteúdos que não precisam da largura operacional
Acesso450 pxRecuperação e estados; cadastro/login usam a exceção de 548/542 px da seção 11

Os valores são limites, não larguras mínimas. O fundo pode ocupar toda a viewport; conteúdo centralizado respeita o limite e os gutters. O eixo do conteúdo, topbar e rodapé deve permanecer coerente. Superfície que exceda 1120 px é exceção específica, não novo container global.

Gutters estruturais: 24 px em desktop e tablet; 16 px em mobile. Algumas regiões operacionais têm paddings próprios por breakpoint, conforme a composição já consolidada, sem redefinir o container global. No shell operacional, a área principal usa 24 px no desktop, 16 px no tablet e mobile; painéis e grids podem possuir ajustes locais de densidade.

Escala de espaçamento

4, 8, 12, 16, 20, 24, 32, 40, 48 e 64 px.

ValorAplicação de referência
4 pxCampo para ajuda e relações muito próximas
8 pxLabel para campo; ícone para rótulo; título para apoio curto
12 pxGrupos compactos e ações relacionadas
16 pxGap padrão, padding mobile e grupos próximos
20 pxPadding padrão de cards e painéis em desktop/tablet
24 pxSeparação interna mais ampla
32 pxGrupos principais
40 pxBlocos maiores em mobile
48 pxSeções principais
64 pxMudança excepcional de seção ou área institucional

Cards e painéis usam, em regra, padding de 20 px em desktop/tablet e 16 px em mobile. A escala não arredonda dimensões específicas de componentes: controles de 42 px, botões de 44/48 px, ícones de 18 px e radii de 10 px permanecem como definidos.

Cards de resumo em uma composição de três unidades têm máximo de 300 px cada, gap de 16 px e conjunto máximo de 932 px, centralizado no container. O limite de largura se mantém nas composições responsivas; não impor altura fixa nem alargar um card além de 300 px quando restar em coluna única. Esta regra se aplica a esse componente de resumo, não automaticamente às cinco métricas da tela Reservas.

O shell operacional mantém conteúdo compacto, sem altura mínima artificial para preencher a viewport. A área principal flexível leva o rodapé ao fim em páginas curtas; páginas longas seguem o fluxo normal. Páginas de acesso e estados centralizam-se no espaço disponível sem cortar conteúdo em viewports baixos ou com teclado aberto.

4. Superfícies, cores e geometria

O produto usa superfícies claras, fundo suave, texto escuro, acento verde-petróleo Vutti e cores complementares discretas. Verde, azul/ciano, pêssego, manteiga e rosa podem apoiar a camada celebrativa em doses pequenas. Cores semânticas comunicam sucesso, aviso e erro; cor nunca substitui rótulo ou instrução.

O CSS consolidado preserva os tokens de marca e superfícies existentes, incluindo --vutti-dark, --vutti-gradient, --accent, --accent-strong, --soft, --panel, --ink, --muted e --line. O gradiente principal de ação usa a composição verde para ciano já implementada. Não criar uma nova paleta ou copiar valores de mockups didáticos sem aprovação específica. Contraste deve ser avaliado sobre a combinação real de texto, controle e fundo.

Radius

RaioUso
10 pxBotões, campos, selects e controles
12 pxCapas, thumbnails e mídia interna
16 pxCards e painéis operacionais
20 pxModais, cards de acesso e superfícies elevadas
999 pxBadges e chips realmente em formato pill

As sombras são suaves e subordinadas à borda e à hierarquia. Não adicionar camadas de sombra ou gradientes para preencher espaço. Espessuras de borda, cores exatas de foco e todos os níveis de elevação não constituem uma escala independente além dos tokens já existentes.

5. Botões, campos e iconografia

Botões

TipoDimensãoFunção
Primário48 px de alturaAção principal da etapa, como criar, publicar, salvar, entrar, continuar ou reservar
Contextual/secundário44 px de alturaNavegação e ação operacional contextual, como editar, compartilhar, ver como convidado e adicionar item
Somente íconeÁrea clicável de 44 × 44 pxAção operacional sem rótulo visual, com nome acessível

Botões textuais usam Inter 14/20 px, peso 600, padding horizontal de 16 px e gap de 8 px entre ícone e texto. Largura acompanha o conteúdo, exceto quando a composição exige largura total. Ícones de botão com rótulo medem 18 px. Não somar padding textual à caixa de 44 × 44 px de um botão somente com ícone.

Normal, hover, focus, active, disabled e loading preservam a geometria do componente. O foco permanece visível. O CTA principal usa o gradiente oficial verde/cyan Vutti no estado normal, com texto escuro. O hover usa somente uma variação sutil do mesmo gradiente e mantém a hierarquia visual. Ação neutra e destrutiva mantêm hierarquias distintas. Cor não define sozinha se uma ação é primária: função e contexto definem a altura e a prioridade. Ações recorrentes usam ícones da biblioteca do produto, não emoji ou caracteres tipográficos.

Ações sobre mídia usam botão contextual de 44 px, padding horizontal 16 px, radius 10 px, ícone 18 px e gap 8 px. O rótulo é Adicionar sem imagem própria e Trocar quando ela existe. A ação não muda upload ou enquadramento.

Campos

ElementoPadrão
Input/select/controle de uma linha42 px de altura externa, inclusive em mobile
LabelInter 14/20 px, peso 600
ConteúdoInter 16/22 px, peso 400
Padding horizontal16 px
Label até campo8 px
Campo até ajuda4 px
TextareaMínimo 104 px; padding 12 px vertical e 16 px horizontal; Inter 16/22 px

Labels permanecem visíveis; placeholder não os substitui. Ajuda e erro ficam fora da caixa e não alteram sua altura. Campos obrigatórios usam *; campos opcionais ficam sem indicação salvo necessidade jurídica ou de negócio. Estados normal, foco, desabilitado e erro preservam a geometria.

Campos independentes com ícone de ação, como mostrar senha, conservam o alvo de toque de 44 × 44 px sem converter o campo de 42 px em botão nem aumentar sua altura. O encaixe específico deve respeitar o componente implementado. Controles nativos são preservados quando sua substituição criaria comportamento ou risco de acessibilidade.

Iconografia

DesenhoUso
16 pxApoio compacto
18 pxÍcone junto a texto em ação recorrente
20 pxAção de interface
24 pxContexto ou destaque moderado
32 pxEstado ou destaque de maior presença

Desenhos mantêm traço simples e coerente com a superfície. Alvo interativo não pode ser confundido com o tamanho do desenho; ações somente com ícone têm alvo mínimo de 44 × 44 px. Ícones apoiam a leitura e não substituem rótulos essenciais.

6. Topbar e navegação

A topbar ocupa 64 px em desktop, tablet e mobile, sem quebra de linha nem crescimento para acomodar conteúdo local. Usa o container global e seus gutters. Controles de navegação têm 44 px; em telas estreitas, a navegação se concentra em botão/menu de 44 × 44 px.

A navegação global autenticada contém Minhas listas e Conta, mais as ações contextuais cabíveis à superfície. No editor, Ver como convidado, Publicar lista ou Compartilhar, e Reservas ficam na área contextual da topbar, nessa ordem no desktop, separadas visualmente da navegação global. A ação de publicação/compartilhamento ocupa o mesmo lugar e acompanha o status da lista. Em tablet e mobile, ela é a primeira ação contextual destacada no menu hambúrguer. O cabeçalho da lista mantém status e ações administrativas menos frequentes no menu contextual, sem repetir Compartilhar.

A ação correspondente à superfície atual não se repete na navegação dessa tela: por exemplo, Minhas listas não aparece na tela de listas e Reservas não aparece na tela de reservas. Destinos úteis para outra superfície, como Ver como convidado no editor, permanecem acessíveis. Não criar destinos novos como solução visual.

No desktop, o selo Conta de teste ocupa espaço independente entre marca e ações. Em tablet e mobile, pode ser reorganizado dentro do menu global sem comprimir controles ou ultrapassar os 64 px da barra.

Prévia privada

A topbar mantém 64 px. O contexto de prévia fica em faixa própria abaixo: etiqueta Prévia privada à esquerda, explicação legível e Voltar à edição à direita. Em tablet/mobile, a faixa pode quebrar em linhas, mantendo alinhamento, alvo e ausência de sobreposição. A prévia usa a mesma apresentação pública, mas continua privada e identificada como prévia.

7. Menus, modais e feedback

Menus

Menus agrupam ações secundárias e preservam visíveis as ações frequentes. Ações destrutivas são separadas do grupo operacional. O menu cabe na viewport e não fica preso ao recorte de um card; abre abaixo do acionador e inverte quando faltar espaço. Divisores aparecem somente entre grupos distintos; menu de ação única não recebe divisor isolado. Os menus contextuais de lista e cards permanecem junto ao acionador também no mobile; os de categoria e presente seguem esse padrão no desktop, enquanto o editor mobile/tablet utiliza a exclusão direta descrita na seção do editor. Os menus permanecem ancorados, preferencialmente alinhados pela direita, com margem de 12 px da viewport e alvo de toque mínimo de 44 × 44 px. Reposicionam-se durante scroll e resize e fecham quando o acionador sai da viewport. O próprio acionador, clique externo e Escape permitem fechar o menu; ações destrutivas preservam o tratamento visual existente.

Modais

Modais têm finalidade e título claros, fechamento visível, largura adequada e conteúdo acessível com viewport baixo ou teclado aberto. Preservam foco, Escape e retorno de foco quando já suportados. Erros aparecem no próprio modal e próximos ao campo relacionado. Confirmações usam superfície Vutti, não alert, confirm ou prompt nativos; sucesso simples usa toast não bloqueante.

Confirmações usam título de referência 20 px, peso 600, line-height 1.3, sem divisor entre cabeçalho e conteúdo. A superfície branca usa sombra suave, contorno fino e raio de 20 px. A ação primária mantém o tratamento principal; cancelar é neutro; ação destrutiva é vermelha e separada, nunca entre cancelar e confirmar/salvar. Nomes longos quebram naturalmente. Não criar modal só para repetir informação já presente.

Estados e mensagens

Vazio, carregando, sucesso, erro, desabilitado e processamento devem ser distinguíveis sem inventar dados. Estado vazio explica a situação e destaca somente a ação existente pertinente. Erros ficam próximos da origem. Status operacional usa indicador circular semântico e texto Inter 14/20 px, peso 500, sem fundo, borda ou formato pill; badges de recomendação, conta de teste e qualificação seguem sua própria função.

Estados de página usam uma superfície central única, com título que nomeia a condição, explicação direta e próximo passo real. Vazio operacional e ausência de resultado de busca usam composições distintas. Lista pausada/encerrada usa faixa contextual, não aparência de erro de navegação.

Toasts não bloqueiam a continuação. Presente excluído. Desfazer permanece disponível por aproximadamente quatro segundos. Mensagens curtas, médias e longas usam duração proporcional à leitura; aviso que exige ação não depende de desaparecimento automático. Autosave mostra Salvando… com spinner compacto, Salvo temporariamente e mantém Falha ao salvar até resolução ou nova tentativa; a ação de nova tentativa fica junto ao erro, com alvo de 44 px, sem CTA permanente de atualização quando o editor já persiste as alterações automaticamente.

8. Superfícies do produto

Login, cadastro e recuperação

Acesso tem maior riqueza visual que as superfícies operacionais, sem virar landing page. A composição desktop pode combinar contexto visual de marca e formulário; tablet/mobile priorizam o formulário e reduzem decoração antes de comprimir fontes e campos. Não adicionar depoimentos, números, benefícios ou promessas. Login e recuperação mantêm a mesma família visual.

Cadastro preserva o aceite exigido e acesso aos documentos legais sem duplicação desnecessária. Continuar com Google segue disponível conforme o fluxo do produto; seu aviso legal compacto fica imediatamente abaixo da ação, com links sublinhados e foco visível. Não criar formulário, senha ou checkbox de aceite na continuação Google quando o fluxo vigente não os exige. Confirmação de e-mail, troca de endereço e recuperação mostram estados objetivos no mesmo sistema de acesso e não revelam existência de conta.

Suas listas

O título Suas listas e seu apoio formam um eixo central; a ação principal fica à direita no desktop e integrada ao eixo em mobile. Não restaurar hero, saudação longa, e-mail redundante ou CTA repetido.

Cards comunicam nome/ocasião, status e data existentes, progresso quando calculado e ações. Não adicionar métricas de convidados, presentes ou unidades, nem exibir progresso que sugira atividade sem reservas. Reservas é ação principal; editar e ver como convidado são secundárias. Compartilhamento reúne cópia de link e WhatsApp. Pausar, reativar e encerrar acompanham o estado real. Excluir usa lixeira acessível, separada das ações operacionais. O menu de três pontos só aparece se contiver ações úteis.

O card operacional usa container de até 1120 px, capa com corte 3:2 e conteúdo central flexível. No desktop, a mídia preenche a coluna esquerda disponível do card para aproveitar sua área útil; mantém-se o corte com object-fit: cover, sem distorcer a imagem, e o espaçamento de 24 px até o conteúdo. Ações ocupam o espaço necessário. Status usa ponto semântico e texto Inter 14/20 px, peso 500. Coluna de status/progresso mantém posição coerente entre cards, independentemente do comprimento do título. Tablet e mobile mantêm composição e dimensões próprias, sem herdar a largura da mídia desktop. A regra se aplica aos cards de lista e não redefine a largura da capa pública.

Em mobile, ações textuais ocupam a largura disponível e se empilham; menu permanece no canto superior do próprio card sem cobrir informação. Status e progresso mantêm posição coerente entre cards equivalentes. Altura segue o conteúdo, sem vazio artificial.

Criação, editor, categorias e presentes

Os seletores Tipo, Prioridade e Aceito mais do editor, incluindo inclusão de presente e categoria, usam combobox com opções em listbox. Texto fechado e opções abertas compartilham o centro horizontal da caixa, com padding simétrico e seta fora do eixo textual. O cabeçalho Aceito mais não quebra no desktop; labels contextuais permanecem visíveis em tablet/mobile. O campo conserva 42 px, Inter 16/22 px e radius de 10 px; opções têm alvo de 44 px. O menu acompanha o campo, evita recortes dos cards e inverte verticalmente quando necessário. Preservar nome acessível, foco visível, setas, Home/End, busca por letras, Enter/Espaço, Tab e Escape, além de mouse e toque.

Na cópia de recuperação de uma lista indisponível, seletores são apresentados como texto estático com nome acessível e o rótulo da escolha local mais recente: Item/Kit e Sim/Não, inclusive no conteúdo de categoria ainda aberto. A apresentação conserva Inter 16/22 px, radius de 10 px e altura mínima de 42 px, com quebra de texto quando necessária. Nomes e componentes ocupam a largura disponível; os demais valores têm labels próprios, sem colunas vazias para ações removidas. Esta superfície permite somente consulta e cópia, sem menus, edição ou salvamento; o editor disponível mantém os comboboxes normais.

Agrupar campos por assunto e ordem de preenchimento. Informações relacionadas podem compartilhar linha apenas com largura suficiente. Nome e texto recebem mais espaço que quantidade. Quantidade de novo item começa em branco conforme o fluxo vigente. Dados e controles não devem ser encapsulados em cards sem função.

No editor, cabeçalho de grade e linhas compartilham a mesma geometria. A grade de presentes dá espaço principal ao nome e usa trilhos próprios e consistentes para tipo, quantidade, prioridade, aceite de extra e ações conforme a superfície. Desktop/tablet apresentam cabeçalhos; mobile repõe labels junto aos campos. Nome e categoria permanecem alinhados à esquerda. Edição em linha, expansão, arraste, validação e autosave preservam a interação vigente. Em mobile e tablet, os puxadores de categoria e de todos os presentes compartilham o mesmo eixo visual e mantêm alvo de 44 × 44 px.

No cabeçalho Informações da lista em mobile e tablet, status e menu de ações ficam agrupados à direita acima do título. O título permanece em linha própria, alinhado à esquerda no eixo dos campos, sem quebra e com a hierarquia tipográfica vigente. Autosave permanece abaixo como informação secundária e não desloca o grupo principal. Publicação e compartilhamento ficam nas ações da topbar. O desktop mantém seu alinhamento vigente.

Prioridade, Meta atingida e Aceita extra são etiquetas informativas compactas, Inter 12/16 px, peso 500, junto ao nome ou metadados; não viram faixa de alerta nem usam a aparência do status operacional. A última só aparece quando a opção correspondente estiver ativa.

Kits permanecem em linhas estruturadas com os comportamentos de teclado, foco, remoção e colagem existentes, sem limite funcional de quantidade de componentes. Cada componente conserva o campo de até 120 caracteres. Abrir, colar, editar ou salvar não pode cortar componentes silenciosamente. Uma colagem com texto inválido deve ser rejeitada por inteiro, com explicação e preservação do conteúdo anterior. O kit permanece uma única unidade reservável. Não substituir por textarea livre. Divisor entre informações da lista e personalização conserva 24 px de cada lado. Capa pública e capa personalizada mantêm proporção 3:2; formatos enviados podem variar e o enquadramento não distorce a imagem.

No editor em mobile e tablet, arraste e expansão de categoria ficam agrupados em alvos adjacentes independentes de 44 × 44 px à esquerda; o título flexível ocupa o centro e pode quebrar linhas; a exclusão permanece à direita. Os estados de foco dos dois controles permanecem distinguíveis. O cabeçalho verde-claro da categoria ocupa toda a largura interna do card, com cantos superiores arredondados e ação Adicionar presente larga abaixo do título. O card externo continua delimitando os presentes. O arraste do presente permanece à esquerda do nome e sua exclusão à direita. No mobile, o rótulo Presente de cada linha fica alinhado à esquerda após o puxador, com respiro confortável; puxador e lixeira mantêm recuos laterais equivalentes de 4 px. No tablet, o rótulo Presente do cabeçalho de colunas fica alinhado ao início do trilho do nome e as linhas usam os mesmos trilhos, com puxador e lixeira em alvos de 44 × 44 px e recuos laterais equivalentes de 4 px. Cabeçalho e linhas de presentes persistidos compartilham o padding horizontal de 4 px para distribuir os trilhos na mesma largura. Na grade tablet, todos os trilhos permanecem dentro do card. O desktop conserva a composição aprovada.

No editor desktop, o cabeçalho verde-claro da categoria também ocupa toda a largura interna do card, encosta nas laterais internas e usa os cantos superiores do componente. Arraste, expandir/recolher e nome flexível ficam à esquerda; Adicionar presente e exclusão ficam à direita, dentro da faixa. Os controles mantêm alvos de aproximadamente 44 × 44 px. Categoria recolhida exibe somente o cabeçalho compacto; expandida inicia a tabela logo abaixo, preservando integralmente seus trilhos, campos e ações. Em mobile e tablet, permanece exatamente a composição aprovada acima, com Adicionar presente em linha própria abaixo do título.

No editor da lista, categoria, presente e item interno de kit usam a mesma lixeira neutra em todos os viewports, com ícone uniforme e alvo de 44 × 44 px; não há cor, fundo ou borda destrutiva permanente. Hover e foco permanecem visíveis. As exclusões de categoria e presente continuam exigindo confirmação, com os títulos “Deseja realmente excluir esta categoria?” e “Deseja realmente excluir este presente?” e aviso de que a exclusão pode ser desfeita por alguns segundos. As proteções de remoção permanecem ativas. Menus com múltiplas ações nas outras superfícies permanecem como estão. O editor de itens do kit conserva seus comportamentos de teclado, foco, remoção e colagem.

Exclusões reversíveis usam notificação não bloqueante com ação Desfazer. Exclusões sensíveis ou irreversíveis mantêm confirmação explícita. Categoria e presente restauráveis exibem mensagem contextual, como “Categoria excluída.” e “Presente excluído.”, com ação individual por quatro segundos; operações sucessivas conservam suas possibilidades de desfazer de forma independente. A restauração de categoria inclui a posição, os presentes, kits, componentes e seus demais atributos. Exclusão de lista inteira e de conta não oferece Desfazer.

Na seção Categorias e presentes do editor, o título e a ação Adicionar categoria ficam centralizados em mobile e tablet; desktop mantém o alinhamento aprovado.

Na lista pública, os componentes do kit aparecem em apresentação compacta somente leitura: rótulo Inclui: seguido pelos itens em linha, separados visualmente por |, em Inter 14/20 px. O texto pode quebrar dentro de nomes longos e não interfere nas colunas de quantidade ou reserva.

Publicação e reservas

Publicação usa a ação contextual Publicar lista na topbar do rascunho. O rodapé do editor não exibe um bloco permanente de publicação. Ao acionar, o editor conclui o autosave e mostra todas as pendências num modal Antes de publicar, com ação para focar a primeira correção. Sem pendências, a confirmação comercial vigente prossegue. Após a primeira publicação confirmada, a ação passa a Compartilhar e abre o compartilhamento uma única vez; o mesmo link público continua válido nas edições seguintes. Não indicar sucesso antes da confirmação. O fluxo externo do Checkout Asaas não é padronizado por este documento.

A publicação vale para um evento, sem vencimento pela data e sem mensalidade. A regra anterior de 30 dias após o evento e limite de 180 dias de adiamento foi superada pelo PROMPT 097; seu histórico está em P087-VALIDADE-LISTAS.md. O modal comercial mantém título, subtítulo, preço do servidor, pagamento único, ações e a informação curta Após o encerramento, sua lista fica disponível para consulta por 12 meses. Crédito, autorização existente, pagamento pendente e teste interno usam mensagens contextuais; teste interno não exibe preço. Não acrescentar checkbox nem transformar o modal em página de explicações.

O nome do evento permanece livremente editável pelo autosave, inclusive após a publicação. A ocasião fica bloqueada após o vínculo da publicação. Data e conteúdo continuam editáveis até o encerramento definitivo. Os três campos mantêm alinhamento e espaçamentos uniformes, sem avisos permanentes de vínculo ou validade. Pausar é reversível. Encerrar lista abre a confirmação destrutiva Encerrar lista definitivamente?, com Cancelar e Encerrar definitivamente. Na consulta do histórico encerrado, campos, mídia, presentes e status das reservas ficam desabilitados; a data prevista de exclusão aparece em texto auxiliar. Cards encerrados usam Consultar.

O lembrete Seu evento já aconteceu! é um aviso em fluxo normal no painel do organizador, com texto e ações Manter ativa / Encerrar lista. Não abre modal automaticamente, não bloqueia conteúdo nem aparece na lista pública. Usa card discreto, espaçamento da escala, título 20/26 px e texto 14/20 px; as ações reorganizam-se sem sobrepor o conteúdo. Encerrar lista aciona a confirmação, sem encerrar diretamente.

Na lista pública e na prévia privada, as etiquetas Prioridade e Aceito mais unidades são controles de explicação com a aparência compacta existente, sem ícone extra. A descrição associada é acessível por foco, mouse e toque; Escape ou toque fora fecham. Um único balão fica no plano superior, limitado à área visível com margem de 12 px e largura máxima de 320 px. Interagir com o balão mantém a leitura. A abertura não desloca a linha nem aciona reserva. O editor conserva os títulos Prioridade e Aceito mais, sem explicações.

Reservas tem título próprio, identificação da lista e cinco métricas distintas: Convidados, Unidades reservadas, Presentes com reserva, Pendentes e Preenchimento. Busca permanece compacta. Cada convidado pode expandir detalhes com presente, quantidade, status e data confiável; dado sem timestamp confiável é indicado como indisponível, não inventado. Status usa controle compacto alinhado ao cabeçalho. No tablet e mobile, o título alinha à esquerda no eixo interno do card e Voltar para a lista fica centralizado com largura ampliada; desktop mantém sua composição. Tablet/mobile reorganizam linhas sem overflow.

Lista pública e prévia

A lista pública orienta o convidado por identificação do evento, conteúdo personalizado, categorias/presentes, disponibilidade, ação de reserva e feedback. Não acrescentar cadastro obrigatório, compra do presente, checkout, ações administrativas ou dados privados. Reserva de presente não é compra; cobrança de publicação é outro fluxo.

A data aparece compacta logo abaixo da descrição, alinhada ao conteúdo: rótulo 12/16 px e data 16/22 px, peso 700. Não usa separador, fundo, borda ou largura artificial. Responsável e WhatsApp vêm abaixo em 14/20 px. Lista pública e prévia compartilham a composição.

A capa usa proporção 3:2, fica acima do conteúdo em tela estreita e não é distorcida. A ocasião pode determinar capa local de fallback quando não há imagem própria. A largura final da capa pública não está fixada neste sistema; não assumir uma medida dos mockups como obrigatória.

A coluna numérica Quantidade e seus rótulos responsivos e acessíveis compartilham a mesma nomenclatura. Falta, Reservado e Reservar preservam seus nomes e cálculos.

Cabeçalho da lista pública/prévia reutiliza a geometria e tipografia do cabeçalho do editor: mínimo de 44 px, padding 10 × 14 px, gap 10 px, Inter 14/20 px, peso 500. No desktop, os rótulos de quantidade, falta e reservado ficam no cabeçalho e não se repetem por linha. Em tablet/mobile, labels contextuais reaparecem. As três colunas numéricas têm largura igual; números são tabulares. Nome de categoria e conteúdo permanecem alinhados à esquerda.

Cada categoria pública é um card interno delimitado dentro do contêiner externo existente, com borda sutil, cantos arredondados e cabeçalho em faixa contínua até as laterais internas, respeitando os cantos superiores. Cabeçalhos de coluna, presentes, kits, indicadores, métricas de disponibilidade e ações permanecem dentro do contorno. A mesma composição se mantém responsiva em tablet e mobile, sem trazer controles de edição para a lista pública.

Após reserva concluída, a confirmação é página própria, não modal ou toast. Conforme o PROMPT 101, resultado e convite comercial usam dois cards empilhados e centralizados em desktop, tablet e mobile. O card branco apresenta ícone verde, Reserva confirmada!, resumo compacto com dados reais e retorno secundário Voltar para a lista. O convite reutilizável usa gradiente suave verde/ciano, símbolo oficial V à esquerda de Vutti Presentes e CTA Conhecer o Vutti Presentes, que abre https://vutti.com.br/listas-de-presentes em nova aba. O cabeçalho não repete o CTA nessa composição.

Lista pública sem novas reservas usa a mesma composição abaixo do cabeçalho e contexto preservados do evento, com ícone e mensagem específicos de pausa, encerramento, arquivamento ou disponibilidade esgotada. O estado real prevalece; a data passada não implica encerramento e itens que aceitam unidades extras continuam operacionais. Lista vazia não é apresentada como totalmente reservada. O convite comercial muda o conteúdo por contexto e não aparece em destaque na lista ativa com disponibilidade nem na prévia privada. Esta é uma composição específica dessas superfícies, sem criar tokens globais.

Rodapé do SaaS

No desktop, o rodapé compacto distribui links legais à esquerda e suporte à direita no mesmo container. O suporte apresenta “Precisa de ajuda com sua lista? Fale com a gente.”, e-mail funcional e número do WhatsApp com o ícone oficial da marca, formando um único link que abre em nova aba. Tablet e mobile reorganizam os grupos conforme o espaço disponível, sem comprimir textos ou produzir overflow.

9. Celebração, imagens e movimento

Login/cadastro e lista pública admitem presença celebrativa moderada; criação, personalização e listas usam acentos leves; edição de itens e estados de erro priorizam a operação. Usar um motivo visual por composição, manter decoração nas margens e reduzir sua presença quando competir com conteúdo em telas menores. Ilustrações não cobrem título, mídia, dados ou controles, não capturam foco e não exigem animação contínua. Evitar mascote infantil como identidade geral, stock genérico, excesso de tons pastel/neon e fundos carregados atrás de listas.

Imagem não é distorcida; preservar proporção ou usar enquadramento deliberado existente. Não inferir uma nova dimensão para capa além de 3:2 quando a largura não estiver definida. Transições são breves e funcionais, não atrasam leitura nem operação. Respeitar prefers-reduced-motion e manter conteúdo disponível quando animação não puder ocorrer.

10. Responsividade e acessibilidade

Breakpoints estruturais

ComposiçãoLargura
Mobileabaixo de 720 px
Tablet720 a 1099 px
Desktop1100 px ou mais

Breakpoints adicionais só são usados quando um componente demonstrar necessidade. Viewports de referência para validações visuais: 390 × 844, 768 × 1024 e 1440 × 900. 375 px, 820 × 1180 e 1600 × 1000 são complementares. Nenhuma tela deve produzir overflow horizontal global.

Mobile prioriza título, informação principal, CTA, conteúdo secundário e decoração, nessa ordem. Campos, botões, alvos, menus, modais e ações não são encolhidos apenas para caber lado a lado. Cards, grades, imagens e tabelas reorganizam-se de acordo com conteúdo real. Em desktop, aproveitar largura sem alongar excessivamente texto ou adicionar sidebar sem função. Tablet não é uma versão comprimida do desktop.

Manter labels, foco visível, nomes acessíveis para ações com ícone, contraste funcional, ordem de leitura e navegação por teclado. Estados nunca dependem só de cor. Menus e modais preservam foco, fechamento e retorno conforme implementados. Validar nomes longos, listas vazias, erros, teclado móvel e conteúdo extenso nas superfícies afetadas.

11. Exceções e limites documentados

Acesso público: cadastro e login

As referências finais aprovadas no PROMPT 090 substituem a apresentação anterior de cadastro e login. O card central tem máximo de 548 px no cadastro e 542 px no login, raio de 20 px, padding lateral de 24 px no cadastro e 27 px no login e título 40/48 px em desktop/tablet. Campos usam 54 px e ações principais, Google e troca de modo usam 62 px; são exceções específicas destas duas telas. O CTA usa gradiente verde/ciano com texto branco conforme a referência. A marca aparece apenas no cabeçalho de 92 px (80 px no mobile), com faixa escura superior; o fundo é suave e o rodapé contém documentos e atendimento em ambos os modos.

No mobile, card com padding lateral de 20 px, título 28/34 px, campos 48 px e botões 52 px reorganizam a composição sem overflow. Labels permanecem visíveis, com os placeholders da referência. Cadastro usa “Crie sua conta” e “Organize e compartilhe suas listas de presentes.”; login usa “Entre na sua conta” e “Continue de onde parou.”. Google usa a marca colorida. Há um único aviso legal abaixo do Google por modo e não há checkbox de aceite no cadastro; a ação de criar conta manifesta o aceite, que continua registrado pelo servidor. Confirmação de e-mail legada e demais aceites específicos conservam seus controles próprios.

A orientação de senha é um popover compacto junto ao campo, oculto inicialmente. Ao digitar uma senha incompleta ou tentar enviá-la, mostra os critérios reais com estado textual de cumprido/falta; atualiza sem anúncios a cada caractere, desaparece ao cumprir a política ou sair do campo, e Escape o dispensa. Não exige maiúsculas: a política vigente é 10–128 caracteres Unicode, uma letra, um número ASCII e um caractere especial não branco. O backend permanece autoridade. Mensagens dinâmicas, foco, recuperação, confirmação, vinculação Google e segurança permanecem funcionais.

Painel Vutti administrativo

O acesso administrativo preserva o card aprovado, fundo suave, marca Painel Vutti, OPERAÇÃO VUTTI e acabamento. E-mail/senha próprios precedem Esqueci minha senha e Entrar, o CTA principal no gradiente Vutti. Depois vêm divisor ou, Google secundário com marca reconhecível, documentos jurídicos e Voltar às minhas listas. Recuperação e redefinição trocam o conteúdo do mesmo card, com foco no título após transição, erro persistente junto ao formulário e campos com mostrar/ocultar senha. O tema escuro pertence à área autenticada; o acesso mantém a composição clara aprovada.

A superfície administrativa em painel.vutti.com.br (frontend independente; presentes.vutti.com.br/painel histórico e desativado, 404 sem redirect) reutiliza identidade, fontes, gutters, campos e botões do SaaS. Seu app shell administrativo não tem topbar: sidebar e conteúdo começam no topo, com busca global na primeira linha útil alinhada à marca. No desktop, a sidebar fixa expande com nomes ou recolhe com ícones e nomes acessíveis. O controle junto à marca tem SVG de 20 px, alvo de 44 × 44 px, tooltip e foco visível. A preferência de recolhimento é local ao navegador. Em tablet/mobile, a navegação única aparece em um drawer sobre o conteúdo, acionado por controle de 44 × 44 px, com fechamento por Escape, seleção e toque fora. O perfil da conta autenticada ocupa o rodapé da sidebar; mostra imagem processada e persistida da própria conta ou iniciais como fallback. Seu menu mostra identidade, e-mail, perfil e as ações Minhas listas, Alternar tema e Sair. A imagem do perfil é alterada pelo avatar grande, um botão de 44 × 44 px com foco visível, nome acessível próprio e suporte a teclado; não há ação textual separada. A imagem aceita JPG, PNG ou WebP de até 5 MB e é armazenada como WebP quadrado. O tema escuro é exclusivo do painel, ativado pelo usuário e salvo no navegador; preferência ausente ou inválida retorna ao claro. Busca global e ações obedecem à hierarquia de cada perfil. Essa composição é própria da administração e não substitui os menus ou o cabeçalho do cliente.

A busca global reúne o campo, Buscar e Atualizar na mesma faixa. Em desktop e tablet com espaço suficiente, os botões ficam juntos imediatamente após o campo; em mobile, o campo pode ocupar a primeira linha e o grupo de ações permanece unido na seguinte. Buscar submete somente a busca; Atualizar é um botão independente que recarrega a rota e o contexto atuais. Ações específicas da área permanecem junto ao título local.

O conteúdo operacional do painel pode atingir 1440 px dentro do espaço restante à direita da sidebar, centralizado com gutters de 24 px no desktop e 16 px em tablet/mobile. A largura global de 1120 px das demais superfícies permanece vigente. Recolher a sidebar disponibiliza imediatamente a largura liberada.

Nos cabeçalhos ordenáveis, somente o texto do título pode ser truncado. O indicador ↑/↓ ocupa espaço próprio, permanece visível na largura padrão da coluna e fica fora do nome acessível; o estado sem ordenação não mostra glifo.

Consultas usam tabelas com cabeçalhos legíveis, ordenação em três estados e rolagem horizontal localizada. Fichas preservam filtros de origem, distinguem dados ausentes de zero e indicam consultas somente leitura. Decisões usam modais com labels, foco inicial e retorno ao controle acionador; feedback simples usa toast. Manter alvos de 44 px e estados em texto, sem depender só de cor. Validar essas superfícies nos viewports oficiais e os componentes críticos em 820×1180 e 360×800. Não transformar uma largura incidental de sidebar em token global.

As tabelas administrativas têm divisores verticais contínuos no cabeçalho e corpo, além das linhas horizontais. A coluna Ações mantém rótulo e conteúdo alinhados sem espaço reservado para divisor ausente; em grades ordenáveis, seu rótulo usa uma caixa interna de 44 px alinhada como os controles de título, sem aumentar a altura existente do cabeçalho. As demais colunas permitem redimensionar por divisor no cabeçalho em desktop e tablet com espaço suficiente. Cada tabela conserva suas larguras próprias no navegador; duplo clique no divisor restaura apenas a coluna correspondente. O divisor não aciona a ordenação. Tabelas largas rolam somente no próprio container, e a coluna Ações permanece no fluxo e alinhada ao cabeçalho. Em mobile estreito, a leitura e a rolagem local têm prioridade sobre o gesto de resize. Cards de métricas numéricas centralizam rótulo e valor; fichas e cards genéricos conservam sua composição. Resumos quantitativos, como reservas e conversão acumulada, usam mini-grade de duas colunas com faixa de título, cabeçalho Indicador/Quantidade ou Indicador/Valor conforme o dado e linhas separadoras. Títulos e textos de apoio de seções compartilham o alinhamento horizontal dos cards e grades abaixo. No resumo de origem da autorização da visão geral, o cabeçalho e os valores de Publicações ficam alinhados à direita.

No tablet (720–1099 px), o divisor de coluna conserva traço visual de 1–2 px, mas oferece alvo de toque transparente de 44 × 44 px dentro do cabeçalho. O espaço do rótulo e da ordenação fica reservado separadamente para não haver sobreposição entre os controles nem com a coluna seguinte.

As tabelas paginadas mostram 10 registros por página e informam a faixa exibida, o total e a página atual. Datas manuais aparecem somente no período personalizado; selecionar um período pronto limpa os valores manuais. A faixa selecionada é apresentada em formato brasileiro, sem expor o identificador de fuso. O cabeçalho da sidebar administrativa usa o símbolo oficial sem moldura e mantém acesso a Minhas listas no menu do perfil. A busca global mantém Buscar e Atualizar agrupados na faixa, conforme a composição responsiva definida nesta seção. As tabelas reduzem o espaço vertical das linhas sem reduzir a área acionável mínima de 44 px nem quebrar palavras comuns. O perfil técnico não é repetido abaixo do título da área.

As exceções abaixo são específicas do Vutti Presentes e não são regras genéricas para outros produtos Vutti:

  • Prévia privada usa a experiência pública com sessão e contexto próprios, além de uma faixa de retorno ao editor.
  • Conta de teste é identificador contextual da conta interna, com posicionamento próprio na topbar e reorganização no menu estreito.
  • Status operacionais usam ponto semântico e texto simples, não badge preenchido/pill.
  • Labels contextuais de métricas públicas reaparecem em tablet/mobile; no desktop ficam no cabeçalho compartilhado da grade.
  • Confirmação pós-reserva é página de resultado dedicada; toast não a substitui.
  • Publicação pode continuar para checkout externo, enquanto a reserva do convidado não é compra.
  • Capa temática de fallback depende da ocasião quando não há upload próprio; capa própria usa recorte 3:2 sem distorção.
  • Lixeira de exclusão, ações do card e menu de três pontos obedecem aos estados e opções reais da lista.
  • Aceite legal, confirmação de e-mail e continuação Google seguem seus próprios estados de produto e não são simplificados por composição visual.

Pontos sem decisão visual universal fechada: paleta semântica completa além dos tokens já usados; escala de bordas/foco/sombras completa; dimensão final da capa pública; encaixe visual definitivo de ações independentes junto a controles de 42 px; dimensões de marca não consolidadas; e aparência de interações/componentes não especificados neste documento. Preserve o estado atual aprovado nesses pontos e não invente novos tokens.

12. Manutenção

Antes de alterar uma tela, identificar os tokens e componentes envolvidos e distinguir regra global de exceção específica. Quando uma alteração aprovada mudar um padrão reutilizável, atualizar este documento na mesma tarefa. Registrar exceção apenas quando houver necessidade ligada à superfície e decisão clara; resultado pontual ou aparência incidental não cria regra global.

A aplicação do sistema a uma superfície não autoriza redesenhar outra. Este documento não substitui especificações funcionais, legais, de segurança, comerciais ou de integração. Não usar exemplos como autorização para criar recurso, remover dado ou mudar fluxo.

Resumo dos tokens

GrupoReferência
Tipografia12/16, 14/20, 16/22, 20/26, 24/30, 28/34, 32/38, 40/44 px
Containersglobal 1120 px; focado 720 px; acesso 450 px
Guttersdesktop/tablet 24 px; mobile 16 px
Espaçamento4, 8, 12, 16, 20, 24, 32, 40, 48, 64 px
Botõesprimário 48 px; contextual 44 px; ícone 44 × 44 px
Camposuma linha 42 px; textarea mínimo 104 px
Radiuscontrole 10 px; mídia interna 12 px; card 16 px; elevado 20 px; pill 999 px
Topbar64 px em todos os modos
Breakpointsmobile <720 px; tablet 720–1099 px; desktop ≥1100 px
D · Soluções

Acesso e exceções

Login e cadastro do Presentes têm uma composição aprovada própria. As dimensões gerais de operação não as substituem.

ElementoDesktop / tabletMobile
Card cadastro / login548 / 542 pxLargura disponível
Padding lateral cadastro / login24 / 27 px20 px
Título40/48 px28/34 px
Campos54 px48 px
Botões principais / Google / troca62 px52 px
Cabeçalho de marca92 px80 px
Radius card20 px20 px
Demonstração Exceção de login · formulário não autentica nem envia dados
Vutti

Entre na sua conta

Continue de onde parou.

ou

Demonstração visual; não envia dados nem manifesta aceite legal.

Contraste da exceção aprovada

A referência de acesso usa texto branco sobre o gradiente verde/ciano. Essa combinação tem contraste baixo para texto de botão comum; é uma pendência de acessibilidade do padrão de produto. O manual preserva a exceção documentada e não a promove a token global. Ações operacionais usam texto escuro.

  • Cadastro: Crie sua conta / Organize e compartilhe suas listas de presentes.
  • Marca somente no cabeçalho com faixa escura superior. Rodapé com documentos e atendimento em ambos os modos.
  • Um aviso legal abaixo de Google por modo; sem checkbox adicional no cadastro. Aceite continua registrado pelo servidor.
  • Google usa a marca colorida oficial; não representar com G tipográfico. Não simular autenticação externa no manual.
  • Política da senha: 10–128 caracteres Unicode, uma letra, um número ASCII e um especial não branco; maiúscula não é exigência.
  • Popover de critérios inicialmente oculto; aparece na edição incompleta/tentativa, atualiza sem anunciar cada caractere, some ao cumprir ou sair; Escape dispensa.
  • Acesso administrativo tem e-mail/senha próprios, recuperação, entrar, divisor, Google secundário, documentos e retorno às listas; permanece claro.
E · Web

Sites e landing pages

Identidade institucional com objetivos e composições próprias. O manual descreve aplicações existentes; não substitui decisões aprovadas de cada página.

VuttiAplicação institucional
IDENTIDADE WEB · DEMONSTRAÇÃO

Conteúdo claro.
Marca reconhecível.

Hierarquia visual, respiro e ação coerente com a finalidade da página. Este é um espécime de composição, não uma nova landing page.

Consultar site Vutti
ÁreaOrientação e evidência
Cabeçalho / navegaçãoPreservar a marca, links e hierarquia reais; reorganizar sem reduzir alvos em telas estreitas
Hero / seçõesMensagem identificável, ação pertinente, título legível; não inventar promessas ou resultados
Cards / blocosConteúdo explica a função; evitar duplicação artificial do mesmo CTA
CTAsGradiente Vutti; hierarquia depende da função. Formulários comerciais mantêm validação e consentimentos vigentes
ImagensAsset oficial, proporção preservada, alt conforme função; evitar material genérico como identidade
RodapéMarca, links legais, suporte e organização vigente; não alterar tracking/consentimento
TipografiaWidget Presentes: Jakarta/Inter/Mono. Sites históricos: Montserrat/Nunito Sans conforme aprovação local
ResponsividadeConteúdo reorganizado, foco e labels; sem overflow global
ContainerSem largura única aprovada para todos os sites

Superfícies identificadas

Fontes consultadas: site principal, landing de listas de presentes, widget publicado, assets e documentação local de WordPress. SEO, formulários, pagamentos, consentimento e tracking permanecem fora da padronização visual desta tarefa.

F · Editorial

Blog e conteúdo

A identidade fornece base de aplicação. Não foi localizada uma referência Vutti aprovada suficiente para declarar um sistema editorial completo.

Sem definição editorial aprovada

O que já pode orientar

Marca oficial, contraste, hierarquia por função e leitura acessível. Links reconhecíveis e foco visível; imagens com descrição conforme seu significado.

O que exige referência

Largura de artigo, escala de títulos, tipografia editorial, proporção de capa, categorias, autoria, datas, citações e padrões de imagem/legenda.

Demonstração Hierarquia de leitura com tokens operacionais · não é template editorial aprovado
EXEMPLO TIPOGRÁFICO

Título de conteúdo

Texto introdutório com função de apoio, separado do título.

Subtítulo de leitura

Este espécime permite consultar títulos, corpo, links e legendas. Não define a fonte, a largura ou a escala oficial de um artigo Vutti.

Símbolo V utilizado como asset de referência
Legenda auxiliar identificada, sem fotografia ou autoria fictícias.
DecisãoExportação
Container editorialnull
Tamanho de artigonull
Proporção de capanull
Próxima consolidação

Incorporar artigos e composições aprovados quando disponíveis. Registrar decisões por papel e breakpoint; não aplicar automaticamente a escala operacional do SaaS como norma editorial.

G · Comunicação

Redes sociais

Aplicação da marca nos canais sociais. Os diretórios consultados não contêm um acervo aprovado que sustente uma grade universal de criativos.

Acervo e formatos a consolidar
ÁreaStatus
Logo e paletaAssets oficiais e identidade disponíveis
Tipografia socialEscala e pesos por formato ainda não aprovados
Feed, stories, vídeos e anúnciosNão declarar dimensões universais sem referência de canal e material vigente
Áreas seguras e gridsNão definidas no acervo consultado
Composições e grafismosNão copiar elementos de outra marca; demonstrações não são criativos aprovados
Material existenteNenhum conjunto suficiente localizado nas fontes autorizadas
Critério de aplicação

Hierarquia deve priorizar mensagem e ação. Preservar contraste, marca e legibilidade no tamanho efetivamente exibido. Safe areas, proporções e tipografia ficam null até consolidação; exemplos acima não autorizam uso como campanha.

H · Institucional

Documentos e apresentações

Propostas, materiais comerciais e slides precisam de templates aprovados próprios. Não há master institucional consolidado nas fontes consultadas.

Templates pendentes de referência
Demonstração Aplicação institucional · não é modelo comercial aprovado
VuttiAplicação de marca

Documento Vutti

Exemplo da relação entre marca, título, apoio e conteúdo.


Hierarquia de informação

Dados, condições e compromissos devem vir de fontes reais. O manual não cria proposta, preço, contrato ou apresentação comercial.

Espécime visual · margens, paginação e grid ainda sem norma aprovada
DecisãoSituação
Logo e cor institucionalAssets oficiais disponíveis
Hierarquia de títulos e corpoPrincípio compartilhado; escala institucional não normatizada
Margens / formatos / paginaçãoSem template aprovado localizado
Slides / grids / transiçõesSem master aprovado localizado
Propostas e materiais comerciaisNão inventar termos, preços, depoimentos ou números
Como fechar a lacuna

Adicionar documento e apresentação aprovados à pasta de referências; mapear estilos, rodapé, capa, grid e exportação. Valores ausentes permanecem null; não criar uma segunda identidade a partir dos demos.

I · Técnica

Acessibilidade

Legibilidade, semântica e operação fazem parte do padrão. Cor e decoração não substituem texto, foco ou ordem de leitura.

Perceber

  • Contraste sobre a combinação real de texto/fundo.
  • Estados com texto e ícone; não depender só da cor.
  • Labels visíveis, ajuda/erro associados ao campo.
  • Imagens com alt funcional; ícones repetidos decorativos.

Operar

  • Alvos 44 px para ações de ícone/opções.
  • Tab ordenado, foco visível e sem perda em menus/modais.
  • Escape fecha; retornar ao acionador.
  • Combobox com setas, Home/End, letras, Enter e Tab.
  • Resize de coluna também por teclado.

Compreender

  • Mensagens objetivas e próximas da origem.
  • Dados ausentes diferentes de zero.
  • Erros persistentes quando pedem ação.
  • Feedback de processamento sem anunciar cada caractere.
  • Demonstração identificada; sem função real presumida.

Responsividade e movimento

Validar 1440×900, 820×1180 e 390×844, com ambos os temas. Reorganizar primeiro, não comprimir controles. Zoom e textos longos devem preservar acesso. Respeitar prefers-reduced-motion; nenhuma animação é necessária para ler o manual.

Contraste e limites reais

Texto comum tem referência de contraste 4,5:1; texto grande 3:1; informação gráfica/controles 3:1. O foco do manual usa o acento escuro/claro com contorno externo. Bordas decorativas sutis não contam como indicador de foco.

Exceção de acesso a revisar

O texto branco sobre o gradiente aprovado de login/cadastro tem contraste insuficiente para corpo de botão. A exceção está preservada e identificada; precisa de decisão de produto para correção, sem mudança no SaaS nesta tarefa.

Checklist de aplicação
  • Nomes acessíveis e únicos para ícones.
  • Conteúdo cortado e overflow global ausentes.
  • Menu reposicionado e modal rolável em viewport baixo.
  • Escolha atual de combobox comunicada.
  • Foco devolvido no fechamento.
  • Mensagens de status e erros sem bloqueio desnecessário.
  • Interface utilizável com fontes locais carregadas ou fallback.
I · Técnica

Referência técnica

Uma fonte de especificações alimenta tabelas, demonstrações e exports. O HTML publicado é gerado a partir do projeto local.

HTML portátil
/* Vutti 1.0.0 — escopos e proveniência no JSON. Semânticas escuras do manual são adaptação futura. */
:root {
  --vutti-institutional: #0d252b;
  --vutti-green: #00e497;
  --vutti-cyan: #01b5f2;
  --vutti-gradient: linear-gradient(135deg, #00e497, #01b5f2);
  --vutti-action-gradient: linear-gradient(135deg, #00e19f 0%, #00b6ea 100%);
  --vutti-action-gradient-hover: linear-gradient(135deg, #00e9a5 0%, #00bdf2 100%);
  --vutti-space-4: 4px;
  --vutti-space-8: 8px;
  --vutti-space-12: 12px;
  --vutti-space-16: 16px;
  --vutti-space-20: 20px;
  --vutti-space-24: 24px;
  --vutti-space-32: 32px;
  --vutti-space-40: 40px;
  --vutti-space-48: 48px;
  --vutti-space-64: 64px;
  --vutti-radius-control: 10px;
  --vutti-radius-media: 12px;
  --vutti-radius-card: 16px;
  --vutti-radius-overlay: 20px;
  --vutti-radius-pill: 999px;
  --vutti-font-small: 400 12px/16px 'Inter', sans-serif;
  --vutti-tracking-small: 0em;
  --vutti-font-label: 600 14px/20px 'Inter', sans-serif;
  --vutti-tracking-label: 0em;
  --vutti-font-meta: 400 14px/20px 'Inter', sans-serif;
  --vutti-tracking-meta: 0em;
  --vutti-font-body: 400 16px/22px 'Inter', sans-serif;
  --vutti-tracking-body: 0em;
  --vutti-font-card: 700 20px/26px 'Plus Jakarta Sans', sans-serif;
  --vutti-tracking-card: -0.02em;
  --vutti-font-section: 700 24px/30px 'Plus Jakarta Sans', sans-serif;
  --vutti-tracking-section: -0.02em;
  --vutti-font-mobileTitle: 800 28px/34px 'Plus Jakarta Sans', sans-serif;
  --vutti-tracking-mobileTitle: -0.025em;
  --vutti-font-pageTitle: 800 32px/38px 'Plus Jakarta Sans', sans-serif;
  --vutti-tracking-pageTitle: -0.03em;
  --vutti-font-publicTitle: 800 40px/44px 'Plus Jakarta Sans', sans-serif;
  --vutti-tracking-publicTitle: -0.035em;
  --vutti-font-metric: 700 28px/34px 'Inter', sans-serif;
  --vutti-tracking-metric: 0em;
  --vutti-font-mono: 500 12px/16px 'Sometype Mono', monospace;
  --vutti-tracking-mono: 0.04em;
  --vutti-button-primary: 48px;
  --vutti-button-contextual: 44px;
  --vutti-button-iconTarget: 44px;
  --vutti-button-paddingInline: 16px;
  --vutti-button-gap: 8px;
  --vutti-button-icon: 18px;
  --vutti-button-font: 14px;
  --vutti-button-line: 20px;
  --vutti-button-weight: 600;
  --vutti-field-height: 42px;
  --vutti-field-paddingInline: 16px;
  --vutti-field-labelGap: 8px;
  --vutti-field-helpGap: 4px;
  --vutti-field-textareaMin: 104px;
  --vutti-field-font: 16px;
  --vutti-field-line: 22px;
  --vutti-panel-container: 1440px;
  --vutti-panel-sidebar-open: 232px;
  --vutti-panel-sidebar-closed: 76px;
  --vutti-panel-topbar: 64px;
  --vutti-panel-gutterDesktop: 24px;
  --vutti-panel-gutterCompact: 16px;
  --vutti-panel-focused: 720px;
  --vutti-panel-access: 450px;
  --vutti-panel-drawerMax: 286px;
  --vutti-panel-drawerVw: 84vw;
  --vutti-panel-navTarget: 44px;
  --vutti-presentes-container: 1120px;
  --vutti-presentes-focused: 720px;
  --vutti-presentes-access: 450px;
  --vutti-presentes-topbar: 64px;
  --vutti-presentes-gutterDesktopTablet: 24px;
  --vutti-presentes-gutterMobile: 16px;
  --vutti-presentes-cardPaddingDesktopTablet: 20px;
  --vutti-presentes-cardPaddingMobile: 16px;
  --vutti-presentes-summaryCardMax: 300px;
  --vutti-presentes-summaryGroupMax: 932px;
  --vutti-presentes-summaryGap: 16px;
  --vutti-presentes-loginCardDesktop: 542px;
  --vutti-presentes-signupCardDesktop: 548px;
}
:root, [data-theme="light"], [data-local-theme="light"] {
  --vutti-canvas: #f5f7f6;
  --vutti-surface: #ffffff;
  --vutti-surface-alt: #e7f6f2;
  --vutti-elevated: #ffffff;
  --vutti-text: #17252b;
  --vutti-muted: #68777b;
  --vutti-border: #dfe7e4;
  --vutti-border-strong: #dfe7e4;
  --vutti-accent: #087d72;
  --vutti-accent-strong: #05645c;
  --vutti-success: #34895b;
  --vutti-warning: #b7791f;
  --vutti-danger: #b64d4d;
  --vutti-on-primary: #0d252b;
  color-scheme: light;
}
[data-theme="dark"], [data-local-theme="dark"] {
  --vutti-canvas: #111a23;
  --vutti-surface: #1c2934;
  --vutti-surface-alt: #263641;
  --vutti-elevated: #263641;
  --vutti-text: #f1f5f8;
  --vutti-muted: #b4c2cb;
  --vutti-border: #354652;
  --vutti-border-strong: #40515d;
  --vutti-accent: #61d9c3;
  --vutti-accent-strong: #95eadb;
  --vutti-success: #61d9c3;
  --vutti-warning: #ffe7a3;
  --vutti-danger: #f7c8d8;
  --vutti-on-primary: #082a2d;
  color-scheme: dark;
}

Escopos e manutenção

  • Variáveis --vutti-* compartilham fundamentos. --vutti-panel-* e --vutti-presentes-* nomeiam exceções. Tema é mapeamento semântico, não novo layout.
  • Status e proveniência acompanham JSON. Um null significa sem definição aprovada, não zero.
  • Editar specification.json e módulos src/, gerar o HTML e verificar a versão publicada. Não editar dist/ ou HTML portátil como segunda fonte.
  • Mudança de regra reutilizável atualiza documentação e demos na mesma tarefa. Histórico não substitui decisão mais recente.
  • Publicação estática em design.vutti.com.br, pasta design dentro da hospedagem do WordPress Vutti. Sem instalação WordPress independente ou página Elementor duplicada.
  • CSS/JS com hash; HTML e release.json revalidam. Fontes e assets locais. Nenhuma API, sessão ou credencial é incorporada ao manual.

Lacunas explícitas

  • Área de proteção e tamanho mínimo normativo dos logos
  • Escala universal de bordas, foco e elevação
  • Paleta semântica completa do futuro tema escuro do Presentes
  • Dimensão final normativa da capa pública
  • Container universal dos sites da marca
  • Sistema editorial de blog
  • Formatos e áreas seguras de redes sociais
  • Templates de documentos e apresentações

Fontes consultadas

FonteFunção
Design System específico do SaaS · revisão 09/10/2026Norma viva e exceções mais recentes
design-system-vutti.mdFundamentos da família; histórico comparado
Painel_vutti: panel.css, panel.js, docs e backend de consultasEstado atual, temas, composição, permissões, paginação
Vutti_presentes: styles.css, HTML, componentes e decisõesTokens efetivos, editor, acesso, reservas e experiência pública
Vutti: widget, assets, documentação WordPress e páginas públicasIdentidade institucional e aplicações web
HTML fornecido do manual de referênciaEstrutura, navegação e lógica de consulta; sem identidade incorporada

Materiais aprovados de blog, redes e documentos ainda precisam ser incorporados para fechar suas normas específicas. Isso é uma lacuna de referência, não uma funcionalidade inventada.