Description

Object list panels are used as object pickers for the main content area or another side Panel. By default, object list panels are 2/3 the size of a regular side Panel at but may be expanded by the user to a larger size.

Usage

Use Object list panels to display large or multi-level lists of selectable items that need to be used in the main content area or in another panel. The object list panel can list its objects as tokens, checkboxes, lists, trees, etc.

Anatomy

1. Header

2. Content Area

The content area, comprising of everything beneath the header border line should be fully scrollable. Because of this, search bars for panel content are most appropriately placed in the sub-header as a means of keeping it ‘sticky’ or locked in permanent position.

Image

Object list panels contain a header that is typical of many Fiori components, such as Dialogs. Basic headers have three minimum required components:

1a. Header bar

1b. Header label

1c. Horder line

Headers may contain additional elements:

1d. Sub-header beneath the header bar

1e. Icon buttons on either ends of the header bar.

Image

Header Styles

Object list panel headers may take two distinct forms depending on the use case. Most commonly, object list panels will use a classic Fiori header (A), but when needed, object list panel headers may also be done with an icon tab bar(B). Use an icon tab bar to create different, but related, content areas in a panel, or, to navigate the long list of its contents. Please do not use tabbed headers if you will only use one tab.

Body

The outer edge of the panel has an optional expansion grabber that can be used to expand its width. The expansion grabber contains a vertically-centred icon, but users should be able to expand the panel by interacting anywhere along its outer edge line (please see under Behavior and Interactions).

Behaviors & Interactions

Access

Object list panels may be opened from a variety of different sources depending on where it will be positioned in the UI. They may be closed by reversing the action that triggered it if possible, or by clicking a closing button on the panel header.

Object list panel that serve the main content area may also be opened by default, where it makes sense to do so. Users should still be able to close and dismiss object list panels that are opened by default. Please do not have opened-by-default object list panels that will serve another side panel.

2
do
false
Open object list panels by default when serving a canvas. When opened by default, a clear way of closing the panel should still be offered to the user
dont
false
Don't open object list panels by default when opening another panel.

Placement

Object list panels may be placed in two different locations in the UI depending on what its listed contents relate to. Regardless of these two positions, the panel should still be above the tab bar if one is being used. Be sure to reverse panel controls to match the placement of the panel: the close button and expansion controls should be in the outer edge of the panel.

2
ObjectList_Placement_Do.png
do
false
Add object list panels on the left-most side of the canvas, or on the left side of another panel. This is so that the user selects their object on the left to and uses that object on the right.
ObjectList_Placement_Don't.png
dont
false
Don't place object list panels in other parts of the UI. Object list panels are meant to appear in the left-side of the component its objects are for.

Expansions

Not all object list panels need to be expandable, but if needed, use the expansion grabber to expand its width. Users can expand the panel through drag and drop or double-click on the control to toggle between its max and default size (see Dynamic Sizing in Behaviours and Interactions). When expanding, ensure the panel’s contents behave responsively.

Panel expansions should not push or reposition items beneath it or rearrange the aspect ratio of a screen floorplan or layout. Instead, object list panels layer over the primary content area, and cover all content beneath it. This is to communicate that the enlarged size is not, and should never be, a permanent fixture on a layout.

All contents of the object list panel should be fully visible in its default size, and expansions should never be used to reveal additional or new content that cannot be seen or reached in the panel’s default size.

2
ObjectList_Expansion_Do1.png
do
false
Allow users to expand the panel when needed.
ObjectList_Expansion_Do2.png
do
false
Expand panels responsively to accommodate existing content.
ObjectList_Expansion_Don't1.png
dont
false
Don't use expansion grabbers as the means for opening and closing the panel. Resizing and accessing the panel are two separate sets of interactions.
ObjectList_Expansion_Don't2.png
dont
false
Don't reveal new content not visible or reachable in the panel’s default size. This inhibits discoverability and is a poor user experience.

Dynamic Sizing

By default, object list panels are approx. 2/3 the size of a regular side panel, or 18rem (288px). This is so that at least 50% of the browser screen is showing the main content. Resizing this panel type should be made dynamic to the browser screen and with special consideration of the main content. When expanded to the largest size possible, 25% of the browser screen should still be occupied by the main content.

Please honour the rules of dynamic resizing to maintain a balanced ratio between panels and visibility of the main content area. Users should close the panel from view if not needed, not reduced it to an unusable size.

2
ObjectList_DynamicSize_Do.png
do
false
Maintain balanced ratios between panels and the main content area.
ObjectList_DynamicSize_Don't.png
dont
false

Don't expand the object list panel so that it completely covers the entire main content area.

Don't reduce the object list panel to a smaller size than the default size. Panel minimum size is 16.375 rem (288px); panel maximum size is 45 rem (720px) - at least 25% of canvas will always be visible.

Panel Actions

High level actions that impacts the whole of the object list panel, such as the closing or back button, should be placed as buttons on the header area. Additional high-level actions, particularly those that would be unrecognizable simply as an icon button, can be added through Fiori’s Action List Item control. Please do not use Fiori’s footer bars with this panel type.

2
ObjectList_Panelactions_Do.png
do
false
Use Action List Items for general or high-level actions.
ObjectList_Panelactions_Don't.png
dont
false
Don't use a Fiori footer in an object list panel. Footer bars are for task panels or for the entire page.

Specifications

<div> <div>Badge</div> <div>Component</div> <div>Specification</div> <div>Details</div> </div> <div> <div></div> <div>* For tabbed headers, please follow <a href="https%3A%2F%2Fexperience.sap.com%2Ffiori-design-web%2Ficontabbar%2F">Icon Tab Bar</a> guidelines. Modify bar to fit 2.5 rem / 40px height.</div> <div> <p>18rem</p> <p>2.5rem</p> <p>@sapUiBaseColor</p> <p>@sapUiShadowHeader</p> <p>* If using sub header, bottom border and shadow appear beneath sub header.</p> </div> <div> <p>288px</p> <p>40px</p> <p>#FFFFFF</p> <ul> <li><em>Border:</em> X:0, Y: -1, blur: 0, spread: 0,<br>#D9D9D9, alpha: 100</li> <li><em>Shadow:</em> X: 0, Y: 0, blur: 4, spread: 0, #000000, alpha: 15</li> </ul> <p>* If using sub header, bottom border and shadow appear beneath sub header.</p> </div> </div> <div> <div></div> <div></div> <div> <p>@sapUiFontHeaderFamily</p> <p>@sapUiFontHeaderWeight</p> <p>@sapMFontHeader5Size</p> <p>@sapUiGroupTitleTextColor</p> <p>2rem</p> <p>0.25rem top / bottom</p> <p>left-aligned</p> </div> <div> <p>72</p> <p>regular</p> <p>16pt</p> <p>#32363a</p> <p>18px</p> <p>4px top / bottom</p> <p>left-aligned</p> </div> </div> <div> <div></div> <div></div> <div> <p>sap.m.Button</p> <p>0.25 rem top/bottom</p> <p>* Close 'X' button placement may vary depending on panel orientation. It should always be on the outer side of panel.</p> </div> <div> <p><a href="https%3A%2F%2Fwiki.wdf.sap.corp%2Fwiki%2Fpages%2Fviewpage.action%3FpageId%3D2025039257%23Button(Fiori3)-TertiaryTransparentHighlightButton">Tertiary (transparent) specs</a></p> <p>4px top / bottom</p> <p>*Close 'X' button placement may vary depending on panel orientation. It should always be on the outer side of panel.</p> </div> </div> <div> <div></div> <div></div> <div> <p>0.5rem</p> <p>* If no button being used, please use 16px between header label and edge of panel.</p> </div> <div> <p>8px</p> <p>* If no button being used, please use 16px between header label and edge of panel.</p> </div> </div> <div> <div></div> <div></div> <div> <p>18rem</p> <p>2rem</p> <p>@sapUiBaseColor</p> <p>inherited from header</p> <p>inherited from header</p> </div> <div> <p>288px</p> <p>32px</p> <p>#FFFFFF</p> <p>inherited from header</p> <p>inherited from header</p> </div> </div> <div> <div></div> <div></div> <div>0.5rem</div> <div>8px</div> </div> <div> <div></div> <div></div> <div><a href="https%3A%2F%2Fsapui5.hana.ondemand.com%2F%23%2Fapi%2Fsap.m.SearchField">sap.m.SearchField</a></div> <div><a href="https%3A%2F%2Fwiki.wdf.sap.corp%2Fwiki%2Fpages%2Fviewpage.action%3FpageId%3D2060056990">Search Field specs</a></div> </div>

<div> <div>Badge</div> <div>Component</div> <div>Specification</div> <div>Details</div> </div> <div> <div></div> <div></div> <div> <p>18rem</p> <p>45rem</p> <p>@sapUiBaseColor</p> <p>@sapUiShadowLevel0</p> </div> <div> <p>288px</p> <p>720px</p> <p>#FFFFFF</p> <ul> <li><em>First layer:</em> X: 0, Y: 0, blur: 0, spread: 1 #000000, alpha: 10</li> <li><em>Second layer:</em> X: 0, Y: 2, blur: 8, spread: 0 #000000, alpha: 10</li> </ul> </div> </div> <div> <div></div> <div></div> <div>1rem all around</div> <div>16px all around</div> </div>