Chart Types

The following chart types are available in vizFrame:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Contextual Filter

The contextual filter allows you to show a prefiltered view of a list, such as a master list.

Warning
Note that this filter prevents the regular filter (which the user triggers from the footer bar) from displaying the filter criteria that are currently selected.

Usage

Use the contextual filter if:

  • You want to show the user a meaningful extract of an otherwise highly complex list.
  • You need to improve the performance if your app handles very large object lists.

Do not use the contextual filter if:

  • You just want to provide a way to filter a list. In this case, use the regular filter instead.

Responsiveness

The contextual filter (sap.m.toolbar) spans the whole width of the list or table it is attached to, while its height remains unchanged. Text inside the bar does not wrap if there is insufficient space, but becomes truncated.

Contextual filter – Responsiveness
Contextual filter – Responsiveness
  1. Contextual filter with truncated text in a narrow container, such as on a smartphone.
  2. Responsive behavior in wider spaces.

Layout

The contextual filter is shown as a bar directly above the master list. It comprises two parts:

  1. The filter value on the left (for example, a customer name).
  2. The icon for the filter criterion on the right (here, the object type “customer”). The icon helps the user to put the filter value into context.
Contextual filter – Layout
Contextual filter – Layout

Behavior and Interaction

The following example shows a prefiltered master list and explains how to change the filter criterion.

Change Filter

The user opens the app and sees a prefiltered list of objects. The bar on top of the master list indicates that the list is filtered and by which criteria.

When the user clicks or taps the bar, a screen (on phones) or popup (on desktops/tablets) appears on which the user can select another criterion.

Select Filter Criterion

In this use case, the user should not be able to disable the filter because there is no way to reset it.

Other master list functions (such as Search or Refresh) are still available and remain unaffected by the contextual filter.

Once a criterion has been selected, the user is taken back to the master list (on phones) or the popup closes (on desktops/tablets). The list is now filtered by the newly selected criterion.

Guidelines

Do not use the contextual filter in place of the regular filter in the footer bar. The regular filter is much more versatile and can also be deactivated by the user.

Also note that the contextual and the regular filter both use the same bar to visualize the filter criteria. If the contextual filter is being used, the regular filter can no longer be visualized. Although both filters can technically be used in parallel, we highly recommend that you avoid having both in one list.

Use an icon that is unique and visually represents the current filter criterion.

Do

Do not use any of the generic filter icons because they may be confused with the user-triggered filters.

Don't

Properties

The contextual filter is not a separate control. To build a contextual filter, you need to use the sap.m.OverflowToolbar control. The filtering itself must be carried out by the app.

Exceptions

There is one exception when the contextual filter can actually be cancelled by the user. In this special case, the contextual filter is used to prefilter the listed items in a select dialog.

This use of the contextual filter conveniently offers users a narrowed down list based on their previous selection.

(1) Initial situation: The user is about to select an account and a contact.

(2) The user selects “Best Electronics” and then clicks or taps the value help icon in the Contact field.

(3) The value help dialog appears showing a list of contacts. These are prefiltered (using the contextual filter) to show only contacts from “Best Electronics” (the company the user selected previously).

 

Note that this time the icon in the filter’s toolbar does not show an account icon, but a Remove icon  instead. This allows the user to cancel the filter if he or she wants to add a contact that is not associated with the account selected previously.

When the user clicks or taps the Remove icon  , the filter is removed and the entire contact list is shown.

Once the user has selected a contact, the dialog closes and the name is added to the relevant field on the main page.

Opening the value help again resets the dialog to its initial state with the filter set to “Best Electronics”.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation

Contextual Filter

The contextual filter allows you to show a prefiltered view of a list, such as a master list.

Warning
Note that this filter prevents the regular filter (which the user triggers from the footer bar) from displaying the filter criteria that are currently selected.

Usage

Use the contextual filter if:

  • You want to show the user a meaningful extract of an otherwise highly complex list.
  • You need to improve the performance if your app handles very large object lists.

Do not use the contextual filter if:

  • You just want to provide a way to filter a list. In this case, use the regular filter instead.

Responsiveness

The contextual filter (sap.m.toolbar) spans the whole width of the list or table it is attached to, while its height remains unchanged. Text inside the bar does not wrap if there is insufficient space, but becomes truncated.

Contextual filter – Responsiveness
Contextual filter – Responsiveness
  1. Contextual filter with truncated text in a narrow container, such as on a smartphone.
  2. Responsive behavior in wider spaces.

Layout

The contextual filter is shown as a bar directly above the master list. It comprises two parts:

  1. The filter value on the left (for example, a customer name).
  2. The icon for the filter criterion on the right (here, the object type “customer”). The icon helps the user to put the filter value into context.
Contextual filter – Layout
Contextual filter – Layout

Behavior and Interaction

The following example shows a prefiltered master list and explains how to change the filter criterion.

Change Filter

The user opens the app and sees a prefiltered list of objects. The bar on top of the master list indicates that the list is filtered and by which criteria.

When the user clicks or taps the bar, a screen (on phones) or popup (on desktops/tablets) appears on which the user can select another criterion.

Contextual filter – Change filter setting
Contextual filter – Change filter setting

Select Filter Criterion

In this use case, the user should not be able to disable the filter because there is no way to reset it.

Other master list functions (such as Search or Refresh) are still available and remain unaffected by the contextual filter.

Once a criterion has been selected, the user is taken back to the master list (on phones) or the popup closes (on desktops/tablets). The list is now filtered by the newly selected criterion.

Contextual filter – Select filter attribute
Contextual filter – Select filter attribute

Guidelines

Do not use the contextual filter in place of the regular filter in the footer bar. The regular filter is much more versatile and can also be deactivated by the user.

Also note that the contextual and the regular filter both use the same bar to visualize the filter criteria. If the contextual filter is being used, the regular filter can no longer be visualized. Although both filters can technically be used in parallel, we highly recommend that you avoid having both in one list.

Use an icon that is unique and visually represents the current filter criterion.

Do

Do not use any of the generic filter icons because they may be confused with the user-triggered filters.

Don't

Properties

The contextual filter is not a separate control. To build a contextual filter, you need to use the sap.m.OverflowToolbar control. The filtering itself must be carried out by the app.

Exceptions

There is one exception when the contextual filter can actually be cancelled by the user. In this special case, the contextual filter is used to prefilter the listed items in a select dialog.

This use of the contextual filter conveniently offers users a narrowed down list based on their previous selection.

(1) Initial situation: The user is about to select an account and a contact.

(2) The user selects “Best Electronics” and then clicks or taps the value help icon in the Contact field.

(3) The value help dialog appears showing a list of contacts. These are prefiltered (using the contextual filter) to show only contacts from “Best Electronics” (the company the user selected previously).

 

Note that this time the icon in the filter’s toolbar does not show an account icon, but a Remove icon   instead. This allows the user to cancel the filter if he or she wants to add a contact that is not associated with the account selected previously.

When the user clicks or taps the Remove icon  , the filter is removed and the entire contact list is shown.

Once the user has selected a contact, the dialog closes and the name is added to the relevant field on the main page.

Opening the value help again resets the dialog to its initial state with the filter set to “Best Electronics”.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation

Bubble Chart and Time Bubble Chart

This article explains some differences between the bubble chart and the time bubble chart.

Even though times and dates can be used with the standard bubble chart, the time bubble chart must be used when representing time on the horizontal axis. This is because units such as hours, days and months may be mistakenly displayed twice using the standard bubble chart.

Horizontal Axis on Bubble Chart

The chart component calculates the ticks automatically trying to avoid decimal points.

You can customize the format of the values that appear on the axis, but cannot use date format.

Horizontal Axis on Time Bubble Chart

The property fixedTick defines how the ticks are displayed on the horizontal time axis.

  • fixedTick = No The date and time are displayed automatically with the most appropriate date and time format.
  • fixedTick = Yes You can customize the ticks to be displayed in the horizontal axis by giving a value and a label.

Combo Box

The combo box control allows users to select an item from a predefined list.

The control provides an editable input field for filtering the list, and a dropdown menu with a list of the available options.

Usage

Use the combo box if:

  • Users need to exclusively select one item from a long list of items (minimum 13, maximum 200 entries).
  • The values of the option list are secondary information and do not need to be displayed right away.

Do not use the combo box if:

  • Users need to select from a list of two options, where one of the options can be implied as on and off or yes and no. Consider using a switch control instead.
  • Users need to pick one item from a small set of options, such as up to 12 entries. Consider using the select control instead.
  • Users need to pick one item from a large set of options, such as more than 200 entries. Consider using the input field control with value help instead.
  • You need to display more than one attribute. Consider using the input field with select dialog or value help dialog.
  • Searching on multiple attributes is required. Consider using the input field with select dialog or value help dialog.
  • Your use cases require that all available options should be displayed right away without any user interaction. Consider using radio buttons or a radio button group.

Responsiveness

Size S

Size S
Size S

Size M

Size M
Size M

Size L

Size L
Size L

Components

Input Field

The input field (1) can display a placeholder (2), or the selected value. Users can type any character to filter the option list.

Dropdown Arrow

The dropdown menu’s arrow (3) collapses and expands the option list.

Option List

The option list (4) contains a list of values (5) that users can choose from.

Two-Column Layout

Use the combo box with a two-column layout if you need to display additional information to your options, such as currencies for countries or abbreviations for systems.

Note: You can only filter for entries in the first column of the option list. Filtering  for the second column is not possible.

Combo box with two-column layout
Combo box with two-column layout

Behavior and Interaction

Select a Value

There are three ways to select an item from the list:

  1. Select the item directly from the dropdown list.
  2. Type the item into the input field.
  3. Use the up and down arrows to navigate the list.

Clicking the input field places the cursor in the field (1). Clicking the arrow opens the option list (2). Typing into the input field starts filtering the list accordingly; the first value is highlighted and auto-complete suggestions appear in the input field (3). Up/down moves the highlight in the list and populates the value in the field (4). Selecting a value closes the option list (5).

Auto-Complete

When the first few letters are typed in the input field, the control performs auto-complete to help users to easily select one item from the option list.

Choose from Option List

The option list displays all available items the user can choose from. The selection is always highlighted. Selecting another option from the list moves the highlight to the newly selected option.

Clicking the arrow opens the option list below the field. An exception is made when there is not enough space to display the dropdown list. In this case, the list is displayed over the input field.

Selecting a value
Selecting a value

Auto-Resize

The width of the option list adapts to its content. The minimum width is the input field plus the dropdown arrow. The maximum width is the part of the screen furthest to the right. If the option list content requires even more width, entries become truncated.

Option list – Minimum width
Option list – Minimum width
Option list adapts to long entries
Option list adapts to long entries

Mobile Handling

The user can enter text into the input field (supported by auto-completion). When the user clicks or taps the dropdown arrow of the combo box (1), the option list opens in full width (2). Now the user can modify the selected entry by tapping the input field of the combo box. The keyboard is then displayed, and the user can begin to enter a new term to filter the option list, also supported by auto-completion (3). The option list closes when the user clicks or taps the Close button at the bottom of the list (4) or selects an item in the list (5).

Information
For information on how to manage leading and treading whitespace (blanks) when copying and pasting text into input controls, please see removing leading and trailing whitespace.

Styles

A combo box has different styles for its different states. Here are some examples:

Unselected
Unselected
Unselected (predefined placeholder)
Unselected (predefined placeholder)
Unselected (on hover)
Unselected (on hover)
Arrow (on hover)
Arrow (on hover)
Focus
Focus
Warning
Warning
Error
Error
Expanded
Expanded
Auto-complete
Auto-complete

Guidelines

Label

The combo box control can be displayed with or without a label. If the field is attached to another field, you do not need to define a second label. For more information, see the article on how to use labels in SAP Fiori.

Placeholder

Do not use the placeholder attribute as an alternative to a label. This is important because the placeholder text is overwritten as soon as the form is filled out. Labels are necessary to indicate the meaning of the form fields when the placeholders are no longer visible. Show a placeholder only if the user needs a hint on data entry. Do not repeat the content of the label. A hint could be a sample value or a brief description of the expected format. Read more about how to use placeholders.

 

Option List

The option list contains only text values. Keep the text values short as the list is represented using only single lines. Values that are too long might be truncated.

If you need to express that none of the selection options are selected, show a blank input field. Define a default selection whenever possible.

The combo box list cannot display columns. If you want to show two values within the option list, show the leading information first, followed by the secondary information in parentheses, such as “Walldorf (Germany)”. Typing into the input field returns all items whose names start with the search text.

Sorting

We recommend sorting options alphabetically to help users find the right option quickly. For more sorting rules, check out the guidelines for the select control.

Width

You can adjust the width of the option list to some extent.

The combo box control is usually used in forms, where the width is determined by the form element or container in which the combo box control is embedded. Therefore, we do not recommend defining a fixed width, but rather working with proper layout containers that have a defined width, such as the following properties: “form”, “simpleform”, “responsivegridlayout”, and “layoutdata” .

If you need to restrict the width to a defined value, set the width accordingly.

Keep in mind that there is no horizontal scrolling in the option list. Entries in the list that are too long become truncated and users may not be able to read them.

If localized text is not an issue, consider using a smaller width.

Properties

Selection

When you select a value, there are two events:

  • Change: Occurs when the text in the input field is changed and the focus leaves the input field or the user presses the Enter key.
  • Selection change: Occurs when the user types something that matches an item in the list; also when the user clicks a list box item, or when navigating via keyboard.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Combo Box

The combo box control allows users to select an item from a predefined list.

The control provides an editable input field for filtering the list, and a dropdown menu with a list of the available options.

Usage

Use the combo box if:

  • Users need to exclusively select one item from a long list of items (minimum 13, maximum 200 entries).
  • The values of the option list are secondary information and do not need to be displayed right away.

Do not use the combo box if:

  • Users need to select from a list of two options, where one of the options can be implied as on and off or yes and no. Consider using a switch control instead.
  • Users need to pick one item from a small set of options, such as up to 12 entries. Consider using the select control instead.
  • Users need to pick one item from a large set of options, such as more than 200 entries. Consider using the input field control with value help instead.
  • You need to display more than one attribute. Consider using the input field with select dialog or value help dialog.
  • Searching on multiple attributes is required. Consider using the input field with select dialog or value help dialog.
  • Your use cases require that all available options should be displayed right away without any user interaction. Consider using radio buttons or a radio button group.

Responsiveness

Size S

Size S
Size S

Size M

Size M
Size M

Size L

Size L
Size L

Components

Input Field

The input field (1) can display a placeholder (2), or the selected value. Users can type any character to filter the option list.

Dropdown Arrow

The dropdown menu’s arrow (3) collapses and expands the option list.

Option List

The option list (4) contains a list of values (5) that users can choose from.

Two-Column Layout

Use the combo box with a two-column layout if you need to display additional information to your options, such as currencies for countries or abbreviations for systems.

Note: You can only filter for entries in the first column of the option list. Filtering  for the second column is not possible.

Combo box with two-column layout
Combo box with two-column layout

Behavior and Interaction

Select a Value

There are three ways to select an item from the list:

  1. Select the item directly from the dropdown list.
  2. Type the item into the input field.
  3. Use the up and down arrows to navigate the list.

Clicking the input field places the cursor in the field (1). Clicking the arrow opens the option list (2). Typing into the input field starts filtering the list accordingly; the first value is highlighted and auto-complete suggestions appear in the input field (3). Up/down moves the highlight in the list and populates the value in the field (4). Selecting a value closes the option list (5).

Auto-Complete

When the first few letters are typed in the input field, the control performs auto-complete to help users to easily select one item from the option list.

Choose from Option List

The option list displays all available items the user can choose from. The selection is always highlighted. Selecting another option from the list moves the highlight to the newly selected option.

Clicking the arrow opens the option list below the field. An exception is made when there is not enough space to display the dropdown list. In this case, the list is displayed over the input field.

Selecting a value
Selecting a value

Auto-Resize

The width of the option list adapts to its content. The minimum width is the input field plus the dropdown arrow. The maximum width is the part of the screen furthest to the right. If the option list content requires even more width, entries become truncated.

Option list – Minimum width
Option list – Minimum width
Option list adapts to long entries
Option list adapts to long entries

Mobile Handling

The user can enter text into the input field (supported by auto-completion). When the user clicks or taps the dropdown arrow of the combo box (1), the option list opens in full width (2). Now the user can modify the selected entry by tapping the input field of the combo box. The keyboard is then displayed, and the user can begin to enter a new term to filter the option list, also supported by auto-completion (3). The option list closes when the user clicks or taps the Close button at the bottom of the list (4) or selects an item in the list (5).

Information
For information on how to manage leading and treading whitespace (blanks) when copying and pasting text into input controls, please see removing leading and trailing whitespace.

Styles

A combo box has different styles for its different states. Here are some examples:

Unselected
Unselected
Unselected (predefined placeholder)
Unselected (predefined placeholder)
Unselected (on hover)
Unselected (on hover)
Arrow (on hover)
Arrow (on hover)
Focus
Focus
Warning
Warning
Error
Error
Expanded
Expanded
Auto-complete
Auto-complete

Guidelines

Label

The combo box control can be displayed with or without a label. If the field is attached to another field, you do not need to define a second label. For more information, see the article on how to use labels in SAP Fiori.

Placeholder

Do not use the placeholder attribute as an alternative to a label. This is important because the placeholder text is overwritten as soon as the form is filled out. Labels are necessary to indicate the meaning of the form fields when the placeholders are no longer visible. Show a placeholder only if the user needs a hint on data entry. Do not repeat the content of the label. A hint could be a sample value or a brief description of the expected format. Read more about how to use placeholders.

 

Option List

The option list contains text values only. Keep the text values short because the list is represented using only single lines. Values that are too long might be truncated.

If you need to express that none of the selection options are selected, show a blank input field. Define a default selection whenever possible.

Sorting

We recommend sorting options alphabetically to help users find the right option quickly. For more sorting rules, check out the guidelines for the select control.

Width

You can adjust the width of the option list to some extent.

The combo box control is usually used in forms, where the width is determined by the form element or container in which the combo box control is embedded. Therefore, we do not recommend defining a fixed width, but rather working with proper layout containers that have a defined width, such as the following properties: “form”, “simpleform”, “responsivegridlayout”, and “layoutdata” .

If you need to restrict the width to a defined value, set the width accordingly.

Keep in mind that there is no horizontal scrolling in the option list. Entries in the list that are too long become truncated and users may not be able to read them.

If localized text is not an issue, consider using a smaller width.

Properties

Selection

When you select a value, there are two events:

  • Change: Occurs when the text in the input field is changed and the focus leaves the input field or the user presses the Enter key.
  • Selection change: Occurs when the user types something that matches an item in the list; also when the user clicks a list box item, or when navigating via keyboard.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Combo Box

The combo box control allows users to select an item from a predefined list.

The control provides an editable input field for filtering the list, and a dropdown menu with a list of the available options.

Usage

Use the combo box if:

  • Users need to exclusively select one item from a long list of items (minimum 13, maximum 200 entries).
  • The values of the option list are secondary information and do not need to be displayed right away.

Do not use the combo box if:

  • Users need to select from a list of two options, where one of the options can be implied as on and off or yes and no. Consider using a switch control instead.
  • Users need to pick one item from a small set of options, such as up to 12 entries. Consider using the select control instead.
  • Users need to pick one item from a large set of options, such as more than 200 entries. Consider using the input field control with value help instead.
  • You need to display more than one attribute. Consider using the input field with select dialog or value help dialog.
  • Searching on multiple attributes is required. Consider using the input field with select dialog or value help dialog.
  • Your use cases require that all available options should be displayed right away without any user interaction. Consider using radio buttons or a radio button group.

Responsiveness

Size S

Size S
Size S

Size M

Size M
Size M

Size L

Size L
Size L

Components

Input Field

The input field (1) can display a placeholder (2), or the selected value. Users can type any character to filter the option list.

Dropdown Arrow

The dropdown menu’s arrow (3) collapses and expands the option list.

Option List

The option list (4) contains a list of values (5) that users can choose from.

Two-Column Layout

Use the combo box with a two-column layout if you need to display additional information to your options, such as currencies for countries or abbreviations for systems.

Note: You can only filter for entries in the first column of the option list. Filtering  for the second column is not possible.

Combo box with two-column layout
Combo box with two-column layout

Behavior and Interaction

Select a Value

There are three ways to select an item from the list:

  1. Select the item directly from the dropdown list.
  2. Type the item into the input field.
  3. Use the up and down arrows to navigate the list.

Clicking the input field places the cursor in the field (1). Clicking the arrow opens the option list (2). Typing into the input field starts filtering the list accordingly; the first value is highlighted and auto-complete suggestions appear in the input field (3). Up/down moves the highlight in the list and populates the value in the field (4). Selecting a value closes the option list (5).

Auto-Complete

When the first few letters are typed in the input field, the control performs auto-complete to help users to easily select one item from the option list.

Choose from Option List

The option list displays all available items the user can choose from. The selection is always highlighted. Selecting another option from the list moves the highlight to the newly selected option.

Clicking the arrow opens the option list below the field. An exception is made when there is not enough space to display the dropdown list. In this case, the list is displayed over the input field.

Selecting a value
Selecting a value

Auto-Resize

The width of the option list adapts to its content. The minimum width is the input field plus the dropdown arrow. The maximum width is the part of the screen furthest to the right. If the option list content requires even more width, entries become truncated.

Option list – Minimum width
Option list – Minimum width
Option list adapts to long entries
Option list adapts to long entries

Mobile Handling

The user can enter text into the input field (supported by auto-completion). When the user clicks or taps the dropdown arrow of the combo box (1), the option list opens in full width (2). Now the user can modify the selected entry by tapping the input field of the combo box. The keyboard is then displayed, and the user can begin to enter a new term to filter the option list, also supported by auto-completion (3). The option list closes when the user clicks or taps the Close button at the bottom of the list (4) or selects an item in the list (5).

Information
For information on how to manage leading and treading whitespace (blanks) when copying and pasting text into input controls, please see removing leading and trailing whitespace.

Styles

A combo box has different styles for its different states. Here are some examples:

Unselected
Unselected
Unselected (predefined placeholder)
Unselected (predefined placeholder)
Unselected (on hover)
Unselected (on hover)
Arrow (on hover)
Arrow (on hover)
Focus
Focus
Warning
Warning
Error
Error
Expanded
Expanded
Auto-complete
Auto-complete

Guidelines

Label

The combo box control can be displayed with or without a label. If the field is attached to another field, you do not need to define a second label. For more information, see the article on how to use labels in SAP Fiori.

Placeholder

Do not use the placeholder attribute as an alternative to a label. This is important because the placeholder text is overwritten as soon as the form is filled out. Labels are necessary to indicate the meaning of the form fields when the placeholders are no longer visible. Show a placeholder only if the user needs a hint on data entry. Do not repeat the content of the label. A hint could be a sample value or a brief description of the expected format. Read more about how to use placeholders.

 

Option List

The option list contains text values only. Keep the text values short because the list is represented using only single lines. Values that are too long might be truncated.

If you need to express that none of the selection options are selected, show a blank input field. Define a default selection whenever possible.

Sorting

We recommend sorting options alphabetically to help users find the right option quickly. For more sorting rules, check out the guidelines for the select control.

Width

You can adjust the width of the option list to some extent.

The combo box control is usually used in forms, where the width is determined by the form element or container in which the combo box control is embedded. Therefore, we do not recommend defining a fixed width, but rather working with proper layout containers that have a defined width, such as the following properties: “form”, “simpleform”, “responsivegridlayout”, and “layoutdata” .

If you need to restrict the width to a defined value, set the width accordingly.

Keep in mind that there is no horizontal scrolling in the option list. Entries in the list that are too long become truncated and users may not be able to read them.

If localized text is not an issue, consider using a smaller width.

Properties

Selection

When you select a value, there are two events:

  • Change: Occurs when the text in the input field is changed and the focus leaves the input field or the user presses the Enter key.
  • Selection change: Occurs when the user types something that matches an item in the list; also when the user clicks a list box item, or when navigating via keyboard.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Combo Box

The combo box control allows users to select an item from a predefined list.

The control provides an editable input field for filtering the list, and a dropdown menu with a list of the available options.

Usage

Use the combo box if:

  • Users need to exclusively select one item from a long list of items (minimum 13, maximum 200 entries).
  • The values of the option list are secondary information and do not need to be displayed right away.

Do not use the combo box if:

  • Users need to select from a list of two options, where one of the options can be implied as on and off or yes and no. Consider using a switch control instead.
  • Users need to pick one item from a small set of options, such as up to 12 entries. Consider using the select control instead.
  • Users need to pick one item from a large set of options, such as more than 200 entries. Consider using the input field control with value help instead.
  • You need to display more than one attribute. Consider using the input field with select dialog or value help dialog.
  • Searching on multiple attributes is required. Consider using the input field with select dialog or value help dialog.
  • Your use cases require that all available options should be displayed right away without any user interaction. Consider using radio buttons or a radio button group.

Responsiveness

Size S

Size S
Size S

Size M

Size M
Size M

Size L

Size L
Size L

Components

Title

A descriptive heading (1).

Input Field

The input field (2) can display the selected value. Users can type any character to filter the option list.

Dropdown Arrow

The dropdown menu’s arrow (3) collapses and expands the option list.

Option List

The option list (4) contains a list of values (5) that users can choose from.

Size S
Size S
Size M/L
Size M/L

Two-Column Layout

Use the combo box with a two-column layout if you need to display additional information to your options, such as currencies for countries or abbreviations for systems.

Note: You can only filter for entries in the first column of the option list. Filtering  for the second column is not possible.

Combo box with two-column layout
Combo box with two-column layout

Behavior and Interaction

Select a Value

There are three ways to select an item from the list:

  1. Select the item directly from the dropdown list.
  2. Type the item into the input field.
  3. Use the up and down arrows to navigate the list.

Clicking the input field places the cursor in the field (1). Clicking the arrow opens the option list (2). Typing into the input field starts filtering the list accordingly; the first value is highlighted and auto-complete suggestions appear in the input field (3). Up/down moves the highlight in the list and populates the value in the field (4). Selecting a value closes the option list (5).

Auto-Complete

When the first few letters are typed in the input field, the control performs auto-complete to help users to easily select one item from the option list.

Choose from Option List

The option list displays all available items the user can choose from. The selection is always highlighted. Selecting another option from the list moves the highlight to the newly selected option.

Clicking the arrow opens the option list below the field. An exception is made when there is not enough space to display the dropdown list. In this case, the list is displayed over the input field.

Selecting a value
Selecting a value

Auto-Resize

The width of the option list adapts to its content. The minimum width is the input field plus the dropdown arrow. The maximum width is the part of the screen furthest to the right. If the option list content requires even more width, entries become truncated.

Option list – Minimum width
Option list – Minimum width
Option list adapts to long entries
Option list adapts to long entries

Mobile Handling

The user can enter text into the input field (supported by auto-completion). When the user clicks or taps the dropdown arrow of the combo box (1), the option list opens in full width (2). Now the user can modify the selected entry by tapping the input field of the combo box. The keyboard is then displayed, and the user can begin to enter a new term to filter the option list, also supported by auto-completion (3). The option list closes when the user clicks or taps the Close button at the bottom of the list (4) or selects an item in the list (5).

Information
For information on how to manage leading and treading whitespace (blanks) when copying and pasting text into input controls, please see removing leading and trailing whitespace.

Styles

A combo box has different styles for its different states. Here are some examples:

Unselected
Unselected
Unselected (predefined placeholder)
Unselected (predefined placeholder)
Unselected (on hover)
Unselected (on hover)
Arrow (on hover)
Arrow (on hover)
Focus
Focus
Warning
Warning
Error
Error
Expanded
Expanded
Auto-complete
Auto-complete

Guidelines

Label

The combo box control can be displayed with or without a label. If the field is attached to another field, you do not need to define a second label. For more information, see the article on how to use labels in SAP Fiori.

Placeholder

Do not use the placeholder attribute as an alternative to a label. This is important because the placeholder text is overwritten as soon as the form is filled out. Labels are necessary to indicate the meaning of the form fields when the placeholders are no longer visible. Show a placeholder only if the user needs a hint on data entry. Do not repeat the content of the label. A hint could be a sample value or a brief description of the expected format. Read more about how to use placeholders.

 

Option List

The option list contains text values only. Keep the text values short because the list is represented using only single lines. Values that are too long might be truncated.

If you need to express that none of the selection options are selected, show a blank input field. Define a default selection whenever possible.

Sorting

We recommend sorting options alphabetically to help users find the right option quickly. For more sorting rules, check out the guidelines for the select control.

Width

You can adjust the width of the option list to some extent.

The combo box control is usually used in forms, where the width is determined by the form element or container in which the combo box control is embedded. Therefore, we do not recommend defining a fixed width, but rather working with proper layout containers that have a defined width, such as the following properties: “form”, “simpleform”, “responsivegridlayout”, and “layoutdata” .

If you need to restrict the width to a defined value, set the width accordingly.

Keep in mind that there is no horizontal scrolling in the option list. Entries in the list that are too long become truncated and users may not be able to read them.

If localized text is not an issue, consider using a smaller width.

Properties

Selection

When you select a value, there are two events:

  • Change: Occurs when the text in the input field is changed and the focus leaves the input field or the user presses the Enter key.
  • Selection change: Occurs when the user types something that matches an item in the list; also when the user clicks a list box item, or when navigating via keyboard.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Combo Box

The combo box control allows users to select an item from a predefined list.

The control provides an editable input field for filtering the list, and a dropdown menu with a list of the available options.

Usage

Use the combo box if:

  • Users need to exclusively select one item from a long list of items (minimum 13, maximum 200 entries).
  • The values of the option list are secondary information and do not need to be displayed right away.

Do not use the combo box if:

  • Users need to select from a list of two options, where one of the options can be implied as on and off or yes and no. Consider using a switch control instead.
  • Users need to pick one item from a small set of options, such as up to 12 entries. Consider using the select control instead.
  • Users need to pick one item from a large set of options, such as more than 200 entries. Consider using the input field control with value help instead.
  • You need to display more than one attribute. Consider using the input field with select dialog or value help dialog.
  • Searching on multiple attributes is required. Consider using the input field with select dialog or value help dialog.
  • Your use cases require that all available options should be displayed right away without any user interaction. Consider using radio buttons or a radio button group.

Responsiveness

Size S

Size S
Size S

Size M

Size M
Size M

Size L

Size L
Size L

Components

Input Field

The input field (1) can display a placeholder (2), or the selected value. Users can type any character to filter the option list.

Dropdown Arrow

The dropdown menu’s arrow (3) collapses and expands the option list.

Option List

The option list (4) contains a list of values (5) that users can choose from.

Two-Column Layout

Use the combo box with a two-column layout if you need to display additional information to your options, such as currencies for countries or abbreviations for systems.

Note: You can only filter for entries in the first column of the option list. Filtering  for the second column is not possible.

Combo box with two-column layout
Combo box with two-column layout

Behavior and Interaction

Select a Value

There are three ways to select an item from the list:

  1. Select the item directly from the dropdown list.
  2. Type the item into the input field.
  3. Use the up and down arrows to navigate the list.

Clicking the input field places the cursor in the field (1). Clicking the arrow opens the option list (2). Typing into the input field starts filtering the list accordingly; the first value is highlighted and auto-complete suggestions appear in the input field (3). Up/down moves the highlight in the list and populates the value in the field (4). Selecting a value closes the option list (5).

Auto-Complete

When the first few letters are typed in the input field, the control performs auto-complete to help users to easily select one item from the option list.

Choose from Option List

The option list displays all available items the user can choose from. The selection is always highlighted. Selecting another option from the list moves the highlight to the newly selected option.

Clicking the arrow opens the option list below the field. An exception is made when there is not enough space to display the dropdown list. In this case, the list is displayed over the input field.

Selecting a value
Selecting a value

Auto-Resize

The width of the option list adapts to its content. The minimum width is the input field plus the dropdown arrow. The maximum width is the part of the screen furthest to the right. If the option list content requires even more width, entries become truncated.

Option list – Minimum width
Option list – Minimum width
Option list adapts to long entries
Option list adapts to long entries

Mobile Handling

The user can enter text into the input field (supported by auto-completion). When the user clicks or taps the dropdown arrow of the combo box (1), the option list opens in full width (2). Now the user can modify the selected entry by tapping the input field of the combo box. The keyboard is then displayed, and the user can begin to enter a new term to filter the option list, also supported by auto-completion (3). The option list closes when the user clicks or taps the Close button at the bottom of the list (4) or selects an item in the list (5).

Styles

A combo box has different styles for its different states. Here are some examples:

Unselected
Unselected
Unselected (predefined placeholder)
Unselected (predefined placeholder)
Unselected (on hover)
Unselected (on hover)
Arrow (on hover)
Arrow (on hover)
Focus
Focus
Warning
Warning
Error
Error
Expanded
Expanded
Auto-complete
Auto-complete

Guidelines

Label

The combo box control can be displayed with or without a label. If the field is attached to another field, you do not need to define a second label. For more information, see the article on how to use labels in SAP Fiori.

Placeholder

Do not use the placeholder attribute as an alternative to a label. This is important because the placeholder text is overwritten as soon as the form is filled out. Labels are necessary to indicate the meaning of the form fields when the placeholders are no longer visible. Show a placeholder only if the user needs a hint on data entry. Do not repeat the content of the label. A hint could be a sample value or a brief description of the expected format. Read more about how to use placeholders.

 

Option List

The option list contains only text values. Keep the text values short as the list is represented using only single lines. Values that are too long might be truncated.

If you need to express that none of the selection options are selected, show a blank input field. Define a default selection whenever possible.

The combo box list cannot display columns. If you want to show two values within the option list, show the leading information first, followed by the secondary information in parentheses, such as “Walldorf (Germany)”. Typing into the input field returns all items whose names start with the search text.

Sorting

We recommend sorting options alphabetically to help users find the right option quickly. For more sorting rules, check out the guidelines for the select control.

Width

You can adjust the width of the option list to some extent.

The combo box control is usually used in forms, where the width is determined by the form element or container in which the combo box control is embedded. Therefore, we do not recommend defining a fixed width, but rather working with proper layout containers that have a defined width, such as the following properties: “form”, “simpleform”, “responsivegridlayout”, and “layoutdata” .

If you need to restrict the width to a defined value, set the width accordingly.

Keep in mind that there is no horizontal scrolling in the option list. Entries in the list that are too long become truncated and users may not be able to read them.

If localized text is not an issue, consider using a smaller width.

Properties

Selection

When you select a value, there are two events:

  • Change: Occurs when the text in the input field is changed and the focus leaves the input field or the user presses the Enter key.
  • Selection change: Occurs when the user types something that matches an item in the list; also when the user clicks a list box item, or when navigating via keyboard.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Chart – UI Theme Designer for Color Palettes

The only way to change the HEX values is to create a completely new visual design theme using the theme designer. If you’re undertaking such a project, here are some things to consider to ensure everything works correctly.

Qualitative Palette  

Each color must be visually distinct from each other while carrying the same saturation and brightness.

Qualitative Palette (e.g. Blue Crystal, Belize, Belize Plus)
Qualitative Palette (e.g. Blue Crystal, Belize, Belize Plus)

Sequential Palette Color Hues

The first three colors in your sequential palette should be the same color hue as the first three colors in your qualitative palette so they work together.

Three hues for Sequential palette
Three hues for Sequential palette

Sequential and Semantic Colors

The colors in your sequential and semantic palettes should have the same saturation and brightness as each shade for each hue.

Equal weight and saturation between the shades on the same row
Equal weight and saturation between the shades on the same row

Semantic Colors

Your semantic palette should contain four hues that represent good, bad, critical and neutral.

Chart – Color Palette – Values and Names

This page provides all the color names in the chart palettes.

Use Names – Do not use HEX values!

Colors are defined by names in order to support our theming capabilities. They are derived from themable base colors and then the associated HEX values depend on the current theme.

You cannot change the HEX values unless you create a new theme.

Qualitative Palette

Color Name Example: Belize (light flavor)
 sapUiChartPaletteQualitativeHue1 #5cbae6
sapUiChartPaletteQualitativeHue2 #b6d957
sapUiChartPaletteQualitativeHue3 #fac364
sapUiChartPaletteQualitativeHue4 #8cd3ff
sapUiChartPaletteQualitativeHue5 #d998cb
sapUiChartPaletteQualitativeHue6 #f2d249
sapUiChartPaletteQualitativeHue7 #93b9c6
sapUiChartPaletteQualitativeHue8 #ccc5a8
sapUiChartPaletteQualitativeHue9 #52bacc
sapUiChartPaletteQualitativeHue10 #dbdb46
sapUiChartPaletteQualitativeHue11 #98aafb

Semantic Palette

Color Name Example: Belize (light flavor)
sapUiChartPaletteSemanticBadLight3 #f99494
sapUiChartPaletteSemanticBadLight2 #f66364
sapUiChartPaletteSemanticBadLight1 #f33334
sapUiChartPaletteSemanticBad #dc0d0e
sapUiChartPaletteSemanticBadDark1 #b90c0d
sapUiChartPaletteSemanticBadDark2 #930a0a
sapUiChartPaletteSemanticCriticalLight3 #f8cc8c
sapUiChartPaletteSemanticCriticalLight2 #f5b04d
sapUiChartPaletteSemanticCriticalLight1 #f29b1d
sapUiChartPaletteSemanticCritical #de890d
sapUiChartPaletteSemanticCriticalDark1 #c67a0c
sapUiChartPaletteSemanticCriticalDark2 #a4650a
sapUiChartPaletteSemanticGoodLight3 #a1dbb1
sapUiChartPaletteSemanticGoodLight2 #71c989
sapUiChartPaletteSemanticGoodLight1 #4cba6b
sapUiChartPaletteSemanticGood #3fa45b
sapUiChartPaletteSemanticGoodDark1 #358a4d
sapUiChartPaletteSemanticGoodDark2 #2a6d3c
sapUiChartPaletteSemanticNeutralLight3 #d5dadc
sapUiChartPaletteSemanticNeutralLight2 #bac1c4
sapUiChartPaletteSemanticNeutralLight1 #9ea8ad
sapUiChartPaletteSemanticNeutral #848f94
sapUiChartPaletteSemanticNeutralDark1 #69767c
sapUiChartPaletteSemanticNeutralDark2 #596468

Sequential Palette

Color Name Example: Belize (light flavor)
sapUiChartPaletteSequentialHue1Light3 #abdbf2
sapUiChartPaletteSequentialHue1Light2 #84caec
sapUiChartPaletteSequentialHue1Light1 #5cbae5
sapUiChartPaletteSequentialHue1 #27a3dd
sapUiChartPaletteSequentialHue1Dark1 #1b7eac
sapUiChartPaletteSequentialHue1Dark2 #156489
sapUiChartPaletteSequentialHue2Light3 #d7eaa2
sapUiChartPaletteSequentialHue2Light2 #c6e17d
sapUiChartPaletteSequentialHue2Light1 #b6d957
sapUiChartPaletteSequentialHue2 #9dc62d
sapUiChartPaletteSequentialHue2Dark1 #759422
sapUiChartPaletteSequentialHue2Dark2 #5b731a
sapUiChartPaletteSequentialHue3Light3 #fde5bd
sapUiChartPaletteSequentialHue3Light2 #fbd491
sapUiChartPaletteSequentialHue3Light1 #fac364
sapUiChartPaletteSequentialHue3 #f8ac29
sapUiChartPaletteSequentialHue3Dark1 #dd8e07
sapUiChartPaletteSequentialHue3Dark2 #b57506
sapUiChartPaletteSequentialNeutralLight3 #d5dadc
sapUiChartPaletteSequentialNeutralLight2 #bac1c4
sapUiChartPaletteSequentialNeutralLight1 #9ea8ad
sapUiChartPaletteSequentialNeutral #848f94
sapUiChartPaletteSequentialNeutralDark1 #69767c
sapUiChartPaletteSequentialNeutralDark2 #596468

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

No links.

Chart – Legend

The legend explains the meaning of all the visual elements contained in the plot area.

Layout

You can decide where you want to legend to be positioned. By default, it is displayed to the right of the plot area, but it can also be displayed below it when the chart scrolls horizontally. However, we recommend displaying to the right of the plot area when you have many legend items.

Legend at the bottom
Legend at the bottom
Legend on the right
Legend on the right

Responsiveness

When the legend is displayed to the right of the plot area, it automatically moves to the bottom when the horizontal space is reduced as illustrated below.

Responsive Legend
Responsive Legend
Responsive-Legend2
Responsive-Legend2

Behavior and Interaction

Show/Hide Legend

The legend can be hidden or shown via a dedicated standard button in the chart toolbar (not a toggle button). The visibility of the legend changes each time the button is pressed.

Select Legend Item

Clicking (or tapping) on a legend item selects or deselects all the associated data points. It does not show or hide them, although this functionality is in the roadmap for this control.

Custom Legend Items

By default, the chart component displays a legend based on the dataset and the colors used by the chart. All colors displayed in the chart are listed in the legend.

By default, the order of the legend item is the same as the order used to render the dataset, although the order and labels of legend items can be customized.

Order

The order of the legend items can be customized to help users read it. In the example below, the default order does not respect the chronological order (which makes the legend difficult to read). Changing the order helps users recognize the information better.

Legend with default order
Legend with default order
Legend with new order
Legend with new order

Text

It is not possible to customize the legend labels when colors are automatically assigned by the chart component. When the colors are set programmatically (such as by using value-based colors), it’s possible to customize the legend items in order to clearly describe the meaning of the color.

Legend with custom texts
Legend with custom texts

Titles

By default, the legend does not display a title, although a title can be displayed manually on top of the legend. However, we recommend only displaying a title if doing so will help users understand the legend items or make the legend item labels shorter.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • No links.

Chart – Color Palette – Values and Names

All the values and calculation below are for the blue crystal theme.

Qualitative Palette

Color Name Derived from Color Value Hex Value RGB
 sapUiChartPaletteQualitativeHue1  @sapUiChart1  #5cbae6  rgb(92,186,230)
 sapUiChartPaletteQualitativeHue2  @sapUiChart2  #b6d957  rgb(182,217,87)
 sapUiChartPaletteQualitativeHue3  @sapUiChart3  #fac364  rgb(250,195,100)
 sapUiChartPaletteQualitativeHue4 @sapUiChart4  #8cd3ff  rgb(140,211,255)
 sapUiChartPaletteQualitativeHue5 @sapUiChart5  #d998cb  rgb(217,152,203)
 sapUiChartPaletteQualitativeHue6 @sapUiChart6  #f2d249  rgb(242,210,73)
 sapUiChartPaletteQualitativeHue7 @sapUiChart7  #93b9c6  rgb(147,185,198)
 sapUiChartPaletteQualitativeHue8 @sapUiChart8  #ccc5a8  rgb(204,197,168)
 sapUiChartPaletteQualitativeHue9 @sapUiChart9  #52bacc  rgb(82,186,204)
sapUiChartPaletteQualitativeHue10 @sapUiChart10 #dbdb46 rgb(219,219,70)
sapUiChartPaletteQualitativeHue11 @sapUiChart11 #98aafb rgb(152,170,251)

Semantic Palette

Color Name Derived from Color Value Hex Value RGB
sapUiChartPaletteSemanticBadLight3 lighten(@sapUiChartBad,30) #f09ca4  rgb(240,156,164)
sapUiChartPaletteSemanticBadLight2 lighten(@sapUiChartBad,20) #e9707b  rgb(233,112,123)
sapUiChartPaletteSemanticBadLight1 lighten(@sapUiChartBad,10) #e34352  rgb(227,67,82)
sapUiChartPaletteSemanticBad @sapUiChartBad #d32030  rgb(211,32,48)
sapUiChartPaletteSemanticBadDark1 darken(@sapUiChartBad,10) #a71926  rgb(167,25,38)
sapUiChartPaletteSemanticBadDark2 darken(@sapUiChartBad,15) #911621  rgb(145,22,33
sapUiChartPaletteSemanticCriticalLight3 lighten(@sapUiChartCritical,30) #f3caab  rgb(243,202,171)
sapUiChartPaletteSemanticCriticalLight2 lighten(@sapUiChartCritical,20) #edb17e  rgb(237,177,126)
sapUiChartPaletteSemanticCriticalLight1 lighten(@sapUiChartCritical,10) #e79651  rgb(231,150,81)
sapUiChartPaletteSemanticCritical @sapUiChartCritical #e17b24  rgb(225,123,36)
sapUiChartPaletteSemanticCriticalDark1 darken(@sapUiChartCritical,10) #b96319  rgb(185,99,25)
sapUiChartPaletteSemanticCriticalDark2 darken(@sapUiChartCritical,15) #a25716  rgb(162,87,22)
sapUiChartPaletteSemanticGoodLight3 lighten(@sapUiChartGood,30) #bedbba  rgb(190,219,186)
sapUiChartPaletteSemanticGoodLight2 lighten(@sapUiChartGood,20) #9fca98  rgb(159,202,152)
sapUiChartPaletteSemanticGoodLight1 lighten(@sapUiChartGood,10) #80b877  rgb(128,184,119)
sapUiChartPaletteSemanticGood @sapUiChartGood #61a656  rgb(97,166,86)
sapUiChartPaletteSemanticGoodDark1 darken(@sapUiChartGood,10) #4d8445  rgb(77,132,69)
sapUiChartPaletteSemanticGoodDark2 darken(@sapUiChartGood,15) #44743c  rgb(68,116,60)
sapUiChartPaletteSemanticNeutralLight3 saturate(lighten(@sapUiChartNeutral,30),1) #d5dadc  rgb(213, 218, 220)
sapUiChartPaletteSemanticNeutralLight2 saturate(lighten(@sapUiChartNeutral,20),1) #bac1c4  rgb(186, 193, 196)
sapUiChartPaletteSemanticNeutralLight1 saturate(lighten(@sapUiChartNeutral,10),1) #9ea8ad  rgb(158, 168, 173)
sapUiChartPaletteSemanticNeutral @sapUiChartNeutral #848f94  rgb(132,143,148)
sapUiChartPaletteSemanticNeutralDark1 saturate(darken(@sapUiChartNeutral,10),1) #69767c  rgb(105, 118, 124)
sapUiChartPaletteSemanticNeutralDark2 saturate(darken(@sapUiChartNeutral,15),1) #5e696e  rgb(94, 105, 110)

Sequential Palette

Color Name Derived from Color Value Hex Value RGB
sapUiChartPaletteSequentialHue1Light3 lighten(@sapUiChartSequence1,30) #abdbf2 rgb(171, 219, 242)
sapUiChartPaletteSequentialHue1Light2 lighten(@sapUiChartSequence1,21) #84caec rgb(132, 202, 236)
sapUiChartPaletteSequentialHue1Light1 lighten(@sapUiChartSequence1,12) #5cbae5 rgb(92, 186, 229)
sapUiChartPaletteSequentialHue1 @sapUiChartSequence1 #27a3dd rgb(39,163,221)
sapUiChartPaletteSequentialHue1Dark1 darken(@sapUiChartSequence1,12) #1b7eac rgb(27,126,172)
sapUiChartPaletteSequentialHue1Dark2 darken(@sapUiChartSequence1,20) #156489 rgb(213, 218, 220)
sapUiChartPaletteSequentialHue2Light3 lighten(@sapUiChartSequence2,30) #d7eaa2 rgb(215, 234, 162)
sapUiChartPaletteSequentialHue2Light2 lighten(@sapUiChartSequence2,21) #c6e17d rgb(198, 225, 125)
sapUiChartPaletteSequentialHue2Light1 lighten(@sapUiChartSequence2,12) #b6d957 rgb(182, 217, 87)
sapUiChartPaletteSequentialHue2 @sapUiChartSequence2 #9dc62d rgb(157,198,45)
sapUiChartPaletteSequentialHue2Dark1 darken(@sapUiChartSequence2,12) #759422 rgb(117, 148, 34)
sapUiChartPaletteSequentialHue2Dark2 darken(@sapUiChartSequence2,20) #5b731a rgb(91, 115, 26)
sapUiChartPaletteSequentialHue3Light3 lighten(@sapUiChartSequence3,30) #fde5bd rgb(253, 229, 189)
sapUiChartPaletteSequentialHue3Light2 lighten(@sapUiChartSequence3,21) #fbd491 rgb(251, 212, 145)
sapUiChartPaletteSequentialHue3Light1 lighten(@sapUiChartSequence3,12) #fac364 rgb(250, 195, 100)
sapUiChartPaletteSequentialHue3 @sapUiChartSequence3 #f8ac29 rgb(248,172,41)
sapUiChartPaletteSequentialHue3Dark1 darken(@sapUiChartSequence3,12) #dd8e07 rgb(221, 142, 7)
sapUiChartPaletteSequentialHue3Dark2 darken(@sapUiChartSequence3,20) #b57506 rgb(181, 117, 6)
sapUiChartPaletteSequentialNeutralLight3 saturate(lighten(@sapUiChartSequenceNeutral,30),1 #d5dadc rgb(213, 218, 220)
sapUiChartPaletteSequentialNeutralLight2 saturate(lighten(@sapUiChartSequenceNeutral,20),1) #bac1c4 rgb(186, 193, 196)
sapUiChartPaletteSequentialNeutralLight1 saturate(lighten(@sapUiChartSequenceNeutral,10),1) #9ea8ad rgb(158, 168, 173)
sapUiChartPaletteSequentialNeutral @sapUiChartSequenceNeutral #848f94 rgb(132,143,148)
sapUiChartPaletteSequentialNeutralDark1 saturate(darken(@sapUiChartSequenceNeutral,10),1) #69767c rgb(105, 118, 124)
sapUiChartPaletteSequentialNeutralDark2 saturate(darken(@sapUiChartSequenceNeutral,15),1) #5e696e rgb(94, 105, 110)

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Chart – Legend

The legend explains the meaning of all the visual elements contained in the plot area.

Position

The legend is always displayed vertically, on the right hand side of the chart. In future wave, it will be possible to display the legend on top or at the bottom of the chart.

Responsiveness

When the chart is too narrow, the legend is displayed in an overlay above the chart, so that all legend items can be read. This is particularly important for smartphones.

By default, the legend must always be hidden on small screens.

Behavior and Interaction

Show/Hide Legend

The legend can be hidden or shown via a dedicated standard button in the chart toolbar (not a toggle button). The visibility of the legend changes each time the button is pressed.

Select Legend Item

Clicking (or tapping) on a legend item selects or deselects all the associated data points. It does not show or hide them, although this functionality is in the roadmap for this control.

Custom Legend Items

By default, the chart component displays a legend based on the data set and the colors used by the chart. All colors displayed in the chart are listed in the legend.

By default, the order of the legend item is the same as the order used to render the data set, although the order and labels of legend items can be customized.

Order

The order of the legend items can be customized to help users read it. In the example below, the default order does not respect the chronological order (which makes the legend difficult to read). Changing the order helps users recognize the information better.

Legend with default order
Legend with default order
Legend with new order
Legend with new order

Text

It is not possible to customize the legend labels when colors are automatically assigned by the chart component. When the colors are set programmatically (such as by using value-based colors), it’s possible to customize the legend items in order to clearly describe the meaning of the color.

Legend with custom texts
Legend with custom texts

Titles

By default, the legend does not display a title, although a title can be displayed manually on top of the legend. However, we recommend only displaying a title if doing so will help users understand the legend items or make the legend item labels shorter.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Size of Data Points

Intro

This article describes the size of data points for charts containing bars.

Width of Bars

The following applies to all charts that contain bars (the horizontal bar chart, vertical bar chart, stacked bar chart, bullet chart, and the combined chart):

  • The chart component tries to resize all the bars so that all data points can be visible, but a minimum width is applied. The minimum width allows an easy selection on all devices.
  • The minimum width of the bars are 48 px on touch screens and 24 px on mouse devices.

 

When the minimum width is reached, a scroll bar allows to scroll and see all data points.

Minimum width displayed
Minimum width displayed

When there is enough space to show all data points, the width of the data point adapts proportionally to the width of the chart container.

Width adapted proportionaly
Width adapted proportionaly

Reference Lines

Intro

A reference line can be added to highlight a particular value. Reference lines can be added only to continuous axes, but not to categorical axes.

Examples

The vertical axis of the column chart is continuous and thus can have a reference line.

Vertical axis with reference line
Vertical axis with reference line

The horizontal axis of the time bubble chart is a continuous time axis and thus it and can have a reference line.

Horizontal axis with a reference line
Horizontal axis with a reference line

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • No links.

Link

A link (also known as hyperlink) is a clickable text element. The link control is used for navigation, but can also trigger an event. Links are visualized to stand out from standard, non-clickable text.

Usage

Use a link if:

  • The control you are using does not support other navigation options.
  • You want to reference an object (for example, from a form or table).
    Note: Use the quick view control to show the object details (sap.m.QuickView).

Do not use a link if:

  • The link text is the key identifier of an object. In this case, use an actionable object identifier instead.
  • You could use a button to trigger the action instead. If you want the button to look like a link, you can use a transparent button.

Responsiveness

A link can react to insufficient room in two different ways:

  • By default, the text is truncated to fit the available screen real estate.
  • If you enable wrapping, the link uses more lines instead of truncating the text (property: wrapping).
Link – Wrapping and truncation
Link – Wrapping and truncation
Link – Wrapping and truncation (hover)
Link – Wrapping and truncation (hover)

Behavior and Interaction

Triggering an Event

The purpose of a link is to trigger navigation or an event. The action is triggered when the user clicks or taps the link. For navigation links, you can specify a target to define where the linked content should open (property: target).

Hovering

When the mouse pointer is positioned over a link, the user gets additional visual feedback (underlining) to emphasize that the text is a clickable link.

Hovering over the link with the mouse
Hovering over the link with the mouse

Disabled State

A link can have a disabled state to indicate that it is currently not clickable. Only disable a link if the user has other options for accessing the function behind the deactivated link.

Disabled links
Disabled links

Styles

Besides the standard link visualization, there are two more styles: subtle and emphasized.

Subtle

You can use subtle links to distinguish between important and less important (subtle) links (property: subtle). This allows you to improve the visual hierarchy in large data lists.

Do not use subtle links for any other use cases.

Emphasized

If the standard link visualization is not sufficient to attract the user’s attention, you can highlight the link (property: emphasized).

Links shown in different styles
Links shown in different styles
Links shown in different styles when hovering
Links shown in different styles when hovering

Guidelines

Use a meaningful link text that indicates what will happen when the user clicks the link (for example, Open Sales Order). Avoid texts such as Click Here or Link, as these do not meet accessibility standards.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Value Help Dialog

The value help dialog is a UI pattern that helps the user find and select single and multiple values. The user can also define and select multiple ranges. The value help dialog is generally called from an input field or a multi-input field by clicking the selection icon (value help icon) of the input field.

Usage

Use the value help dialog if:

  • The user needs to use different attributes (such as city, company name, and so on) to find an object.
  • The user is searching within a dataset containing more than 200 items.
  • The user needs to define and select ranges and exclusions.

Responsiveness

The behavior of the value help dialog on a phone differs from its behavior on a tablet or desktop device. Both the navigation and the positioning of the selection area differ depending on the device.

Size S – Value help dialog
Size S – Value help dialog
Size M – Value help dialog
Size M – Value help dialog
Size L – Value help dialog
Size L – Value help dialog

Components

The value help dialog contains the following components:

  • Header bar
  • Icon tab bar and list control
  • Search template (optional)
  • Basic search
  • Items row (selected items, excluded items)
  • Footer toolbar
  • Include/exclude areas for range selection

Header Bar (1)

The header bar contains the dialog title. For guidelines on the dialog title, see the Guidelines section of this article.

Icon Tab Bar on Tablet/Desktop and List Control on Phone (2)

Depending on the device, the following controls are used to display the content of the value help dialog:

  • Smartphones: The start dialog provides a list (sap.m.List) with the standard list items (sap.m.StandardListItemSelect from List and
    Define Conditions to navigate between the different dialogs.
  • Tablet and desktop devices: The value help dialog contains an icon tab bar (sap.m.IconTabBar) to navigate between the Select from List and the Define Conditions tab.

Search Template (3)

Search templates allow the user to display different or additional fields in the advanced search field and the results list. Depending on the use case, the user can switch between the different search templates in order to use different fields when searching. For example, the search template “Customer (by company code)” displays the additional field “Company code” in the advanced search and result list.

Basic Search (4)

It’s mandatory to display the basic search in the value help dialog. Position the basic search on the right of the search template control. If there’s no search template control, the basic search is displayed left-aligned.

Advanced Search (5)

  • The advanced search offers all columns of the result list.
  • The value help icon of the business object ID field and description field for the business object that opened the current value help dialog will open only the Define Conditions screen. The entire value help dialog is not shown in order to prevent endless loops. For example, the value help icon of the customer ID or description field in a Select: Customer value help dialog will navigate directly to the Define Conditions screen.

For implementation of the basic and advanced search, the filter bar (sap.ui.comp.filterbar.FilterBar) is used in advanced mode. Advanced mode differs from basic mode in the following ways:

  • There is no Filters link or a dialog to make additional filter fields visible. All filter fields/advanced search fields are added automatically to the advanced search area.
  • There is a toggle link to show and hide the advanced search.
  • On desktops, the advanced search should be expanded by default.
  • On tablets, the advanced search should be collapsed by default.

Result List (6)

  • You can prefill the result list of the value help dialog by default.
  • If you transferred values from the input field to the basic search field of the value help dialog, the results are filtered accordingly.
  • If available, display the ID and description of the business object in the first and second columns. Display additional information in the next columns.
  • We recommend a maximum of five columns in the results list.

Selected/Excluded Items Row (7)

The selected/excluded item row is displayed in the panel container (see panel for more information). Each item or range that is selected or excluded is displayed as a token in the selected or excluded item row.

  • On desktops, the selection area with the selected and excluded items row is expanded initially.
  • On tablets and phones, the selection area with the selected and excluded item row is collapsed initially.

Footer Toolbar (8)

The footer bar includes OK and Cancel buttons.

Include/Exclude Area for Range Selection (9)

In the Include and Exclude areas of the Define Conditions tab, you can define single and multiple ranges with the following operators:

  • Equal to
  • Between
  • Less than
  • Less than or equal to
  • Greater than
  • Greater than or equal to

Each range is displayed as a token in the selected or excluded item row.

Information
For information on how to manage leading and treading whitespace (blanks) when copying and pasting text into input controls, please see removing leading and trailing whitespace.

Behavior and Interaction

Basic and Advanced Search

  • The basic search (mandatory) and advanced search (optional) are triggered by clicking the Go button. The search results are shown in the result list.
  • If the input field where the user is coming from contains data, it’s transferred to the basic search of the value help dialog and the results are then filtered accordingly.
  • The basic search performs a search in all fields that are displayed in the advanced search and the result list.

Item and Range Selection

The user can select single and multiple items, as well as single and multiple ranges. Items and ranges can also be excluded.

1. Single Selection

A single item or a range can be selected in single selection cases:

Single Item Selection on Smartphones

For the selection of a single item, the value help dialog is opened by clicking the value help icon of the input field. The Select from List tab is then displayed. As soon as one item is selected, the value help dialog closes automatically.

Value help dialog – Single item selection on a smartphone
Value help dialog – Single item selection on a smartphone

Single Item Selection on Tablets and Desktops

For the selection of a single item, the value help dialog is opened by clicking the value help icon of the input field. In this case only, the content of the Select from List tab is displayed. The icon tab bar and the selected/excluded item row are hidden. As soon as one item is selected, the value help dialog closes automatically.

Value help dialog – Single item selection on desktop
Value help dialog – Single item selection on desktop

Single Range Selection on Smartphones

For the selection of a single range, the value help dialog is opened by clicking the value help icon of the input field. The Define Condition tab is then displayed.

Value help dialog – Single range selection on smartphone
Value help dialog – Single range selection on smartphone

Single Range Selection for Smartphones

For the selection of a single range, the value help dialog is opened by clicking the value help icon of the input field.  In this case only, the content of the Define Conditions tab is displayed.

The icon tab bar and the selected/excluded item row are hidden. The Add and Delete icons for adding and deleting ranges are also hidden.

Value help dialog – Single range selection
Value help dialog – Single range selection

2. Multi-selection

Users can select multiple items and ranges in range selection cases:

Multi-Item and Multi-Range Selections on Smartphones

For selection of multiple items and multiple ranges, the value help dialog is opened by clicking the value help icon of the input field. The start dialog is then displayed.

Use the Select from List tab to select multiple items. Use the Define Conditions tab to select and exclude ranges. Both are added as tokens to the selected/excluded items row on the bottom of the start dialog.

Value help dialog – Start dialog for multi-item and multi-range selection on smartphone
Value help dialog – Start dialog for multi-item and multi-range selection on smartphone
Value help dialog – Multi-range selection on smartphone
Value help dialog – Multi-range selection on smartphone
Value help dialog – Multi-item selection on smartphone
Value help dialog – Multi-item selection on smartphone
Value help dialog – Advanced search on smartphone
Value help dialog – Advanced search on smartphone

Multi-Item and Multi-Range Selection on Tablets and Desktops

For selection of multiple items and multiple ranges, the value help dialog is opened by clicking the value help icon of the input field. The icon tab bar with the Select from List tab and the Define Conditions tab are displayed.

Use the Select from List tab to select multiple items. Use the Define Conditions tab to select and exclude ranges. Both are added as tokens to the selected/excluded items row on the bottom of the screen.

Value help dialog – Multi-item and multi-range selection on desktop
Value help dialog – Multi-item and multi-range selection on desktop
Value help dialog – Multi-item and multi-range selection on desktop
Value help dialog – Multi-item and multi-range selection on desktop

3.  Multi-Range Selection

Multi-Range Selection on Smartphones

For selection of multiple ranges, the value help dialog is opened by clicking the value help icon of the input field.

In this case only, the start dialog and the Define Conditions tab are displayed.

Value help dialog – Multi-range selection on smartphone
Value help dialog – Multi-range selection on smartphone
Value help dialog – Multi-range selection on smartphone
Value help dialog – Multi-range selection on smartphone

Multi-Range Selection on Tablets and Desktops

For selection of multiple ranges, the value help dialog is opened by clicking the value help icon of the input field.

In this case only, the content of the Define Conditions tab is displayed. The icon tab bar is hidden and the selected/excluded item row is displayed.

Value help dialog – Multi-range selection on desktop
Value help dialog – Multi-range selection on desktop

Selected/Excluded Items Row

  • Each item that is selected from the result list on the Select from List tab is displayed as a token in the selected item row.
  • Each range that is selected or excluded on the Define Conditions tab is displayed as a token in the selected/excluded item row.

Copying and Pasting Multiple Values

The Include and Exclude areas on the Define Conditions tab allow the user to enter multiple values (copied from clipboard) at once.

In both areas, the Value input field allows the user to paste more than one value into an input field. In this case, the condition row will be repeated with the previously selected condition and shows one value per row.

If there are more than 10 rows of conditions, pagination will be added to the screen, displaying a toolbar to allow the user to navigate back and forth between the different pages. A token will appear next to each pasted value on the selected/excluded items row at the bottom of the value help dialog.

Copying and pasting multiple values
Copying and pasting multiple values
Copying and pasting multiple values
Copying and pasting multiple values

Guidelines

Dialog Title

The dialog title differs depending on the device and whether multiple or single selection is used.

For smartphones:

  • Starting dialog: <BO Name>. For example, “Company”.
  • Select from list dialog: “Select from List”.
  • Advanced search dialog: “Advanced Search”
  • For single range selection: “Define Condition”.
  • For multiple range selection, show Define Conditions”.

For tablets and desktops:

  • For multiple items combined with multiple ranges selection, show <BO Name>. For example, “Company”.
  • For single item selection, show Select: <BO Name>. For example, “Select Company”.
  • For single range selection, display Define Condition: <BO Name>. For example, “Define Condition: Company”.
  • For multiple range selection, display Define Conditions: <BO Name>. For example, “Define Conditions: Company.

Advanced Search

If necessary, also provide value help for fields offered in the advanced search. However, do not provide the full value help dialog for the ID and description fields of the business object that is being selected. For these two fields, make sure that the value help icon opens only the Define Conditions screen (range selection).

For example, in a value help dialog for selecting the customer, do not offer full value help for the Customer ID and Customer Name fields. Instead, try to use the value help in combination with a helpful suggestion.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Link

A link (also known as hyperlink) is a clickable text element. The link control is used for navigation, but can also trigger an event. Links are visualized to stand out from standard, non-clickable text.

Usage

Use a link if:

  • The control you are using does not support other navigation options.
  • You want to reference an object (for example, from a form or table).
    Note: Use the quick view control to show the object details (sap.m.QuickView).

Do not use a link if:

  • The link text is the key identifier of an object. In this case, use an actionable object identifier instead.
  • You could use a button to trigger the action instead. If you want the button to look like a link, you can use a transparent button.

Responsiveness

A link can react to insufficient room in two different ways:

  • By default, the text is truncated to fit the available screen real estate.
  • If you enable wrapping, the link uses more lines instead of truncating the text (property: wrapping).
Link – Wrapping and truncation
Link – Wrapping and truncation
Link – Wrapping and truncation (hover)
Link – Wrapping and truncation (hover)

Behavior and Interaction

Triggering an Event

The purpose of a link is to trigger navigation or an event. The action is triggered when the user clicks or taps the link. For navigation links, you can specify a target to define where the linked content should open (property: target).

Hovering

When the mouse pointer is positioned over a link, the user gets additional visual feedback (underlining) to emphasize that the text is a clickable link.

Hovering over the link with the mouse
Hovering over the link with the mouse

Disabled State

A link can have a disabled state to indicate that it is currently not clickable. Only disable a link if the user has other options for accessing the function behind the deactivated link.

Disabled links
Disabled links

Styles

Besides the standard link visualization, there are two more styles: subtle and emphasized.

Subtle

You can use subtle links to distinguish between important and less important (subtle) links (property: subtle). This allows you to improve the visual hierarchy in large data lists.

Do not use subtle links for any other use cases.

Emphasized

If the standard link visualization is not sufficient to attract the user’s attention, you can highlight the link (property: emphasized).

Links shown in different styles
Links shown in different styles
Links shown in different styles when hovering
Links shown in different styles when hovering

Guidelines

Use a meaningful link text that indicates what will happen when the user clicks the link (for example, Open Sales Order). Avoid texts such as Click Here or Link, as these do not meet accessibility standards.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Value Help Dialog

The value help dialog is a UI pattern that helps the user find and select single and multiple values. The user can also define and select multiple ranges. The value help dialog is generally called from an input field or a multi-input field by clicking the selection icon (value help icon) of the input field.

Usage

Use the value help dialog if:

  • The user needs different attributes to find an object, such as the customer name, country, and city to search for a customer.
  • The user is searching in a data set with more than 200 items.
  • The user needs to define and select ranges and exclusions.

Do not use the value help dialog if:

  • Smartphones should be supported. In this case, use the select dialog (simple version of the value help dialog) instead by using the sap.m.SelectDialog control.

Responsiveness

The value help dialog control is currently not responsive and only available for desktop and tablet devices!
For smartphones, use the select dialog (sap.m.SelectDialog) as a simple version of the value help dialog.

Value help dialog - Size S
Value help dialog - Size S
Value help dialog - Size M
Value help dialog - Size M
Value help dialog - Size L
Value help dialog - Size L

Components

The value help dialog contains an icon tab bar with the following two tabs:

  • The Select From List tab to select single and multiple items
  • The Define Conditions tab to include and exclude ranges
Value help dialog - Select From List tab
Value help dialog - Select From List tab
Value help dialog - Define Conditions tab
Value help dialog - Define Conditions tab

Header Bar (1)

The header bar contains the dialog title. For guidelines on the dialog title, see the Guidelines section of this article.

Search Template (2)

Search templates allow the user to display different or additional fields in the advanced search field and the results list. Depending on the use case, the user can switch between the different search templates in order to use different fields when searching. For example, the search template “Customer (by company code)” displays the additional field “Company code” in the advanced search and result list.

Basic Search (3)

  • It is mandatory to display the basic search in the value help dialog.
  • Position the basic search on the right of the search template control. If there is no search template control, the basic search is displayed left-aligned.

Advanced Search (4)

  • The advanced search offers all columns of the result list.
  • The value help icon of the business object ID field and description field for the business object that opened the current value help dialog will open only the Define Conditions screen. The entire value help dialog is not shown in order to prevent endless loops. For example, the value help icon of the customer ID or description field in a Select: Customer value help dialog will directly navigate to the Define Conditions screen.
  • For implementation of the basic and advanced search, the filter bar (sap.ui.comp.filterbar.FilterBar) is used in advanced mode. Advanced mode differs from basic mode in the following ways:
    • The text Dynamic Selection is replaced by Advanced Search.
    • All filter fields are added to the advanced area.
    • The restore button is hidden.
    • The advanced area is expanded.

Result List (5)

  • You can display the result list of the value help dialog by default . If you transferred values from the input field to the basic search field of the value help dialog, the results are filtered accordingly.
  • If available, the display ID and description of the business object appear in the first and second columns. Additional information is displayed after them. A maximum of five columns in the results list is recommended.

Selected/Excluded Items Row (6)

  • The selected/excluded item row is displayed in the panel container (sap.m.Panel).  For more information, see Panel.
  • On desktops, the selection area with the  selected and excluded items row is initially expanded.
  • On tablets, the selection area with the  selected and excluded item row is initially collapsed.
  • Each item or range that is selected or excluded is displayed as a token in the selected or excluded item row.

Footer Toolbar (7)

The footer bar includes OK and Cancel buttons.

Include/Exclude Area for Range Selection (8)

In the Include and Exclude areas of the Define Conditions tab, you can define single and multiple ranges with the following operators:

  • equal to
  • between
  • less than
  • less than or equal to
  • greater than
  • greater than or equal to

Each range is displayed as a token in the selected or excluded item row.

Behavior and Interaction

Basic and Advanced Search

  • The basic search (mandatory) and advanced search (optional) are triggered by clicking the Go button. The search results are shown in the result list below the search area.
  • If the input field where the user is coming from contains data, it is transferred to the basic search of the value help dialog and the results are filtered accordingly.
  • The basic search searches in all fields that are displayed in the advanced search and the result list.

Item and Range Selection

The user can select single and multiple items, as well as single and multiple ranges. Items and ranges can also be excluded.

1. Single Selection

A single item or a range can be selected in single selection cases:

1.1  Single Item Selection

For the selection of a single item, the value help dialog is opened by clicking the value help icon of the input field. In this case only, the content of the Select From List tab is displayed.

The icon tab bar and the selected/excluded item row are hidden. As soon as one item is selected, the value help dialog closes automatically.

Value help dialog - Single item selection
Value help dialog - Single item selection

1.2 Single Range Selection

For the selection of a single range, the value help dialog is opened by clicking the value help icon of the input field. In this case only, the content of the Define Conditions tab is displayed.

The icon tab bar and the selected/excluded item row are hidden. The Add and Delete icons for adding and deleting ranges are also hidden.

Value help dialog - Single range selection
Value help dialog - Single range selection

2. Multi Selection

Users can select multiple items and ranges in range selection cases:

2.1 Multi Item and Multi Range Selection

For selection of multiple items and multiple ranges, the value help dialog is opened by clicking the value help icon of the input field. The icon tab bar with the Select From List tab and the Define Conditions tab are displayed.

Use the Select From List tab to select multiple items. Use the Define Conditions tab to select and exclude ranges. Both are added as tokens to the selected/excluded items row at the bottom of the screen.

Value help dialog - Multi item selection
Value help dialog - Multi item selection
Value help dialog - Multi range selection
Value help dialog - Multi range selection

2.2 Multi Range Selection

For selection of multiple ranges, the value help dialog is opened by clicking the value help icon of the input field.

In this case only, the content of the Define Conditions tab is displayed. The icon tab bar is hidden and the selected/excluded item row is displayed.

Value help dialog - Multiple range selection
Value help dialog - Multiple range selection

Selected/Excluded Items Row

  • Each item that is selected from the result list on the Select From List tab is displayed as a token in the selected item row.
  • Each range that is selected or excluded on the Define Conditions tab is displayed as a token in the selected/excluded item row.

Guidelines

Dialog Title

The dialog title differs for multiple and single selection:

  • For multiple items combined with multiple range selection, show <BO Name>. For example, Company.
  • For single item selection, show Select: <BO Name>. For example, Select: Company.
  • For single range selection, show Define Condition: <BO Name>. For example, Define Condition: Company.
  • For multiple range selection, show Define Conditions: <BO Name>. For example, Define Conditions: Company.

Advanced Search

If necessary, also provide value help for fields offered in the advanced search. However, do not provide the full value help dialog for the ID and description fields of the business object that is being selected. For these two fields, make sure that the value help icon opens only the Define Conditions screen (range selection).

Example: In a value help dialog for selecting the customer, do not provide full value help for the Customer ID and Customer Name fields.

Try to use the value help in combination with a suggest.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Value Help Dialog

The value help dialog is a UI pattern that helps the user find and select single and multiple values. The user can also define and select multiple ranges. The value help dialog is generally called from an input field or a multi-input field by clicking the selection icon (value help icon) of the input field.

Usage

Use the value help dialog if:

  • The user needs to use different attributes (such as city, company name, and so on) to find an object.
  • The user is searching within a data set containing more than 200 items.
  • The user needs to define and select ranges and exclusions.

Responsiveness

The behavior of the value help dialog on a phone differs from its behavior on a tablet or desktop device. Both the navigation and the positioning of the selection area differ depending on the device.

Size S – Value help dialog
Size S – Value help dialog
Size M – Value help dialog
Size M – Value help dialog
Size L – Value help dialog
Size L – Value help dialog

Components

The value help dialog contains the following components:

  • Header bar
  • Icon tab bar and list control
  • Search template (optional)
  • Basic search
  • Items row (selected items, excluded items)
  • Footer toolbar
  • Include/exclude areas for range selection

Header Bar (1)

The header bar contains the dialog title. For guidelines on the dialog title, see the Guidelines section of this article.

Icon Tab Bar on Tablet/Desktop and List Control on Phone (2)

Depending on the device, the following controls are used to display the content of the value help dialog:

  • Smartphones: The start dialog provides a list (sap.m.List) with the standard list items (sap.m.StandardListItemSelect from List and
    Define Conditions to navigate between the different dialogs.
  • Tablet and desktop devices: The value help dialog contains an icon tab bar (sap.m.IconTabBar) to navigate between the Select from List and the Define Conditions tab.

Search Template (3)

Search templates allow the user to display different or additional fields in the advanced search field and the results list. Depending on the use case, the user can switch between the different search templates in order to use different fields when searching. For example, the search template “Customer (by company code)” displays the additional field “Company code” in the advanced search and result list.

Basic Search (4)

It’s mandatory to display the basic search in the value help dialog. Position the basic search on the right of the search template control. If there’s no search template control, the basic search is displayed left-aligned.

Advanced Search (5)

  • The advanced search offers all columns of the result list.
  • The value help icon of the business object ID field and description field for the business object that opened the current value help dialog will open only the Define Conditions screen. The entire value help dialog is not shown in order to prevent endless loops. For example, the value help icon of the customer ID or description field in a Select: Customer value help dialog will navigate directly to the Define Conditions screen.

For implementation of the basic and advanced search, the filter bar (sap.ui.comp.filterbar.FilterBar) is used in advanced mode. Advanced mode differs from basic mode in the following ways:

  • There is no Filters link or a dialog to make additional filter fields visible. All filter fields/advanced search fields are added automatically to the advanced search area.
  • There is a toggle link to show and hide the advanced search.
  • On desktops, the advanced search should be expanded by default.
  • On tablets, the advanced search should be collapsed by default.

Result List (6)

  • You can prefill the result list of the value help dialog by default.
  • If you transferred values from the input field to the basic search field of the value help dialog, the results are filtered accordingly.
  • If available, display the ID and description of the business object in the first and second columns. Display additional information in the next columns.
  • We recommend a maximum of five columns in the results list.

Selected/Excluded Items Row (7)

The selected/excluded item row is displayed in the panel container (see panel for more information). Each item or range that is selected or excluded is displayed as a token in the selected or excluded item row.

  • On desktops, the selection area with the selected and excluded items row is expanded initially.
  • On tablets and phones, the selection area with the selected and excluded item row is collapsed initially.

Footer Toolbar (8)

The footer bar includes OK and Cancel buttons.

Include/Exclude Area for Range Selection (9)

In the Include and Exclude areas of the Define Conditions tab, you can define single and multiple ranges with the following operators:

  • Equal to
  • Between
  • Less than
  • Less than or equal to
  • Greater than
  • Greater than or equal to

Each range is displayed as a token in the selected or excluded item row.

Information
For information on how to manage leading and treading whitespace (blanks) when copying and pasting text into input controls, please see removing leading and trailing whitespace.

Behavior and Interaction

Basic and Advanced Search

  • The basic search (mandatory) and advanced search (optional) are triggered by clicking the Go button. The search results are shown in the result list.
  • If the input field where the user is coming from contains data, it is transferred to the basic search of the value help dialog and the results are filtered accordingly.
  • The basic search performs a search in all fields that are displayed in the advanced search and the result list.

Item and Range Selection

The user can select single and multiple items, as well as single and multiple ranges. Items and ranges can also be excluded.

1. Single Selection

A single item or a range can be selected in single selection cases:

Single Item Selection on Smartphones

For the selection of a single item, the value help dialog is opened by clicking the value help icon of the input field. The Select From List tab is then displayed. As soon as one item is selected, the value help dialog closes automatically.

Value help dialog – Single item selection on a smartphone
Value help dialog – Single item selection on a smartphone

Single Item Selection on Tablets and Desktops

For the selection of a single item, the value help dialog is opened by clicking the value help icon of the input field. In this case only, the content of the Select From List tab is displayed. The icon tab bar and the selected/excluded item row are hidden. As soon as one item is selected, the value help dialog closes automatically.

Value help dialog – Single item selection on desktop
Value help dialog – Single item selection on desktop

Single Range Selection on Smartphones

For the selection of a single range, the value help dialog is opened by clicking the value help icon of the input field. The Define Condition tab is then displayed.

Value help dialog – Single range selection on smartphone
Value help dialog – Single range selection on smartphone

Single Range Selection on Tablets and Desktops

For the selection of a single range, the value help dialog is opened by clicking the value help icon of the input field. In this case only, the content of the Define Conditions tab is displayed.

The icon tab bar and the selected/excluded item row are hidden. The Add and Delete icons for adding and deleting ranges are also hidden.

Value help dialog – Single range selection
Value help dialog – Single range selection

2. Multiselection

Users can select multiple items and ranges in range selection cases:

Multi-Item and Multi-Range Selection on Smartphones

For selection of multiple items and multiple ranges, the value help dialog is opened by clicking the value help icon of the input field. The start dialog is then displayed.

Use the Select From List tab to select multiple items. Use the Define Conditions tab to select and exclude ranges. Both are added as tokens to the selected/excluded items row on the bottom of the start dialog.

Value help dialog – Start dialog for multi-item and multi-range selection on smartphone
Value help dialog – Start dialog for multi-item and multi-range selection on smartphone
Value help dialog – Multi-item selection on smartphone
Value help dialog – Multi-item selection on smartphone
Value help dialog – Multi-item selection on smartphone
Value help dialog – Multi-item selection on smartphone
Value help dialog – Advanced search on smartphone
Value help dialog – Advanced search on smartphone

Multi-Item and Multi-Range Selection on Tablets and Desktops

For selection of multiple items and multiple ranges, the value help dialog is opened by clicking the value help icon of the input field. The icon tab bar with the Select From List tab and the Define Conditions tab are displayed.

Use the Select From List tab to select multiple items. Use the Define Conditions tab to select and exclude ranges. Both are added as tokens to the selected/excluded items row on the bottom of the screen.

Value help dialog – Multi-item and multi-range selection on desktop
Value help dialog – Multi-item and multi-range selection on desktop
Value help dialog – Multi-item and multi-range selection on desktop
Value help dialog – Multi-item and multi-range selection on desktop

3. Multi-Range Selection

Multi-Range Selection on Smartphones

For selection of multiple ranges, the value help dialog is opened by clicking the value help icon of the input field.

In this case only, the start dialog and the Define Conditions tab are displayed.

Value help dialog – Multi-range selection on smartphone
Value help dialog – Multi-range selection on smartphone

Multi-Range Selection on Tablets and Desktops

For selection of multiple ranges, the value help dialog is opened by clicking the value help icon of the input field.

In this case only, the content of the Define Conditions tab is displayed. The icon tab bar is hidden and the selected/excluded item row is displayed.

Value help dialog – Multi-range selection on desktop
Value help dialog – Multi-range selection on desktop

Selected/Excluded Items Row

  • Each item that is selected from the result list on the Select From List tab is displayed as a token in the selected item row.
  • Each range that is selected or excluded on the Define Conditions tab is displayed as a token in the selected/excluded item row.

Copying and Pasting Multiple Values

The Include and Exclude areas on the Define Conditions tab allow the user to enter multiple values (copied from clipboard) at once.

In both areas, the Value input field allows the user to paste more than one value into an input field. In this case, the condition row will be repeated with the previously selected condition and shows one value per row.

If there are more than 10 rows of conditions, pagination will be added to the screen, displaying a toolbar to allow the user to navigate back and forth between the different pages. A token will appear next to each pasted value on the selected/excluded items row at the bottom of the value help dialog.

Copying and pasting multiple values
Copying and pasting multiple values
Copying and pasting multiple values
Copying and pasting multiple values

Guidelines

Dialog Title

The dialog title differs depending on the device and whether multiple or single selection is used.

For smartphones:

  • Starting dialog: <BO Name>. For example, “Company”.
  • Select from list dialog: “Select from List”.
  • Advanced search dialog: “Advanced Search”
  • For single range selection: “Define Condition”.
  • For multiple range selection, show Define Conditions”.

For tablets and desktops:

  • For multiple items combined with multiple ranges selection, show <BO Name>. For example, “Company”.
  • For single item selection, show Select: <BO Name>. For example, “Select Company”.
  • For single range selection, display Define Condition: <BO Name>. For example, “Define Condition: Company”.
  • For multiple range selection, display Define Conditions: <BO Name>. For example, “Define Conditions: Company.

Advanced Search

If necessary, also provide value help for fields offered in the advanced search. However, do not provide the full value help dialog for the ID and description fields of the business object that is being selected. For these two fields, make sure that the value help icon opens only the Define Conditions screen (range selection).

For example, in a value help dialog for selecting the customer, do not offer full value help for the Customer ID and Customer Name fields. Instead, try to use the value help in combination with a helpful suggestion.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Value Help Dialog

The value help dialog is a UI pattern that helps the user find and select single and multiple values. The user can also define and select multiple ranges. The value help dialog is generally called from an input field or a multi-input field by clicking the selection icon (value help icon) of the input field.

Usage

Use the value help dialog if:

  • The user needs different attributes to find an object, such as the customer name, country, and city to search for a customer.
  • The user is searching in a data set with more than 200 items.
  • The user needs to define and select ranges and exclusions.

Do not use the value help dialog if:

  • Smartphones should be supported. In this case, use the select dialog (simple version of the value help dialog) instead by using the sap.m.SelectDialog control.

Responsiveness

The value help dialog control is currently not responsive and only available for desktop devices!
For smartphones, use the select dialog (sap.m.SelectDialog) as a simple version of the value help dialog.

Value help dialog - Size S
Value help dialog - Size S
Value help dialog - Size L
Value help dialog - Size L

Components

The value help dialog has two screens:

  • The main search screen
  • An embedded dialog for entering conditions
Value help dialog overview
Value help dialog overview

Users can navigate between the two screens using links in the header area (in-place navigation):

  • Define Conditions takes the user from the main search screen to the conditions screen.
  • Back to Search returns the user from the conditions screen to the main search screen.

The sections below describe how to implement the different components of the value help dialog.

Header Bar (1)

Dialog Title

  • Use the title format: Select: <BO Name>
    Example: “Select: Customer”
  • If you are using the optional search template feature in the value help dialog,  it is displayed in front of the basic search.

Define Conditions

On the Define Conditions screen, users can select multiple ranges and define exclusions. Depending on the use case, you can show or hide this link and corresponding page.

Basic Search (2)

  • It is mandatory to display the basic search on top of the screen
  • If the input field from where the user is coming from contains data, it is transferred to the basic search of the value help dialog
  • The basic search is searching in all fields which are displayed in the advanced search and the result list

Advanced Search (3)

  • Depending on the use case it is optional to show or hide the advanced search.
  • For implementation of the basic and advanced search the sap.ui.comp.filterbar.FilterBar will be used in advanced mode. The advanced mode overwrites the following standard behavior:
    • the text “dynamic selection” is replaced by “advanced search”
    • all filter fields are added to the advanced area
    • the restore button is hidden
    • the advanced area is expanded
  • Also offer all columns of the result list in the advanced search.
  • The value help icon of the business object ID field and description field for the business object, which has opened the current value help dialog, will open the Define Conditions screen only. The reason not to show the whole value help dialog is to prevent endless loops. For example: the value help icon of the customer ID or description field in a “select: customer” value help dialog will directly navigate to the Define Conditions screen.

Result List (4)

  • You can prefill the result list of the value help dialog by default . If you have transferred values from the input field to the basic search field of the value help dialog, the results are filtered accordingly.
  • If available, display ID and description of the business object in the first and second column. Display additional information after them. A maximum of 5 columns in the results list is recommended, less than 5 columns is always fine.

Selected/ Excluded Items Row (5)

Each item and range which is selected or excluded on the Define Conditions screen will be displayed as token in the selected/ excluded item row.

Footer Toolbar (6)

The footer bar will show an OK and Cancel button.

Behavior and Interaction

Basic and Advanced Search

The basic search (mandatory) and advanced search (optional) will be triggered by clicking the search button. The search results will be shown in the result list below the search area.

Item Selection

The user can select items out of the list. All selected items will appear as token in the selected items row.

Single Selection

A single item or a range can be selected in single selection cases:

For selection of a single item the value help dialog will be opened by clicking the value help icon of the input field. The Define Conditions link in the header bar, as well as the selected/ excluded item row will be hidden. As soon as one item is selected, the value help dialog will be closed automatically.

Value help dialog for single item selection
Value help dialog for single item selection

For selection of a single range, the Define Conditions screen will be opened by clicking the value help icon of the input field without the back navigation in the header bar.

Value help dialog for single range selection
Value help dialog for single range selection

Multi Selection

For multi selection it is possible to select more than one item, range and exclusion.

For selection of multiple items the value help dialog will be opened by clicking the value help icon of the input field. The Define Conditions link in the header will navigate to the Define Conditions screen.

Value help dialog for multiple selection
Value help dialog for multiple selection
Define multiple conditions
Define multiple conditions

Define and Select Ranges/ Exclusions

By clicking the Define Conditions link in the header bar, the Define Conditions screen will be displayed to define and select ranges as well as exclusions. Both will also be added to the selected/ excluded items row on the bottom of the screen.

Guidelines

If necessary, also provide value help for fields offered in the advanced search. However, do not provide the full value help dialog for the ID and description fields of the business object that is being selected. For these two fields, make sure that the value help icon only opens the Define Conditions screen (range selection).

Example: In a value help dialog for selecting the customer, do not offer full value help for the “Customer ID” and “Customer Name” fields.

Try to use the value help in combination with suggest.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Size of the Chart Container

The property “autoAdjustHeight” helps to correctly manage the sizes of charts contained in a chart container.

Size

The width and height of the chart container are never defined explicitly by the app. They are always set by the container itself.

  • The width of the chart container is always resized to spread 100% of the width of its parent.
  • The height of the chart container depends on the property “autoAdjustHeight“, as explained below.

Width

The chart container automatically sets the width of the charts to 100%, regardless of the width manually set to each individual chart. That means when using the chart container, the app cannot change the width of the charts.

Height

You can choose to have the height of the chart automatically adjusted by the chart container, depending on the property autoAdjustHeight.

Use of autoAdjustHeight = false

Always use autoAdjustHeight = false when the charts are embedded in a vertically scrolled page.

When autoAdjustHeight = false, the size of each chart needs to be set manually and the height of the chart container will adapt to the height of each chart.

  • For charts that scroll horizontally, use a height in pixel.
  • For charts that scroll vertically, use a height in pixel big enough so that there is no vertical scrolling.
Chart in a vertically-scrolled page
Chart in a vertically-scrolled page

Use of autoAdjustHeight = true

Always use autoAdjustHeight = true when the charts are embedded in a frame.

When autoAdjustHeight = true, the height of the chart container is set to 100% of its parent.

Each chart is automatically resized so that it uses 100% of the chart container.

No setting is required on the chart level, since everything is done automatically.

Chart in a frame
Chart in a frame

Please consider:

  • The property autoAdjustHeight = true only works correctly if the page property enableScrolling is set to false.
  • Frames can be coded with the SAPUI5 control FixFlex.

For more details refer to the resources below.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Bullet Chart – Color Use for Primary and Projected Values

This article provides guidelines for using color to indicate primary and projected values for bullet charts.

Default Colors

By default, the sequential palette is used.
For primary values, use the level @sapUiChartPaletteSequentialHueLight1 as described below.

Primary value @sapUiChartPaletteSequentialHue1Light1
Projected value @sapUiChartPaletteSequentialNeutralLight3
Primary value (sequential color) and projected value (neutral color) - Sequential palette
Primary value (sequential color) and projected value (neutral color) - Sequential palette

Colors for Primary Value

You can make use of different colors to differentiate between categories.

Primary Values Without Semantic Meaning

If the colors have no semantic meaning, but are just used to distinguish between categories, use the first hues of the sequential palette.

In this example, “Country 2” is set to green to highlight this category.

Primary value @sapUiChartPaletteSequentialHue1Light1
Primary value (highlighted) @sapUiChartPaletteSequentialHue2Light1
Projected value @sapUiChartPaletteSequentialNeutralLight3
Primary value (with different colors by category) and projected value (neutral color) - Sequential palette
Primary value (with different colors by category) and projected value (neutral color) - Sequential palette

Primary Values With Semantic Meaning

When using semantic colors for the primary value, use a neutral color for the projected value:

Primary value @sapUiChartPaletteSemanticBad / @sapUiChartPaletteSemanticGood / @sapUiChartPaletteSemanticCritical
Projected value @sapUiChartPaletteSemanticNeutralLight3
Primary value (semantic colors) and projected value (neutral color) - Semantic palette
Primary value (semantic colors) and projected value (neutral color) - Semantic palette

Primary Values With a Gap

By default, the semantic palette is used:

Primary value @sapUiChartPaletteSemanticNeutralDark1
Gap above comparison value @sapUiChartPaletteSemanticBad or @sapUiChartPaletteSemanticGood
Projected value @sapUiChartPaletteSemanticNeutralLight3
Primary value (neutral nolor) with gap above (semantic color) and projected value (neutral color) - Semantic palette
Primary value (neutral nolor) with gap above (semantic color) and projected value (neutral color) - Semantic palette

When showing projected values, avoid having gaps below the comparison value.

Don't
Primary value (neutral color) with gap below (semantic color) and projected value (neutral color) - Semantic palette
Primary value (neutral color) with gap below (semantic color) and projected value (neutral color) - Semantic palette

Primary Values With Additional Value

By default, the sequential palette is used.
Use the level @sapUiChartPaletteSequentialHueLight1 for primary values and additional values as described below.

Primary value @sapUiChartPaletteSequentialHue1Light1
Additional value @sapUiChartPaletteSequentialHue2Light1
Projected value @sapUiChartPaletteSequentialNeutralLight3
Primary value with additional value (sequential distinct colors) and projected value (neutral color) - Sequential palette
Primary value with additional value (sequential distinct colors) and projected value (neutral color) - Sequential palette

If the additional value represents something less important that doesn’t need to be clearly visible at first glance, you can use a lighter shade to represent the additional value.

For more information about shades, see color palettes.

Primary value @sapUiChartPaletteSequentialHue1
Additional value @sapUiChartPaletteSequentialHue1Light2
Projected value @sapUiChartPaletteSequentialNeutralLight3
Primary value with additional value (sequential distinct colors) and projected value (neutral color) - Sequential palette
Primary value with additional value (sequential distinct colors) and projected value (neutral color) - Sequential palette

When displaying two series of measures, each one with additional values, use two different colors to distinguish between the series.

Use a darker shade for the actual values and a lighter shade for the additional values.
For more information about shades, see color palettes.

Primary value @sapUiChartPaletteSequentialHue1 & @sapUiChartPaletteSequentialHue2
Additional value @sapUiChartPaletteSequentialHue1Light2 & @sapUiChartPaletteSequentialHue2Light2
Projected value @sapUiChartPaletteSequentialNeutralLight3
Primary value with additional value and projected value (2 series of measures) - Sequential palette
Primary value with additional value and projected value (2 series of measures) - Sequential palette

Colors for Projected Value

Projected Values With Semantic Colors

When using semantic colors for the projected value, use a neutral color for the primary value.

Never use semantic colors for both the primary and the projected value.

Primary value @sapUiChartPaletteSemanticNeutralDark1
Projected value @sapUiChartPaletteSemanticGoodLight3 or @sapUiChartPaletteSemanticBadLight3 or @sapUiChartPaletteSemanticCriticalLight3
Primary value (neutral color) and projected value (semantic colors) - Semantic palette
Primary value (neutral color) and projected value (semantic colors) - Semantic palette
Don't
Primary value (semantic color) and projected value (semantic color)
Primary value (semantic color) and projected value (semantic color)

Bullet Chart – Color Use for Primary Values

This article provides guidelines for using color to indicate primary values in bullet charts.

Primary Value Only

By default, the chart will automatically assign the first color of the qualitative palette to all the bars.

If the colors have no semantic meaning, but are just used to distinguish between categories, use the qualitative palette.

Use the colors from the qualitative palette in the prescribed order (blue first, green next, and so on), unless you have a good reason to defer from the default sequence.
In the example, “Country 2” is set to green to highlight this category.

 

Primary value - Qualitative palette
Primary value - Qualitative palette
Primary values only with different colors by category - Qualitative palette
Primary values only with different colors by category - Qualitative palette

Primary and Additional Values

By default, use the qualitative palette. Use the first color on the palette for the primary value and the second color for the additional value.

Primary value and additional value - Qualitative palette
Primary value and additional value - Qualitative palette

If you need another color for the additional value, you can assign it manually.

If the additional value represents something less important that doesn’t need to be clearly visible at first glance, you can use a lighter shade from the sequential palette to represent the additional value.

For more information about shades, see color palettes.

 

Primary value sapUiChartPaletteSequentialHue1
Additional value sapUiChartPaletteSequentialHue1Light2
Primary value and additional value - Sequential palette
Primary value and additional value - Sequential palette

If the sum of the primary value and the additional value is the most important information, then use the qualitative palette. Use the first color for the primary value and the second color for the additional value.

For more information about shades, see color palettes.

Primary value and additional value - Qualitative palette
Primary value and additional value - Qualitative palette

Semantic colors can be used to show how the primary value compares in regards to the comparison value.

Primary value sapUiChartPaletteSemanticBad / sapUiChartPaletteSemanticGood
Additional value sapUiChartPaletteSemanticNeutralLight2
Primary value (semantic color) and additional value (neutral color) - Semantic palette
Primary value (semantic color) and additional value (neutral color) - Semantic palette

Semantic colors can also be used to show how the sum of the values (primary plus additional value) compares in regards to the comparison value.
In order to do so, use a dark color for the primary value and a light color for the additional value.

Primary value sapUiChartPaletteSemanticBad / sapUiChartPaletteSemanticGood
Additional value sapUiChartPaletteSemanticBadLight2 / sapUiChartPaletteSemanticGoodLight2
Primary value (semantic color) and additional value (semantic color) - Semantic palette
Primary value (semantic color) and additional value (semantic color) - Semantic palette

Avoid using semantic colors for the additional value only. This is misleading in the context of a bullet chart where the main focus should be the comparison with the comparison value.

Don't
Primary value (neutral color) and additional value (semantic color) - Semantic palette
Primary value (neutral color) and additional value (semantic color) - Semantic palette

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • No links.

Color Use for Primary Values and Quantitative Ranges

This article provides guidelines for using color to indicate primary values and quantitative ranges.

Primary Values and Quantitative Ranges

By default, use the sequential palette.

Primary value @sapUiChartPaletteSequentialHue1Light1
Quantitative range values @sapUiChartPaletteSequentialNeutralLight1 & @sapUiChartPaletteSequentialNeutralLight2 & @sapUiChartPaletteSequentialNeutralLight3
Primary value (sequential color) and quantitative range (neutral colors)
Primary value (sequential color) and quantitative range (neutral colors)
Warning

Not available yet!

Primary Values with Gap and Quantitative Ranges

Define which semantic color you want for the part above the comparison value.

Primary value @sapUiChartPaletteSemanticNeutralDark1
Quantitative range values  @sapUiChartPaletteSemanticNeutralLight1 & @sapUiChartPaletteSemanticNeutralLight2 & @sapUiChartPaletteSemanticNeutralLight3
Gap primary value above comparison value  @sapUiChartPaletteSemanticBad or @sapUiChartPaletteSemanticGood
Primary value (neutral color) with gap (semantic color) and quantitative range (neutral colors)
Primary value (neutral color) with gap (semantic color) and quantitative range (neutral colors)
Warning

Not available yet!

Only show gaps above the comparison value. Displaying gaps below the comparison value makes it difficult to read the chart.

Don't
Primary value (neutral color) with gap (semantic colors) and quantitative range (neutral colors)
Primary value (neutral color) with gap (semantic colors) and quantitative range (neutral colors)

Primary Values with Semantic Colors

When using quantitative ranges, it is possible to use semantic colors for the primary value.

Primary value @sapUiChartPaletteSemanticBad / @sapUiChartPaletteSemanticGood / @sapUiChartPaletteSemanticCritical
Quantitative range values @sapUiChartPaletteSemanticNeutralLight1 & @sapUiChartPaletteSemanticNeutralLight2 & @sapUiChartPaletteSemanticNeutralLight3
Primary value (semantic colors) and quantitative range (neutral colors)
Primary value (semantic colors) and quantitative range (neutral colors)
Warning

Not available yet!

Primary Values with Additional Values and Quantitative Ranges

By default, use the sequential palette.
Use the level @sapUiChartPaletteSequentialHueLight1 for primary and additional values as described below.

Primary value @sapUiChartPaletteSequentialHue1
Additional value @sapUiChartPaletteSequentialHue2
Quantitative range values @sapUiChartPaletteSequentialNeutralLight1 & @sapUiChartPaletteSequentialNeutralLight2 & @sapUiChartPaletteSequentialNeutralLight3
Primary value and additional value (sequential colors) and quantitative range (neutral colors)
Primary value and additional value (sequential colors) and quantitative range (neutral colors)
Warning

Not available yet!

If the additional value represents something less important that doesn’t need to be clearly visible at first glance, you can use a lighter shade to represent the additional value.

For more information about shades, see color palettes.

 

Primary value @sapUiChartPaletteSequentialHue1
Additional value @sapUiChartPaletteSequentialHue1Light2
Quantitative range values @sapUiChartPaletteSequentialNeutralLight1 & @sapUiChartPaletteSequentialNeutralLight2 & @sapUiChartPaletteSequentialNeutralLight3
Primary value with additional value (1 sequential color and distinct lightness) and quantitative range (neutral colors)
Primary value with additional value (1 sequential color and distinct lightness) and quantitative range (neutral colors)
Warning

Not available yet!

Quantitative Ranges with Semantic Colors

If semantic colors are used for the quantitative ranges, use the neutral color for the primary value.

Primary value @sapUiChartPaletteSemanticNeutralDark1
Quantitative range values @sapUiChartPaletteSemanticBadLight3 & @sapUiChartPaletteSemanticCriticalLight3 & @sapUiChartPaletteSemanticGoodLight3
Primary value (neutral color) and quantitative ranges (semantic colors)
Primary value (neutral color) and quantitative ranges (semantic colors)
Warning

Not available yet!

Never use “good”, “critical” or “bad” colors for the primary values if semantic colors are also used for qualitative ranges.

Don't
Primary value (semantic colors) and quantitative range (semantic colors)
Primary value (semantic colors) and quantitative range (semantic colors)

Text

The text control is used to display text. It generally contains the text that developers want apps to display (property: text).

Text used within a form
Text used within a form

Usage

Use the text control if you want to display text inside a form, table, or any other content area. However, do not use this control together with labels.

Responsiveness

The text control is fully adaptive to all screen sizes. You can also set a specific width and overwrite the default value. The resizing behavior depends on the settings that the apps use for the text.

Properties

You can define whether the text should wrap or directly truncate (property: wrapping).

You can also define how often the text should wrap before it truncates (property: maxLines).

 

Note: The truncation indicator for multiple lines depends on the browser line clamping support. For browsers that support it, this will be shown as an ellipsis (…), whereas in other browsers, the overflowing text will just be cut off.

Text – Maximum line examples
Text – Maximum line examples

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Text (SAPUI5 samples)
  • Text (SAPUI5 API reference)

Text

The text control is used to display text. It generally contains the text that developers want apps to display (property: text).

Text used within a form
Text used within a form

Usage

Use the text control if you want to display text inside a form, table, or any other content area. However, do not use this control together with labels.

Responsiveness

The text control is fully adaptive to all screen sizes. You can also set a specific width and overwrite the default value. The resizing behavior depends on the settings that the apps use for the text.

Properties

You can define whether the text should wrap or directly truncate (property: wrapping).

You can also define how often the text should wrap before it truncates (property: maxLines).

 

Note: The truncation indicator for multiple lines depends on the browser line clamping support. For browsers that support it, this will be shown as ellipsis (…), whereas in other browsers, the overflowing text will just be cut off.

Text – Maximum line examples
Text – Maximum line examples

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Text (SAPUI5 samples)
  • Text (SAPUI5 API reference)

Label

A label is the name or title of a control or group of related controls.

Usage

Use the label control if:

  • You need a label for a control. We recommend that you always use labels for form controls.

Do not use the label control if:

  • You want to insert a heading in the column header of a table.
  • You want to use it as an alternative for the text control, such as in display-only forms; do not use the label to display the data.

Types

Required Labels

To indicate that a field is mandatory, you can set the property “required”. An asterisk will be automatically set in front of the label.

Note: A colon is automatically set in front of the label when used in forms.

Mandatory label in a form
Mandatory label in a form

Guidelines

  • Always use a label for form controls.
  • Use title case for labels.
  • Do not use a placeholder (input prompt) as a replacement for the label.
  • If a label is used within a form, the colon is set automatically; otherwise, you need to set it manually.
  • Do not use bold labels.

Exceptions

The layout can sometimes be simplified by using a placeholder instead of the label control. This exception can be applied in the following cases:

  • When the form pattern is easily understood, such as on a login screen. Since this screen consists of only two input controls (username and password), the labels do not have to be used.
  • When the form is extremely small and has fewer than three input fields, such as in messaging and small feedback forms.
  • In search fields. For more information, see search.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Label

A label is the name or title of a control or group of related controls.

Label
Label "Name:" in a form

Usage

Use the label control if:

  • You need a label for a control. We recommend that you always use labels for form controls.

Do not use the label control if:

  • You want to insert a heading in the column header of a table.
  • You want to use it as an alternative for the text control, such as in display-only forms; do not use the label to display the data.

Types

Required Labels

To indicate that a field is mandatory, you can set the property “required”. An asterisk will be automatically set in front of the label.

Note: A colon is automatically set in front of the label when used in forms.

Mandatory field (form - display mode)
Mandatory field (form - display mode)
Mandatory field (form - edit mode)
Mandatory field (form - edit mode)
Label
Label "Name:" in a form (display mode - horizontal layout)
Label
Label "Name:" in a form (edit mode - horizontal layout)
Label
Label "Name:" in a form (display mode - vertical layout)
Label
Label "Name:" in a form (edit mode - vertical layout)

Guidelines

  • Always use a label for form controls.
  • Use title case for labels.
  • Do not use a placeholder (input prompt) as a replacement for the label.
  • If a label is used within a form, the colon is set automatically; otherwise, you need to set it manually.
  • Do not use bold labels.

Exceptions

The layout can sometimes be simplified by using a placeholder instead of the label control. This exception can be applied in the following cases:

  • When the form pattern is easily understood, such as on a login screen. Since this screen consists of only two input controls (username and password), the labels do not have to be used.
  • When the form is extremely small and has fewer than three input fields, such as in messaging and small feedback forms.
  • In search fields. For more information, see search.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Label (SAPUI5 samples)
  • Label (SAPUI5 API reference)

Button

Buttons allow users to trigger an action – either by clicking on or tapping the button, or by pressing certain keys such as Enter or the space bar. 

Usage

Standard Buttons

Use buttons for typical actions, such as:

  • Create, Edit, Save
  • Approve, Reject
  • Accept, Decline
  • OK, Cancel

The different button styles are designed to give the appropriate feedback to users. Don’t use them for decoration purposes.

Standard buttons in a toolbar
Standard buttons in a toolbar
Standard buttons in the footer toolbar
Standard buttons in the footer toolbar

Segmented Buttons

If you want the user to select one option from a small group, offer a segmented button in the toolbar or footer toolbar.

For example:

  • Year, Month, Day
  • Small, Medium, Large
Segmented button in a toolbar
Segmented button in a toolbar
Segmented button in the footer toolbar
Segmented button in the footer toolbar

Toggle Buttons

Use toggle buttons in a toolbar or footer toolbar to activate or deactivate an object or element. You can also use toggle buttons to switch between different states.

Responsiveness

The buttons themselves are not responsive. The button text and position depend on the settings for the parent container. In a responsive container or control, the button text may become truncated, or the button may move to another position.

All three button types support the cozy and compact form factors. The compact form factor is used for apps running on a mouse and keyboard-operated device. For more information, check out the article on content density.

Types

Standard Button

Standard button
Standard button

Clicking or tapping a standard button triggers an action.

Toggle Button

Toggle button
Toggle button

Clicking or tapping a toggle button changes its state to “pressed”. The button returns to its initial state when the user clicks or taps it again. The toggle button is comparable to a checkbox control.

Segmented Button

Segmented button
Segmented button

A segmented button shows a group of options. When the user clicks or taps one of the options, it remains in a pressed state. The segmented button is comparable to a radio button group control.

Components

A button can contain an icon or a text. For more information about icons, check out the article on iconography.

Behavior and Interaction

Enabled, Hover, and Pressed

Buttons can be enabled or disabled. Enabled buttons can be clicked or tapped. They also have “hover” and “pressed” states that give feedback to the user.

Standard button behavior
Standard button behavior
Toggle button behavior
Toggle button behavior
Segmented button behavior
Segmented button behavior

Disabled

Disabled buttons are shown as inactive and cannot be clicked or tapped.

Disabled standard button
Disabled standard button
Disabled toggle button
Disabled toggle button
Disabled segmented button
Disabled segmented button

Styles

Standard Buttons

The appearance of a button can change depending on where it’s used (for example, in a toolbar, footer toolbar, popup, or dialog box).

Default
Default
Back
Back
Transparent
Transparent
Positive (property: type = accept)
Positive (property: type = accept)
Negative (property: type = reject)
Negative (property: type = reject)
Emphasized
Emphasized
Up
Up
Unstyled (not recommended). We advise against using unstyled buttons since you will need to add custom CSS. There are no default styles.
Unstyled (not recommended). We advise against using unstyled buttons since you will need to add custom CSS. There are no default styles.

Toggle Buttons

Default
Default
Transparent
Transparent

Segmented Buttons

No special styles apply to segmented buttons. As a result, they look almost the same as the default style for standard buttons.

Guidelines

  • Don’t combine an icon and text within one button.
  • Choose a button text that is short and meaningful.
  • Use imperative verbs for all actions; for example: Save, Cancel, Edit.
  • Keep in mind that the text can be up to 300% longer in other languages.
  • We don’t recommend using tooltips since they are only visible on desktop devices. However, you can use tooltips for icon buttons.
  • For icon buttons, make sure the default accessibility text for the icon is correct for your use case. If not, define app-specific accessibility text.
  • If an action button is temporarily inactive, use the disabled status.
  • If you need to show the number of items that will be affected by the action of the button, you can add the number in brackets. For example, Edit (3).

Exceptions

Segmented Button

By default, the control for segmented buttons calculates the button width and applies it to all buttons within the group. You can change this by setting the width for individual buttons.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation


  • No links

Button

Buttons allow users to trigger an action – either by clicking on or tapping the button, or by pressing certain keys such as Enter or the space bar. 

Usage

Standard Buttons

Use buttons for typical actions, such as:

  • Create, Edit, Save
  • Approve, Reject
  • Accept, Decline
  • OK, Cancel

The different button styles are designed to give the appropriate feedback to users. Don’t use them for decoration purposes.

Standard buttons in a toolbar
Standard buttons in a toolbar
Standard buttons in the footer toolbar
Standard buttons in the footer toolbar

Segmented Buttons

If you want the user to select one option from a small group, offer a segmented button in the toolbar or footer toolbar. For example:

  • Year, Month, Day
  • Small, Medium, Large
Segmented button in a toolbar
Segmented button in a toolbar
Segmented button in the footer toolbar
Segmented button in the footer toolbar

Toggle Buttons

Use toggle buttons in a toolbar or footer toolbar to activate or deactivate an object or element. You can also use toggle buttons to switch between different states.

Responsiveness

The buttons themselves are not responsive. The button text and position depend on the settings for the parent container. In a responsive container or control, the button text may become truncated, or the button may move to another position.

All three button types support the cozy and compact form factors. The compact form factor is used for apps running on a mouse and keyboard-operated device. For more information, check out the article on content density.

Types

Standard Button

Standard button
Standard button

Clicking or tapping a standard button triggers an action.

Toggle Button

Toggle button
Toggle button

Clicking or tapping a toggle button changes its state to “pressed”. The button returns to its initial state when the user clicks or taps it again. The toggle button is comparable to a checkbox control.

Segmented Button

Segmented button
Segmented button

A segmented button shows a group of options. When the user clicks or taps one of the options, it stays in a pressed state. The segmented button is comparable to a radio button group control.

Components

A button can contain an icon or a text. For more information about icons, check out the article on iconography.

Behavior and Interaction

Buttons can be enabled or disabled.

  • Enabled buttons can be clicked or tapped. They also have “hover” and “pressed” states that give feedback to the user.
  • Disabled buttons are shown as inactive and cannot be clicked or tapped.
Button behavior
Button behavior

Styles

Standard Buttons

The appearance of a button can change depending on where it’s used (for example, in a toolbar, footer toolbar, popup, or dialog box).

Default
Default
Back
Back
Transparent
Transparent
Positive (property: type = accept)
Positive (property: type = accept)
Negative (property: type = reject)
Negative (property: type = reject)
Emphasized
Emphasized

Toggle Buttons

Default
Default
Transparent
Transparent

Segmented Buttons

No special styles apply to segmented buttons. As a result, they look almost the same as the default style for standard buttons.

Guidelines

  • Don’t combine an icon and text within one button.
  • Choose a button text that is short and meaningful.
  • Use imperative verbs for all actions; for example: Save, Cancel, Edit.
  • Keep in mind that the text can be up to 300% longer in other languages.
  • We don’t recommend using tooltips since they are only visible on desktop devices. However, you can use tooltips for icon buttons.
  • For icon buttons, make sure the default accessibility text for the icon is correct for your use case. If not, define app-specific accessibility text.
  • If an action button is temporarily inactive, use the disabled status.
  • If you need to show the number of items that will be affected by the action of the button, you can add the number in brackets. For example, Edit (3).

Exceptions

Segmented Button

By default, the control for segmented buttons calculates the button width and applies it to all buttons within the group. You can change this by setting the width for individual buttons.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation


  • No links

Slider

A slider is a control that enables the user to adjust values in a specified numerical range.

Slider in an input list item
Slider in an input list item

Usage

Use the slider to change values with graphical support.

Responsiveness

The slider itself is not responsive. It adjusts to the responsiveness of its parent container by recalculating and resizing the width of the control.

The slider supports the cozy and compact form factors. The compact form factor is used for apps that run on a mouse and keyboard operated device.

Types

Only a horizontal slider is available.

Behavior and Interaction

Changing the Value

  • If the slider is editable, the hand cursor appears when the grip is hovered.
  • The slider can be changed when the grip is adjusted via drag and drop.
  • The grip can be moved with or without increments based on the predefined steps.
  • The slider can be changed by clicking or tapping the bar. The grip then moves to this new position.

Styles

The slider can be shown with or without a progress bar. By default, the progress bar is shown.

Examples

Slider without progress bar
Slider without progress bar
Slider with progress bar
Slider with progress bar

Properties

  • The step property must be positive. If a negative number is provided, the default value 1 is used instead.
  • The minimum, maximum, and value properties can be decimals (float values). The slider automatically sets the minimum value to 0 and maximum value to 100 by default.
  • The width of the control can be provided in %, em, px, and all possible CSS units. The slider automatically sets the width of the slider to 100% by default.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation

Button

Buttons allow users to trigger an action – either by clicking on or tapping the button, or by pressing certain keys such as Enter or the space bar. 

Usage

Standard Buttons

Use buttons for typical actions, such as:

  • Create, Edit, Save
  • Approve, Reject
  • Accept, Decline
  • OK, Cancel

The different button styles are designed to give the appropriate feedback to users. Don’t use them for decoration purposes.

Standard buttons in a toolbar
Standard buttons in a toolbar
Standard buttons in the footer toolbar
Standard buttons in the footer toolbar

Segmented Buttons

If you want the user to select one option from a small group, offer a segmented button in the toolbar or footer toolbar.

For example:

  • Year, Month, Day
  • Small, Medium, Large
Segmented button in a toolbar
Segmented button in a toolbar
Segmented button in the footer toolbar
Segmented button in the footer toolbar

Toggle Buttons

Use toggle buttons in a toolbar or footer toolbar to activate or deactivate an object or element. You can also use toggle buttons to switch between different states.

Responsiveness

The buttons themselves are not responsive. The button text and position depend on the settings for the parent container. In a responsive container or control, the button text may become truncated, or the button may move to another position.

All three button types support the cozy and compact form factors. The compact form factor is used for apps running on a mouse and keyboard-operated device. For more information, check out the article on content density.

Types

Standard Button

Standard button
Standard button

Clicking or tapping a standard button triggers an action.

Toggle Button

Toggle button
Toggle button

Clicking or tapping a toggle button changes its state to “pressed”. The button returns to its initial state when the user clicks or taps it again. The toggle button is comparable to a checkbox control.

Segmented Button

Segmented button
Segmented button

A segmented button shows a group of options. When the user clicks or taps one of the options, it remains in a pressed state. The segmented button is comparable to a radio button group control.

Components

A button can contain an icon or a text. For more information about icons, check out the article on iconography.

Behavior and Interaction

Enabled, Hover, and Pressed

Buttons can be enabled or disabled. Enabled buttons can be clicked or tapped. They also have “hover” and “pressed” states that give feedback to the user.

Standard button behavior
Standard button behavior
Toggle button behavior
Toggle button behavior
Segmented button behavior
Segmented button behavior

Disabled

Disabled buttons are shown as inactive and cannot be clicked or tapped.

Disabled standard button
Disabled standard button
Disabled toggle button
Disabled toggle button
Disabled segmented button
Disabled segmented button

Styles

Standard Buttons

The appearance of a button can change depending on where it’s used (for example, in a toolbar, footer toolbar, popup, or dialog box).

Default
Default
Back
Back
Transparent
Transparent
Positive (property: type = accept)
Positive (property: type = accept)
Negative (property: type = reject)
Negative (property: type = reject)
Emphasized
Emphasized

Toggle Buttons

Default
Default
Transparent
Transparent

Segmented Buttons

No special styles apply to segmented buttons. As a result, they look almost the same as the default style for standard buttons.

Guidelines

  • Don’t combine an icon and text within one button.
  • Choose a button text that is short and meaningful.
  • Use imperative verbs for all actions; for example: Save, Cancel, Edit.
  • Keep in mind that the text can be up to 300% longer in other languages.
  • We don’t recommend using tooltips since they are only visible on desktop devices. However, you can use tooltips for icon buttons.
  • For icon buttons, make sure the default accessibility text for the icon is correct for your use case. If not, define app-specific accessibility text.
  • If an action button is temporarily inactive, use the disabled status.
  • If you need to show the number of items that will be affected by the action of the button, you can add the number in brackets. For example, Edit (3).

Exceptions

Segmented Button

By default, the control for segmented buttons calculates the button width and applies it to all buttons within the group. You can change this by setting the width for individual buttons.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation


  • No links

Date Picker

The date picker lets users select a localized date using touch, mouse, or keyboard input. It consists of two parts: the date input field and the date picker.

Use this control if the user needs to enter a single date or a date range. The control also allows users to navigate directly from one month or year to another.

Usage

Use the date picker if:

  • You need a range and know that your user is a power user who has to input lots of data. If the keyboard is the primary device used for navigating the app, use two input fields. This allows the user to quickly jump from field to field. By selecting a date in one of the fields, the other field should know what is selected and jump to the same selection.

Responsiveness

The date picker provides responsive behavior that allows for simple operation on all devices. It is smaller in compact mode and provides a touch-friendly size in cozy mode.

With one click on the input field, the date picker opens in full screen. To close the window, the user can select a date (which triggers the close event), or click Cancel without selecting a date.

Date picker on a smartphone
Date picker on a smartphone
Date picker on a desktop
Date picker on a desktop

Components

The date picker has two components: the date input field and the date picker button. On all devices users can either use the input field to type a date or use the date picker button to open the date picker calendar.

Date picker with input field and button
Date picker with input field and button

Date Input Field

In the input field, the user can enter a date directly or select it using the date picker. The system validates the entry and provides the user with feedback. You can also show placeholder text in the field.

Date Picker

With the date picker, the user can see a day view, month view, or year view. The current day and the selected date are highlighted. The calendar week is also visible in the day view. The calendar closes when a final day is selected. The user can click or tap the arrows to navigate to the previous and the next day, month, or year view depending on the current view.

The selected date is shown with a blue background. The current day is indicated with a purple border.

Date picker with selected date and the current date
Date picker with selected date and the current date
Clickable areas of the date picker
Clickable areas of the date picker

Behavior and Interaction

Selecting a Date

The user selects a date by clicking or tapping the date. After the user selects a day, the calendar closes and the date appears in the date input field.

Clickable areas
Clickable areas

Clicking or tapping the arrow shows the next day, month, or year view.

Navigating to the next month
Navigating to the next month

If the current month is clicked, the view changes to the month view and the user can change the month.

Switching to month view
Switching to month view

By clicking on a month, the user changes the month and the view changes to the day view.

Selecting another month
Selecting another month

The user can similarly change the year. By clicking the current year, the view changes to the year view. After the user selects a year, the view changes back to the day view.

Switching to year view
Switching to year view

After the user selects a year, the view changes back to the day view. The date in the date input field stays the same until the user selects a new date.

Selecting another year
Selecting another year

Guidelines

Date Formats

Long Date Format

Use the long date format for master list/object list item/title and object header/title. Here are some examples:

  • English (US): January 16, 2022
  • German (DE): 16. Januar 2022
  • Danish (DK): 16. Jan. 2022

Short Date Format

Use the short date format for master list/object list item/list of object attributes if space is a concern. For example, you might need to save space if there is a label with the date. Here are some examples of the short date format:

  • English (US): 1/16/22
  • German (DE): 16.01.22
  • Japanese (JP): 22/01/16

Relative and Medium Date Format

If appropriate, use a relative format for master list/object list item/list of object status. For example: today, 1 day ago, 2 days ago, and so on up to 6 days ago. After 6 days, use an absolute date with the medium format.

Use the absolute date with medium format in the corresponding object header in the details area. Do not use the relative format here.

Responsive Table

If screen space is at a premium (for example, if there are too many columns), use the short date format in table cells. Otherwise use the medium format.

If you need to display the weekday, use the full format. For example:

  • English (US): Sunday, January 16, 2022
  • German (DE): Sonntag, 16. Januar 2022
  • French (FR): dimanche 16 janvier 2022

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Message Toast

A message toast (sap.m.MessageToast) is a small, non-disruptive popup for success messages that disappears automatically after a few seconds.

Usage

Use the message toast if:

  • You want to display a short success message.
  • You do not want to interrupt users while they are performing an action.
  • You want to confirm a successful action.

Do not use the message toast if:

  • You want to display an error or warning message.
  • You want to interrupt users while they are performing an action.
  • You want to make sure that users read the message before they leave the page.
  • You want users to be able to copy, for example, a transaction number to their clipboard. (In this case, show a success message dialog.)

Responsiveness

The message toast has the same behavior on all devices. However, you can adjust the width of the control, for example, for use on a desktop device.

Layout

Position

The message toast is always positioned horizontally centered at the bottom of the screen.

Message Toast example
Message Toast example

Width

The basic width of the toast is 15 rem. Although the app can adjust the width, we recommend setting it to no more than 35 rem.

When success messages are longer, however, the width should be adjusted to create a message box that is easily readable, for example, on a desktop device.

Behavior and Interaction

Choreography

Following a successful response from the system, the message text is displayed in the message toast. The message toast fades in based on the time defined by the app, and then fades out again automatically.

Navigation

In some scenarios, the action that triggers the message toast also triggers navigation to a different page (for example, a save or submit action).

In this case, always navigate first, and then show the message toast on the target page.

Only show the message toast on the same page if no navigation is involved.

Exception: success message dialog

If you need to interrupt users before they leave the current page, do not use the message toast, but a message box (sap.m.MessageBox, property: type – success), which includes a success message. For more information, see message box.

Information
Only put a success message in a message box if your use case requires explicit user interaction, such as copying an order number to process it. We strongly recommend always considering a message toast instead.

Animation

The message does not react to the user’s focus. Therefore, you must set the duration of the animation according to the length of the message text: the longer the text, the longer the duration should  be.

Properties

The app can change the values of the following properties. Only change the values if it makes sense; otherwise, keep the recommended standard values.

Position: We recommend that you always use the initial value (horizontally centered, vertically at the bottom of the page).

Duration: The standard value is 3,000 ms. You can adjust the duration to more than 3,000 ms, but do not use less than 3,000 ms.

Width: The standard width is 15 em. You can choose a larger width, but do not use more than 35 em.

Offset: Do not change this value.

Auto-close: True/false

Example of a message toast
Example of a message toast

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Message Toast

A message toast (sap.m.MessageToast) is a small, non-disruptive popup for success messages that disappears automatically after a few seconds.

Usage

Use the message toast if:

  • You want to display a short success message.
  • You do not want to interrupt users while they are performing an action.
  • You want to confirm a successful action.

Do not use the message toast if:

  • You want to display an error or warning message.
  • You want to interrupt users while they are performing an action.
  • You want to make sure that users read the message before they leave the page.
  • You want users to be able to copy, for example, a transaction number to their clipboard. (In this case, show a success message dialog.)

Responsiveness

The message toast has the same behavior on all devices. However, you can adjust the width of the control, for example, for use on a desktop device.

Layout

Position

The message toast is always positioned horizontally centered at the bottom of the screen.

Message toast on a tablet device
Message toast on a tablet device

Width

The basic width of the toast is 15 rem. Although the app can adjust the width, we recommend setting it to no more than 35 rem.

When success messages are longer, however, the width should be adjusted to create a message box that is easily readable, for example, on a desktop device.

Behavior and Interaction

Choreography

Following a successful response from the system, the message text is displayed in the message toast. The message toast fades in based on the time defined by the app, and then fades out again automatically.

Navigation

In some scenarios, the action that triggers the message toast also triggers navigation to a different page (for example, a save or submit action).

In this case, always navigate first, and then show the message toast on the target page.

Only show the message toast on the same page if no navigation is involved.

Exception: success message dialog

If you need to interrupt users before they leave the current page, do not use the message toast, but a message box (sap.m.MessageBox, property: type – success), which includes a success message. For more information, see message box.

Information
Only put a success message in a message box if your use case requires explicit user interaction, such as copying an order number to process it. We strongly recommend always considering a message toast instead.

Animation

The message does not react to the user’s focus. Therefore, you must set the duration of the animation according to the length of the message text: the longer the text, the longer the duration should  be.

Properties

The app can change the values of the following properties. Only change the values if it makes sense; otherwise, keep the recommended standard values.

Position: We recommend that you always use the initial value (horizontally centered, vertically at the bottom of the page).

Duration: The standard value is 3,000 ms. You can adjust the duration to more than 3,000 ms, but do not use less than 3,000 ms.

Width: The standard width is 15 em. You can choose a larger width, but do not use more than 35 em.

Offset: Do not change this value.

Auto-close: True/false

Example of a message toast
Example of a message toast

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Date Picker

The date picker lets users select a localized date using touch, mouse, or keyboard input. It consists of two parts: the date input field and the date picker.

Use this control if the user needs to enter a single date or a date range. The control also allows users to navigate directly from one month or year to another.

Usage

Use the date picker if:

  • You need a range and know that your user is a power user who has to input lots of data. If the keyboard is the primary device used for navigating the app, use two input fields. This allows the user to quickly jump from field to field. By selecting a date in one of the fields, the other field should know what is selected and jump to the same selection.

Responsiveness

The date picker provides responsive behavior that allows for simple operation on all devices. It is smaller in compact mode and provides a touch-friendly size in cozy mode.

With one click on the input field, the date picker opens in full screen. To close the window, the user can select a date (which triggers the close event), or click Cancel without selecting a date.

Date picker on a smartphone or tablet
Date picker on a smartphone or tablet
Date picker on a desktop
Date picker on a desktop

Components

The date picker has two components: the date input field and the date picker button. On all devices, users can either use the input field to type a date or use the date picker button to open the date picker calendar.

Date picker with input field and button
Date picker with input field and button

Date Input Field

In the input field, the user can enter a date directly or select it using the date picker. The system validates the entry and provides the user with feedback. You can also show placeholder text in the field.

Date Picker

With the date picker, the user can see a day view, month view, or year view. The current day and the selected date are highlighted. The calendar week is also visible in the day view. The calendar closes when a final day is selected. The user can click or tap the arrows to navigate to the previous and the next day, month, or year view depending on the current view.

The selected date is shown with a blue background. The current day is indicated with a purple border.

Date picker with selected date and the current date
Date picker with selected date and the current date
Clickable areas of the date picker
Clickable areas of the date picker

Behavior and Interaction

Selecting a Date

The user selects a date by clicking or tapping the date.

The user selects a date by tapping or clicking
The user selects a date by tapping or clicking

Clicking or tapping the arrow shows the next day, month, or year view.

Date picker selection - view by day, month, or year
Date picker selection - view by day, month, or year

After the user selects a day, the calendar closes and the date appears in the date input field.

Selecting a day
Selecting a day

If the current month is clicked, the user can change the month. By clicking on a month, the view changes to the day view.

Selecting another month
Selecting another month

After the user selects a day, the year view closes and the date appears in the date input field.

Selecting a date
Selecting a date

By clicking the current year, the view changes to the year view. After the user selects a year, the view changes to the day view.

Changing view (day, month, year)
Changing view (day, month, year)

Guidelines

Date Formats

Long Date Format

Use the long date format for master list/object list item/title and object header/title. Here are some examples:

  • English (US): January 16, 2022
  • German (DE): 16. Januar 2022
  • Danish (DK): 16. Jan. 2022

Short Date Format

Use the short date format for master list/object list item/list of object attributes if space is a concern. For example, you might need to save space if there is a label with the date. Here are some examples of the short date format:

  • English (US): 1/16/22
  • German (DE): 16.01.22
  • Japanese (JP): 22/01/16

Relative and Medium Date Format

If appropriate, use a relative format for master list/object list item/list of object status. For example: today, 1 day ago, 2 days ago, and so on up to 6 days ago. After 6 days, use an absolute date with the medium format.

Use the absolute date with medium format in the corresponding object header in the details area. Do not use the relative format here.

Responsive Table

If screen space is at a premium (for example, if there are too many columns), use the short date format in table cells. Otherwise use the medium format.

If you need to display the weekday, use the full format. For example:

  • English (US): Sunday, January 16, 2022
  • German (DE): Sonntag, 16. Januar 2022
  • French (FR): dimanche 16 janvier 2022

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Icon Tab Bar

The icon tab bar comprises a series of tabs that each link to a different content area or view. You can use it for navigation within an object, or as a filter.

There are two key use cases:

  • You want to let users navigate between different object facets in the object details area.
  • You want to let users filter lists, and give them the option of calling up the entire list, or only items with a specific attribute.

In both cases, the user switches between tab pages by clicking or tapping the respective tab.

Usage

Use the icon tab bar if:

  • Your business objects need to show many facets at the same time.
  • You want to allow the user to browse through these facets.
  • You need a prominent or very visual filter on top of a list.
  • You have clear-cut process steps that need to be visualized.

Do not use the icon tab bar if:

  • An object type has only one tab in the entire app.
    In this case, we recommend removing the icon tab bar and placing the content on the same level as the object header. To replace the tab label, add a headline with the same text (for example, Information).

Responsiveness

The icon tab bar stretches horizontally, and soon runs out of space on small screens. It responds to limited space by offering a scrolling mechanism.

Icon tab bar - Size S
Icon tab bar - Size S
Icon tab bar - Size M
Icon tab bar - Size M
Icon tab bar - Size L/XL
Icon tab bar - Size L/XL

Layout

The horizontal layout of the icon tab bar never changes. The tabs always appear side by side. However, there are several types of tab bar to choose from. These are described in detail below.

Types

You can use the icon tab bar control to build the following types of tab bars:

  • Text only
  • Icon tabs
  • Tabs as filters
  • Tabs as process steps

Text Only

The text-only variant is one of the most common types. It allows longer labels, and can also display counters above the text to indicate the number of items on the tab page.

Unlike all other tab variants, the labels do not get truncated. The full text is always shown. As a result, you need to ensure that your labels are not too long. They should still be easy to read on smaller screens.

If you use text-only tabs, make sure to put the titles in UPPERCASE LETTERS.

Icon tab bar – Types – Text and counters
Icon tab bar – Types – Text and counters
Icon tab bar – Types – Text only
Icon tab bar – Types – Text only

Icon Tabs

Icon tabs are also common tab types. These round tabs can be populated with any icon from the SAP icon font.

Labels are optional. If you decide to use labels, use them for all tabs. You can use counters as needed.

Please note that labels under the tabs do not wrap. Texts that exceed the width of the tab are truncated.

If you need longer labels, put the labels next to the tabs. If they are still truncated, use shorter labels or text-only tabs.

Icon tab bar – Types – Icons and labels (vertical)
Icon tab bar – Types – Icons and labels (vertical)
Icon tab bar – Types – Icons and labels (horizontal)
Icon tab bar – Types – Icons and labels (horizontal)
Icon tab bar – Types – Icons only
Icon tab bar – Types – Icons only

Tabs as Filters

If you build the tab bar as a filter, it can contain two parts:

  • An “all” tab on the left (optional)
    This tab shows the total number of items, and describes the type of item (for example, 14 Products).
  • Tabs for specific filters
    Use the tab text to indicate the filter attribute.
    We strongly recommend showing a counter on every tab.
Icon tab bar – Types – Filter
Icon tab bar – Types – Filter

Tabs as Process Steps

You can also use the tab bar to depict a process. In this case, each tab stands for one step.

To connect the steps, use the triple-chevron icon ( ) from the SAP icon font (technical name: process).

Icon tab bar – Types – Process
Icon tab bar – Types – Process
Developer Hint
When using icons with labels, add a comment in the properties file to make editors and translators aware that space is limited.
Example: Label for icon tab on detail screen. Max 14-16 characters (depending on character width).

Test whether your labels and their translations are displayed in full, and do not get truncated.

Behavior and Interaction

Clicking/Tapping on Tab

To navigate through the views, the user clicks or taps the tabs.

Optional behavior: If the user clicks or taps a tab that’s already open, the container collapses. It opens again when the user clicks any tab.

Use the “expandable” property to specify whether users can collapse the tab container (default = true):

  • Let users collapse the container if there is additional content below the container, and the information inside the container is not always needed.
  • If there is no content below the tab container, set the “expandable” property to false.

The “expandable” property controls the initial state of the container. Do not change the default state (true).

Styles

The two different styles (round tabs and text only) are discussed in the Types section.

In both cases, you can use colors to give users additional orientation.

Information
Do not use colors for decoration only.  Colors should always indicate a status that is relevant to the user.
When using colors, stick to the semantic colors provided by visual design. Do not hard-code color values. Instead, use the CSS extension “Less”.

Only use semantic colors if it is important for users to know that they need to take action (for example, to indicate errors or critical situations requiring action). Otherwise, use the neutral default colors.

This example shows a process where one step is indicating an error. Since the other tabs have neutral colors, it is clear that they do not contain errors. Coloring them green to show that they are OK is unnecessary, and would reduce the severity of the red tab.

Styles – Colors
Styles – Colors

Guidelines

Apply the styles as follows:

  • If you have only a few tabs that can easily be visualized with icons, use the icon-only tabs. If a short description is needed, use icons and labels.
  • If the content cannot easily be identified by an icon, use the text-only tabs. They also allow for longer labels.
  • If you are using the icon tab bar in the object view floorplan, use either icon-only or text-only tabs.
    Icons only:
    Use this option if you have only 4–5 tabs that can be very clearly identified by their icon.
    Text only:
    Use this option if you have more than 4–5 tabs, or if there are no clear icons to represent the content.

If you use icon tabs, ensure the following:

  • The icons clearly identify the content on the tab pages.
  • Each tab has a unique icon. Do not use the same icon more than once.
  • The icons are easily distinguishable.
  • Any icons between tabs (for example, as separators or connectors) are visually very different from the icons on the tabs.
  • Either all or none of the icons have labels.

Implement the focus as follows:

  • By default, show the first tab as open. This is the initial setting provided by the control.
    Note: Technically, you can also override the initial selection. However, this is not recommended.
  • Later on, you can show the tab last selected by the user.

Additional guidelines:

  • Do not display a loading indicator above the tab while the number for the item count is loading.
  • Handle empty tabs as follows:
    • Hide tabs that do not contain any information, and do not allow the user to create content..
    • Show empty tabs that allow users to create content, such as notes or attachments.
  • Only use the tab bars to navigate between tabs. Do not use any other navigation links. For example, do not let users click an item in tab A that takes them to tab B.
    This type of cross-navigation inside a container is confusing, and cannot be handled by the back navigation.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation

Icon Tab Bar

The icon tab bar comprises a series of tabs that each link to a different content area or view. You can use it for navigation within an object, or as a filter.

There are two key use cases:

  • You want to let users navigate between different object facets in the object details area.
  • You want to let users filter lists, and give them the option of calling up the entire list, or only items with a specific attribute.

In both cases, the user switches between tab pages by clicking or tapping the respective tab.

Usage

Use the icon tab bar if:

  • Your business objects need to show many facets at the same time.
  • You want to allow the user to browse through these facets.
  • You need a prominent or very visual filter on top of a list.
  • You have clear-cut process steps that need to be visualized.

Do not use the icon tab bar if:

  • An object type has only one tab in the entire app.
    In this case, we recommend removing the icon tab bar and placing the content on the same level as the object header. To replace the tab label, add a headline with the same text (for example, Information).

Responsiveness

The icon tab bar stretches horizontally, and soon runs out of space on small screens. It responds to limited space by offering a scrolling mechanism.

Icon tab bar - Size S
Icon tab bar - Size S
Icon tab bar - Size M
Icon tab bar - Size M
Icon tab bar - Size L/XL
Icon tab bar - Size L/XL

Layout

The horizontal layout of the icon tab bar never changes. The tabs always appear side by side. However, there are several types of tab bar to choose from. These are described in detail below.

Types

You can use the icon tab bar control to build the following types of tab bars:

  • Text only
  • Icon tabs
  • Tabs as filters
  • Tabs as process steps

Text Only

The text-only variant is one of the most common types. It allows longer labels, and can also display counters above the text to indicate the number of items on the tab page.

Unlike all other tab variants, the labels do not get truncated. The full text is always shown. As a result, you need to ensure that your labels are not too long. They should still be easy to read on smaller screens.

If you use text-only tabs, make sure to put the titles in UPPERCASE LETTERS.

Icon tab bar – Types – Text and counters
Icon tab bar – Types – Text and counters
Icon tab bar – Types – Text only
Icon tab bar – Types – Text only

Icon Tabs

Icon tabs are also common tab types. These round tabs can be populated with any icon from the SAP icon font.

Labels are optional. If you decide to use labels, use them for all tabs. You can use counters as needed.

Please note that labels under the tabs do not wrap. Texts that exceed the width of the tab are truncated.

If you need longer labels, put the labels next to the tabs. If they are still truncated, use shorter labels or text-only tabs.

Icon tab bar – Types – Icons and labels (vertical)
Icon tab bar – Types – Icons and labels (vertical)
Icon tab bar – Types – Icons and labels (horizontal)
Icon tab bar – Types – Icons and labels (horizontal)
Icon tab bar – Types – Icons only
Icon tab bar – Types – Icons only

Tabs as Filters

If you build the tab bar as a filter, it can contain two parts:

  • An “all” tab on the left (optional)
    This tab shows the total number of items, and describes the type of item (for example, 14 Products).
  • Tabs for specific filters
    Use the tab text to indicate the filter attribute.
    We strongly recommend showing a counter on every tab.
Icon tab bar – Types – Filter
Icon tab bar – Types – Filter

Tabs as Process Steps

You can also use the tab bar to depict a process. In this case, each tab stands for one step.

To connect the steps, use the triple-chevron icon ( ) from the SAP icon font (technical name: process).

Icon tab bar – Types – Process
Icon tab bar – Types – Process
Developer Hint
When using icons with labels, add a comment in the properties file to make editors and translators aware that space is limited.
Example: Label for icon tab on detail screen. Max 14-16 characters (depending on character width).

Test whether your labels and their translations are displayed in full, and do not get truncated.

Behavior and Interaction

Clicking/Tapping on Tab

To navigate through the views, the user clicks or taps the tabs.

Optional behavior: If the user clicks or taps a tab that’s already open, the container collapses. It opens again when the user clicks any tab.

Use the “expandable” property to specify whether users can collapse the tab container (default = true):

  • Let users collapse the container if there is additional content below the container, and the information inside the container is not always needed.
  • If there is no content below the tab container, set the “expandable” property to false.

The “expandable” property controls the initial state of the container. Do not change the default state (true).

Styles

The two different styles (round tabs and text only) are discussed in the Types section.

In both cases, you can use colors to give users additional orientation.

Information
Do not use colors for decoration only.  Colors should always indicate a status that is relevant to the user.
When using colors, stick to the semantic colors provided by visual design. Do not hard-code color values. Instead, use the CSS extension “Less”.

Only use semantic colors if it is important for users to know that they need to take action (for example, to indicate errors or critical situations requiring action). Otherwise, use the neutral default colors.

This example shows a process where one step is indicating an error. Since the other tabs have neutral colors, it is clear that they do not contain errors. Coloring them green to show that they are OK is unnecessary, and would reduce the severity of the red tab.

Styles – Colors
Styles – Colors

Guidelines

Apply the styles as follows:

  • If you have only a few tabs that can easily be visualized with icons, use the icon-only tabs. If a short description is needed, use icons and labels.
  • If the content cannot easily be identified by an icon, use the text-only tabs. They also allow for longer labels.
  • If you are using the icon tab bar in the object view floorplan, use either icon-only or text-only tabs.
    Icons only:
    Use this option if you have only 4–5 tabs that can be very clearly identified by their icon.
    Text only:
    Use this option if you have more than 4–5 tabs, or if there are no clear icons to represent the content.

If you use icon tabs, ensure the following:

  • The icons clearly identify the content on the tab pages.
  • Each tab has a unique icon. Do not use the same icon more than once.
  • The icons are easily distinguishable.
  • Any icons between tabs (for example, as separators or connectors) are visually very different from the icons on the tabs.
  • Either all or none of the icons have labels.

Implement the focus as follows:

  • By default, show the first tab as open. This is the initial setting provided by the control.
    Note: Technically, you can also override the initial selection. However, this is not recommended.
  • Later on, you can show the tab last selected by the user.

Additional guidelines:

  • Do not display a loading indicator above the tab while the number for the item count is loading.
  • Handle empty tabs as follows:
    • Hide tabs that do not contain any information, and do not allow the user to create content..
    • Show empty tabs that allow users to create content, such as notes or attachments.
  • Only use the tab bars to navigate between tabs. Do not use any other navigation links. For example, do not let users click an item in tab A that takes them to tab B.
    This type of cross-navigation inside a container is confusing, and cannot be handled by the back navigation.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation

Icon Tab Bar

The icon tab bar comprises a series of tabs that each link to a different content area or view. You can use it for navigation within an object, or as a filter.

There are two key use cases:

  • You want to let users navigate between different object facets in the object details area.
  • You want to let users filter lists, and give them the option of calling up the entire list, or only items with a specific attribute.

In both cases, the user switches between tab pages by clicking or tapping the respective tab.

Usage

Use the icon tab bar if:

  • Your business objects need to show many facets at the same time.
  • You want to allow the user to browse through these facets.
  • You need a prominent or very visual filter on top of a list.
  • You have clear-cut process steps that need to be visualized.

Do not use the icon tab bar if:

  • An object type has only one tab in the entire app.
    In this case, we recommend removing the icon tab bar and placing the content on the same level as the object header. To replace the tab label, add a headline with the same text (for example, Information).

Responsiveness

The icon tab bar stretches horizontally, and soon runs out of space on small screens. It responds to limited space by offering a scrolling mechanism.

Responsiveness - Icon tabs
Responsiveness - Icon tabs
Responsiveness - Text tabs
Responsiveness - Text tabs

Layout

The horizontal layout of the icon tab bar never changes. The tabs always appear side by side. However, there are several types of tab bar to choose from. These are described in detail below.

Types

You can use the icon tab bar control to build the following types of tab bars:

  • Text only
  • Icon tabs
  • Tabs as filters
  • Tabs as process steps

Text Only

The text-only variant is one of the most common types. It allows longer labels, and can also display counters above the text to indicate the number of items on the tab page.

Unlike all other tab variants, the labels do not get truncated. The full text is always shown. As a result, you need to ensure that your labels do not become too long. They should still be easy to read on smaller screens.

If you use text-only tabs, make sure that the property UpperCase is disabled and that you enter the labels in title case (Example: Approval Flow).

Types ─ Text-only without counters
Types ─ Text-only without counters
Types ─ Text-only with inline counters
Types ─ Text-only with inline counters

Counters and Text Tabs

If counters are used, set the property HeaderMode to Inline so the counters appear in brackets after the labels.

Please do not use the old layout that shows the counters on top of the labels (Headermode = Standard).

Do
Counters – Inline Layout ('HeaderMode' set to 'Inline')
Counters – Inline Layout ('HeaderMode' set to 'Inline')
Don't
Counters – Old Layout ('HeaderMode' set to 'Standard')
Counters – Old Layout ('HeaderMode' set to 'Standard')

Icon Tabs

Icon tabs are also common tab types. These round tabs can be populated with any icon from the SAP icon font.

Labels are optional. If you decide to use labels, use them for all tabs. You can use counters as needed.

Please note that starting with SAPUI5 version 1.40, you should only use the horizontal type of label (icon and label side by side).

If your labels get truncated, consider using shorter labels or text tabs (without icons), as text tabs cannot get truncated.

Types - Icons with counters
Types - Icons with counters
Types - Icons with counters and labels
Types - Icons with counters and labels
Types - Icon-only
Types - Icon-only

Tabs as Filters

If you build the tab bar as a filter, it can comprise two parts:

  • An “all” tab on the left (optional)
    This tab shows the total number of items, and describes the type of item (for example, 189 Products).
  • Tabs for specific filters
    Use the tab text to indicate the filter attribute.
    We strongly recommend showing a counter on every tab.
Types - Filter
Types - Filter

Tabs as Process Steps

You can also use the tab bar to depict a process. In this case, each tab stands for one step.

To connect the steps, use the triple-chevron icon ( ) from the SAP icon font (technical name: process).

Types - Process
Types - Process
Developer Hint
When using icons with labels, add a comment in the properties file to make editors and translators aware that space is limited.
Example: Label for icon tab on detail screen. Max 14-16 characters (depending on character width).

Test whether your labels and their translations are displayed in full, and do not get truncated.

Behavior and Interaction

Clicking/Tapping on Tab

To navigate through the views, the user clicks or taps the tabs.

Optional behavior: If the user clicks or taps a tab that’s already open, the container collapses. It opens again when the user clicks any tab.

Use the “expandable” property to specify whether users can collapse the tab container (default = true):

  • Let users collapse the container if there is additional content below the container, and the information inside the container is not always needed.
  • If there is no content below the tab container, set the “expandable” property to false.

The “expandable” property controls the initial state of the container. Do not change the default state (true).

Styles

The two different styles (round tabs and text only) are discussed in the Types section.

In both cases, you can use colors to give users additional orientation.

Information
Do not use colors for decoration only.  Colors should always indicate a status that is relevant to the user.
When using colors, stick to the semantic colors provided by visual design. Do not hard-code color values. Instead, use the CSS extension “Less”.

Only use semantic colors if it is important for users to know that they need to take action (for example, to indicate errors or critical situations requiring action). Otherwise, use the neutral default colors.

This example shows a process where one step is indicating an error. Since the other tabs have neutral colors, it is clear that they do not contain errors. Coloring them green to show that they are OK is unnecessary, and would reduce the severity of the red tab.

Styles - Colors
Styles - Colors

Guidelines

Apply the styles as follows:

  • If you have only a few tabs that can easily be visualized with icons, use the icon-only tabs. If a short description is needed, use icons and labels.
  • If the content cannot easily be identified by an icon, use the text-only tabs. They also allow for longer labels.
  • If you are using the icon tab bar in the object view floorplan, use either icon-only or text-only tabs.
    Icons only:
    Use this option if you have only 4–5 tabs that can be very clearly identified by their icon.
    Text only:
    Use this option if you have more than 4–5 tabs, or if there are no clear icons to represent the content. Set the property HeaderMode to Inline.
Do
Counters – Inline Layout ('HeaderMode' set to 'Inline')
Counters – Inline Layout ('HeaderMode' set to 'Inline')
Don't
Counters – Old Layout ('HeaderMode' set to 'Standard')
Counters – Old Layout ('HeaderMode' set to 'Standard')

If you use icon tabs, ensure the following:

  • The icons clearly identify the content on the tab pages.
  • Each tab has a unique icon. Do not use the same icon more than once.
  • The icons are easily distinguishable.
  • Any icons between tabs (for example, as separators or connectors) are visually very different from the icons on the tabs.
  • Either all or none of the icons have labels.

Implement the focus as follows:

  • By default, show the first tab as open. This is the initial setting provided by the control.
    Note: Technically, you can also override the initial selection. However, this is not recommended.
  • Later on, you can show the tab last selected by the user.

Additional guidelines:

  • Do not display a loading indicator above the tab while the number for the item count is loading.
  • Handle empty tabs as follows:
    • Hide tabs that do not contain any information, and do not allow the user to create content..
    • Show empty tabs that allow users to create content, such as notes or attachments.
  • Only use the tab bars to navigate between tabs. Do not use any other navigation links. For example, do not let users click an item in tab A that takes them to tab B.
    This type of cross-navigation inside a container is confusing, and cannot be handled by the back navigation.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation

Icon Tab Bar

The icon tab bar comprises a series of tabs that each link to a different content area or view. You can use it for navigation within an object, or as a filter.

There are two key use cases:

  • You want to let users navigate between different object facets in the object details area.
  • You want to let users filter lists, and give them the option of calling up the entire list, or only items with a specific attribute.

In both cases, the user switches between tab pages by clicking or tapping the respective tab.

Usage

Use the icon tab bar if:

  • Your business objects need to show many facets at the same time.
  • You want to allow the user to browse through these facets.
  • You need a prominent or very visual filter on top of a list.
  • You have clear-cut process steps that need to be visualized.

Do not use the icon tab bar if:

  • An object type has only one tab in the entire app.
    In this case, we recommend removing the icon tab bar and placing the content on the same level as the object header. To replace the tab label, add a headline with the same text (for example, Information).

Responsiveness

The icon tab bar stretches horizontally, and soon runs out of space on small screens. It responds to limited space by offering a scrolling mechanism.

Icon tab bar - Size S
Icon tab bar - Size S
Icon tab bar - Size M
Icon tab bar - Size M
Icon tab bar - Size L/XL
Icon tab bar - Size L/XL

Layout

The horizontal layout of the icon tab bar never changes. The tabs always appear side by side. However, there are several types of tab bar to choose from. These are described in detail below.

Types

You can use the icon tab bar control to build the following types of tab bars:

  • Text only
  • Icon tabs
  • Tabs as filters
  • Tabs as process steps

Text Only

The text-only variant is one of the most common types. It allows longer labels, and can show counters above the text to indicate the number of items on the tab page.

If you use text-only tabs, make sure to put the titles in UPPER CASE LETTERS.

Icon tab bar - Types - Text and counters
Icon tab bar - Types - Text and counters
Icon tab bar - Types - Text only
Icon tab bar - Types - Text only

Icon Tabs

Icon tabs are also common tab types. These round tabs can be populated with any icon from the SAP icon font.

Labels are optional. If you decide to use labels, use them for all tabs. You can use counters as needed.

Please note that labels under the tabs do not wrap. Texts that exceed the width of the tab are truncated.

If you need longer labels, put the labels next to the tabs. If they are still truncated, use shorter labels or text-only tabs.

Icon tab bar – Types – Icons and labels (vertical)
Icon tab bar – Types – Icons and labels (vertical)
Icon tab bar – Types – Icons and labels (horizontal)
Icon tab bar – Types – Icons and labels (horizontal)
Icon tab bar – Types – Icons only
Icon tab bar – Types – Icons only

Tabs as Filters

If you build the tab bar as a filter, it can contain two parts:

  • An “all” tab on the left (optional)
    This tab shows the total number of items, and describes the type of item (for example, 14 Products).
  • Tabs for specific filters
    Use the tab text to indicate the filter attribute.
    We strongly recommend showing a counter on every tab.
Icon tab bar – Types – Filter
Icon tab bar – Types – Filter

Tabs as Process Steps

You can also use the tab bar to depict a process. In this case, each tab stands for one step.

To connect the steps, use the triple-chevron icon ( ) from the SAP icon font (technical name: process).

Icon tab bar – Types – Process
Icon tab bar – Types – Process
Developer Hint
When using icons with labels, add a comment in the properties file to make editors and translators aware that space is limited.
Example: Label for icon tab on detail screen. Max 14-16 characters (depending on character width).

Test whether your labels and their translations are displayed in full, and do not get truncated.

Behavior and Interaction

Clicking/Tapping on Tab

To navigate through the views, the user clicks or taps the tabs.

Optional behavior: If the user clicks or taps a tab that’s already open, the container collapses. It opens again when the user clicks any tab.

Use the “expandable” property to specify whether users can collapse the tab container (default = true):

  • Let users collapse the container if there is additional content below the container, and the information inside the container is not always needed.
  • If there is no content below the tab container, set the “expandable” property to false.

The “expandable” property controls the initial state of the container. Do not change the default state (true).

Styles

The two different styles (round tabs and text only) are discussed in the Types section.

In both cases, you can use colors to give users additional orientation.

Information
Do not use colors for decoration only.  Colors should always indicate a status that is relevant to the user.
When using colors, stick to the semantic colors provided by visual design. Do not hard-code color values. Instead, use the CSS extension “Less”.

Only use semantic colors if it is important for users to know that they need to take action (for example, to indicate errors or critical situations requiring action). Otherwise, use the neutral default colors.

This example shows a process where one step is indicating an error. Since the other tabs have neutral colors, it is clear that they do not contain errors. Coloring them green to show that they are OK is unnecessary, and would reduce the severity of the red tab.

Styles – Colors
Styles – Colors

Guidelines

Apply the styles as follows:

  • If you have only a few tabs that can easily be visualized with icons, use the icon-only tabs. If a short description is needed, use icons and labels.
  • If the content cannot easily be identified by an icon, use the text-only tabs. They also allow for longer labels.
  • If you are using the icon tab bar in the object view floorplan, use either icon-only or text-only tabs.
    Icons only:
    Use this option if you have only 4–5 tabs that can be very clearly identified by their icon.
    Text only:
    Use this option if you have more than 4–5 tabs, or if there are no clear icons to represent the content.

If you use icon tabs, ensure the following:

  • The icons clearly identify the content on the tab pages.
  • Each tab has a unique icon. Do not use the same icon more than once.
  • The icons are easily distinguishable.
  • Any icons between tabs (for example, as separators or connectors) are visually very different from the icons on the tabs.
  • Either all or none of the icons have labels.

Implement the focus as follows:

  • By default, show the first tab as open. This is the initial setting provided by the control.
    Note: Technically, you can also override the initial selection. However, this is not recommended.
  • Later on, you can show the tab last selected by the user.

Additional guidelines:

  • Do not display a loading indicator above the tab while the number for the item count is loading.
  • Handle empty tabs as follows:
    • Hide tabs that do not contain any information, and do not allow the user to create content..
    • Show empty tabs that allow users to create content, such as notes or attachments.
  • Only use the tab bars to navigate between tabs. Do not use any other navigation links. For example, do not let users click an item in tab A that takes them to tab B.
    This type of cross-navigation inside a container is confusing, and cannot be handled by the back navigation.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation

Date/Time Input

The date/time input control allows users to select a date, time, or both, from a corresponding pad. However, SAP Fiori uses this control for time input only. Do not use this control for entering a date or a combination of date and time (see the Usage section below).

Usage

Use the date/time input if:

  • You want a control to enter the time.

Do not use the date/time input if:

  • You want a control to enter a date. In this case, use the date picker as it supports keyboard entry.

Responsiveness

The date/time input runs on all form factors and therefore works on all devices.

Date/time input opens in a popup for size S (for a smartphone, for example)
Date/time input opens in a popup for size S (for a smartphone, for example)
Date/time input in a popover for sizes M and L (for a tablet or desktop, for example)
Date/time input in a popover for sizes M and L (for a tablet or desktop, for example)

Behavior and Interaction

Selecting a Time

By clicking or tapping the date/time input field, the date/time input appears. The user can select a time by rotating the wheel.

When the user clicks the OK button, the popup/popover closes and the selected date and/or time appears in the input field. When the user clicks Cancel, the action is aborted and the input field remains unchanged.

Date time/input – Closed
Date time/input – Closed
Date/time input – Open
Date/time input – Open

Scrolling

Within the date/time input popup/popover, each area can be scrolled individually by dragging and dropping the areas.

Date/time input – Scrolling by swiping
Date/time input – Scrolling by swiping

When moving to the respective area in a desktop scenario, the user can also scroll by clicking the arrows that appear on hover. In a touch scenario, this functionality is disabled.

Date/time input – Scrolling by arrows
Date/time input – Scrolling by arrows

Guidelines

Set the default values of the date/time input carefully to avoid unnecessary scrolling. It often makes sense to set the default for the time to the full or half hour, setting the minutes to 00 or 30. Sometimes it may also make sense to use the current time.

Properties

The control may only be used to display and select a time or a duration (property: type).

Exceptions

If you need a control to enter a date/time combination and two separate fields are not enough, you can use the date/time input to support this combined input.

Keyboard Entry

Keyboard entry is not supported by the date/time input control.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Text Area

The text area is an input control that allows the user to enter multiple lines of text.

Usage

Use the text area if you want to enter multiple lines of text. If you only want to enter a single line of text, use the text control instead.

Responsiveness

You can set the maximum number of lines to be shown. The amount of text depends on the size of the screen. On smaller screens, the user can scroll down the text area to see the entire text. To indicate that the text continues, the control shows only half of the last line. This also applies for mobile devices.

Components

The text area allows the user to enter multiple lines of text.

Text area – Default
Text area – Default
Text area – Active state
Text area – Active state

You can also set a placeholder (input prompt), which is inherited from sap.m.InputBase; property: placeholder. The prompt text is displayed when the input field is empty.

Text area – With placeholder (input prompt)
Text area – With placeholder (input prompt)

Behavior and Interaction

Entering and Removing Text

The user can enter text. As soon as the user starts typing, the placeholder disappears. It appears again when the user removes all the content from the text area.

You can also limit the number of characters a user can enter. In this case, the text area prevents the user from adding more characters than the maximum value defined (property: maxLength).

Text area – Limited
Text area – Limited

Making Text Non-Editable

You can set the text area to non-editable (property: editable). This mode still allows the user to scroll to the text that is currently hidden.

Text area – Not editable
Text area – Not editable

Disabling Text

You can also set the text area to disabled. In this case, the user cannot edit or scroll (property: enabled).

Text area – Not enabled
Text area – Not enabled
Text area – Not enabled (long text)
Text area – Not enabled (long text)

Styles

As with any other input control, you can validate the fields and show the result as a value state (property: valueState) of the control (such as error, warning, success, or none).

For more information, see form field validation.

Text area – Error state
Text area – Error state

Guidelines

  • As with other input fields in general, use a label. For exceptions regarding label usage, see the Exceptions section of the label article.
  • The placeholder does not substitute a label. It can be used to give an additional hint, but should not repeat the label in long format.
  • If you want to use the text area with a fixed text length (property: maxLength), for example, inside a form, use text beside the text area to indicate the number of remaining characters and a countdown while the user is typing.

Properties

  • You can provide a width by using the average character width (property: cols).
  • You can define the height of the text area via the lines of text (property: rows). You can also set the height of the text area (property: height), which would override the rows property.
  • Additionally, you can define the type of wrapping for the text area (property: wrapping) as Soft, Hard, or Off.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Text Area

The text area is an input control that allows the user to enter multiple lines of text.

Usage

Use the text area if you want to enter multiple lines of text. If you only want to enter a single line of text, use the text control instead.

Responsiveness

You can set the maximum number of lines to be shown. The amount of text depends on the size of the screen. On smaller screens, the user can scroll down the text area to see the entire text. To indicate that the text continues, the control shows only half of the last line. This also applies for mobile devices.

Components

The text area allows the user to enter multiple lines of text.

Text area – Default
Text area – Default
Text area – Active state
Text area – Active state

You can also set a placeholder (input prompt), which is inherited from sap.m.InputBase; property: placeholder. The prompt text is displayed when the input field is empty.

Text area – With placeholder (input prompt)
Text area – With placeholder (input prompt)

Behavior and Interaction

Entering and Removing Text

The user can enter text. As soon as the user starts typing, the placeholder disappears. It appears again when the user removes all the content from the text area.

You can also limit the number of characters a user can enter. In this case, the text area prevents the user from adding more characters than the maximum value defined (property: maxLength).

Text area – Limited
Text area – Limited

Making Text Non-Editable

You can set the text area to non-editable (property: editable). This mode still allows the user to scroll to the text that is currently hidden.

Text area – Not editable
Text area – Not editable

Disabling Text

You can also set the text area to disabled. In this case, the user cannot edit or scroll (property: enabled).

Text area – Not enabled
Text area – Not enabled
Text area – Not enabled (long text)
Text area – Not enabled (long text)
Information
For information on how to manage leading and treading whitespace (blanks) when copying and pasting text into input controls, please see removing leading and trailing whitespace.

Styles

As with any other input control, you can validate the fields and show the result as a value state (property: valueState) of the control (such as error, warning, success, or none).

For more information, see form field validation.

Text area – Error state
Text area – Error state

Guidelines

  • As with other input fields in general, use a label. For exceptions regarding label usage, see the Exceptions section of the label article.
  • The placeholder does not substitute a label. It can be used to give an additional hint, but should not repeat the label in long format.
  • If you want to use the text area with a fixed text length (property: maxLength), for example, inside a form, use text beside the text area to indicate the number of remaining characters and a countdown while the user is typing.

Properties

  • You can provide a width by using the average character width (property: cols).
  • You can define the height of the text area via the lines of text (property: rows). You can also set the height of the text area (property: height), which would override the rows property.
  • Additionally, you can define the type of wrapping for the text area (property: wrapping) as Soft, Hard, or Off.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Text Area

The text area is an input control that allows the user to enter multiple lines of text.

Usage

Use the text area if you want to enter multiple lines of text. If you only want to enter a single line of text, use the text control instead.

Responsiveness

You can set the maximum number of lines to be shown. The amount of text depends on the size of the screen. On smaller screens, the user can scroll down the text area to see the entire text. To indicate that the text continues, the control shows only half of the last line. This also applies for mobile devices.

Components

The text area allows the user to enter multiple lines of text.

Text area – Default
Text area – Default
Text area – Active state
Text area – Active state

You can also set a placeholder (input prompt), which is inherited from sap.m.InputBase; property: placeholder. The prompt text is displayed when the input field is empty.

Text area – With placeholder (input prompt)
Text area – With placeholder (input prompt)
Text area – Selected state
Text area – Selected state
Information
For information on how to manage leading and treading whitespace (blanks) when copying and pasting text into input controls, please see removing leading and trailing whitespace.

Behavior and Interaction

Entering and Removing Text

The user can enter text. As soon as the user starts typing, the placeholder disappears. It appears again when the user removes all the content from the text area.

You can also limit the number of characters a user can enter. In this case, the text area prevents the user from adding more characters than the maximum value defined (property: maxLength).

Text area – Limited
Text area – Limited

Making Text Non-Editable

You can set the text area to non-editable (property: editable). This mode still allows the user to scroll to the text that is currently hidden.

Text area – Read-only
Text area – Read-only

Disabling Text

You can also set the text area to disabled. In this case, the user cannot edit or scroll (property: enabled).

Text area – Disabled state
Text area – Disabled state

Growing behavior

With SAPUI5 version 1.38, the text area control acquired a growing property. It gives the control the ability to automatically grow and shrink with its content while the user is typing.

The maximum height of the text area is configurable but should be defined properly, that is, according to the space where the control will be located.

Growing text area: The text is aligned to the top of the text area; A new line is added to the bottom of the text area.
Growing text area: The text is aligned to the top of the text area; A new line is added to the bottom of the text area.

Styles

As with any other input control, you can validate the fields and show the result as a value state (property: valueState) of the control (error, warning, success, or none).

For more information, see form field validation.

Text area – Warning state
Text area – Warning state
Text area – Error state
Text area – Error state

Guidelines

  • As with other input fields in general, use a label. For exceptions regarding label usage, see the Exceptions section of the label article.
  • The placeholder does not substitute a label. It can be used to give an additional hint, but should not repeat the label in long format.
  • If you want to use the text area with a fixed text length (property: maxLength), for example, inside a form, use text beside the text area to indicate the number of remaining characters and a countdown while the user is typing.
  • If you are applying the growing behavior of the text area, have in mind that its maximum height should not exceed the height of the screen.

Properties

  • You can provide a width by using the average character width (property: cols).
  • You can define the height of the text area via the lines of text (property: rows). You can also set the height of the text area (property: height), which would override the rows property.
  • Additionally, you can define the type of wrapping for the text area (property: wrapping) as Soft, Hard, or Off.
  • Since 1.38 the sap.m.TextArea has a growing property that enables text area’s height to change dynamically while the user is typing.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Message Box

The message box (sap.m.MessageBox) is a special dialog that allows you to display messages to the user. Compared to the message popover (sap.m.MessagePopover), you can use the message box to display messages that are not related to a field on the UI, such as technical errors.

Formulate messages in plain language (no code), describe the issue precisely, and suggest a constructive solution. Always help your user to recognize, diagnose, and recover from messages. Bear in mind that no message is always preferable to even a good message. When you design your apps, aim to prevent problems from occurring in the first place.

Usage

Use the message box if:

  • You want to display non-field-related messages.
  • You want to interrupt the user while he or she performs an action.
  • You want to display error, warning, success, confirmation, or information messages.
  • You need to interrupt the user for some other reason.
  • You need the user to acknowledge the message.
  • You need the user to make a decision.

Do not use the message box if:

  • You want to display a short success message. (Use a toast instead. For more information, see message toast.)
  • You can show the message directly in a form field.

Responsiveness

The sap.m.MessageBox control has the same responsive behavior as the sap.m.Dialog control. The message box should only be opened in modal mode. Its basic width is 25 em. For more information, see dialog.

Types

The following categories of messages are available:

  • Error
  • Warning
  • Success
  • Information
  • Confirmation

Error Message

Error messages can be triggered after the user has entered incorrect data or a system error has occurred. They should interrupt the user by displaying a dialog. A final action such as Submit cannot be carried out until the user has rectified the error.

Control: sap.m.MessageBox
Icon: sap-icon://message-error
Title: Error
Stretch: false (no full screen on all devices)

Error message box with one action
Error message box with one action
Error message box with two actions
Error message box with two actions

Text guidelines for an error message:

  • Do not just describe the problem; tell the user how to resolve it.
  • In the short text, speak the language of the end user. Do not include system or configuration details.
  • If the solution is more involved or technical, add a long text.
  • Do not repeat the short text in the long text. (They both appear together on the screen.)

Warning Message

Warning messages highlight potential issues, but the user can still continue. This includes unintended data loss scenarios.

Control: sap.m.MessageBox
Icon: sap-icon://message-warning
Title: Warning
Stretch: false (no full screen on all devices)

Use cases for warnings

a) No decision required: formulate the message as a statement.
Button(s): OK

Warning message box with OK button
Warning message box with OK button

b) Decision to continue required: formulate the message as a statement.

Button(s): OK, Cancel

Warning message with OK and Cancel buttons
Warning message with OK and Cancel buttons

c) Specific decision requried with one action

Use a relevant action button. The message may also be formulated as a question.
Button(s): <Action1>, Cancel

Warning message with action and Cancel buttons
Warning message with action and Cancel buttons

Success Message

Success messages give feedback to the user that an action has been executed. The user needs to acknowledge the message.

Control: sap.m.MessageBox
Icon: sap-icon://message-success
Title: Success
Stretch: false (no full screen on all devices)
Button(s): OK

Success message box
Success message box
Information
You should generally use a message toast (sap.m.MessageToast) to display success messages instead of a dialog (sap.m.Dialog).

Information Message

Information messages provide information the user needs to acknowledge, but that does not involve a decision. The message provides information that is useful and relevant, but never critical.

Control: sap.m.MessageBox
Icon: sap-icon://message-information
Title: Information
Stretch: false (no full screen on all devices)

Button(s): OK

Information message box
Information message box

Confirmation Message

Confirmation messages prompt users to confirm an action that they have triggered. The title of the message box already includes the action that has to be confirmed, such as an intended deletion or an approval.

Control: sap.m.MessageBox
Icon: sap-icon://message-question
Title: <action> (such as “Approve”, “Reject”, or “Delete”)
Stretch: false (no full screen on all devices)

Button(s): <Action>, Cancel

Confirmation message box – Approve
Confirmation message box – Approve
Confirmation message box – Reject
Confirmation message box – Reject

Delete Message

If the user clicks or taps Delete, display a “Delete” dialog that confirms the delete action.

Control: sap.m.MessageBox
Icon: sap-icon://message-warning
Title: Delete
Stretch: false (no full screen on all devices)

Button(s): Delete, Cancel

Delete message box
Delete message box

Components

Show Details button

The message displayed for the user should provide sufficient information to ensure that the user knows what happened.
A message box without an explicit details section should be sufficient.
Therefore, the Show Details link is only shown if detailed information is available that differs from the message text and is important for the user.

If details are available, they appear in a text area as part of the message box.

Show details button on a message dialog
Show details button on a message dialog
Message details within an sap.m.MessageBox
Message details within an sap.m.MessageBox

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Message Box

The message box (sap.m.MessageBox) is a special dialog that allows you to display messages to the user. Compared to the message popover (sap.m.MessagePopover), you can use the message box to display messages that are not related to a field on the UI, such as technical errors.

Formulate messages in plain language (no code), describe the issue precisely, and suggest a constructive solution. Always help your user to recognize, diagnose, and recover from messages. Bear in mind that no message is always preferable to even a good message. When you design your apps, aim to prevent problems from occurring in the first place.

Usage

Use the message box if:

  • You want to display non-field-related messages.
  • You want to interrupt the user while he or she performs an action.
  • You want to display error, warning, success, confirmation, or information messages.
  • You need to interrupt the user for some other reason.
  • You need the user to acknowledge the message.
  • You need the user to make a decision.

Do not use the message box if:

  • You want to display a short success message. (Use a toast instead. For more information, see message toast.)
  • You can show the message directly in a form field.

Responsiveness

The sap.m.MessageBox control has the same responsive behavior as the sap.m.Dialog control. The message box should only be opened in modal mode. Its basic width is 25 em. For more information, see dialog.

Types

The following categories of messages are available:

  • Error
  • Warning
  • Success
  • Information
  • Confirmation

Error Message

Error messages can be triggered after the user has entered incorrect data or a system error has occurred. They should interrupt the user by displaying a dialog. A final action such as Submit cannot be carried out until the user has rectified the error.

Control: sap.m.MessageBox
Icon: sap-icon://message-error
Title: Error
Stretch: false (no full screen on all devices)

Error message box with one action
Error message box with one action
Error message box with two actions
Error message box with two actions

Text guidelines for an error message:

  • Do not just describe the problem; tell the user how to resolve it.
  • In the short text, speak the language of the end user. Do not include system or configuration details.
  • If the solution is more involved or technical, add a long text.
  • Do not repeat the short text in the long text. (They both appear together on the screen.)

Warning Message

Warning messages highlight potential issues, but the user can still continue. This includes unintended data loss scenarios.

Control: sap.m.MessageBox
Icon: sap-icon://message-warning
Title: Warning
Stretch: false (no full screen on all devices)

Use cases for warnings

a) No decision required: formulate the message as a statement.
Button(s): OK

Warning message box with OK button
Warning message box with OK button

b) Decision to continue required: formulate the message as a statement.

Button(s): OK, Cancel

Warning message with OK and Cancel buttons
Warning message with OK and Cancel buttons

c) Specific decision requried with one action

Use a relevant action button. The message may also be formulated as a question.
Button(s): <Action1>, Cancel

Warning message with action and Cancel buttons
Warning message with action and Cancel buttons

Success Message

Success messages give feedback to the user that an action has been executed. The user needs to acknowledge the message.

Control: sap.m.MessageBox
Icon: sap-icon://message-success
Title: Success
Stretch: false (no full screen on all devices)
Button(s): OK

Success message box
Success message box
Information
You should generally use a message toast (sap.m.MessageToast) to display success messages instead of a dialog (sap.m.Dialog).

Information Message

Information messages provide information the user needs to acknowledge, but that does not involve a decision. The message provides information that is useful and relevant, but never critical.

Control: sap.m.MessageBox
Icon: sap-icon://message-information
Title: Information
Stretch: false (no full screen on all devices)

Button(s): OK

Information message box
Information message box

Confirmation Message

Confirmation messages prompt users to confirm an action that they have triggered. The title of the message box already includes the action that has to be confirmed, such as an intended deletion or an approval.

Control: sap.m.MessageBox
Icon: sap-icon://message-question
Title: <action> (such as “Approve”, “Reject”, or “Delete”)
Stretch: false (no full screen on all devices)

Button(s): <Action>, Cancel

Confirmation message box – Approve
Confirmation message box – Approve
Confirmation message box – Reject
Confirmation message box – Reject

Delete Message

If the user clicks or taps Delete, display a “Delete” dialog that confirms the delete action.

Control: sap.m.MessageBox
Icon: sap-icon://message-warning
Title: Delete
Stretch: false (no full screen on all devices)

Button(s): Delete, Cancel

Delete message box
Delete message box

Components

Show Details button

The message displayed for the user should provide sufficient information to ensure that the user knows what happened.
A message box without an explicit details section should be sufficient.
Therefore, the Show Details link is only shown if detailed information is available that differs from the message text and is important for the user.

If details are available, they appear in a text area as part of the message box.

Show details button on a message dialog
Show details button on a message dialog

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Date Range Selection

The control for selecting the date range is a single-field input control. Users can enter a localized date range using touch, mouse, or keyboard input, or by selecting a date range in the calendar. They can also navigate directly from one month or year to another.

Usage

Use the date range selection if:

  • You need a time range and know that your user is a power user who has to input lots of data. If the keyboard is the primary device used for navigating the app, use two input fields. This allows the user to quickly jump from field to field. By selecting a date in one of the fields, the other field should recognize the information and jump to the same selection.

Do not use the date range selection if:

  • You want to enter a date and a time. In this case, use the date picker or time picker instead.
  • The user’s primary goal is not to select ranges. If this is the case, use the simple date picker.

Responsiveness

The date range selection is fully responsive. It is smaller in compact mode and provides a touch-friendly size in cozy mode. For more information about cozy and compact modes, see the article on content density.

Date range selection (size S)
Date range selection (size S)
Date range selection (size L)
Date range selection (size L)

Components

The date range selection consists of two components: the date range input field and the date range picker.

The two clickable areas of the date range selection on all devices
The two clickable areas of the date range selection on all devices

Date Range Input Field

The user can type the date directly into the input field, or use the date picker. You can also show a prompt text in the field (property: placeholder). The system validates the date and gives the user feedback.

Clickable areas: The dates November 9–17 are selected, and November 27 is shown as the current day
Clickable areas: The dates November 9–17 are selected, and November 27 is shown as the current day

Date Range Picker

With the date range picker, the user can see a day view, month view, or year view. The current day and the selected date are highlighted. The calendar week is also visible in the day view. The calendar closes when a final day is selected. The user can click the arrows to view the previous and next days, months, or years (depending on the current view).

The selected date is shown with a blue background. The current day is indicated with a purple border in the calendar.

Date range selection
Date range selection

Behavior and Interaction

Selecting a Date Range

The user can type two dates into the date range input field or click the calendar icon to open the calendar and select a date. These two possibilities work for all devices – desktops, tablets, and smartphones.

Switch View

Clicking an arrow shows the next or previous day, month, or year.

Clicking the month shows an overview of all months.

If the current month is clicked, the user can change the month. When the user selects a month, the view changes to the day view.

By clicking the current year, the view changes to the year view. When the user selects a year, the view changes to the day view.

Selecting an End Date

When the user selects an end date, the calendar closes.

Selecting a Range

After the user selects a range, the calendar closes and the range appears in the date input field.

Entering Single Dates

The date range selection also allows the user to input single dates. The user can type one date into the input field, or select the same day as a start and end date in the calendar.

Styles

Delimiter

The delimiter visualizes the start and end date. If no delimiter is given, the app uses the one defined for the used locale.

Placeholder

If no range is selected, show a placeholder text to indicate the correct format. If no placeholder is defined, the control shows the default locale placeholder format. You can define your own placeholder, but you must also take localized versions into account.

Date range picker with default placeholder
Date range picker with default placeholder

Validation

Use in-line validation to give the user feedback, especially in the form of errors and warnings. Possible warning states are warning, error, and success. The date range input field in question is highlighted by a frame in the corresponding color. If the focus is inside the field, an explanation is shown. Ensure that this explanation is as specific as possible.

Visible frame that shows an error when the field is out of focus
Visible frame that shows an error when the field is out of focus
Error state with meaningful text; the date range input field is in focus
Error state with meaningful text; the date range input field is in focus

Guidelines

Display Format

You can choose whether the displayed texts are to be shown in short, medium, or long format, or in another date format like dd–MM–yyyy. However, other date formats (besides short, medium, and long) should be used carefully due to local dependencies.

Long display format
Long display format
Medium display format
Medium display format
Short display format
Short display format

Input Types

The following input types are available. (Note: these examples show German date formats for January 14, 2014.)

  • Unicode CLDR short format: 14.01.14
  • Unicode CLDR medium format: 14.01.2014
  • ISO date format: 2014-01-14
  • ISO date format without delimiters: 20140114
  • Unicode CLDR short format without delimiters: 140114
  • Unicode CLDR medium format: 14012014

Date Formats

Long Date Format

Use the long date format for master list/object list item/title and object header/title. Here are some examples:

  • English (US): January 16, 2022
  • German (DE): 16. Januar 2022
  • Danish (DK): 16. Jan. 2022

Short Date Format

Use the short date format for master list/object list item/list of object attributes if space is a concern. For example, you might need to save space if there is a label with the date. Here are some examples of the short date format:

  • English (US): 1/16/22
  • German (DE): 16.01.22
  • Japanese (JP): 22/01/16

Relative and Medium Date Format

If appropriate, use a relative format for master list/object list item/list of object status. For example: today, 1 day ago, 2 days ago, and so on up to 6 days ago. After 6 days, use an absolute date with the medium format.

Use the absolute date with medium format in the corresponding object header in the details area. Do not use the relative format here.

If screen space is at a premium (for example, if there are too many columns), use the short date format within table cells. Otherwise, use the medium format.

If you need to display the weekday, use the full format. For example:

  • English (US): Sunday, January 16, 2022
  • German (DE): Sonntag, 16. Januar 2022
  • French (FR): dimanche 16 janvier 2022

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Busy Indicator

The busy indicator informs the user about an ongoing operation.

Busy indicator - Medium and Large
Busy indicator - Medium and Large
Busy indicator - Small
Busy indicator - Small

Usage

Use the busy indicator if:

The ongoing operation covers only a part of the screen with multiple controls, and:

  • you need to display additional information, or,
  • the user needs to be able to cancel the operation.

Take a look at the example on the right. The file upload dialog consists of multiple upload operations. The user must be able to cancel each operation. Since the operation is related only to one row and not to the full app, there is no need to block the whole screen. The user still needs to interact with the system, in this case to select the next file upload.

Since each control of SAPUI5 provides a busy state by default, you could also set the busy state at row level. In this case, however, there would be no option to cancel the operation.

Busy indicator example file upload
Busy indicator example file upload

Do not use the busy indicator if:

  • The operation takes less than one second.
  • You need to block the screen because the user is not supposed to start another activity. In this case, use the busy dialog.

Components

The busy indicator is a blue circle and can also display a text description.

Busy indicator text
Busy indicator text

Guidelines

  • Do not change the mouse cursor to indicate the ongoing operation.
  • Do not use a custom progress indicator icon.
  • Try to avoid showing multiple busy indicators at once.

Properties

The size of the busy indicator can also be changed.

Busy indicator sizes
Busy indicator sizes

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Date Range Selection

The control for selecting the date range is a single-field input control. Users can enter a localized date range using touch, mouse, or keyboard input, or by selecting a date range in the calendar. They can also navigate directly from one month or year to another.

Usage

Use the date range selection if:

  • You need a time range and know that your user is a power user who has to input lots of data. If the keyboard is the primary device used for navigating the app, use two input fields. This allows the user to quickly jump from field to field. By selecting a date in one of the fields, the other field should recognize the information and jump to the same selection.

Do not use the date range selection if:

  • You want to enter a date and a time. In this case, use the date/time input instead.
  • The user’s primary goal is not to select ranges. If this is the case, use the simple date picker.

Responsiveness

The date range selection is fully responsive. It is smaller in compact mode and provides a touch-friendly size in cozy mode. For more information about cozy and compact modes, see the article on content density.

Components

The date range selection consists of two components: the date range input field and the date range picker.

The two clickable areas of the date range selection on all devices
The two clickable areas of the date range selection on all devices

Date Range Input Field

The user can type the date directly into the input field, or use the date picker. You can also show a prompt text in the field (property: placeholder). The system validates the date and gives the user feedback.

Clickable areas: The dates November 9–17 are selected, and November 27 is shown as the current day
Clickable areas: The dates November 9–17 are selected, and November 27 is shown as the current day

Date Range Picker

With the date range picker, the user can see a day view, month view, or year view. The current day and the selected date are highlighted. The calendar week is also visible in the day view. The calendar closes when a final day is selected. The user can click the arrows to view the previous and next days, months, or years (depending on the current view).

The selected date is shown with a blue background. The current day is indicated with a purple border in the calendar.

Date range selection
Date range selection

Behavior and Interaction

Selecting a Date Range

The user can type two dates into the date range input field or click the calendar icon to open the calendar and select a date. These two possibilities work for all devices – desktops, tablets, and smartphones.

Selecting a date range on a desktop, tablet, or smartphone
Selecting a date range on a desktop, tablet, or smartphone

Switch View

Clicking an arrow shows the next or previous day, month, or year.

Clicking the month shows an overview of all months.

If the current month is clicked, the user can change the month. When the user selects a month, the view changes to the day view.

By clicking the current year, the view changes to the year view. When the user selects a year, the view changes to the day view.

Selecting an End Date

When the user selects an end date, the calendar closes.

Selecting a Range

After the user selects a range, the calendar closes and the range appears in the date input field.

Entering Single Dates

The date range selection also allows the user to input single dates. The user can type one date into the input field, or select the same day as a start and end date in the calendar.

Styles

Delimiter

The delimiter visualizes the start and end date. If no delimiter is given, the app uses the one defined for the used locale.

Placeholder

If no range is selected, show a placeholder text to indicate the correct format. If no placeholder is defined, the control shows the default locale placeholder format. You can define your own placeholder, but you must also take localized versions into account.

Date range picker with default placeholder
Date range picker with default placeholder

Validation

Use in-line validation to give the user feedback, especially in the form of errors and warnings. Possible warning states are warning, error, and success. The date range input field in question is highlighted by a frame in the corresponding color. If the focus is inside the field, an explanation is shown. Ensure that this explanation is as specific as possible.

Visible frame that shows an error when the field is out of focus
Visible frame that shows an error when the field is out of focus
Error state with meaningful text; the date range input field is in focus
Error state with meaningful text; the date range input field is in focus

Guidelines

Display Format

You can choose whether the displayed texts should be shown in short, medium, or long format, or in another date format such as dd–MM–yyyy. However, other date formats (besides short, medium, and long) should be used carefully due to local dependencies.

Long display format
Long display format
Medium display format
Medium display format
Short display format
Short display format

Input Types

The following input types are available. (Note: these examples show German date formats for January 14, 2014.)

  • Unicode CLDR short format: 14.01.14
  • Unicode CLDR medium format: 14.01.2014
  • ISO date format: 2014-01-14
  • ISO date format without delimiters: 20140114
  • Unicode CLDR short format without delimiters: 140114
  • Unicode CLDR medium format: 14012014

Date Formats

Long Date Format

Use the long date format for master list/object list item/title and object header/title. Here are some examples:

  • English (US): January 16, 2022
  • German (DE): 16. Januar 2022
  • Danish (DK): 16. Jan. 2022

Short Date Format

Use the short date format for master list/object list item/list of object attributes if space is a concern. For example, you might need to save space if there is a label with the date. Here are some examples of the short date format:

  • English (US): 1/16/22
  • German (DE): 16.01.22
  • Japanese (JP): 22/01/16

Relative and Medium Date Format

If appropriate, use a relative format for master list/object list item/list of object status. For example: today, 1 day ago, 2 days ago, and so on up to 6 days ago. After 6 days, use an absolute date with the medium format.

Use the absolute date with medium format in the corresponding object header in the details area. Do not use the relative format here.

If screen space is at a premium (for example, if there are too many columns), use the short date format within table cells. Otherwise, use the medium format.

If you need to display the weekday, use the full format. For example:

  • English (US): Sunday, January 16, 2022
  • German (DE): Sonntag, 16. Januar 2022
  • French (FR): dimanche 16 janvier 2022

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Busy Indicator

The busy indicator informs the user about an ongoing operation.

Busy indicator
Busy indicator

Usage

Use the busy indicator if:

The ongoing operation covers only a part of the screen with multiple controls, and:

  • You need to display additional information, or,
  • The user needs to be able to cancel the operation.

Take a look at the example on the right. The file upload dialog consists of multiple upload operations. The user must be able to cancel each operation. Since the operation is related only to one row and not to the full app, there is no need to block the whole screen. The user still needs to interact with the system, in this case to select the next file upload.

Since each control of SAPUI5 provides a busy state by default, you could also set the busy state at row level. In this case, however, there would be no option to cancel the operation.

Busy indicator example file upload
Busy indicator example file upload

Do not use the busy indicator if:

  • The operation takes less than one second.
  • You need to block the screen because the user is not supposed to start another activity. In this case, use the busy dialog.

Components

The busy indicator is a blue circle and can also display a text description.

Busy indicator text
Busy indicator text

Guidelines

  • Do not change the mouse cursor to indicate the ongoing operation.
  • Do not use a custom progress indicator icon.
  • Try to avoid showing multiple busy indicators at once.

Properties

The size of the busy indicator can also be changed.

Busy indicator sizes
Busy indicator sizes

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Busy Indicator

The busy indicator informs the user about an ongoing operation.

Busy indicator
Busy indicator

Usage

Use the busy indicator if:

The ongoing operation covers only a part of the screen with multiple controls, and:

  • you need to display additional information, or,
  • the user needs to be able to cancel the operation.

Take a look at the example on the right. The file upload dialog consists of multiple upload operations. The user must be able to cancel each operation. Since the operation is related only to one row and not to the full app, there is no need to block the whole screen. The user still needs to interact with the system, in this case to select the next file upload.

Since each control of SAPUI5 provides a busy state by default, you could also set the busy state at row level. In this case, however, there would be no option to cancel the operation.

Busy indicator example file upload
Busy indicator example file upload

Do not use the busy indicator if:

  • The operation takes less than one second.
  • You need to block the screen because the user is not supposed to start another activity. In this case, use the busy dialog.

Components

The busy indicator is a blue circle and can also display a text description.

Busy indicator text
Busy indicator text

Guidelines

  • Do not change the mouse cursor to indicate the ongoing operation.
  • Do not use a custom progress indicator icon.
  • Try to avoid showing multiple busy indicators at once.

Properties

The size of the busy indicator can also be changed.

Busy indicator sizes
Busy indicator sizes

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Panel

The panel is a container for grouping and displaying information. It can be collapsed to save space on the screen.

Usage

  • Use the panel if:

    • You need to group or display information.
    • You want to give users the option of hiding this information.
    • You want to show additional information on demand (for example, a panel could show optional input fields for an advanced search).

Example

Responsiveness

If the width of the panel is set to 100% (default), the panel and its children are resized responsively, depending on its parent container.

Layout

  • The panel control is a container for controls.
  • The panel can have a solid or semi-transparent background.
  • The panel always includes a header.
  • An info toolbar can be added to the panel to show extra information.

Examples

Panel with a title toolbar
Panel with a title toolbar
Panel with a title toolbar and infobar
Panel with a title toolbar and infobar

Types

There are two types of panels: fixed and expandable.

Fixed Panel

Fixed panels are useful for grouping custom content. They include headers and info toolbars.

Fixed panel
Fixed panel

Expandable Panel

Expandable panels are much like fixed panels, except their content can be expanded and collapsed (including the info toolbar, if available).

Components

A panel consists of a title bar with a header text or header toolbar, an info toolbar (optional), and a content area.

The title inside the title bar can be added by using the “headerText” property. If you use the “headerToolbar” aggregation, the “headerText” property is ignored. With the “headerToolbar” aggregation, you can add a toolbar with any toolbar content inside the title bar. For example, if you need a title text on the left and some action buttons on the right, add a title to the toolbar’s content aggregation, toolbar spacer, and then your buttons.

Header toolbar of a panel
Header toolbar of a panel

Behavior and Interaction

Expand/Collapse

  • When the panel is expandable, an arrow icon (pointing to the right) appears in front of the header. Click or tap this icon to expand the panel.
  • When the animation is activated, expand/collapse uses a smooth animation to open or close the content area.
  • When the panel expands, the arrow icon rotates 90 degrees clockwise.
  • When the panel collapses, the arrow icon rotates 90 degrees counterclockwise.
  • The buttons in the header are separately clickable/touchable.

Overflow Scrolling (Content Area)

  • When the height uses the default property “auto”, the height of the content area is automatically adjusted to match the height of its content.
  • When the height of the panel is set to a fixed size, the content area can be scrolled through.

Panel With Scrolling

Panel with a fixed height (scrolling activated)
Panel with a fixed height (scrolling activated)

Panel Without Scrolling

Panel with auto height (no scrolling)
Panel with auto height (no scrolling)

Guidelines

  • Nesting two or more panels is not recommended.
  • Do not stack too many panels on one page.

Exceptions

If you add a header toolbar (sap.m.Toolbar) via aggregations, it will overwrite the “headerText” property.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation

  • No links

Panel

The panel is a container for grouping and displaying information. It can be collapsed to save space on the screen.

Usage

Use the panel if:

  • You need to group or display information.
  • You want to give users the option of hiding this information.
  • You want to show additional information on demand (for example, a panel could show optional input fields for an advanced search).

Example

Responsiveness

If the width of the panel is set to 100% (default), the panel and its children are resized responsively, depending on its parent container.

Layout

  • The panel control is a container for controls.
  • The panel can have a solid or semi-transparent background.
  • The panel always includes a header.
  • An info bar can be added to the panel to show extra information.

Examples

Panel with a title toolbar
Panel with a title toolbar
Panel with a title toolbar and info bar
Panel with a title toolbar and info bar

Types

There are two types of panels: fixed and expandable.

Fixed Panel

Fixed panels are useful for grouping custom content. They include headers and info toolbars.

Fixed panel
Fixed panel

Expandable Panel

Expandable panels are much like fixed panels, except their content can be expanded and collapsed (including the info toolbar, if available).

Components

A panel consists of a title bar with a header text or header toolbar, an info toolbar (optional), and a content area.

The title inside the title bar can be added by using the “headerText” property. If you use the “headerToolbar” aggregation, the “headerText” property is ignored. With the “headerToolbar” aggregation, you can add a toolbar with any toolbar content inside the title bar. For example, if you need a title text on the left and some action buttons on the right, add a title to the toolbar’s content aggregation, toolbar spacer, and then your buttons.

Header toolbar of a panel
Header toolbar of a panel

Behavior and Interaction

Expand/Collapse

  • When the panel is expandable, an arrow icon (pointing to the right) appears in front of the header. Click or tap this icon to expand the panel.
  • When the animation is activated, expand/collapse uses a smooth animation to open or close the content area.
  • When the panel expands, the arrow icon rotates 90 degrees clockwise.
  • When the panel collapses, the arrow icon rotates 90 degrees counterclockwise.
  • The buttons in the header can be clicked/tapped separately.

Overflow Scrolling (Content Area)

  • By setting the height to use the default property “auto”, the height of the content area will automatically be adjusted to match the height of its content.
  • When the height of the panel is set to a fixed size, the content area can be scrolled through.

Panel With Scrolling

Panel with a fixed height (scrolling activated)
Panel with a fixed height (scrolling activated)

Panel Without Scrolling

Panel with auto height (no scrolling)
Panel with auto height (no scrolling)

Guidelines

  • Nesting two or more panels is not recommended.
  • Do not stack too many panels on one page.

Exceptions

If you add a header toolbar (sap.m.Toolbar) via aggregations, it will overwrite the “headerText” property.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation

  • No links

Panel

The panel is a container for grouping and displaying information. It can be collapsed to save space on the screen.

Responsiveness

If the width of the panel is set to 100% (default), the panel and its children are resized responsively, depending on its parent container.

Layout

  • The panel control is a container for controls.
  • The panel can have a solid or semi-transparent background.
  • The panel always includes a header.
  • An info toolbar can be added to the panel to show extra information.

Examples

Types

There are two types of panels: fixed and expandable.

Fixed Panel

Expandable Panel

Components

Guidelines

  • Nesting two or more panels is not recommended.
  • Do not stack too many panels on one page.

Exceptions

If you add a header toolbar (sap.m.Toolbar) via aggregations, it will overwrite the “headerText” property.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation

  • No links

Panel

The panel is a container for grouping and displaying information. It can be collapsed to save space on the screen.

Usage

  • Use the panel if:

    • You need to group or display information.
    • You want to give users the option of hiding this information.
    • You want to show additional information on demand (for example, a panel could show optional input fields for an advanced search).

Example

Responsiveness

If the width of the panel is set to 100% (default), the panel and its children are resized responsively, depending on its parent container.

Layout

  • The panel control is a container for controls.
  • The panel can have a solid or semi-transparent background.
  • The panel always includes a header.
  • An info toolbar can be added to the panel to show extra information.

Examples

Panel with a title toolbar
Panel with a title toolbar
Panel with a title toolbar and infobar
Panel with a title toolbar and infobar

Types

There are two types of panels: fixed and expandable.

Fixed Panel

Fixed panels are useful for grouping custom content. They include headers and info toolbars.

Fixed panel
Fixed panel

Expandable Panel

Expandable panels are much like fixed panels, except their content can be expanded and collapsed (including the info toolbar, if available).

Components

A panel consists of a title bar with a header text or header toolbar, an info toolbar (optional), and a content area.

The title inside the title bar can be added by using the “headerText” property. If you use the “headerToolbar” aggregation, the “headerText” property is ignored. With the “headerToolbar” aggregation, you can add a toolbar with any toolbar content inside the title bar. For example, if you need a title text on the left and some action buttons on the right, add a title to the toolbar’s content aggregation, toolbar spacer, and then your buttons.

Header toolbar of a panel
Header toolbar of a panel

Behavior and Interaction

Expand/Collapse

  • When the panel is expandable, an arrow icon (pointing to the right) appears in front of the header. Click or tap this icon to expand the panel.
  • When the animation is activated, expand/collapse uses a smooth animation to open or close the content area.
  • When the panel expands, the arrow icon rotates 90 degrees clockwise.
  • When the panel collapses, the arrow icon rotates 90 degrees counterclockwise.
  • The buttons in the header are separately clickable/touchable.

Overflow Scrolling (Content Area)

  • When the height uses the default property “auto”, the height of the content area is automatically adjusted to match the height of its content.
  • When the height of the panel is set to a fixed size, the content area can be scrolled through.

Panel With Scrolling

Panel with a fixed height (scrolling activated)
Panel with a fixed height (scrolling activated)

Panel Without Scrolling

Panel with auto height (no scrolling)
Panel with auto height (no scrolling)

Styles

Background Design

  • This property is used to set the background color of the panel.
  • Depending on the theme, you can change the state of the background from Solid through Translucent to Transparent.
  • The default value is Translucent.

The panel is translucent by default to match the background of the corresponding list, form, table, and so on. These controls also have solid, translucent, and transparent background properties, so it makes sense to give the panel the same type of properties.

This also applies to our own composite controls, such as table personalizationvalue help, and quick view, which use panels to group standard controls such as input fields and buttons.

Example: In a dialog box with a form-style layout, the background color can be set to transparent so that the input fields in the panel stand out against the background.

A dialog box with form-style layout
A dialog box with form-style layout

Example: A panel with a transparent background used in a table personalization dialog box.

Table personalization dialog box
Table personalization dialog box

Example: A panel with transparent background properties, used in a value help dialog box.

Value help dialog box
Value help dialog box

Example: Quick view (seen here outside the popover or dialog box) is created using translucent panels.

Quick view
Quick view

Guidelines

  • Nesting two or more panels is not recommended.
  • Do not stack too many panels on one page.

Exceptions

If you add a header toolbar (sap.m.Toolbar) via aggregations, it will overwrite the “headerText” property.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links

Implementation

  • No links

Empty Page

Empty spaces are places in apps that have no content or data. There are different use cases where an empty page might be shown. The layout is still the same, but the text changes depending on the use case.

Responsiveness and Adaptiveness

The size of the empty page is adjusted to the amount of space available.

Size S (e.g. Smartphone)

The empty page on Smartphones
The empty page on Smartphones

Size M (e.g. Tablet)

The empty page on Tablets
The empty page on Tablets

Size L (e.g. Desktop)

The empty page on Desktops
The empty page on Desktops

Types

The layout of the empty page always behaves the same. The only differences are the texts which change depending on the use case and the user’s location in the app. Have a look at the different types:

Filter

Contextual filter was set and there are no results.

Text

Please display the following text in the master list:

No matching <entity> found, e.g. No matching items found.

Please display the following text in the detail page:

No matching <entity> found. Check the filter settings. e.g. No matching items found. Check the filter settings.

The user has set a filter and there are no results.

Text

Please display the following text in the master list:

No matching <entity> found e.g. No matching items found.

Please display the following text in the the detail page:

Show last selected <entity> e.g. Show last selected item.

Search

The user has searched something and there are no results (also for search and filter at the same time).

Text

Please display the following text in the master list:

No matching items found.

Please display the following text in the detail page:

Show last selected item.

There are no items, but the user searched anyway.

Text

Please display the following text in the master list:

No matching items found.

Please display the following text in the detail page:

Show last empty page use case.

No Item

The app contains no items.

Text

Please display the following text in the master list and detail page:

No items are currently available.

Too Many Items

In this case, there are too many items in the master list. The user has to search to see results.

Text

Please display the following text in the master list:

Search for <business object (plural)> e.g. Search for opportunities.

Please display the following text in the detail page:

Search for <business object (plural)> e.g. Search for opportunities.

Loading

The app is loading (open, filter, sort…).

Text

Please display the following text in the master list:

Loading…

Please display the following text in the detail page:

Show last selected item.

Save as Tile

The item the user has saved is no longer available.

Text

Please display the following text in the master list:

No items selected.

On the detail page, indicate the specific entity. Where relevant, you can also include the ID:

This <entity> is no longer available.
<Entity> <ID> is no longer available.

Examples:

This product is no longer available.
Purchase order 123456 is no longer available.

Components

Following UI elements can be placed into the action sheet:

  • Text
  • Background image

Guidelines

Different texts are displayed in different use cases.

In General

  • If there is only one sentence: no periods at the end of the phrases/sentences.
  • <business object (plural)> should be replaced with the business object in plural and lower case.

Filter

In case a contextual filter is set in a split-screen view and there are no results, please display:

No matching items found. Check the filter settings.

However, if the user has set a filter and there are no results, the details area will continue to show the last selected item.

No matching items found with set contextual filter
No matching items found with set contextual filter
No matching items found, but still showing the last selected item in the details area
No matching items found, but still showing the last selected item in the details area

Search

If there are no items in the list to begin with and the user searches anyway the master list reads No matching items found and the details area shows the last empty state. The texts for this could be

No items are currently available or

No matching items found. Check the filter settings or Search for.

Showing the last selected item in details area after an unsuccessful search
Showing the last selected item in details area after an unsuccessful search
Searching an empty list
Searching an empty list

No Items

If your app simply does not contain any items, please display:

No items are currently available in both, the master list and in the details area.

Empty page
Empty page

Too Many Items

If there are too many items in the master list and the user has to conduct a search to see any results, please display:

Search for <>, where <> stands for the plural of the respective business object’s name in lower case.

Save as Tile

If the user saved a tile on his home screen, but the item is no longer available, you could use the text

This <entity> is no longer available, e.g. This product is no longer available.

Loading

Of course, sometimes your app will simply be loading. In that case, display: Loading…’. Please do not show the message No Data in this case, since that can be misleading.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Text (SAPUI5 API reference)
  • Text (SAPUI5 samples)

Category Navigation

Category navigation is a rarely used pattern which can be used to replace tree-like structures with only a few levels in a responsive environment. The breadcrumb control replaces the title control in the category navigation pattern.

Usage

Use category navigation if:

  • You need to show categorized data in a responsive environment.
  • You need to replace a tree table on tablets and smartphones, and the tree table has a maximum of five levels.
  • You need to show hierarchical data with different details at each level, and thus a tree table cannot be used.

Do not use category navigation if:

  • You need only two levels, and the upper level identifies the category. In this case, use a grouped responsive table instead.
  • You need more than five levels. In this case, use a tree table.
    On a smartphone or tablet device, try to display the data on just five levels. You can do this in one of two ways:

    • Remove unnecessary root levels.
    • Offer the same items in different branches.

Responsiveness

The pattern is based on a responsive table. In contrast to the standard usage of the responsive table, the title is used for providing a breadcrumb showing the current level.

The breadcrumb control determines the text of the current/last element in the breadcrumb path. It only consists of text (string element).

The responsiveness is handled by the control: As soon as the breadcrumb gets truncated, it provides a dropdown menu to access further navigation levels.

Category navigation displayed in S size
Category navigation displayed in S size
Category navigation displayed in M size
Category navigation displayed in M size
Category navigation displayed in L size
Category navigation displayed in L size

Layout

The breadcrumb appears in the toolbar, and replaces the table title.

At any given level, the responsive table contains the individual line items, including their column header, as well as the categories available for further drilldown.

Category navigation - Layout
Category navigation - Layout

Components

Use the breadcrumb control to implement the category navigation pattern. Display the navigation levels as text. Use links for the title of all levels above the current level to provide a fast navigation option over the levels.

A breadcrumb showing three levels
A breadcrumb showing three levels

Thus, showing the root level does not include a link at all.

A breadcrumb showing the root level only
A breadcrumb showing the root level only

As soon as text of the breadcrumb gets truncated, the breadcrumb control provides a dropdown functionality to reach hidden navigation levels. The currently selected level shows the title of the current level.

Change breadcrumb to dropdown menu if running out of screen real estate
Change breadcrumb to dropdown menu if running out of screen real estate

Use one or several responsive tables for listing the items of the different levels, depending on the columns shown on each level.

Responsive table
Responsive table

Within the responsive table, use the navigation mode of the items on container items.

Navigable container item
Navigable container item

Do not use the navigation mode on leaf items.

Leaf item not meant for navigation
Leaf item not meant for navigation

Behavior and Interaction

Initially, this pattern looks like a standard responsive table with control items.

Initial state
Initial state

Drill-In on Item

Clicking an item drills into it in one of the following ways:

  • The content of the responsive table is changed (if all columns are the same on the second level).
  • The entire responsive table is changed (if there are different columns on the second level).
State after navigating to the second level
State after navigating to the second level

Navigate

The user can navigate further by using navigable items.

The breadcrumb adapts accordingly. Leafs are shown without a navigation indicator.

State after navigating to the third level
State after navigating to the third level

Guidelines

Drill-In on Item

Adapt the title to a breadcrumb.

Show navigation indicators if there are more levels.

State after navigating to the second level
State after navigating to the second level

Navigate

Navigate further by using control items.

Make sure that the breadcrumb adapts accordingly. Please be aware that leafs are shown without a navigation indicator.

State after navigating to the third level
State after navigating to the third level

Navigate backwards by using one of the links inside the breadcrumb. If going backwards, show the exact same state as before.

If navigating back, show the former state
If navigating back, show the former state

As soon as there is not enough screen real estate to show the entire breadcrumb, the control provides a dropdown functionality to reach further navigation levels.

Show a dropdown menu within the breadcrumb control on small screen sizes
Show a dropdown menu within the breadcrumb control on small screen sizes

Within the dropdown menu, show all parent nodes below the current node.

Show the levels of the breadcrumb inside the dropdown menu (select)
Show the levels of the breadcrumb inside the dropdown menu (select)
Dropdown menu on truncated breadcrumb
Dropdown menu on truncated breadcrumb

If navigating, just change the responsive table and the breadcrumb. Do not change anything else.

Do not navigate to another page.

 

Example: Drilldown with Breadcrumb Display

Placement

Place the breadcrumb control in a way that makes sense to the user. For example, if used in comination with segmented buttons, place the breadcrumb on top of the toolbar. The segmented buttons should be displayed on the very left of the toolbar. In this case, the page navigation is on an higher level as the the view switch.

Together with a tab pattern, the breadcrumb should replace the table title and and should be displayed under the tabs.

Breadcrumb with segmented buttons in hierarchy
Breadcrumb with segmented buttons in hierarchy
Breadcrumb with tabs
Breadcrumb with tabs

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Category Navigation

Warning
This article was written for an earlier guideline release, and may contain outdated content. An update is in progress. If you have any questions in the meantime, please post them in our SAP User Experience Community forum. Thank you!

Category navigation is a rarely used pattern which can be used to replace tree-like structures with only a few levels in a responsive environment. The breadcrumb control replaces the title control in the category navigation pattern.

Usage

Use category navigation if:

  • You need to show categorized data in a responsive environment.
  • You need to replace a tree table on tablets and smartphones, and the tree table has a maximum of five levels.
  • You need to show hierarchical data with different details at each level, and thus a tree table cannot be used.

Do not use category navigation if:

  • You need only two levels, and the upper level identifies the category. In this case, use a grouped responsive table instead.
  • You need more than five levels. In this case, use a tree table.
    On a smartphone or tablet device, try to display the data on just five levels. You can do this in one of two ways:

    • Remove unnecessary root levels.
    • Offer the same items in different branches.

Responsiveness

The pattern is based on a responsive table. In contrast to the standard usage of the responsive table, the title is used for providing a breadcrumb showing the current level.

The breadcrumb control determines the text of the current/last element in the breadcrumb path. It only consists of text (string element).

The responsiveness is handled by the control: As soon as the breadcrumb gets truncated, it provides a dropdown menu to access further navigation levels.

Category navigation displayed in S size
Category navigation displayed in S size
Category navigation displayed in M size
Category navigation displayed in M size
Category navigation displayed in L size
Category navigation displayed in L size

Layout

The breadcrumb appears in the toolbar, and replaces the table title.

At any given level, the responsive table contains the individual line items, including their column header, as well as the categories available for further drilldown.

Category navigation - Layout
Category navigation - Layout

Components

Use the breadcrumb control to implement the category navigation pattern. Display the navigation levels as text. Use links for the title of all levels above the current level to provide a fast navigation option over the levels.

A breadcrumb showing three levels
A breadcrumb showing three levels

Thus, showing the root level does not include a link at all.

A breadcrumb showing the root level only
A breadcrumb showing the root level only

As soon as text of the breadcrumb gets truncated, the breadcrumb control provides a dropdown functionality to reach hidden navigation levels. The currently selected level shows the title of the current level.

Change breadcrumb to dropdown menu if running out of screen real estate
Change breadcrumb to dropdown menu if running out of screen real estate

Use one or several responsive tables for listing the items of the different levels, depending on the columns shown on each level.

Responsive table
Responsive table

Within the responsive table, use the navigation mode of the items on container items.

Navigable container item
Navigable container item

Do not use the navigation mode on leaf items.

Leaf item not meant for navigation
Leaf item not meant for navigation

Behavior and Interaction

Initially, this pattern looks like a standard responsive table with control items.

Initial state
Initial state

Drill-In on Item

Clicking an item drills into it in one of the following ways:

  • The content of the responsive table is changed (if all columns are the same on the second level).
  • The entire responsive table is changed (if there are different columns on the second level).
State after navigating to the second level
State after navigating to the second level

Navigate

The user can navigate further by using navigable items.

The breadcrumb adapts accordingly. Leafs are shown without a navigation indicator.

State after navigating to the third level
State after navigating to the third level

Guidelines

Drill-In on Item

Adapt the title to a breadcrumb.

Show navigation indicators if there are more levels.

State after navigating to the second level
State after navigating to the second level

Navigate

Navigate further by using control items.

Make sure that the breadcrumb adapts accordingly. Please be aware that leafs are shown without a navigation indicator.

State after navigating to the third level
State after navigating to the third level

Navigate backwards by using one of the links inside the breadcrumb. If going backwards, show the exact same state as before.

If navigating back, show the former state
If navigating back, show the former state

As soon as there is not enough screen real estate to show the entire breadcrumb, the control provides a dropdown functionality to reach further navigation levels.

Show a dropdown menu within the breadcrumb control on small screen sizes
Show a dropdown menu within the breadcrumb control on small screen sizes

Within the dropdown menu, show all parent nodes below the current node.

Show the levels of the breadcrumb inside the dropdown menu (select)
Show the levels of the breadcrumb inside the dropdown menu (select)
Dropdown menu on truncated breadcrumb
Dropdown menu on truncated breadcrumb

If navigating, just change the responsive table and the breadcrumb. Do not change anything else.

Do not navigate to another page.

 

Example: Drilldown with Breadcrumb Display

Placement

Place the breadcrumb control in a way that makes sense to the user. For example, if used in comination with segmented buttons, place the breadcrumb on top of the toolbar. The segmented buttons should be displayed on the very left of the toolbar. In this case, the page navigation is on an higher level as the the view switch.

Together with a tab pattern, the breadcrumb should replace the table title and and should be displayed under the tabs.

Breadcrumb with segmented buttons in hierarchy
Breadcrumb with segmented buttons in hierarchy
Breadcrumb with tabs
Breadcrumb with tabs

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Category Navigation

Warning
This article was written for an earlier guideline release, and may contain outdated content. An update is in progress. If you have any questions in the meantime, please post them in our SAP User Experience Community forum. Thank you!

Category navigation is a rarely used pattern which can be used to replace tree-like structures with only a few levels in a responsive environment. The breadcrumb control replaces the title control in the category navigation pattern.

Usage

Use category navigation if:

  • You need to show categorized data in a responsive environment.
  • You need to replace a tree table on tablets and smartphones, and the tree table has a maximum of five levels.
  • You need to show hierarchical data with different details at each level, and thus a tree table cannot be used.

Do not use category navigation if:

  • You need only two levels, and the upper level identifies the category. In this case, use a grouped responsive table instead.
  • You need more than five levels. In this case, use a tree table.
    On a smartphone or tablet device, try to display the data on just five levels. You can do this in one of two ways:

    • Remove unnecessary root levels.
    • Offer the same items in different branches.

Responsiveness

The pattern is based on a responsive table. In contrast to the standard usage of the responsive table, the title is used for providing a breadcrumb showing the current level.

The breadcrumb control determines the text of the current/last element in the breadcrumb path. It only consists of text (string element).

The responsiveness is handled by the control: As soon as the breadcrumb gets truncated, it provides a dropdown menu to access further navigation levels.

Category navigation displayed in S size
Category navigation displayed in S size
Category navigation displayed in M size
Category navigation displayed in M size
Category navigation displayed in L size
Category navigation displayed in L size

Layout

The breadcrumb appears in the toolbar, and replaces the table title.

At any given level, the responsive table contains the individual line items, including their column header, as well as the categories available for further drilldown.

Category navigation - Layout
Category navigation - Layout

Components

Use the breadcrumb control to implement the category navigation pattern. Display the navigation levels as text. Use links for the title of all levels above the current level to provide a fast navigation option over the levels.

A breadcrumb showing three levels
A breadcrumb showing three levels

Thus, showing the root level does not include a link at all.

A breadcrumb showing the root level only
A breadcrumb showing the root level only

As soon as text of the breadcrumb gets truncated, the breadcrumb control provides a dropdown functionality to reach hidden navigation levels. The currently selected level shows the title of the current level.

Change breadcrumb to dropdown menu if running out of screen real estate
Change breadcrumb to dropdown menu if running out of screen real estate

Use one or several responsive tables for listing the items of the different levels, depending on the columns shown on each level.

Responsive table
Responsive table

Within the responsive table, use the navigation mode of the items on container items.

Navigable container item
Navigable container item

Do not use the navigation mode on leaf items.

Leaf item not meant for navigation
Leaf item not meant for navigation

Behavior and Interaction

Initially, this pattern looks like a standard responsive table with control items.

Initial state
Initial state

Drill-in on Item

Clicking an item drills into it in one of the following ways:

  • The content of the responsive table is changed (if all columns are the same on the second level).
  • The entire responsive table is changed (if there are different columns on the second level).
State after navigating to the second level
State after navigating to the second level

Navigate

The user can navigate further by using navigable items.

The breadcrumb adapts accordingly. Leafs are shown without a navigation indicator.

State after navigating to the third level
State after navigating to the third level

Guidelines

Drill-in on Item

Adapt the title to a breadcrumb.

Show navigation indicators if there are more levels.

State after navigating to the second level
State after navigating to the second level

Navigate

Navigate further by using control items.

Make sure that the breadcrumb adapts accordingly. Please be aware that leafs are shown without a navigation indicator.

State after navigating to the third level
State after navigating to the third level

Navigate backwards by using one of the links inside the breadcrumb. If going backwards, show the exact same state as before.

If navigating back, show the former state
If navigating back, show the former state

As soon as there is not enough screen real estate to show the entire breadcrumb, the control provides a dropdown functionality to reach further navigation levels.

Show a dropdown menu within the breadcrumb control on small screen sizes
Show a dropdown menu within the breadcrumb control on small screen sizes

Within the dropdown menu, show all parent nodes below the current node.

Show the levels of the breadcrumb inside the dropdown menu (select)
Show the levels of the breadcrumb inside the dropdown menu (select)
Dropdown menu on truncated breadcrumb
Dropdown menu on truncated breadcrumb

If navigating, just change the responsive table and the breadcrumb. Do not change anything else.

Do not navigate to another page.

 

Example: Drilldown with Breadcrumb Display

Placement

Place the breadcrumb control in a way that makes sense to the user. For example, if used in comination with segmented buttons, place the breadcrumb on top of the toolbar. The segmented buttons should be displayed on the very left of the toolbar. In this case, the page navigation is on an higher level as the the view switch.

Together with a tab pattern, the breadcrumb should replace the table title and and should be displayed under the tabs.

Breadcrumb with segmented buttons in hierarchy
Breadcrumb with segmented buttons in hierarchy
Breadcrumb with tabs
Breadcrumb with tabs

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Category Navigation

Category navigation is a rarely used pattern that can be used to replace tree-like structures with only a few levels in a responsive environment.

Usage

Use category navigation if:

  • You need to show categorized data in a responsive environment.
  • You need to replace a tree table on tablets and smartphones, and the tree table has a maximum of five levels.
  • You need to show hierarchical data with different details at each level, and thus a tree table cannot be used.

Do not use category navigation if:

  • You need only two levels, and the upper level identifies the category. In this case, use a grouped responsive table instead.
  • You need more than five levels. In this case, use a tree table.
    On a smartphone or tablet device, try to display the data on just five levels. You can do this in one of two ways:

    • Remove unnecessary root levels.
    • Offer the same items in different branches.

Responsiveness

The category navigation pattern replaces the standard title of a responsive table with a breadcrumb showing the current navigation level.

A breadcrumb comprises links, icons, and text controls. App teams need to build the breadcrumb manually, and also ensure that its behavior is responsive. As soon as text is truncated, change the breadcrumb to a select control.

Category navigation - Size S
Category navigation - Size S
Category navigation - Size M
Category navigation - Size M
Category navigation - Size L
Category navigation - Size L

Layout

The breadcrumb appears in the toolbar, and replaces the table title.

At any given level, the responsive table contains the individual line items, including their column header, as well as the categories available for further drilldown.

Category navigation - Layout
Category navigation - Layout

Components

Use links, icons, and text controls to implement the breadcrumb.

  • Use links for the title of all levels above the current level.
  • Use icon controls for the delimiters.
  • Use text for the title of the current level.
A breadcrumb showing three levels
A breadcrumb showing three levels

As a result, there is no link at root level.

A breadcrumb showing the root level only
A breadcrumb showing the root level only

As soon as the last text in the breadcrumb is truncated, change the breadcrumb to a select control. Show the title of the current level as the selected item.

If the breadcrumb is truncated, switch to a select control
If the breadcrumb is truncated, switch to a select control

Depending on the columns shown at each level, use one or more responsive tables to list the items at the different levels.

Responsive table
Responsive table

Within the responsive table, use the navigation mode of the items for container items.

Navigable container item
Navigable container item

Do not use navigation mode for leaf items.

Leaf item not meant for navigation
Leaf item not meant for navigation

Behavior and Interaction

Initially, this pattern looks like a standard responsive table with control items.

Initial state
Initial state

Drill-In on Item

Clicking an item drills into it in one of the following ways:

  • The content of the responsive table is changed (if all columns are the same on the second level).
  • The entire responsive table is changed (if there are different columns on the second level).
State after navigating to the second level
State after navigating to the second level

Navigate

The user can navigate further by using navigable items.

The breadcrumb adapts accordingly. Leaves are shown without a navigation indicator.

State after navigating to the third level
State after navigating to the third level

Guidelines

Drill-In on Item

Adapt the title to a breadcrumb.

Show navigation indicators if there are more levels.

State after navigating to the second level
State after navigating to the second level

Navigate

Navigate further by using control items.

Ensure that the breadcrumb adapts accordingly. Note that leaves are shown without a navigation indicator.

State after navigating to the third level
State after navigating to the third level

Navigate back by using one of the links inside the breadcrumb. When the user navigates back, show exactly the same state as before.

If the user navigates back, show the previous state
If the user navigates back, show the previous state

As soon as the last text in the breadcrumb is truncated, change the breadcrumb to a select control.

Show a select control instead of a breadcrumb on small screen sizes
Show a select control instead of a breadcrumb on small screen sizes

Within the select control, show all parent nodes below the current node.

Show the levels of the breadcrumb inside the select control
Show the levels of the breadcrumb inside the select control

Keep the select control once it has been shown.

Do not revert to the breadcrumb just by navigating back within the select control, even if a breadcrumb would fit.

Do not change the select control back to a breadcrumb on navigation
Do not change the select control back to a breadcrumb on navigation

Only revert to the breadcrumb if the screen width is increased again and the breadcrumb fits.

Only switch from select to breadcrumb if the screen width changes
Only switch from select to breadcrumb if the screen width changes

When the user is navigating, change only the responsive table and the breadcrumb. Do not change anything else.

Do not navigate the user to another page.

Example: Drilldown with Breadcrumb Display

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Busy Dialog

The busy dialog informs the user about an ongoing operation. During the operation, the entire screen is blocked.

Usage

Use the busy dialog if:

  • The user should not be able to start any other activity during an operation, and the screen needs to be blocked while the operation is ongoing.
  • The operation lasts more than one second.
  • You want to indicate loading in a page-to-page navigation.

Do not use the busy dialog if:

  • The operation lasts less than one second.
  • The screen is not supposed to be blocked. In this case, use the busy indicator or busy state of the control instead.

Responsiveness

The busy dialog is fully responsive and can be shown in compact and cozy mode.

Busy dialog compact mode
Busy dialog compact mode
Busy dialog cozy mode
Busy dialog cozy mode
Busy dialog on smartphone
Busy dialog on smartphone
Developer Hint
To switch to compact mode for a dialog, you need to use:

jQuery.sap.syncStyleClass(“sapUiSizeCompact”, this.getView(), this._oDialog);

Further information is available here.

Components

The busy dialog can consist of several components and is configurable. The following properties can be set:

  • Title: By default, it has no title. Therefore, do not use this property.
  • Text: Additional text can be added above the busy animation.
  • Cancel:(Property:showCancelButton) A Cancel button is displayed. There is no Cancel button by default. The label is also configurable via Property.cancelButtonText.
  • Icon: A custom animation icon can be set via Property:customIcon.

If no title, text, or Cancel button is set, the busy dialog displays only the busy icon (busy dialog, lightweight version).

Busy dialog without title
Busy dialog without title
Busy dialog without title or Cancel
Busy dialog without title or Cancel
Busy dialog - lightweight version
Busy dialog - lightweight version

Guidelines

Lightweight Version (No Title, Text, or Cancel Button)

  • Use the lightweight version for page navigation (see live example).
  • If you do not show a title or text, use the invisible text control (sap.ui.core.InvisibleText) to provide the reason for the busy state to users with assistive technologies.

Developer Hint

The additional text should be associated to the busy dialog using ariaLabelledBy association.

Busy Dialog with Text

  • Do not use the title of the busy dialog.
  • If a busy dialog is triggered directly by the user, provide a precise text describing the operation. The text can be as short as one verb:
    • Loading…
    • Refreshing…
    • Sending…
  • If the busy dialog is not directly initiated by the end user, use at least one sentence to describe the operation. Start either the first or the last sentence with Please wait. For example: The system is busy searching data. Please wait until data is loaded.
  • Recommendation: Do not use the invisible text control when you show text in the busy dialog.

Busy Dialog with Text and Cancel Button

  • Offer Cancel if you expect the process to run more than 10 seconds. In addition, always display text that precisely describes the ongoing operation.
  • Do not change the mouse cursor to indicate the ongoing operation.
  • Recommendation: Do not use the invisible text control when you show text in the busy dialog.

Timing and Duration

We recommend displaying the busy dialog one second after the process has been triggered and for a minimum time of 500 ms to avoid flickering. For processes that last less then one second, a busy dialog is not displayed at all.

Example: A process takes 1.3 s in total. After one second, the busy dialog is displayed. The process finishes in 1.3 seconds. To avoid flickering, you should display the busy dialog for at least 500 ms, so you will need to add 200 ms to avoid flickering.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Busy Dialog

The busy dialog informs the user about an ongoing operation. During the operation, the entire screen is blocked.

Usage

Use the busy dialog if:

  • The user should not be able to start any other activity during an operation, and the screen needs to be blocked while the operation is ongoing.
  • The operation lasts more than one second.
  • You want to indicate loading in a page-to-page navigation.

Do not use the busy dialog if:

  • The operation lasts less than one second.
  • The screen is not supposed to be blocked. In this case, use the busy indicator or busy state of the control instead.

Responsiveness

The busy dialog is fully responsive and can be shown in compact and cozy mode.

Busy dialog - Compact mode
Busy dialog - Compact mode
Busy dialog - Cozy mode
Busy dialog - Cozy mode
Busy dialog on smartphone
Busy dialog on smartphone
Developer Hint
To switch to compact mode for a dialog, you need to use:

jQuery.sap.syncStyleClass(“sapUiSizeCompact”, this.getView(), this._oDialog);

For more information, see the SAPUI5 Demo Kit.

Components

The busy dialog can consist of several components and is configurable. The following properties can be set:

  • Title: By default, it has no title. Therefore, do not use this property.
  • Text: Additional text can be added above the busy animation.
  • Cancel:(Property:showCancelButton) A Cancel button is displayed. There is no Cancel button by default. The label is also configurable via Property.cancelButtonText.
  • Icon: A custom animation icon can be set via Property:customIcon.

If no title, text, or Cancel button is set, the busy dialog displays only the busy icon (busy dialog, lightweight version).

Busy dialog without title
Busy dialog without title
Busy dialog without title and Cancel
Busy dialog without title and Cancel
Busy dialog - Lightweight version
Busy dialog - Lightweight version

Guidelines

Lightweight Version (No Title, Text, or Cancel Button)

  • Use the lightweight version for page navigation (see live example).
  • If you do not show a title or text, use the invisible text control (sap.ui.core.InvisibleText) to provide the reason for the busy state to users with assistive technologies.

Developer Hint

The additional text should be associated to the busy dialog using ariaLabelledBy association.

Busy Dialog with Text

  • Do not use the title of the busy dialog.
  • If a busy dialog is triggered directly by the user, provide a precise text describing the operation. The text can be as short as one verb:
    • Loading…
    • Refreshing…
    • Sending…
  • If the busy dialog is not directly initiated by the end user, use at least one sentence to describe the operation. Start either the first or the last sentence with Please wait. For example: The system is busy searching data. Please wait until data is loaded.
  • Recommendation: Do not use the invisible text control when you show text in the busy dialog.

Busy Dialog with Text and Cancel Button

  • Offer Cancel if you expect the process to run more than 10 seconds. In addition, always display text that precisely describes the ongoing operation.
  • Do not change the mouse cursor to indicate the ongoing operation.
  • Recommendation: Do not use the invisible text control when you show text in the busy dialog.

Timing and Duration

We recommend displaying the busy dialog one second after the process has been triggered and for a minimum time of 500 ms to avoid flickering. For processes that last less then one second, a busy dialog is not displayed at all.

Example: A process takes 1.3 s in total. After one second, the busy dialog is displayed. The process finishes in 1.3 seconds. To avoid flickering, you should display the busy dialog for at least 500 ms, so you will need to add 200 ms to avoid flickering.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Busy Dialog

The busy dialog informs the user about an ongoing operation. During the operation, the entire screen is blocked.

Usage

Use the busy dialog if:

  • The user should not be able to start any other activity during an operation, and the screen needs to be blocked while the operation is ongoing.
  • The operation lasts more than one second.
  • You want to indicate loading in a page-to-page navigation.

Do not use the busy dialog if:

  • The operation lasts less than one second.
  • The screen is not supposed to be blocked. In this case, use the busy indicator or busy state of the control instead.

Responsiveness

The busy dialog is fully responsive and can be shown in compact and cozy mode.

Busy dialog in compact mode
Busy dialog in compact mode
Busy dialog in cozy mode
Busy dialog in cozy mode
Busy dialog on smartphone
Busy dialog on smartphone
Developer Hint
To switch to compact mode for a dialog, you need to use:

jQuery.sap.syncStyleClass(“sapUiSizeCompact”, this.getView(), this._oDialog);

Further information is available here.

Components

The busy dialog can consist of several components and is configurable. The following properties can be set:

  • Title: By default, it has no title. Therefore, do not use this property.
  • Text: Additional text can be added above the busy animation.
  • Cancel:(Property:showCancelButton) A Cancel button is displayed. There is no Cancel button by default. The label is also configurable via Property.cancelButtonText.
  • Icon: A custom animation icon can be set via Property:customIcon.

If no title, text, or Cancel button is set, the busy dialog displays only the busy icon (busy dialog, lightweight version).

Busy dialog without title
Busy dialog without title
Busy dialog without title or Cancel
Busy dialog without title or Cancel
Busy dialog - lightweight version
Busy dialog - lightweight version

Guidelines

Lightweight Version (No Title, Text, or Cancel Button)

  • Use the lightweight version for page navigation (see live example).

Busy Dialog with Text

  • Do not use the title of the busy dialog.
  • If a busy dialog is triggered directly by the user, provide a precise text describing the operation.The text can be as short as one verb:
    • Loading…
    • Refreshing…
    • Sending…
  • If the busy dialog is not directly initiated by the end user, use at least one sentence to describe the operation. Start either the first or the last sentence with Please wait. For example: The system is busy searching data. Please wait until data is loaded.

Busy Dialog with Text and Cancel Button

  • Offer Cancel if you expect the process to run more than 10 seconds. In addition, always display text that precisely describes the ongoing operation.
  • Do not change the mouse cursor to indicate the ongoing operation.

Timing and Duration

We recommend displaying the busy dialog one second after the process has been triggered and for a minimum time of 500 ms to avoid flickering. For processes that last less then one second, a busy dialog is not displayed at all.

Example: A process takes 1.3 s in total. After one second, the busy dialog is displayed. The process finishes in 1.3 seconds. To avoid flickering, you should display the busy dialog for at least 500 ms, so you will need to add 200 ms to avoid flickering.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Busy Dialog

The busy dialog informs the user about an ongoing operation. During the operation, the entire screen is blocked.

Usage

Use the busy dialog if:

  • The user should not be able to start any other activity during an operation, and the screen needs to be blocked while the operation is ongoing.
  • The operation lasts more than one second.
  • You want to indicate loading in a page-to-page navigation.

Do not use the busy dialog if:

  • The operation lasts less than one second.
  • The screen is not supposed to be blocked. In this case, use the busy indicator or busy state of the control instead.

Responsiveness

The busy dialog is fully responsive and can be shown in compact and cozy mode.

Busy dialog compact mode
Busy dialog compact mode
Busy dialog cozy mode
Busy dialog cozy mode
Busy dialog on smartphone
Busy dialog on smartphone
Developer Hint
To switch to compact mode for a dialog, you need to use:

jQuery.sap.syncStyleClass(“sapUiSizeCompact”, this.getView(), this._oDialog);

Further information is available here.

Components

The busy dialog can consist of several components and is configurable. The following properties can be set:

  • Title: By default, it has no title. Therefore, do not use this property.
  • Text: Additional text can be added above the busy animation.
  • Cancel:(Property:showCancelButton) A Cancel button is displayed. There is no Cancel button by default. The label is also configurable via Property.cancelButtonText.
  • Icon: A custom animation icon can be set via Property:customIcon.

If no title, text, or Cancel button is set, the busy dialog displays only the busy icon (busy dialog, lightweight version).

Busy dialog without title
Busy dialog without title
Busy dialog without title or Cancel
Busy dialog without title or Cancel
Busy dialog - lightweight version
Busy dialog - lightweight version

Guidelines

Lightweight Version (No Title, Text, or Cancel Button)

  • Use the lightweight version for page navigation (see live example).

Busy Dialog with Text

  • Do not use the title of the busy dialog.
  • If a busy dialog is triggered directly by the user, provide a precise text describing the operation.The text can be as short as one verb:
    • Loading…
    • Refreshing…
    • Sending…
  • If the busy dialog is not directly initiated by the end user, use at least one sentence to describe the operation. Start either the first or the last sentence with Please wait. For example: The system is busy searching data. Please wait until data is loaded.

Busy Dialog with Text and Cancel Button

  • Offer Cancel if you expect the process to run more than 10 seconds. In addition, always display text that precisely describes the ongoing operation.
  • Do not change the mouse cursor to indicate the ongoing operation.

Timing and Duration

We recommend displaying the busy dialog one second after the process has been triggered and for a minimum time of 500 ms to avoid flickering. For processes that last less then one second, a busy dialog is not displayed at all.

Example: A process takes 1.3 s in total. After one second, the busy dialog is displayed. The process finishes in 1.3 seconds. To avoid flickering, you should display the busy dialog for at least 500 ms, so you will need to add 200 ms to avoid flickering.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Busy State

You can set a busy state for each SAPUI5 control.

Usage

Use the busy state of the control if:

  • The operation takes more than one second (busy state set at control level)
  • You want to indicate that data is loading on a table or on a list after performing a search or filtering (set the busy state at table or list level).

Do not use the busy state if:

  • The operation lasts less than one second.
  • You expect several busy states at once. In this case, consider setting the busy state at a higher level or container.
Busy button
Busy button
Busy form
Busy form
Busy list
Busy list

Guidelines

Avoid showing multiple busy states at once. If you expect multiple busy states on various controls, you can set the busy state on a control or container above.

In some cases, however, it makes sense to allow multiple busy states. For example, a page could contain a form and several tables that load asynchronously. In this case, it does not make sense to set the busy state at page level until all the data is loaded as the user can start filling out the form which is already available. Response times may vary due to table data retrieval from different services.

Try to enable as much as possible on one screen,so the user can start working while the rest of the data is being loaded in the background. Set the busy state for those UI elements that will require some time to load.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Busy State

You can set a busy state for each SAPUI5 control. This function adapts to the space available on the UI.

Usage

Use the busy state of the control if:

  • The operation takes more than one second (busy state set at control level)
  • You want to indicate that data is loading on a table or on a list after performing a search or filtering (set the busy state at table or list level).

Do not use the busy state if:

  • The operation lasts less than one second.
  • You expect several busy states at once. In this case, consider setting the busy state at a higher level or container.
Busy button
Busy button
Busy button small
Busy button small
Busy form
Busy form
Busy list
Busy list

Guidelines

Avoid showing multiple busy states at once. If you expect multiple busy states on various controls, you can set the busy state on a control or container above.

In some cases, however, it makes sense to allow multiple busy states. For example, a page could contain a form and several tables that load asynchronously. In this case, it does not make sense to set the busy state at page level until all the data is loaded as the user can start filling out the form which is already available. Response times may vary due to table data retrieval from different services.

Try to enable as much as possible on one screen,so the user can start working while the rest of the data is being loaded in the background. Set the busy state for those UI elements that will require some time to load.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Busy State

You can set a busy state for each SAPUI5 control. This function adapts to the space available on the UI.

Usage

Use the busy state of the control if:

  • The operation takes more than one second (busy state set at control level)
  • You want to indicate that data is loading on a table or on a list after performing a search or filtering (set the busy state at table or list level).

Do not use the busy state if:

  • The operation lasts less than one second.
  • You expect several busy states at once. In this case, consider setting the busy state at a higher level or container.
Busy button
Busy button
Busy button - Small
Busy button - Small
Busy form
Busy form
Busy list
Busy list

Guidelines

Avoid showing multiple busy states at once. If you expect multiple busy states on various controls, you can set the busy state on a control or container above.

In some cases, however, it makes sense to allow multiple busy states. For example, a page could contain a form and several tables that load asynchronously. In this case, it does not make sense to set the busy state at page level until all the data is loaded as the user can start filling out the form which is already available. Response times may vary due to table data retrieval from different services.

Try to enable as much as possible on one screen,so the user can start working while the rest of the data is being loaded in the background. Set the busy state for those UI elements that will require some time to load.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Image

Images are not only for decoration. They can be a powerful way to capture the user’s attention and communicate your message. You can use the image control to integrate images into your apps. Images are visual representations of objects or functions.

Responsiveness

The size of the image is simply adjusted to the amount of space available.

Size S (Smartphones)

Object view (size S)
Object view (size S)

Size M (Tablets)

Object view (size M)
Object view (size M)

Size L (Desktops)

Object view (size L)
Object view (size L)

Layout

Images can be used in various locations in the app, such as in a list cell or object header, and also in the content area. App developers determine the most appropriate area. See the examples below.

Images placed in a table
Images placed in a table

Image placed in the object header
Image placed in the object header

Image placed in a carousel
Image placed in a carousel
Image placed in a dialog
Image placed in a dialog

Behavior and Interaction

Clicking/Tapping an Image (Optional)

Various options are available in terms of size setting, and the images can also be combined with actions. The most common behavior is clicking or tapping the image to enlarge it.

Properties

  • The original image size can be modified.
  • An image can be decorative only.
  • An image can be connected to an image map.
  • You can trigger an action for navigation.
  • Connection to an on-screen user assistance is supported.

Guidelines

  • For accessibility reasons, provide each image with an alternative text in case the image is not available or cannot be displayed.
  • Do not use placeholder images if you do not plan to replace them with real images.
  • Do not use icons as images. There is a separate icon font for such cases, which consists of more than 500 scalable pictograms in SAP’s illustrative style.
  • It is extremely important that you choose the right file format when saving your images. Three image formats are used consistently in browsers – PNG, JPG, and GIF.
  • When choosing the format for your image, you should always be conscious of the image quality and file size.
  • High-resolution images that are unnecessarily large in file size can drastically slow down page speed. Optimize your images in this case.
Good quality
Good quality
Poor quality
Poor quality

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Image (SAPUI5 samples)
  • Image (SAPUI5 API reference)

Image

Images are not only for decoration. They can be a powerful way to capture the user’s attention and communicate your message. You can use the image control to integrate images into your apps. Images are visual representations of objects or functions.

Responsiveness

The size of the image is simply adjusted to the amount of space available.

Size S (Smartphones)

Object view (size S)
Object view (size S)

Size M (Tablets)

Object view (size M)
Object view (size M)

Size L (Desktops)

Object view (size L)
Object view (size L)

Layout

Images can be used in various locations in the app, such as in a list cell or object header, and also in the content area. App developers determine the most appropriate area. See the examples below.

Images placed in a table
Images placed in a table

Image placed in the object header
Image placed in the object header

Image placed in a carousel
Image placed in a carousel
Image placed in a dialog
Image placed in a dialog

Behavior and Interaction

Clicking/Tapping an Image (Optional)

Various options are available in terms of size setting, and the images can also be combined with actions. The most common behavior is clicking or tapping the image to enlarge it.

Properties

  • The original image size can be modified.
  • An image can be decorative only.
  • An image can be connected to an image map.
  • You can trigger an action for navigation.
  • Connection to an on-screen user assistance is supported.

Guidelines

  • For accessibility reasons, provide each image with an alternative text in case the image is not available or cannot be displayed.
  • Do not use placeholder images if you do not plan to replace them with real images.
  • Do not use icons as images. There is a separate icon font for such cases, which consists of more than 500 scalable pictograms in SAP’s illustrative style.
  • It is extremely important that you choose the right file format when saving your images. Three image formats are used consistently in browsers – PNG, JPG, and GIF.
  • When choosing the format for your image, you should always be conscious of the image quality and file size.
  • High-resolution images that are unnecessarily large in file size can drastically slow down page speed. Optimize your images in this case.
Good quality
Good quality
Poor quality
Poor quality

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Image (SAPUI5 samples)
  • Image (SAPUI5 API reference)

Image

Images are not only for decoration. They can be a powerful way to capture the user’s attention and communicate your message. You can use the image control to integrate images into your apps. Images are visual representations of objects or functions.

Responsiveness

The size of the image is simply adjusted to the amount of space available.

Size S (Smartphones)

Object view (size S)
Object view (size S)

Size M (Tablets)

Object view (size M)
Object view (size M)

Size L (Desktops)

Object view (size L)
Object view (size L)

Layout

Images can be used in various locations in the app, such as in a list cell or object header, and also in the content area. App developers determine the most appropriate area. See the examples below.

Images placed in a table
Images placed in a table

Image placed in the object header
Image placed in the object header

Image placed in a carousel
Image placed in a carousel
Image placed in a dialog
Image placed in a dialog

Behavior and Interaction

Clicking/Tapping an Image (Optional)

Various options are available in terms of size setting, and the images can also be combined with actions. The most common behavior is clicking or tapping the image to enlarge it.

Properties

  • The original image size can be modified.
  • An image can be decorative only.
  • An image can be connected to an image map.
  • You can trigger an action for navigation.
  • Connection to an on-screen user assistance is supported.

Guidelines

  • For accessibility reasons, provide each image with an alternative text in case the image is not available or cannot be displayed.
  • Do not use placeholder images if you do not plan to replace them with real images.
  • Do not use icons as images. There is a separate icon font for such cases, which consists of more than 500 scalable pictograms in SAP’s illustrative style.
  • It is extremely important that you choose the right file format when saving your images. Three image formats are used consistently in browsers – PNG, JPG, and GIF.
  • When choosing the format for your image, you should always be conscious of the image quality and file size.
  • High-resolution images that are unnecessarily large in file size can drastically slow down page speed. Optimize your images in this case.
Good quality
Good quality
Poor quality
Poor quality

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Image (SAPUI5 samples)
  • Image (SAPUI5 API reference)

Image

Images are not only for decoration. They can be a powerful way to capture the user’s attention and communicate your message. You can use the image control to integrate images into your apps. Images are visual representations of objects or functions.

Responsiveness

The size of the image is simply adjusted to the amount of space available.

Size S (Smartphones)

Object page (size S)
Object page (size S)

Size M (Tablets)

Object page (size M)
Object page (size M)

Size L (Desktops)

Object view (size L)
Object view (size L)

Layout

Images can be used in various locations in the app, such as in a list cell or object header, and also in the content area. App developers determine the most appropriate area. See the examples below.

Images placed in a table
Images placed in a table

Image placed in the object header
Image placed in the object header

Image placed in a carousel
Image placed in a carousel
Image placed in a dialog
Image placed in a dialog

Behavior and Interaction

Clicking/Tapping an Image (Optional)

Various options are available in terms of size setting, and the images can also be combined with actions. The most common behavior is clicking or tapping the image to enlarge it.

Properties

  • The original image size can be modified.
  • An image can be decorative only.
  • An image can be connected to an image map.
  • You can trigger an action for navigation.
  • Connection to an on-screen user assistance is supported.

Guidelines

  • For accessibility reasons, provide each image with an alternative text in case the image is not available or cannot be displayed.
  • Do not use placeholder images if you do not plan to replace them with real images.
  • Do not use icons as images. There is a separate icon font for such cases, which consists of more than 500 scalable pictograms in SAP’s illustrative style.
  • It is extremely important that you choose the right file format when saving your images. Three image formats are used consistently in browsers – PNG, JPG, and GIF.
  • When choosing the format for your image, you should always be conscious of the image quality and file size.
  • High-resolution images that are unnecessarily large in file size can drastically slow down page speed. Optimize your images in this case.
Good quality
Good quality
Poor quality
Poor quality

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Image (SAPUI5 samples)
  • Image (SAPUI5 API reference)

Token

Tokens are small items of information (similar to tags) that mainly serve to visualize previously selected items. The tokenizer is the container that handles the tokens. Tokens can be added, removed, selected, or deselected.

Token
Token

Usage

Use tokens only in the multi-combo boxmulti-input control, or value help dialog.

Components

The tokenizer is an invisible container that can display multiple tokens.

Tokens have the following properties:

  • They usually contain single text items.
  • They may also contain key-value pairs, such as John Miller (ID1234567).
  • They contain a Remove icon  , which is invisible if the token is in edit mode.
Tokens with a surrounding tokenizer
Tokens with a surrounding tokenizer

Behavior and Interaction

Interacting

Users can interact with tokens using a mouse, keyboard, and/or touch input. In size L (desktop) only, hovering with the mouse over the token produces a tooltip with the entire content of the token (on a maximum of two lines).

Selecting and Deselecting Tokens

Users can select tokens by clicking or tapping them, or by using the keyboard. The selected tokens are then indicated. Users can select multiple tokens separately by holding down the CTRL key and selecting the relevant tokens, for example, by clicking them.

The user can select a series of tokens by placing the cursor in an initial position (which can also be a token), holding down the SHIFT key, and clicking or tapping a new position. The tokens between these two cursor positions are then selected.

To replace a token, the user selects it and enters new characters.

Adding Tokens

The user can add tokens to the multi-combo box and multi-input control. New tokens are added in the order in which they are entered.

Information
For information on how to manage leading and treading whitespace (blanks) when copying and pasting text into input controls, please see removing leading and trailing whitespace.

Removing Tokens

The user can instantly remove tokens via the keyboard, or by clicking or tapping the Remove  icon .

Styles

There are three different styles of tokens: regularon hover, and selected. These styles correspond to the type of interaction being used.

Regular
Regular
On hover
On hover
Selected
Selected
Read only
Read only
Hover selected
Hover selected

Guidelines

  • The tokenizer can also be used as a tag container.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Token

Tokens are small items of information (similar to tags) that mainly serve to visualize previously selected items. The tokenizer is the container that handles the tokens. Tokens can be added, removed, selected, or deselected.

Token
Token

Usage

Use tokens only in the multi-combo boxmulti-input control, or value help dialog.

Components

The tokenizer is an invisible container that can display multiple tokens.

Tokens have the following properties:

  • They usually contain single text items.
  • They may also contain key-value pairs, such as John Miller (ID1234567).
  • They contain a Remove icon  , which is invisible if the token is in edit mode.
Tokens with a surrounding tokenizer
Tokens with a surrounding tokenizer

Behavior and Interaction

Interacting

Users can interact with tokens using a mouse, keyboard, and/or touch input. In size L (desktop) only, hovering with the mouse over the token produces a tooltip with the entire content of the token (on a maximum of two lines).

Selecting and Deselecting Tokens

Users can select tokens by clicking or tapping them, or by using the keyboard. The selected tokens are then indicated. Users can select multiple tokens separately by holding down the CTRL key and selecting the relevant tokens, for example, by clicking them.

The user can select a series of tokens by placing the cursor in an initial position (which can also be a token), holding down the SHIFT key, and clicking or tapping a new position. The tokens between these two cursor positions are then selected.

To replace a token, the user selects it and enters new characters.

Adding Tokens

The user can add tokens to the multi-combo box and multi-input control. New tokens are added in the order in which they are entered.

Removing Tokens

The user can instantly remove tokens via the keyboard, or by clicking or tapping the Remove  icon .

Styles

There are three different styles of tokens: regularon hover, and selected. These styles correspond to the type of interaction being used.

Regular
Regular
On hover
On hover
Selected
Selected

Guidelines

  • The tokenizer can also be used as a tag container.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Token

Tokens are small items of information (similar to tags) that mainly serve to visualize previously selected items. The tokenizer is the container that handles the tokens. Tokens can be added, removed, selected, or deselected.

Token
Token

Usage

Use tokens only in the multi-combo boxmulti-input control, or value help dialog.

Components

The tokenizer is an invisible container that can display multiple tokens.

Tokens have the following properties:

  • They usually contain single text items.
  • They may also contain key-value pairs, such as John Miller (ID1234567).
  • They contain a Remove icon  , which is invisible if the token is in edit mode.
Tokens with a surrounding tokenizer
Tokens with a surrounding tokenizer

Behavior and Interaction

Interacting

Users can interact with tokens using a mouse, keyboard, and/or touch input. In size L (desktop) only, hovering with the mouse over the token produces a tooltip with the entire content of the token (on a maximum of two lines).

Selecting and Deselecting Tokens

Users can select tokens by clicking or tapping them, or by using the keyboard. The selected tokens are then indicated. Users can select multiple tokens separately by holding down the CTRL key and selecting the relevant tokens, for example, by clicking them.

The user can select a series of tokens by placing the cursor in an initial position (which can also be a token), holding down the SHIFT key, and clicking or tapping a new position. The tokens between these two cursor positions are then selected.

To replace a token, the user selects it and enters new characters.

Adding Tokens

The user can add tokens to the multi-combo box and multi-input control. New tokens are added in the order in which they are entered.

Information
For information on how to manage leading and treading whitespace (blanks) when copying and pasting text into input controls, please see removing leading and trailing whitespace.

Removing Tokens

The user can instantly remove tokens via the keyboard, or by clicking or tapping the Remove  icon .

Styles

There are three different styles of tokens: regularon hover, and selected. These styles correspond to the type of interaction being used.

Regular
Regular
On hover
On hover
Selected
Selected

Guidelines

  • The tokenizer can also be used as a tag container.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Action Select

The action select control allows you to offer actions within a selection dialog. The action can refer to the selected element.

The action select control is based on the select and action list item controls.

Warning
The action select control was formerly used for variant management, but this is no longer the case. If you would like to use this control, contact us for further advice.

Responsiveness

Size S
Size S
Size M
Size M
Size L
Size L

Layout

Action select is a combination of the select control and the action list item control.

Action select – Layout
Action select – Layout

Behavior and Interaction

Scroll

The actions are available within the scrollable content area.

Action select – Actions within scrollable content
Action select – Actions within scrollable content

Message Handling

After the user executes an action, a corresponding message appears.

Action select – Message handling
Action select – Message handling

Guidelines

Use a reasonable number of actions within the action select control. Depending on the use case and the device, you may want to include fewer actions.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Select (guidelines) Action List Item (guidelines)

Implementation

Action Select (SAPUI5 Explored) Select (SAPUI5 Explored) Action List Item (SAPUI5 Explored) Action Select (API) Select (API) Action List Item (API)

Feed and Notes

Feeds and notes are commonplace in many SAP Fiori applications. The sap.m.FeedInput control allows users to input and post plain text, while the sap.m.FeedListItem control handles and displays this text. Both can be used individually, but they also complement each other well to create a simple feed or notes control.

Usage

Feed Input

Use the feed input if:

  • A user needs to input small amounts of text without formatting.
  • You expect multiple instances, such as notes or feed entries.

Do not use the feed input if:

  • The user needs to format the text (rich text editor).
  • You need only a single text box instance. In this case, use the text area (for multiple lines) or the text control (for a single line).

Feed List Item

Use the feed list item if:

  • You need to show unformatted text with a user’s name in front, such as for a feed control or notes control.

Do not use the feed list item if:

  • You need to display formatted text.
  • You need to display large amounts of text.

Combination of Both Controls (as Feed or Notes Control)

Use both controls if:

  • You need a feed to show textual posts.
  • Your users need to input notes.

Do not use both controls if:

  • You expect extensive social interaction in the feed.
  • Users need to reply at item level instead of creating a new post.
  • You want to display SAP Jam feeds.

In these cases, use the social timeline instead (requires SAP Jam).

Responsiveness

Due to their responsive behavior, both controls can be used in small and large view ports or screens.

Feed – Size S
Feed – Size S
Feed – Size M
Feed – Size M
Feed – Size L
Feed – Size L

When the width of the available space falls below 25 rem (for example, in portrait mode on smartphones), the two controls respond as follows:

  • If a user image previously appeared in the feed input, it will be omitted in narrow screens to give the text field more space.
  • If there is no user image, there will be no visual change.
Feed input – Responsiveness
Feed input – Responsiveness

In the feed list item, the user’s name, image, and the time stamp move on top of the text. If there is no image, the name and time stamp are left-aligned together with the text.

Feed list item – Responsiveness – With image
Feed list item – Responsiveness – With image
Feed list item – Responsiveness – Without image
Feed list item – Responsiveness – Without image

Layout

Feed Input

The feed input consists of:

  • A text input field with a placeholder (input prompt)
    Example: Add a comment
  • A Send button
  • An optional user image

You can also choose not to show user images at all. In this case, the size of the input area increases automatically.

Feed input – Layout – With user image
Feed input – Layout – With user image
Feed input – Layout – With generic user image
Feed input – Layout – With generic user image
Feed input – Layout – Without user image
Feed input – Layout – Without user image

Feed List Item

The feed list item consists of the user’s name and an optional picture of the user who wrote the note or update. The name can contain a link that triggers a quick overview of the user’s profile data. The actual text written by the user follows the name. Below it is a separate byline that can contain a time stamp and an attribute in the form of free text. This allows you to put in your own attribute, such as Approval, Internal, or External. Both the time stamp and the attribute are optional.

If the name is a link, the picture should also be linked with the same attributes.

Feed list item – With user image and linked name
Feed list item – With user image and linked name

If the user does not have a picture assigned, a placeholder is shown instead:

Feed list item – With generic user image and linked name
Feed list item – With generic user image and linked name

The name (and picture) can also be read-only, that is, without a link:

Feed list item – With user image but without links
Feed list item – With user image but without links

If the app does not support user images, they can be omitted:

Feed list item – Without user image but with linked name
Feed list item – Without user image but with linked name

Here, too, the name can be read-only:

Feed list item – Without user image and read-only name
Feed list item – Without user image and read-only name

It’s also possible to display rich text (formatted text) in the feed list item. This feature should be handled with care as it allows for countless custom layouts.

Please see that you use it responsibly and provide your users with a consistent experience. Only deviate from the default layout and font if absolutely required by the use case.

Example use case: Render URLs as links.

Feed list item – Layout – Rich text
Feed list item – Layout – Rich text
Information
The items in the feed list must be homogeneous. This means that they must contain the same layout and visualization. For example, it is not possible to have a feed containing both linked and plain names, or both user images and default images.

Special Case: Multiple Types of Notes

Apps sometimes need to discern between different types of notes. There is an easy way to allow users to choose which type they want to see or add to the list.

You can place a toolbar containing a select control at the top of the feed input control. From there, users can select the type of notes, such as Internal Notes or External Notes. The list of notes must contain only the type selected. If the user adds a note via the feed input, the type must be set automatically according to the selection.

Interaction – Note types (1)
Interaction – Note types (1)
Interaction – Note types (2)
Interaction – Note types (2)
Interaction – Note types (3)
Interaction – Note types (3)

Components

The feed input and feed list item do not contain subcontrols. However, you can easily combine them to create a simple feed or notes control.

Although the feed input counts as a single control, the input area inherits its behavior from the sap.m.TextArea control.

Behavior and Interaction

Send Message

Initially, the feeder contains a placeholder (input prompt), and the Send button is disabled, with reduced opacity.

Clicking into the input field puts the focus on the field and allows to start typing.

When the user starts to type, the placeholder disappears and the Send button becomes active and more prominent.

If the available width is below 25 rem (for example, in portrait mode on a smartphone), the picture is removed.

To send the text, the user must explicitly click or tap the Send button. Pressing Enter on the keyboard (on-screen or physical) results in a line break.

Feed input – Behavior
Feed input – Behavior

Show More Text

When the text exceeds a certain number of characters (you can overwrite the default value), the rest of the text is truncated and a MORE link appears after the truncated section.

Initially, the MORE link is gray, so it does not divert the user’s attention away from the actual text. When the user moves the mouse over the feed text, the MORE link is highlighted. Hovering over the link underlines it.

Show Less Text

When the user expands the text, the name of this link changes to LESS,  but still behaves the same way as before.

Feed and Notes in Tables

In tables, users sometimes need to see if an object has a comment (or feed or note) without further navigation, and even be able to add/edit right from the table.

Add an additional row, named according to the type of user input, such as Comment, Note, or Feed.

Place a link inside each cell with the appropriate action (row: Comment, link: Comment/ row: Feed, link: Post).
If there can be more than one item, add a counter after the text as well (see example on the right).

This solution works with every table control.

Feed and notes in tables (1)
Feed and notes in tables (1)

Optional:
Depending on the use case, it might help users if they can see the latest note. The responsive table allows the feed list item (sap.m.FeedListItem) to be used inside a cell.

Reduce the property “maxCharacters” to an amount that your table can handle.
Note that once the maximum number of characters has been reached, a MORE link allows users to expand the text. Technically, this is no problem for the responsive table, but you need to ensure that the layout of your page allows this kind of expansion.

Place a link below the feed list item to allow users to add something (as described above).

Feed and notes in tables (2)
Feed and notes in tables (2)

When the user clicks a link, such as Comment or Note, display a dialog showing all comments (notes, feed entries, and so on) along with possible actions, such as Add or Edit, depending on your use case.

There are several ways to show notes (comments, feed entries, and so on) in a dialog:

  • You can use the feed list item (and feed input) as described in this article.
  • If only one single note is allowed, you can use the text area.
  • For a large feed, you can use the timeline control (SAP Jam is required for social features).

Guidelines

Because the feed list item is built on the basis of the standard list item, it inherits multiple properties that may not make sense in a feed use case.

Use only properties that are described in this article. Especially making the entire feed list item clickable can lead to functional issues and usability problems.

If you display formatted text (rich text) in the feed list item, only use formatting that is beneficial to users, and not for decorative purposes. See that you use it responsibly and provide your users with a consistent experience. Only deviate from the default layout and font if absolutely required by the use case (example: render URLs as links).

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links.

Implementation

Feed and Notes

Feeds and notes are commonplace in many SAP Fiori applications. The sap.m.FeedInput control allows users to input and post plain text, while the sap.m.FeedListItem control handles and displays this text. Both can be used individually, but they also complement each other well to create a simple feed or notes control.

Usage

Feed Input

Use the feed input if:

  • A user needs to input small amounts of text without formatting.
  • You expect multiple instances, such as notes or feed entries.

Do not use the feed input if:

  • The user needs to format the text (rich text editor).
  • You need only a single text box instance. In this case, use the text area (for multiple lines) or the text control (for a single line).

Feed List Item

Use the feed list item if:

  • You need to show unformatted text with a user’s name in front, such as for a feed control or notes control.

Do not use the feed list item if:

  • You need to display formatted text.
  • You need to display large amounts of text.

Combination of Both Controls (as Feed or Notes Control)

Use both controls if:

  • You need a feed to show textual posts.
  • Your users need to input notes.

Do not use both controls if:

  • You expect extensive social interaction in the feed.
  • Users need to reply at item level instead of creating a new post.
  • You want to display SAP Jam feeds.

In these cases, use the social timeline instead (requires SAP Jam).

Responsiveness

Due to their responsive behavior, both controls can be used in small and large view ports or screens.

Feed – Size S
Feed – Size S
Feed – Size M
Feed – Size M
Feed – Size L
Feed – Size L

When the width of the available space falls below 25 rem (for example, in portrait mode on smartphones), the two controls respond as follows:

  • If a user image previously appeared in the feed input, it will be omitted in narrow screens to give the text field more space.
  • If there is no user image, there will be no visual change.
Feed input – Responsiveness
Feed input – Responsiveness

In the feed list item, the user’s name, image, and the time stamp move on top of the text. If there is no image, the name and time stamp are left-aligned together with the text.

Feed list item – Responsiveness – With image
Feed list item – Responsiveness – With image
Feed list item – Responsiveness – Without image
Feed list item – Responsiveness – Without image

Layout

Feed Input

The feed input consists of:

  • A text input field with a placeholder (input prompt)
    Example: Add a comment
  • A Send button
  • An optional user image

You can also choose not to show user images at all. In this case, the size of the input area increases automatically.

Feed input – Layout – With user image
Feed input – Layout – With user image
Feed input – Layout – With generic user image
Feed input – Layout – With generic user image
Feed input – Layout – Without user image
Feed input – Layout – Without user image

Feed List Item

The feed list item consists of the user’s name and an optional picture of the user who wrote the note or update. The name can contain a link that triggers a quick overview of the user’s profile data. The actual text written by the user follows the name. Below it is a separate byline that can contain a time stamp and an attribute in the form of free text. This allows you to put in your own attribute, such as Approval, Internal, or External. Both the time stamp and the attribute are optional.

If the name is a link, the picture should also be linked with the same attributes.

Feed list item – With user image and linked name
Feed list item – With user image and linked name

If the user does not have a picture assigned, a placeholder is shown instead:

Feed list item – With generic user image and linked name
Feed list item – With generic user image and linked name

The name (and picture) can also be read-only, that is, without a link:

Feed list item – With user image but without links
Feed list item – With user image but without links

If the app does not support user images, they can be omitted:

Feed list item – Without user image but with linked name
Feed list item – Without user image but with linked name

Here, too, the name can be read-only:

Feed list item – Without user image and read-only name
Feed list item – Without user image and read-only name
Information
The items in the feed list must be homogeneous. This means that they must contain the same layout and visualization. For example, it is not possible to have a feed containing both linked and plain names, or both user images and default images.

Special Case: Multiple Types of Notes

Apps sometimes need to discern between different types of notes. There is an easy way to allow users to choose which type they want to see or add to the list.

You can place a toolbar containing a select control at the top of the feed input control. From there, users can select the type of notes, such as Internal Notes or External Notes. The list of notes must contain only the type selected. If the user adds a note via the feed input, the type must be set automatically according to the selection.

Components

The feed input and feed list item do not contain subcontrols. However, you can easily combine them to create a simple feed or notes control.

Although the feed input counts as a single control, the input area inherits its behavior from the sap.m.TextArea control.

Behavior and Interaction

Send Message

Initially, the feeder contains a placeholder (input prompt), and the Send button is disabled, with reduced opacity.

Clicking into the input field puts the focus on the field and allows to start typing.

When the user starts to type, the placeholder disappears and the Send button becomes active and more prominent.

If the available width is below 25 rem (for example, in portrait mode on a smartphone), the image is removed.

To send the text, the user must explicitly click or tap the Send button. Pressing Enter on the keyboard (on-screen or physical) results in a line break.

Show More Text

When the text exceeds a certain number of characters (you can overwrite the default value), the rest of the text is truncated and a MORE link appears after the truncated section.

Initially, the MORE link is gray, so it does not divert the user’s attention away from the actual text. When the user moves the mouse over the feed text, the MORE link is highlighted. Hovering over the link underlines it.

Show Less Text

When the user expands the text, the name of this link changes to LESS,  but still behaves the same way as before.

Feed and Notes in Tables

In tables, users sometimes need to see if an object has a comment (or feed or note) without further navigation, and even be able to add/edit right from the table.

Add an additional row, named according to the type of user input, such as Comment, Note, or Feed.

Place a link inside each cell with the appropriate action (row: Comment, link: Comment/ row: Feed, link: Post).
If there can be more than one item, add a counter after the text as well (see example on the right).

This solution works with every table control.

Feed and notes in tables_01
Feed and notes in tables_01

Optional:
Depending on the use case, it might help users if they can see the latest note. The responsive table allows the feed list item (sap.m.FeedListItem) to be used inside a cell.

Reduce the property “maxCharacters” to an amount that your table can handle.
Note that once the maximum number of characters has been reached, a MORE link allows users to expand the text. Technically, this is no problem for the responsive table, but you need to ensure that the layout of your page allows this kind of expansion.

Place a link below the feed list item to allow users to add something (as described above).

Feed and notes in tables_02
Feed and notes in tables_02

When the user clicks a link, such as Comment or Note, display a dialog showing all comments (notes, feed entries, and so on) along with possible actions, such as Add or Edit, depending on your use case.

There are several ways to show notes (comments, feed entries, and so on) in a dialog:

  • You can use the feed list item (and feed input) as described in this article.
  • If only one single note is allowed, you can use the text area.
  • For a large feed, you can use the timeline control (SAP Jam is required for social features).

Guidelines

Because the feed list item is built on the basis of the standard list item, it inherits multiple properties that may not make sense in a feed use case.

Use only properties that are described in this article. Especially making the entire feed list item clickable can lead to functional issues and usability problems.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links.

Implementation

Feed and Notes

Feeds and notes are commonplace in many SAP Fiori applications. The sap.m.FeedInput control allows users to input and post plain text, while the sap.m.FeedListItem control handles and displays this text. Both can be used individually, but they also complement each other well to create a simple feed or notes control.

Usage

Feed Input

Use the feed input if:

  • A user needs to input small amounts of text without formatting.
  • You expect multiple instances, such as notes or feed entries.

Do not use the feed input if:

  • The user needs to format the text (rich text editor).
  • You need only a single text box instance. In this case, use the text area (for multiple lines) or the text control (for a single line).

Feed List Item

Use the feed list item if:

  • You need to show unformatted text with a user’s name in front, such as for a feed control or notes control.

Do not use the feed list item if:

  • You need to display formatted text.
  • You need to display large amounts of text.

Combination of Both Controls (as Feed or Notes Control)

Use both controls if:

  • You need a feed to show textual posts.
  • Your users need to input notes.

Do not use both controls if:

  • You expect extensive social interaction in the feed.
  • Users need to reply at item level instead of creating a new post.
  • You want to display SAP Jam feeds.

In these cases, use the social timeline instead (requires SAP Jam).

Responsiveness

Due to their responsive behavior, both controls can be used in small and large view ports or screens.

Feed – Size S
Feed – Size S
Feed – Size M
Feed – Size M
Feed – Size L
Feed – Size L

When the width of the available space falls below 25 rem (for example, in portrait mode on smartphones), the two controls respond as follows:

  • If a user image previously appeared in the feed input, it will be omitted in narrow screens to give the text field more space.
  • If there is no user image, there will be no visual change.
Feed input – Responsiveness
Feed input – Responsiveness

In the feed list item, the user’s name, image, and the time stamp move on top of the text. If there is no image, the name and time stamp are left-aligned together with the text.

Feed list item – Responsiveness – With image
Feed list item – Responsiveness – With image
Feed list item – Responsiveness – Without image
Feed list item – Responsiveness – Without image

Layout

Feed Input

The feed input consists of:

  • A text input field with a placeholder (input prompt)
    Example: Add a comment
  • A Send button
  • An optional user image

You can also choose not to show user images at all. In this case, the size of the input area increases automatically.

Feed input – Layout – With user image
Feed input – Layout – With user image
Feed input – Layout – With generic user image
Feed input – Layout – With generic user image
Feed input – Layout – Without user image
Feed input – Layout – Without user image

Feed List Item

The feed list item consists of the user’s name and an optional picture of the user who wrote the note or update. The name can contain a link that triggers a quick overview of the user’s profile data. The actual text written by the user follows the name. Below it is a separate byline that can contain a time stamp and an attribute in the form of free text. This allows you to put in your own attribute, such as Approval, Internal, or External. Both the time stamp and the attribute are optional.

If the name is a link, the picture should also be linked with the same attributes.

Feed list item – With user image and linked name
Feed list item – With user image and linked name

If the user does not have a picture assigned, a placeholder is shown instead:

Feed list item – With generic user image and linked name
Feed list item – With generic user image and linked name

The name (and picture) can also be read-only, that is, without a link:

Feed list item – With user image but without links
Feed list item – With user image but without links

If the app does not support user images, they can be omitted:

Feed list item – Without user image but with linked name
Feed list item – Without user image but with linked name

Here, too, the name can be read-only:

Feed list item – Without user image and read-only name
Feed list item – Without user image and read-only name
Information
The items in the feed list must be homogeneous. This means that they must contain the same layout and visualization. For example, it is not possible to have a feed containing both linked and plain names, or both user images and default images.

Special Case: Multiple Types of Notes

Apps sometimes need to discern between different types of notes. There is an easy way to allow users to choose which type they want to see or add to the list.

You can place a toolbar containing a select control at the top of the feed input control. From there, users can select the type of notes, such as Internal Notes or External Notes. The list of notes must contain only the type selected. If the user adds a note via the feed input, the type must be set automatically according to the selection.

Interaction – Note types (1)
Interaction – Note types (1)
Interaction – Note types (2)
Interaction – Note types (2)
Interaction – Note types (3)
Interaction – Note types (3)

Components

The feed input and feed list item do not contain subcontrols. However, you can easily combine them to create a simple feed or notes control.

Although the feed input counts as a single control, the input area inherits its behavior from the sap.m.TextArea control.

Behavior and Interaction

Send Message

Initially, the feeder contains a placeholder (input prompt), and the Send button is disabled, with reduced opacity.

Clicking into the input field puts the focus on the field and allows to start typing.

When the user starts to type, the placeholder disappears and the Send button becomes active and more prominent.

If the available width is below 25 rem (for example, in portrait mode on a smartphone), the picture is removed.

To send the text, the user must explicitly click or tap the Send button. Pressing Enter on the keyboard (on-screen or physical) results in a line break.

Feed input – Behavior
Feed input – Behavior

Show More Text

When the text exceeds a certain number of characters (you can overwrite the default value), the rest of the text is truncated and a MORE link appears after the truncated section.

Initially, the MORE link is gray, so it does not divert the user’s attention away from the actual text. When the user moves the mouse over the feed text, the MORE link is highlighted. Hovering over the link underlines it.

Show Less Text

When the user expands the text, the name of this link changes to LESS,  but still behaves the same way as before.

Feed and Notes in Tables

In tables, users sometimes need to see if an object has a comment (or feed or note) without further navigation, and even be able to add/edit right from the table.

Add an additional row, named according to the type of user input, such as Comment, Note, or Feed.

Place a link inside each cell with the appropriate action (row: Comment, link: Comment/ row: Feed, link: Post).
If there can be more than one item, add a counter after the text as well (see example on the right).

This solution works with every table control.

Feed and notes in tables (1)
Feed and notes in tables (1)

Optional:
Depending on the use case, it might help users if they can see the latest note. The responsive table allows the feed list item (sap.m.FeedListItem) to be used inside a cell.

Reduce the property “maxCharacters” to an amount that your table can handle.
Note that once the maximum number of characters has been reached, a MORE link allows users to expand the text. Technically, this is no problem for the responsive table, but you need to ensure that the layout of your page allows this kind of expansion.

Place a link below the feed list item to allow users to add something (as described above).

Feed and notes in tables (2)
Feed and notes in tables (2)

When the user clicks a link, such as Comment or Note, display a dialog showing all comments (notes, feed entries, and so on) along with possible actions, such as Add or Edit, depending on your use case.

There are several ways to show notes (comments, feed entries, and so on) in a dialog:

  • You can use the feed list item (and feed input) as described in this article.
  • If only one single note is allowed, you can use the text area.
  • For a large feed, you can use the timeline control (SAP Jam is required for social features).

Guidelines

Because the feed list item is built on the basis of the standard list item, it inherits multiple properties that may not make sense in a feed use case.

Use only properties that are described in this article. Especially making the entire feed list item clickable can lead to functional issues and usability problems.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

  • No links.

Implementation

Feed List Item

The sap.m.FeedListItem is capable of displaying unformatted text accompanied by an optional user image. Together with the sap.m.FeedInput control, it makes a simple feed or notes control.

Responsiveness & Adaptiveness

Its responsive behavior allows the feed list item to appear in both, small and large containers, or screens.

Feed - Size S
Feed - Size S
Feed - Size M
Feed - Size M
Feed - Size L
Feed - Size L

When the width of the available space falls below 25 rem (e.g. portrait mode on smartphones), the feed list item responds as follows.

The user’s name, image, and the time stamp move on top of the text. If there is no image, the name and time stamp are left-aligned together with the text.

Feed list item - Responsiveness - With image
Feed list item - Responsiveness - With image
Feed list item - Responsiveness - Without image
Feed list item - Responsiveness - Without image

Layout

The feed list item consists of the user’s name and an optional picture of the user who wrote the note/ update (optional). The name can contain a link that triggers a quick overview of the user’s profile data. The actual text written by the user follows the name. Below is separate byline that can hold a time stamp and an attribute in the form of free text. This allows apps to put in their own attribute (e.g. approval etc.). Both time stamp and attribute are optional.

In case the name is a link, the picture should also be linked with the same attributes.

Feed list item_01
Feed list item_01

If the user does not have a picture assigned, a placeholder is shown instead:

Feed list item_02
Feed list item_02

Name (and picture) can also be read-only, i.e. without a link:

Feed list item_03
Feed list item_03

In case the app does not support user images at all, they can be omitted:

Feed list item_04
Feed list item_04

Here, too, the name can be read-only:

Feed list item_05
Feed list item_05
Information
The list of feed list items can only be homogeneous. This means all items need to be of the same type: all of them with a picture and linked name or all of them without a picture and a plain name. Any of the above is possible as long as all items have the same layout/ visualization.

Components

The feed list item itself does not contain multiple components. However, to create a simple feed or notes container, it can be combined with the sap.m.FeedInput control.

Behavior & Interaction

Show More Text

When the text exceeds a certain amount of characters (default value can be overwritten by apps), the rest of the text is truncated and a More link appears after the truncated section.

Initially the More link is grey, so it does not divert attention from the actual text.

When the user moves the mouse over the feed chunk, the More link is highlighted.

Hovering over the link underlines it.

Feed list item - More_01
Feed list item - More_01
Feed list item - More_02
Feed list item - More_02
Feed list item - More_03
Feed list item - More_03

Show Less Text

Clicking the link expands the text and the link is relabeled to less.

The link still behaves the same way as before.

Feed list item - More_04
Feed list item - More_04
Feed list item - More_05
Feed list item - More_05
Feed list item - More_06
Feed list item - More_06

Usage

Use the feed list item if…

… you need to show unformatted text with a user’s name in front, e.g. for a feed control or notes control.

Do not use the feed list item if…

… you need to display formatted text.

… you need to display large amounts of text.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

FeedInput (Fiori Design Guidelines)

Implementation

Micro Chart

Micro charts help you visualize a small number of data points in a small, non-interactive way. They can be embedded in tiles, SAP Smart Business drilldowns, and any SAPUI5 container (such as SAPUI5 tables).

Several chart types are available: bullet chart, trend chart, column chart, comparison chart, and harvey ball chart.

Responsiveness

All micro charts are fully responsive.

Types

There are different types of micro charts currently available:

  • Bullet
  • Column
  • Trend
  • Comparison
  • Delta
  • Harvey Ball

 

Bullet Chart

A bullet chart is a variation of a bar graph originally developed by Stephen Few and adapted by SAP Fiori in order to fulfill additional requirements. Much like the traditional thermometer charts and progress bars found in many dashboards, the bullet chart serves as a replacement for dashboard gauges and meters.

The bullet chart features a single, primary measure (for example, current year-to-date revenue). It compares that measure to one or more other measures to enrich its meaning (for example, compared to a target), and displays it in the context of qualitative ranges of performance, such as poor, satisfactory, and good.

Bullet chart without forecast, with forecast, and with only delta value shown
Bullet chart without forecast, with forecast, and with only delta value shown

The actual value is shown as a horizontal bar, the target value as a vertical line (marker), and the thresholds as indicators below the bar. The actual value and target value can have a label.

Only semantic colors (good, critical, bad, neutral) can be used for the actual value.

The forecast is shown as a bar with a lighter tint of the same color as the actual value in the background.

Based on the data points you want to show, choose one of the following visualizations:

  • Actual value vs. target value.
  • Actual value vs. target value with forecast.
  • The delta between the actual value and the target value. For this option, the delta is shown as a bar starting or ending at the target marker.

Column Chart

A column chart (also known as a bar chart) uses rectangular bars to compare categories. One axis of the chart shows the specific categories being compared, the other axis represents a value.

Note: The current version does not show axis or data point labels.

Only semantic colors (good, critical, bad, neutral) can be used.

Multiple column charts
Multiple column charts

Trend Chart (Area Chart)

A trend chart is a line and area chart that provides the same information as a bullet chart, with one exception: A bullet chart shows an additional forecast value, but a trend chart provides information for a specific range of time.

The actual value is shown as a solid line, the target value as a dotted line, and the thresholds as colored areas in the background.

You can show labels for the start value, the end value, the minimum value, the maximum value, and the beginning and end of the time range.

Trend chart with horizontal forecast
Trend chart with horizontal forecast

Comparison Chart

The comparison chart is a bar chart. It compares entries in a top N list. You can choose between two different layouts depending on the available space/parent container. You can use the semantic color palette as well as the chart palette.

Different comparison charts
Different comparison charts

Delta Chart

The delta chart helps to visualize a delta value between two main key figures. The delta can be a positive or negative value. Configured thresholds define the semantic coloring of the delta bar. The left-aligned labels can be omitted, whereas the right-aligned labels with the values are always shown.

Different delta charts
Different delta charts

Harvey Ball Chart

A harvey ball chart should be used to visualize a value compared to its total. This is not a pie chart with multiple values or sections, but rather just one value from a total. If the thresholds are configured, the semantic color of the value shows a positive, critical, or negative value. Regular chart colors without semantic meaning can also be used.

Different harvey ball charts
Different harvey ball charts

Behavior and Interaction

Clicking/Tapping (Optional)

The charts include one behavior or interaction: a click event that can be switched on or off.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Micro Chart

Micro charts help you visualize a small number of data points in a small, non-interactive way. They can be embedded in tiles, SAP Smart Business drilldowns, and any SAPUI5 container (such as SAPUI5 tables).

Several chart types are available: bullet chart, trend chart, column chart, and comparison chart.

Responsiveness

All micro charts are fully responsive.

Types

There are different types of micro charts currently available:

  • Bullet
  • Column
  • Trend
  • Comparison
  • Delta

 

Bullet Chart

A bullet chart is a variation of a bar graph originally developed by Stephen Few and adapted by SAP Fiori in order to fulfill additional requirements. Much like the traditional thermometer charts and progress bars found in many dashboards, the bullet chart serves as a replacement for dashboard gauges and meters.

The bullet chart features a single, primary measure (for example, current year-to-date revenue). It compares that measure to one or more other measures to enrich its meaning (for example, compared to a target), and displays it in the context of qualitative ranges of performance, such as poor, satisfactory, and good.

Bullet chart without forecast, with forecast, and with only delta value shown
Bullet chart without forecast, with forecast, and with only delta value shown

The actual value is shown as a horizontal bar, the target value as a vertical line (marker), and the thresholds as indicators below the bar. The actual value and target value can have a label.

Only semantic colors (good, critical, bad, neutral) can be used for the actual value.

The forecast is shown as a bar with a lighter tint of the same color as the actual value in the background.

Based on the data points you want to show, choose one of the following visualizations:

  • Actual value vs. target value.
  • Actual value vs. target value with forecast.
  • The delta between the actual value and the target value. For this option, the delta is shown as a bar starting or ending at the target marker.

Column Chart

A column chart (also known as a bar chart) uses rectangular bars to compare categories. One axis of the chart shows the specific categories being compared, the other axis represents a value.

Note: The current version does not show axis or data point labels.

Only semantic colors (good, critical, bad, neutral) can be used.

Multiple column charts
Multiple column charts

Trend Chart (Area Chart)

A trend chart is a line and area chart that provides the same information as a bullet chart, with one exception: A bullet chart shows an additional forecast value, but a trend chart provides information for a specific range of time.

The actual value is shown as a solid line, the target value as a dotted line, and the thresholds as colored areas in the background.

You can show labels for the start value, the end value, the minimum value, the maximum value, and the beginning and end of the time range.

Trend chart
Trend chart

Comparison Chart

The comparison chart is a bar chart. It compares entries in a top N list. You can choose between two different layouts depending on the available space/parent container. And you can use the semantic color palette as well as the chart palette.

Different comparison charts
Different comparison charts

Delta Chart

The delta chart helps to visualize a delta value between two main key figures. The delta can be a positive or negative value. Configured thresholds define the semantic coloring of the delta bar. The left-aligned labels can be omitted, whereas the right-aligned labels with the values are always shown.

Different delta charts
Different delta charts

Behavior and Interaction

Clicking/Tapping (Optional)

The charts include one behavior or interaction: a click event that can be switched on or off.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Micro Chart

Micro charts help you visualize a small number of data points in a small, non-interactive way. They can be embedded in tiles, SAP Smart Business drilldowns, and any SAPUI5 container (such as SAPUI5 tables).

Several chart types are available: bullet chart, trend chart, column chart, comparison chart, and harvey ball chart.

Responsiveness

All micro charts are fully responsive.

Types

There are different types of micro charts currently available:

  • Bullet
  • Column
  • Trend
  • Comparison
  • Delta
  • Harvey Ball

 

Bullet Chart

A bullet chart is a variation of a bar graph originally developed by Stephen Few and adapted by SAP Fiori in order to fulfill additional requirements. Much like the traditional thermometer charts and progress bars found in many dashboards, the bullet chart serves as a replacement for dashboard gauges and meters.

The bullet chart features a single, primary measure (for example, current year-to-date revenue). It compares that measure to one or more other measures to enrich its meaning (for example, compared to a target), and displays it in the context of qualitative ranges of performance, such as poor, satisfactory, and good.

Bullet chart without forecast, with forecast, and with only delta value shown
Bullet chart without forecast, with forecast, and with only delta value shown

The actual value is shown as a horizontal bar, the target value as a vertical line (marker), and the thresholds as indicators below the bar. The actual value and target value can have a label.

Only semantic colors (good, critical, bad, neutral) can be used for the actual value.

The forecast is shown as a bar with a lighter tint of the same color as the actual value in the background.

Based on the data points you want to show, choose one of the following visualizations:

  • Actual value vs. target value.
  • Actual value vs. target value with forecast.
  • The delta between the actual value and the target value. For this option, the delta is shown as a bar starting or ending at the target marker.

Column Chart

A column chart (also known as a bar chart) uses rectangular bars to compare categories. One axis of the chart shows the specific categories being compared, the other axis represents a value.

Note: The current version does not show axis or data point labels.

Only semantic colors (good, critical, bad, neutral) can be used.

Multiple column charts
Multiple column charts

Trend Chart (Area Chart)

A trend chart is a line and area chart that provides the same information as a bullet chart, with one exception: A bullet chart shows an additional forecast value, but a trend chart provides information for a specific range of time.

The actual value is shown as a solid line, the target value as a dotted line, and the thresholds as colored areas in the background.

You can show labels for the start value, the end value, the minimum value, the maximum value, and the beginning and end of the time range.

Trend chart
Trend chart

Comparison Chart

The comparison chart is a bar chart. It compares entries in a top N list. You can choose between two different layouts depending on the available space/parent container. And you can use the semantic color palette as well as the chart palette.

Different comparison charts
Different comparison charts

Delta Chart

The delta chart helps to visualize a delta value between two main key figures. The delta can be a positive or negative value. Configured thresholds define the semantic coloring of the delta bar. The left-aligned labels can be omitted, whereas the right-aligned labels with the values are always shown.

Different delta charts
Different delta charts

Behavior and Interaction

Clicking/Tapping (Optional)

The charts include one behavior or interaction: a click event that can be switched on or off.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Timeline

The timeline control shows entries (such as objects, events, or posts) in chronological order.

A common use case is to provide information about changes to an object, or events related to an object. These entries can be generated by the system (for example, value XY changed from A to B), or added manually. The latest entry is always on top.

There are two distinct variants of the timeline: basic and social. The basic timeline is read-only, while the social timeline offers a high level of interaction and collaboration, and is integrated within SAP Jam.

Developer Hint
Information stemming from SAPUI5 SDK: Starting with version 1.34, use the group feed component (sap.collaboration.components.feed.Component) and business object mode (sap.collaboration.FeedType.BusinessObjectGroups) for new integrations and existing implementations running on versions 1.32 and up. Note that the group feed component does not display any updates related to the business object from the backend system (system updates).

Usage

The timeline does not have a fixed location on the UI. Where you place it strongly depends on your use case.

For example:

  • If the timeline is closely related to the content and needs to be seen in parallel, you can use the dynamic side content floorplan.
  • If the timeline contains only secondary information, or only needs to be accessed occasionally, you can embed it in a tab.
  • If you are using the object page floorplan, you can use the horizontal layout to integrate the timeline (see Orientation in the Styles section below).

These are just some of the ways you can position the timeline on a page.

Use the basic timeline if:

  • You want to display read-only content, such as an object history.
  • You do not require social interaction (for example, replies).
  • Your customers do not use SAP Jam.
  • You only expect a long list of posts triggered by the system.

Do not use the timeline if:

  • You expect only a few entries. In this case, you should use a feed by combining the two controls “FeedInput” and “FeedListItem”.
  • You want to provide a way to upload files. Use the upload collection instead. You can still use the timeline to show automated updates about the user’s uploads.

Use the social timeline if:

  • You want users to be able to create their own posts.
  • You need social interaction, such as replies.
  • You expect a long list of posts triggered by users or the system.

Responsiveness

The responsive behavior of the timeline control is currently limited. While it works well on small screens or in narrow containers, we have not yet implemented versions for larger views.

Timeline – Size S
Timeline – Size S

Layout

The timeline control consists of:

  • A header (optional)
  • A chronological axis
  • Posts/entries

 

The following features can be used optionally:

  • Filter
  • Group
  • Add entries

 

Header

The title describes the content displayed along the timeline axis.

 

Axis

Along the axis, the entries are arranged chronologically. The distance does not correspond to the time between each occurrence.

You can use a vertical or horizontal axis. The timeline can be scrolled along its axis.

By default, the latest entries appear on top. Replies are sorted the other way round.

 

Post (Entry /Feed Update)

Posts can be generated by the system (for example, “Object ABC changed by Mr. X”), or entered manually. The entry includes information about who changed what, and when. Typically, posts in the timeline consist of four sections:

  1. A node
    Using icons on a node is optional. Use icons for either ALL or NONE of the posts.
  1. A header section, which can contain:
  1. An (expandable) content section, which can contain:
  • Text(s) and/or link(s)
  • Structured or unstructured information
  • Images
  1. An optional social section, which can contain some or all of the social features offered by SAP Jam (such as Reply, Like, Bookmark, or Share)

Note: If a section is not used, it should not take up any space within the bubble.

Timeline – Layout
Timeline – Layout

Examples for different visualizations:

Timeline – Layout examples
Timeline – Layout examples

Examples for different visualizations:

Posts can originate from three sources:

  • Manual post: A person actively posts to the timeline (or to another place that supplies updates to the timeline).

Example:
Julie Armstrong: Hey @John Miller. Can you give me an update?

  • Post triggered by user action: The post is triggered by something a person does (such as creating a poll in SAP Jam, adding a document to a group, or uploading an attachment).

Examples:

Julie Armstrong created a poll.
(Followed by a preview of the poll)

John Miller posted the document Sales-Revenue_Q4.xls
(Followed by a preview of the document, if available)

Donna Moore wrote a blog post
(Followed by a preview of the blog post)

Julie Armstrong added the picture our_team.jpg
(Followed by a preview of the image)

  • Post triggered by a technical source: Posts can also originate from a purely technical source (for example, if a threshold has been exceeded, or a deadline has been reached).

Examples:

Boiler BB-258/80 has exceeded its maximum temperature.

Server DS209 is running out of space.

Order #052690 is overdue.

Information
Notes vs. Posts: 

Notes are not the same as timeline posts. They must be kept separate and be visualized differently. Like attachments, users create notes in the context of a business object, typically within a Notes tab.

In the context of a business object, notes have to be seen in the same category as attachments.

The difference is even more apparent if you compare posts to complex notes created with a rich text editor. These notes are fundamentally different from timeline posts.

To show notes on the timeline, trigger a feed post with a teaser text. For example, “Julie Armstrong added a new note: Lorem ipsum…”.

Types

Two types of timeline are available:

  • The basic timeline is read-only without social content.
  • The social timeline allows social user interaction.

Basic Timeline

(Available for all apps without SAP Jam integration)

The basic timeline is read-only. There are no user posts, replies, likes, shares, social profile, or other social features. Only system-triggered posts appear on the timeline. User actions within the app (such as creating notes and attachments, or making calls) are reflected in the timeline automatically.

The image below shows a post in the basic timeline. The image on the right shows an example of a basic timeline.

Basic timeline – Post
Basic timeline – Post
Basic timeline
Basic timeline

Social Timeline

(Available for apps with SAP Jam integration)

With SAP Jam, all social features are enabled. Users can post updates, reply, like, and share. Both user-triggered and system-triggered posts appear on the timeline.

The image below shows a post in the social timeline. The image on the right-hand side shows an example of a social timeline.

Types – Social timeline – Post
Types – Social timeline – Post
Types – Social timeline – Post
Types – Social timeline – Post

Behavior and Interaction

Adding a Post

In the social timeline, users can add new posts by clicking the plus ( ) icon on top of the control.

Clicking the plus ( ) icon opens a popover with the focus set inside the text area so the user can immediately start typing.

Post sends the user’s text, which then appears in the timeline. However, the button stays inactive until the user has typed something to prevent empty posts.

Users can also add @mentions (references) to other users or business objects. Read further details below in the @Mention section.

Interaction – Post
Interaction – Post

Replying to a Post

Next to the Post functionality, Reply is probably the most basic and most essential social feature. It enables communication at item level, which is the main way in which it differs from the feed controls. With feed controls (FeedInput and FeedListItem), new entries are always added to the top of the list; there are no in-line replies in the feed. The timeline, however, allows users to reply directly to a specific entry. The number of replies is shown in the reply link, such as Replies (5).

The user clicks or taps the respective link to trigger a popover that shows all previous replies, as well as a text area that allows the user to post a personal reply.

Interaction – Reply
Interaction – Reply

@Mention

This feature is well known from multiple social networks. Like all social features, it is only available in the social timeline, where it allows users to add a reference to another person or a business object. A ‘mentioned’ person usually receives a notification about the respective post.

The @mention feature is available in all areas that allow the user to post something:

Due to technical restrictions, this feature cannot be used on smartphones for the time being.

Interaction – @Mention
Interaction – @Mention

Users trigger the feature by typing the @ sign, or by clicking or tapping the @ button provided in the footer. The button shows users who are not familiar with this feature how to use it.

The following step-by-step walk-through concentrates on the core functionality, and therefore omits the surrounding controls.

Interaction – @Mention (1)
Interaction – @Mention (1)

As soon as a user types the ‘@’ character, he or she is prompted to enter a person’s name or email address.

Interaction – @Mention (2)
Interaction – @Mention (2)

As the user continues to type, a suggestion list is shown.

Interaction – @Mention (3)
Interaction – @Mention (3)

This suggestion list is gradually reduced to only include items that match the user’s input. If the user clicks on the suggestion or finishes typing the name of an existing person, the @mention is created.

(Due to technical restrictions, @mentions cannot be visually highlighted to indicate a successful match currently. )

Search

Always offer a search with the timeline because it may contain a vast number of entries. A search helps users to find what they are looking for without having to scroll through all the posts and updates.

Initially, the search field is closed and only visualized with a search icon.

Clicking on the icon opens…

… the search field with the focus in the field so the user can start to type immediately.

Filter (Optional)

For timelines with several entry types, it makes sense to enable filtering. You can let users filter the timeline by entry type and by other useful attributes (such as bookmarked for bookmarked items).

The filter is triggered with the respective icon in the toolbar.

Timeline interaction – Filter
Timeline interaction – Filter

Depending on the complexity of the timeline, you can offer different kinds of filter dialog:

  • Single selection
Timeline interaction – Filter with single selection
Timeline interaction – Filter with single selection
  • Multi-selection
Timeline interaction – Filter with multi-selection
Timeline interaction – Filter with multi-selection
  • Multi-selection
Timeline interaction – Filter with multi selection
Timeline interaction – Filter with multi selection
Multi-faceted filter
To implement this combination of feed source and filter, use the view settings dialog (sap.m.ViewSettingsDialog).
Interaction – Filter with ViewSettingsDialog
Interaction – Filter with ViewSettingsDialog

If a filter is set, inform the user in the info toolbar.

Timeline interaction – Set filter
Timeline interaction – Set filter

Show More

After a certain number of timeline entries, a Show More button can be displayed at the bottom of the list to load additional posts.

Depending on the use case and the performance, each app team must decide for itself how many entries should be shown before the Show More button appears.

When the user clicks or taps Show More, a predefined number of additional posts is loaded. The relative position of the timeline must not change, so the same posts are visible in the same screen position after the additional entries have been loaded.

Behavior – Show More
Behavior – Show More

Custom Actions

App developers can introduce custom actions that can be performed on a timeline post. These actions should be kept to an absolute minimum since they will appear in the limited space next to the social actions (see point 4 in the Layout section above).

In the example opposite, the custom actions Edit (1) and Delete (2) have been added to the post.

Behavior – Custom actions Edit and Delete
Behavior – Custom actions Edit and Delete

In this next example, the custom action Download (3) enables the user to quickly download an attachment directly from the post.

Behavior – Custom action Download
Behavior – Custom action Download

Refresh

Instead of showing new posts as soon as they arrive (which would disrupt the user’s reading), the timeline offers a very subtle way of notifying users about new posts.

App developers can place a message strip directly below the toolbar to show how many new posts can be retrieved from the backend.

Behavior – Refresh
Behavior – Refresh

The message strip works seamlessly together with the timeline’s filter.

Behavior – Refresh and Filter
Behavior – Refresh and Filter

Styles

There are various layout options. When you choose the layout, consider the type of content and the screen real estate available for displaying the control.

 

Orientation

  • Vertical
    Use the vertical timeline for narrow containers or on smartphones (in portrait mode).
Styles – Vertical with icons
Styles – Vertical with icons
Styles – Vertical without icons
Styles – Vertical without icons
  • Horizontal
    You can use the horizontal timeline on wide screens, the object page, or even on smartphones in landscape mode.

You can display both the vertical and horizontal timelines with or without icons.

Styles – Horizontal with icons
Styles – Horizontal with icons

Colors

You can use colors to highlight entries in the timeline and indicate semantic meanings (for example, to indicate the status or urgency of an entry).
Styles – Timeline with icons and semantic colors
Styles – Timeline with icons and semantic colors

Guidelines

  • In narrow containers, use the vertical orientation.
  • In wide containers with little height, such as on the object page, use the horizontal orientation.
  • Only use the speech bubble icon for posts entered manually by users:  
    CSS name: icon-post
    HTML Unicode: & # xe 0 a b ; (remove the spaces)
  • Do not use colors for decoration. Colors are to be used for semantic meaning only (such as for warnings or errors).

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Timeline

The timeline control shows entries (such as objects, events, or posts) in chronological order.

A common use case is to provide information about changes to an object, or events related to an object. These entries can be generated by the system (for example, value XY changed from A to B), or added manually. The latest entry is always on top.

There are two distinct variants of the timeline: basic and social. The basic timeline is read-only, while the social timeline offers a high level of interaction and collaboration, and is integrated within SAP Jam.

Developer Hint
Information stemming from SAPUI5 SDK: Starting with version 1.34, use the group feed component (sap.collaboration.components.feed.Component) and business object mode (sap.collaboration.FeedType.BusinessObjectGroups) for new integrations and existing implementations running on versions 1.32 and up. Note that the group feed component does not display any updates related to the business object from the backend system (system updates).

Usage

The timeline does not have a fixed location on the UI. Where you place it strongly depends on your use case.

For example:

  • If the timeline is closely related to the content and needs to be seen in parallel, you can use the dynamic side content floorplan.
  • If the timeline contains only secondary information, or only needs to be accessed occasionally, you can embed it in a tab.
  • If you are using the object page floorplan, you can use the horizontal layout to integrate the timeline (see Orientation in the Styles section below).

These are just some of the ways you can position the timeline on a page.

Use the basic timeline if:

  • You want to display read-only content, such as an object history.
  • You do not require social interaction (for example, replies).
  • Your customers do not use SAP Jam.
  • You only expect a long list of posts triggered by the system.

Do not use the timeline if:

  • You expect only a few entries. In this case, you should use a feed by combining the two controls “FeedInput” and “FeedListItem”.
  • You want to provide a way to upload files. Use the upload collection instead. You can still use the timeline to show automated updates about the user’s uploads.

Use the social timeline if:

  • You want users to be able to create their own posts.
  • You need social interaction, such as replies.
  • You expect a long list of posts triggered by users or the system.

Responsiveness

The responsive behavior of the timeline control is currently limited. While it works well on small screens or in narrow containers, we have not yet implemented versions for larger views.

Timeline – Size S
Timeline – Size S

Layout

The timeline control consists of:

  • A header (optional)
  • A chronological axis
  • Posts/entries

 

The following features can be used optionally:

  • Filter
  • Group
  • Add entries

 

Header

The title describes the content displayed along the timeline axis.

 

Axis

Along the axis, the entries are arranged chronologically. The distance does not correspond to the time between each occurrence.

You can use a vertical or horizontal axis. The timeline can be scrolled along its axis.

By default, the latest entries appear on top. Replies are sorted the other way round.

 

Post (Entry /Feed Update)

Posts can be generated by the system (for example, “Object ABC changed by Mr. X”), or entered manually. The entry includes information about who changed what, and when. Typically, posts in the timeline consist of four sections:

  1. A node
    Using icons on a node is optional. Use icons for either ALL or NONE of the posts.
  1. A header section, which can contain:
  1. An (expandable) content section, which can contain:
  • Text(s) and/or link(s)
  • Structured or unstructured information
  • Images
  1. An optional social section, which can contain some or all of the social features offered by SAP Jam (such as Reply, Like, Bookmark, or Share)

Note: If a section is not used, it should not take up any space within the bubble.

Timeline – Layout
Timeline – Layout

Examples for different visualizations:

Timeline – Layout examples
Timeline – Layout examples

Examples for different visualizations:

Posts can originate from three sources:

  • Manual post: A person actively posts to the timeline (or to another place that supplies updates to the timeline).

Example:
Julie Armstrong: Hey @John Miller. Can you give me an update?

  • Post triggered by user action: The post is triggered by something a person does (such as creating a poll in SAP Jam, adding a document to a group, or uploading an attachment).

Examples:

Julie Armstrong created a poll.
(Followed by a preview of the poll)

John Miller posted the document Sales-Revenue_Q4.xls
(Followed by a preview of the document, if available)

Donna Moore wrote a blog post
(Followed by a preview of the blog post)

Julie Armstrong added the picture our_team.jpg
(Followed by a preview of the image)

  • Post triggered by a technical source: Posts can also originate from a purely technical source (for example, if a threshold has been exceeded, or a deadline has been reached).

Examples:

Boiler BB-258/80 has exceeded its maximum temperature.

Server DS209 is running out of space.

Order #052690 is overdue.

Information
Notes vs. Posts: 

Notes are not the same as timeline posts. They must be kept separate and be visualized differently. Like attachments, users create notes in the context of a business object, typically within a Notes tab.

In the context of a business object, notes have to be seen in the same category as attachments.

The difference is even more apparent if you compare posts to complex notes created with a rich text editor. These notes are fundamentally different from timeline posts.

To show notes on the timeline, trigger a feed post with a teaser text. For example, “Julie Armstrong added a new note: Lorem ipsum…”.

Types

Two types of timeline are available:

  • The basic timeline is read-only without social content.
  • The social timeline allows social user interaction.

Basic Timeline

(Available for all apps without SAP Jam integration)

The basic timeline is read-only. There are no user posts, replies, likes, shares, social profile, or other social features. Only system-triggered posts appear on the timeline. User actions within the app (such as creating notes and attachments, or making calls) are reflected in the timeline automatically.

The image below shows a post in the basic timeline. The image on the right shows an example of a basic timeline.

Basic timeline – Post
Basic timeline – Post
Basic timeline
Basic timeline

Social Timeline

(Available for apps with SAP Jam integration)

With SAP Jam, all social features are enabled. Users can post updates, reply, like, and share. Both user-triggered and system-triggered posts appear on the timeline.

The image below shows a post in the social timeline. The image on the right-hand side shows an example of a social timeline.

Types – Social timeline – Post
Types – Social timeline – Post
Types – Social timeline
Types – Social timeline

Behavior and Interaction

Adding a Post

In the social timeline, users can add new posts by clicking the plus ( ) icon on top of the control.

Clicking the plus (  ) icon opens a popover with the focus set inside the text area so the user can immediately start typing.

Post sends the user’s text, which then appears in the timeline. However, the button stays inactive until the user has typed something to prevent empty posts.

Users can also add @mentions (references) to other users or business objects. Read further details below in the @Mention section.

Interaction – Post
Interaction – Post

Replying to a Post

Next to the Post functionality, Reply is probably the most basic and most essential social feature. It enables communication at item level, which is the main way in which it differs from the feed controls. With feed controls (FeedInput and FeedListItem), new entries are always added to the top of the list; there are no in-line replies in the feed. The timeline, however, allows users to reply directly to a specific entry. The number of replies is shown in the reply link, such as Replies (5).

The user clicks or taps the respective link to trigger a popover that shows all previous replies, as well as a text area that allows the user to post a personal reply.

Interaction – Reply
Interaction – Reply

@Mention

This feature is well known from multiple social networks. Like all social features, it is only available in the social timeline, where it allows users to add a reference to another person or a business object. A ‘mentioned’ person usually receives a notification about the respective post.

The @mention feature is available in all areas that allow the user to post something:

Due to technical restrictions, this feature cannot be used on smartphones for the time being.

Interaction – @Mention
Interaction – @Mention

Users trigger the feature by typing the @ sign, or by clicking or tapping the @ button provided in the footer. The button shows users who are not familiar with this feature how to use it.

The following step-by-step walk-through concentrates on the core functionality, and therefore omits the surrounding controls.

Interaction – @Mention (1)
Interaction – @Mention (1)

As soon as a user types the ‘@’ character, he or she is prompted to enter a person’s name or email address.

Interaction – @Mention (2)
Interaction – @Mention (2)

As the user continues to type, a suggestion list is shown.

Interaction – @Mention (3)
Interaction – @Mention (3)

This suggestion list is gradually reduced to only include items that match the user’s input. If the user clicks on the suggestion or finishes typing the name of an existing person, the @mention is created.

(Due to technical restrictions, @mentions cannot be visually highlighted to indicate a successful match currently. )

Search

Always offer a search with the timeline because it may contain a vast number of entries. A search helps users to find what they are looking for without having to scroll through all the posts and updates.

Initially, the search field is closed and only visualized with a search icon.

Clicking on the icon opens…

… the search field with the focus in the field so the user can start to type immediately.

Filter (Optional)

For timelines with several entry types, it makes sense to enable filtering. You can let users filter the timeline by entry type and by other useful attributes (such as bookmarked for bookmarked items).

The filter is triggered with the respective icon in the toolbar.

Timeline interaction – Filter
Timeline interaction – Filter

Depending on the complexity of the timeline, you can offer different kinds of filter dialog:

  • Single selection
Timeline interaction – Filter with single selection
Timeline interaction – Filter with single selection
  • Multi-selection
Timeline interaction – Filter with multi-selection
Timeline interaction – Filter with multi-selection
  • Multi-selection
Timeline interaction – Filter with multi selection
Timeline interaction – Filter with multi selection
Multi-faceted filter
To implement this combination of feed source and filter, use the view settings dialog (sap.m.ViewSettingsDialog).
Interaction – Filter with ViewSettingsDialog
Interaction – Filter with ViewSettingsDialog

If a filter is set, inform the user in the info bar.

Timeline interaction – Set filter
Timeline interaction – Set filter

Show More

After a certain number of timeline entries, a Show More button can be displayed at the bottom of the list to load additional posts.

Depending on the use case and the performance, each app team must decide for itself how many entries should be shown before the Show More button appears.

When the user clicks or taps Show More, a predefined number of additional posts is loaded. The relative position of the timeline must not change, so the same posts are visible in the same screen position after the additional entries have been loaded.

Behavior – Show More
Behavior – Show More

Custom Actions

App developers can introduce custom actions that can be performed on a timeline post. These actions should be kept to an absolute minimum since they will appear in the limited space next to the social actions (see point 4 in the Layout section above).

In the example opposite, the custom actions Edit (1) and Delete (2) have been added to the post.

Behavior – Custom actions Edit and Delete
Behavior – Custom actions Edit and Delete

In this next example, the custom action Download (3) enables the user to quickly download an attachment directly from the post.

Behavior – Custom action Download
Behavior – Custom action Download

Refresh

Instead of showing new posts as soon as they arrive (which would disrupt the user’s reading), the timeline offers a very subtle way of notifying users about new posts.

App developers can place a message strip directly below the toolbar to show how many new posts can be retrieved from the backend.

Behavior – Refresh
Behavior – Refresh

The message strip works seamlessly together with the timeline’s filter.

Behavior – Refresh and Filter
Behavior – Refresh and Filter

Styles

There are various layout options. When you choose the layout, consider the type of content and the screen real estate available for displaying the control.

 

Orientation

  • Vertical
    Use the vertical timeline for narrow containers or on smartphones (in portrait mode).
Styles – Vertical with icons
Styles – Vertical with icons
Styles – Vertical without icons
Styles – Vertical without icons
  • Horizontal
    You can use the horizontal timeline on wide screens, the object pageor even on smartphones in landscape mode.

You can display both the vertical and horizontal timelines with or without icons.

Styles – Horizontal with icons
Styles – Horizontal with icons

Colors

You can use colors to highlight entries in the timeline and indicate semantic meanings (for example, to indicate the status or urgency of an entry).
Styles – Timeline with icons and semantic colors
Styles – Timeline with icons and semantic colors

Guidelines

  • In narrow containers, use the vertical orientation.
  • In wide containers with little height, such as on the object page, use the horizontal orientation.
  • Only use the speech bubble icon for posts entered manually by users:  
    CSS name: icon-post
    HTML Unicode: & # xe 0 a b ; (remove the spaces)
  • Do not use colors for decoration. Colors are to be used for semantic meaning only (such as for warnings or errors).

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Timeline

The timeline control shows entries (such as objects, events, or posts) in chronological order.

A common use case is to provide information about changes to an object, or events related to an object. These entries can be generated by the system (for example, value XY changed from A to B), or added manually. The latest entry is always on top.

There are two distinct variants of the timeline: basic and social. The basic timeline is read-only, while the social timeline offers a high level of interaction and collaboration, and is integrated within SAP Jam.

Developer Hint
Information stemming from SAPUI5 SDK: Starting with version 1.34, use the group feed component (sap.collaboration.components.feed.Component) and business object mode (sap.collaboration.FeedType.BusinessObjectGroups) for new integrations and existing implementations running on versions 1.32 and up. Note that the group feed component does not display any updates related to the business object from the backend system (system updates).

Usage

The timeline does not have a fixed location on the UI. Where you place it strongly depends on your use case.

For example:

  • If the timeline is closely related to the content and needs to be seen in parallel, you can use the dynamic side content floorplan.
  • If the timeline contains only secondary information, or only needs to be accessed occasionally, you can embed it in a tab.
  • If you are using the object page floorplan, you can use the horizontal layout to integrate the timeline (see Orientation in the Styles section below).

These are just some of the ways you can position the timeline on a page.

Use the basic timeline if:

  • You want to display read-only content, such as an object history.
  • You do not require social interaction (for example, replies).
  • Your customers do not use SAP Jam.
  • You only expect a long list of posts triggered by the system.

Do not use the timeline if:

  • You expect only a few entries. In this case, you should use a feed by combining the two controls “FeedInput” and “FeedListItem”.
  • You want to provide a way to upload files. Use the upload collection instead. You can still use the timeline to show automated updates about the user’s uploads.

Use the social timeline if:

  • You want users to be able to create their own posts.
  • You need social interaction, such as replies.
  • You expect a long list of posts triggered by users or the system.

Responsiveness

With SAPUI5 version 1.42, the timeline control is fully responsive and works well with multiple screen sizes.

Timeline – Size S
Timeline – Size S
Timeline – Size M
Timeline – Size M
Timeline – Size L
Timeline – Size L

Layout

The timeline control consists of:

  • A header (optional)
  • A chronological axis
  • Posts/entries

 

The following features can be used optionally:

  • Filter
  • Group
  • Add entries

 

Header

The title describes the content displayed along the timeline axis.

 

Axis

Along the axis, the entries are arranged chronologically. The distance does not correspond to the time between each occurrence.

You can use a vertical or horizontal axis. The timeline can be scrolled along its axis.

By default, the latest entries appear on top. Replies are sorted the other way round.

 

Post (Entry /Feed Update)

Posts can be generated by the system (for example, “Object ABC changed by Mr. X”), or entered manually. The entry includes information about who changed what, and when. Typically, posts in the timeline consist of four sections:

  1. A node
    Using icons on a node is optional. Use icons for either ALL or NONE of the posts.
  1. A header section, which can contain:
  1. An (expandable) content section, which can contain:
  • Text(s) and/or link(s)
  • Structured or unstructured information
  • Images
  1. An optional social section, which can contain some or all of the social features offered by SAP Jam (such as Reply, Like, Bookmark, or Share)

Note: If a section is not used, it should not take up any space within the bubble.

Timeline – Layout
Timeline – Layout

Examples for different visualizations:

Timeline – Layout examples
Timeline – Layout examples

Examples for different visualizations:

Posts can originate from three sources:

  • Manual post: A person actively posts to the timeline (or to another place that supplies updates to the timeline).

Example:
Julie Armstrong: Hey @John Miller. Can you give me an update?

  • Post triggered by user action: The post is triggered by something a person does (such as creating a poll in SAP Jam, adding a document to a group, or uploading an attachment).

Examples:

Julie Armstrong created a poll.
(Followed by a preview of the poll)

John Miller posted the document Sales-Revenue_Q4.xls
(Followed by a preview of the document, if available)

Donna Moore wrote a blog post
(Followed by a preview of the blog post)

Julie Armstrong added the picture our_team.jpg
(Followed by a preview of the image)

  • Post triggered by a technical source: Posts can also originate from a purely technical source (for example, if a threshold has been exceeded, or a deadline has been reached).

Examples:

Boiler BB-258/80 has exceeded its maximum temperature.

Server DS209 is running out of space.

Order #052690 is overdue.

Information
Notes vs. Posts: 

Notes are not the same as timeline posts. They must be kept separate and be visualized differently. Like attachments, users create notes in the context of a business object, typically within a Notes tab.

In the context of a business object, notes have to be seen in the same category as attachments.

The difference is even more apparent if you compare posts to complex notes created with a rich text editor. These notes are fundamentally different from timeline posts.

To show notes on the timeline, trigger a feed post with a teaser text. For example, “Julie Armstrong added a new note: Lorem ipsum…”.

Types

Two types of timeline are available:

  • The basic timeline is read-only without social content.
  • The social timeline allows social user interaction.

Basic Timeline

(Available for all apps without SAP Jam integration)

The basic timeline is read-only. There are no user posts, replies, likes, shares, social profile, or other social features. Only system-triggered posts appear on the timeline. User actions within the app (such as creating notes and attachments, or making calls) are reflected in the timeline automatically.

The image below shows a post in the basic timeline. The image on the right shows an example of a basic timeline.

Basic timeline – Post
Basic timeline – Post
Basic timeline
Basic timeline

Social Timeline

(Available for apps with SAP Jam integration)

With SAP Jam, all social features are enabled. Users can post updates, reply, like, and share. Both user-triggered and system-triggered posts appear on the timeline.

The image below shows a post in the social timeline. The image on the right-hand side shows an example of a social timeline.

Types – Social timeline – Post
Types – Social timeline – Post
Types – Social timeline
Types – Social timeline

Behavior and Interaction

Adding a Post

In the social timeline, users can add new posts by clicking the plus ( ) icon on top of the control.

Clicking the plus (  ) icon opens a popover with the focus set inside the text area so the user can immediately start typing.

Post sends the user’s text, which then appears in the timeline. However, the button stays inactive until the user has typed something to prevent empty posts.

Users can also add @mentions (references) to other users or business objects. Read further details below in the @Mention section.

Interaction – Post
Interaction – Post

Replying to a Post

Next to the Post functionality, Reply is probably the most basic and most essential social feature. It enables communication at item level, which is the main way in which it differs from the feed controls. With feed controls (FeedInput and FeedListItem), new entries are always added to the top of the list; there are no in-line replies in the feed. The timeline, however, allows users to reply directly to a specific entry. The number of replies is shown in the reply link, such as Replies (5).

The user clicks or taps the respective link to trigger a popover that shows all previous replies, as well as a text area that allows the user to post a personal reply.

Interaction – Reply
Interaction – Reply

@Mention

This feature is well known from multiple social networks. Like all social features, it is only available in the social timeline, where it allows users to add a reference to another person or a business object. A ‘mentioned’ person usually receives a notification about the respective post.

The @mention feature is available in all areas that allow the user to post something:

Due to technical restrictions, this feature cannot be used on smartphones for the time being.

Interaction – @Mention
Interaction – @Mention

Users trigger the feature by typing the @ sign, or by clicking or tapping the @ button provided in the footer. The button shows users who are not familiar with this feature how to use it.

The following step-by-step walk-through concentrates on the core functionality, and therefore omits the surrounding controls.

Interaction – @Mention (1)
Interaction – @Mention (1)

As soon as a user types the ‘@’ character, he or she is prompted to enter a person’s name or email address.

Interaction – @Mention (2)
Interaction – @Mention (2)

As the user continues to type, a suggestion list is shown.

Interaction – @Mention (3)
Interaction – @Mention (3)

This suggestion list is gradually reduced to only include items that match the user’s input. If the user clicks on the suggestion or finishes typing the name of an existing person, the @mention is created.

(Due to technical restrictions, @mentions cannot be visually highlighted to indicate a successful match currently. )

Search

Always offer a search with the timeline because it may contain a vast number of entries. A search helps users to find what they are looking for without having to scroll through all the posts and updates.

Initially, the search field is closed and only visualized with a search icon.

Clicking on the icon opens…

… the search field with the focus in the field so the user can start to type immediately.

Filter (Optional)

For timelines with several entry types, it makes sense to enable filtering. You can let users filter the timeline by entry type and by other useful attributes (such as bookmarked for bookmarked items).

The filter is triggered with the respective icon in the toolbar.

Timeline interaction – Filter
Timeline interaction – Filter

Depending on the complexity of the timeline, you can offer different kinds of filter dialog:

  • Single selection
Timeline interaction – Filter with single selection
Timeline interaction – Filter with single selection
  • Multi-selection
Timeline interaction – Filter with multi-selection
Timeline interaction – Filter with multi-selection
  • Multi-selection
Timeline interaction – Filter with multi selection
Timeline interaction – Filter with multi selection
Multi-faceted filter
To implement this combination of feed source and filter, use the view settings dialog (sap.m.ViewSettingsDialog).
Interaction – Filter with ViewSettingsDialog
Interaction – Filter with ViewSettingsDialog

If a filter is set, inform the user in the info bar.

Timeline interaction – Set filter
Timeline interaction – Set filter

Show More

After a certain number of timeline entries, a Show More button can be displayed at the bottom of the list to load additional posts.

Depending on the use case and the performance, each app team must decide for itself how many entries should be shown before the Show More button appears.

When the user clicks or taps Show More, a predefined number of additional posts is loaded. The relative position of the timeline must not change, so the same posts are visible in the same screen position after the additional entries have been loaded.

Behavior – Show More
Behavior – Show More

Grouping

The timeline allows applications to group posts by certain criteria, such as by year. Groups can be expanded and collapsed in order to get a better overview.

The following example shows a collapsed group (Posts from 2016) and an expanded group (Posts from 2015).

Behavior – Custom actions Edit and Delete
Behavior – Custom actions Edit and Delete

Custom Actions

App developers can introduce custom actions that can be performed on a timeline post. These actions should be kept to an absolute minimum since they will appear in the limited space next to the social actions (see point 4 in the Layout section above).

In the example opposite, the custom actions Edit (1) and Delete (2) have been added to the post.

Behavior – Custom actions Edit and Delete
Behavior – Custom actions Edit and Delete

In this next example, the custom action Download (3) enables the user to quickly download an attachment directly from the post.

Behavior – Custom action Download
Behavior – Custom action Download

Refresh

Instead of showing new posts as soon as they arrive (which would disrupt the user’s reading), the timeline offers a very subtle way of notifying users about new posts.

App developers can place a message strip directly below the toolbar to show how many new posts can be retrieved from the backend.

Behavior – Refresh
Behavior – Refresh

The message strip works seamlessly together with the timeline’s filter.

Behavior – Refresh and Filter
Behavior – Refresh and Filter

Styles

There are various layout options. When you choose the layout, consider the type of content and the screen real estate available for displaying the control.

 

Orientation

  • Vertical
    Use the vertical timeline for narrow containers or on smartphones (in portrait mode).
Styles – Vertical with icons
Styles – Vertical with icons
Styles – Vertical without icons
Styles – Vertical without icons
  • Horizontal
    You can use the horizontal timeline on wide screens, the object pageor even on smartphones in landscape mode.

You can display both the vertical and horizontal timelines with or without icons.

Styles – Horizontal with icons
Styles – Horizontal with icons

Colors

You can use colors to highlight entries in the timeline and indicate semantic meanings (for example, to indicate the status or urgency of an entry).
Styles – Timeline with icons and semantic colors
Styles – Timeline with icons and semantic colors

Guidelines

  • In narrow containers, use the vertical orientation.
  • In wide containers with little height, such as on the object page, use the horizontal orientation.
  • Only use the speech bubble icon for posts entered manually by users:  
    CSS name: icon-post
    HTML Unicode: & # xe 0 a b ; (remove the spaces)
  • Do not use colors for decoration. Colors are to be used for semantic meaning only (such as for warnings or errors).

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Timeline

The timeline control shows entries (such as objects, events, or posts) in chronological order.

A common use case is to provide information about changes to an object, or events related to an object. These entries can be generated by the system (for example, value XY changed from A to B), or added manually. The latest entry is always on top.

There are two distinct variants of the timeline: basic and social. The basic timeline is read-only, while the social timeline offers a high level of interaction and collaboration, and is integrated within SAP Jam.

Developer Hint
Information stemming from SAPUI5 SDK: Starting with version 1.34, use the group feed component (sap.collaboration.components.feed.Component) and business object mode (sap.collaboration.FeedType.BusinessObjectGroups) for new integrations and existing implementations running on versions 1.32 and up. Note that the group feed component does not display any updates related to the business object from the backend system (system updates).

Usage

Use the basic timeline if:

  • You want to display read-only content, such as an object history.
  • You do not require social interaction (for example, replies).
  • Your customers do not use SAP Jam.
  • You only expect a long list of posts triggered by the system.

Do not use the timeline if:

  • You expect only a few entries. In this case, you should use a feed by combining the two controls “FeedInput” and “FeedListItem”.
  • You want to provide a way to upload files. Use the upload collection instead. You can still use the timeline to show automated updates about the user’s uploads.

Use the social timeline if:

  • You want users to be able to create their own posts.
  • You need social interaction, such as replies.
  • You expect a long list of posts triggered by users or the system.

Responsiveness

The responsive behavior of the timeline control is currently limited. While it works well on small screens or in narrow containers, we have not yet implemented versions for larger views.

Timeline – Size S
Timeline – Size S

Layout

The timeline control consists of:

  • A header (optional)
  • A chronological axis
  • Posts/entries

 

The following features can be used optionally:

  • Filter
  • Group
  • Add entries

 

Header

The title describes the content displayed along the timeline axis.

 

Axis

Along the axis, the entries are arranged chronologically. The distance does not correspond to the time between each occurrence.

You can use a vertical or horizontal axis. The timeline can be scrolled along its axis.

By default, the latest entries appear on top. Replies are sorted the other way round.

 

Post (Entry /Feed Update)

Posts can be generated by the system (for example, “Object ABC changed by Mr. X”), or entered manually. The entry includes information about who changed what, and when. Typically, posts in the timeline consist of four sections:

  1. A node
    Using icons on a node is optional. Use icons for either ALL or NONE of the posts.
  1. A header section, which can contain:
  1. An (expandable) content section, which can contain:
  • Text(s) and/or link(s)
  • Structured or unstructured information
  • Images
  1. An optional social section, which can contain some or all of the social features offered by SAP Jam (such as Reply, Like, Bookmark, or Share)

Note: If a section is not used, it should not take up any space within the bubble.

Timeline – Layout
Timeline – Layout

Examples for different visualizations:

Timeline – Layout examples
Timeline – Layout examples

Examples for different visualizations:

Posts can originate from three sources:

  • Manual post: A person actively posts to the timeline (or to another place that supplies updates to the timeline).

Example:
Julie Armstrong: Hey @John Miller. Can you give me an update?

  • Post triggered by user action: The post is triggered by something a person does (such as creating a poll in SAP Jam, adding a document to a group, or uploading an attachment).

Examples:

Julie Armstrong created a poll.
(Followed by a preview of the poll)

John Miller posted the document Sales-Revenue_Q4.xls
(Followed by a preview of the document, if available)

Donna Moore wrote a blog post
(Followed by a preview of the blog post)

Julie Armstrong added the picture our_team.jpg
(Followed by a preview of the image)

  • Post triggered by a technical source: Posts can also originate from a purely technical source (for example, if a threshold has been exceeded, or a deadline has been reached).

Examples:

Boiler BB-258/80 has exceeded its maximum temperature.

Server DS209 is running out of space.

Order #052690 is overdue.

Information
Notes vs. Posts: 

Notes are not the same as timeline posts. They must be kept separate and be visualized differently. Like attachments, users create notes in the context of a business object, typically within a Notes tab.

In the context of a business object, notes have to be seen in the same category as attachments.

The difference is even more apparent if you compare posts to complex notes created with a rich text editor. These notes are fundamentally different from timeline posts.

To show notes on the timeline, trigger a feed post with a teaser text. For example, “Julie Armstrong added a new note: Lorem ipsum…”.

Types

Two types of timeline are available:

  • The basic timeline is read-only without social content.
  • The social timeline allows social user interaction.

Basic Timeline

(Available for all apps without SAP Jam integration)

The basic timeline is read-only. There are no user posts, replies, likes, shares, social profile, or other social features. Only system-triggered posts appear on the timeline. User actions within the app (such as creating notes and attachments, or making calls) are reflected in the timeline automatically.

The image below shows a post in the basic timeline. The image on the right shows an example of a basic timeline.

Basic timeline – Post
Basic timeline – Post
Basic timeline
Basic timeline

Social Timeline

(Available for apps with SAP Jam integration)

With SAP Jam, all social features are enabled. Users can post updates, reply, like, and share. Both user-triggered and system-triggered posts appear on the timeline.

The image below shows a post in the social timeline. The image on the right shows an example of a social timeline.

Social timeline – Post
Social timeline – Post
Social timeline
Social timeline

Behavior and Interaction

Adding a Post

In the social timeline, users can add new posts by clicking the plus ( ) icon on top of the control.

Clicking the plus ( ) icon opens a popover with the focus set inside the text area so the user can immediately start typing.

Post sends the user’s text, which then appears in the timeline. However, the button stays inactive until the user has typed something to prevent empty posts.

Interaction – Post
Interaction – Post

Search

Always offer a search with the timeline because it may contain a vast number of entries. A search helps users to find what they are looking for without having to scroll through all the posts and updates.

Initially, the search field is closed and only visualized with a search icon.

To use the search, the user clicks or taps the icon.

This opens the search field, with the focus in the field, so the user can start to type immediately.

Filter (Optional)

For timelines with several entry types, it makes sense to enable filtering. You can let users filter the timeline by entry type and by other useful attributes (such as bookmarked for bookmarked items).

To set the filter, the user clicks or taps the Filter icon in the toolbar.

Timeline interaction – Filter icon
Timeline interaction – Filter icon

Depending on the complexity of the timeline, you can offer different kinds of filter dialog:

  • Single selection
Timeline interaction – Filter with single selection
Timeline interaction – Filter with single selection
  • Multi-selection
Timeline interaction – Filter with multi selection
Timeline interaction – Filter with multi selection
  • Multi-faceted filter
    To implement this combination of feed source and filter, use the view settings dialog.
Interaction – Filter with ViewSettingsDialog
Interaction – Filter with ViewSettingsDialog

If a filter is set, inform the user in the info toolbar.

Timeline interaction – Information about set filters
Timeline interaction – Information about set filters

Styles

There are various layout options. When you choose the layout, consider the type of content and the screen real estate available for displaying the control.

 

Orientation

  • Vertical
    Use the vertical timeline for narrow containers or on smartphones (in portrait mode).
Styles – Vertical timeline with icons
Styles – Vertical timeline with icons
Styles – Vertical timeline without icons
Styles – Vertical timeline without icons
  • Horizontal
    You can use the horizontal timeline for wide screens, the object page, or even on smartphones in landscape mode.

You can display both the vertical and horizontal timelines with or without icons.

Styles – Horizontal timeline with icons
Styles – Horizontal timeline with icons

Colors

You can use colors to highlight entries in the timeline and indicate semantic meanings (for example, to indicate the status or urgency of an entry).
Styles – Timeline with icons and semantic colors
Styles – Timeline with icons and semantic colors

Guidelines

  • In narrow containers, use the vertical orientation.
  • In wide containers with little height, such as on the object page, use the horizontal orientation.
  • Only use the speech bubble icon for posts entered manually by users:  
    CSS name: icon-post
    HTML Unicode: & # xe 0 a b ; (remove the spaces)
  • Do not use colors for decoration. Colors are to be used for semantic meaning only (such as for warnings or errors).

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation