OpenBridge
Design Guidelines

Styles and states

The interactive components in OpenBridge is formatted using styles and states.
A state is the behavior of an interactive element in various stages of interaction. It will change visual appearance when a mouse cursor is hovering over it or when it is pressed.

A style is a visual formatting of an interactive element. For instance, a raised button is visually emphasized compared to a normal button. Both of the styles will be affected by changes in interactive states.

The visual appearance of styles in various forms of states are described as a color area and the color and width of a line around it. This format is applied to the forms of various user interface components.Under each UI components in the components section, there is a description of which state and style combination each component use.

List of styles

List of styles used in the design system. Use the palette switcher above to se definitions for each palette.

Style / State
Color name (fill & stroke)
rgba
Raised
Normal
style-raised-normal-fill
style-raised-normal-stroke
rgba (0, 0, 0, 0.68)
1px rgba (0, 0, 0, 0.12)
Hover
style-raised-hover-fill
style-raised-hover-stroke
rgba (0, 0, 0, 0.80)
1px rgba (0, 0, 0, 0.24)
Pressed
style-raised-pressed-fill
style-raised-pressed-stroke
rgba (0, 0, 0, 0.90)
1px rgba (0, 0, 0, 0.24)
Focused
style-raised-focused-fill
style-raised-focused-stroke
rgba (0, 0, 0, 0.68)
4px rgba (255, 200, 0)
Disabled
style-raised-disabled-fill
style-raised-disabled-stroke
rgba (0, 0, 0, 0)
1px rgba (0, 0, 0, 0.3)
Normal style
Normal
style-normal-normal-fill
style-normal-normal-stroke
rgb (255, 255, 255)
1px rgba (0, 0, 0, 0.68)
Hover
style-normal-hover-fill
style-normal-hover-stroke
rgb (224, 244, 244)
1px rgba (0, 0, 0, 0.68)
Pressed
style-normal-pressed-fill
style-normal-pressed-stroke
rgb (194, 194, 194)
1px rgba (0, 0, 0, 0.68)
Focused
style-normal-focused-fill
style-normal-focused-stroke
rgb (255, 255, 255)
4px rgba (255, 200, 0)
Disabled
style-normal-disabled-fill
style-normal-disabled-stroke
rgba (255, 255, 255, 0)
1px rgba (0, 0, 0, 0.3)
Active
style-normal-selected-fill
style-normal-selected-stroke
rgba (255, 255, 255)
2px rgba (0, 0, 0, 0.9)
Indent style
Normal
style-indent-normal-fill
style-indent-normal-stroke
rgba (0, 0, 0, 0.16)
1px rgba (0, 0, 0, 0.12)
Hover
style-indent-hover-fill
style-indent-hover-stroke
rgba (0, 0, 0, 0.32)
1px rgba (0, 0, 0, 0.24)
Pressed
style-indent-pressed-fill
style-indent-pressed-stroke
rgba (0, 0, 0, 0.48)
1px rgba (0, 0, 0, 0.32)
Focused
style-indent-focused-fill
style-indent-focused-stroke
rgba (0, 0, 0, 0.48)
4px rgba (255, 200, 0)
Disabled
style-indent-disabled-fill
style-indent-disabled-stroke
rgba (0, 0, 0, 0)
1px rgba (0, 0, 0, 0.3)
Selected
Active
style-selected-normal-fill
style-selected-normal-stroke
rgba (0, 0, 0, 0.9)
0px rgba (0, 0, 0, 0)
Hover
style-selected-hover-fill
style-selected-hover-stroke
rgba (0, 0, 0, 0.76)
1px rgba (0, 0, 0, 0.24)
Pressed
style-selected-pressed-fill
style-selected-pressed-stroke
rgba (0, 0, 0, 0.68)
1px rgba (0, 0, 0, 0.24)
Focused
style-selected-focused-fill
style-selected-focused-stroke
rgba (0, 0, 0, 0.90)
4px rgba (255, 200, 0)
Disabled
style-selected-focused-fill
style-selected-focused-stroke
rgba (0, 0, 0, 0.30)
0px rgba (0, 0, 0, 0)
Flat
Normal (Transparent)
style-flat-normal-fill
style-flat-normal-stroke
rgba (0, 0, 0, 0)
none
Hover
style-flat-hover-fill
style-flat-hover-stroke
rgba (0, 0, 0, 0.12)
none
Pressed
style-flat-pressed-fill
style-flat-pressed-stroke
rgba (0, 0, 0, 0.24)
none
Focused
style-flat-focused-fill
style-flat-focused-stroke
rgba (0, 0, 0, 0)
4px rgba (255, 200, 0)
Disabled (Transparent)
style-flat-disabled-fill
style-flat-disabled-stroke
rgba (0, 0, 0, 0)
none
Thumb
Normal
style-thumb-normal-fill
style-thumb-normal-stroke
rgb (255, 255, 255)
1px rgba (0, 0, 0, 0.7)
Hover
style-thumb-hover-fill
style-thumb-hover-stroke
rgba (0, 0, 0, 0.9)
1px rgba (0, 0, 0, 0.12)
Pressed
style-thumb-pressed-fill
style-thumb-pressed-stroke
rgba (0, 0, 0, 0.9)
1px rgba (0, 0, 0, 0.12)
Focused
style-thumb-focused-fill
style-thumb-focused-stroke
rgba (0, 0, 0, 0.9)
1px rgba (0, 0, 0, 0.12)
Disabled
style-thumb-disabled-fill
style-thumb-disabled-stroke
rgba (0, 0, 0, 0.9)
1px rgba (0, 0, 0, 0.12)
Alert styles
Running
style-alert-running-fill
style-alert-running-stroke
rgba (0, 0, 0, 0.9)
1px rgba (0, 0, 0, 0.12)

Component styles

The component styles are used across the UI components to give a consistent look related to their functions.

Component style
Raised
Emphasised elements
Filled areas

Raised

Raised is used for high emphasis buttons and components, and other actions you want to highlight in the view.

Component style
Normal
Standard elements
Text areas

Normal

Normal style is used for most components to keep a neutral look, and where it is important that the text inside is readable or the content inside frequently changes, like textboxes and dropdowns.

A normal styled element does not only have a stroke, but also a solid fill in the palettes container-background color. This is to keep the readability regardless of the surface it appears on.

Component style
Indent
Unchecked elements
Move areas

Indent

Indent is used for unchecked elements, like unchecked checkbox, radio button and toggle button, or areas that can be filled like in the track of a slider.

Component style
Flat
Bar buttons
List items

Flat

Indent is used for unchecked elements, like unchecked checkbox, radio button and toggle button, or areas that can be filled like in the track of a slider.

Component style
Selected
Active button
Selected items

Selected

Indent is used for unchecked elements, like unchecked checkbox, radio button and toggle button, or areas that can be filled like in the track of a slider.

Component style
Thumb
Toggle thumb
Click and drag

Thumb

Indent is used for unchecked elements, like unchecked checkbox, radio button and toggle button, or areas that can be filled like in the track of a slider.

Colors

The OpenBridge Design system organizes colors into types of colors reflecting the function each color has in an application. This makes it easier to develop and change between in a more consistent way.

In the OpenBridge Design System we are working on a predefined palette set for bright, day, dusk and night. The goal is to develop palettes that both meets class regulations and OpenBridge requirements. The palettes also works as examples on how to use the color system.

Colors

A list with all base Colors in the design system.

Color name
RGBa
HEX
Opacity
rgb (0, 0, 255)
#0000FF
100%
ui-input
rgb (255, 200, 0)
#FFC800
100%
alert-running
rgb (0, 210, 0)
#00D200
100%
alert-caution
rgb (0, 210, 0)
#00D200
100%
alert-warning
rgb (255, 160, 0)
#FFA000
100%
alert-alarm
rgb (255, 40, 0)
#FF2800
100%
surface-backdrop
rgb (187, 187, 187)
#BBBBBB
100%
surface-background
rgb (255, 255, 255)
#FFFFFF
100%
surface-section
rgb (234, 234, 234)
#EAEAEA
100%
surface-global
rgb (213, 213, 213)
#D5D5D5
100%
border-divider
rgba (0, 0, 0, 0.12)
#000000
12%
border-outline
rgba (0, 0, 0, 0.2)
#000000
20%
on-background-active
rgba (0, 0, 0, 0.9)
#000000
90%
on-background-unfocused
rgba (0, 0, 0, 0.7)
#000000
70%
on-background-disabled
rgba (0, 0, 0, 0.3)
#000000
30%
on-background-hinted
rgba (0, 0, 0, 0.06)
#000000
6%
on-primary-active
rgb (255, 255, 255)
#FFFFFF
100%
on-primary-normal
rgba (255, 255, 255, 0.7)
#FFFFFF
70%
on-primary-disabled
rgba (255, 255, 255, 0.3)
#FFFFFF
30%
Color name
RGBa
HEX
Opacity
UI colors
ui-primary
rgb (0, 0, 255)
#0000FF
100%
ui-input
rgb (255, 200, 0)
#FFC800
100%
Alert colors
alert-running
rgb (0, 210, 0)
#00D200
100%
alert-caution
rgb (0, 210, 0)
#00D200
100%
alert-warning
rgb (255, 160, 0)
#FFA000
100%
alert-alarm
rgb (255, 40, 0)
#FF2800
100%
Surface colors
surface-backdrop
rgb (187, 187, 187)
#BBBBBB
100%
surface-background
rgb (255, 255, 255)
#FFFFFF
100%
surface-section
rgb (234, 234, 234)
#EAEAEA
100%
surface-global
rgb (213, 213, 213)
#D5D5D5
100%
Border colors
border-divider
rgba (0, 0, 0, 0.12)
#000000
12%
border-outline
rgba (0, 0, 0, 0.2)
#000000
20%
On background colors
on-background-active
rgba (0, 0, 0, 0.9)
#000000
90%
on-background-unfocused
rgba (0, 0, 0, 0.7)
#000000
70%
on-background-raised
rgba (0, 0, 0, 0.7)
#000000
70%
on-background-disabled
rgba (0, 0, 0, 0.3)
#000000
30%
on-background-indent
rgba (0, 0, 0, 0.12)
#000000
12%
on-background-hinted
rgba (0, 0, 0, 0.06)
#000000
6%
On primary colors
on-primary-active
rgb (255, 255, 255)
#FFFFFF
100%
on-primary-normal
rgba (255, 255, 255, 0.7)
#FFFFFF
70%
on-primary-disabled
rgba (255, 255, 255, 0.3)
#FFFFFF
30%

UI colors

The UI colors are used to highlight dynamic data, active elements, selected components, components in use, and more. It is a pair of two colors - one used to display output data and current system state, and one to display user input waiting for the system to respond.

Dynamic color

The main color in the color system is the dynamic color. This is used for active elements like dynamic instrument data texts and graphics.

User input color

The input color is used for situations where the system needs time to respond to the users input, and you want to display both the user input value and the current value in the system.

Alert colors

The alert colors is used to highlight the different levels of alerts displayed in the system. This is four main levels of alerts: Alarm, warning, caution and OK/ Running. This is a category of colors that is regulated, and have to be a specified type of color.

Running color

The running color is used for processes where it is important that the process is running properly, and has a "running" state. This can be processes with startup time, where there is important to signify the difference between a starting process and a running process.

Caution color

The caution color have to be yellow. Make sure the yellow color is easy to separate from the warning color, but does not blend into the background color.

Warning color

The warning color have to be orange. Make sure the orange color is easy to separate from the alarm color.

Alarm color

The alarm color is only used for system alarms. This have to be a unique color to make it visually stand out in the interface when an alarm pops up in the system. Due to regulations, this color have to be red.

Surface colors

The surface colors are used as backgrounds behind text and elements. There are different surface colors to separate different areas related to different levels in the user interface. By separating into different areas you make it easier to structure the content in the UI, and to give the components a context.

Backdrop surface

The backdrop surface color is only used when there are multiple background colored areas associated with different functions. This could be as a background in widget areas, where the widgets are separate functions with no direct relation.

Background surface

The Background surface color is the most used and most dominant surface color in the system. The main area where the content and information in each application will be displayed uses the background color.

Section surface

The Application level surface color should be used for side and bottom bars. This is mainly areas where there user can do actions to interact with the application, like settings, configuration, zooming etc. This color is used for separating application level-functionality from global menus.

Global surface

The Global surface color is used for areas related to the topmost level in the application hierarchy, where you can access global functions and navigate through the top level in the application.  

Borders

There are different kind of borders with different purposes used in the system: Outlines and Dividers. Outlines are used to separate content with no relation, and dividers are used to separate related content. The Outline border should be more visible and clearer than the divider color.

Outline

Outlines are used to separate content from each other to make it easier for the user to understand the relation or non-relation between content displayed on the same screen. The combination of using surface colors and outlines will create natural sections and hierarchy to the content displayed at the same time.

Divider

Dividers appears between equal elements. In situations where there are list items with multiple columns in a row (for instance an icon + label item), and the distance between the rows is relatively equal or smaller than between the columns, a divider can be used to separate the list items.

On background

The OnBackground color is the inversed version of the background color (white on black background and black on white background). It is used for icons, static elements and text throughout the UI. The OnBackground color appears in four different levels: Active, Neutral, Disabled and Hinted.

Active

Used for active elements like text, selected icons, headings and static instrument text. Elements that are static but needs to be highlighted in the UI.

Neutral

Used for static, unselected icons and elements.

Disabled

Disabled text and elements that are disabled / unavailable.

Hinted

Not used for text, but as a background color in graphical objects.

On primary

The OnPrimary color is used on text and elements displayed on top of a primary colored surface to make sure that the text or element has sufficient contrast to the primary color.

Active

Show alarm color in use

Normal

Show warning color in use

Disabled

Show warning color in use