1.0.18 • Published 11 months ago

@bornfight/b-accordion v1.0.18

Weekly downloads
12
License
MIT
Repository
github
Last release
11 months ago

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

OptionTypeDefaultExampleNote
jsClassstring'.js-accordion''.my-accordion'
openingEasestring'power4.out''expo.out'GSAP easing
closingEasestring'power4.in''expo.in'GSAP easing
openDurationnumber0.50.2seconds
closeDurationnumber0.31seconds
openDelaynumber00.2seconds
closeDelaynumber00.2seconds
onOpenStartmethod(header, content) => {}returns header and content of current item (header, content)
onCloseStartmethod(header, content) => {}returns header and content of current item (header, content)
onOpenCompletemethod(header, content) => {}returns header and content of current item (header, content)
onCloseCompletemethod(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

1.0.18

11 months ago

1.0.17

11 months ago

1.0.16

11 months ago

1.0.15

2 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago