Icons in EJ2 TypeScript Message
4 Sep 202619 minutes to read
This section explains the Message with no icons, how to show or hide the close icon and add the custom severity icon to the message.
No Icon
By default, severity icons are displayed according to the severity types to make the message more understandable through visual information rather than text. To hide the severity icons, set the showIcon property to false.
The following example demonstrates different severity messages without the severity icons.
import { Message } from '@syncfusion/ej2-notifications'
let msgDefault: Message = new Message({
content: "Editing is restricted",
showIcon: false
});
msgDefault.appendTo('#msg_default');
let msgInfo: Message = new Message({
content: "Please read the comments carefully",
severity: "Info",
showIcon: false
});
msgInfo.appendTo('#msg_info');
let msgSuccess: Message = new Message({
content: "Your message has been sent successfully",
severity: "Success",
showIcon: false
});
msgSuccess.appendTo('#msg_success');
let msgWarning: Message = new Message({
content: "There was a problem with your network connection",
severity: "Warning",
showIcon: false
});
msgWarning.appendTo('#msg_warning');
let msgError: Message = new Message({
content: "A problem occurred while submitting your data",
severity: "Error",
showIcon: false
});
msgError.appendTo('#msg_error');<html>
<head>
<title>Essential JS 2 Message control</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Essential JS 2 Message control" />
<meta name="author" content="Syncfusion" />
<link href="index.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/34.2.2/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<div id='loader'>LOADING....</div>
<div id='container'>
<div class="msg-default-section">
<div class="content-section">
<div id="msg_default"></div>
<div id="msg_info"></div>
<div id="msg_success"></div>
<div id="msg_warning"></div>
<div id="msg_error"></div>
</div>
</div>
</div>
<style>
/* Sample level styles */
.msg-default-section .content-section {
margin: 0 auto;
max-width: 450px;
padding-top: 10px;
}
.msg-default-section .e-message {
margin: 10px 0;
}
</style>
</body>
</html>Custom Icon
By default, the severity icons are displayed according to the severity type to make the message more understandable through visual information rather than text. To customize these icons, use the cssClass property.
The following example demonstrates how the default message is rendered with a custom severity icon.
import { Message } from '@syncfusion/ej2-notifications'
let msgIcon: Message = new Message({
cssClass: "custom"
});
msgIcon.appendTo('#msg_icon');<html>
<head>
<title>Essential JS 2 Message control</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Essential JS 2 Message control" />
<meta name="author" content="Syncfusion" />
<link href="index.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/34.2.2/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<div id='loader'>LOADING....</div>
<div id='container'>
<div class="msg-custom-section">
<div class="content-section">
<div id="msg_icon">Essential JS 2 is a modern JavaScript UI Controls library built from the ground up to be lightweight, responsive, modular, and touch friendly. It is written in the TypeScript and has no external dependencies. It also includes complete support for Angular, React, Vue, ASP.NET MVC, and ASP.NET Core frameworks.</div>
</div>
</div>
</div>
<style>
/* Sample level styles */
.msg-custom-section .content-section {
margin: 0 auto;
max-width: 400px;
padding-top: 10px;
}
.msg-custom-section .e-message {
margin: 10px 0;
}
@font-face {
font-family: 'Message_icons';
src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMj8BS4YAAAEoAAAAVmNtYXDopOjpAAABiAAAADZnbHlmEsNXoQAAAcgAAAJMaGVhZCGnOH4AAADQAAAANmhoZWEIPwQDAAAArAAAACRobXR4CAAAAAAAAYAAAAAIbG9jYQEmAAAAAAHAAAAABm1heHABEAEOAAABCAAAACBuYW1l1dofAwAABBQAAAJtcG9zdNGGZXAAAAaEAAAALwABAAAEAAAAAFwEAAAAAAAD4gABAAAAAAAAAAAAAAAAAAAAAgABAAAAAQAAecv2N18PPPUACwQAAAAAAN9TeeEAAAAA31N54QAAAAAD4gO/AAAACAACAAAAAAAAAAEAAAACAQIABAAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQQAAZAABQAAAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6JTolAQAAAAAXAQAAAAAAAABAAAAAAAABAAAAAQAAAAAAAACAAAAAwAAABQAAwABAAAAFAAEACIAAAAEAAQAAQAA6JT//wAA6JT//wAAAAEABAAAAAEAAAAAAAABJgAAAAQAAAAAA+IDvwANAG4AoAEBAAABLwMrATUzPwQXDwMVHxIdAQ8SFR8GMz8RPQEvESMPAicHIw8HERUfDD8JES8JIw8BNw8DFR8SHQEPEhUfBj8SPQEvESMPAgHCjwYHCAelpQcIBwaPqQMCAwECAwUGCQkIBwcHBQYEBQMDAgIBAQICAwMFBAYFBwcHCAkJBgUDAgEDBQcICQkHBgcGDQwLCwoJCAcHBgUEAwICAgIDBAUGBwcICQoLCwwNBgcHBwkJB6LJvwkIBwYFBAIBAwQFBgcECMTJBgcHCAgJBQUEBAMCAQEBAQIDBAQFBQkJBwcH/QMCAwECAwUGFRQSEREODgwLCggGBgMDAwMGBggKCwwODhEREhQVBgUDAgEDBQcICQkHBgcGGBgWFBMSDw8NCwkIBgUDAwUGCAkLDQ8PEhMUFhgYBgcHBwkJBwElfwQEAqgBAgMFfwQDBAgICAgHBwYHCAkJCQkKCgsLCgwLDAsMDAsMCwwKCwsKCgkJCQkIBwYHBwgICAgHBwUDAQIDBAoMDAwNDQ4PDg8QEBAQEBEREBAQEBAPDg8ODQ0MDAwKBAMCAQMFerMBAgQFBgcECP7/CAgHBgYDAgEBsgUDAgEBAwMEBAUFBQYGAnYGBgYFBQQEAwIBAgROBAMICAgIBwcGERMTFRUWFxcYGRkaGhsbGxsbGxoaGRkYFxcWFRUTExEGBwcICAgIBwcFAwEBAQMEFRUXGBkaGxsdHR4eHx8gICAgHx8eHh0dGxsaGRgXFRUEAwIBAwUAAAAAEgDeAAEAAAAAAAAAAQAAAAEAAAAAAAEADQABAAEAAAAAAAIABwAOAAEAAAAAAAMADQAVAAEAAAAAAAQADQAiAAEAAAAAAAUACwAvAAEAAAAAAAYADQA6AAEAAAAAAAoALABHAAEAAAAAAAsAEgBzAAMAAQQJAAAAAgCFAAMAAQQJAAEAGgCHAAMAAQQJAAIADgChAAMAAQQJAAMAGgCvAAMAAQQJAAQAGgDJAAMAAQQJAAUAFgDjAAMAAQQJAAYAGgD5AAMAAQQJAAoAWAETAAMAAQQJAAsAJAFrIE1lc3NhZ2VfaWNvbnNSZWd1bGFyTWVzc2FnZV9pY29uc01lc3NhZ2VfaWNvbnNWZXJzaW9uIDEuME1lc3NhZ2VfaWNvbnNGb250IGdlbmVyYXRlZCB1c2luZyBTeW5jZnVzaW9uIE1ldHJvIFN0dWRpb3d3dy5zeW5jZnVzaW9uLmNvbQAgAE0AZQBzAHMAYQBnAGUAXwBpAGMAbwBuAHMAUgBlAGcAdQBsAGEAcgBNAGUAcwBzAGEAZwBlAF8AaQBjAG8AbgBzAE0AZQBzAHMAYQBnAGUAXwBpAGMAbwBuAHMAVgBlAHIAcwBpAG8AbgAgADEALgAwAE0AZQBzAHMAYQBnAGUAXwBpAGMAbwBuAHMARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAdQBzAGkAbgBnACAAUwB5AG4AYwBmAHUAcwBpAG8AbgAgAE0AZQB0AHIAbwAgAFMAdAB1AGQAaQBvAHcAdwB3AC4AcwB5AG4AYwBmAHUAcwBpAG8AbgAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgECAQMABWF1ZGlvAAAA) format('truetype');
font-weight: normal;
font-style: normal;
}
.custom.e-message .e-msg-icon::before {
font-family: 'Message_icons';
content: '\e894';
}
</style>
</body>
</html>Close Icon
The message can be rendered with or without the close icon. The close icon is used to hide the message, either by clicking the close icon or through keyboard interaction.
By default, the close icon is not rendered in the message. To show the close icon, set the showCloseIcon property to true.
In the following example, the messages are rendered with the close icon.
import { getComponent } from '@syncfusion/ej2-base';
import { CheckBox, ChangeEventArgs, Button } from '@syncfusion/ej2-buttons';
import { Message } from '@syncfusion/ej2-notifications';
let showButton: Button = new Button({ content: 'Show default message', cssClass: "e-outline e-primary msg-hidden" });
showButton.appendTo('#btn1');
showButton.element.onclick = (): void => {
show(msgDefaultIcon, showButton);
}
let infoButton: Button = new Button({ content: 'Show info message', cssClass: "e-outline e-primary e-info msg-hidden" });
infoButton.appendTo('#btn2');
infoButton.element.onclick = (): void => {
show(msgInfoIcon, infoButton);
}
let successButton: Button = new Button({ content: 'Show success message', cssClass: "e-outline e-primary e-success msg-hidden" });
successButton.appendTo('#btn3');
successButton.element.onclick = (): void => {
show(msgSuccessIcon, successButton);
}
let warningButton: Button = new Button({ content: 'Show warning message', cssClass: "e-outline e-primary e-warning msg-hidden" });
warningButton.appendTo('#btn4');
warningButton.element.onclick = (): void => {
show(msgWarningIcon, warningButton);
}
let errorButton: Button = new Button({ content: 'Show error message', cssClass: "e-outline e-primary e-danger msg-hidden" });
errorButton.appendTo('#btn5');
errorButton.element.onclick = (): void => {
show(msgErrorIcon, errorButton);
}
let msgDefaultIcon: Message = new Message({
content: "Editing is restricted",
showCloseIcon: true,
closed: () => {
showButton.element.classList.remove('msg-hidden');
}
});
msgDefaultIcon.appendTo('#msg_default_icon');
let msgInfoIcon: Message = new Message({
content: "Please read the comments carefully",
severity: "Info",
showCloseIcon: true,
closed: () => {
infoButton.element.classList.remove('msg-hidden');
}
});
msgInfoIcon.appendTo('#msg_info_icon');
let msgSuccessIcon: Message = new Message({
content: "Your message has been sent successfully",
severity: "Success",
showCloseIcon: true,
closed: () => {
successButton.element.classList.remove('msg-hidden');
}
});
msgSuccessIcon.appendTo('#msg_success_icon');
let msgWarningIcon: Message = new Message({
content: "There was a problem with your network connection",
severity: "Warning",
showCloseIcon: true,
closed: () => {
warningButton.element.classList.remove('msg-hidden');
}
});
msgWarningIcon.appendTo('#msg_warning_icon');
let msgErrorIcon: Message = new Message({
content: "A problem occurred while submitting your data",
severity: "Error",
showCloseIcon: true,
closed: () => {
errorButton.element.classList.remove('msg-hidden');
}
});
msgErrorIcon.appendTo('#msg_error_icon');
function show(message: Message, btn: Button): void {
message.visible = true;
btn.element.classList.add('msg-hidden');
}<html>
<head>
<title>Essential JS 2 Message control</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Essential JS 2 Message control" />
<meta name="author" content="Syncfusion" />
<link href="index.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/34.2.2/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<div id='loader'>LOADING....</div>
<div id='container'>
<div class="msg-icon-section">
<div class="content-section">
<button id="btn1"></button>
<div id="msg_default_icon"></div>
<button id="btn2"></button>
<div id="msg_info_icon"></div>
<button id="btn3"></button>
<div id="msg_success_icon"></div>
<button id="btn4"></button>
<div id="msg_warning_icon"></div>
<button id="btn5"></button>
<div id="msg_error_icon"></div>
</div>
</div>
</div>
<style>
/* Sample level styles */
.msg-icon-section .content-section {
margin: 0 auto;
max-width: 450px;
padding-top: 10px;
}
.msg-icon-section .e-message {
margin: 10px 0;
}
.msg-icon-section .e-btn {
display: block;
margin: 10px 0;
}
.msg-icon-section .e-btn.msg-hidden {
display: none;
}
</style>
</body>
</html>