From e6acb6d5360329904b2b0e5b0e70ed8a9264fcb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Thu, 5 Oct 2017 11:16:21 +0200 Subject: [PATCH] Popovermenu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- developer_manual/design/index.rst | 1 + developer_manual/design/popovermenu.rst | 66 +++++++++++++++++++ developer_manual/images/popover-position.png | Bin 0 -> 3529 bytes developer_manual/images/popovermenu.png | Bin 0 -> 19330 bytes 4 files changed, 67 insertions(+) create mode 100644 developer_manual/design/popovermenu.rst create mode 100644 developer_manual/images/popover-position.png create mode 100644 developer_manual/images/popovermenu.png diff --git a/developer_manual/design/index.rst b/developer_manual/design/index.rst index 800af24fa..dc48991e7 100644 --- a/developer_manual/design/index.rst +++ b/developer_manual/design/index.rst @@ -6,3 +6,4 @@ Design Guidelines :maxdepth: 2 navigation + popovermenu diff --git a/developer_manual/design/popovermenu.rst b/developer_manual/design/popovermenu.rst new file mode 100644 index 000000000..da886e5a7 --- /dev/null +++ b/developer_manual/design/popovermenu.rst @@ -0,0 +1,66 @@ +.. sectionauthor:: John Molakvoæ +.. codeauthor:: John Molakvoæ + +=============== +Popover Menu +=============== + +What is a popover menu +======================= + +This is a quick menu that open on click. We're usually using the three dots icons on nextcloud. +This menu currently differs from the navigation menu on the app-navigation section on the left. We should definitely merge those two and make one single way to create a popover menu on nextcloud (see app-navigation-entry-menu class on css files) + +.. image:: ../images/popovermenu.png + +Basic layout +============= + +.. code-block:: html + +
+
+ +Technical details +================== + +* The only allowed menu items elements are **a** and **button**. +* 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 ``
...
`` +* 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) + +.. image:: ../images/popover-position.png + +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 diff --git a/developer_manual/images/popover-position.png b/developer_manual/images/popover-position.png new file mode 100644 index 0000000000000000000000000000000000000000..2002ccaea2e8f03a9e38e32bace431d8145cefa0 GIT binary patch literal 3529 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 z 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 literal 0 HcmV?d00001