Bold. Structured.
Unmistakably Hook.
The complete brand system reference — colors, gradients, textures, and typography derived directly from Hook Agency's 2026 Brand Guideline. One source of truth for CrawlSpace, client reports, lead gen tools, and every pixel we ship.
Overview
The Hook color system creates a bold, modern visual identity that supports clarity, hierarchy, and strong recognition. Color plays a key role in expressing the brand's confidence, structure, and energetic tone. The palette balances high-impact primaries with flexible neutrals for versatile communication across print and digital.
This guide extends the 2026 Brand Guideline into a production-ready token system. Every color, gradient, texture, and typographic rule you see here is either lifted verbatim from the guideline or derived explicitly to support UI semantics (cards, inputs, focus rings, charts). When derived, it's labeled.
Core Palette
Secondary Palette
Color Pairings
Color Ratio
The 80/20 ratio guides how Hook colors should be used holistically across any communication. Core palette dominates. Secondary palette supports.
Color Opacity
Opacity is used on surfaces, shapes, and backgrounds to create hierarchy — never on type. Text should always be solid brand color against an approved ground.
Gradients
Gradients function as flexible visual elements — background accents, section transitions, marketing hero fills. They never carry type and never introduce colors outside the core or secondary palette.
Textures
Gradient line shapes bring editorial rhythm to layouts — used as background accents, dividers, or decorative elements around hero moments. Combined with paper/noise textures and diagonal patterns, they carry Hook's structured-but-expressive feel across every touchpoint.
Typography
Hook pairs a licensed display face — Champion HTF — with the open-source Archivo family for UI and body text. The two do very different jobs and shouldn't cross over.
'Champion HTF Welterweight', 'Champion Welterweight', Impact, Haettenschweiler, 'Arial Narrow', sans-serif
Page titles only. Section headers sparingly — and only when they benefit from ceremonial weight.
24px floor. Champion loses its sharpness and presence below this. If it would be smaller, use Archivo SemiBold instead.
All Caps or Title Case — never sentence case or mixed. Letter-spacing stays tight.
Left or centered only. No justified. No decorative effects, gradients in type, or embellishments.
'Archivo', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif
'Archivo Narrow', 'Archivo Condensed', 'Archivo', -apple-system, sans-serif
Don'ts
In Context
Overview · roofmedic.com
Tokens & Code
@layer base { :root { /* Surfaces */ --background: #FAFAFA; --foreground: #19191C; /* Shadow */ --card: #FFFFFF; --card-foreground: #19191C; --popover: #FFFFFF; --popover-foreground: #19191C; /* Brand — Cobalt drives action on light */ --primary: #253FF6; --primary-foreground: #FFFFFF; /* Neutrals (official secondary) */ --secondary: #EFEFEF; /* UI Gray */ --secondary-foreground: #19191C; --muted: #EFEFEF; --muted-foreground: #828282; /* Dark Gray */ --accent: #E4E4E4; --accent-foreground: #19191C; /* Status (derived) */ --destructive: #E11D48; --destructive-foreground: #FFFFFF; --success: #10B981; --warning: #F59E0B; --info: #06B6D4; /* Lines */ --border: #E1E1E1; --input: #E1E1E1; --ring: #253FF6; /* Charts — all within approved palette */ --chart-1: #253FF6; /* Cobalt */ --chart-2: #D4FD52; /* Lime */ --chart-3: #6A7CFF; /* Soft Slate Blue */ --chart-4: #9EDC2E; /* Dark Lime */ --chart-5: #828282; /* Dark Gray */ /* Sidebar — UI Gray panel with Shadow text in light */ --sidebar: #EFEFEF; --sidebar-foreground: #19191C; --sidebar-primary: #253FF6; --sidebar-primary-foreground: #FFFFFF; --sidebar-accent: #E4E4E4; --sidebar-accent-foreground: #19191C; --sidebar-border: #D8D8D5; --sidebar-ring: #253FF6; --radius: 0.625rem; } .dark { --background: #19191C; /* Shadow */ --foreground: #EFEFEF; /* UI Gray */ --card: #232327; --card-foreground: #EFEFEF; --popover: #232327; --popover-foreground: #EFEFEF; /* Brand — Lime drives action on dark */ --primary: #D4FD52; --primary-foreground: #19191C; --secondary: #2A2A2E; --secondary-foreground: #EFEFEF; --muted: #2A2A2E; --muted-foreground: #A1A1A6; /* derived: Dark Gray on Shadow is AVOID */ --accent: #36363B; --accent-foreground: #EFEFEF; --destructive: #F43F5E; --destructive-foreground: #FFFFFF; --success: #34D399; --warning: #FBBF24; --info: #22D3EE; --border: #2F2F33; --input: #2F2F33; --ring: #D4FD52; --chart-1: #D4FD52; --chart-2: #6A7CFF; --chart-3: #9EDC2E; --chart-4: #A1A1A6; --chart-5: #36467E; --sidebar: #0F0F11; --sidebar-foreground: #EFEFEF; --sidebar-primary: #D4FD52; --sidebar-primary-foreground: #19191C; --sidebar-accent: #19191C; --sidebar-accent-foreground: #EFEFEF; --sidebar-border: #232327; --sidebar-ring: #D4FD52; } }
@import "tailwindcss"; @theme inline { /* Semantic tokens (mode-aware via CSS vars) */ --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-destructive: var(--destructive); --color-success: var(--success); --color-warning: var(--warning); --color-info: var(--info); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-chart-1: var(--chart-1); --color-chart-2: var(--chart-2); --color-chart-3: var(--chart-3); --color-chart-4: var(--chart-4); --color-chart-5: var(--chart-5); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-border: var(--sidebar-border); /* Raw brand hexes — for marketing, gradients, hero lockups */ --color-brand-shadow: #19191C; --color-brand-lime: #D4FD52; --color-brand-cobalt: #253FF6; --color-brand-dark-gray: #828282; --color-brand-ui-gray: #EFEFEF; --color-brand-dark-lime: #9EDC2E; --color-brand-soft-slate: #6A7CFF; --color-brand-cobalt-variation: #36467E; /* Font families */ --font-champion: "Champion HTF Welterweight", "Champion Welterweight", Impact, Haettenschweiler, "Arial Narrow", sans-serif; --font-sans: "Archivo", ui-sans-serif, system-ui, sans-serif; --font-condensed: "Archivo Narrow", "Archivo Condensed", "Archivo", sans-serif; --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); }
{
"brand": {
"shadow": "#19191C",
"lime": "#D4FD52",
"cobalt": "#253FF6",
"darkGray": "#828282",
"uiGray": "#EFEFEF",
"darkLime": "#9EDC2E",
"softSlate": "#6A7CFF",
"cobaltVariation": "#36467E"
},
"gradients": [
{ "name": "Lime → Dark Lime", "stops": ["#D4FD52", "#9EDC2E"] },
{ "name": "Lime → UI Gray", "stops": ["#D4FD52", "#EFEFEF"] },
{ "name": "Lime → Shadow", "stops": ["#D4FD52", "#19191C"] },
{ "name": "Cobalt → Soft Slate Blue", "stops": ["#253FF6", "#6A7CFF"] },
{ "name": "Cobalt → UI Gray", "stops": ["#253FF6", "#EFEFEF"] },
{ "name": "Shadow → Cobalt Variation", "stops": ["#19191C", "#36467E"] }
],
"typography": {
"display": {
"family": "Champion HTF Welterweight",
"stack": "'Champion HTF Welterweight', 'Champion Welterweight', Impact, Haettenschweiler, 'Arial Narrow', sans-serif",
"minSizePx": 24,
"usage": "Page titles, section headers (sparingly). Never below 24px."
},
"body": {
"family": "Archivo",
"stack": "'Archivo', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
"weights": [400, 600],
"usage": "Main UI font. Everything below 24px."
},
"condensed": {
"family": "Archivo Condensed",
"stack": "'Archivo Narrow', 'Archivo Condensed', 'Archivo', -apple-system, sans-serif",
"weights": [500],
"usage": "Dense data, metadata, specs, UI chrome."
}
},
"light": {
"background": "#FAFAFA", "foreground": "#19191C",
"card": "#FFFFFF", "primary": "#253FF6", "primaryForeground": "#FFFFFF",
"secondary": "#EFEFEF", "muted": "#EFEFEF", "mutedForeground": "#828282",
"border": "#E1E1E1", "ring": "#253FF6",
"destructive": "#E11D48", "success": "#10B981", "warning": "#F59E0B", "info": "#06B6D4",
"charts": ["#253FF6", "#D4FD52", "#6A7CFF", "#9EDC2E", "#828282"],
"sidebar": {
"background": "#EFEFEF", "foreground": "#19191C",
"primary": "#253FF6", "accent": "#E4E4E4", "border": "#D8D8D5"
}
},
"dark": {
"background": "#19191C", "foreground": "#EFEFEF",
"card": "#232327", "primary": "#D4FD52", "primaryForeground": "#19191C",
"secondary": "#2A2A2E", "muted": "#2A2A2E", "mutedForeground": "#A1A1A6",
"border": "#2F2F33", "ring": "#D4FD52",
"destructive": "#F43F5E", "success": "#34D399", "warning": "#FBBF24", "info": "#22D3EE",
"charts": ["#D4FD52", "#6A7CFF", "#9EDC2E", "#A1A1A6", "#36467E"],
"sidebar": {
"background": "#0F0F11", "foreground": "#EFEFEF",
"primary": "#D4FD52", "accent": "#19191C", "border": "#232327"
}
}
}
Downloads
Pre-built packs containing every asset you'll need. Each bundle is kept in sync with the reference on this page — if something changes here, the zip updates on the next deploy.
currentColor for any background.