diff --git a/README.md b/README.md
index 464f1b6..f4397fe 100644
--- a/README.md
+++ b/README.md
@@ -113,7 +113,12 @@ The notification object has the following properties:
| onAdd | function | null | A callback function that will be called when the notification is successfully added. The first argument is the original notification e.g. `function (notification) { console.log(notification.title + 'was added'); }` |
| onRemove | function | null | A callback function that will be called when the notification is about to be removed. The first argument is the original notification e.g. `function (notification) { console.log(notification.title + 'was removed'); }` |
| uid | integer/string | null | Overrides the internal `uid`. Useful if you are managing your notifications id. Notifications with same `uid` won't be displayed. |
-
+| systemClassName | string | "" | Additional CSS class(es) to add to `` (see HTML template below) |
+| containerClassName | string | "" | Additional CSS class(es) to add to `` (see HTML template below) |
+| itemClassName | string | "" | Additional CSS class(es) to add to `` (see HTML template below) |
+| renderSystem | function | *built-in render function* | Custom render function for notification system, receives ``s as param (this allows to use other component rather than `div.notifications-wrapper`). Overrides `systemClassName` |
+| renderContainer | function | *built-in render function* | Custom render function for notification container, receives ``s as param (this allows to use other component rather than `div.notifications-{position}`). Overrides `containerClassName` |
+| renderItem | function | *built-in render function* | Custom render function for notification, receives *notification object*, *dismiss callback* and *`visible` state* as params (this allows to use other component rather than `div.notification` with it's children). Overrides `itemClassName` |
### Dismissible
@@ -190,12 +195,12 @@ To disable all inline styles, just pass `false` to the prop `style`.
```
-Here is the notification HTML:
+Here is the notification HTML (if not using custom render functions):
```html
-
-
-
+
+
+
Default title
Default message
×
diff --git a/src/NotificationContainer.jsx b/src/NotificationContainer.jsx
index 0b6e044..4b41653 100644
--- a/src/NotificationContainer.jsx
+++ b/src/NotificationContainer.jsx
@@ -9,13 +9,19 @@ var NotificationContainer = createReactClass({
propTypes: {
position: PropTypes.string.isRequired,
notifications: PropTypes.array.isRequired,
- getStyles: PropTypes.object
+ getStyles: PropTypes.object,
+
+ renderContainer: PropTypes.func,
+ renderItem: PropTypes.func,
+
+ containerClassName: PropTypes.string,
+ itemClassName: PropTypes.string
},
_style: {},
componentWillMount: function() {
- // Fix position if width is overrided
+ // Fix position if width is overridden
this._style = this.props.getStyles.container(this.props.position);
if (this.props.getStyles.overrideWidth && (this.props.position === Constants.positions.tc || this.props.position === Constants.positions.bc)) {
@@ -23,6 +29,14 @@ var NotificationContainer = createReactClass({
}
},
+ _renderDefault: function(notifications) {
+ return (
+