Design library v1.4.1

Last updated 14 August 2026

Colour

Functional colours

Functional colours help to apply colours across Trackore's suite of products in a way that makes interactions predictable, accessible and consistent to users.

Text

text#1A1A1A
secondary-text#353741
inverse-text#FFFFFFUse this colour for text on dark backgrounds
tertiary-text#686E7D

Link

link#4055ED
link-hover#0B3E93

Border

border-interactive#9094A7Use this for interactive elements such as inputs, buttons and cards, checkboxes, radio buttons
border-surface#F4F4F5Use this for informative widgets or divs

Background

default-background#FFFFFF

Error state

error#C0362CUse this colour for error messages

Success state

success#297F51Use this colour for success messages

Focus state

focus#4055ED

Brand colour

brand#4055ED

Palette

White

white#FFFFFF

Black

primary#1A1A1A
secondary#2C2C2C
tint-100#353741
tint-200#3B3B3B
tint-300#686E7D
tint-400#9094A7
tint-500#F4F4F5

Blue

primary#4055EDBrand accent colour
secondary#0B3E93
tint-100#7080F2
tint-200#96A2F5
tint-300#BCC4F9
tint-400#ECF1FB
tint-500#F5F6FE

Red

primary#C0362C
secondary#992C24
tint-100#D06861
tint-200#DC908B
tint-300#E9B9B5
tint-400#FFDBD9
tint-500#FFF1F0

Green

primary#297F51
secondary#256B44
tint-100#549974
tint-200#7FB297
tint-300#A9CCB9
tint-400#D4E5DC
tint-500#F5FFF9

Orange

primary#8B4712
secondary#A85916
tint-100#A26C41
tint-200#B99171
tint-300#D1B5A0
tint-400#E8DAD0
tint-500#FDF0D5

Iconography

Icons communicate ideas to users at a glance, so they should be used sparingly, since an icon's intended meaning may not translate across cultural backgrounds.

General icons

All icons are sourced from lucide.dev to maintain consistency. If you need a custom icon, or one that isn't available in the chosen library, please reach out to the designer or design team.

Small
16 × 16Compact contexts, like the filter dropdown chevron
Medium
20 × 20The default size used everywhere else
Stroke weight
2px

Browse the full icon set at lucide.dev/icons.

Logos Work in progress

Official paths, always monochrome — never blue or a status colour. App bar lockup: 24px target mark beside the title; dev builds add the black dev badge.

Wordmark · black
Target mark · black
Target mark · white on ink
dev Dev badge · development builds only

Typography

Google Sans Flex is the typeface used for Trackore's mobile and web applications. The following settings are for mobile.

Page header, navigational
600 · 22For higher-level content: Departures, Arrivals, Change password, Change station
Page header, action screen
600 · 18For heavy action screens, loading, offloading, creating a bag or load, where the header carries several pieces of information
Subheading
600 · 18
Body
400–500 · 15Bold calls out a key phrase, sparingly. Never bold a whole sentence.
Supporting copy
400–500 · 13Captions, meta and group labels
Button label
600 · 14

Writing Work in progress

These are content guidelines that allow information to be easily found, understood, used and adapted to the needs of all people, and that keep our experience consistent.

Sentence case

All of our content uses sentence case, including headers. Sentence case is when we capitalize the first word and all proper nouns in a phrase. We do this to improve readability and make consistency easier.

App bars & headers Work in progress

Two header patterns, never both on one screen: content title (app-bar row + 700/22 title in the content) and compact sub-page header (back + 600/18 in the bar, optional Muted caption labelling an ID).

Root app bar — station picker trigger
Montreal Office
Content title — 700/22 below the bar row
Vale, Thompson · Station
Select material
Sub-page header — back + 600/18, caption labels the ID
1-CP
Load number · to Toronto Office
Pinned search + 56px canvas fade — scroll affordance
8-CP · CP99119
Copper precipitate
Truck
6 bags · 6,000 kg
Search by bag or load number

Buttons

Buttons allow users to take action and complete tasks needed to achieve a goal.

General specs

Min height
44px
Border radius
12px
Font size
14px
Font weight
600
Padding
12px 16px

Primary

One primary button per screen state.

Defaultblack-primary
Textwhite
Hoverblack-secondary
Textwhite
Disabledblack-tint-500
Textblack-tint-300

Secondary

Used alongside a primary button, or on its own for a lower-emphasis action.

Defaultwhite
Borderblack-tint-400
Textblack-primary
Hoverblack-tint-500
Borderblack-tint-400
Textblack-primary
Disabledblack-tint-500
Borderblack-tint-500
Textblack-tint-300

Tertiary

An inline, text-only action for lower-emphasis or supplementary actions, such as "Edit details" or "Retake". Default colour is the brand accent; on hover it darkens and underlines.

Default (text)blue-primary
Hover (text, underlined)blue-secondary
Disabled (text)black-tint-300

Danger

A destructive action that doesn't need a confirmation step, such as removing a single item from a list.

Defaultred-primary
Textwhite
Hoverred-secondary
Textwhite
Disabledblack-tint-500
Textblack-tint-300

Danger secondary

A destructive action that has an additional step after this button, like a confirmation dialog.

Defaultred-tint-500
Textred-primary
Hoverred-tint-400
Textred-primary
Disabledblack-tint-500
Textblack-tint-300

Cards Work in progress

Reusable containers for grouping related content, from a single tile to a list of rows.

General specs

Radius
14px
Border width
1px
Title font
15px · 600
Sub / meta font
13px

Tile card

A square action tile, like the ones on Home. A lone final tile spans both columns.

Products
Loads
Bulk loads
Fillwhite
Borderblack-tint-400
Textblack-primary
Iconblack-primary

Stat tile

A group of key figures side by side, tabular, with an em dash when a value isn't known.

Net weight
3,000 kg
Products
3
Seal number
Fillwhite
Border / dividerblack-tint-500
Labelblack-tint-300
Empty valueblack-tint-300
Valueblack-primary

List card

A card that groups rows, like a settings list. The destructive row is red with no chevron.

Default station
Montreal Office
Language
English
Log out
Fillwhite
Borderblack-tint-400
Row dividerblack-tint-500
Titleblack-primary
Subblack-tint-300
Chevronblack-tint-300
Destructive titlered-primary

Load card

Shows a single load's identity and its shipment detail, side by side.

2-CP
Copper precipitate
Truck load
1 bag · 1,000 kg
Fillwhite
Borderblack-tint-400
Titleblack-primary
Meta valueblack-primary
Sub / metablack-tint-300

Loading

Shown while actively adding to a load. A check confirms the item, and its weight sits on the right.

2-CP
Copper precipitate
1,200 kg
Check fillgreen-tint-500
Check icongreen-secondary

Capture card

Prompts a photo, then shows the thumbnails added so far with a dashed tile to add more.

Add photo
Add
Add photo fillwhite
Borderblack-tint-500
Thumb fillblack-tint-500
Icon / labelblack-tint-300

Dropdown menus

A field that opens a list of options for the user to choose from, styled to match the height and shape of a text input.

General specs

Height
44px
Border radius
12px
Border width
1px
Font size
14px
Padding
0 14px
Chevron icon
20 × 20

Filter dropdowns

Lets a user narrow what they're looking at, like a station or a material, without leaving the page.

Small
34px · 600For compact bars where several filters sit side by side
Medium
50px · 600For a single filter that needs to stand out, like the station picker
Padding
Small 8px 12px, medium 0 14px
Textblack-primary
Chevronblack-tint-300
Fillwhite
Borderblack-tint-400

Default

The resting state for a trigger with a value selected or a placeholder shown.

Labelblack-primary
Textblack-primary
Qualifierblack-tint-300
Chevronblack-tint-300
Fillwhite
Borderblack-tint-400

Focus

Same as default, except the border is 2px and switches to the brand accent colour.

Borderblue-primary
2px stroke

Disabled

A trigger that can't be opened or focused in its current context.

Fillblack-tint-500
Borderblack-tint-400
Textblack-tint-300

Options list

The list that opens when the trigger is clicked. Selection is shown with a tint fill and ink text; the trigger's current value is checked.

Container radius
14px
Container padding
6px
Item radius
9px
Item padding
10px 12px
Item font
14px · 500
Fillwhite
Borderblack-tint-500
Item textblack-primary
Hover fillblack-tint-500
Selected fillblue-tint-500
Selected textblue-primary

Input fields

Inputs let users enter and edit information needed to complete a task.

General specs

Height
44px
Border radius
12px
Border width
1px
Font size
14px
Padding
0 14px
Helper text font size
13px

Default

The resting state for an empty or editable field.

Hint text goes here
Labelblack-primary
Textblack-primary
Qualifierblack-tint-300
Placeholderblack-tint-300
Hint textblack-tint-300
Fillwhite
Borderblack-tint-400

Consideration: Placing hint text below the label ensures users read essential instructions and constraints before interacting with the input field. This layout prevents mobile keyboards from blocking the text and optimizes the form for screen reader accessibility.

Focus

Same as default, except the border is 2px and switches to the brand accent colour.

Borderblue-primary
2px stroke

Disabled / Readonly

A field that can't be edited, whether it's turned off entirely or just showing a value the user can view and select but not change.

Labelblack-primary
Qualifierblack-tint-300
Fillblack-tint-500
Borderblack-tint-400
Textblack-tint-300

Error

Shown after validation fails, with a message explaining what to fix. The message is set at 13px, the same size as the field's label.

Validation message
Labelblack-primary
Textblack-primary
Qualifierblack-tint-300
Fillwhite
Borderred-primary
Messagered-primary
Ringred-tint-500

Text area

For multi-line text. Same fill, border and radius as a text input, with room to grow.

Hint text goes here
Labelblack-primary
Textblack-primary
Qualifierblack-tint-300
Hint textblack-tint-300
Fillwhite
Borderblack-tint-400

Numerical input

For entering a number. The value is set in tabular figures so digits don't shift width as they change, and the unit rides inside the field as a suffix.

kg
Labelblack-primary
Textblack-primary
Qualifierblack-tint-300
Unit suffixblack-tint-300
Fillwhite
Borderblack-tint-400

Search

A search field is a text input with a leading search icon and no label, since the placeholder states what it searches.

Placeholderblack-tint-300
Iconblack-tint-300
Fillwhite
Borderblack-tint-400

Menus & overlays Work in progress

Menus open ≈5px below their trigger over an 18% scrim, radius 14px; selection = tint + ink + check. Dialogs: radius 18px, 32% scrim + blur. Bottom sheets: radius 22px top, grab handle. Every overlay: Esc, focus trap, aria-modal. Click a launcher below to open the real thing.

Delete bag 1-CU?

This removes the bag and its weight record from Montreal Office. This can't be undone.

The bag ID 1-CU can't be reused.

Update available

This version of Trackore is no longer supported. Update the app to keep tracking loads.

Version 3.2.0 · 38 MB

Custom range

Clear dates

Flag failed delivery

Reason
Truck breakdown
Road or highway closed
Other

1-CP will be marked as failed and Montreal Office will be notified. Products, photos and the trailer number stay on the record.

Cancel

Notice Work in progress

A reassuring, low-priority message shown inline on a page, not tied to an action.

General specs

Radius
12px
Padding
12px 14px
Icon
20 × 20
Text font
13px
This load stays active — you can close the app and come back.
Fill#FCFCFD
Textblack-tint-300
Iconblack-tint-300

Pills

Pills are small, rounded labels for tagging content or showing status at a glance.

General specs

Border radius
20px
Font size
12.5px
Font weight
500
Padding
5px 12px

Default

Tags a piece of content with its type, role, or build, like a material name or a dev build marker.

Truck load Copper precipitate Super dev
Fillblack-tint-500
Textblack-primary
Dev fillblack-primary
Dev textwhite

Status

Shows where a load or bag is in its lifecycle.

Loading Loaded Departed In transit Arrived Unloading Unloaded Failed
Loading / Unloading fillorange-tint-500
Textorange-primary
Loaded fillblue-tint-400
Textblue-secondary
Departed / In transit fillblue-tint-500
Textblue-primary
Arrived fillgreen-tint-500
Textgreen-secondary
Unloaded fillblack-tint-500
Textblack-tint-300
Failed fillred-tint-500
Textred-primary

Radio buttons

Lets a user pick one option from a small set, shown as full-width cards rather than a plain dot and label.

General specs

Card radius
12px
Card padding
14px 16px
Dot size
20 × 20
Main text font
15px · 600
Sub text font
13px

Default

French
Fillwhite
Borderblack-tint-400
Dot ringblack-tint-400
Main textblack-primary

Selected

English
Fillblue-tint-500
Dot ringblue-primary
Dot fillblue-primary
Main textblack-primary

With endonym

A sub-line under the main label, like a language's name in itself.

English
English
Sub textblack-tint-300

Tabs

Bottom tab bar

Margins
24 / 16px
Container padding
6px
Item gap
4px
Item padding
9px 16px
Item font
13px · 600
Scrim
18%
Fillwhite
Borderblack-tint-500
Inactive textblack-tint-300
Active fillblue-tint-500
Active textblue-primary

Segmented tabs

Container radius
12px
Container padding
4px
Segment radius
8px
Segment padding
7px 16px
Segment font
13px · 600
Fillwhite
Borderblack-tint-500
Inactive textblack-tint-300
Active fillblue-tint-500
Active textblue-primary

Timeline Work in progress

Tracks the history of a load or bag as a vertical sequence of events, from creation to its latest status.

General specs

Dot size
11 × 11
Connector width
1px
Item spacing
16px
Main text font
15px · 600
Sub text font
13px
Unloaded from container
Jul 30, 2026 · Montreal Office
Loaded into container
Jul 18, 2024 · Vale, Thompson
Created
Jul 12, 2024 · Vale, Thompson
Filled dotblue-primary
Hollow dot fillwhite
Hollow dot ring#EAEAEA
Connector#EAEAEA
Main textblack-primary
Sub textblack-tint-300

Journey card & lifecycle bar Work in progress

The detail-hub hero: status badges, origin → destination with a static arrow, labelled lifecycle bar (the screen's one progress indicator). ETD/ETA in Blue tabular 600.

Journey card — in transit
In transitCopper precipitate
Origin
Vale, Thompson
Destination
Gardewine, MB
CreatedLoadingLoadedDepartedArrived
ETD
Today, 14:31
ETA
Today, 19:40
Lifecycle bar states — completed/current Blue, labels 10.5px
CreatedLoadingLoadedDepartedArrived
CreatedLoadingLoadedDepartedArrived

Screen templates — 390×844 on canvas, no OS chrome Work in progress

Full screens assembled from the components above. Tab bar on section roots only. Login is the one unique page — included for reference, not a source of shared components.

T1 · Home — section root, tab bar visible
Montreal Office
Create
Products
Loads
Bulk loads
Manage
Departures
Continue loading
2-CP
Copper precipitate
Truck load
1 bag · 1,000 kg
T2 · Settings — section root, 700 page title
Settings
AT
Apple Tester
Super · tester@apple.com
Account
Change password
Preferences
Default station
Montreal Office
Language
English
Session
Log out
T3 · Departures list — browse stack, pinned search
Departures
Started today
1-CP · 1223322
Copper precipitate
Truck
3 bags · 3,000 kg
2-CP · 1223322
Copper precipitate
Truck
1 bag · 1,000 kg
T4 · Load detail — journey-card hub, in transit
1-CP
Load number · to Toronto Office
In transitCopper precipitate
Origin
Vale, Thompson
Destination
Gardewine, MB
CreatedLoadingLoadedDepartedArrived
Net weight
3,000 kg
Products
3
Contents
Container details
Edit details
Trailer number
443064
Mark as arrived
Flag failed delivery
T5 · Login — unique page, not a source of shared components
Sign in
Use your work email to continue.
Forgot password?
Sign in
Trouble signing in? Contact info@trackore.com

Change log

v1.4.1 · 14 August 2026
  • Rebuilt the colour palette into a consistent primary/secondary/tint scale per hue and introduced development-style palette tokens across every swatch in the system.
v1.4 · 13 August 2026
  • Restructured the whole design system into fully specced, reusable components with real states, swatches and a reorganised sidebar.
v1.3
  • Original Figma import build, frozen from the final frames (7 August 2026)