CRUDs

Ciclo de vida base de uma entidade no me. — listagem, criação, edição e leitura. Estrutura, princípios e hierarquia de containers para cada etapa.

A experiência de CRUD deve ser percebida como um sistema coeso, não como uma coleção de telas independentes. Ao desenhar qualquer etapa, considere o comportamento da entidade em todo o seu ciclo de vida.
Ciclo de vida de um registro no ME

Cada etapa usa componentes e padrões específicos. Consulte as pages individuais de cada ação.

Contextos

Quando usar

Use este pattern quando a experiência envolver o gerenciamento de uma entidade ao longo do seu ciclo de vida. Também se aplica quando apenas parte do ciclo estiver presente, desde que a entidade siga lógica de gestão estruturada.

  • Criar um fornecedor
  • Visualizar um contrato
  • Editar um documento de transação
  • Excluir um contato

Quando não usar

Não use como referência principal quando a interação não envolver uma entidade gerenciável ou quando a ação for apenas pontual. Recorra ao pattern específico da interação.

  • Filtros
  • Ordenação
  • Exportação
  • Ações temporárias
  • Visualização de dashboard
  • Tarefas sem persistência de informação

Estrutura

O CRUD representa a jornada base de uma entidade dentro do sistema.

Create

Permite adicionar uma nova entidade ao produto.

Exemplos

  • Criar fornecedor
  • Adicionar documento de transação
  • Novo contrato

Considerações

  • A ação deve estar no contexto correto
  • O label deve deixar claro o que será criado
  • O fluxo deve ser proporcional à complexidade da tarefa

Read

Permite visualizar, consultar ou compreender uma entidade já existente.

Exemplos

  • Visualizar documento de transação
  • Abrir detalhes do fornecedor
  • Consultar contrato

Considerações

  • A informação deve ser clara e escaneável
  • Ações relacionadas devem ser acessíveis sem poluir a interface
  • A leitura deve apoiar decisões e próximas ações

Update

Permite modificar informações de uma entidade existente.

Exemplos

  • Editar dados do fornecedor
  • Atualizar validade de documento
  • Ajustar dados de cadastro de um usuário

Considerações

  • O contexto da entidade deve ser preservado
  • A edição deve ser claramente diferenciada da leitura
  • O risco de erro deve ser reduzido

Delete

Permite remover, descontinuar ou excluir uma entidade.

Exemplos

  • Excluir contato
  • Cancelar um documento
  • Apagar contrato

Considerações

  • Ações destrutivas devem ser tratadas com cautela
  • A confirmação deve ser proporcional ao impacto
  • Sempre que possível, considerar alternativas como arquivamento ou desativação

Como as etapas se relacionam

As etapas do CRUD não devem ser tratadas como telas isoladas. Cada uma influencia a experiência da outra:

  • A forma como algo é criado impacta sua futura leitura
  • A forma como algo é visualizado influencia sua edição
  • A exclusão depende da clareza sobre o que está sendo removido

Princípios

Princípios de consistência que devem orientar todas as etapas do ciclo.

1. Clareza da ação

O usuário deve entender com facilidade:

  • O que está sendo manipulado
  • O que pode fazer
  • Qual será o impacto da ação

2. Contexto correto

As ações devem aparecer no nível exato da entidade à qual pertencem.

  • Tela de fornecedores → Criar fornecedor
  • Seção de transações → Adicionar documento de transação
  • Card de contato → Editar contato

Evite ações genéricas fora de contexto.

3. Complexidade proporcional

O fluxo deve ter o mesmo nível de profundidade da tarefa.

  • Tarefa simples → modal
  • Tarefa média → drawer
  • Tarefa complexa → página dedicada

Na view, todo documento abre em modo modal e pode ser expandido para tela dedicada.

4. Feedback contínuo

O sistema deve informar claramente, com toasts, alerts, etc:

  • Quando algo foi criado
  • Quando algo foi alterado
  • Quando algo falhou
  • Quando algo foi removido

5. Segurança e reversibilidade

Sempre que possível, a experiência deve reduzir risco e permitir recuperação.

  • Confirmação antes de excluir
  • Validações antes de salvar
  • Preservação de contexto na edição
  • Alternativas à exclusão permanente
  • Opção de desfazer nos toasts

Hierarquia

Escolha do container

A forma como cada etapa do CRUD é apresentada deve refletir a complexidade da tarefa e a necessidade de contexto.

Modal

Use quando a ação for simples, rápida e de baixa complexidade.

Indicado para

  • Criação simples
  • Edição pontual
  • Confirmação de exclusão
  • Leitura resumida

Drawer

Use quando o usuário precisar manter o contexto da tela anterior.

Indicado para

  • Criação intermediária
  • Edição contextual
  • Leitura complementar
  • Formulários de média complexidade

Página dedicada

Use quando a entidade ou tarefa exigir maior profundidade.

Indicado para

  • Criação robusta
  • Leitura detalhada
  • Edição extensa
  • Fluxos com múltiplas seções
  • Entidades mais complexas
No me., todo documento abre em modo modal por padrão e pode ser expandido para página dedicada.

Hierarquia de ações

Cada etapa do CRUD deve respeitar a hierarquia da interface e a relevância da ação no contexto da tela.

Ações primárias

Use quando a ação for central para o objetivo da tela.

Criar fornecedorAdicionar documento

Ações secundárias

Use quando a ação funcionar como apoio ao fluxo principal.

Editar observaçãoAdicionar informação complementar

Ações destrutivas

Use com tratamento visual e comportamental específico. Não devem competir visualmente com primárias.

Excluir documentoRemover usuário

Estados

Estados de interface

Cada etapa do CRUD deve considerar seus estados como parte da experiência — e não como exceção.

VazioPreenchidoCarregandoErroSucessoSem permissãoSem resultadoConteúdo indisponível ou removido
  • Modelar estados já na definição do fluxo
  • Garantir feedback claro em ações críticas
  • Evitar telas "ideais" sem contemplar falhas e exceções

Permissões

Nem todos os usuários terão acesso às quatro operações do CRUD. A experiência deve considerar:

  • Quem pode criar
  • Quem pode visualizar
  • Quem pode editar
  • Quem pode excluir
  • Esconder ações quando não fizer sentido exibi-las
  • Desabilitar ações quando a visibilidade ajudar a comunicar regra de negócio
  • Explicar restrições quando necessário

A gestão de permissões deve ser previsível e consistente entre entidades semelhantes.

Feedback por operação

Criação (Create)

  • Sucesso → useToast() confirmando o que foi criado
  • Erro → mensagem inline no formulário ou UAlert
  • Loading → desabilitar confirmação enquanto processa

Leitura (Read)

  • Carregando → Spinner ou skeleton
  • Sem resultado → Empty State com orientação clara
  • Indisponível → mensagem explicativa — nunca tela em branco

Edição (Update)

  • Sucesso → useToast() confirmando a atualização
  • Erro → mensagem inline nos campos ou UAlert
  • Loading → desabilitar salvar enquanto processa

Exclusão (Delete)

  • Antes → UModal de confirmação com impacto claro
  • Sucesso → useToast() com opção de desfazer quando possível
  • Erro → useToast() de erro ou UAlert

Labeling

A nomenclatura das ações deve ser clara, específica e consistente ao longo do produto — formato verbo + entidade.

Recomendado

  • Criar fornecedor
  • Adicionar documento
  • Editar contrato
  • Excluir certificado

Evitar

  • Novo
  • Abrir
  • Atualizar
  • Adicionar

Quando o contexto não deixar claro o que está sendo manipulado.

Princípios de escrita

  • Usar verbos orientados à ação
  • Evitar termos genéricos demais
  • Manter consistência entre leitura, edição e exclusão
  • Refletir a complexidade real da tarefa sem exagero

Como montar

Passo a passo para montar um fluxo de CRUD no Nuxt / EletroDS, consistente com este guide — dos entry points aos componentes reais e ao aceite pela DoD.

1. Identifique a entidade

  • Qual entidade está sendo manipulada
  • Quais etapas do CRUD fazem parte da experiência
  • Se o ciclo será completo ou parcial

Uma entidade pode contemplar criação + leitura + edição, mas não necessariamente exclusão para todos os perfis.

2. Mapeie o ciclo completo

  • Como a entidade nasce
  • Onde ela aparece
  • Como é atualizada
  • Como pode ser removida

Evitar soluções desconectadas entre etapas.

3. Defina os entry points

  • Botão principal da listagem (Subheader) → criação
  • Clique em linha ou card → leitura
  • Ação contextual (menu ⋮ da linha) → edição
  • Menu secundário ou ação destrutiva → exclusão

4. Escolha o container de cada etapa

  • Modal (UModal)
  • Drawer / slideover (#right-area do MeLayout)
  • Página dedicada (rota própria)

Decida o container antes de montar.

5. Modele estados e transições

  • Vazio
  • Preenchido
  • Carregando
  • Erro
  • Sucesso
  • Confirmação
  • Sem permissão

Não dependa só da tela ideal — trate todos os estados no componente.

6. Use os componentes reais do EletroDS/Nuxt UI

  • Ações: MeButtonBar / UButton (nunca botão solto)
  • Campos: MeInput · USelect / MeSelectMultiple · UTextarea · input de arquivo (MeInputFile)
  • Listagem: MeTableView / UTable · estado vazio = MeEstados
  • Status: UBadge semântico (nunca cor sozinha)
  • Containers: UModal · slideover (drawer) · UAlert
  • Feedback: useToast() (com desfazer quando fizer sentido) · confirmação destrutiva = UModal

Hierarquia: EletroDS → Nuxt UI → Vue puro. Não recriar o que já existe.

7. Documente/valide o comportamento

  • O que abre cada ação
  • O que acontece após salvar
  • Como a entidade aparece após criação
  • Como a edição é refletida
  • Como a exclusão é confirmada
  • O que acontece em caso de erro

8. Feche pela DoD (valide o render)

  • Valide olhando a tela pronta: componentes reais, status como badge, estados vazio/carregando/erro tratados, responsivo em desktop/tablet/mobile
  • A tela precisa bater 1:1 com o padrão — conferir renderizado, não só que "abriu sem erro"

Relacionados

Patterns relacionados

O CRUD se conecta diretamente com outros patterns do Design Guide. Considere-os em conjunto na construção da solução.