diff options
Diffstat (limited to 'site/content/docs/4.3/components/alerts.md')
-rw-r--r-- | site/content/docs/4.3/components/alerts.md | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/site/content/docs/4.3/components/alerts.md b/site/content/docs/4.3/components/alerts.md new file mode 100644 index 0000000000..8c530d0f5f --- /dev/null +++ b/site/content/docs/4.3/components/alerts.md @@ -0,0 +1,137 @@ +--- +layout: docs +title: Alerts +description: Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages. +group: components +aliases: + - "/components/" + - "/docs/4.3/components/" +toc: true +--- + +## Examples + +Alerts are available for any length of text, as well as an optional dismiss button. For proper styling, use one of the eight **required** contextual classes (e.g., `.alert-success`). For inline dismissal, use the [alerts JavaScript plugin](#dismissing). + +{{< example >}} +{{< alerts.inline >}} +{{- range (index $.Site.Data "theme-colors") }} +<div class="alert alert-{{ .name }}" role="alert"> + A simple {{ .name }} alert—check it out! +</div>{{- end -}} +{{< /alerts.inline >}} +{{< /example >}} + +{{< callout info >}} +{{< partial "callout-warning-color-assistive-technologies.md" >}} +{{< /callout >}} + +### Link color + +Use the `.alert-link` utility class to quickly provide matching colored links within any alert. + +{{< example >}} +{{< alerts.inline >}} +{{- range (index $.Site.Data "theme-colors") }} +<div class="alert alert-{{ .name }}" role="alert"> + A simple {{ .name }} alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like. +</div>{{ end -}} +{{< /alerts.inline >}} +{{< /example >}} + +### Additional content + +Alerts can also contain additional HTML elements like headings, paragraphs and dividers. + +{{< example >}} +<div class="alert alert-success" role="alert"> + <h4 class="alert-heading">Well done!</h4> + <p>Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.</p> + <hr> + <p class="mb-0">Whenever you need to, be sure to use margin utilities to keep things nice and tidy.</p> +</div> +{{< /example >}} + + +### Dismissing + +Using the alert JavaScript plugin, it's possible to dismiss any alert inline. Here's how: + +- Be sure you've loaded the alert plugin, or the compiled Bootstrap JavaScript. +- If you're building our JavaScript from source, it [requires `util.js`](/docs/{{< param docs_version >}}/getting-started/javascript/#util). The compiled version includes this. +- Add a dismiss button and the `.alert-dismissible` class, which adds extra padding to the right of the alert and positions the `.close` button. +- On the dismiss button, add the `data-dismiss="alert"` attribute, which triggers the JavaScript functionality. Be sure to use the `<button>` element with it for proper behavior across all devices. +- To animate alerts when dismissing them, be sure to add the `.fade` and `.show` classes. + +You can see this in action with a live demo: + +{{< example >}} +<div class="alert alert-warning alert-dismissible fade show" role="alert"> + <strong>Holy guacamole!</strong> You should check in on some of those fields below. + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> +</div> +{{< /example >}} + +## JavaScript behavior + +### Triggers + +Enable dismissal of an alert via JavaScript: + +{{< highlight js >}} +var alertList = document.querySelectorAll('.alert') +alertList.forEach(function (alert) { + new bootstrap.Alert(alert) +}) +{{< /highlight >}} + +Or with `data` attributes on a button **within the alert**, as demonstrated above: + +{{< highlight html >}} +<button type="button" class="close" data-dismiss="alert" aria-label="Close"> + <span aria-hidden="true">×</span> +</button> +{{< /highlight >}} + +Note that closing an alert will remove it from the DOM. + +### Methods + +You can create an alert instance with the alert constructor, for example: + +{{< highlight js >}} +var myAlert = document.getElementById('myAlert') +var bsAlert = new bootstrap.Alert(myAlert) +{{< /highlight >}} + +This makes an alert listen for click events on descendant elements which have the `data-dismiss="alert"` attribute. (Not necessary when using the data-api's auto-initialization.) + +| Method | Description | +| --- | --- | +| `close` | Closes an alert by removing it from the DOM. If the `.fade` and `.show` classes are present on the element, the alert will fade out before it is removed. | +| `dispose` | Destroys an element's alert. | +| `_getInstance` | *Static* method which allows you to get the alert instance associated to a DOM element, you can use it like this: `bootstrap.Alert._getInstance(alert)` | + +{{< highlight js >}} +var alertNode = document.querySelector('.alert') +var alert = bootstrap.Alert._getInstance(alertNode) +alert.close() +{{< /highlight >}} + +### Events + +Bootstrap's alert plugin exposes a few events for hooking into alert functionality. + +| Event | Description | +| --- | --- | +| `close.bs.alert` | This event fires immediately when the <code>close</code> instance method is called. | +| `closed.bs.alert` | This event is fired when the alert has been closed (will wait for CSS transitions to complete). | + +{{< highlight js >}} +var myAlert = document.getElementById('myAlert') +myAlert.addEventListener('closed.bs.alert', function () { + // do something… +}) +{{< /highlight >}} |