Menu Package for Webpack.
NOTE: Package is in development.
Why this package
There already are a lot of menu packages available across the web. So why build another one? Well, A lot of packages focus on a specific menu layout, are at some point incomplete or not flexibel enough. We would like to change that and create a single menu package that gives front-end developers a set of predefined, responsive menu layouts to start their project with.
DONE
- Change menu based on resolution SASS only
- Create your own menu themes
- Customizable selectors
- Basic swipe handling
TODO
- Optimize package
- Create up to 5 (or more) menu themes (SCSS)
- Optimize Swipe event usage
- Optimize Demo page
- Optimize documentation
- Create ready to use prebuild package files.
EXAMPLE: menudemo.rehabproject.nl
ps. Like to join the fun? contact us at info@code.rehab;
How to use
Installation
Install from npm
npm install advanced-menus --save-dev
Include Javascript (ES6)
/*DEFAULT CONFIG { options:{ disable_page_scroll: false, autoclose: true, parent_clickable: true }, events: { swipeLeft: function(){}, swipeRight: function(){}, swipeUp: function(){}, swipeDown: function(){} }, selectors:{ menu_id: 'main-menu', menuitem: 'li', submenu: 'li > ul', toggle_button: false, open_button: false, close_button: false, }} */ const Menu = ; //menu config;var config = selectors: toggle_button: ".menu-toggle-button" options: disable_scroll: true parent_clickable:true events: { menu; } { menu; } //config not requiredvar mainmenu = config;
Include styles (SASS)
/*Available themes:- aside-left- aside-right- plain-horizontal- dropdown*/ $registered-menus: ( main-menu: ( selector:"#main-menu", themes:( aside-left: ( min:0px, max:750px, autohide: 750px ), aside-right: ( min:750px, max:1024px, ), plain-horizontal: (min:1024px) ) ) //, another menu //, another menu); @import "node_modules/advanced-menus/scss/menu";@include generate-menus(); /*=============================================USEFUL MIXINS=============================================*/ // experimental// menu-breakpoint :// Use this mixin to add styles at the specified menu theme breakpoint@include menu-breakpoint($menu, $theme){ //styles} /*=============================================Custom themes=============================================*/ // experimental// ./themes/_theme-name.scss@include register_menu_theme($some-theme-name)// your styles here.} // experimental//hides menu at certain resolution;@include menu-autohide($theme-name){ // initial styles to hide menu.}
Example html
Item 1Item 1Item 2Item 1Item 2Item 3Item 4Item 5Item 3Item 4Item 5Item 2Item 1Item 2Item 3Item 4=