Skip to content

Commit 346f424

Browse files
authored
Merge pull request #18 from ModusCreateOrg/accordion-2
Improved accordion demo
2 parents 99ba022 + 948b09b commit 346f424

File tree

4 files changed

+49
-122
lines changed

4 files changed

+49
-122
lines changed

15-layouts/f-accordion-layout/package-lock.json

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

15-layouts/f-accordion-layout/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"react": "^16.2.0",
77
"react-accessible-accordion": "^1.0.2",
88
"react-dom": "^16.2.0",
9+
"react-sanfona": "^1.0.6",
910
"react-scripts": "1.1.0"
1011
},
1112
"scripts": {
Lines changed: 22 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,24 @@
1-
.u-position-absolute {
2-
position: absolute;
3-
}
4-
.u-position-relative {
5-
position: relative;
6-
}
7-
.accordion {
8-
border: 1px solid rgba(0, 0, 0, .1);
9-
border-radius: 2px;
10-
}
11-
.accordion__item + .accordion__item {
12-
border-top: 1px solid rgba(0, 0, 0, .1);
13-
}
14-
.accordion__item--has-icon {
15-
position: relative;
16-
}
17-
.accordion__title {
18-
background-color: #f4f4f4;
19-
color: #444;
20-
cursor: pointer;
21-
padding: 12px 18px;
22-
border: none;
23-
}
24-
.accordion__title > h3 {
25-
margin: 0;
26-
}
27-
.accordion__title:hover {
28-
background-color: #ddd;
29-
}
30-
.accordion__body {
31-
padding: 20px;
32-
}
33-
.accordion__title > *:last-child,
34-
.accordion__body > *:last-child {
35-
margin-bottom: 0;
36-
}
37-
.accordion__arrow {
38-
display: inline-block;
39-
position: relative;
40-
width: 24px;
41-
height: 12px;
42-
position: absolute;
43-
top: 50%;
44-
right: 0;
45-
margin-top: -6px;
46-
}
47-
.accordion__arrow::after,
48-
.accordion__arrow::before {
49-
display: block;
50-
position: absolute;
51-
top: 50%;
52-
width: 10px;
53-
height: 2px;
54-
background-color: currentColor;
55-
content: '';
56-
}
57-
.accordion__arrow::before {
58-
left: 4px;
59-
transform: rotate(45deg);
60-
}
61-
[aria-expanded="true"] .accordion__arrow::before,
62-
[aria-selected="true"] .accordion__arrow::before {
63-
transform: rotate(-45deg);
64-
}
65-
.accordion__arrow::after {
66-
right: 4px;
67-
transform: rotate(-45deg);
68-
}
69-
[aria-expanded="true"] .accordion__arrow::after,
70-
[aria-selected="true"] .accordion__arrow::after {
71-
transform: rotate(45deg);
72-
}
73-
.accordion__arrow::before, .accordion__arrow::after {
74-
transition: transform .25s ease, -webkit-transform .25s ease;
1+
.react-sanfona {
2+
border: 1px solid #ccc;
3+
border-radius: 3px;
4+
}
5+
.react-sanfona-item-title {
6+
background-color: #fff4f4;
7+
border-top: 1px solid #ccc;
8+
color: #555;
9+
padding: 20px;
10+
text-transform: uppercase;
11+
}
12+
.react-sanfona-item:first-child .react-sanfona-item-title {
13+
border-top: none;
14+
}
15+
.react-sanfona-item-expanded .react-sanfona-item-title {
16+
background-color: #ed5853;
17+
color: #fff;
7518
}
7619

20+
.react-sanfona-item-body-wrapper {
21+
color: #555;
22+
padding: 20px;
23+
position: relative;
24+
}

15-layouts/f-accordion-layout/src/App.js

Lines changed: 9 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,18 @@
11
import React, { Component } from 'react';
2-
import '../node_modules/react-accessible-accordion/dist/react-accessible-accordion.css';
2+
import { Accordion, AccordionItem } from 'react-sanfona';
33
import './App.css';
44

5-
import {
6-
Accordion,
7-
AccordionItem,
8-
AccordionItemTitle,
9-
AccordionItemBody,
10-
} from 'react-accessible-accordion';
115
class App extends Component {
126
render () {
137
return (
14-
<div style={{width: 600}}>
15-
<Accordion>
16-
<AccordionItem>
17-
<AccordionItemTitle>
18-
<h3 className="u-position-relative">
19-
Accessible Accordion
20-
<div className="accordion__arrow" role="presentation" />
21-
</h3>
22-
</AccordionItemTitle>
23-
<AccordionItemBody>
24-
<p>
25-
Accessible Accordion component for React. Inspired by <a
26-
href="https://github.com/react-component/collapse"
27-
target="_blank"
28-
rel="noopener noreferrer"
29-
>rc-collapse</a> and <a
30-
href="https://github.com/daviferreira/react-sanfona"
31-
target="_blank"
32-
rel="noopener noreferrer"
33-
>react-sanfona</a>.
34-
</p>
35-
</AccordionItemBody>
36-
</AccordionItem>
37-
<AccordionItem className="accordion__item">
38-
<AccordionItemTitle>
39-
<h3 className=" u-position-relative u-margin-bottom-s">
40-
Components
41-
<div className="accordion__arrow" role="presentation" />
42-
</h3>
43-
</AccordionItemTitle>
44-
<AccordionItemBody>
45-
<ul>
46-
<li>Accordion</li>
47-
<li>AccordionItem</li>
48-
<li>AccordionItemTitle</li>
49-
<li>AccordionItemBody</li>
50-
</ul>
51-
</AccordionItemBody>
52-
</AccordionItem>
53-
</Accordion>
54-
</div>
8+
<Accordion style={{width: '400px'}}>
9+
{[1, 2, 3, 4, 5].map(item => (
10+
<AccordionItem title={`Item ${item}`} expanded={item === 1}>
11+
{`Item ${item} content`}
12+
</AccordionItem>
13+
)
14+
)}
15+
</Accordion>
5516
);
5617
}
5718
}

0 commit comments

Comments
 (0)