League & Williams — 2026 rebuild

Brand guide kit

The type scale, colour palette and button set as they are actually built in the prototypes. Nothing here is proposed — every value was read back out of option1-with-hive-variation/index.html (the home_v1 / home_v2 bundle), inner-service.html, team-index.html and the button funnel button.html. Each entry carries the selector it came from, so a developer can open the file and see it in place. Fonts and the two brand colours are client-mandated and do not change — the modernization keeps League & Williams' branding.

01

Font families

Two families, both from Google Fonts, both carried over from the live site — verified 2026-08-19. Raleway does every heading, label, button and phone number; Open Sans does every running paragraph. No font change is part of this project. The one hard split: if it is uppercase and tracked, it is Raleway; if it is a sentence you read, it is Open Sans.

Headings · UI · buttons
Raleway
font-family: Raleway, sans-serif
300 LightPractice areas
400 RegularPractice areas
600 SemiBoldPractice areas
700 BoldPractice areas
800 ExtraBold250 385 4100

How the weights are used: 300 for every large uppercase heading (H1–H3) — the light weight is what makes the caps read as modern rather than shouty · 600 for card titles and mid-size UI · 700 for buttons, eyebrows and small caps labels · 800 is reserved for phone numbers and the footer wordmark — nothing else on the site is set at 800.

Body copy · forms
Open Sans
font-family: "Open Sans", sans-serif
400 RegularThe firm reads as a league of teams.
600 SemiBoldThe firm reads as a league of teams.
700 BoldThe firm reads as a league of teams.
400 ItalicThe firm reads as a league of teams.

How the weights are used: 400 for all running text · 600 to lift a phrase inside a paragraph and for form labels · 700 only where a body-sized word has to act as a heading. Open Sans is never set uppercase — that job belongs to Raleway.

The token block — paste this into any new prototype page

/* the design tokens every prototype page declares */
:root {
  --orange:     #EF6D3E;   /* brand orange — the distinctive one */
  --orange-dk:  #D85A2E;   /* pressed / hover state of solid orange */
  --orange-cta: #EF6136;   /* the contact strip's slightly redder orange */
  --teal:       #46ADC8;   /* minor accent — eyebrows, links, the polygon */
  --brown:      #423C37;   /* brand brown-black — headings, primary button */
  --band-dark:  #453F39;   /* the contact band's left half */
  --body-text:  #6B6B6B;   /* default running text */
  --paper:      #F9F9F9;   /* page background — never #FFFFFF */
  --line:       #E4E1DC;   /* every hairline, border and rule */
  --footer:     #2A2622;   /* warm near-black — never pure black */
}
/* the brand shape — a regular pointy-top hexagon, ratio √3/2 = 0.8660254 */
.hexpt { clip-path: polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%); }
02

Colour palette

Four brand colours carry the identity; everything else is a neutral built to stay out of their way. The white rule: white is never pure white and black is never pure black. Backgrounds are the off-white #F9F9F9 and the darkest surface is the warm near-black #2A2622 — the live site's flat #FFF and #000 are exactly what the modernization moves away from.

Brand core — the four that are not negotiable

Primary
#EF6D3E--orange The firm's distinctive colour. Phone numbers, the footer CTA band, the sticky consultation tab, the hexagon accents, every hover state.
Accent
#46ADC8--teal Minor accent only. Eyebrow kickers, "CALL NOW" labels above numbers, article links, and the polygon's original fill.
Dark
#423C37--brown Brand brown-black. All headings, nav items, and the fill of the primary (swarm) button. Warm, not neutral grey.
Paper
#F9F9F9--paper The page background everywhere. Cards sit on it in plain #fff, which is what makes them read as raised.
Hover
#D85A2E--orange-dk The pressed/hover state of any solid-orange surface (B1, the sticky tab). Never used as a resting colour.

A fifth orange exists: #EF6136 (--orange-cta) is the inner pages' contact strip, marginally redder than #EF6D3E. It is a legacy value carried over from the live site's own two oranges, not a second brand colour — do not introduce it into new work; use #EF6D3E.

Surfaces & lines

Card
#FFFFFFCards, mega menus, modals — a raised plane on the paper, never the page itself.
Paper
#F9F9F9Page & header background.
Fill
#F4F2EDPlaceholder / stub blocks, inset panels.
Line
#E4E1DC--lineEvery border, hairline and divider on light ground.
Line-lt
#F0EEE9The lighter hairline between links inside a mega menu.
Dashed
#C9C4BCThe 2px dashed frame marking placeholder photography.

Dark surfaces

Band
#453F39--band-darkThe contact band's left half ("Not one lawyer. A league.").
Button
#423C37--brownPrimary button fill and the breadcrumb bar on inner heroes.
Footer
#2A2622--footerFooter ground. Warm near-black — never #000.
On dark
#D8D4CFParagraph text on the dark contact band.
On orange
#FBE3D8Supporting text on an orange ground ("Available 24/7", office note).

Text greys — light ground

Article
#3F3F3FLong-form article body (inner pages). The darkest running text.
Link
#4A453FMega-menu links and service-box names at rest.
Body
#6B6B6B--body-textDefault running text everywhere on the homepage.
Caption
#8D867EFigure captions, map labels.
Meta
#9A948BDates, counters, small print, secondary rail copy.
Label
#A8A29AUppercase micro-labels (column headings inside mega menus, eyebrow rows).

Text greys — footer (dark ground)

Bright
#E8E4DEThe wordmark's tagline under the footer logo.
Nav
#C9C3BBFooter navigation links and contact lines.
Base
#A9A29AFooter default text colour.
Body
#8F8880Footer paragraph and address blocks.
Heading
#7E776EFooter column headings and the bottom bar.
Faint
#6E675FThe quietest footer note (office qualifiers).

Not part of the palette: #44403B and #B44A33 appear in the prototypes as the fold-line marker and its button — internal measuring chrome, stripped before anything is shown to the client. Do not carry them into the build.

03

Typography — H1 to H6 and paragraph

The prototypes were built as pages, not as a scale, so this table maps what is on the page onto the H1–H6 ladder. Sizes are the values in the CSS, verbatim. Two honest notes before you read it: the homepage deliberately has no H1 — the client's brief rules out a hero, so the practice-area grid is the first screen and the page's H1 lives on the inner templates; and the modal element named .h5 in the markup is set at 21px, larger than the H4 role — a naming slip in the prototype, listed below as a deviation rather than quietly renumbered.

H1Page title
Motorcycle Accident Claims
Family
Raleway
Weight
300 Light
Size
38px
Line-height
1.14
Tracking
.09em
Case
uppercase
Colour
#FFFFFF on #EF6D3E
Where: the orange panel of the inner-page hero — one per page, never on the homepage. .shero .tp .htitle
H1·altIndex / sheet title
Our Lawyers
Family
Raleway
Weight
300 Light
Size
26px
Tracking
.06em
Case
uppercase
Colour
#423C37
Where: index and listing pages, where the title sits on paper rather than inside a coloured hero panel. .sheet-head h1
H2Section heading
Behind every team
Family
Raleway
Weight
300 Light (700 for the emphasised word)
Size
30px
Tracking
.06em
Case
uppercase
Colour
#423C37
Margin
12px 0 18px
Where: every homepage section heading, always directly under a teal eyebrow (H6). The light-with-one-bold-word treatment is the signature — the bold word carries the meaning, the light weight keeps the caps calm. .teams h2 · .shead h2
H2·darkSection heading, dark band
Not one lawyer. A league.
Family
Raleway
Weight
300 Light
Size
27px
Line-height
1.45
Tracking
.04em
Colour
#FFFFFF on #453F39
Where: the contact band's claim. Slightly smaller and more tightly tracked than the light-ground H2 because reversed type reads heavier. .cband .league h2
H3Sub-section
Latest from the firm
Family
Raleway
Weight
300 Light
Size
22px
Tracking
.08em
Case
uppercase
Colour
#423C37
Where: a heading inside a section that already has an H2 — the articles and FAQ columns. .knw h3.kh
H3·cellPractice-area title
Marine &
Maritime
Family
Raleway
Weight
300 Light
Size
21px
Line-height
1.35
Tracking
.12em
Case
uppercase
Where: the triage checkerboard cells and the mega-menu rail title. Wider tracking (.12em) than the sub-section H3 because these are two or three words standing alone. .tcell.txt h3 · .mega .rail .rt
H4Card / article title
What ICBC's Part 7 benefits actually cover after a crash
Family
Raleway
Weight
600 SemiBold
Size
16.5px
Line-height
1.5
Case
sentence case
Colour
#423C37 → #EF6D3E on hover
Where: article cards. The first level that drops uppercase — below 18px, tracked caps stop being scannable. .art h4
H4·capsLocation / list title
Victoria Head office
Family
Raleway
Weight
600 SemiBold
Size
17px
Tracking
.06em
Case
uppercase
Where: office cards. Single words survive caps at this size where a sentence would not. .loc .city
H5Widget / sidebar title
Injury claims
Family
Raleway
Weight
700 Bold
Size
19px
Line-height
26px
Tracking
.02em
Colour
#423C37, 1px rule under
Where: the sticky sidebar navigation title on inner pages. .n5x .wtitle
H5·devDeviation — modal title
Book a free consultation
Family
Raleway
Weight
600 SemiBold
Size
21px
Tracking
0.3px
Flagged: the consultation modal's title is marked .h5 in the markup but is set larger than H4. It is really an H3-scale title inside a small surface. Keep the look, fix the name in the build. .cmodal .h5
H6Eyebrow kicker
Behind every team
Family
Raleway
Weight
700 Bold
Size
12px
Tracking
.18em
Case
uppercase
Colour
#46ADC8 (teal)
Marker
11×13px orange hexagon, 9px gap
Where: above every H2. The most repeated single element in the design — teal, widest tracking on the site, always preceded by the brand hexagon. .kick · .kickg · .kickd
H6·labelMicro column label
Injury claims

Practice areas
Family
Raleway
Weight
700 Bold
Size
12px light ground · 11.5px footer
Tracking
.10em · .14em
Colour
#A8A29A · #7E776E (footer)
Where: mega-menu column headings and footer column headings. Same role, two grounds. .mega .mh · .nfoot .fh

Paragraph — the four body sizes

PArticle body

If you are hurt in a crash in British Columbia there are two separate claims running at once, and they are paid by the same insurer for different reasons. Part 7 benefits are no-fault. The tort claim is not.

Family
Open Sans
Weight
400
Size
17px
Line-height
28px (1.65)
Colour
#3F3F3F
Para gap
20px
Links
#46ADC8, no underline
Where: long-form reading — service and article pages only. The largest body size on the site. .entry
P·secSection body

ICBC claims, motorcycle and cycling collisions, pedestrian injury, slip and fall, dog bites, and wrongful death — handled by a team, not a single lawyer carrying your file alone.

Family
Open Sans
Weight
400
Size
13px
Line-height
1.7 – 1.8
Colour
#6B6B6B
Where: the homepage's supporting copy — checkerboard cells, mega-menu rails, section intros. The default paragraph. .tcell .matters · .ap-rail p · .mega .rail p
P·leadLead, dark ground

Six offices on Vancouver Island and the Lower Mainland. One call reaches the team that handles your kind of claim.

Family
Open Sans
Weight
400
Size
15px
Line-height
1.8
Colour
#D8D4CF on #453F39
Where: the contact band only — the one place a paragraph is set larger than 13px on the homepage. .cband .league p
P·metaMeta & caption

Available 24/7 · No fee unless we win · 3 of 12

Placeholder — replaced after the November shoot. Sized and cropped to the final 16:9 aspect ratio.

Meta
11.5px / 1.65 · #9A948B
Caption
13px / 21px · #8D867E
Family
Open Sans 400
Where: dates, counters, disclaimers (meta) and figure captions. Captions run the full width of the image they belong to, not a 64ch measure. .dcount · figure.wide figcaption

Display numerals — the phone number is its own type role

TELDisplay / contact
250 385 4100
Family
Raleway
Weight
800 ExtraBold
Sizes
54px band · 24px header · 22px footer · 21px office card
Tracking
.02em
Colour
#FFFFFF on dark · #EF6D3E on light
Why it is listed as type: the client's first requirement is that contact "hits you in the face". The number is set at four sizes across the page and is the only role using Raleway 800. Always paired with a teal 12.5px / .14em label above it. .cband .call .big · .nheader .phone .num
04

Button classification

Twenty candidates were built and compared in the button funnel (button.html, B1–B20). B19 — "the swarm assembles" — was picked as canonical and is the primary button everywhere in the prototypes. The rest of this section is the full set as built, ordered by how loudly each one asks: base → primary → secondary → tertiary → utility. Hover every example; the states below are live.

Base — the shared skeleton every button inherits

Base
Base button
.b
Not used on its own. It is the shell every variant below is built on — so a new button never re-invents the padding or the type.
The skeleton, unstyled
Family
Raleway
Weight
700
Size
13px
Tracking
.06em
Case
uppercase
Padding
12px 20px
Radius
0 — square, always
Transition
all .16s ease
Rule: no button on this site has a border-radius. The square edge is what lets the hexagon accents read as the only curved-away shape.

Primary — the main call to action

Primary
Swarm button (B19)
.swarmbtn
The canonical CTA. Contact band, footer CTA band, mega-menu rail, consultation modal, every "Book Consultation".
Hover — the three cells fly into formation Book consultation Request a call back
Fill
#423C37
Text
#FFFFFF
Padding
12px 44px 12px 20px
Marker
3 × 9×10.5px orange hexagons
Hover: the fill does not change — the three scattered hexagons rotate to 0° and converge (250ms). The brand's motion signature: the swarm assembling is the "league, not one lawyer" idea in a button.
Primary
On an orange band
.swarmbtn.shadow
The same button where the ground is already orange — it needs a shadow to detach, not a different colour.
Footer CTA band Book consultation
Adds
box-shadow: 0 3px 0 rgba(0,0,0,.18)
Rule: never place a solid-orange button on an orange ground. Brown plus a hard 3px shadow is the answer used throughout.
Primary
Full-width form submit
.swarmbtn.wide
The submit control inside the consultation modal and sidebar forms.
Block, text kept left
Display
block · width 100%
Align
text-align: left
Why left: the hexagons live in the right padding. Centring the label would collide with them.
Primary alt
Solid orange (B1 / B9)
.b1 · .b9
B1 is the live site's current button, carried into the funnel as the control. B9 is the brown-to-orange inversion.
B1 — orange → #D85A2E · B9 — brown → orange
B1 fill
#EF6D3E → #D85A2E
B9 fill
#423C37 → #EF6D3E
Use sparingly. With the swarm button as primary, solid orange is a second-voice CTA — one per screen at most, or the orange stops meaning "act".

Secondary — present, but not competing

Secondary
Quiet outline (B7)
.b7
The standard secondary next to a primary — "learn more" beside "book now".
Hover — border and text go orange, the cell grows 25% Book consultation
Fill
#FFFFFF
Border
1.5px #E4E1DC → #EF6D3E
Text
#423C37 → #EF6D3E
Padding
11px 18px 11px 16px
Marker
10×11.5px orange hexagon, left
Pairing rule: a secondary always sits to the LEFT of its primary, so the eye lands on the primary last.
Secondary
Pill / back control
.ap-back
Dismisses an expanded state — the "All practice areas" control when a triage cell has taken over the grid.
Sits over content, so the fill is translucent white
Fill
rgba(255,255,255,.94)
Size
11.5px / .08em
Padding
9px 14px
Smaller type than the base button by design — a dismiss control should be findable, not loud.

Tertiary — text CTAs, the quietest ask

Tertiary
Rule-under link
.tlink
"All articles", "About the firm", "Open v1" — a continue-reading link, not a conversion.
Family
Raleway 700
Size
12.5px (11.5px plain)
Tracking
.08em, uppercase
Rule
2px solid #EF6D3E, 3px below
Hover: text goes orange, the rule stays. The .plain variant drops the rule and is orange at rest — used inside cards where a rule would fight the card border.
Tertiary
Rule-under link, dark ground
.tlink.on-dark
The same control inside the contact band.
Dark ground — text white, rule stays orange About the firm
Text
#FFFFFF
Rule
2px #EF6D3E
Size
13px
The orange rule is the constant across both grounds — it is what makes the two read as the same control.
Tertiary
Flight path (B17)
.b17
Funnel option, not used in the current pages. Kept here because it is the dashed-rule alternative if the solid rule ever feels too heavy.
Dashed rule = a flight path See all locations
Rule
repeating 6px orange / 6px gap
Text
#423C37 → #EF6D3E
Status: candidate only. Do not introduce it without a decision — two text-CTA treatments on one site is one too many.

Utility — controls, not calls to action

Utility
Icon button
.iconbtn · 38 / 34 / 30px
Gallery arrows (38), office card actions (34), fact stepper and service-box actions (30).
One treatment, three sizes
Fill
#FFFFFF → #EF6D3E
Border
1px #E4E1DC → #EF6D3E
Icon
#423C37 → #FFFFFF
Shape
square, never round
The full-invert hover is what separates a control from a CTA — a CTA never changes its fill colour on this site, a control always does.
Utility
Bare close
.mclose
Modal dismiss. The only button with no fill and no border.
Grey until hovered
Colour
#B9B3AB → #EF6D3E
Size
17px
Padding
4px 6px
Deliberately weak — a close control that competes with the form inside the modal is a conversion leak.
Utility
Hexagon social
.fsoc
Footer social links. The one element that differs between v1 and v2 — v2 (full hive) clips them to hexagons, v1 (hexagon-light) leaves them square.
v2 hex · v1 square
Size
36 × 41px (ratio .8660)
Fill
#EF6D3E → #46ADC8
Geometry rule: a hexagon is width ÷ height = √3/2 = 0.8660254. Declare the ratio, never a second pixel value — the live site's 50×65 is squashed by 8.3%.

Persistent & special — always-on contact

Persistent
Consultation tab
.ctatab
Fixed to the right edge at 50% height, on every page, every scroll. Opens the same modal as every other consultation CTA.
Vertical, fixed to the screen edge
Fill
#EF6D3E → #D85A2E
Writing
vertical-rl
Size
13px / .10em
Padding
20px 14px
Shadow
-4px 4px 16px rgba(0,0,0,.22)
Hides itself while the modal is open (body.consult-open) — the tab and the thing it opened must never be on screen together.
Persistent
Tap-to-call
.callcta
Header (sticky), contact band, every office card, footer. Technically a link, treated as the loudest CTA on the site.
Teal label above, orange number below CALL NOW250 385 4100
Number
Raleway 800 · 24px · #EF6D3E
Label
Raleway 600 · 12.5px · .14em · #46ADC8
The client's first requirement. It is sticky in the header so the number survives every scroll, and it is repeated at four sizes down the page.
Special
The cell IS the button (B20)
.b20
Funnel option, not used in the current pages. The most literal use of the brand shape — the button is a honeycomb cell.
92 × 106px — hover goes brown
Size
92 × 106px
Fill
#EF6D3E → #423C37
Type
11px / .10em · 15px 800 for the second line
Status: reserved. Strong on a full-hive page (v2), too loud on the hexagon-light page (v1) — needs a per-version decision before it ships.
05

Rules that hold the system together

Seven decisions that are not obvious from any single value above, but that every page in the prototypes follows.

01 · Raleway is caps, Open Sans is sentences

If a string is uppercase and tracked, it is Raleway. If it is a sentence you read left to right, it is Open Sans. Open Sans is never set uppercase anywhere in the prototypes.

02 · Big headings are light, small labels are bold

H1–H3 are Raleway 300; H6 eyebrows and buttons are Raleway 700. The scale inverts on purpose — it is what stops a page of uppercase from shouting.

03 · Tracking grows as size shrinks

38px H1 → .09em · 30px H2 → .06em · 21px cell title → .12em · 12px eyebrow → .18em. Caps close up at small sizes; the tracking is what keeps them scannable.

04 · A CTA never changes fill on hover; a control always does

The primary button's fill is constant — only its hexagons move. Icon buttons invert completely. That difference is how a visitor tells an action from a control.

05 · Nothing has a border-radius

Every button, card, input and image is square. The hexagon is the only non-rectangular shape on the site, which is what gives it all its weight.

06 · One primary per screen

Contact appears many times, but the swarm button appears once per view, with solid orange reserved as a second voice. Two equal CTAs in one screen is a bug.

07 · White is never white, black is never black

Backgrounds are #F9F9F9, the darkest surface is #2A2622, and greys are warm (brown-tinted), not neutral. Plain #FFF is reserved for raised cards only.

08 · Photography is placeholder until November

Every image in the prototypes is a labelled placeholder, sized and cropped to its final aspect ratio so the real shoot drops in without re-layout. Never show one to the client unlabelled.