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

@bornfight/b-accordion

v1.0.18

Published

Bornfight Studio frontend lib for accordion type elements

Downloads

26

Readme

b-accordion [all b- libs]

Bornfight Studio frontend lib for accordion type interactions/elements

GitHub package.json version GitHub package.json dynamic GitHub issues GitHub

📦 Getting Started

Dependency: gsap

  • install b-accordion trough npm or pull ti from git
npm i @bornfight/b-accordion
  • include b-accordion to your JS and SCSS after running npm install

🔨️ Usage

JS

import Accordion from "@bornfight/b-accordion";
Basic
new Accordion();
Advanced
new Accordion(".js-accordion", {
    openDuration: 0.5,
    openDelay: 0,
    openingEase: "bounce.out",
    closeDuration: 0.3,
    closeDelay: 0,
    closingEase: "bounce.in",
    onCloseStart: (header, content) => {
        console.log("close start", header, content);
    },
    onCloseComplete: (header, content) => {
        console.log("close complete", header, content);
    },
    onOpenStart: (header, content) => {
        console.log("open start", header, content);
    },
    onOpenComplete: (header, content) => {
        console.log("open complete", header, content);
    },
});
SCSS
@import "~@bornfight/b-accordion/src/scss/style.scss";
  • scss import is not mandatory but following code must be included
.js-accordion-panel {
    backface-visibility: hidden;
    overflow: hidden;
    height: 0;
}
HTML markup

Mono accordion with single item header as hit area (only one item can be active and only item header will trigger open/close). Main wrapper "js-accordion" need to have "is-mono" class


<div class="js-accordion is-mono">
    <div class="js-accordion-single">
        <div class="js-accordion-header">
            <p>
                Accordion header title 1
            </p>
        </div>
        <div class="js-accordion-panel">
            <!-- CONTENT -->
            ...
        </div>
    </div>

    <div class="js-accordion-single">
        <div class="js-accordion-header">
            <p>
                Accordion header title 2
            </p>
        </div>
        <div class="js-accordion-panel">
            <!-- CONTENT -->
            ...
        </div>
    </div>
</div>

Single item header as hit area (only header will trigger open/close)


<div class="js-accordion">
    <div class="js-accordion-single">
        <div class="js-accordion-header">
            <p>
                Accordion header title 1
            </p>
        </div>
        <div class="js-accordion-panel">
            <!-- CONTENT -->
            ...
        </div>
    </div>

    <div class="js-accordion-single">
        <div class="js-accordion-header">
            <p>
                Accordion header title 2
            </p>
        </div>
        <div class="js-accordion-panel">
            <!-- CONTENT -->
            ...
        </div>
    </div>
</div>
  • Single item full body as hit area (item can be opened and closed wherever you click)

<div class="js-accordion">
    <div class="js-accordion-single js-accordion-header">
        <div>
            <p>
                Accordion header title 1
            </p>
        </div>
        <div class="js-accordion-panel">
            <!-- CONTENT -->
            ...
        </div>
    </div>

    <div class="js-accordion-single js-accordion-header">
        <div>
            <p>
                Accordion header title 2
            </p>
        </div>
        <div class="js-accordion-panel">
            <!-- CONTENT -->
            ...
        </div>
    </div>
</div>

Options

| Option | Type | Default | Example | Note | | --------------- | ------ | ----------------------- | --------------- | ------------------------------------------------------------ | | jsClass | string | '.js-accordion' | '.my-accordion' | | openingEase | string | 'power4.out' | 'expo.out' | GSAP easing | | closingEase | string | 'power4.in' | 'expo.in' | GSAP easing | | openDuration | number | 0.5 | 0.2 | seconds | | closeDuration | number | 0.3 | 1 | seconds | | openDelay | number | 0 | 0.2 | seconds | | closeDelay | number | 0 | 0.2 | seconds | | onOpenStart | method | (header, content) => {} | | returns header and content of current item (header, content) | | onCloseStart | method | (header, content) => {} | | returns header and content of current item (header, content) | | onOpenComplete | method | (header, content) => {} | | returns header and content of current item (header, content) | | onCloseComplete | method | (header, content) => {} | | returns header and content of current item (header, content) |

💎 Customization

  • use your imagination

🚀 Useful to know

  1. any element inside js-accordion-single can be trigger for open/close. It just needs to have js-accordion-header class
  2. only one element inside js-accordion-single can have js-accordion-header class

📦 Contribute

Gulp based system

npm run dev - dev environent with browsersync

License

MIT © Bornfight Studio