Message
Componente de aviso global para resultados de operações, chamado de forma imperativa pela API message e desenhado como um aviso que pode ser dispensado.
Use quando precisar de um aviso passageiro, que se fecha sozinho, para confirmar o resultado de uma operação. Chame a API imperativa
message.info/success/warning/error/toastem vez de colocar marcação.
Início rápido
<r-button type="primary" onclick="message.info('Isto é um aviso')">Mostrar mensagem</r-button>Normalmente o Message é chamado pelo JavaScript. O objeto global message é registrado em window (também disponível como window.ranui.message) assim que o módulo do componente carrega.
message.info('Isto é um aviso');
message.success('Projeto excluído');Referência da API
Métodos globais
Cada método acrescenta um aviso e o fecha sozinho depois de duration milissegundos (padrão 3000). Os cinco compartilham a mesma assinatura.
| Método | Descrição |
|---|---|
message.info() |
Aviso informativo neutro (ícone azul de informação) |
message.success() |
Aviso de sucesso (ícone verde de confirmação) |
message.warning() |
Aviso de advertência (ícone âmbar), anunciado com ênfase |
message.error() |
Aviso de erro (ícone vermelho), anunciado com ênfase |
message.toast() |
Aviso escuro e simples, sem ícone |
Assinatura dos métodos
Cada método aceita ou uma string (o conteúdo) ou um objeto de opções.
// 1. Passe uma string: só o conteúdo, fecha depois de 3000 ms
message.info('Isto é um aviso');
// 2. Passe um objeto de opções
message.info({
content: 'Isto é um aviso',
duration: 2000,
close: () => console.log('closed'),
});Opções
| Opção | Tipo | Padrão | Descrição |
|---|---|---|---|
content |
string |
— | Texto exibido (obrigatório ao passar um objeto) |
duration |
number |
3000 |
Atraso em milissegundos até fechar sozinho |
close |
() => void |
— | Callback disparado depois que o aviso é removido |
top |
number | string |
8 |
Distância da pilha de avisos ao topo do contêiner (um número é tratado como px) |
zIndex |
number | string |
1200 |
Ordem de empilhamento do contêiner de avisos |
getContainer |
() => HTMLElement | null |
document.body |
Devolve o elemento em que a pilha de avisos é montada |
Passar
null,undefinedou nenhum argumento não faz nada: nada é exibido.
Atributos do elemento r-message
Cada aviso é um custom element <r-message>. A API global define esses atributos por você, mas eles também podem ser usados diretamente.
| Atributo | Tipo | Padrão | Descrição |
|---|---|---|---|
type |
string |
— | Um de info, success, warning, error, toast. Escolhe ícone, cor e o papel da região ARIA |
content |
string |
— | Texto desenhado dentro do aviso |
sheet |
string |
'' |
CSS injetado no shadow DOM do componente |
Tipos de mensagem type
<r-button onclick="message.info('Isto é um aviso')">Aviso informativo</r-button>
<r-button onclick="message.success('Isto é um aviso')">Aviso de sucesso</r-button>
<r-button onclick="message.warning('Isto é um aviso')">Aviso de advertência</r-button>
<r-button onclick="message.error('Isto é um aviso')">Aviso de erro</r-button>
<r-button onclick="message.toast('Isto é um aviso')">Aviso toast</r-button>Duração própria duration
<r-button onclick="message.info({ content: 'Fica 6 s', duration: 6000 })">Aviso de 6 segundos</r-button>
<r-button onclick="message.info({ content: 'Fica 1 s', duration: 1000 })">Aviso de 1 segundo</r-button>Callback de fechamento close
O callback close roda depois que o aviso é removido do DOM.
<r-button onclick="message.success({ content: 'Salvo', close: () => message.info('Aviso fechado') })"
>Mensagem encadeada</r-button
>message.success({
content: 'Salvo',
close: () => {
// roda quando o aviso é dispensado
console.log('toast closed');
},
});Posicionamento próprio top / zIndex / getContainer
message.info({
content: 'Empurrado para baixo',
top: 120, // distância do topo do contêiner
zIndex: 1300, // ordem de empilhamento
getContainer: () => document.querySelector('#app'), // ponto de montagem próprio
});Estilos
A pilha de avisos vive num contêiner levado para o body; cada <r-message> desenha o conteúdo dentro de um shadow DOM cuja superfície pode receber tema por variáveis CSS (todas com valores de reserva sensatos).
| Variável CSS | Padrão | Descrição |
|---|---|---|
--ran-message-content-background |
var(--ran-color-bg-elevated) |
Fundo da superfície do aviso |
--ran-message-content-border-radius |
var(--ran-radius-md) |
Raio de canto do aviso |
--ran-message-content-box-shadow |
var(--ran-shadow-menu) |
Elevação do aviso |
--ran-message-text-color |
var(--ran-color-text) |
Cor do texto do aviso |
--ran-message-z-index |
var(--ran-z-message, 1200) |
z-index da pilha |
--ran-message-top |
8px |
Distância da pilha até o topo |
Boas práticas
- Diga o que mudou: escreva o texto do aviso como um resultado, "Projeto excluído" ou "Alterações salvas", não um vago "Sucesso".
- Sucesso / informação: use
message.success/message.infopara confirmações que não bloqueiam. - Erros / advertências: use
message.error/message.warning; eles sobem para uma região ARIA viva assertiva, então leitores de tela interrompem. - Seja breve: um aviso se fecha sozinho, então reserve conteúdo longo ou que exija ação para um diálogo.
- Ajuste a duração com parcimônia: aumente
durationpara mensagens longas, mas evite tornar permanente um retorno passageiro.