From 013910044ad989faeaaf5a696abda29e040fb050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Thu, 5 Oct 2017 17:40:50 +0200 Subject: [PATCH] More pages and some pictures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- developer_manual/design/checkboxes.rst | 7 ++ developer_manual/design/content.rst | 7 ++ developer_manual/design/index.rst | 4 + developer_manual/design/navigation.rst | 90 ++++++++++++------ developer_manual/design/popovermenu.rst | 52 +++++----- developer_manual/design/progress.rst | 7 ++ developer_manual/design/settings.rst | 7 ++ .../images/navigation-counter.png | Bin 0 -> 1455 bytes developer_manual/images/navigation-menu.png | Bin 0 -> 7158 bytes developer_manual/images/navigation.png | Bin 0 -> 9393 bytes 10 files changed, 120 insertions(+), 54 deletions(-) create mode 100644 developer_manual/design/checkboxes.rst create mode 100644 developer_manual/design/content.rst create mode 100644 developer_manual/design/progress.rst create mode 100644 developer_manual/design/settings.rst create mode 100644 developer_manual/images/navigation-counter.png create mode 100644 developer_manual/images/navigation-menu.png create mode 100644 developer_manual/images/navigation.png diff --git a/developer_manual/design/checkboxes.rst b/developer_manual/design/checkboxes.rst new file mode 100644 index 000000000..50f6d91b7 --- /dev/null +++ b/developer_manual/design/checkboxes.rst @@ -0,0 +1,7 @@ +.. sectionauthor:: John Molakvoæ +.. codeauthor:: John Molakvoæ +.. _checkboxes: + +=============== +Checkboxes +=============== diff --git a/developer_manual/design/content.rst b/developer_manual/design/content.rst new file mode 100644 index 000000000..7b9cfadd0 --- /dev/null +++ b/developer_manual/design/content.rst @@ -0,0 +1,7 @@ +.. sectionauthor:: John Molakvoæ +.. codeauthor:: John Molakvoæ +.. _content: + +=============== +Main content +=============== diff --git a/developer_manual/design/index.rst b/developer_manual/design/index.rst index dc48991e7..37f0d7ec1 100644 --- a/developer_manual/design/index.rst +++ b/developer_manual/design/index.rst @@ -6,4 +6,8 @@ Design Guidelines :maxdepth: 2 navigation + settings + content popovermenu + progress + checkboxes diff --git a/developer_manual/design/navigation.rst b/developer_manual/design/navigation.rst index d632ba0c3..63de59cae 100644 --- a/developer_manual/design/navigation.rst +++ b/developer_manual/design/navigation.rst @@ -1,5 +1,6 @@ .. sectionauthor:: John Molakvoæ .. codeauthor:: John Molakvoæ +.. _navigation: =============== App Navigation @@ -19,6 +20,9 @@ It needs to be: Nextcloud provide a very organized way of building menus. We implemented various essential functions and provide easy way of using them. +.. figure:: ../images/navigation.png + :alt: Navigation screenshot + Basic layout ============= @@ -44,51 +48,58 @@ Each entry is allowed to have a counter and/or a button for user interraction. * The ``app-navigation-entry-utils`` snippet need to be placed right next to the main link of your entry. * Maximum **two** items are allowed into the utils section. You can have: - * Two buttons - * One button and one counter + * Two buttons + * One button and one counter * You **can't** have more than two buttons, if you need more, you need to add a menu. * The order of the button and the counter are **not** interchangeable. You need to put the counter before the menu. .. code-block:: html
-
    -
  • 1
  • -
  • - -
  • -
+
    +
  • 1
  • +
  • + +
  • +
+.. _navigation_menu: + Menu ^^^^^ -If you need to add a few interractions for your entry, you can but everything in a popover menu. +If you need to add a few interractions for your entry, you can put everything in a popover menu. The menu needs to be placed after the ``app-navigation-entry-utils``. +For the global rules and/or layout, you can check the dedicated :ref:`popover menu section `. + +.. figure:: ../images/navigation-menu.png + :alt: Navigation menu + .. code-block:: html
- +
Counter @@ -97,12 +108,33 @@ Counter If you need to add a counter to your menu entry, you can simply use this structure. Do not change the alignment of the text. If you're using +.. figure:: ../images/navigation-counter.png + :alt: Navigation entry with counter + .. code-block:: html
  • 1
  • +Drag and drop +============== +The class which should be applied to a first level element **li** that hosts or can host a second level is **drag-and-drop**. +This will cause the hovered entry to slide down giving a visual hint that it can accept the dragged element. +In case of jQuery UI's droppable feature, the **hoverClass** option should be set to the **drag-and-drop** class. +.. code-block:: html + Collapsible entry ================== diff --git a/developer_manual/design/popovermenu.rst b/developer_manual/design/popovermenu.rst index da886e5a7..bf1bd22e9 100644 --- a/developer_manual/design/popovermenu.rst +++ b/developer_manual/design/popovermenu.rst @@ -1,5 +1,6 @@ .. sectionauthor:: John Molakvoæ .. codeauthor:: John Molakvoæ +.. _popovermenu: =============== Popover Menu @@ -9,7 +10,8 @@ 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) + +This is exactly the same as the :ref:`navigation menu `. The only difference is the popovermenu class. .. image:: ../images/popovermenu.png @@ -18,30 +20,30 @@ Basic layout .. code-block:: html -
    -
    +
    +
    Technical details ================== diff --git a/developer_manual/design/progress.rst b/developer_manual/design/progress.rst new file mode 100644 index 000000000..1d72e6b02 --- /dev/null +++ b/developer_manual/design/progress.rst @@ -0,0 +1,7 @@ +.. sectionauthor:: John Molakvoæ +.. codeauthor:: John Molakvoæ +.. _progress: + +=============== +Progress bar +=============== diff --git a/developer_manual/design/settings.rst b/developer_manual/design/settings.rst new file mode 100644 index 000000000..6449f315e --- /dev/null +++ b/developer_manual/design/settings.rst @@ -0,0 +1,7 @@ +.. sectionauthor:: John Molakvoæ +.. codeauthor:: John Molakvoæ +.. _settings: + +=============== +Settings +=============== diff --git a/developer_manual/images/navigation-counter.png b/developer_manual/images/navigation-counter.png new file mode 100644 index 0000000000000000000000000000000000000000..cd9ffc86636b5b9ea1576b55da0c43a4eda46ad7 GIT binary patch literal 1455 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 literal 0 HcmV?d00001 diff --git a/developer_manual/images/navigation.png b/developer_manual/images/navigation.png new file mode 100644 index 0000000000000000000000000000000000000000..16704168fc3464fa4dcd206e2338ce648605fa9d GIT binary patch literal 9393 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 MBo!qJkcQ9x2VmLPSpWb4 literal 0 HcmV?d00001