Interactive Donut Chart

The interactive donut chart is a type of interactive chart used for visual-based filtering in the visual filter bar (VFB) within the analytical list page (ALP).

The interactive donut chart allows the user to filter by parts of a whole – depending on the sorting this would be the biggest or the smallest filter values by measure.

Usage

Use the interactive donut chart if:

  • You want to give the user the possibility to visually filter data in the analytical list page.
  • You want the user to gain insights before filtering large datasets with the visual filter bar.

Do not use the interactive donut chart if:

  • You want to visualize data without using it for filtering.
  • You are not using the visual filter bar.
  • You want to visualize data for more complex scenarios. In this case, use the VizFrame chart instead.

Responsiveness

The interactive chart is fully responsive and supports both cozy and compact content density.

Layout

The interactive donut chart consists of two mandatory areas – a visualization and an area containing the filter label and measure of the chart. The control itself doesn’t contain an axis title.

 

Interactive donut chart - Layout
Interactive donut chart - Layout

Filter Labels

The filter labels are left-aligned and may be truncated if not enough space is available.

Measure and Visualization

The interactive donut chart can display percentage and actual values as a measure but never a mix of both at the same time. Always display measures using one decimal point. Measures should always be visible and never truncated.

The interactive donut chart does not support coloring, and the default color of the bars should not be customized.

Both areas (visualization and filter label/measure) should be aligned and be displayed at the same height.

The visualization is always displayed on the left side, and should not appear in a different position relative to the labels, such as above or below them.

Do
Do: Align both areas (visualization and filter label and measure) and show them at the same height
Do: Align both areas (visualization and filter label and measure) and show them at the same height
Don't
Don't: Leave both areas (visualization and filter label and measure) unaligned
Don't: Leave both areas (visualization and filter label and measure) unaligned

Values

The interactive donut chart cannot display a mix of positive and negative measure values. It should be used for displaying only positive or only negative values (parts of a whole).

Semantic Colors

The interactive donut chart supports semantic colors that are shown as color markers. Since interactive charts are used to filter content visually, these markers give users even greater clarity when evaluating the information.

Use semantic colors when you want to make users aware of critical thresholds or categories.

Example of semantic colors
Example of semantic colors

Behavior and Interaction

Selecting and deselecting a section resembles toggle-like behavior. If the user clicks a selected section, it becomes deselected, and vice versa. By default, the interactive donut chart supports multiple selection, allowing the user to select more than one filter value.

Interactive donut chart - Interaction
Interactive donut chart - Interaction

Guidelines

Use the interactive donut chart in the visual filter bar if you would like to have a filter for the highest or lowest values of a filter dimension. For example, to filter for the highest or lowest margin, revenue, or cost related to a project.

Within the visual filter bar, only the two biggest or smallest values (depending on the sorting order) are shown, while the rest are aggregated into the “Others” section.

In general:

  • Display the measure labels using one decimal point.
  • Do not display an axis title.
  • Do not display any scrollbars.

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

Interactive Line Chart

The interactive line chart is a type of interactive chart used for visual-based filtering in the visual filter bar (VFB) within the analytical list page (ALP).

It allows the user to filter large sets of data by time period. The user can see both the time period and the measure at the same time, where the period is always the horizontal (X) axis of the chart.

Usage

Use the interactive line chart if:

  • You want to give the user the possibility to visually filter data in the analytical list page.
  • You want the user to gain insights before filtering large datasets with the visual filter bar.
  • You want to measure trends and changes over time when filtering.

Do not use the interactive line chart if:

  • You want to visualize data without using it for filtering.
  • You are not using the visual filter bar.
  • You have scenarios that do not depict time periods.
  • You want to visualize data for more complex scenarios. In this case, use the VizFrame chart instead.

Responsiveness

The interactive chart is fully responsive and supports both cozy and compact content density.

Layout

The interactive line chart consists of two mandatory areas – a filter label and an area containing the measure and visualization of the chart. The control itself doesn’t contain an axis title.

Interactive line chart - Layout
Interactive line chart - Layout

Filter Labels

The filter labels contain the filter criteria and are left-aligned. They may be truncated if not enough space is available. To avoid this, we highly recommend using the short format for time-related filter labels. For example:

  • Year: 2017
  • Half Year: H1, H2
  • Months: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
  • Quarters: Q1, Q2, Q3, Q4
  • Week: W1-W52
  • Weekdays: Mon, Tue, Wed, Thu, Fri, Sat, Sun
  • Days: Jan 1, Jan 2 … Dec 31

Measure and Visualization

The interactive line chart can display percentage and actual values as a measure, but never a mix of both at the same time. Always display measures using one decimal point. Measures should always be visible and never truncated.

The interactive line chart does not support coloring, and the default color of the bars should not be customized.

Do
Do: Display measures in either actual or percentage values
Do: Display measures in either actual or percentage values
Don't
Don't: Display a mix of both actual and percentage values
Don't: Display a mix of both actual and percentage values

Values

The interactive line chart can display positive, negative and mixed (positive and negative) values.

The time axis line serves as the zero line, which can be displayed accordingly to indicate different relations between the positive and negative values.

Example: Positive and negative values
Example: Positive and negative values

Semantic Colors

The interactive line chart supports semantic colors, which are shown as color dots. Since interactive charts are used to filter content visually, these colors give users even greater clarity when evaluating the information.

Use semantic colors when you want to make users aware of critical thresholds or categories.

Example: Showing a critical line chart data point using a semantic color
Example: Showing a critical line chart data point using a semantic color

Behavior and Interaction

Selecting and deselecting a section resembles toggle-like behavior. If the user clicks on a selected section, it becomes deselected, and vice versa. By default, the interactive line chart supports multiple selection, allowing the user to select more than one filter value.

Interactive line chart - Interaction
Interactive line chart - Interaction

Guidelines

Use the interactive line chart in the visual filter bar if you would like to have a filter for the highest or lowest values of a filter dimension. For example, to filter for the highest or lowest margin, revenue, or cost related to a project.

In the visual filter bar, the interactive line chart only displays the first or last six data points (such as last six days, last six months, and so on).

In general:

  • Display the measure labels with one decimal point.
  • Do not display an axis title.
  • Do not display any scrollbars.

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

Overview Page – Custom Card

Adaption of standard cards

Custom cards allow you to define the appearance of a card on an overview page, and the type of content that appears in the card content area. They offer additional flexibility when you require features that are not offered by the standard cards for overview pages.

Information
Keep in mind:

  • A card is not a substitute for an application.
  • A card focuses on the most important task-related data. It lets the user view, filter, and react to information quickly.
  • The content must be defined for a specific context. Do not display irrelevant or unclear content.

Usage

Use a custom card if:

  • Your use case cannot be satisfied in any way by the standard cards provided for the overview page. Always consider the requirements below before using a custom card.

Do not use the custom card if:

  • You can satisfy your use case to a certain extent with the existing standard cards. Even if there are technical or visual limitations, stick with the standard cards if they are still workable for your scenario.
  • You are not using the overview page floorplan.

Standard Requirements

Custom cards must meet the standard SAP Fiori requirements, especially:

  • Responsiveness: Ensure that the cards can run on different devices (touch, mouse and keyboard), using breakpoints supported by SAPUI5.
  • Cozy/compact: Provide different control dimensions as described by the visual design. If your existing design already covers both use cases (mouse and touch input), you do not have to provide two different designs. For more information on cozy and compact form factors, see content density.
  • Theming: Custom designs must allow theming and use the LESS parameters provided by the official Belize theme. Implementation of the customized design must be tested in all themes (high-contrast white, high-contrast black, and Belize Deep).
  • Accessibility: Support keyboard navigation and screen readers (as stipulated by accessibility requirements).
  • Browsers: Support all types of browser.
  • Performance: Ensure the performance of the implementation is satisfactory.
Information
Be aware that implementing a custom card costs time and effort for development.

Components

Custom cards have two components:

  • A mandatory header area
  • A mandatory content area
Custom card – card components
Custom card – card components

Header Area

The title and subtitle of custom cards follow the guidelines for standard titles and subtitles.

From the header area, users can navigate to the parent app. Since the entire header area is clickable, only one navigation target is allowed. We highly recommend offering this navigation option to give users access to the full-blown app with the complete set of results and actions. If a card displays a subset of grouped items, use a text label to show how many of the relevant items are showing on the card. Also refer to the guidelines for the overview page card header.

If a card features content with a single focal point (detail/entity), the header area navigation must always lead to this specific focal point. If a card features a subset of items grouped by a common criterion, the header area navigation must always lead to all items.

Custom card – header area
Custom card – header area

Content Area

The content area is reserved for application content and shows an entry-level view of the content. The use case determines what should be shown in the content area of a custom card. The content must adhere to the standard content guidelines.

Make sure that the content is responsive.

Provide a stable context for the content area and sustain it when the user navigates away from the overview page into another app. Transfer any sort or filter criteria to the application. In other words, show the same context, but with additional information.

Custom card – content area
Custom card – content area

Card Size

Follow the guidelines for the fixed card layout or the resizable card layout. Make sure that the card is responsive whichever layout you use.

Guidelines

Custom cards inherit the drag and drop behavior from the standard cards. Only place custom cards on the overview page itself (not in the object stream).

Custom cards must:

  • Provide information that is relevant for the user’s specific domain or role
  • Offer an entry-level view of application content
  • Represent a single topic, task, or context
  • Provide a stable context and sustain it after navigating from the overview page to another application
  • Be integrated in the Manage Cards dialog (show/hide cards)
  • React on filtering (when a smart filter bar is used)
  • Follow the guidelines for formatting dates, times, amounts, currencies, as well as for truncation (ellipsis). These guidelines are the same as for standard cards.
  • Contain consistent texts and formatting, aligned with the other cards on the overview page. Check the UI text guidelines for the overview page for details.

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

  • No links

List Report Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the list report header and content area in the SAP Fiori Elements section.

Intro

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

List report
List report

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • You want to let users display the whole dataset using different visualizations (for example, as a table or as a chart), but no interactions are required between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. You want to let users switch views using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a code). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Components

The list report is a full screen floorplan. It can also be used in flexible column layout, where it is usually displayed in the first column.

The list report page is based on the dynamic page, and is divided into a header area and a content area, as defined by the dynamic page layout.

Schematic visualization of a list report
Schematic visualization of a list report
  • The dynamic page header (1) contains the header title (2) and the expandable/collapsible header content (5).
    • The header title (2) is part of the header area and should display a title or variant (3) for the whole page (mandatory), filter information (if the header is collapsed), and a header toolbar (4) with global actions, such as Share (optional).
    • The header content (5) is used to display the filter bar or the smart filter bar (mandatory).
    • The header features (6) allow users to expand/collapse the header (6a) (mandatory) and pin/unpin the header area (6b).
  • The content area (7) is used to display:
    • A table/chart title, textual icon tab bar, or select (8) (optional)
    • One table/chart toolbar (9) per tab
    • One or multiple tables and/or charts (10). You can use any kind of table. If you use a chart, you can display the chart on its own (without a table) or as an additional view for an existing table (switchable).
  • The footer toolbar (11): If needed, use a footer toolbar to display the messaging button and finalizing actions.

Behavior and Interaction

Initial Focus

When the list report is loaded, set the initial focus as follows:

  • If the header is expanded, set the focus on the first filter field (live update mode) or on the Go button (manual update mode).
  • If the header contains empty mandatory fields, set the focus on the first empty mandatory field.
  • If the header is collapsed, set the focus on the first table row.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see:

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Not filtered.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

If the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (except for desktop-centric tables), and expands again when the user scrolls back up (“snap on scroll”). Users can pin the header content to keep it visible. For more information, see Dynamic Page – Expand/Collapse Header.

Exception: The “Snap on scroll” and “pin header” features are not provided if the main content area contains desktop-centric tables (grid tablesanalytical tables, tree tables) or any other content with its own scrollbar. In these cases, users need to expand and collapse the header content manually using the Show Filters / Hide Filters button.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

If you are using a responsive table, always enable “scroll to load” behavior.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Information
SAP Fiori Elements – Navigation to Classic UIs
If you need to navigate to classic UIs for create, display, or edit actions, see Integration of Classic SAP UIs (SAP Fiori Elements List Report). This article describes which UI elements and navigation flows to use in different scenarios.

Working Modes

When the user edits a list item in a filtered list, the changed item might no longer match the filter criteria. For this use case, there are two alternative working modes:

  • Worklist mode

    Users want to see a direct system reaction to their changes. Items that don’t match the current filters
    vanish immediately. This mode applies to about 80% of all use cases.
  • Continuous working mode

    The user still needs the edited item, even though it no longer matches the filter criteria. The item stays in the list until the next filtering process is triggered. The item is marked, and a system message informs the user about the filter mismatch. This mode applies to about 20% of all use cases.

The app developer can choose the appropriate working mode for the app use case.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

Add/Create Items Using a Dialog

You can let users add or create new items at list report level using a dialog. This approach is recommended for cases where there are fewer than 8 required fields. Display the action in the table toolbar.

You can use this option for both draft and non-draft scenarios.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Responsiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

Instead, take an adaptive approach:

    • Create a new Fiori application with reduced complexity, not an exact match of the desktop application.
    • With the new application, address the most important use cases for users in a mobile context. The responsive controls (responsive table, list or tree,) or a relevant control for your use case (for example a chart or the category navigation pattern) may suffice.

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Examples

The examples below show variants of the list report with the most commonly-used controls. You can also see the manual update mode (with a “Go” button) and the live update mode (no “Go” button).

Top Tips

  • Avoid loading list report page without any data, even if there are no mandatory filters.
  • Use only one key identifier in the table.
  • If you are using the icon tab bar, place it beneath the filters.
  • In the icon tab bar, use text labels only (without icons).
  • Choose selection controls that best fit your use case.
  • Make sure that columns in the table are aligned correctly.
  • Ensure that mandatory filter fields always have default values.
  • Avoid using variant management for tables. Use the page variant instead.
  • Always enable actions like Add, Create or Edit. Once Edit is triggered, replace it with Save and Cancel.
  • Never place finalizing actions in the header toolbar, even if they affect the whole page.
  • When using the icon tab bar, be aware that each tab contains its own table toolbar.

 

Related Links

Elements and Controls

Implementation

Interactive Bar Chart

The interactive bar chart is a type of interactive chart used for visual-based filtering in the visual filter bar (VFB) within the analytical list page (ALP).

It allows the user to filter by categorical data. Depending on how the data is sorted, this would be the biggest or the smallest filter values by measure.

Usage

Use the interactive bar chart if:

  • You want to give the user the possibility to visually filter data in the analytical list page.
  • You want the user to gain insights before filtering large datasets with the visual filter bar.

Do not use the interactive bar chart if:

  • You want to visualize data without using it for filtering.
  • You are not using the visual filter bar.
  • You want to visualize data for more complex scenarios. In this case, use the VizFrame chart instead.

Responsiveness

The interactive chart is fully responsive and supports both cozy and compact content density.

Layout

The interactive bar chart consists of two mandatory areas – a filter label and an area containing the measure and visualization of the chart. The control itself does not contain an axis title.

Interactive bar chart - Layout
Interactive bar chart - Layout

Filter Labels

The filter labels are left-aligned and may be truncated if not enough space is available.

Measure and Visualization

The interactive bar chart can display percentage and actual values as a measure but never a mix of both at the same time. Always display measures using one decimal point. Measures should always be visible and never truncated.

The interactive bar chart does not support coloring, and the default color of the bars should not be customized.

Do
Do: Display measures as actual or percentage values
Do: Display measures as actual or percentage values
Don't
Don't: Display a mix of both actual and percentage values
Don't: Display a mix of both actual and percentage values

Values

The interactive bar chart can display positive, negative, and mixed (positive and negative) measure values.

Display of positive and negative measures
Display of positive and negative measures

Semantic Colors

The interactive bar chart supports semantic colors that are shown as color markers. Since interactive charts are used to filter content visually, these markers give users even greater clarity when evaluating the information.

Use semantic colors when you want to make users aware of critical thresholds or categories.

Example of a semantic color
Example of a semantic color

Behavior and Interaction

Selecting and deselecting a bar is toggle-like behavior – if the user clicks  a selected bar, it becomes deselected, and vice versa. By default, the interactive bar chart supports multiple selections – the user can select more than one filter value.

Interactive bar chart - Interaction
Interactive bar chart - Interaction

Guidelines

Use the interactive bar chart in the visual filter bar if you would like to have a filter for the highest or lowest values of a filter dimension. For example, to filter for the highest or lowest margin, revenue, or cost related to a project.

The interactive bar chart used in the visual filter bar contains a maximum of three filter values with their corresponding measures.

In general:

  • Display the measure labels with one decimal point.
  • Do not display an axis title.
  • Do not display any scrollbars.

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

Avatar

The avatar is a control for displaying images. These can be user profiles, user initials, placeholder images, icons, or business-related images, such as product pictures.

Usage

Use the avatar to display:

  • An image, initials, or placeholder for a user
  • Standardized images for business-related content (such as products, parts, product and company logos, ad campaign images, …)
  • Icons
  • Images with a transparent background
  • Placeholder images

Do not use the avatar if:

  • You want to include an image for any other use case (for example, to display decorative images or images in the content area that support or complement the content). Instead, use the image control.
  • You want to display pictures in a carousel. Instead, use the carousel control.
  • You want to show an interactive icon. Instead, use the button with an icon inside.
Examples of a user image, user initials, and standard user placeholder icon
Examples of a user image, user initials, and standard user placeholder icon
Potential product image and product image placeholder
Potential product image and product image placeholder
Icon
Icon

Responsiveness

The avatar control is adaptive and has five predefined sizes. These are the same for both compact and cozy form factors:

 

Size rem Use for images in…
XS 2 rem Table list items
Card list items
S 3 rem Card headers
Card list items
M 4 rem App headers for small screen sizes
L 5 rem App headers for normal screen sizes
XL 7 rem App headers for large screen sizes

If your use case requires it, you can also set a custom size.

Predefined sizes: XS, S, M, L, XL
Predefined sizes: XS, S, M, L, XL
Predefined sizes: XS, S, M, L, XL
Predefined sizes: XS, S, M, L, XL

Image Fit

You can use the imageFitType property to specify how images fit to the avatar. There are two options: Cover (default) and Contain.

Cover

The size of the image is scaled up to completely cover the control area. As a result, parts of the image may be outside the shape.

Use the Cover fit type if the focal point is in the center of the image.

Contain

The image is scaled down to fit into the control area. The entire image is displayed, but might not fully fill the shape. In this case, the control displays a default background color. The image itself is always centered inside the shape.

Use the Contain fit type for product pictures that need to be displayed in full.

Product image with the fit type 'cover' (left) and 'contain' (right)
Product image with the fit type 'cover' (left) and 'contain' (right)

Types

Avatar – User Image, Initials, or Placeholder

An avatar is a visual representation of a user in the digital space. Usually, an avatar displays the user in one of the following ways:

  • A user photo
  • The user’s initials
  • A placeholder icon instead of the user’s personal data (photo or initials)

Always display avatars in a circle. This ensures that all users are represented equally on the user interface.

Initials

User image, user initials, and standard user placeholder icon
User image, user initials, and standard user placeholder icon

The initials stand for the first name(s) and last name(s) of a person – for example, JD for Jane Doe, or MvV for Marjolein van Veen. Which name comes first depends on the language-specific settings.

Initials can have up to three alphabetical characters (A-Z, a-z). If more than 3 initials are required for longer names (such as Anna María Agustí Suárez), the gender-neutral placeholder icon is displayed instead. The placeholder is also used if the three letters don’t fit into the circle (for example, WWW).

Some languages don’t build on an alphabet, or don’t use initials at all. In such cases, the gender-neutral person icon is displayed instead.

User initials with 1, 2, and 3 characters
User initials with 1, 2, and 3 characters

Business Images

Business images display a product, company, object, logo, or other business-related content.

Always use a square for business images.

Examples of product images
Examples of product images

Placeholder for Avatar and Business Images

Placeholder images are used for both avatar and business images when no other image is available.

  • The default placeholder for an avatar is a gender-neutral person icon inside a circle.
  • The default placeholder for a business image is a neutral product icon inside a square.
Default person and product placeholders
Default person and product placeholders

You can specify your own the default placeholder icon for business images.

Always replace the default product icon if there is a more suitable icon for your use case and industry.

Product placeholder images with custom icons
Product placeholder images with custom icons

Placeholder Background

By default, the placeholder background color is set to blue (accent color 6). However, to add more visual variety to the UI, you can change the background color using one of the following options:

  • Accent colors – You can specify one of 10 different accent colors as the placeholder background color.
  • Random color – The control automatically picks a random color from the accent color palette.

All accent colors can be themed.

User initials in all ten accent colors
User initials in all ten accent colors

Placeholder for Decorative Images in the Content Area

Use the background color ‘placeholder’ for decorative images in the content area, such as images in articles or longer descriptions. In these use cases, the primary focus is on the text and the image content is secondary.

Decorative image in the content area
Decorative image in the content area
Placeholder image for secondary content
Placeholder image for secondary content

Images with Transparent Background

You can display images with a transparent background. This can be useful for displaying descriptive illustrations and decorative pictures, for example.

Image with transparent background
Image with transparent background

Icons

You can use the avatar to display non-interactive display icons. Use the background color ‘placeholder’ to display the icon.

Icons are usually part of an icon font. Do not use icons as images.

If you want to put an action on the icon, use the button with an icon inside instead.

Exemplary icons
Exemplary icons

Badge

If an avatar is clickable, you can show an optional badge and icon.

  • Use a badge to indicate that the avatar is interactive.
  • Use an icon to indicate the action triggered by clicking the avatar.

This feature gives users visual affordance of the available action, and is particularly useful for images. To ensure that the image and the badge icon are properly displayed, don’t use the badge for any avatar sizes smaller than S.

When you use a badge and icon, always provide a corresponding tooltip for your avatar to indicate the action.

Use the following standard icons and tooltip texts:

 

Icon Tooltip Action
  Edit Image Edit the image. This can include multiple options, such as replacing an image, cropping, visual effects, or uploading a new image.
  Take a Picture Take a photo.
  Zoom In Zoom into the image.
Avatars with badges
Avatars with badges
Avatars with badges and edit (left), camera (middle), and zoom in (right)
Avatars with badges and edit (left), camera (middle), and zoom in (right)

Guidelines

  • If you use a custom avatar size with initials or icons:
    • Make sure that the font size is consistent with the size of the control itself.
    • If your custom size is between two predefined sizes, use the font size for the smaller predefined size.
      Example: If your avatar is 5.5 rem (between sizes L and XL), use the font size for size L (2 rem).
  • Accessibility: Provide an alternative text for each avatar image for cases when the image is not available or can’t be displayed.
  • If the avatar is interactive, provide a tooltip to indicate the action (for example, Edit Image or Take a Picture).
  • Optimize high-resolution images to avoid unnecessarily large files. Large image files can severely impede page performance.
Do
Custom placeholder size with appropriate custom font size
Custom placeholder size with appropriate custom font size
Don't
Custom placeholder size, but icon is too small
Custom placeholder size, but icon is too small

Styles

You can add a very subtle border to the avatar (property: ShowBorder).

Images with optional borders
Images with optional borders

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

Semantic Page Layout

The semantic page is recommended as the basic layout for freestyle applications. It builds on the basic functionality of the dynamic page and adds predefined content elements to the header toolbar (1) and footer toolbar (2), such as a title, global actions, and finalizing actions.

Using the semantic page significantly reduces the development effort for app teams, and ensures that the placement of the header and footer content conforms with the SAP Fiori Design Guidelines.

Semantic page
Semantic page

When to Use

Use the semantic page if:

  • You are building a freestyle application.
  • You want to use a predefined layout to reduce development time.

Do not use the semantic page if:

Components

The semantic page is based on the structure of the dynamic page. In short, the semantic page has the following elements:

  1. Header title
  2. Header content
  3. Page content, dependent on the use case
  4. Footer toolbar with finalizing actions

The control’s semantics determine whether content specified in the control appears in the header toolbar or footer toolbar.

Semantic page structure
Semantic page structure

Header Title

Semantic page - Header title example
Semantic page - Header title example

Mandatory Elements

  • Title (1): The title is located on the left-hand side of the header title bar and is always visible.

Optional Elements

  • Subtitle (2): The subtitle is always below the title and is often used to summarize the most important information.
  • Breadcrumb (3): Depending on the use case, you can add a breadcrumb navigation.
  • Key information (4): Key information is located in the middle area, and is left aligned. This can be text, mini facets, or KPI tags, for example.
  • Global actions toolbar (5): The global actions toolbar for the entire floorplan is located on the right-hand side. Always use buttons for global actions, visualized either as text or icons. For more information, see header toolbar.
    Overflow menu: Actions move into the overflow from right to left. Icons are shown in the overflow menu with a corresponding text.
  • Layout actions (6): These are actions like the Close or Full Screen / Exit Full Screen icons, which are mainly offered by the flexible column layout. Depending on the screen size, layout actions are placed either to the right of the global actions toolbar, separated by a divider line, or above the global actions.

For more information about the expandable and collapsible header and its features, see dynamic page.

Guidelines

  • Layout actions never move into the overflow and are always last in the header toolbar.
  • Do not remove or disable actions within the header title when it is collapsed.

Header Content

The optional header content is not defined in the semantic page and can be populated according to the use case.

Page Content

Like the header content, the page content is also not specified by the semantic page. It is proportionally the largest area of the layout and can be populated according to the use case.

Footer Toolbar

Semantic page - Footer toolbar
Semantic page - Footer toolbar

The footer toolbar is optional and contains the following components:

  1. Message button (containing the message popover) on the left-hand side
  2. Draft indicator on the right-hand side, just before the finalizing actions
  3. Finalizing actions on the right-hand side

Behavior and Interaction

The interaction and guidelines for the dynamic page also apply for the semantic page. The actions in the semantic page and their order are predefined and follow the rules of the action placement concept. For more information about toolbars in general, see toolbar overview.

Initial Focus

When the semantic page is loaded, set the initial focus as follows:

  • If the page is in display mode, set the focus on the first section.
  • If the page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields in edit mode, set the focus on the first editable element or first action.

Responsiveness

The semantic page offers considerable freedom and flexibility. It is designed to adapt automatically to small, medium, and large screen sizes. Next to that the responsive behavior depends on the behavior of the content being displayed.

The title (sap.m.Title) and subtitle (sap.m.Text) on the left truncate in collapsed mode to save vertical space and wrap in expanded mode to offer the full text. This behavior needs to come from the respective controls for the title and subtitle. Overall, it is recommend not to show more than 2 lines of text in collapsed mode to avoid a disproportionate header height, especially on mobile devices, when no summary line is used. This can either be a combined title and subtitle or a longer wrapping title. For more information see wrapping and truncating text.

Key information (middle area, left aligned) stays as long as possible before it moves into the overflow.

Global actions also stay as long as possible, but have a predefined width depending on the available space. If no key information is available, the title and global actions automatically get more space. The toolbar follows the standard toolbar overflow guidelines, and adds buttons to the overflow menu from right to left.

The combination of a semantic page within in a flexible column layout and accompanying layout actions works as described for the dynamic page. The same applies for the summary line and letterboxing.

Top Tips

  • Use always a header title.
  • Use the header title and header content to provide the most relevant information and actions for your use case.
  • Do not remove or disable actions within the header title when it is collapsed.
  • Make sure that the layout actions in the flexible column layout are displayed correctly and never get hidden in the overflow.
  • Start your application in expanded mode if users need further content or adjustment options to get started.
  • Offer the pinning feature whenever users may need to fix the header content while scrolling through the page content.
  • Activate the summary line on smartphones to help users focus on the actual content of the page.

Related Topics

Elements and Controls

Implementation

Why Design Guidelines?

Why do I need the design guidelines?

Great question! The SAP Fiori design is built into the SAPUI5 front-end library – a framework that offers over 170 UI controls and numerous layout types. This framework ensures that the layout, control behavior, and visual design are consistent in all SAP Fiori apps. However, this in itself doesn’t guarantee a delightful user experience.

Apps need to be designed with the user in mind. And they need to follow consistent, established interaction patterns that factor in the requirements of each use case. In a large software enterprise such as SAP, these principles and patterns need to be applied by numerous application development teams worldwide. Also, as SAP Fiori gains traction, more and more SAP customers are extending SAP Fiori apps or building their own. These users too are looking to SAP for design guidance.

In a nutshell, the SAP Fiori Design Guidelines offer a single point of reference to anyone involved in designing SAP Fiori apps.

The guidelines extend far beyond general principles and paradigms. They offer concrete guidance so you can execute on a user-centered approach, and they explain how to apply the different layouts, patterns, and controls in detail. The guidelines give you the bigger picture and put technical features into context. They help UX designers and developers make the connection between design considerations and the corresponding SAPUI5 controls.

What are the advantages?

Have a look at some of the benefits of using the design guidelines:

A harmonized look and feel throughout the SAP Fiori app suite

You will have an easy-to-maintain and consistent design, ensuring a cohesive look and feel for your users across all apps.

Faster build times

Rather than having to develop everything from scratch, you can make use of a proven system with ready-made building blocks. This guarantees faster build times for new applications!

Easier testing

You will have a tool to do quick quality assurance checks. Neither the guidelines nor the control library are identical to an app. However, both point out issues you may have in your app. By tackling these early on, you’ll avoid them later!

One language for communication

You will have a shared vocabulary to use as a reference when discussing changes and iterations. Designing apps becomes more efficient when everyone involved speaks the same language.

A great onboarding platform

You will have a great platform for onboarding anyone joining the team! This will also help build awareness and appreciation of the design system.

What’s New and Versioning

The guidelines are updated with every even SAPUI5 release. Check out the What’s New page to see what’s been added or revised in each guideline version.

You can browse through the different versions of individual articles using the menu on the top right-hand corner of the screen.

SAP Fiori

SAP Fiori is a design system that provides a consistent user experience for SAP software across platforms and devices. It is at the core of SAP’s product experience and design strategy.

With SAP Fiori we offer design solutions that are usable, robust, scalable, and of enterprise-grade quality – implemented in several reference technologies.

The SAP Fiori design system:

  • Accelerates and scales the design and development of enterprise software.
  • Follows a modular design approach based on business roles, moving away from traditional monolithic transactions.
  • Redefines the enterprise user experience by focusing on user tasks and workflows.

Components of the SAP Fiori Design System

The SAP Fiori design system provides three different platform-specific design languages
The SAP Fiori design system provides three different platform-specific design languages

The SAP Fiori design system operates on two levels:

  • Universal values, principles, and practices apply across all technology platforms.
  • SAP Fiori design languages provide standardized design guidance across multiple platforms.

Universal Values, Principles, and Practices

The following fundamental values, principles, and practices inform the SAP Fiori Design:

Values Consistency Offer design solutions that can be adopted by all UI technologies and scenarios across the entire range of the SAP portfolio, leveraging the expertise of the entire SAP design community.
Integration Provide solutions to integrate different independent products and technologies into an environment that is coherent and easy to use.
Intelligence Establish machine learning and artificial intelligence as an integral part of the user experience, with a focus on enabling the user rather than taking away control.
See also: Designing Intelligent Systems
Principles Role-based Provide the right information at the right time.
Adaptive Enable users to work where they want, on the device of their choice.
Simple Help users focus on what is important.
Coherent Provide the same intuitive and consistent experience across the enterprise.
Delightful Enrich the user’s work experience.
Practices Design-led development Put user experience at the heart of the product lifecycle.

See also: Design-Led Development Process


SAP Fiori Design Languages

The SAP Fiori design system supports multiple technology platforms – web, native mobile, and conversational UX. We refer to the variants for each platform as SAP Fiori design languages.

While the fundamental design approach is standardized across all platforms, the design languages cater for the specifics of the respective technology platforms. Each design language details out the look and feel, the available controls and floorplans/pages, and common functions like navigation and search.

The SAP Fiori design languages are already implemented in key reference technologies, including SAPUI5 for browser-based applications and SAP Cloud Platform Software Development Kits (SDK) for native Apple iOS and Android. This is complemented by comprehensive design guidelines and UI kits for app designers.

With this parallel approach, designing interactions for enterprise business scenarios can be simplified, accelerated, and unified across multiple platforms.

Using the SAP Fiori Design System

The SAP Fiori design system has been developed primarily to support internal development of SAP business applications.

However, we also make it available to our customers and partners to share the experience we have gained in more than 40 years as the leader in enterprise software.

We provide public access to the following resources:

SAP Fiori Evolution

SAP Fiori has evolved out of a small initiative into an industry-scale design system for all SAP products. The latest evolution is the new Horizon theme, which introduces an enhanced visual experience across all platforms, with improved accessibility, focus, and branding options. It’s designed to help users get even more out of the consistency, integration and intelligence features that came with Fiori 3. Read on to find out more about the key milestones.


SAP Fiori 1.0

SAP Fiori started in 2013 as an initiative to re-imagine business software by applying a “mobile first” design approach to the most frequently used use cases. Based on the principles of role-based, simple, responsive, coherent and delightful apps, this laid the foundation for a new design system.

With the first version of SAP Fiori we started breaking down large and monolithic business transactions into focused, task-based apps. Starting with a core feature set suitable for smartphones, the design process was geared towards offering more comprehensive functionality when moving up to larger devices, such as tablets or desktop computers. All aspects of the new Fiori for Web design language had to be carefully designed to adjust to any device, regardless of whether it was operated with a mouse and keyboard or by touch. This first version of SAP Fiori was implemented and evolved in our reference technology for browser-based applications SAPUI5 (versions 1.26 – 1.38), which is also available open source under the name OpenUI5. 

Key features of SAP Fiori 1.0

  • Break down monolithic transactions into role-based and task-focused apps. 
  • Enable a responsive experience across all devices. 
  • Make use of modern and mobile-inspired interaction patterns.  

SAP Fiori 2.0

Following the success of the initial version of SAP Fiori, we needed to introduce new capabilities to ready SAP Fiori as a design system for all the scenarios SAP software addresses. With SAP Fiori 2.0, the design grew into a system that would not only be able to address simple use cases, but that would offer intuitive solutions for even the most complex business scenarios. As the new face for SAP’s flagship product SAP S/4HANA, SAP Fiori 2.0 introduced new floorplans that could accommodate large amounts of information and complex functionality in an intuitive and responsive way. Moreover, SAP Fiori 2.0 came with a new integrated and powerful user environment, based in the SAP Fiori launchpad, which introduced productivity features like notifications and improved navigation. With its second iteration, SAP Fiori introduced a new productivity tool, which evolved over time into the conversational digital assistant SAP CoPilot. 

Awarded with the prestigious Red Dot Award, SAP Fiori 2.0 was launched in October 2016. Soon after that, an additional award honored the innovative approach for integrating transactional and analytical features to leverage the possibilities of SAP’s in-memory technologiesAgain, SAP Fiori 2.0 was implemented in SAPUI5 as the primary reference technology (version 1.42 – 1.70). In addition to this, SAP Fiori 2.0 was applied to a redesign of classic UI technologies like SAP GUI for Web, WebDynpro and CRM WebClient to offer a more coherent experience across technologies. Other product areas started adopting aspects of SAP Fiori 2.0, such as the new Belize theme to better integrate with SAP S/4HANA. With SAP Fiori for iOS, the first version of the SAP Fiori design system for native mobile platforms was released in partnership with Apple. Two years later, SAP Fiori for Android was announced as a result of a partnership with Google. 

Key features of SAP Fiori 2.0

  • Scale the role-based and task-focused design approach to complex enterprise scenarios and native mobile platforms. 
  • Offer a powerful productivity environment for business users with new scalable floorplans and patterns, including embedded analytics, notifications, search, and improved navigation. 
  • Introduce conversational interaction and machine intelligence. 

SAP Fiori 3

The third iteration of SAP Fiori was announced in 2018. The continued success and its proven ability to scale and integrate latest trends and requirements already had established SAP Fiori as the design system for the intelligent enterprise. All product areas committed to work towards the adoption of SAP Fiori 3 as the design system that would integrate the experience of all SAP products. This decision was operationalized in a newly established product standard for UX consistency. 

As well as a new Quartz theme, SAP Fiori 3 introduced a number of new features that facilitate the integration of all SAP products to provide one coherent and consistent user experience. Some of the most important aspects are: 

  • The top-most screen area, referred to as shell bar, has been redesigned to support all navigation and functional requirements found in the different products, and will include the possibility to switch between independent products. 
  • Home pages are being redesigned to offer greater flexibility in terms of the level of detail offered. Simple navigation links complement the tiles provided in earlier versions, and we are working on detail cards to offer more information at a glance.
  • A user can have multiple home pages, known as spaces. These can be provided by the organization to offer access to various domains and contexts, integrating the powerful possibilities of overview pages into the same lifecycle as the home pages. 

SAP Fiori 3 also takes a huge stride forward in integrating machine intelligence into the business environment by offering a more integrated experience for conversational interaction, machine-generated ratings and recommendations, and a whole set of design principles that ensure a human-centric approach to the interaction design for intelligent systems. With the concept of business situations, the system now can detect critical business contexts independently of predefined processes and workflows and recommend possible solutions to resolve them. 

The number of technologies supporting the Fiori 3 design system has been extended beyond the established reference technology SAPUI5 and the classic UI technologies to include the latest web technologies based on frameworks like Angular, React or Vue, and Web Components 

Key features of SAP Fiori 3

  • Establishes basic rules for consistency across all SAP products
  • New Quartz theme
  • New aligned shell bar for all SAP products
  • Greater flexibility for home pages
  • Integration of machine intelligence, focusing on a human-centric approach
  • Adoption across a broader range of technologies 

SAP Fiori with Horizon

The new Horizon theme is an evolution of the SAP Fiori design system. The theme offers a modern and fresh look with a new vibrant color palette, rounded corners, and softer shapes. The Horizon theme also comes with a new Horizon icon font and optimized typography.

All elements have been designed with accessibility in mind, and the Horizon theme follows the recommendations for the W3C Web Content Accessibility Guidelines WCAG 2.2. (“Perceivable” principle). Stronger contrasts, improved spacing, and a clearer visual hierarchy make it easier for everyone to work intuitively.

Four Horizon themes are available:

  • Morning Horizon (light version)
  • Evening Horizon (dark version)
  • High Contrast White (accessibility version)
  • High Contrast Black (accessibility version)

Horizon is generally available for productive use by customer and partner development teams using SAP’s UI technologies for developing web-apps as well as native mobile apps. For web apps developed with SAP Business Technology Platform, Horizon was made generally available for productive use with SAPUI5 version 1.102.

SAP Fiori with Morning Horizon theme
SAP Fiori with Morning Horizon theme

Key features of SAP Fiori with the Horizon theme

  • New vibrant color palette that meets WCAG AA accessibility standards
  • Enhanced customer branding options
  • New icon set across all platforms
  • Enhanced focus with more contrast, space, and visual hierarchy
  • Two flavors (light and dark), plus two high-contrast accessibility themes

Related Links

Flexible Column Layout

The flexible column layout is a layout control that displays multiple floorplans on a single page. This allows faster and more fluid navigation between multiple floorplans than the usual page-by-page navigation. The flexible column layout offers different layouts with up to three columns (1, 2, 3). Users can freely resize the columns, switch between different layouts, and view the rightmost column in full screen mode.

Flexible column layout - Example with three columns
Flexible column layout - Example with three columns

The flexible column layout behaves responsively, which makes it suitable for both desktop and mobile devices. Depending on the available screen width, an optimized layout is loaded to ensure the best possible user experience on each device. The flexible column layout is a generic control. As a layout container, it does not provide any content itself.

The flexible column layout is already incorporated within SAP Fiori elements.

Usage

Use the flexible column layout if:

  • You want to create a list-detail or list-detail-detail layout, in which the user can drill down or navigate.

Do not use the flexible column layout if:

  • You want to build a workbench or tools layout. The flexible column layout is not meant to provide a main column with additional side columns on the left and/or right. If you want to display additional content to enrich the main content and to help users better perform their tasks, use the dynamic side content instead.
  • You want to create a dashboard with context-independent pages.
  • You want to open multiple instances of the same object type. Use the multi-instance handling floorplan instead.
  • You want to split a single object into multiple columns, or display only a small amount of information.
  • You want to embed the SAP Fiori launchpad or overview page into one of the columns.

Structure

As with all layouts, the flexible column layout is embedded in the shell bar of the SAP Fiori launchpad. From the shell bar, users have access to the launchpad services, including the home page, search, settings, and help. Apps are embedded in the shell and have little influence over its features. The shell bar also provides the back navigation and the app title, including the navigation menu.

Depending on the current layout and display size, the flexible column layout consists of one, two, or three horizontally-aligned columns. Each column contains content that is not provided by the flexible column layout itself. The flexible column layout is not restricted to a specific floorplan, as long as the floorplan you use is responsive down to phone size. However, we recommend using the dynamic page.

Information
It is not possible to use the SAP Fiori launchpad or the overview page in one of the columns.

Possible Layouts

To give users a better overview, the flexible column layout offers different layouts with one, two, or three columns. Depending on the screen size, up to five alternative default layouts are available.

By default, the ratio is fixed:

  • 33% : 66% or 66% : 33% for 2 columns
  • 25% : 25% : 50%, 25% : 50% : 25%, or 50% : 25% : 25% for 3 columns

The user can also change the size of a column freely by dragging the splitter (for example, 15% : 85%).

Information

Language Dependency

For simplicity, this article assumes that the last column (the lowest drilldown level in the hierachy) is the rightmost column (left-to-right languages).

For right-to-left languages, however, the last column is the leftmost column.

Flexible column layout - Structure example (25% : 50% : 25%)
Flexible column layout - Structure example (25% : 50% : 25%)

Size L and XL (Desktop)

There are five different default layouts in sizes L and XL: a full screen layout, as well as two different 2-column and 3-column layouts.

Available layouts in sizes L and XL
Available layouts in sizes L and XL

Size M (Tablet)

There are three different default layouts in size M: a full screen layout and two different 2-column layouts. There is no 3-column layout due to the limited width. However, you can still load 3 pages in size M. Instead of showing them all side-by-side, the user can switch between columns 1/2 and 2/3.

Available layouts in size M
Available layouts in size M

Size S (Phone)

Because of the limited width, there is no multi-column layout for Size S. Instead, the rightmost column is shown in full screen mode.

Available layout in size S
Available layout in size S

Components

The flexible column layout offers a few simple actions that allow users to adapt the current layout according to their needs.

Note: Some of the actions (illustrated by blue lines in the image below) recover the last state of the layout to which they refer. In other words, the result of the action depends on the previous state of the layout.

Layout Splitter

The layout splitter is a control that allows users to freely resize the columns by dragging the splitter, thereby changing the layout. However, this action cannot be used to expand a column to full screen mode. There is a separate action for that purpose.

The layout splitter is next to the divider between the columns. If a column cannot be resized any further, the layout splitter is hidden.

Enter Full Screen Mode

With the Full Screen icon  , the user can switch the rightmost column to full screen mode. The action is located in the rightmost column, and is only offered if there is more than one column.

Exit Full Screen Mode

By selecting the Exit Full Screen icon  , the user can exit the full screen and switch back to the multi-column (side-by-side) view. The action is only available while in full screen mode.

Information
The actions are not available in size S, which only displays a single column.

Close

With the Close icon   , the user can close the last (rightmost) column. If the user selects this action in the second column while the third column is minimized, both columns are closed. Close is also available in full screen mode, and in the second/third column for size S.

Information

The Close and Enter Full Screen / Exit Full Screen actions:

  • Are only displayed in the third column (or in the second column if there is no third column, or if the third column is minimized).
  • Are displayed as the last actions in the layout action section (or in the global actions toolbar if there is no layout action section in the floorplan). The layout action section is displayed to the right of the global actions on columns ≥1280 px wide, and in a separate line above the global actions on columns <1280 px wide.
  • Never move into the overflow.
  • Are always shown side-by-side (Enter Full Screen / Exit Full Screen icon left, Close icon right).
    Exception: There is no Enter Full Screen action in size S.

Developer Hint
The actions for entering and exiting full screen mode and closing columns are not provided automatically by the flexible column layout control, and need to be implemented manually. However, you can use the semantic page, which supports these actions for freestyle applications (only available with the dynamic page).

Navigation

In addition to the actions specific to the flexible column layout, the user can also use the forward and backward navigation to navigate through the flexible column layout. Drilling in or navigating forward opens a new column, while Back closes a column or exits the full screen mode (depending on what the last action was).
Please note: Back does not restore layout changes (such as switching from 33% : 67% to 67% : 33%). It also doesn’t reopen columns that were closed previously using the Close button (  ).

Because the flexible column layout only supports a maximum of 3 columns, any follow-on pages are loaded in full screen mode. These pages do not contain Close or Enter Full Screen / Exit Full Screen actions.

By default, the width is initially 33% for the second column and 25% for the third column. You can also set the width of the second column to 67%, or the third to 50% if your use case requires it.

Developer Hint
To implement the navigation/routing, you can use the SemanticHelper class, which provides predefined behavior to simplify the implementation.

Responsiveness

The flexible column layout changes its behavior for sizes XL, L, M and S in real time whenever the user resizes the screen.

If no previous state has been saved, ensure that the default layout appears automatically. For example, if the flexible column layout was initially loaded in size S and then, the user navigates to the second column and changes the browser window to size M, the default 2-column layout for size M (67% : 33%) should be shown.

Responsiveness of the flexible column layout
Responsiveness of the flexible column layout

Behavior and Interaction

Dialogs

Dialogs triggered in one of the columns are centered over the entire screen.

Do
Center dialogs triggered in a column
Center dialogs triggered in a column
Don't
Do not right-align dialogs triggered in a column
Do not right-align dialogs triggered in a column

Vertical Size / Scrolling

Each column inside the flexible column layout contains an independent floorplan with its own scrolling behavior. There is no “all-encompassing” scrollbar which scrolls all columns simultaneously. The height of each floorplan is defined by the screen size.

Do
Give each column its own scrollbar
Give each column its own scrollbar
Don't
There is no universal scrollbar for all columns
There is no universal scrollbar for all columns

Scroll Position

During column resizing, the navigated item in the list column may no longer be in the visible screen area. In such cases, we recommend setting the scroll position to the item currently open in the details column (“navigated” item). This allows the user to see at a glance which item from the list or table is being displayed in the details column.

Developer Hint
To get the right scroll position, you can use the “columnResize” event. For more information, see the API reference.

Two Columns (List-Detail Mode)

By default, the flexible column layout starts off with one column. The user opens new columns by navigating forward. Since the flexible column layout is the successor of the split-screen layout, you can also use just two columns if your use case requires it. Do not start your application with three columns. Too much information at the beginning can confuse users.

Note:

  • If you start with two columns, make sure that size S shows the first column. Otherwise, users see the second column first, which might be confusing. (Showing the second column is the normal responsive behavior of the flexible column layout, which always shows the last column in size S.)
  • Even if you start with two columns, offer the layout splitter and the Close action in the second column.
Examples: Starting with two columns (sizes L and XL)
Examples: Starting with two columns (sizes L and XL)

Titles / Breadcrumbs / Up and Down Arrows

If more than one column is visible, show the application title in the shell bar. If the user switches to full screen mode, show the page title. Also show the page title for size S, where only one column is visible.

If multiple columns are visible, hide the breadcrumbs and up/down arrows.

Application title in the shell bar
Application title in the shell bar
Page title in the shell bar
Page title in the shell bar

Bookmarks

Every layout inside the flexible column layout can be bookmarked. For example, if the user bookmarks a 3-column layout set to 25% : 50% : 25%, load this layout when the user opens the bookmark.

Minimized Third Column

When the user expands the first column in a 3-column layout, the third column is minimized. CloseEnter Full Screen, and layout splitter actions also appear on the right-hand border of the second column to allow the user to return to the original 3-column layout.

Close: The second and third (minimized) columns close. A dialog can appear to warn the user about any unsaved data in the third column.

Full screen: When the user clicks the Enter Full Screen icon, the second column switches to full screen mode. The third column remains open (but not visible), and closes as soon as the user selects another item in the second column, or uses the Close action in the second column. If the user selects the same item in the second column, it opens in the same state as before it was minimized.

Example of a minimized third column (33% : 67%)
Example of a minimized third column (33% : 67%)

Layout splitter: When the third column is minimized, the second splitter is only available when the second column is bigger than the first column (by default 33% : 67%). Otherwise, the second splitter is hidden.

Example of a second splitter interaction
Example of a second splitter interaction

Using Close in Combination with Back Navigation

The back navigation must not restore a column that was previously closed with the Close icon  .

Example: The user closes the third column by clicking the Close icon   in the upper-right corner. If the user then navigates back (UI or browser), the second column closes.

Using 'Close' in combination with back navigation
Using 'Close' in combination with back navigation

3 Columns in Size M

To offer a desktop-like experience in size M, the flexible column layout displays either the first and second or the second and third columns. The user can switch between these views by dragging the layout splitter to the left or right side of the flexible column layout. Note: This behavior is only intended for size M. Do not use it for sizes L or XL.

3-column interaction in size M
3-column interaction in size M

Letterboxing

Do not use letterboxing in combination with the flexible column layout, as it will reduce the size of the usable screen area.

Do
Proper use of usable screen area
Proper use of usable screen area
Don't
Improper use of usable screen area with letterboxing
Improper use of usable screen area with letterboxing

Full Screen Navigation

After switching a column to full screen mode, selecting the Back icon exits the full screen mode.

If the screen is in full screen mode, and the user navigates forward, also show the next column in full screen mode. If the user navigates backward, go back in full screen mode until the point where the user initially switched to full screen. If the user then clicks Back again, return to the multi-column mode.

Using full screen mode in combination with navigation
Using full screen mode in combination with navigation

Footer Toolbar

Each column of the flexible column layout can have its own footer toolbar. There is no overall footer toolbar that spans several columns.

Do
Give each column its own footer toolbar
Give each column its own footer toolbar
Don't
There is no overall footer toolbar spanning several columns
There is no overall footer toolbar spanning several columns

Overlapping Header

The flexible column layout can display multiple floorplans side-by-side. However, it is not designed for splitting a single floorplan into several columns. As a result, there is no overall header that spans several columns. If you need to show additional content within a floorplan, use the dynamic side content.

Do
Each column has its own header
Each column has its own header
Don't
There is no overall header
There is no overall header

Empty Details Column

Do not display an empty details column when using the flexible column layout. For example, if no items have been selected in the second column, do not show an empty third column.

Do
If no items are selected in the 2nd column, show only 2 columns
If no items are selected in the 2nd column, show only 2 columns
Don't
Do not show an empty 3rd column
Do not show an empty 3rd column

Usage With One or Several Initial Full Screen Pages

Some use cases require starting an application with one or more full screen pages. You can do this by using the first column of the flexible column layout in full screen mode. This allows you to show one or several initial full screen pages with different content. Because of technical constraints, you must always use the flexible column layout to show this initial content.

Using the flexible column layout with initial full screen pages
Using the flexible column layout with initial full screen pages

Content Padding Inside Columns

The flexible column layout doesn’t provide additional paddings around the content area. Since some controls have different internal paddings, please ensure that they are aligned correctly.

Developer Hint
If you are using the dynamic page inside the flexible column layout, you can use the class sapFDynamicPageAlignContent to overcome misalignment issues.

Navigation Indicator

It is important for users to be able to scan through the list and quickly identify the item for which the details are being shown in the second or third column. This is especially important for large lists. For this case, you can enable a “navigated” indicator for tables and lists to mark the item that was last opened.

If there are several tables/lists on one page, ensure that the indicator shows only for the last navigated item. There should never be two navigation indicators on one page.

Navigation indicator and list without actions
Navigation indicator and list without actions
Navigation indicator and list with single selection
Navigation indicator and list with single selection
Navigation indicator and list with multiple selection
Navigation indicator and list with multiple selection

Content Interaction

Selecting a Different Item

If the user selects a different item in the list-detail or list-detail-detail layout, the content of the details column changes to reflect the data of the newly selected item. If the item is selected in the first column, and the last column was open before the new item was selected, selecting the item closes the last column.

Selecting a different item
Selecting a different item

Deleting an Item

When an item is deleted, there are two options for handling the content of the details columns:

  • Select the next item and change the content in the details column.
    If the user deletes the last item, you can opt to either select the previous item or close the details column(s). If the user deletes all the objects, always close all columns, since there is no content to display.
  • Do not select an item and close the other columns.
Deleting and selecting the next item
Deleting and selecting the next item
Deleting and closing the other columns
Deleting and closing the other columns

Behavior on Filtering

Filtering in one of the columns does not affect the content in the other columns.

Once a filter is applied, the results are shown in the same column. The content in the remaining columns does not change, unless another item is selected.

Filtering does not affect the other columns
Filtering does not affect the other columns

Tab/Anchor Navigation

Tabs and anchors are used for navigation within an object or as a filter (for example, in object pages). They affect only the respective column and do not close or change the content in the other columns.

Tab/anchor navigation does not affect the other columns
Tab/anchor navigation does not affect the other columns

SAP Fiori Elements

The flexible column layout is available in SAP Fiori elements for scenarios that use draft handling. If you use draft handling, we strongly recommend using the SAP Fiori elements implementation, wherever possible. The implementation already includes the navigation and routing behavior, as well as the Close and Full Screen actions, for example. Starting the application with two columns is also supported by SAP Fiori elements.

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

SAP Companion

SAP Companion provides context-sensitive in-app help and is an essential part of the user experience in SAP cloud applications. It displays as an overlay on top of the current application.

You can use SAP Companion to provide two forms of in-app help in SAP Fiori apps:

  • Context help: Context-sensitive help for specific UI elements
  • Guided tours: Step-by-step assistance to lead users through a process

SAP Companion was formerly known as the Web Assistant.

When to Use

Use SAP Companion if:

You want to give users access to additional context-specific information as they work, such as:

  • The meaning of a field in the current context
  • The implications of making certain settings
  • How a field value is calculated
  • The steps in a process
  • Best practices

Do not use SAP Companion if:

  • The UI element is self-explanatory in the context.
  • You could reduce the need for in-app help by improving the design of the app. Do not use SAP Companion as a “crutch” for documenting the shortcomings of an app. Before documenting complexity, always check if there is a way to simplify the user experience. 

Responsiveness

In-app help is available for browsers on desktop devices and tablets (Apple iOS, Microsoft Windows, Google Android). SAP Companion is not supported on smartphones.

Layout

The SAP Companion overlay has the following elements:

SAP Companion Layout
SAP Companion Layout
  • Help button: Allows users to open or close SAP Companion.
  • Hotspot: A highlighted area on the screen indicating that context help is available for a UI element.
  • Bubble: A container for displaying the in-app help for a UI element for both guided tour and context help.
  • Laser: Visualizes the connection between a tile and a hotspot.
  • Carousel: An interactive menu displaying available help content for the current screen, guided tours, and the content search:
    • Search: Allows users to search within the available help content.
    • What´s New tile: Switches the carousel to the What´s New mode.
    • Guided Tours tile: Shows available guided tours for the current screen.
    • Learning tile: Shows recommended learning materials for the current screen. Alternatively, it provides access to more learning content in the learning center.
    • Tile: Allows users to open the associated help content.
    • Minimize: Allows users to minimize the SAP Companion overlay. Hotspots and bubbles remain visible on the screen

SAP Companion supports the high-contrast black theme. The SAP Companion theme adapts automatically if high-contrast black is selected in the SAP Fiori launchpad settings.

SAP Companion Gallery

Content Types

Context Help

The context help provides context-specific help information for UI elements directly within the application. Only help information that is appropriate for the current screen is shown. The intention of the context help is to show process-independent information that clarifies the current screen. Hotspots emphasize the UI elements for which help is available.

Guided Tours

Guided tours take the user through a process step-by-step. You can use them to help users understand and complete end-to-end processes more quickly, and to share best practices. Guided tours can be used across one or several applications.

Each process step is represented by a bubble that contains appropriate instructions and information for the user. Bubbles can either point to a UI element or show in the center of the screen (for example, to display general information).

Behavior and Interaction

Opening SAP Companion

If SAP Companion content is available, a Help option appears in the user actions menu of the SAP Fiori launchpad. Clicking the icon opens the SAP Companion overlay with the carousel.

Using Context Help

Hotspots emphasize the UI elements for which help is available. Clicking on a hotspot shows a bubble with the help content for that field or screen area. All help content is shown in a carousel that is shown at the right side of the screen. A laser highlights the connection between the help content and the selected hotspot.

Using Guided Tours

To start a guided tour, the user selects a dedicated “Guided Tour” tile in the carousel. You can also let guided tours start automatically when the user first works with an app. In this case, the SAP Companion overlay opens automatically.