Skip to content

Commit 907cbf6

Browse files
authored
Merge pull request #4 from BeAPI/feature/accordion
Feature/accordion
2 parents ca73673 + 4fb4219 commit 907cbf6

File tree

6 files changed

+780
-0
lines changed

6 files changed

+780
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ $ yarn build
1919
## Changelog
2020

2121
### 1.0.2
22+
- Add Accordion class
2223
- Add Toggle class
2324

2425
### 1.0.1
+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Accessible Accordion
2+
3+
## Get started
4+
5+
Copy the following markup on your HTML file :
6+
7+
```html
8+
<div class="accordion">
9+
<h3>
10+
<button aria-expanded="true" class="accordion__trigger">
11+
<span class="accordion__title">
12+
Tab title
13+
</span>
14+
</button>
15+
</h3>
16+
<div class="accordion__panel" role="region">
17+
<!-- Your content here -->
18+
</div>
19+
<h3>
20+
<button aria-expanded="false" class="accordion__trigger">
21+
<span class="accordion__title">
22+
Tab title
23+
</span>
24+
</button>
25+
</h3>
26+
<div class="accordion__panel" role="region" style="display: none;">
27+
<!-- Your content here -->
28+
</div>
29+
<h3>
30+
<button aria-expanded="false" class="accordion__trigger">
31+
<span class="accordion__title">
32+
Tab title
33+
</span>
34+
</button>
35+
</h3>
36+
<div class="accordion__panel" role="region" style="display: none;">
37+
<!-- Your content here -->
38+
</div>
39+
<!-- ... -->
40+
</div>
41+
```
42+
43+
In `Accordion.js` file, add the following preset :
44+
```js
45+
Accordion.preset = {
46+
'.accordion': {},
47+
}
48+
```
49+
50+
Next, in jour JS file, import Accordion class and initialize it :
51+
```js
52+
import Accordion from '/path/to/Accordion.js';
53+
54+
Accordion.initFromPreset();
55+
```
56+
57+
If you want to change the classes of the component, you can also initialize it :
58+
```html
59+
<div class="accor">
60+
<h3>
61+
<button aria-expanded="true" class="accor-trigger">
62+
<span class="accor-title">
63+
Tab title
64+
</span>
65+
</button>
66+
</h3>
67+
<div class="accor-panel" role="region">
68+
<!-- Your content here -->
69+
</div>
70+
<h3>
71+
<button aria-expanded="false" class="accor-trigger">
72+
<span class="accor-title">
73+
Tab title
74+
</span>
75+
</button>
76+
</h3>
77+
<div class="accor-panel" role="region" style="display: none;">
78+
<!-- Your content here -->
79+
</div>
80+
<h3>
81+
<button aria-expanded="false" class="accor-trigger">
82+
<span class="accor-title">
83+
Tab title
84+
</span>
85+
</button>
86+
</h3>
87+
<div class="accor-panel" role="region" style="display: none;">
88+
<!-- Your content here -->
89+
</div>
90+
<!-- ... -->
91+
</div>
92+
```
93+
94+
```js
95+
import Accordion from '/path/to/Accordion.js';
96+
97+
Accordion.init('.accor', {
98+
panelSelector: '.accor-panel',
99+
prefixId: 'Accordion',
100+
triggerSelector: '.accor-trigger',
101+
});
102+
```
103+
104+
## Options
105+
106+
| name | type | default | description |
107+
|-------------------|---------|-----------------------|---------------------------------------------------------|
108+
| `allowMultiple` | boolean | `false` | Allow accordion to open panels at the same time. |
109+
| `forceExpand` | boolean | `true` | If true, the accordion has at least one panel opened. |
110+
| `hasAnimation` | boolean | `false` | If true, the panel has a slideDown / slideUp animation. |
111+
| `panelSelector` | string | `.accordion__panel` | The selector of the panels. |
112+
| `prefixId` | string | `accordion` | The prefix id of the component. |
113+
| `triggerSelector` | string | `.accordion__trigger` | The selector of the trigger buttons. | |

0 commit comments

Comments
 (0)