SurveyStream

Documentdocs/logo/interlock/README.md

Logo — interlock variant

The brand-palette port of the interlock construction first built for the 600×140 alternate.

What changed from the primary mark

The primary mark (../lockup-horizontal.svg) is one element: a cyan→mint gradient S with three pulse-trail dashes. This variant splits it into two:

PrimaryInterlock
LoopGradient stroke, weight 12Solid Ink #04171F, weight 13
AccentThree trail dashes outside the bowlA continuous flow line, weight 5.4, threading the loop
CrossingsNoneOne, at the waist
Reads asA luminous letterformStructure with flow moving through it

The split is the point. A thin bright accent crossing a thick dark base resolves the problem that killed four earlier interlock attempts: when two strokes of equal weight and colour meet, the crossing reads as a lump. At 5.4 against 13 there is nothing ambiguous to resolve.

It also maps onto the archetype more directly than the gradient S did. §03 of the brand reference asks for “a disciplined grid with a streaming, transformative element passing through it” — the Ruler holding the frame, the Magician moving inside it. That is now literally the construction.

Construction

  • Base: two tangent elliptical arcs, rx 30 / ry 20, 230° each (−38° to −268°), stroke 13, solid Ink. Identical bowl geometry to the primary mark — this is a re-skin, not a redraw.
  • Flow: a concentric arc offset +11 outward. It runs outside the upper bowl, crosses the base at the waist through a G1-continuous cubic, then runs outside the lower bowl. Stroke 5.4, Stream → Pulse.
  • Curves: exact arc-to-cubic, α = 4/3·tan(Δt/4), three spans per bowl. Carried over from the 600×140 build — the primary set still uses A arc commands, which render identically but are harder to edit in a vector tool.
  • Aspect: 0.7849 base only, 0.9398 including the flow.

The small-size rule

Below roughly 40 px the accent is dropped and the base thickened. This is not optional. The whole mark is the base/accent separation, and at one device pixel that separation collapses into a blob — I rendered it at 32 px and it was illegible before the fallback was added.

  • favicon-32.svg, favicon-16.svg — base only, stroke thickened to 14 and 15.5.
  • icon-mono.svg — base only. In a single colour the accent and base are the same value, so the crossing has nothing to distinguish it. Mono gets the base alone rather than a muddle.
  • lockup-horizontal-mono.svg — same reasoning.

So the family has a genuine two-tier structure: the interlock at display sizes, the plain S below. That is normal for an identity, but it must be written down or someone will scale the full mark to 16 px and wonder why it looks broken.

Files

FileNotes
lockup-horizontal.svgPrimary. Ink base, Stream→Pulse flow.
lockup-horizontal-on-white.svgOpaque white plate.
lockup-horizontal-reversed.svgMist base, Signal→Pulse flow, on Ink.
lockup-horizontal-mono.svgBase only, currentColor.
lockup-stacked.svgNarrow placements.
icon.svgMark alone, 128 px.
icon-reversed.svgOn Ink.
icon-mono.svgBase only.
icon-no-pulse.svgStream→Signal instead of Stream→Pulse — see below.
app-icon.svg512 px, rounded-rect Ink ground.
favicon-32.svg / favicon-16.svgBase only, thickened.
construction.svgGeometry diagram.
metrics.jsonMachine-readable measurements.

Pulse is still an open decision

The default flow gradient is Stream #10BBD1 → Pulse #2FE3A2, which needs Pulse to enter the palette. icon-no-pulse.svg shows the same mark on Stream → Signal #5FE3EC, entirely inside the validated palette. Both read correctly; Pulse gives the accent a colour of its own, Signal keeps it a tint of the existing accent.

Swapping is two hex values in the <linearGradient> of each file — no geometry changes.

Status

This is a parallel set, not a replacement. The primary lockup in ../ is still the approved mark. If you adopt this one, the swap is a directory rename plus updating the three references in ../../index.html, ../../README.md and ../../standalone/index.html.