Best Practices for Designing SAP Fiori Apps

After the “Discover” phase of the design-led development process, your product team knows which apps need to be designed for whom. In other words, you know the user’s business role and tasks.

Design phase
Design phase

How do you translate this into an SAP Fiori design?

Start by deciding on the SAP Fiori design language:

  • Is a native mobile app required because you need device capabilities such as a camera, or offline capabilities?
  • Does it make sense to offer the app in a conversational bot for managing service calls, for example?
  • Do you need to make the app available in different design languages to make use of their specific capabilities?

If your use case doesn’t require any device-specific capabilities or modifications, use SAP Fiori for web as your design language. Due to the responsive and adaptive design, web apps run on both desktop and mobile devices. The apps run in the device browser, so there’s no need to install any software.

The Basics

If you’re designing SAP Fiori web applications, familiarize yourself with the essentials:

Keep the design principles in mind

Use the SAP Fiori design principles as the overarching guidance: Role-based, adaptive, simple, coherent, and delightful.

Understand the launchpad

The SAP Fiori launchpad is a shell that provides a role-based access to SAP Fiori apps (using the home page and spaces) and a shell bar on top that hosts a logo, navigation options, enterprise search, notifications, personalization, and more. The shell bar is always visible.

Get to know the information architecture: Layouts, floorplans, UI elements

SAP Fiori is based on modular components that together build a consistent information architecture. In this section, we’ll explain what we mean by pages, layouts, floorplans, and UI elements. You’ll then see how pages are structured and populated with UI elements.

Pages, Layouts, Floorplans

The basic entity in SAP Fiori is a page. A page uses the entire viewport of an app and consists of three main areas: A header, a content area, and an optional footer toolbar. We call this layout the dynamic page.

The following picture shows how a page is composed:

Page

Dynamic page

Floorplan – List report

For use cases relevant to many applications, we have defined standard page layouts, which we refer to as floorplans.

Examples:

  • The list report, for finding, identifying, and selecting business objects.
  • The object page, for displaying, creating, and editing a single business object.

You can find all floorplans in the Floorplans section of the navigation structure.

Most floorplans are based on the dynamic page and come with a specific combination of UI elements in the header and content areas. For use cases that cannot be designed using a floorplan, take the dynamic page as a basis.

Information
UI elements are the smallest entities in SAP Fiori, ranging from simple controls, such as buttons, to complex controls, such as toolbars, tables, and forms. Complex controls themselves use other controls. For example, a toolbar contains buttons and a smart table contains a title, a toolbar, and items.

Instead of showing one page at a time, you can also show up to three pages next to each other if they have a list-detail relationship. We call this the flexible column layout. For example, the first column contains a list report floorplan with all business objects, and the second the object page floorplan of the selected business object.

The following picture shows a flexible column layout with three pages:

Flexible column layout with 3 pages
Flexible column layout with 3 pages

Dynamic Page: Structure of Header and Content Area

Most of the actual business content appears in the page header and content area.

  • The header contains content that is relevant for the entire page and is visible at all times.
  • The content area is the user’s main work area.

Header

The following picture shows the structure of the page header.

Header structure
Header structure

The header consists of:

  • A title bar with a title and an optional toolbar.
  • Content (optional).
  • Header navigation (optional).
    The header navigation is used to quickly access specific parts of the content area. You can either set anchors on the page or split the content in different tabs. Keep in mind that even if the content is split in different tabs, it is still one page.

Content Area

The structure of the content area varies depending on the header navigation. There are three options:

No header navigation

The content area is organized in one or more content blocks.

Anchor navigation

The content area is organized in sections. Each section contains one or more content blocks.

Tab navigation

The content area uses a tab container. The tab container contains one or more content blocks.

Content area - No header navigation
Content area - No header navigation
Content area - Anchor navigation
Content area - Anchor navigation
Content area - Tab navigation
Content area - Tab navigation

Content blocks represent different aspects of the overall page content, such as a business object or a workflow. The blocks help you design the content area in a well-balanced way.  A content block itself is a container with a title and an optional toolbar on top, and a layout to arrange the controls:

Content block
Content block

Example

The example below shows a page without header navigation and with 3 content blocks in the content area:

Content area with 3 content blocks
Content area with 3 content blocks

The three blocks above contain:

No. 

Content Block 

Description


1

Form container with:

  • Title bar, showing the title (a) and toolbar (b)
  • 2 form groups (c), each form group contains a form with a title and label-value pairs

2

Chart container with:

  • Title bar, showing a title (a)
  • Column chart (b)

3

Table container with:

  • Title bar, showing the title (a) and toolbar (b)
  • Table with items (c)

Floorplan Structure

Floorplans come with a predefined structure in the header and content areas, some more restrictive, such as the list report, some less, such as the object page floorplan. See the respective floorplan articles for a detailed description.

The picture shows a simplified representation of a list report (for a complete description, see List Report):

  • The header title bar contains a title and a toolbar, and the header content contains a filter bar with search fields. No other controls apart from the filter bar are allowed in the header content. You could use the header navigation to show different tables and/or charts in the content area.
  • The content area holds a table and/or a chart. No other content blocks, such as forms, are allowed.

Explore all layouts, floorplans, and UI elements.

List report header
List report header
List report content
List report content

Get to know the most important general patterns

SAP Fiori includes interaction patterns that we use consistently in all SAP Fiori web apps. Make yourself familiar with these patterns. We recommend starting with:

Pattern Learn…
Object Handling About all object actions (create, edit, delete) and the different edit flows, such as editing a complete object or only parts of an object.
Message Handling

Form Field Validation

 

About the different message types, such as information, error, warning, and how to present them to the user. See also how messages are shown when entries in forms are validated.
Action Placement Where to place actions and their order in toolbars.
Navigation How to navigate within an app and between apps, either using the shell bar options or using UI elements on the pages, such as smart links or quick views.
Draft Handling About implicit saving in SAP Fiori.

You can find all patterns in the General Patterns area in the navigation structure.

See SAP Fiori in Action

Reading guidelines is one thing, trying out how it works another.

SAPUI5 samples allow you to check the behavior of layouts and controls, such as the dynamic page, tables, and buttons.

Warning
Keep in mind that SAPUI5 samples may not always be 100% SAP Fiori compliant. This is because SAPUI5 is also consumed by products not using the SAP Fiori design system.

3 Steps Toward a Consistent SAP Fiori Design

Step 1: Download the Latest UI Kit

The design assets in the UI kit are high-fidelity drafts of SAP Fiori layouts, floorplans, and UI elements. Because the design assets follow the guidelines, they can help you to create consistent and guideline-compliant SAP Fiori apps. You also need to download the SAP typeface 72 and the SAP icon font.

To download the UI kit, go to SAP S/4HANA Web UI Kit.

Step 2: Choose Your Floorplans and Layouts

  • If possible, use one of the existing floorplans.
    For more information, see When to Use Which Floorplan and Mapping Task Types to Floorplans.
  • If none of the predefined floorplans fit your use case and you need to create a freestyle design, use the dynamic page as the basis.
  • Decide whether the app should run in a full screen layout (that is, 1 page at a time) or a flexible column layout (with up to 3 columns, each representing a page). With the flexible column layout, you can manage list-detail relationships.
    For more information, see Full Screen vs Flexible Column Layout.
Developer Hint
For designs based on the dynamic page, use the preconfigured semantic page as a basis.
Information
To make app development more efficient, most floorplans are available as SAP Fiori elements.

The developer needs to connect an SAP Fiori element with back-end system services (such as “Create, Edit”) for a business object (such as “Purchase Order”) and metadata (object fields like “Supplier” or “Delivery Date”).

The user interface is generated automatically by the SAP Fiori elements framework, thus making the implementation faster. The framework also guarantees UX consistency and compliance with the SAP Fiori design guidelines.

The trade-off is that it is less flexible if your use case requires a design that is not covered by the SAP Fiori element. Check with your developers whether your design can be implemented using an SAP Fiori element.

For more information, see Introduction to SAP Fiori Elements.

Step 3: Craft the Details

  • Design the details of the different floorplan areas: header, content area, and footer. In the respective floorplan article (see navigation), you’ll find guidance on which controls can be used and how to arrange them.
  • Balance your content area well and ensure that your design works for different screen sizes.
  • Don’t forget the wording: Consistent and user-centric terms make your apps understandable. We’ve defined a comprehensive set of terms for you to use consistently. See the text guidelines.
  • Use colors and icons consistently.
    • If you want to emphasize or classify information using colors, stick to the semantic colors defined for SAP Fiori.
    • Use icons only for their intended purpose and do not transfer them into another context.
  • Consider accessibility, including support for screen readers and keyboard navigation/interaction. See Accessibility in SAP Fiori.

Card

A card represents an app or page. It can be used to launch the app or navigate to the page content. Integration cards are a way of making application content available to end users in a consistent manner.

Integration cards are similar to the cards on the overview page. However, unlike the overview page cards, integration cards can be used in different host environments.

A card can show details about a single app or page, or contain related information from multiple sources. An app or page can also be represented by several cards, which each focus on a different aspect of the content.

Card examples
Card examples

When to Use

You can offer cards on the SAP Fiori launchpad or embed them in other controls.

Offer a card if:

  • You want to give users easy access to an app or page that is relevant for a business task.
  • You want to show a KPI or a preview of the most important content for the task.
  • You want to let users complete a simple action right away, without navigating to the underlying app.

Card Anatomy

A card comprises a header and a content area, which are separated by a divider line. Both components are inside a card container, which includes the background and the border.

Header

The header shows what the card is about. There are two variants: the default header and the numeric header.

Card structure
Card structure

Default Header

The default header shows the basic information about the card and has the following components:

  1. The title is mandatory and represents the “point of view” of the card. Titles longer than three lines are truncated with an ellipsis (…).
  2. Optional: You can use a subtitle to qualify the title or explain the context. Subtitles that exceed two lines are truncated.
  3. Optional: You can use an avatar to provide a visual hint on the card header (for example, an image, icon, or initials).
  4. If the content area contains multiple items, a counter is added to the header. It shows how many items are visible on the card in relation to the total number of relevant items (for example, “6 of 12”).
Default header
Default header

Numeric Header

Use the numeric header if you need to display numeric information.

  1. Mandatory title
  2. You can add a subtitle with additional qualifying information (optional).
  3. If you specify a currency or unit of measurement, it also appears in the subtitle row. If you provide both a subtitle and a unit of measurement, the display format is: <subtitle text> | <unit of measurement>.
  4. In additional to the general information, you can configure the visualization for a numeric value, such as a KPI.
  5. If required, you can also show up to two additional indicators that relate to the main KPI.
  6. If required, you can display more information about the numeric value directly below it (for example, the period for which a KPI applies).
Numeric header
Numeric header
Guidelines
Ensure that the card title is short, clear and precise.

Provide all the information required to interpret the numeric value (specific description, currency or unit of measurement, relevant period).

  • For currencies and standard units of measurement, use the dedicated unitOfMeasurement property. The unit then appears consistently in the subtitle line. If the value is a simple count (such as the number of open tasks), a precise title/subtitle text is usually sufficient.
  • If the value applies to a period, use the footer area (5) to specify the period.

Content Area

The content area is reserved for showing information from the underlying source(s). Cards can represent different types of content, with several visualization options. This depends on which card type is used.

Guidelines
In the card content area, show the most relevant data for the task at hand.

Card Types

The card type defines how content is presented (for example, as a list or table). The embedded controls govern the layout, navigation, and interaction in the card content area.

The following card types are available:

List Card

The list card can display multiple list items of various types.

Schematic example of a list card
Schematic example of a list card

Analytical Card

The analytical card visualizes analytics data. It can contain a line chart, bar chart, or donut chart.

Schematic example of an analytical card
Schematic example of an analytical card

Table Card

The table card displays multiple items in a table view.

Schematic example of a table card
Schematic example of a table card

Object Card

You can use this card type to display information about an object in groups. Each group can contain as many items as needed.

Schematic example of an object card
Schematic example of an object card

Timeline Card

The timeline card displays time-related content in chronological order.

Schematic example of a timeline card
Schematic example of a timeline card

Calendar Card

The calendar card shows the schedule for a single entity (typically a person) for a selected day.

Schematic example of a calendar card
Schematic example of a calendar card

Component Card

The component card allows you to display a SAPUI5 component as content. This gives you significant flexibility in configuring the content.

Behavior and Interaction

Card Header

The whole header is clickable and is the navigation area for opening the underlying source. Clicking the header opens the app or page that relates to the card.

Card Content

The content area can have several click areas with different purposes. They depend on the control used and the structure of the content.

Guidelines
Always provide meaningful navigation targets. Ensure that the navigation target supports the information flow that starts on the card.
Card interaction
Card interaction

Responsiveness

The responsive behavior for integration cards depends on the container control of the host environment (for example, SAP Fiori launchpad). The size of the card adapts dynamically to the size of the container.

Top Tips

  • Cards introduce users to the content in the underlying source. Make sure that your card focuses on the most relevant content.
  • Use cards if supportive visualizations and meaningful navigations are helpful for users.
  • Don’t use individual branding.
  • Avoid unnecessary white space on the card.

Related Links

Elements and Controls

Implementation