
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
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 2 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
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.