0.0.2 • Published 5 months ago

react-ts-droid-accordion v0.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

Accordion Component

The Accordion component is a flexible and customizable React component that creates expandable/collapsible sections. It's built with TypeScript, providing type safety and easy integration into React projects.

Features

  • Customizable header, content, and actions sections
  • Option to set default expanded state
  • Customizable styles for header, content, actions, and icon
  • Custom icon support
  • TypeScript support for type safety

Installation

To use the Accordion component in your React application, install it via npm:

npm install react-ts-droid-accordion

Usage

To use the Accordion component, import it and provide the required children:

import Accordion from "react-ts-droid-accordion";

const MyComponent = () => {
  return (
    <DroidAccordion>
      <div>Accordion Header</div>
      <div>Accordion Content</div>
      <div>Accordion Actions</div>
    </DroidAccordion>
  );
};

Props

The Accordion component accepts the following props:

PropTypeRequiredDefaultDescription
childrenReactNode[]Yes-Array of ReactNodes for header, content, and actions
defaultExpandedbooleanNofalseWhether the accordion is expanded by default
headerStyleCSSPropertiesNo-Custom styles for the accordion header
contentStyleCSSPropertiesNo-Custom styles for the accordion content
actionsStyleCSSPropertiesNo-Custom styles for the accordion actions
iconStyleCSSPropertiesNo-Custom styles for the accordion icon
iconComponentReactNodeNoCustom icon component

Children

The Accordion component expects 2 or 3 child elements:

  1. The first child is used as the accordion header.
  2. The second child is used as the accordion content.
  3. The third child (optional) is used as the accordion actions.

Customization

Styles

You can customize the appearance of different parts of the Accordion by passing style objects to the corresponding style props:

<DroidAccordion
  headerStyle={{ backgroundColor: "#f0f0f0", padding: "10px" }}
  contentStyle={{ padding: "20px" }}
  actionsStyle={{ marginTop: "10px" }}
  iconStyle={{ color: "blue" }}
>
  {/* ... */}
</DroidAccordion>

Custom Icon

You can provide a custom icon component:

<DroidAccordion iconComponent={<CustomIcon />}>{/* ... */}</DroidAccordion>

Behavior

  • Clicking on the header toggles the expanded state of the accordion.
  • The icon rotates 180 degrees when the accordion is expanded.

Accessibility

The Accordion component uses semantic HTML and can be operated with a keyboard, making it accessible to users relying on assistive technologies.

Conclusion

The Accordion component provides a flexible and customizable way to create expandable/collapsible sections in your React application. With its customization options and TypeScript support, it can easily be integrated into your project to display content in an organized and space-efficient manner. For more information and examples, please refer to the GitHub repository.