@internetarchive/ia-menu-slider
v2.0.1
Published
Menu slider used in ia-topnav
Downloads
30
Maintainers
Keywords
Readme
<ia-menu-slider>
This webcomponent follows the open-wc recommendation.
Installation
npm i @internetarchive/ia-menu-slider
or
yarn add @internetarchive/ia-menu-slider
Usage
<script type="module">
import '@internetarchive/ia-menu-slider/ia-menu-slider.js';
</script>
<ia-menu-slider></ia-menu-slider>
Supply the element with an array of objects representing the menu items and their submenu components. Each menu item can have these properties:
{
icon: html``, // The LitHtml literal to render within the menu button
label: 'Label', // Screen reader label
id: 'label', // Unique identifier used to track which menu item is selected
component: html``, // The LitHtml literal to render to the submenu content element. Not needed if followable is true.
followable: true, // Whether to follow the URL supplied in the href property. Optional.
href: '#' // If followable is true, URL followed when menu button clicked
}
To toggle the menu open or closed, set the open
property on the component.
Styling
ia-menu-slider {
--menuButtonLabelDisplay: none;
--menuSliderBg: #151515;
--primaryTextColor: #fff;
--menuWidth: 320px;
--animationTiming: .25s;
--iconFillColor: #fff;
--iconStrokeColor: #fff;
--activeButtonBg: #282828;
}
Linting with ESLint, Prettier, and Types
To scan the project for linting errors, run
yarn lint
Testing with Karma
To run the suite of karma tests, run
yarn test
To run the tests in watch mode (for TDD, for example), run
yarn test:watch
Demoing with Storybook
To run a local instance of Storybook for your component, run
yarn storybook
To build a production version of Storybook, run
yarn storybook:build
Tooling configs
For most of the tools, the configuration is in the package.json
to reduce the amount of files in your project.
If you customize the configuration a lot, you can consider moving them to individual files.
Local Demo with es-dev-server
yarn start
To run a local development server that serves the basic demo located in demo/index.html