EXPANDED PALETTE

AgTag  ·  Visual identity  ·  Step 04 of 05
Brand · neutrals · semantic  ·  v1

Brand one-pager rule for this step: "Build out the existing forest green / hi-vis orange / sage with proper neutrals (warm greys, off-whites), semantic colours (success / warning / error), and rules for when each is used."

The palette is built in three layers — brand, neutrals, semantic — and each one has a specific job. Brand carries identity. Neutrals carry information. Semantic carries state. They never swap roles: orange does not mean warning, and red does not appear in marketing.

Three brand colours.
Nine neutrals.
Three states.

01

Brand

Identity. Forest, orange, sage.

02

Neutrals

Information. Warm Stone scale, paper to ink.

03

Semantic

State. Success, warning, error — UI only.

01

Brand · three colours, three jobs

Forest 700 · Orange 500 · Sage 500
Primary · brand

Forest
Green

#2C4A2B · Forest 700
Forest 900
#1A2D1A
Forest 700
#2C4A2B
Forest 500
#3F6B3D
Forest 300
#8AA589
Forest 100
#D4DDD0

Carries the brand. Logo mark, headlines, primary buttons, large fields. The default voice of the company on screen and in print.

Accent · scan cue

Hi-vis
Orange

#E8651A · Orange 500
Orange 700
#B14A0C
Orange 500
#E8651A
Orange 300
#F08C4F
Orange 100
#FAE3D3
— · n/a
4 stops only

Says scan, says action. Tag corners, primary calls-to-action, the strapline closer. Used sparingly — orange that's everywhere is orange that means nothing.

Secondary · supporting

Sage

#8FA07A · Sage 500
Sage 700
#6B7E58
Sage 500
#8FA07A
Sage 300
#B6C4A4
Sage 100
#E2E8D6
— · n/a
4 stops only

The breath between forest and orange. Charts and data viz, secondary chips, large flat fields where forest would feel heavy. Never the primary action.

02

Neutrals · the Stone scale

9 stops · paper → ink

Warm greys, not cold. The whole scale is built off the same hue family as paper — so off-whites, rules, and ink all read as one material rather than three. Pure white and pure black are banned outside semantic and accessibility roles.

Stone 25
Card · raised surface
#FBF9F3
Stone 50
Paper · page default
#F4F1EA
Stone 100
Section bg
#ECE7DB
Stone 200
Subtle fill
#E3DCCB
Stone 300
Rules · borders
#D8D2C2
Stone 400
Disabled · hint
#B3AD9D
Stone 500
Labels · ink-3
#8A8779
Stone 700
Body copy · ink-2
#4A4A40
Stone 900
Headings · ink
#14140F
Rule 01

No pure white

Paper is Stone 50, not #FFFFFF. Pure white is for tag corners (where it's a colour role) and PDF print only.

Rule 02

No pure black

Ink is Stone 900, not #000000. Reads as warm and printed; pure black reads as cheap.

Rule 03

Three text levels

Stone 900 for headings, Stone 700 for body, Stone 500 for labels and metadata. Anything else needs a reason.

Rule 04

One rule colour

Stone 300 is the only border — solid for hard edges, dashed for soft ones. Don't introduce a second rule weight.

03

Semantic · state, not identity

UI only · never marketing
Success

Working green

#4A8B3F · Success 500

Logged. Saved. Synced. Use for confirmation toasts, "tag scanned" feedback, completed checklists, and clear-state badges.

Distinct from forest. Brighter and more chromatic so a "saved" tick never looks like a brand badge.

Movement logged — Field 4 → Field 7 · 14 head
Warning

Amber heads-up

#D99518 · Warning 500

Pay attention. Not broken yet. Use for missing data, expiring passports, low signal, sync delays, anything the user should see before it becomes an error.

Warm amber, not orange. Pulls back from the brand accent so a warning never looks like a button.

Passport expires in 11 days — Cow #482 · update before market
Error

Something's wrong

#B73A2C · Error 500

Stop. Fix this. Failed scans, validation errors, sync failures, destructive confirmations. Pair with clear copy on what to do next.

Rust-red, not fire-engine. Sits with the warm palette. Marketing never uses it — it lives entirely inside the app.

Tag couldn't be read — try wiping and rescanning

Why orange isn't warning

Orange means scan this. It's the brand's call-to-action. If we used it for warnings, every "tag here" cue on the website would read as a problem. Warning is amber and lives only in UI.

Why red doesn't appear in marketing

Error red means something is broken. Putting it on a homepage banner trains users that brand surfaces are something to be alarmed about. Semantic colours are tools, not paint.

04

Surfaces · three pages, three voices

Paper · Forest · Ink
Default · paper

Tag a cow.
Tag a gate.
Tag a crate.

Get AgTag →
Stone 50 · primary surface

Marketing, web, documents. Forest on paper carries identity; orange used for accents only.

Field surface · forest

Keep track
of livestock
movements.

Tag it →
Forest 700 · feature blocks

For section breaks and feature splashes. Orange is the only call-to-action colour on this surface.

Ink surface · app · trade show

One tap.
Where the
work happens.

Scan a tag
Stone 900 · app dark · banners

App dark mode, trade-show banners, photography backdrops. Reverse logo (variant 02) sits here.

05

Pairings · do & don't

Combinations that survive
DO

Forest on Paper

The default brand pairing. Heading green on warm paper is the AgTag voice. AAA contrast.

DO

Orange on Forest

Primary CTA on a feature block. The strapline closer in orange on green is the brand's signature gesture.

DON'T

Orange next to Warning

They argue. Brand orange and warning amber sit too close — pick one or the other on a given surface.

DON'T

Sage on Forest 300

Two muted greens with no contrast. Use Forest 700 + Sage 500, or Sage on paper. Never two greens at the same value.

DO

Sage on Paper

Charts, data viz, secondary chips. Sage carries supporting roles where forest would dominate.

DON'T

Error red on marketing

Error lives in the app. Splashing it on a homepage trains people that brand surfaces signal alarm.

06

Tokens · every value, named

Hex · CSS var · role
Token Hex Role
Brand · Forest
--forest-900#1A2D1AHeadings on light · darkest brand fill
--forest-700#2C4A2BPRIMARY brand · logo · CTAs · headings
--forest-500#3F6B3DHover · charts · secondary fill
--forest-300#8AA589Quiet brand tint · disabled CTAs
--forest-100#D4DDD0Backgrounds · brand-tinted cards
Brand · Orange
--orange-700#B14A0CHover · pressed CTA
--orange-500#E8651APRIMARY accent · scan cue · CTA
--orange-300#F08C4FHighlights · charts
--orange-100#FAE3D3Tinted backgrounds · sticker stock
Brand · Sage
--sage-700#6B7E58Chart series · secondary heading on paper
--sage-500#8FA07ASupporting chips · large flat fields
--sage-300#B6C4A4Surface tint · subtle dividers
--sage-100#E2E8D6Section background
Neutrals · Stone
--stone-25#FBF9F3Card · raised surface
--stone-50#F4F1EAPaper · page default
--stone-100#ECE7DBSection background
--stone-200#E3DCCBSubtle fill
--stone-300#D8D2C2Rules · borders (only)
--stone-400#B3AD9DDisabled state · hint text
--stone-500#8A8779Labels · metadata · ink-3
--stone-700#4A4A40Body copy · ink-2
--stone-900#14140FHeadings · ink (warm black)
Semantic · UI only
--success-500#4A8B3FLogged · saved · synced
--success-100#DDE9D4Success toast background
--warning-500#D99518Heads-up · expiring · low signal
--warning-100#F6E7C2Warning toast background
--error-500#B73A2CFailed · destructive · stop
--error-100#F3D4CFError toast background
Copied