Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 25 Next »

Overview

When you are designing GUI screens for an application, it can be tricky to get the various components to appear exactly where you want them and move in response to the screen dimensions (desktop or mobile).

This page explains key concepts that you need to understand about how layout components can be positioned, sized and made to flow. 

The videos illustrate the concepts using a screen designed using the Theme 2 palette. If you have Theme 2 installed, you can use find the example dashboard in the repository. Navigate to Packages  → Theme2 - App Builder. Right-click T2 - Example Dashboard and select Display

In the Theme 2 palette, layout components have been combined into ready-made tiles that you can drag into a dashboard. 

In the properties tab for layout components there are several sections where you can configure position, size and flow. You can change the formatting of one component. If you need to make the same change to several components, use the Shared Styles.

  • To configure the selected layout component only, use:
    • Style Settings: Auto Size, Direction and options to set scrollbars
    • Position Settings: fix the position, size and order of layout components
    • CSS Properties: configure less common CSS options, such as z-index.
  • To configure multiple components in the same way, use Shared Styles →  Basic Settings These include settings for borders backgrounds and setting scrollbars. You can set more options by adding CSS Properties to shared styles.

See Also:

Size

To control the size of layout components on a dashboard you can:

  • Specify a fixed size in pixels.
    Set Position Settings → Width and Height with valuepx.
  • Specify a size that varies as the screen resizes and always occupies the same proportion of space. 
    Set a percentage in Position Settings → Width and Height with value%.
  • Allow the layout component to automatically expand to fit the visible space on screen.
    Set Style Settings → Auto Size ticked.
    • If the layout component has siblings (components at the same level) they share the space in the flow direction equally.
      (To specify the flow direction, in the parent component set Style Settings  → Direction.)
    • Child components may need more space than is available. For example, they may contain more fields than will fit on a screen. In this case the fields will extend outside the boundaries of the parent area.
  • Control how much a layout component will expand compared to its siblings using a ratio. 
    Set a Style Settings → Grow Factor. For example, enter 2 to allow a component to take up twice the space as its siblings.
  • Allow layout components to expand to the space they need, pushing the parent container to expand beyond the screen.
    Set Style Settings → Auto Size unticked.
    Remember to enable scroll bars on the parent container using Style Settings → Show Horizontal Scrollbar and Show Vertical Scrollbar.
  • Allow a layout component to change it's size within a minimum and/or maximum range.
    In CSS Properties set CSS Tag: min-height or max-height and Value: valuepx.

The following video shows how the different settings affect layout components in a dashboard.


Remember that with auto size set:

A single, empty area component in a dashboard will automatically fill all the visible dashboard space, even though it is empty.

A component does not expand to accommodate all its content. It expands to fit the available space.

If there are more fields than can be displayed in a component you can:

  • Either add scroll bars to the component. In Style Settings, select Show Horizontal Scroll Bar or Show Vertical Scroll Bar.
  • Or allow the parent component to expand by unticking Auto Size in the parent. This allows the child objects to push the container to expand to fit the content. You must then add scroll bars to the parent component.

Position

Position settings can be:

  • absolute, when you want to configure a specific location for a component within its parent.  This can be useful where you want a component to always appear in the same place. For example, you may want the company logo to always appear in the top left of every screen. However, setting an absolute position prevents the component from flowing with other things on the screen.
  • relative, when you want to position the component relative to siblings. This allows items to flow or flex. Use relative positioning if you want your application layout to be responsive to different screen sizes.

Absolute or Fixed Position

To specify a component is always positioned in the top left corner of its parent area, set Position Settings → Top0 and Left: 0.
If you have a fixed layout component combined with components that have relative positioning, be aware that:

  • the fixed component's size depends on its Position Settings → Width and Height. If no value is set it will have the default minimum size.
  • other components will flow over the top of a fixed component.
    To change which component is in front/behind, add a CSS Properties and set:
    • CSS Tag:  z-index
    • Value to be greater than 1.
      2 is sufficient to bring a component to the front. However, if you use a larger increment, for example 10, you have the flexibility of adding more layers if they are needed.

Relative Position

By setting the properties on a parent area, you can determine how the child objects are positioned relative to each other.

To configure how components align, use Style Settings

  • Direction:
    • Row puts components next to each other horizontally.
    • Column puts components below each other vertically.
  • Wrap: Wrap - allows components to start a new row or column when all space is filled.  This also means when the screen size changes, the components will flow onto additional rows, rather than disappearing off-screen.

Additional style settings affect the child objects. The following settings provide very responsive design.

  • Wrap: Wrap - allows components to start a new row or column when all space is filled.  This also means when the screen size changes, the components will flow onto additional rows, rather than disappearing off-screen.
  • Justify: Flex Start - tells the first component to be in the top left
  • Align: Stretch - tells each component to stretch to fit the available space. If all components fit on one row, then the components extend to fill the vertical space. If components have to wrap to form a second row, each row will occupy half the vertical space.

There is a Theme 2 demonstration dashboard that you can use to see how this works. In the repository Packages section navigate to Theme2 - App Builder. Right-click T2 - Example Dashboard. and select Display. When you resize the screen, you can see that the different areas move to remain visible in the smaller window.

When you change a layout component from flowing within its parent to having a fixed position, depending on other settings:

  • it's size may change
  • it may be behind or in front of another component.

Combining Settings for Responsive Applications

When you combine Auto Size with Style Settings, you can achieve a responsive "flexbox" design.

When you set Auto Size and a Direction, PhixFlow provides additional Style Settings for Wrap, Justify and Align. The Align: Stretch option is useful to expand components into the available space perpendicular to the flow direction. For example, in a row, components stretch to fill the vertical space. In a column, they stretch to fill the horizontal space.



  • No labels