Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
react-simple-accordion-ui
Advanced tools
A flexible and customizable accordion component for React applications.
A flexible and customizable accordion component for React applications.
Install the package using npm:
npm install react-simple-accordion-ui
Or using yarn:
yarn add react-simple-accordion-ui
Here's a basic example of how to use the Accordion component:
import { Accordion } from 'react-simple-accordion-ui';
const App = () => {
const items = [
{
title: "Simple Title",
content: <p>This is a simple content with a React component.</p>,
action: (isActive) => (
<button>{isActive ? "Hide" : "Show"}</button>
),
},
{
title: (
<p>
This title is a React component title
</p>
),
content: (
<div>
<p>This content is also a React component.</p>
<p>It can contain multiple elements and even other components.</p>
<a href="https://www.google.com">Another link to Google</a>
</div>
),
},
{
title: "Title with Default Toggle",
content: (
<p>
This item uses the default toggle button instead of a custom action.
The content can be as complex as you need.
</p>
),
},
];
return (
<Accordion
items={items}
allowMultiple={true}
duration={300}
easing="ease-in-out"
/>
);
};
export default App;
Here are some basic styles for the component.
.RSA__AccordionWrapper {
&__Item {
border-radius: 6px;
background-color: #fff;
border: 1px solid #e5e5e5;
&:not(:last-child) {
margin-bottom: 20px;
}
&__Header {
display: flex;
align-items: center;
padding: 20px;
overflow: hidden;
color: #333;
> span {
margin-left: auto;
}
}
&__Content {
border-top: 1px solid #ccc;
&__ContentContainer {
&__Wrapper {
padding: 20px;
}
}
}
}
}
The Accordion component accepts the following props:
Prop | Type | Default | Description |
---|---|---|---|
allowMultiple | boolean | true | If true, multiple accordion items can be expanded at once. If false, only one item can be expanded at a time. |
className | string | Specify a custom className for the wrapper. | |
duration | number | The duration of the expand/collapse animation in milliseconds. If not provided, no transition is applied. | |
easing | string | The easing function for the expand/collapse animation. Any valid CSS transition timing function can be used. | |
items | Array | Required | An array of objects representing the accordion items. Each object should have a title and content property. |
Each item in the items
array should be an object with the following properties:
Property | Type | Description |
---|---|---|
title | ReactNode | The title of the accordion item. Can be a string or a React component. |
content | ReactNode | The content of the accordion item. Can be a string or a React component. |
action | function | (Optional) A custom function to render the expand/collapse action. If provided, it overrides the default toggle button. |
The component uses CSS modules for styling. You can override the default styles by targeting the following classes:
.RSA__AccordionWrapper
: The main wrapper for the accordion.RSA__AccordionWrapper__Item
: Each accordion item.RSA__AccordionWrapper__Item__Header
: The header of each accordion item.RSA__AccordionWrapper__Item__Content
: The content wrapper of each accordion item.RSA__AccordionWrapper__Item__Content__ContentContainer
: The inner content container.RSA__AccordionWrapper__Item__Content__ContentContainer__Wrapper
: The innermost content wrapperAdditionally, the following modifier class is applied to active items:
.active
: Applied to the accordion item when it's expandedThis component follows WAI-ARIA practices for accordions:
aria-expanded
is used to indicate the expanded statearia-hidden
is used to hide the content when collapsedThis component is written in TypeScript and includes type definitions. The main types you might need are:
interface IAccordionProps {
allowMultiple?: boolean;
duration?: number;
easing?: string;
items: Array<{
title: ReactNode;
content: ReactNode;
action?: (isActive: boolean) => ReactNode;
}>;
}
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
FAQs
A flexible and customizable accordion component for React applications.
The npm package react-simple-accordion-ui receives a total of 7 weekly downloads. As such, react-simple-accordion-ui popularity was classified as not popular.
We found that react-simple-accordion-ui demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.