npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@droid-tech/react-ts-accordion

v0.0.1

Published

A simple React TypeScript accordion component

Downloads

20

Readme

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 @droid-tech/react-ts-accordion

Usage

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

import Accordion from "@droid-tech/react-ts-accordion";

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

Props

The Accordion component accepts the following props:

| Prop | Type | Required | Default | Description | |-------------------|---------------|----------|---------|----------------------------------------------------| | children | ReactNode[] | Yes | - | Array of ReactNodes for header, content, and actions | | defaultExpanded | boolean | No | false | Whether the accordion is expanded by default | | headerStyle | CSSProperties | No | - | Custom styles for the accordion header | | contentStyle | CSSProperties | No | - | Custom styles for the accordion content | | actionsStyle | CSSProperties | No | - | Custom styles for the accordion actions | | iconStyle | CSSProperties | No | - | Custom styles for the accordion icon | | iconComponent | ReactNode | No | | Custom 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:

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

Custom Icon

You can provide a custom icon component:

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

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.