项目作者: gero1992

项目描述 :
A Web UI navigation implemented with LitElement
高级语言: JavaScript
项目地址: git://github.com/gero1992/side-menu.git
创建时间: 2020-11-28T23:56:11Z
项目社区:https://github.com/gero1992/side-menu

开源协议:MIT License

下载


@maksu/side-menu"">npm version
@maksu/side-menu">Published on webcomponents.org
Published on Vaadin Directory

side-menu

Side-menu is a LitElement Web Component providing application navigation functionality withing the UI.
It can be used for hierarchical or flat navigation.

Live demo

Supported features:
  1. Compact and normal modes
  2. Adding icons to the elements
  3. Multi level navigation

Example of side-menu

Installation

Install ‘side-menu’ web component:

  1. npm i @maksu/side-menu --save

After that you can import in an html file:

  1. <head>
  2. <script type="module">
  3. import '@maksu/side-menu/side-menu.js'
  4. import '@maksu/side-menu/side-menu-item.js'
  5. </script>
  6. </head>

or in another LitElement:

  1. import {LitElement, html} from "lit-element";
  2. import '@maksu/side-menu/side-menu.js';
  3. import '@maksu/side-menu/side-menu-item.js';
  4. class ExampleElement extends LitElement {
  5. static get template() {
  6. return html`
  7. <side-menu>
  8. <side-menu-item label='Home' href='https://www.example.com'>
  9. </side-menu-item>
  10. </side-menu>
  11. `;
  12. }
  13. }
  14. customElements.define('example-element', ExampleElement);

Examples

Simple

  1. <side-menu>
  2. <side-menu-item label="Home" href="/home"></side-menu-item>
  3. <side-menu-item label="Accounts" href="/accounts"></side-menu-item>
  4. <side-menu-item label="Assignments" href="/assignments" target="_blank"></side-menu-item>
  5. </side-menu>

Icon

  1. <side-menu>
  2. <side-menu-item label="Home" href="/home">
  3. <iron-icon icon="home" slot="icon"></iron-icon>
  4. </side-menu-item>
  5. <side-menu-item label="Accounts" href="/accounts">
  6. <iron-icon icon="account-circle" slot="icon"></iron-icon>
  7. </side-menu-item>
  8. <side-menu-item label="Assignments" href="/assignments" target="_blank">
  9. <iron-icon icon="assignment-turned-in" slot="icon"></iron-icon>
  10. </side-menu-item>
  11. </side-menu>

Multi-level

  1. <side-menu>
  2. <side-menu-item label="Home">
  3. <iron-icon icon="home" slot="icon"></iron-icon>
  4. </side-menu-item>
  5. <side-menu-item label="Favorites" expanded>
  6. <iron-icon icon="favorite" slot="icon"></iron-icon>
  7. <side-menu-item label="Learn">
  8. <side-menu-item
  9. label="How to"
  10. href="/howto"
  11. target="_blank">
  12. </side-menu-item>
  13. </side-menu-item>
  14. <side-menu-item
  15. label="Web Components"
  16. href="/webcomponents"
  17. target="_blank">
  18. </side-menu-item>
  19. <side-menu-item label="Guides" href="guides"></side-menu-item>
  20. </side-menu-item>
  21. </side-menu>

Set item selected:

You can set an item to be selected by adding a selected attribute to it

  1. <side-menu>
  2. <side-menu-item label="Home" selected></side-menu-item>
  3. </side-menu>

Expand nested items:

When you have a multi level menu, you can expand the child items by adding expanded attribute to the parent:

  1. <side-menu>
  2. <side-menu-item label="Parent" expanded>
  3. <side-menu-item label="Child"></side-menu-item>
  4. </side-menu-item>
  5. </side-menu>

Running the demo locally

  1. Fork the side-menu repository and clone it.
  2. Run npm install to install the dependencies.
  3. Run npm start and the browser will automatically open the component demo.