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
Link
Border
Background
Error state
Success state
Focus state
Brand colour
Palette
White
Black
Blue
Red
Green
Orange
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.
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.
Typography
Google Sans Flex is the typeface used for Trackore's mobile and web applications. The following settings are for mobile.
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 for a page-level title, and a compact sub-page header for drilling into a record.
Root app bar
Sits at the top of a section root and opens the station picker.
Content title
A page-level title with a breadcrumb-style back row above it, used once per screen.
Sub-page header
A compact header for a record, with an optional caption labelling the ID and an overflow action.
Pinned search
A summary row pinned above a search field, signalling there's more to scroll to below.
Buttons
Buttons allow users to take action and complete tasks needed to achieve a goal.
General specs
Primary
One primary button per screen state.
Secondary
Used alongside a primary button, or on its own for a lower-emphasis action.
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.
Danger
A destructive action that doesn't need a confirmation step, such as removing a single item from a list.
Danger secondary
A destructive action that has an additional step after this button, like a confirmation dialog.
Cards Work in progress
Reusable containers for grouping related content, from a single tile to a list of rows.
General specs
Nav Tile / Stacked
A square action tile with the icon stacked above the label, like the ones on Home.
Nav Tile / Inline
A full-width action tile with the icon and label side by side, for a lone tile that spans the row.
Stat Group / Default
A group of key figures side by side, tabular, with an em dash when a value isn't known.
Media Upload / Compact
For when photos already exist and the priority is reviewing them, not prompting for the first one.
Media Upload / Default
Prompts a photo, then shows the thumbnails added so far with a dashed tile to add more.
Line Item / Compact
Shown while actively adding to a load. A check confirms the item, and its weight sits on the right.
Line Item / Detailed
Shows a single load's identity and its shipment detail, side by side.
Settings List / Default
A card that groups rows, like a settings list. The destructive row is red with no chevron.
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
Filter dropdowns
Lets a user narrow what they're looking at, like a station or a material, without leaving the page.
Default
The resting state for a trigger with a value selected or a placeholder shown.
Focus
Same as default, except the border is 2px and switches to the brand accent colour.
Error
Shown after validation fails, with a message explaining what to fix. Unlike focus, the border stays 1px, just switched to the danger colour, with no ring.
Disabled
A trigger that can't be opened or focused in its current context.
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.
Input fields
Inputs let users enter and edit information needed to complete a task.
General specs
Default
The resting state for an empty or editable field.
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.
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.
Error
Shown after validation fails, with a message explaining what to fix. Unlike focus, the border stays 1px, just switched to the danger colour, with no ring. The message is set at 13px, the same size as the field's label.
Text area
For multi-line text. Same fill, border and radius as a text input, with room to grow.
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.
Search
A search field is a text input with a leading search icon and no label, since the placeholder states what it searches.
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.
Notice Work in progress
A reassuring, low-priority message shown inline on a page, not tied to an action.
General specs
Pills
Pills are small, rounded labels for tagging content or showing status at a glance.
General specs
Default
Tags a piece of content with its type, role, or build, like a material name or a dev build marker.
Status
Shows where a load or bag is in its lifecycle.
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
Default
Selected
Error
Shown after validation fails, with a message explaining what to fix. The border stays 1px, just switched to the danger colour, with no ring.
With endonym
A sub-line under the main label, like a language's name in itself.
Tabs
Bottom tab bar
Segmented tabs
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
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.
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.
Change log
- 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.
- Restructured the whole design system into fully specced, reusable components with real states, swatches and a reorganised sidebar.
- Original Figma import build, frozen from the final frames (7 August 2026)