From dc3b09c8f38872ef8b792a4b551671a6105754cc Mon Sep 17 00:00:00 2001 From: Mario Date: Sat, 13 Jun 2020 10:00:50 +0000 Subject: composer update bootstrap --- .../bootstrap/site/docs/4.5/components/modal.md | 815 +++++++++++++++++++++ 1 file changed, 815 insertions(+) create mode 100644 vendor/twbs/bootstrap/site/docs/4.5/components/modal.md (limited to 'vendor/twbs/bootstrap/site/docs/4.5/components/modal.md') diff --git a/vendor/twbs/bootstrap/site/docs/4.5/components/modal.md b/vendor/twbs/bootstrap/site/docs/4.5/components/modal.md new file mode 100644 index 000000000..9766766c7 --- /dev/null +++ b/vendor/twbs/bootstrap/site/docs/4.5/components/modal.md @@ -0,0 +1,815 @@ +--- +layout: docs +title: Modal +description: Use Bootstrap's JavaScript modal plugin to add dialogs to your site for lightboxes, user notifications, or completely custom content. +group: components +toc: true +--- + +## How it works + +Before getting started with Bootstrap's modal component, be sure to read the following as our menu options have recently changed. + +- Modals are built with HTML, CSS, and JavaScript. They're positioned over everything else in the document and remove scroll from the `` so that modal content scrolls instead. +- Clicking on the modal "backdrop" will automatically close the modal. +- Bootstrap only supports one modal window at a time. Nested modals aren't supported as we believe them to be poor user experiences. +- Modals use `position: fixed`, which can sometimes be a bit particular about its rendering. Whenever possible, place your modal HTML in a top-level position to avoid potential interference from other elements. You'll likely run into issues when nesting a `.modal` within another fixed element. +- Once again, due to `position: fixed`, there are some caveats with using modals on mobile devices. [See our browser support docs]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/browsers-devices/#modals-and-dropdowns-on-mobile) for details. +- Due to how HTML5 defines its semantics, [the `autofocus` HTML attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autofocus) has no effect in Bootstrap modals. To achieve the same effect, use some custom JavaScript: + +{% highlight js %} +$('#myModal').on('shown.bs.modal', function () { + $('#myInput').trigger('focus') +}) +{% endhighlight %} + +{% include callout-info-prefersreducedmotion.md %} + +Keep reading for demos and usage guidelines. + +## Examples + +### Modal components + +Below is a _static_ modal example (meaning its `position` and `display` have been overridden). Included are the modal header, modal body (required for `padding`), and modal footer (optional). We ask that you include modal headers with dismiss actions whenever possible, or provide another explicit dismiss action. + +
+ +
+ +{% highlight html %} + +{% endhighlight %} + +### Live demo + +Toggle a working modal demo by clicking the button below. It will slide down and fade in from the top of the page. + + + +
+ +
+ +{% highlight html %} + + + + + +{% endhighlight %} + +### Static backdrop + +When backdrop is set to static, the modal will not close when clicking outside it. Click the button below to try it. + + + +
+ +
+ +{% highlight html %} + + + + + +{% endhighlight %} + + +### Scrolling long content + +When modals become too long for the user's viewport or device, they scroll independent of the page itself. Try the demo below to see what we mean. + + + +
+ +
+ +You can also create a scrollable modal that allows scroll the modal body by adding `.modal-dialog-scrollable` to `.modal-dialog`. + + + +
+ +
+ +{% highlight html %} + + +{% endhighlight %} + +### Vertically centered + +Add `.modal-dialog-centered` to `.modal-dialog` to vertically center the modal. + + + + + +
+ + +
+ +{% highlight html %} + + + + + +{% endhighlight %} + +### Tooltips and popovers + +[Tooltips]({{ site.baseurl }}/docs/{{ site.docs_version }}/components/tooltips/) and [popovers]({{ site.baseurl }}/docs/{{ site.docs_version }}/components/popovers/) can be placed within modals as needed. When modals are closed, any tooltips and popovers within are also automatically dismissed. + + + +
+ +
+ +{% highlight html %} + +{% endhighlight %} + +### Using the grid + +Utilize the Bootstrap grid system within a modal by nesting `.container-fluid` within the `.modal-body`. Then, use the normal grid system classes as you would anywhere else. + + + +
+ +
+ +{% highlight html %} + +{% endhighlight %} + +### Varying modal content + +Have a bunch of buttons that all trigger the same modal with slightly different contents? Use `event.relatedTarget` and [HTML `data-*` attributes](https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes) (possibly [via jQuery](https://api.jquery.com/data/)) to vary the contents of the modal depending on which button was clicked. + +Below is a live demo followed by example HTML and JavaScript. For more information, [read the modal events docs](#events) for details on `relatedTarget`. + +{% capture example %} + + + + + +{% endcapture %} +{% include example.html content=example %} + +{% highlight js %} +$('#exampleModal').on('show.bs.modal', function (event) { + var button = $(event.relatedTarget) // Button that triggered the modal + var recipient = button.data('whatever') // Extract info from data-* attributes + // If necessary, you could initiate an AJAX request here (and then do the updating in a callback). + // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead. + var modal = $(this) + modal.find('.modal-title').text('New message to ' + recipient) + modal.find('.modal-body input').val(recipient) +}) +{% endhighlight %} + +### Change animation + +The `$modal-fade-transform` variable determines the transform state of `.modal-dialog` before the modal fade-in animation, the `$modal-show-transform` variable determines the transform of `.modal-dialog` at the end of the modal fade-in animation. + +If you want for example a zoom-in animation, you can set `$modal-fade-transform: scale(.8)`. + +### Remove animation + +For modals that simply appear rather than fade in to view, remove the `.fade` class from your modal markup. + +{% highlight html %} + +{% endhighlight %} + +### Dynamic heights + +If the height of a modal changes while it is open, you should call `$('#myModal').modal('handleUpdate')` to readjust the modal's position in case a scrollbar appears. + +### Accessibility + +Be sure to add `role="dialog"` and `aria-labelledby="..."`, referencing the modal title, to `.modal`. Additionally, you may give a description of your modal dialog with `aria-describedby` on `.modal`. + +### Embedding YouTube videos + +Embedding YouTube videos in modals requires additional JavaScript not in Bootstrap to automatically stop playback and more. [See this helpful Stack Overflow post](https://stackoverflow.com/questions/18622508/bootstrap-3-and-youtube-in-modal) for more information. + +## Optional sizes + +Modals have three optional sizes, available via modifier classes to be placed on a `.modal-dialog`. These sizes kick in at certain breakpoints to avoid horizontal scrollbars on narrower viewports. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SizeClassModal max-width
Small.modal-sm300px
DefaultNone500px
Large.modal-lg800px
Extra large.modal-xl1140px
+ +Our default modal without modifier class constitutes the "medium" size modal. + +
+ + + +
+ +{% highlight html %} + + + +{% endhighlight %} + + + + + + + +## Usage + +The modal plugin toggles your hidden content on demand, via data attributes or JavaScript. It also adds `.modal-open` to the `` to override default scrolling behavior and generates a `.modal-backdrop` to provide a click area for dismissing shown modals when clicking outside the modal. + +### Via data attributes + +Activate a modal without writing JavaScript. Set `data-toggle="modal"` on a controller element, like a button, along with a `data-target="#foo"` or `href="#foo"` to target a specific modal to toggle. + +{% highlight html %} + +{% endhighlight %} + +### Via JavaScript + +Call a modal with id `myModal` with a single line of JavaScript: + +{% highlight js %}$('#myModal').modal(options){% endhighlight %} + +### Options + +Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-backdrop=""`. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
backdropboolean or the string 'static'trueIncludes a modal-backdrop element. Alternatively, specify static for a backdrop which doesn't close the modal on click.
keyboardbooleantrueCloses the modal when escape key is pressed
focusbooleantruePuts the focus on the modal when initialized.
showbooleantrueShows the modal when initialized.
+ +### Methods + +{% include callout-danger-async-methods.md %} + +#### `.modal(options)` + +Activates your content as a modal. Accepts an optional options `object`. + +{% highlight js %} +$('#myModal').modal({ + keyboard: false +}) +{% endhighlight %} + +#### `.modal('toggle')` + +Manually toggles a modal. **Returns to the caller before the modal has actually been shown or hidden** (i.e. before the `shown.bs.modal` or `hidden.bs.modal` event occurs). + +{% highlight js %}$('#myModal').modal('toggle'){% endhighlight %} + +#### `.modal('show')` + +Manually opens a modal. **Returns to the caller before the modal has actually been shown** (i.e. before the `shown.bs.modal` event occurs). + +{% highlight js %}$('#myModal').modal('show'){% endhighlight %} + +#### `.modal('hide')` + +Manually hides a modal. **Returns to the caller before the modal has actually been hidden** (i.e. before the `hidden.bs.modal` event occurs). + +{% highlight js %}$('#myModal').modal('hide'){% endhighlight %} + +#### `.modal('handleUpdate')` + +Manually readjust the modal's position if the height of a modal changes while it is open (i.e. in case a scrollbar appears). + +{% highlight js %}$('#myModal').modal('handleUpdate'){% endhighlight %} + +#### `.modal('dispose')` + +Destroys an element's modal. + +### Events + +Bootstrap's modal class exposes a few events for hooking into modal functionality. All modal events are fired at the modal itself (i.e. at the `