Brand Guidelines

01

Logo

A ring and a bowl. The O does the work. Dark Green and Sage sit 1.8° apart in hue — same color family, different lightness. That is why it holds together, and why it does not change.

Wordmark · light surfaces
Wordmark · dark surfaces
App icon
Favicon 48
32
16
Clear space

Keep the height of the O clear on every side. Nothing enters it.

Minimum size

Wordmark: 96px wide on screen, 25mm in print. Below that, use the app icon.

Store icons are square

No rounded corners on the 1024 or the 512. Apple and Google apply their own mask. Pre-rounding double-rounds it.

Never

Recolor it. Stretch it. Add a shadow. Put Terracotta in it. Rotate it. Outline it.

02

Color

Click any swatch to copy its hex. The mark is three colors. Everything else exists to serve it — the neutrals all carry the mark's hue at a whisper of chroma, which is what stops the page reading as "gray with green bits on it."

The mark

Locked. These three are the logo. They do not change.

Accent

Urgent only. If everything is urgent, nothing is.

Sage family

Sage cannot be type at 3.9:1. These are the variants that can.

Neutrals

Every one carries the mark's hue (135°) at a whisper of chroma. That is what makes the page feel like one thing.

03

Where colors go

This is the part that matters. A palette is paint; this is instructions. Every number below is the real contrast ratio, computed when this page was built. Green passes at normal text size. Amber is large text only. Gray with a ✕ means never.

WhitePaperSage WashTerracotta WashDark GreenInk
Ink17.0215.6614.7315.11.451.0
Graphite11.2410.359.739.971.041.51
Muted5.314.894.64.712.213.2
Sage Text5.364.934.644.752.193.18
Terracotta Text5.224.84.524.632.253.26
White1.01.091.161.1311.7217.02
Cloud1.211.111.051.079.6814.06
Slate2.292.11.982.035.137.45
Sage Light1.911.761.661.76.138.89
Sage3.883.573.363.443.024.39
Terracotta3.453.172.993.063.44.93
passes at any size (4.5:1+) large text only (3:1+) never
Sage is a shape color

Fills, icons, focus rings, the O bowl. It is 3.88:1 on white — it cannot be type. Use Sage Text.

Terracotta is a shape color

Bars, dots, badges. 3.45:1 on white. Use Terracotta Text when it must read.

Slate is for dark surfaces

5.13:1 on Dark Green. But 2.29:1 on white — on light, use Muted.

Terracotta is for urgent

The missed call. The lost job. Roughly 0.04% of the pixels in any layout. If it is everywhere, it means nothing.

04

Typography

Two families. Rubik shouts, Inter explains. No third font, ever.

Headline · Rubik 800 · uppercase
Never miss
another lead
800 / 66pxHero
800 / 44pxSection
700 / 20pxCard title
Body · Inter 400 · sentence case
Every call, text, and message lands in one place. You answer it before the other guy picks up.
400 / 17pxLede
400 / 16pxBody
400 / 14pxCaption · Muted
600 / 12pxEyebrow · Sage Text
Headlines are uppercase

Always. Rubik 800, tight tracking (-0.01em).

Body is never uppercase

Inter, sentence case, 1.6 line height. Uppercase body is unreadable.

Eyebrows use Sage Text

Never Sage. At 12px, Sage is 3.57:1 and fails.

05

Buttons

One primary per screen. If two things are primary, neither is.

Get started
Primary

The one real CTA on a screen.

#313B2B · #FFFFFFHover #3E4A34
Get started
Secondary

Sits next to primary. Never competes.

#FFFFFF · #313B2BBorder #DADED8, Sage on hover
Get started
On dark

Primary, on a Dark Green section.

#FFFFFF · #313B2BHover Cloud
Get started
Ghost on dark

Secondary, on Dark Green.

transparent · #FFFFFFBorder 34% white
06

Forms

These are the colors to set in the HighLevel form builder. The label always shows — that is the rule that everything else depends on.

We text first. No robocalls.
That address is missing a domain.
Get started
Label: Graphite, always visible

The label is the accessible name. It never disappears into the field.

Placeholder: Slate, decorative only

2.29:1 — deliberately quiet. It is an example, not an instruction. Never put required information here.

Focus: Sage, 3px, 1px offset

The one place Sage touches interaction. Visible on every surface.

Error: Terracotta Text

5.22:1. The border goes Terracotta, the message goes Terracotta Text.

Never placeholder-as-label

It vanishes the moment someone types, and screen readers do not announce it reliably.

07 · in progress

The key visual

Still being worked out — what's below is a placeholder, not a locked spec. The one thing that is decided: either the channels explain it, or the inbox does — never both at full volume.

Mode A · glance

The phone alone, full six-row inbox. For anything small and fast: SMS, social, link previews. Channels would turn to mush at that size.

9:41 Inbox6 NEWMike R.Missed call, Google search0:42 Sarah T.Quote request from your site2m I-35 billboardCall to tracking number6m Dave M.Texted your number11m Linda K.Scanned your mailer18m Avery L.Message from Facebook24m $4,200 job bookedAnswered in 42 seconds

Mode B · considered

Channels feeding a merged trunk into a simplified three-row phone. For sell sheets, email, slides — anywhere someone sits with it. The inbox only has to confirm what the channels promised.

SEO Social Digital AdsCalls Texts Web Forms Billboards Direct Mail9:41 Inbox3 NEWMike R.Missed call0:42 Sarah T.Quote request2m I-35 billboardTracking number6m $4,200 job bookedAnswered in 42 seconds
Terracotta marks one row

The missed call. Never two. The whole composition is built so your eye lands there first.

The outcome card is the point

The phone shows the problem. The card shows the money. Never ship the phone without it.

Do not use both modes at once

Channels plus a full inbox is a diagram, not a key visual. That was the mistake in the early drafts.

08

Email

Email is a different universe and it will break anything you assume.

SVG does not render

Gmail and Outlook strip it. Every mark, icon, and visual becomes a PNG at 2x. No exceptions.

No flex, no grid

Tables only. role="presentation", inline styles, 600px wide.

Headlines stay live text

Never bake copy into an image. Images-off is common, and the email still has to sell.

Buttons need VML

Outlook ignores padding on anchors. Use the v:roundrect fallback.

Under 102KB

Gmail clips past that and hides your CTA behind "view entire message."

Host the images

Media library, absolute URLs. Local paths render as broken boxes for every recipient.