]> git.ipfire.org Git - thirdparty/bootstrap.git/commit
Offcanvas as component (#29017)
authorGeoSot <geo.sotis@gmail.com>
Tue, 2 Mar 2021 17:10:10 +0000 (19:10 +0200)
committerGitHub <noreply@github.com>
Tue, 2 Mar 2021 17:10:10 +0000 (19:10 +0200)
commit548be2ed6604ddfc8488cd4a793c6271c2caf485
treefdde8406dd05b0d7e157c7be58f9561d7626f8c1
parentb9e51dc3c4400ede5e72991dd0efacf9dbcb694e
Offcanvas as component (#29017)

* Add a new offcanvas component

* offcanvas.js: switch to string constants and `event.key`

* Remove unneeded code

* Sass optimizations

* Fixes

Make sure the element is hidden and not offscreen when inactive
fix close icon negative margins
Add content in right & bottom examples
Re-fix bottom offcanvas height not to cover all viewport

* Wording tweaks

* update tests and offcanvas class

* separate scrollbar functionality and use it in offcanvas

* Update .bundlewatch.config.json

* fix focus

* update btn-close / fix focus on close

* add aria-modal and role
return focus on trigger when offcanvas is closed
change body scrolling timings

* move common code to reusable functions

* add aria-labelledby

* Replace lorem ipsum text

* fix focus when offcanvas is closed

* updates

* revert modal, add tests for scrollbar

* show backdrop by default

* Update offcanvas.md

* Update offcanvas CSS to better match modals

- Add background-clip for borders
- Move from outline to border (less clever, more consistent)
- Add scss-docs in vars

* Revamp offcanvas docs

- Add static example to show and explain the components
- Split live examples and rename them
- Simplify example content
- Expand docs notes elsewhere
- Add sass docs

* Add .offcanvas-title instead of .modal-title

* Rename offcanvas example to offcanvas-navbar to reflect it's purpose

* labelledby references title and not header

* Add default shadow to offcanvas

* enable offcanvas-body to fill all the remaining wrapper area

* Be more descriptive, on Accessibility area

* remove redundant classes

* ensure in case of an already open offcanvas, not to open another one

* bring back backdrop|scroll combinations

* bring back toggling class

* refactor scrollbar method, plus tests

* add check if element is not full-width, according to #30621

* revert all in modal

* use documentElement innerWidth

* Rename classes to -start and -end

Also copyedit some docs wording

* omit some things on scrollbar

* PASS BrowserStack tests

-- IOS devices, Android devices and Browsers on Mac, hide scrollbar by default and appear it, only while scrolling.

* Rename '_handleClosing' to '_addEventListeners'

* change pipe usage to comma

* change Data.getData to Data.get

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
Co-authored-by: Martijn Cuppens <martijn.cuppens@gmail.com>
Co-authored-by: Mark Otto <markdotto@gmail.com>
20 files changed:
.bundlewatch.config.json
build/build-plugins.js
js/index.esm.js
js/index.umd.js
js/src/offcanvas.js [new file with mode: 0644]
js/src/util/scrollbar.js [new file with mode: 0644]
js/tests/unit/offcanvas.spec.js [new file with mode: 0644]
js/tests/unit/util/scrollbar.spec.js [new file with mode: 0644]
scss/_offcanvas.scss [new file with mode: 0644]
scss/_variables.scss
scss/bootstrap.scss
site/assets/scss/_component-examples.scss
site/content/docs/5.0/components/offcanvas.md [new file with mode: 0644]
site/content/docs/5.0/examples/offcanvas-navbar/index.html [moved from site/content/docs/5.0/examples/offcanvas/index.html with 99% similarity]
site/content/docs/5.0/examples/offcanvas-navbar/offcanvas.css [moved from site/content/docs/5.0/examples/offcanvas/offcanvas.css with 100% similarity]
site/content/docs/5.0/examples/offcanvas-navbar/offcanvas.js [moved from site/content/docs/5.0/examples/offcanvas/offcanvas.js with 100% similarity]
site/data/examples.yml
site/data/sidebar.yml
site/static/docs/5.0/assets/img/examples/offcanvas-navbar.png [moved from site/static/docs/5.0/assets/img/examples/offcanvas.png with 100% similarity]
site/static/docs/5.0/assets/img/examples/offcanvas-navbar@2x.png [moved from site/static/docs/5.0/assets/img/examples/offcanvas@2x.png with 100% similarity]