[gnome-devel-docs] hig: Update guidance for menus
- From: Allan Day <allanday src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-devel-docs] hig: Update guidance for menus
- Date: Tue, 26 Mar 2019 12:11:19 +0000 (UTC)
commit 6a7803db69c2d576c991680bc32ff78e26fe477e
Author: Allan Day <allanpday gmail com>
Date: Tue Mar 26 11:59:16 2019 +0000
hig: Update guidance for menus
Application menus were retired in GNOME 3.32. This commit updates
our guidelines to provide more accurate information on how
menus should be designed.
hig/C/application-menus.page | 58 +--------------------------------
hig/C/figures/patterns/primary-menu.svg | 46 ++++++++++++--------------
hig/C/primary-menus.page | 48 +++++++++++++++++++++++----
hig/C/secondary-menus.page | 4 +--
4 files changed, 64 insertions(+), 92 deletions(-)
---
diff --git a/hig/C/application-menus.page b/hig/C/application-menus.page
index 9f286a3f..c6f26c86 100644
--- a/hig/C/application-menus.page
+++ b/hig/C/application-menus.page
@@ -16,62 +16,6 @@
<media type="image" mime="image/svg" src="figures/patterns/application-menu.svg"/>
-<p><em>Application menus are no longer recommended, and will not be displayed in GNOME 3's top bar from
GNOME 3.32. <link xref="primary-menus">Primary</link> and <link xref="secondary-menus">secondary menus</link>
should be used as alternatives.</em></p>
+<p><em>Application menus are no longer recommended, and their contents will not be included in GNOME 3's top
bar from GNOME 3.32. <link xref="primary-menus">Primary</link> and <link xref="secondary-menus">secondary
menus</link> should be used as alternatives.</em></p>
-<p>Application menus provide access to global, top level actions and options for your application. These
include standard items for accessing documentation and information about the application.</p>
-
-<section id="when-to-use">
-<title>When to use</title>
-
-<p>Application menus are a standard part of GNOME 3, and every application that runs under GNOME 3 should
have one.</p>
-
-</section>
-
-<section id="general-guidelines">
-<title>General guidelines</title>
-
-<list>
-<item><p>Follow the standard <link xref="menus">guidance for menus</link>.</p></item>
-<item><p>Only include menu items that relate to the application as a whole, such as application preferences.
Items that are specific to a particular window or view, or which act on content within an application window,
should not be included.</p></item>
-<item><p>If an item from the application menu is frequently used, consider moving it to a more accessible
location.</p></item>
-</list>
-
-</section>
-
-<section id="standard-menu-items">
-<title>Standard menu items</title>
-
-<p>Common application menu items include <gui>New Window</gui>, <gui>Preferences</gui>, <gui>Help</gui>,
<gui>About</gui> and <gui>Quit</gui>. <gui>Help</gui>, <gui>About</gui> and <gui>Quit</gui> should be
contained within their own group at the bottom of the menu.</p>
-
-<table>
-<tr>
-<td><p><gui>New Window</gui></p></td>
-<td><p>Opens a new window. Only <link xref="primary-windows#application-types">multiple instance
applications</link> should include this menu item. If the new window contains a specific type of content
item, or simultaneously performs an action, rename it to be less generic. For example: <gui>New
Connection</gui> or <gui>New Document</gui>.</p></td>
-</tr>
-<tr>
-<td><p><gui>Preferences</gui></p></td>
-<td><p>Opens the application's preferences dialog. Only show this menu item if your application has a
preferences dialog.</p></td>
-</tr>
-<tr>
-<td><p><gui>Help</gui></p></td>
-<td><p>Opens your application's user documentation in the <app>Help</app> application. Only show this menu
item if your application has user documentation.</p></td>
-</tr>
-<tr>
-<td><p><gui>About</gui></p></td>
-<td><p>Opens the application's about dialog. Every application menu should include this item.</p></td>
-</tr>
-<tr>
-<td><p><gui>Quit</gui></p></td>
-<td><p>Closes the application, including all application windows. Every application menu should include this
item.</p></td>
-</tr>
-</table>
-
-</section>
-
-<section id="api-reference">
-<title>API reference</title>
-<list>
-<item><p><link
href="https://developer.gnome.org/gtk3/stable/GtkApplication.html">GtkApplication</link></p></item>
-</list>
-</section>
</page>
diff --git a/hig/C/figures/patterns/primary-menu.svg b/hig/C/figures/patterns/primary-menu.svg
index 7de0207c..897b9c23 100644
--- a/hig/C/figures/patterns/primary-menu.svg
+++ b/hig/C/figures/patterns/primary-menu.svg
@@ -13,7 +13,7 @@
height="540"
id="svg6276"
version="1.1"
- inkscape:version="0.92.2 2405546, 2018-03-11"
+ inkscape:version="0.92.4 (unknown)"
sodipodi:docname="primary-menu.svg">
<defs
id="defs6278" />
@@ -25,14 +25,14 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
- inkscape:cx="504.68651"
- inkscape:cy="252.01575"
+ inkscape:cx="663.68651"
+ inkscape:cy="277.01575"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:showpageshadow="false"
inkscape:window-width="1920"
- inkscape:window-height="953"
+ inkscape:window-height="1073"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
@@ -417,7 +417,7 @@
style="font-size:14px;line-height:1.25">New</tspan></text>
<path
style="fill:#f2f2f2;fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1"
- d="M 550.5,624.8621 H 735 l 14,-12 14,12 h 7.5 c 0,0 6,2.676 6,6 v 285 c 0,3.324 -2.676,6 -6,6 h -220
c -3.324,0 -6,-2.676 -6,-6 v -285 c 0,-3.324 2.6768,-6.0707 6,-6 z"
+ d="M 550.5,624.8621 H 735 l 14,-12 14,12 h 7.5 c 0,0 6,2.676 6,6 v 297 c 0,3.324 -2.676,6 -6,6 h -220
c -3.324,0 -6,-2.676 -6,-6 v -297 c 0,-3.324 2.6768,-6.0707 6,-6 z"
id="path9277"
inkscape:connector-curvature="0"
sodipodi:nodetypes="scccssssssss" />
@@ -557,42 +557,36 @@
</g>
</g>
</g>
- <text
- id="text1743"
- y="816.36218"
- x="563"
-
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Cantarell;-inkscape-font-specification:Cantarell;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none"
- xml:space="preserve"><tspan
- id="tspan1741"
- style="font-size:14px;line-height:2.20000005"
- y="816.36218"
- x="563"
- sodipodi:role="line">Preferences</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Cantarell;-inkscape-font-specification:Cantarell;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none"
x="563"
- y="864.36218"
+ y="816.36218"
id="text1752"><tspan
sodipodi:role="line"
x="563"
- y="864.36218"
+ y="816.36218"
style="font-size:14px;line-height:2.20000005"
- id="tspan1750">Help</tspan><tspan
+ id="tspan1750">Preferences</tspan><tspan
sodipodi:role="line"
x="563"
- y="895.16217"
+ y="847.16217"
style="font-size:14px;line-height:2.20000005"
- id="tspan1754">About</tspan></text>
+ id="tspan901">Keyboard Shortcuts</tspan><tspan
+ sodipodi:role="line"
+ x="563"
+ y="877.96216"
+ style="font-size:14px;line-height:2.20000005"
+ id="tspan899">Help</tspan><tspan
+ sodipodi:role="line"
+ x="563"
+ y="908.76221"
+ style="font-size:14px;line-height:2.20000005"
+ id="tspan1754">About Application</tspan></text>
<path
style="fill:none;stroke:#dbdbdb;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 557,785.86218 H 763.00001"
id="path1756"
inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path1758"
- d="M 557,835.86218 H 763.00001"
-
style="fill:none;stroke:#dbdbdb;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
/>
</g>
</svg>
diff --git a/hig/C/primary-menus.page b/hig/C/primary-menus.page
index 5bb01417..1a848292 100644
--- a/hig/C/primary-menus.page
+++ b/hig/C/primary-menus.page
@@ -17,30 +17,64 @@
<media type="image" mime="image/svg" src="figures/patterns/primary-menu.svg"/>
-<p>Primary menus are a standard design pattern that is found in most applications. They are labelled with
the menu icon (named <code>menu-open</code>) and contain the top-level menu items for the application. This
can include standard items like <gui>Preferences</gui>, <gui>Help</gui> and <gui>About</gui>, as well as
other application-specific items.</p>
+<p>Primary menus are a standard design pattern that is found in most applications. They are labelled with
the menu icon (named <code>menu-open</code>) and contain the top-level menu items for the application. This
can include standard items like <gui>Preferences</gui>, <gui>Help</gui> and <gui>About Application</gui>, as
well as other application-specific items.</p>
-<p>Primary menus are typically located on the right side of the header bar. When used in combination with a
<link xref="sidebar-lists">sidebar list</link>, the primary menu should be placed above the sidebar list.</p>
<section id="when-to-use">
<title>When to use</title>
-<p>Most applications have primary menus, since they are the standard location for <gui>About</gui>, which
every application is expected to have.</p>
+<p>Most applications have primary menus, since they are the standard location for <gui>About
Application</gui>, which every application is expected to have.</p>
</section>
<section id="guidance">
<title>Guidance</title>
+<p>Primary menus are typically placed on the right side of the header bar. However, there are two variations
on this rule:</p>
+
+<list>
+<item><p>If the application incorporates in-window navigation, with a top-level location and sub-pages, the
primary menu should only be placed on the top level: sub-pages can include a <link
xref="secondary-menu">secondary menu</link>, if a menu is required.</p></item>
+<item><p>When used in combination with a <link xref="sidebar-lists">sidebar list</link>, the primary menu
should be placed above the sidebar list on the right. If a menu is required for items shown in the content
side of the window, a <link xref="secondary-menu">secondary menu</link> can be used.</p></item>
+</list>
+
+<p>Other guidelines:</p>
+
<list>
<item><p>Primary menus can contain items for both the current window or view, as well as the application as
a whole. This differentiates them from <link xref="secondary-menus">secondary menus</link>, which only
contain menu items that relate to a specific view or item.</p></item>
-<item><p>Applications which use in-window navigation should only show the primary menu on the top-level view
(typically the main view that is shown when the app is launched). Child views, such as those that show
individual items of content, should use <link xref="secondary-menus">secondary</link> rather than primary
menus.</p></item>
<item><p>Follow the <link xref="menus">standard guidelines for menus</link> when deciding on primary menu
content and arrangement.</p></item>
-<item><p>A primary menu is contained within a <link xref="popovers">popover</link>. As such, a header bar
menu can include a variety of controls, such as groups of buttons.</p></item>
-<item><p>Primary menus shouldn’t include menu items for close or quit: windows can already be closed using
the close button in the header bar, and it can be ambiguous as to what a close menu item refers to. Users
don't readily differentiate between quit and close, and it can therefore be misleading.</p></item>
+<item><p>A primary menu is contained within a <link xref="popovers">popover</link>. As such, a primary menu
can include a variety of controls, such as groups of buttons.</p></item>
</list>
</section>
+<section id="standard-menu-items">
+<title>Standard menu items</title>
+
+<p>The following are standard primary menu items, and should be placed in a group at the end of the menu:</p>
+
+<table>
+<tr>
+<td><p><gui>Preferences</gui></p></td>
+<td><p>Opens the application's preferences dialog, if it has one.</p></td>
+</tr>
+<tr>
+<td><p><gui>Keyboard Shortcuts</gui></p></td>
+<td><p>Opens the application's keyboard shortcuts window, if it has one.</p></td>
+</tr>
+<tr>
+<td><p><gui>Help</gui></p></td>
+<td><p>Opens the application's user documentation in the <app>Help</app> application.</p></td>
+</tr>
+<tr>
+<td><p><gui>About Application</gui></p></td>
+<td><p>Opens the application's about dialog. This item should include the application's name, such as
<gui>About Photos</gui> or <gui>About Calculator</gui>. Every primary menu should include this item.</p></td>
+</tr>
+</table>
+
+<p>Primary menus shouldn’t include menu items for close or quit: windows can already be closed using the
close button in the header bar, and it can be ambiguous as to what a close menu item refers to. Users don't
readily differentiate between quit and close, and it can therefore be misleading.</p>
+
+</section>
+
<section id="api-reference">
<title>API reference</title>
@@ -51,4 +85,4 @@
</section>
-</page>
\ No newline at end of file
+</page>
diff --git a/hig/C/secondary-menus.page b/hig/C/secondary-menus.page
index d809e212..2f105944 100644
--- a/hig/C/secondary-menus.page
+++ b/hig/C/secondary-menus.page
@@ -17,7 +17,7 @@
<media type="image" mime="image/svg" src="figures/patterns/secondary-menu.svg"/>
-<p>Secondary menus are located in the header bar and include menu items for the current view or content
item. This differentiates them from <link xref="primary-menus">primary menus</link>, which include menu items
that relate to an entire application (such as <gui>Preferences</gui> and <gui>About</gui>).</p>
+<p>Secondary menus are located in the header bar and include menu items for the current view or content
item. This differentiates them from <link xref="primary-menus">primary menus</link>, which include menu items
that relate to an entire application (such as <gui>Preferences</gui> and <gui>About "Name"</gui>).</p>
<section id="when-to-use">
<title>When to use</title>
@@ -50,4 +50,4 @@
</section>
-</page>
\ No newline at end of file
+</page>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]