Skip to content

Getting Started

Choose adapter

  • Vue 3: @affino/menu-vue
  • React 18: @affino/menu-react
  • Laravel runtime: @affino/menu-laravel via @affino/laravel-adapter

Install

bash
pnpm add @affino/menu-vue
bash
pnpm add @affino/menu-react
bash
pnpm add @affino/menu-laravel @affino/laravel-adapter

First dropdown

vue
<script setup lang="ts">
import { UiMenu, UiMenuTrigger, UiMenuContent, UiMenuItem } from "@affino/menu-vue"
</script>

<template>
  <UiMenu>
    <UiMenuTrigger asChild>
      <button type="button">Actions</button>
    </UiMenuTrigger>
    <UiMenuContent>
      <UiMenuItem id="rename">Rename</UiMenuItem>
      <UiMenuItem id="duplicate">Duplicate</UiMenuItem>
    </UiMenuContent>
  </UiMenu>
</template>
tsx
import { UiMenu, UiMenuTrigger, UiMenuContent, UiMenuItem } from "@affino/menu-react"

export function ActionsMenu() {
  return (
    <UiMenu>
      <UiMenuTrigger asChild>
        <button type="button">Actions</button>
      </UiMenuTrigger>
      <UiMenuContent>
        <UiMenuItem id="rename">Rename</UiMenuItem>
        <UiMenuItem id="duplicate">Duplicate</UiMenuItem>
      </UiMenuContent>
    </UiMenu>
  )
}
  • Use UiSubMenu for nested actions.
  • Use trigger="contextmenu" on trigger primitives for right-click menus.

Next steps

MIT Licensed