Full Signal Media Brand Kit

Clear Signal. Right Audience.

Version 2 · October 2026

02

Favicons

Bold at 16, full mark from 32

At 16 px the outline can’t survive, so the 16 px favicon is a bold version of the mark (heavier brackets, larger square, no outline), drawn pixel by pixel. From 32 px up it is the full mark with its solid white outline, with 32, 48 and 64 px hinted to whole pixels. favicon.ico holds 16, 32 and 48 px.

Favicon (16 px)
Favicon (16 px)bold mark, pixel-drawnfavicon-16.png
Favicon (32 px)
Favicon (32 px)full mark, pixel-hintedfavicon-32.png
Favicon (48 px)
Favicon (48 px)pixel-hinted · in .icofavicon-48.png
Favicon (64 px)
Favicon (64 px)pixel-hintedfavicon-64.png
Apple touch icon (180 px)
Apple touch icon (180 px)full markapple-touch-icon.png
App / PWA icon (512 px)
App / PWA icon (512 px)full markicon-512.png
Full Signal Media×
New tab

HTML for the <head>

<link rel="icon" href="/favicon.ico" sizes="16x16 32x32 48x48">
<link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32.png">
<link rel="icon" type="image/png" sizes="64x64" href="/favicons/favicon-64.png">
<link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png">
<link rel="manifest" href="/favicons/site.webmanifest">
<meta name="theme-color" content="#0A0A0A">
03

Colour

Black, white and one signal

Mostly Black and White, with neutral grays for the crowd and structure. Signal Red marks what has been found: one focus per layout. Never use red for long text.

Black
HEX
#0A0A0A
RGB
10 10 10
CMYK*
0 0 0 96

Primary · text, marks, dark grounds

White
HEX
#FFFFFF
RGB
255 255 255
CMYK*
0 0 0 0

Primary · light grounds, reversed type

Signal Red
HEX
#FF2A1F
RGB
255 42 31
CMYK*
0 84 88 0

Accent · the found signal; one focus per layout

Concrete
HEX
#E9E8E4
RGB
233 232 228
CMYK*
0 0 2 9

Gray · surfaces, cards; rings & grid on white

Field Gray
HEX
#B9B7B1
RGB
185 183 177
CMYK*
0 1 4 27

Gray · the crowd (dots), rules; secondary text on dark

Graphite
HEX
#5C5C5C
RGB
92 92 92
CMYK*
0 0 0 64

Gray · secondary text on white; the crowd on dark

Scope Smoke
HEX
#222222
RGB
34 34 34
CMYK*
0 0 0 87

Gray · rings, grid and rules on Black

* CMYK values are approximate, converted mathematically from RGB with no colour profile. Always ask for a printer proof; match Signal Red to a proof, not to a screen. For large Black areas in print, ask the printer for a rich black.

04

Typography

Geist and Geist Mono

Geist for everything people read; Geist Mono, set uppercase and tracked, for eyebrows, labels and data. Headlines are tight (−0.05em) and set solid. Both fonts are open source (SIL OFL 1.1) and bundled in fonts/.

Geist

Aa

400 Regular · 500 Medium · 600 Semibold · 700 Bold

Geist Mono

Aa

500 Medium · uppercase · +0.10–0.12em

Style · sampleFamily · weightDesktop (1440)Mobile (≤ 600)
H1 · hero headline
The advertising solution for
Geist 70060 / 60 px · −0.05emclamp 26–46 px (35 px at 390) / 1.0 · −0.05em
H2 · section
One managed team for every screen.
Geist 70048 / 50 px · −0.04em30 / 32 px · −0.04em
H3 · tagline, card title
Clear Signal. Right Audience.
Geist 60028 / 31 px · −0.025em19 / 21 px · −0.025em
Body · subhead
Customized campaigns that create real connections across display, video, CTV, and audio channels.
Geist 40018 / 26 px15 / 22 px
Nav link
Why Full Signal Media
Geist 50015 px · −0.005emmenu: Geist 600 20 px / 52 px rows
Button
Let’s talk
Geist 60016 px (nav 14 px) · −0.01em15 px · 48 px min height
Eyebrow · caption
Programmatic media, fully managed
Geist Mono 50013 px · +0.12em · uppercase11 px · +0.12em · uppercase
Data label (callout)
Audience found 10/60
Geist Mono 50013 px · +0.10em · uppercase11 px
05

Tagline

Clear Signal. Right Audience.

Set in Geist 600 in the ink colour, with the pulsing square marker (core + outline box) to its left. The marker is the same one that finds people in the hero.

Clear Signal. Right Audience.

✓ Marker left, ink type, both full stops

Clear Signal. Right Audience.

✓ Reversed on Black

Clear Signal. Right Audience.

✓ Under the lockup, aligned left, at least 2x below it

Clear Signal. Right Audience.

✕ Don’t set the tagline in red

Clear Signal. Right Audience.

✕ Don’t use a round marker

clear signal, right audience

✕ Don’t change wording, case, punctuation or weight
06

Motion

The pulsing square marker

A red square core inside an ink outline box. The core breathes between full and half opacity and never switches off; a soft red halo grows and fades behind it. One shape everywhere: radar finds, the tagline, the callout dot and the phone eyebrow.

Hero (desktop)
Tagline
Callout dot
On dark
UseCoreOutline boxHalo
Hero radar · desktop (1440 canvas)15 × 15 px34 × 34 px, 2 px stroke17 px, 2 px stroke, grows to 2.5×
Hero radar · tabletScales with the radar box (720-unit drawing; ≈ 0.8–1.1×)
Hero radar · phone ≤ 600Not shown: no radar on phones
Tagline · desktop11.5 px25 px, 2.1 px stroke (30 px box)12.3 px, grows to 2.5×
Tagline · mobile9.2 px20 px, 1.7 px stroke (24 px box)9.8 px, grows to 2.5×
Callout dot · desktop / tablet10 px / 9 pxnone1.5 px ring, grows to 2.5×
Eyebrow dot · phone7 pxnonenone
Colour
Core and halo Signal Red #FF2A1F · box in ink (--ink)
Opacity
Core 1.0 → 0.5 → 1.0 (never below 0.5) · halo 0.6 → 0
Timing
2.2 s loop · core ease-in-out · halo cubic-bezier(.2,.6,.35,1)
Reduced motion
Static: core at full opacity, no halo
/* Pulsing square marker: the core never switches off (opacity 1 -> .5 -> 1) */
.marker-core { fill: #FF2A1F; animation: fsm-breathe 2.2s ease-in-out infinite; }
.marker-box  { fill: none; stroke: currentColor; stroke-width: 2; }      /* --ink */
.marker-halo { fill: none; stroke: #FF2A1F; stroke-width: 2;
               transform-box: fill-box; transform-origin: center;
               animation: fsm-halo 2.2s cubic-bezier(.2,.6,.35,1) infinite; }
@keyframes fsm-breathe { 0%, 100% { opacity: 1 } 50% { opacity: .5 } }
@keyframes fsm-halo    { 0% { transform: scale(1); opacity: .6 } 75%, 100% { transform: scale(2.5); opacity: 0 } }
@media (prefers-reduced-motion: reduce) {
  .marker-core { animation: none; } .marker-halo { display: none; }
}
07

Website

Website hero

Live and animated, not screenshots: each frame below loads hero/index.html. One revolution finds ten of sixty, they hold and pulse, a clean reset, a fresh ten each cycle. The headline rotates through nine audiences (2.6 s each). The icon-only light/dark button sits at the far right of the nav: try it. Phones drop the radar, hide the button and stay light.

Desktop · light1440 × 800 canvas, scaled to fit
Hero desktop light, found state
Desktop · dark?theme=dark, or the nav button
Hero desktop dark, found state
9:41
Hero on a 390 px phone
Phone · 390 px (true width): no radar or callout, no theme button, always light; rotating headline and the pulsing square stay.

Hand-off

  • hero/index.html + hero.css + hero.js: production-ready, no dependencies, fonts in hero/fonts/.
  • Breakpoints are container queries on the page wrapper: ≥ 1024 desktop canvas, 601–1023 stacked tablet, ≤ 600 phone.
  • Default light. The button sets <html data-theme>; label and aria-label switch (moon in light, sun in dark); red focus ring on keyboard focus.
  • Reduced motion: the headline shows its first phrase and the radar holds the found frame.
  • Embeds and QA: ?theme=dark · ?frame=found (freeze on the found state) · ?t=6.4.
  • The “Capabilities” block under the hero is a demo stand-in for the next section; replace it.
08

Interface

Buttons, nav and theme tokens

Light

Let’s talkLet’s talkLet’s talk
Explore capabilities →Explore capabilities →

Dark

Let’s talkLet’s talkLet’s talk
Explore capabilities →Explore capabilities →
ElementDefaultHoverFocus (keyboard)
Primary buttonInk fill, ground-colour label · Geist 600 16 px · padding 15 × 26 px · square cornersSignal Red fill, white label2 px Signal Red outline, 3 px offset
Secondary buttonTransparent, 1.5 px ink inset border, ink labelInk fill, ground-colour label2 px Signal Red outline, 3 px offset
Nav linkGeist 500 15 px, ink60 % opacity2 px Signal Red outline
Nav “Let’s talk”Primary button, 14 px, padding 10 × 18 pxSignal Red fill2 px Signal Red outline
Theme toggleIcon only, 18 px glyph, 36 px round hit area, no box · rightmost in the nav · moon in light, sun in darkConcrete / Scope Smoke circle behind the glyph2 px Signal Red outline

Light / dark colour mapping

TokenUsed forLightDark
--bgPage ground#FFFFFF#0A0A0A
--inkText, logo ink, outline boxes, radar rim#0A0A0A#FFFFFF
--midSecondary text (eyebrow, subhead, “/60”)#5C5C5C#B9B7B1
--dotThe crowd (unfound people)#B9B7B1#5C5C5C
--faintRings, grid, nav rule#E9E8E4#222222
--tickSmall dividers#B9B7B1#5C5C5C
--redSignal: markers, rotating phrase, focus ring#FF2A1F#FF2A1F
--btn / --btninkPrimary button fill / label#0A0A0A / #FFFFFF#FFFFFF / #0A0A0A
--woSweep wedge opacity.10.17
--hoverTheme-toggle hover tint#E9E8E4#222222
09

Social

LinkedIn covers

One design, light and dark: the logo, the tagline on one line, the descriptor under it, and the radar cropped at the right edge with a few found squares and the “Audience found” callout. Personal profile banner 1584 × 396; company cover 1512 × 256 (LinkedIn’s current spec) and 1128 × 191; each as PNG at 1x and 2x, plus SVG sources. On the profile banner the text, the found squares and the callout sit inside the phone app’s centre crop and clear of the profile photo on desktop and phone.

Light

profile banner · company cover · avatar
LinkedIn profile banner, light
Your NameCo-Founder at Full Signal Media
Personal profile · 1584 × 396 1x 2x · desktop photo overlap (left) · dashed lines = phone-app crop (x 242–1342)
Phone app crop
✓ Logo✓ Tagline✓ Descriptor✓ Callout✓ 2/2 found squares
LinkedIn company cover, light
Company page logo overlapping the cover
Full Signal MediaAdvertising services
Company page · 1512 × 256 (LinkedIn’s current spec) 1x 2x · with the page logo overlapping, as on LinkedIn
LinkedIn company cover 1128 x 191, light
Company page · 1128 × 191 (the size requested earlier; same artwork and ratio) 1x 2x

Dark

profile banner · company cover · avatar
LinkedIn profile banner, dark
Your NameCo-Founder at Full Signal Media
Personal profile · 1584 × 396 1x 2x · desktop photo overlap (left) · dashed lines = phone-app crop (x 242–1342)
Phone app crop
✓ Logo✓ Tagline✓ Descriptor✓ Callout✓ 2/2 found squares
LinkedIn company cover, dark
Company page logo overlapping the cover
Full Signal MediaAdvertising services
Company page · 1512 × 256 (LinkedIn’s current spec) 1x 2x · with the page logo overlapping, as on LinkedIn
LinkedIn company cover 1128 x 191, dark
Company page · 1128 × 191 (the size requested earlier; same artwork and ratio) 1x 2x

Avatar / page logo · 400 × 400 and 800 × 800

Ryan’s page-logo design: the icon centred on White or Black. The mark fills 66 % of the tile (Ryan’s: 70 %) so the bracket corners stay inside LinkedIn’s circle crop.

Avatar light, square
Light · square (company page) · 400 800 SVG
Avatar light, circle crop
Circle crop: the brackets stay inside
Avatar light at 48 px
48 px in a feed
Avatar dark, square
Dark · square (company page) · 400 800 SVG
Avatar dark, circle crop
Circle crop: the brackets stay inside
Avatar dark at 48 px
48 px in a feed

Ryan’s original PNGs are kept, unchanged, in linkedin/ryan-originals/ for reference. Note: the file named “dark-company-cover” there is actually light (identical pixels to the white one); the true dark company cover is the one above.

10

Files

What’s in the folder

FolderFiles
logos/horizontal/24
logos/stacked/24
logos/descriptor/24
logos/icon/27
logos/wordmark/24
logos/alternate-red-outline/24
favicons/13
linkedin/1584x396/4
linkedin/1512x256/4
linkedin/1128x191/4
linkedin/avatar/6
linkedin/svg/4
linkedin/ryan-originals/7
hero/11
fonts/5

Full contents, usage notes and the font licence: README.txt. A PDF of this page: brand-kit.pdf.