Sonar · Identity Calm Console · 2026
Return 001
brg 042°
rng 038
gain −6db
sweep cont
src · sonar contact ▸ 1

The mark

the ping.

sonar sends a pulse into unknown infrastructure and reads what returns. the logomark is that pulse: hairline rings emitted into the warm dark, and a single muted-amber contact — the one return that matters. it's the app's own live-pulse frozen into a symbol, and it obeys the house law — if two things are amber, one of them is wrong.

Anatomy

one instrument, one signal

Pulse emitted rings · bone
Return the one contact · amber
Sum logomark

Lockups

mark + wordmark

Horizontal
sonar
primary lockup
Wordmark · o-ping snar the “o” becomes the ping

Scale

holds down to the favicon

App icon · 128 → 16
112 px
64 px
40 px
24 px
16 px

below ~40px the off-center return collapses to a centered amber core — the contact stays the one bright thing when the rings can no longer resolve.

Variants

rationed everywhere

Primary amber return · dark
Mono single-tone · bone
Inverse on warm light

Palette

three values do the work

Warm Graphite#14110F
canvas · the dark
Bone#ECE7DD
rings · the pulse
Muted Amber#C9A461
return · the signal

Source

primary mark · drop-in svg

logomark.svg
<svg viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Sonar">
  <g fill="none" stroke="#ECE7DD">
    <circle cx="60" cy="60" r="14" stroke-width="1.7" opacity=".95"/>
    <circle cx="60" cy="60" r="26" stroke-width="1.6" opacity=".72"/>
    <circle cx="60" cy="60" r="38" stroke-width="1.5" opacity=".5"/>
    <circle cx="60" cy="60" r="50" stroke-width="1.4" opacity=".3"/>
  </g>
  <circle cx="60" cy="60" r="2" fill="#ECE7DD" opacity=".55"/>
  <!-- the single amber return -->
  <circle cx="88.2" cy="34.6" r="10" fill="#C9A461" opacity=".15"/>
  <circle cx="88.2" cy="34.6" r="4.2" fill="#C9A461"/>
</svg>

wordmark shown in system mono; set it in Geist Mono, weight 500, for production to match the app chrome. favicon: use the 16/24px construction above (centered core, no rings).