Notification

Display a notification message globally.

When To Use#

To display a notification message at any of the four corners of the viewport. Typically it can be used in the following cases:

  • A notification with complex content.

  • A notification providing a feedback based on the user interaction. Or it may show some details about upcoming steps the user may have to follow.

  • A notification that is pushed by the application.

Examples

The simplest usage that close the notification box after 4.5s.

expand codeexpand code
import { Button, notification } from 'antd';

const openNotification = () => {
  notification.open({
    message: 'Notification Title',
    description:
      'This is the content of the notification. This is the content of the notification. This is the content of the notification.',
    onClick: () => {
      console.log('Notification Clicked!');
    },
  });
};

ReactDOM.render(
  <Button type="primary" onClick={openNotification}>
    Open the notification box
  </Button>,
  mountNode,
);

A notification box with a icon at the left side.

expand codeexpand code
import { Button, notification } from 'antd';

const openNotificationWithIcon = type => {
  notification[type]({
    message: 'Notification Title',
    description:
      'This is the content of the notification. This is the content of the notification. This is the content of the notification.',
  });
};

ReactDOM.render(
  <div>
    <Button onClick={() => openNotificationWithIcon('success')}>Success</Button>
    <Button onClick={() => openNotificationWithIcon('info')}>Info</Button>
    <Button onClick={() => openNotificationWithIcon('warning')}>Warning</Button>
    <Button onClick={() => openNotificationWithIcon('error')}>Error</Button>
  </div>,
  mountNode,
);

The icon can be customized to any react node.

expand codeexpand code
import { Button, notification, Icon } from 'antd';

const openNotification = () => {
  notification.open({
    message: 'Notification Title',
    description:
      'This is the content of the notification. This is the content of the notification. This is the content of the notification.',
    icon: <Icon type="smile" style={{ color: '#108ee9' }} />,
  });
};

ReactDOM.render(
  <Button type="primary" onClick={openNotification}>
    Open the notification box
  </Button>,
  mountNode,
);

The style and className are available to customize Notification.

expand codeexpand code
import { Button, notification } from 'antd';

const openNotification = () => {
  notification.open({
    message: 'Notification Title',
    description:
      'This is the content of the notification. This is the content of the notification. This is the content of the notification.',
    style: {
      width: 600,
      marginLeft: 335 - 600,
    },
  });
};

ReactDOM.render(
  <Button type="primary" onClick={openNotification}>
    Open the notification box
  </Button>,
  mountNode,
);

Duration can be used to specify how long the notification stays open. After the duration time elapses, the notification closes automatically. If not specified, default value is 4.5 seconds. If you set the value to 0, the notification box will never close automatically.

expand codeexpand code
import { Button, notification } from 'antd';

const openNotification = () => {
  const args = {
    message: 'Notification Title',
    description:
      'I will never close automatically. I will be close automatically. I will never close automatically.',
    duration: 0,
  };
  notification.open(args);
};

ReactDOM.render(
  <Button type="primary" onClick={openNotification}>
    Open the notification box
  </Button>,
  mountNode,
);

To customize the style or font of the close button.

expand codeexpand code
import { Button, notification } from 'antd';

const close = () => {
  console.log(
    'Notification was closed. Either the close button was clicked or duration time elapsed.',
  );
};

const openNotification = () => {
  const key = `open${Date.now()}`;
  const btn = (
    <Button type="primary" size="small" onClick={() => notification.close(key)}>
      Confirm
    </Button>
  );
  notification.open({
    message: 'Notification Title',
    description:
      'A function will be be called after the notification is closed (automatically after the "duration" time of manually).',
    btn,
    key,
    onClose: close,
  });
};

ReactDOM.render(
  <Button type="primary" onClick={openNotification}>
    Open the notification box
  </Button>,
  mountNode,
);

A notification box can appear from the topRight, bottomRight, bottomLeft or topLeft of the viewport.

expand codeexpand code
import { Button, Icon, notification, Divider } from 'antd';

const openNotification = placement => {
  notification.info({
    message: `Notification ${placement}`,
    description:
      'This is the content of the notification. This is the content of the notification. This is the content of the notification.',
    placement,
  });
};

ReactDOM.render(
  <div>
    <Button type="primary" onClick={() => openNotification('topLeft')}>
      <Icon type="radius-upleft" />
      topLeft
    </Button>
    <Button type="primary" onClick={() => openNotification('topRight')}>
      <Icon type="radius-upright" />
      topRight
    </Button>
    <Divider />
    <Button type="primary" onClick={() => openNotification('bottomLeft')}>
      <Icon type="radius-bottomleft" />
      bottomLeft
    </Button>
    <Button type="primary" onClick={() => openNotification('bottomRight')}>
      <Icon type="radius-bottomright" />
      bottomRight
    </Button>
  </div>,
  mountNode,
);

Update content with unique key.

expand codeexpand code
import { Button, notification } from 'antd';

const key = 'updatable';

const openNotification = () => {
  notification.open({
    key,
    message: 'Notification Title',
    description: 'description.',
  });
  setTimeout(() => {
    notification.open({
      key,
      message: 'New Title',
      description: 'New description.',
    });
  }, 1000);
};

ReactDOM.render(
  <Button type="primary" onClick={openNotification}>
    Open the notification box
  </Button>,
  mountNode,
);

API#

  • notification.success(config)

  • notification.error(config)

  • notification.info(config)

  • notification.warning(config)

  • notification.warn(config)

  • notification.open(config)

  • notification.close(key: String)

  • notification.destroy()

The properties of config are as follows:

PropertyDescriptionTypeDefaultVersion
bottomDistance from the bottom of the viewport, when placement is bottomRight or bottomLeft (unit: pixels).number24
btnCustomized close buttonReactNode-
classNameCustomized CSS classstring-
descriptionThe content of notification box (required)string|ReactNode-
durationTime in seconds before Notification is closed. When set to 0 or null, it will never be closed automaticallynumber4.5
getContainerReturn the mount node for Notification() => HTMLNode() => document.body
iconCustomized iconReactNode-
keyThe unique identifier of the Notificationstring-
messageThe title of notification box (required)string|ReactNode-
onCloseSpecify a function that will be called when the close button is clickedFunction-
onClickSpecify a function that will be called when the notification is clickedFunction-3.11.0
placementPosition of Notification, can be one of topLeft topRight bottomLeft bottomRightstringtopRight
styleCustomized inline styleReact.CSSProperties-
topDistance from the top of the viewport, when placement is topRight or topLeft (unit: pixels).number24
closeIconcustom close iconReactNode-3.26.0

notification also provides a global config() method that can be used for specifying the default options. Once this method is used, all the notification boxes will take into account these globally defined options when displaying.

  • notification.config(options)

notification.config({
  placement: 'bottomRight',
  bottom: 50,
  duration: 3,
});
PropertyDescriptionTypeDefaultVersion
bottomDistance from the bottom of the viewport, when placement is bottomRight or bottomLeft (unit: pixels).number24
durationTime in seconds before Notification is closed. When set to 0 or null, it will never be closed automaticallynumber4.5
getContainerReturn the mount node for Notification() => HTMLNode() => document.body
placementPosition of Notification, can be one of topLeft topRight bottomLeft bottomRightstringtopRight
topDistance from the top of the viewport, when placement is topRight or topLeft (unit: pixels).number24
closeIconcustom close iconReactNode-3.25.0
MessageProgress