← all patterns

Gravity applied

Context Halo

reveal nearby relevant context around a focused element

Running the actual pattern live via applyPattern() — switch the substrate, stack overlays, watch the signals, or reverse the dynamics. Not a mock.

"Context Halo" — reveal nearby relevant context around a focused element. It has a gravity layer (universal attraction toward mass), a memory layer (a decaying trail / hysteresis), a link layer (ropes / cloth between neighbours), and a cohesion layer (flocking — pull toward neighbours). The active render stack is metaballs, links, particles.

A focused element becomes a gravity well that draws nearby definitions, examples, and prior interactions inward — relevance ranked by relation strength, not fixed placement.

Runtime tokens
gravity universal attraction toward massmemory a decaying trail / hysteresislink ropes / cloth between neighbourscohesion flocking — pull toward neighbours
Metrics
context a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inertattention computed every frame by the platform (proximity · engagement · relationships · age)memory computed every frame by the platform (proximity · engagement · relationships · age)relation-strength a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inert context, relation-strength are host-supplied lanes — drive them with data-field-<metric> (or a domain model); without that, their --field-* stays inert.
Diagnostics
topology potential inspector
Conditions
focused
Render
metaballs · links · particles
Reduced motion
a context panel with a related-links list and local callouts
Without motion
related context reads as a panel of ordered related links and callouts ranked by relation strength

Copy this pattern

<field-root></field-root>
  <div data-body="gravity" data-strength="1" data-range="360" data-feedback></div>
  <div data-body="memory" data-strength="0.6" data-range="300"></div>
  <div data-body="link" data-strength="0.6" data-range="320"></div>
  <div data-body="cohesion" data-strength="0.6" data-range="280"></div>

See also