@y14e/disclosure
v2.0.3
Published
WAI-ARIA compliant disclosure pattern implementation in TypeScript
Maintainers
Readme
Disclosure
WAI-ARIA compliant disclosure pattern implementation in TypeScript. Using the <details> and <summary> element.
Install
npm i @y14e/disclosure// npm
import Disclosure from '@y14e/disclosure';
// CDNs
import Disclosure from 'https://esm.sh/@y14e/[email protected]';
// or
import Disclosure from 'https://cdn.jsdelivr.net/npm/@y14e/[email protected]/+esm';
// or
import Disclosure from 'https://esm.unpkg.com/@y14e/[email protected]';Usage
new Disclosure(root, options);
// => Disclosure
//
// root: HTMLElement
// options (optional): DisclosureOptions🪄 Options
interface DisclosureOptions {
animation: {
duration: number; // ms (default: 300)
easing: string; // <easing-function> (default: 'ease')
};
collapsible: boolean; // default: true
}⚙️ Customize defaults
Override the global default settings applied to all disclosure instances.
import Disclosure from '@y14e/disclosure';
Disclosure.defaults = {
animation: {
duration: 1000,
},
};
new Disclosure(root);📦 APIs
collapse
disclosure.collapse(details);
// => void
//
// details: HTMLDetailsElementdestroy
Destroys the instance and cleans up all event listeners.
disclosure.destroy(force);
// => Promise<void>
//
// force (optional): If true, skips waiting for animations to finish.expand
disclosure.expand(details);
// => void
//
// details: HTMLDetailsElementDemo
- https://y14e.github.io/disclosure/
