5.1.1 • Published 3 months ago
@19h47/accordion v5.1.1
@19h47/accordion
Sur un petit air d'accordéon Léon
Installation
yarn add @19h47/accordion
Usage
import Accordion from '@19h47/accordion';
const $element = document.querySelector('.js-accordion');
const accordion = new Accordion($element);
accordion.init();
<div class="js-accordion">
<div class="js-accordion-panel" data-accordion-open="true" data-accordion-deselect="true">
<button
class="js-accordion-header"
type="button"
aria-expanded="true"
aria-controls="lorem-body"
id="lorem-header"
>
Toggle
</button>
<div id="lorem-body" role="region">
<div class="js-accordion-inner">
Sit amet, consectetur adipisicing elit. Omnis ex inventore tempore. Quam voluptas
quibusdam excepturi accusantium voluptatum facere. Nemo vero iste recusandae, at
magnam tenetur maxime ad optio veniam!<br />
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Doloremque, molestias
excepturi molestiae nesciunt alias. Nobis aut praesentium, commodi minus laborum
ullam at quod soluta qui tempore sit eveniet dicta esse.
</div>
</div>
</div>
</div>
Keyboard Support
Key | Function |
---|---|
Space or Enter | When focus is on the accordion header of a collapsed section, expands the section. |
Tab | Moves focus to the next focusable element.All focusable elements in the accordion are included in the page Tab sequence. |
Shift + Tab | Moves focus to the previous focusable element.All focusable elements in the accordion are included in the page Tab sequence. |
Down Arrow | When focus is on an accordion header, moves focus to the next accordion header.When focus is on last accordion header, moves focus to first accordion header. |
Up Arrow | When focus is on an accordion header, moves focus to the previous accordion header.When focus is on first accordion header, moves focus to last accordion header. |
Home | When focus is on an accordion header, moves focus to the first accordion header. |
End | When focus is on an accordion header, moves focus to the last accordion header. |
Role, Property, State, and Tabindex Attributes
Role | Attribute | Element | Usage |
---|---|---|---|
aria-controls="ID" | button | oints to the ID of the panel which the header controls. | |
region | div | Creates a landmark region that contains the currently expanded accordion panel. |
Option
Options can be set as data-attribute
.
Open
Is the panel open or not.
<button data-accordion-open="true">Button</button>
Deselect
Can the panel be deselected or not.
<button data-accordion-deselect="true">Button</button>
Event
Open
import Accordion from '@19h47/accordion';
const $element = document.querySelector('.js-accordion');
const accordion = new Accordion($element);
accordion.init();
accordion.panels.forEach(panel => {
panel.el.addEventListener('Panel.open', ({ detail }) => {
console.log({ detail });
});
});
Close
import Accordion from '@19h47/accordion';
const $element = document.querySelector('.js-accordion');
const accordion = new Accordion($element);
accordion.init();
accordion.panels.forEach(panel => {
panel.el.addEventListener('Panel.close', ({ detail }) => {
console.log({ detail });
});
});
Build Setup
# install dependencies
$ yarn install
# serve with hot reload at localhost:3000
$ yarn serve
# build for production
$ yarn build
Example
An example is located right here, see sources.
Acknowledgments
5.1.1
3 months ago
5.0.2
7 months ago
5.1.0
7 months ago
5.0.1
7 months ago
4.7.2
10 months ago
4.8.0
8 months ago
4.7.3
8 months ago
4.7.1
2 years ago
4.7.0
3 years ago
4.6.1
3 years ago
4.6.0
3 years ago
4.5.4
3 years ago
4.5.3
3 years ago
4.5.5
3 years ago
4.5.2
3 years ago
4.5.1
3 years ago
4.5.0
3 years ago
4.4.0
3 years ago
4.3.13
4 years ago
4.3.12
4 years ago
4.3.10
4 years ago
4.3.9
4 years ago
4.3.8
4 years ago
4.3.7
4 years ago
4.2.7
4 years ago
4.2.6
4 years ago
4.2.5
4 years ago
4.2.4
4 years ago
4.1.4
4 years ago
4.1.3
4 years ago
4.0.1
4 years ago
4.0.3
4 years ago
4.0.2
4 years ago
4.0.0
4 years ago
3.3.0
4 years ago
3.2.2
4 years ago
3.2.1
4 years ago
3.2.0
4 years ago
3.1.2
4 years ago
3.1.0
5 years ago
3.0.2
5 years ago
3.0.0
5 years ago