Editing Legacy Maemo 5 Documentation/Desktop Widget UI Guidelines

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
{{legacy documentation}}
{{legacy documentation}}
-
The Desktop Widget Guidelines‐document is intended as an aid for developers to [[Documentation/Maemo 5 Developer Guide/Application Development/Writing Desktop Widgets|build Desktop Widgets]] according to the design philosophy, interaction model, and visual look‐and‐feel of Maemo 5.  
+
== Purpose of this document ==
 +
 
 +
The Desktop Widget Guidelines‐document is intended as an aid for developers to build Desktop Widgets according to the design philosophy, interaction model, and visual look‐and‐feel of Maemo 5.  
By following these guidelines, developers are assured to build Widgets that are consistent, and accessible for end‐users.
By following these guidelines, developers are assured to build Widgets that are consistent, and accessible for end‐users.
Line 9: Line 11:
== Introduction ==
== Introduction ==
-
Desktop Widgets can be defined as miniature applications – or applets – that reside on the Desktop for convenient, fast access to useful information or controls. Maemo 5 contains up to '''four''' Desktops, as illustrated in Figure 1, totaling in 3200×424 pixels of screen real‐estate for Desktop Widgets.
+
Desktop Widgets can be defined as miniature applications – or applets – that reside on the Desktop for convenient, fast access to useful information or controls. Maemo 5 contains up to '''four''' Desktops, as illustrated in Figure 1, totaling in 3200x424 pixels of screen real‐estate for Desktop Widgets.
-
[[Image:desktop-views.png|thumb|center|600px|alt=Screenshot of desktop views|Figure 1: Maemo 5 includes up to four Desktops for Widgets]]
+
[[Image:desktop-views.png|Desktop views|600px]]
 +
<br>'''Figure 1. Maemo 5 includes up to four Desktops for Widgets.'''
-
{{ambox|text=In Maemo terminology, in addition to Widgets, Maemo 5 also includes ''Application shortcuts'', ''Web bookmarks'', and ''Contacts''. Technically, however, these are considered Desktop Widgets as well, and the same guidelines apply. Thus, for the sake of readability, the term “Widget” used in this document encompasses '''all''' the aforementioned applets.}}
+
N.B. In Maemo terminology, in addition to Widgets, Maemo 5 also includes ''Application shortcuts'', ''Web bookmarks'', and ''Contacts''. Technically, however, these are considered Desktop Widgets as well, and the same guidelines apply. Thus, for the sake of readability, the term “Widget” used in this document encompasses '''all''' the aforementioned applets.
== Widget design ==
== Widget design ==
Line 23: Line 26:
* Widgets must provide information or controls '''quickly''' and in an '''obvious manner'''; every feature and command should be '''immediately understandable''', and '''accessible with a single tap'''.
* Widgets must provide information or controls '''quickly''' and in an '''obvious manner'''; every feature and command should be '''immediately understandable''', and '''accessible with a single tap'''.
* Widgets must provide only the '''most crucial features'''; they must be '''simple and efficient''', designed to accomplish only a few tasks – but accomplish those extremely well.
* Widgets must provide only the '''most crucial features'''; they must be '''simple and efficient''', designed to accomplish only a few tasks – but accomplish those extremely well.
-
* Widgets must be as '''compact in size''' as possible; even though Maemo 5 offers a generous amount of screen space, users must be able to place several widgets on each screen to minimize the need for excessive screen switching.
+
* Widgets must be as '''compact in size''' as possible; even though Maemo 5 offers a generous amount of screen space, users must be able to place several widgets on each screen to minimize the need for excessive screen switching.<br/> N.B. Due to the high pixel density of the physical screen, tappable elements must be at least 70x70 pixels in size for convenient finger use.
-
 
+
-
{{ambox|text=Due to the high pixel density of the physical screen, tappable elements must be at least 70×70 pixels in size for convenient finger use.}}
+
Due to the aforementioned design goals, not every application can be transformed into, or any data set presented with a legitimate Widget. Before starting development, consider whether the Widget provides any value for end‐users in comparison to existing applications or websites that can be one tap away via ''Application shortcuts'' or ''Web bookmarks''.
Due to the aforementioned design goals, not every application can be transformed into, or any data set presented with a legitimate Widget. Before starting development, consider whether the Widget provides any value for end‐users in comparison to existing applications or websites that can be one tap away via ''Application shortcuts'' or ''Web bookmarks''.
Line 34: Line 35:
{| class="wikitable"
{| class="wikitable"
-
|+ Table 1. Overview of stock Widgets included in Maemo 5.
 
! Widget name
! Widget name
! Description
! Description
Line 41: Line 41:
|Application shortcut
|Application shortcut
|Provides one‐touch access to an application
|Provides one‐touch access to an application
-
|96×96
+
|96x96
|-
|-
|Calendar widget
|Calendar widget
|Displays the current date and upcoming calendar events
|Displays the current date and upcoming calendar events
-
|352×252
+
|352x252
|-
|-
|Google widget
|Google widget
|Provides one-touch access to Google search
|Provides one-touch access to Google search
-
|176×146
+
|176x146
|-
|-
|Location widget
|Location widget
|Displays the current location of the user on a map
|Displays the current location of the user on a map
-
|316×368
+
|316x368
|-
|-
|Media Player widget
|Media Player widget
|Provides Media Player status and controls.
|Provides Media Player status and controls.
-
|338×148
+
|338x148
|-
|-
|Ovi widget
|Ovi widget
|Provides access to Ovi services
|Provides access to Ovi services
-
|490×88
+
|490x88
|-
|-
|RSS widget
|RSS widget
|Displays the latest RSS feeds
|Displays the latest RSS feeds
-
|316×368
+
|316x368
|-
|-
|Tutorial widget
|Tutorial widget
|Presents a tutorial on how to use the device
|Presents a tutorial on how to use the device
-
|800×72
+
|800x72
|-
|-
|Web bookmark
|Web bookmark
|Provides one‐touch access to a web bookmark
|Provides one‐touch access to a web bookmark
-
|176×146
+
|176x146
|}
|}
 +
 +
<br/>'''Table 1. Overview of stock Widgets included in Maemo 5.'''
=== Configuration options ===
=== Configuration options ===
Line 80: Line 82:
Widgets that can be configured include a configuration‐button accessible in ''Edit mode''. Tapping on the button reveals a dialog containing all the available configuration options. Figure 2 presents a fictional example of a configuration dialog.
Widgets that can be configured include a configuration‐button accessible in ''Edit mode''. Tapping on the button reveals a dialog containing all the available configuration options. Figure 2 presents a fictional example of a configuration dialog.
-
[[Image:configuration_dialog.png|thumb|center|300px|alt=Screenshot of configuration dialog|Figure 2: Example configuration dialog for a Widget]]
+
[[Image:configuration_dialog.png|Configuration dialog example|300px]]
 +
<br/>'''Figure 2. Example configuration dialog for a Widget.'''
== Interaction ==
== Interaction ==
Line 92: Line 95:
All tappable elements on Widgets must contain a graphical highlight (pressed‐down) state for providing visual feedback on the action. If the entire Widget is a tappable element, such as with ''Web bookmarks'', the highlight state also encompasses the whole Widget. Examples of highlight states are shown in Figure 3.
All tappable elements on Widgets must contain a graphical highlight (pressed‐down) state for providing visual feedback on the action. If the entire Widget is a tappable element, such as with ''Web bookmarks'', the highlight state also encompasses the whole Widget. Examples of highlight states are shown in Figure 3.
-
[[Image:highlight_states.png|thumb|center|300px|alt=Screenshot showing example widget states|Figure 3: Examples of highlight states of various widgets]]
+
[[Image:highlight_states.png|Highlight states|300px]]
 +
<br/>'''Figure 3. Examples of highlight states of various Widgets.'''
While text entries and areas (also known as text input fields) are supported UI widgets, they should be used with care; if several text entries are needed, they can also be provided either via a custom dialog, or utilizing the Widget’s configuration dialog.
While text entries and areas (also known as text input fields) are supported UI widgets, they should be used with care; if several text entries are needed, they can also be provided either via a custom dialog, or utilizing the Widget’s configuration dialog.
Line 102: Line 106:
Widgets must be designed to be as compact in their size as possible, avoiding any excessive graphical elements that do not provide any meaningful information or controls. As a rule of thumb, the footprint of a Widget '''must never exceed half of the Desktop space''' allocated for Widgets, including a 24 pixel‐padding around the Widget (132,352 pixels total). The largest stock Widgets, ''Location'' and ''RSS'', are close to the maximum footprint of Widgets, as seen in Figure 4; another, ''Tutorial'', spans across the entire Desktop, but therefore remains limited in its height.
Widgets must be designed to be as compact in their size as possible, avoiding any excessive graphical elements that do not provide any meaningful information or controls. As a rule of thumb, the footprint of a Widget '''must never exceed half of the Desktop space''' allocated for Widgets, including a 24 pixel‐padding around the Widget (132,352 pixels total). The largest stock Widgets, ''Location'' and ''RSS'', are close to the maximum footprint of Widgets, as seen in Figure 4; another, ''Tutorial'', spans across the entire Desktop, but therefore remains limited in its height.
-
[[Image:location_widget.png|thumb|center|300px|alt=Screenshot of lactin widget|Figure 4: The Location Widget is close to the maximum size of Widgets]]
+
[[Image:location_widget.png|Location widget|300px]]
 +
<br/>'''Figure 4. The Location Widget is close to the maximum size of Widgets.'''
=== Margins and positioning ===
=== Margins and positioning ===
Line 109: Line 114:
{| class="wikitable"
{| class="wikitable"
-
|+ Table 2. Standard margins for Widgets.
 
! Logical name
! Logical name
-
! Size (pixels)
+
! Size (in px)
! Additional information
! Additional information
|-
|-
|<font color="red"><code>HILDON_MARGIN_HALF</code></font>
|<font color="red"><code>HILDON_MARGIN_HALF</code></font>
-
|<font color="red">4</font>
+
|<font color="red">4 px</font>
|<font color="red">Marked as red bar in layout images</font>
|<font color="red">Marked as red bar in layout images</font>
|-
|-
|<font color="blue"><code>HILDON_MARGIN_DEFAULT</code></font>
|<font color="blue"><code>HILDON_MARGIN_DEFAULT</code></font>
-
|<font color="blue">8</font>
+
|<font color="blue">8 pixels</font>
|<font color="blue">Marked as blue bar in layout images</font>
|<font color="blue">Marked as blue bar in layout images</font>
|-
|-
|<font color="cyan"><code>HILDON_MARGIN_DOUBLE</code></font>
|<font color="cyan"><code>HILDON_MARGIN_DOUBLE</code></font>
-
|<font color="cyan">16</font>
+
|<font color="cyan">16 pixels</font>
|<font color="cyan">Marked as cyan bar in layout images</font>
|<font color="cyan">Marked as cyan bar in layout images</font>
|}
|}
 +
 +
<br/>'''Table 2. Standard margins for Widgets.'''
Stock widgets share common margins and positioning rules. Elements within Widgets are separated from each other by <code>HILDON_MARGIN_HALF</code>, and Widgets are surrounded by <code>HILDON_MARGIN_DEFAULT</code>; the surrounding area includes both the outer border of the Widget, as well as a drop shadow. Some examples are presented in Figure 5, and Figure 6.
Stock widgets share common margins and positioning rules. Elements within Widgets are separated from each other by <code>HILDON_MARGIN_HALF</code>, and Widgets are surrounded by <code>HILDON_MARGIN_DEFAULT</code>; the surrounding area includes both the outer border of the Widget, as well as a drop shadow. Some examples are presented in Figure 5, and Figure 6.
-
[[Image:applet-wireframes+specs.png|thumb|center|800px|alt=Illustration of widget margins|Figure 5. Examples of margin use in stock Widgets]]
+
[[Image:applet-wireframes+specs.png|Widget margins|800px]]
 +
<br/>'''Figure 5. Examples of margin use in stock Widgets.'''
-
[[Image:widgets+wireframes.png|thumb|center|800px|alt=Illustration of widget construction|Figure 6. Examples of visual Widget construction]]
+
[[Image:widgets+wireframes.png|Widget wireframes|800px]]
 +
<br/>'''Figure 6. Examples of visual Widget construction.'''
The positioning of graphical elements such as text labels, buttons, icons and so on must be in line with the rest of the Maemo 5 guidelines.
The positioning of graphical elements such as text labels, buttons, icons and so on must be in line with the rest of the Maemo 5 guidelines.
Line 147: Line 155:
Figure 7 presents an example of the use of typography in Widgets.
Figure 7 presents an example of the use of typography in Widgets.
-
[[Image:widget_typography.png|thumb|center|300px|alt=Screenshot of widget typography|Figure 7: An example of the use of typography in Widgets]]
+
[[Image:widget_typography.png|Widget typography|300px]]
 +
<br>'''Figure 7. An example of the use of typography in Widgets.'''
== Development ==
== Development ==
=== Packaging ===
=== Packaging ===
-
 
-
{{main|Packaging}}
 
Widgets are installed on the device using a normal Debian application package. As the package information of your desktop widget can be seen in Application manager (the application used to install Widgets), it is recommended to fill in the following information in the package:
Widgets are installed on the device using a normal Debian application package. As the package information of your desktop widget can be seen in Application manager (the application used to install Widgets), it is recommended to fill in the following information in the package:
Line 159: Line 166:
* Application name – a descriptive name shown in the application package list view in Application manager  
* Application name – a descriptive name shown in the application package list view in Application manager  
* Application short description – the first line (or 60 first characters) of the application description  
* Application short description – the first line (or 60 first characters) of the application description  
-
* Application icon – a base64 encoded PNG image (sized 48×48 pixels). This icon is only shown in Application manager
+
* Application icon – a base64encoded PNG image (sized 48x48 pixels). This icon is only shown in Application manager
Unless the installation script of the Widget package contains commands to place the Widget on the Desktop, users have to manually do so via Edit mode. Since this is an unnecessary step for the user, it is advised that the installation script handles the placement automatically. It is also possible to direct the Widget onto a specific Desktop view; however, the exact placement of the Widget cannot be specified in the script.
Unless the installation script of the Widget package contains commands to place the Widget on the Desktop, users have to manually do so via Edit mode. Since this is an unnecessary step for the user, it is advised that the installation script handles the placement automatically. It is also possible to direct the Widget onto a specific Desktop view; however, the exact placement of the Widget cannot be specified in the script.

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)

Templates used on this page: