https://github.com/svar-widgets/menu
Svelte menu component. Build dropdown menus, context menus, or complex menu bars.
https://github.com/svar-widgets/menu
menu menu-bar menu-component menu-navigation svelte svelte-component svelte-ui-components sveltejs ui-component
Last synced: 3 months ago
JSON representation
Svelte menu component. Build dropdown menus, context menus, or complex menu bars.
- Host: GitHub
- URL: https://github.com/svar-widgets/menu
- Owner: svar-widgets
- License: mit
- Created: 2024-10-04T18:00:01.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-02-18T21:19:23.000Z (4 months ago)
- Last Synced: 2025-03-16T12:11:40.874Z (3 months ago)
- Topics: menu, menu-bar, menu-component, menu-navigation, svelte, svelte-component, svelte-ui-components, sveltejs, ui-component
- Language: Svelte
- Homepage: https://docs.svar.dev/svelte/core/category/menu
- Size: 188 KB
- Stars: 18
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license.txt
Awesome Lists containing this project
README
# SVAR Svelte Menu[](https://www.npmjs.com/package/wx-svelte-menu)
[](https://github.com/svar-widgets/menu/blob/main/license.txt)
[](https://www.npmjs.com/package/wx-svelte-menu)SVAR Menu is a ready-to-use Svelte component for creating context and popup menus. Easily customize each menu item with text, icons, and sub-items, and control the menu's position relative to its parent element.
### Svelte 4 and Svelte 5 versions
There are two versions of the library: the 1.x version, designed to work with Svelte 4, and the 2.x version, created for Svelte 5. Please note that the 2.x version is in beta and may contain some instabilities.
To use the SVAR Menu beta for Svelte 5, install it as follows:
```
npm install wx-svelte-menu
```To use the SVAR Menu for Svelte 4:
```
npm install [email protected]
```### How to Use
To use SVAR Svelte Menu, simply import the package and include the component in your Svelte file:
```svelte
import { Menu } from "wx-svelte-menu";
function onClick(item) {
const action = ev.detail.action;
message = action ? `clicked on ${action.id}` : "closed";
}const options = [
{ id: "edit-cut", text: "Cut", icon: "wxi wxi-content-cut" },
{ id: "edit-copy", text: "Copy", icon: "wxi wxi-content-copy" },
{
id: "edit-paste",
text: "Paste",
icon: "wxi wxi-content-paste",
},
];```
### How to Modify
Typically, you don't need to modify the code. However, if you wish to do so, follow these steps:
1. Run `yarn` to install dependencies. Note that this project is a monorepo using `yarn` workspaces, so npm will not work
2. Start the project in development mode with `yarn start`### Run Tests
To run the test:
1. Start the test examples with:
```sh
yarn start:tests
```
2. In a separate console, run the end-to-end tests with:
```sh
yarn test:cypress
```