Popover menu
What is a popover menu
This is a quick menu that open on click. For menus, we use the three-dot-icon.
This is exactly the same as the navigation menu. The only difference is the popovermenu class.
Basic layout
<div class="popovermenu">
<ul>
<li>
<a href="#" class="icon-details">
<span>Details</span>
</a>
</li>
<li>
<button class="icon-close">
<span>Remove</span>
</button>
</li>
<li>
<button>
<span class="icon-favorite"></span>
<span>Favorite</span>
</button>
</li>
<li>
<a>
<span class="icon-rename"></span>
<span>Edit</span>
</a>
</li>
<li>
<span class="menuitem">
<input id="check1" type="checkbox" class="checkbox" />
<label for="check1">Enable</label>
</span>
</li>
<li>
<span class="menuitem">
<input id="radio1" type="radio" class="radio" />
<label for="radio1">Select</label>
</span>
</li>
<li>
<span class="menuitem">
<span class="icon icon-user"></span>
<form>
<input id="input-folder" type="text" value="new email">
<input type="submit" value=" " class="primary icon-checkmark-white">
</form>
</span>
</li>
<li>
<span class="menuitem">
<span class="icon icon-folder"></span>
<form>
<input id="input-folder" type="text" value="New folder">
<input type="submit" value=" " class="icon-confirm">
</form>
</span>
</li>
</ul>
</div>
Technical details
- The only allowed menu items elements are a, button and span for the checkbox and radio only.
- You can mix between a and button on the same menu (in case of form or direct link) like the example above
- You need to put the entire menu just after the three dot icon
<div><span class="icon-more"></span><div class="popovermenu">...</div></div>
- You do not need JS, CSS only is ok for positioning. JS is still required to handle the hide/show.
- Only one ul is allowed.
- Only one level of menu is allowed.
- Every entry needs to have its own icon. This greatly improves the UX.
- The required right distance to the border (or padding, whatever you want to use) of the three-dot icon should be 14px (5 for menu margin and 6 for arrow position)
- The
span
element must have themenuitem
class. - The checkbox/radio must use the nextcloud custom
- The form element is optionnal if you’re using inputs.
- Supported inputs are all text based ones and buttons type ones
Alignment
If you want to align your menu, you can add the class to the main popovermenu div.
- Center:
menu-center
- Left:
menu-left
- Right is by default