WorkfloPlus Design System

As part of my role as Senior Product Designer, I set about creating an all-encompassing and robust design system to try and promote autonomy within the development team. This design system could be used when developing new areas of the product, ensuring a consistent user experience, user interface, and that is on-brand & thematically correct to all other areas of the product.

Colour Palettes & Usage

Primary Colour Palette

Secondary Colour Palette

Colour Usage

Use appropriate colours for backgrounds and content

Ensuring the content is an appropriate colour to the background ensures everything is clear and legible no matter the screen size and resolution

The square on the right is using a background colour very similar to the star, making it difficult to view

Use appropriate colours to emphasise an icon or button’s action.

Ensuring the use of appropriate colours to emphasise an icons button (Red for destructive actions, blue for neutral and green for positions/completion) gives the user a clearer User experience.

The button of the left uses red correctly the show that the delete action is destructive

Colourblindness Consideration

Below are examples of how our colour scheme is affected by the most commonly recognised colour blindness

1) Unaffected Colour Scheme, 2) Red-Weak/Protanomaly, 3) Green-Weak/Deuteranomaly, 4) Blue-Weak/Tritanomaly, 5) Red-Blind/Protanopia, 6) Green-Blind/Deuteranopia, 7) Monochromacy/Achromatopsia

Text Legibility

Dark text on light backgrounds

Dark text on light backgrounds (shown here as #293148 on #FFFFFF) applies the following opacity levels:

1) High-emphasis text has an opacity of 100%

2) Medium-emphasis text and hint text have an opacity of 50%

3) Disabled text has an opacity of 25%

1) Text, 2) Background, 3) Text Selection Colour

Helper Text

For example, helper text on light backgrounds could apply the following opacity levels and default hexes:

1) High-emphasis helper. This text uses a hex code #293148 at 100% opacity

2) Medium-emphasis helper. This text uses a hex code #293148 at 50% opacity

3) Default error helper. This text uses a hex code of #D54E00 at 100% opacity

Selected Text

To reflect the brand, text selection is an accent of our secondary colour.

The selected text should be legible against the selection colour, and the selection colour should contrast the background colour. Alternatively, you can display outlines, motion, checkmark icons, or other text treatments to indicate selected text.

The WorkfloPlus Design System type scale includes a range of contrasting styles that support the needs of your product and its content.

The type scale is a combination of 13 styles that are supported by the type system. It contains reusable categories of text, each with an intended application and meaning. (Scaling determined by material conventions)

Text Scale

Headlines

Below are examples of how different headline scales are correctly applied within the dashboard.

A display style is used for Headline 5 (Roboto, Medium, 24pt)

A display style is used for Headline 6 (Roboto, Medium, 16pt)

Body

There are two different scales used for the body. Below are examples of how different body scales are correctly applied within the dashboard. 

Body 1 is used for general use, whether it be small or large bodies of text. 

Body 2 is exclusively used within data tables allowing for the use of more characters within a limited space

A display style is used for Body 1 (Roboto, Regular, 14pt)

A display style is used for Body 2 (Roboto, Regular, 12pt)

Buttons

Button text is a call to action using different types of buttons (such as text, outlined and contained buttons) and in tabs, dialogues, and cards.

Button text is typically an all-caps sans serif.

A display style is used for Button (Roboto, Medium, All Caps, 14pt)

Types

Text fields come in two variants:

1) Filled text fields

2) Outlined text fields

Both types of text fields use a container to provide a clear affordance for interaction, making the fields discoverable in layouts.

Text Fields

1) Filled text field, 2) Outlined text field

Anatomy

1) Container, 2) Leading Icon (Optional), 3) Label Text, 4) Input Text, 5) Trailing Icon (Optional), 6) Activation Indicator, 7) Helper Text

Container

Containers improve the discoverability of text fields by creating contrast between the text field and surrounding content.

Fill & Stroke

A text field container has a fill and a stroke (either around the entire container, or just the bottom edge). The colour and thickness of a stroke can change to indicate when the text field is active.

Rounded Corners

The container of an outlined text field has rounded corners, while the container of a filled text field has rounded top corners and square bottom corners.

Containers

Label Text

Label text is used to inform users as to what information is requested for a text field. Every text field should have a label.

Label text should be aligned with the input line, and always visible. It can be placed in the middle of a text field, or rest near the top of the container.

Two examples of Label Text being correctly applied to a text input box

Two examples of Label Text being incorrectly applied to a text input box

Don’t - Label text shouldn’t take up multiple lines.

Don’t - Label text shouldn’t be truncated. Keep it short, clear, and fully visible.

Required Text Indicator

To indicate that a field is required, display an asterisk (*) next to the label text and mention near the form that asterisks indicate required fields.

1) If some fields are required, indicate all required ones

2) If most fields are required, indicate optional fields by displaying the word “optional” in parentheses next to the label text

3) If the required text is coloured, that colour should also be used for the asterisk.

Required text with asterisk indicator

Assistive Elements

Assistive elements provide additional detail about text entered into text fields.

1) Helper Text

Helper text conveys additional guidance about the input field, such as how it will be used. It should only take up a single line, being persistently visible or visible only on focus.

2) Error Message

When text input isn’t accepted, an error message can display instructions on how to fix it. Error messages are displayed below the input line, replacing helper text until fixed.

3) Icons

Icons can be used to message alerts as well. Pair them with error messages to provide redundant alerts, which are useful when you need to design for colourblind users. 

Error Messages

For text fields that validate their content (such as passwords), replace helper text with error text when applicable. Swapping helper text with error text helps prevent new lines of text from being introduced into a layout, thus bumping content to fit it.

A) If only one error is possible, the error text describes how to avoid the error

B) If multiple errors are possible, error text describes how to avoid the most likely error

Do - Swap helper text with error text | Don’t - Place error text under helper text.

Caution - Long errors can wrap to multiple lines if there isn’t enough space to clearly describe the error. In this case, ensure padding between text fields is sufficient to prevent errors from bumping layout content 

Icons

Icons in text fields are optional. Text field icons can describe valid input methods (such as a microphone icon), provide affordances to access additional functionality (such as clearing the content of a field), and can express an error.

Leading and trailing icons change their position based on LTR or RTL contexts.

1) Valid or Error Icon

Iconography can indicate both valid and invalid inputs, making error states clear for colourblind users.

2) Clear Icon

Clear icons let users clear an entire input field. They appear only when input text is present.

3) Voice Input Icon

A microphone icon signifies that users can input characters using voice.

4) Dropdown Icon

A dropdown arrow indicates that a text field has a nested selection component.

5) Icon Signifier

Icon signifiers can describe the type of input a text field requires, and be touch targets for nested components. For example, a calendar icon may be tapped to reveal a date picker.

Form View/Input Types

Text fields can display user input in the following ways:

1) Single Line Text Field - Displayed only on one line

2) Multi-line Text Field - Grows to accommodate multiple lines of text

3) Text Area - Fixed-height fields

1) Single-line Field

In single-line fields, as the cursor reaches the right field edge, text longer than the input line automatically scrolls left.

Single-line fields are not suitable for collecting long responses. For those, use a multi-line text field or text area instead.

2) Text Area

Text areas are taller than text fields and wrap overflow text onto a new line. They are a fixed height and scroll vertically when the cursor reaches the bottom of the field.

The large initial size indicates that longer responses are possible and encouraged.

These should be used instead of multi-line fields on the web. Ensure the height of a text area fits within mobile screen sizes.

3) Multi-line Fields

Multi-line text fields show all user input at once. Overflow text causes the text field to expand (shifting screen elements downward), and the text wraps onto a new line.

These fields initially appear as single-line fields, which is useful for compact layouts that need to be able to accommodate large amounts of text.

Data Table

Data tables panels display sets of data across rows and columns

Columns

Height & Padding

The baseline row height is 52px, and the column headers row height is 56px 

(4px taller than regular rows) (change for margin rule w/ ems)

Padding

There is 32px or more of padding between columns

There is padding on the left and right side of each header name.

Text

Column header text is 14pt and uses a medium-weight font (to differentiate it from row text which is 12pt and regular weight)

Text that is longer than the column width is truncated with an ellipsis. On hover, a tooltip shows the full name.

Example of truncation with an ellipsis.

Hovering over a truncated column header reveals the full text, using a tooltip.

Behaviour

Row Hover (Desktop)

When a user hovers over a row, that row displays a background colour

Hovering over a row

Column Hover (Desktop)

When the user hovers over a column hover

1) A tooltip can display the full column name (if it’s truncated) or a detailed description

2) If sorting is enabled, an arrow icon can appear next to the column’s header

A tooltip or a downward or upward arrow icon can be displayed when hovering over a column name

Theming

Colour

Workfloplus’ data tables use custom colour on five elements: the container, the header, header text, table text and dividers

Typography

WorkfloPlus’ data tables adhere to the typography conventions below

Buttons

Buttons allow users to take actions, and make choices, with a single tap.

Text Button

Text buttons are typically used for less important actions..

Outlined Button

Outlined buttons are used for more emphasis than text buttons due to the stroke.

Contained Button

Contained buttons have more emphasis, as they use a colour fill and shadow.

Icon Button

Icon buttons are used when a large number of actions can be performed from a single panel. (Ensure that tooltips are always used as some icons without accompanying texts could be confusing to new users)

Tooltip displaying the description of an Icon Button

Button States

Text Button States

Outline Button States

Contained Button States

Usage

Below are examples of panels and modals using an array of different buttons with explanations as to why certain buttons are used in different circumstances as well as examples of how a button can be implemented incorrectly

1) Outline Button

An outline button is used here instead as a contained button because while it’s important for it to be clearly visible it’s not the action that needs to have the most emphasis on the modal

2) Contained Button

A contained button is used here because action needs to have the most emphasis on the modal

1) Outline Button

Icon buttons are used when you have a large number of actions that can be performed from a panel.  To save space these icons don’t have a title so must have a tooltip explaining to the user what action they perform

2) Contained Button

A text button can be used when you need a button but have limited space. I’d recommend using them over an “Icon Button” if the action in question is limited to the panel you’re on and no opening a new one. Text buttons must be in all caps to differentiate them from normal text

Misusage

Don’t place a button below another button if there’s space to place them side by side

Only use Icon Buttons when you have multiple actions to go on one panel

Ensure the colour of the button correctly reflects it’s action

Selection Control

Selection controls allow the user to select options

1) Radio Button, 2) Checkboxes, 3) Switches

Radio Buttons

Usage

Radio buttons allow the user to select one option from a set. Use radio buttons when the user needs to see all available options. If available options can be collapsed, consider using a dropdown menu because it uses less space.

States

Radio buttons can be selected or unselected. Radio buttons have enabled, hover, focused and pressed states.

Checkboxes

Usage

Checkboxes allow the user to select one or more items from a set. Checkboxes can be used to turn an option on or off.

States

Checkboxes can be selected, unselected, or indeterminate. Checkboxes have enabled, hover, focused and pressed states.

Switches

Usage

Switches toggle the state of a single setting on or off. They are the preferred way to adjust settings on mobile.

State

A switch is successfully toggled when the user slides a switch thumb to the other side of the track, and the state of the switch changes.

1) Thumb, 2) Track

Text Label

The option that the switch controls, as well as the state it’s in, should be made clear from the corresponding inline label.

Avoid creating a switch that includes the text “on” and “off” within the graphic itself. The switch alone should be sufficient.

Specs

Previous
Previous

FlixTix - Cinema App

Next
Next

WorkfloPlus - PWA