Access to add and change pages is restricted. See:

User Interface Layout Best Practices

In order to present the user with a consistent user interface (UI) certain guidelines or best practices should be followed. The guidelines presented here are intended for the back office (manager) applications. Layout for public-facing screens (such as eCommerce) are typically customer-defined and will have different guidelines.


OFBiz navigation is separated into four main categories, and some screens may have others. Navigation links should appear only for targets that the user has permission to access.

Main Navigation

This section contains links for business and end-user oriented applications. Links to less frequently used and more technical applications are kept in secondary navigation. The main navigation area should indicate which application is currently selected.

Secondary Navigation

This section contains links for less frequently used applications. The secondary navigation area should indicate which application is currently selected.

Application Navigation

This section contains the application's title, plus links to functional areas within the application. Application navigation should indicate which area is currently active.

Application Area Tabs

This section consists of tabs that split up a single area of an application into multiple screens that all fit together and are generally parameterized with the same parameter or set of parameters (for example the productId for all of the Product and related tabs). The tabs should include only the screens that are a part of the set of screens for the area. Links to screens that are not part of the set of screens for the area should be included in the links below the tab bar.

Guidelines for Main Screen Areas

Main Screen Area

The Main Screen Area is the area inside the decorator that changes for each area of an application. In other words it does not include the masthead or footer, or side-bars if the application has them.

This area of the screen is focused around whatever task or process the user is performing. If multiple tasks are used in a single screen, they should be separated clearly.

Generally speaking, the main screen area should contain the following items, going from top to bottom:

1. Optional application area tab bar (mentioned above).
2. Page title, using the page-title style. The page title displayed in the main content area should match the title bar title. This makes a strong connection between screens, bookmarks and browser history.
3. Optional related screen buttons, in the button bar style (external links outside of a certain set of screens). For instance, a Find screen might have a "Create New" button here.
4. The main form or other interaction area.

Many screens will fall into a few general categories, and those categories are detailed below.

Create or Add Screens

Create or add screens should contain the following items, going from top to bottom:

1. Optional application area tab bar.
2. Page title, using the page-title style.
3. Data entry form, including a Save button.

Avoid having unnecessary controls on the screen. For instance, a create screen should not contain a "Create New" button on it - that would be redundant.

In some cases, screens with a create form also contain a list of existing items. If that pattern is used, the item data entry form should be above the existing item list. In addition, the item data entry screen should be collapsible and initially collapsed. If the new item form area is not collapsible then it should be below the list of existing items.

Find Screens

Find screens should contain the following items, going from top to bottom:

1. Optional application area tab bar.
2. Page title, using the page-title style.
3. Optional related task buttons, in the button bar style. For instance, a "Create New" button.
4. Optional Search Options data entry form. The form should be collapsible, and collapsed when a find has been done and there are results for it.
5. List of found items - the search results.

Using the FindScreenDecorator is recommended - it will facilitate correct layout and reduces screen widget code.

The initial display of search results is controlled by the widget.defaultNoConditionFind property in the file. If a specific behavior is desired regardless of that setting the noConditionFind should be set in the screen actions.


New, Add

When something new is being created, UI artifacts (menu items, page titles) should be identified with the term New. When something is being added to something else, UI artifacts should be identified with the term Add. There is a subtle difference between the two terms, and choosing the correct one is important. An example:

You can create a new Party, and you can create a new Party Role Type. To connect the two, the terms used need additional information: New Party Role or Add Party Role to Party. A developer might prefer the first term - because a new PartyRole value is being created, and a user might prefer the second term - because a role is being added to a party.

  • No labels


  1. Unknown User (

    Defining intuitive User Interface
    here is a good link from User Interface Engineering.

  2. Unknown User (

    Hi BJ:
    Recently revisited this topic and found your comment posted here. I'm wondering - do you think that these "Best Practices" are in opposition to the viewpoints expressed in "Defining Intuitive User Interfaces"?


    1. I agree with Adrian as far as words go.
      However if you walk into a home builders business an note what is consistent, then walk into a restaurant, you will not find the same consistency.

      you will find consistency between businesses that do home building and ones that are restaurants.

      Just like if you go to an accountant then a bookkeeper there are similarities and differences they look for to get their Job done.

      So Intuitive is base on what the business has define as their way of doing business

  3. The key word in the page overview is "consistent" - not "intuitive". If the UI is consistent, then it will become intuitive. The reason the article's author automatically pressed 9 to dial out from his hotel room is because hotels are consistent in using 9 to get an outside line.

    1. In France it's 0, all depends on the context, without knowing the context you are screwed, so BJ was not so wrong...