field-ui does not copy physics into the interface. It translates the four
fundamental fields into interface behavior. Every interface already has priority, polarity,
binding, and transformation — physics already has a language for those relations.
Natural fields are conceptual. Engine primitives are translations. Canonical forces are designed
verbs. Natural fields are not tokens; tokens are translations. This reframe
changes nothing the particles do — it only gives each behavior a clean place in the hierarchy:
field-ui keeps these categories separate on purpose. A reader should never have to guess whether a
word is a runtime token, a metric, or a diagnostic — the lane says so:
older naming (--d, --mass) — kept, but not the primary path
The four fields
Gravity
priority, convergence, hierarchy
the field of what matters — important bodies bend attention and gather related matter into stable wells.
Use for priority · ranking · search relevance · centrality · anchoring · settling · attention wells
Expressionsgravity
Electromagnetic
polarity, signal, field lines, flow
the field of difference and signal. Electric fields push; magnetic fields bend; fieldflow carries.
Use for polarity · contrast · signal · routing · state opposition · field lines · guided flow · activation
Expressionschargemagnetismpropagate
Strong
binding, cohesion, structure
the field of what holds together — groups, clusters, bonds, constraints, and durable local structure.
Use for grouping · relationship strength · clusters · bonds · constraints · local structure · material integrity
Expressionscrystallizealigncohesionpressurelink
Weak
transformation, decay, release
the field of change — fading, mutation, release, phase shift, expiration, and handoff.
Use for state change · release · decay · expiration · handoff · transformation · instability
Expressionsmorph
Electric fields push. Magnetic fields bend. Fieldflow carries. Do not make
magnetism.apply() follow magnetic field lines — field-aligned transport belongs to
fieldflow. And attract is not gravity; repel is not charge —
those are designed UI verbs.
Author each field — the data-attribute patterns
You express a field's translation with data attributes on semantic HTML, using
honest runtime tokens only. A token's field is its classification, not a separate API — there is no
<gravity> element, only data-body="gravity". Strong binding is the
clearest case: a native href (or data-field-relation /
data-field-target) is the relationship — the graph is discovered from the DOM,
not declared in code.
<!-- Gravity → priority: the element converges attention --><section data-body="gravity" data-field-role="priority" data-strength="0.9"> <h2>What matters most</h2></section>
<!-- Electromagnetic → polarity / signal. Electric pushes, magnetic bends. --><button data-body="charge" data-spin="1" data-range="280">positive</button><button data-body="charge" data-spin="-1" data-range="280">negative</button><!-- magnetism bends matter along the field; fieldflow carries it along the lines -->
<!-- Strong → binding. A native link IS the relationship — no new API. --><p id="claim">The runtime is renderer-agnostic.</p><a href="#claim" data-field-relation="supports" data-field-target="#claim"> Evidence: the boundary test</a>
<!-- Weak → transformation / decay. Not a fake force — state that ages. --><article data-body="morph" data-field-role="revising"> <!-- or: a memory metric that decays, or a recipe that releases over time --></article>
Live — gravity bodies carrying a supplied priority; applyRecipe()frozen · @fundamental-engine/platform writes it back as --field-priority and the CSS reads
it (gravity's interface translation, running):
data-body="gravity" + supplied priority → applyRecipe() →
--field-priority → this element
Each row supplies a different value, so the field's feedback is visible at a glance — the readout shows what the field actually wrote back.
Fields vs primitives vs forces
Every catalog token has a place. This grouping is read straight from the engine's classification:
One need, separated into lanes: the runtime tokens that execute it, the metrics it measures, and the diagnostics that reveal it.
Interface need
Natural field
Runtime tokens
Metrics
Diagnostics
Show importance
Gravity
gravityattract
masspriorityattention
potentialprediction
Route signal
Electromagnetic
chargepropagatefieldflowstream
signalstrength
field-linesforce-vectors
Show relationship
Strong + EM
linkcohesion
relation-strength
topologycausality
Keep things grouped
Strong
cohesioncrystallizealign
clusterdensity
topologyheatmap
Show change / decay
Weak
morphmemory
decayage
causalitycontours
Show flow through structure
EM + transport
fieldflowstream
flowvelocity
field-linesprediction
Show reading history
Memory (metric)
memory
attentionrecency
heatmapinspector
Diagnostics by field
Each diagnostic answers “which invisible relation am I revealing?” — all shipped (see them live). Diagnostics are inspection modes, not runtime tokens.
Diagnostic
Reveals
Field
Potential
wells and energy landscape
Gravity
Field lines
electromagnetic structure
Electromagnetic
Topology
binding and relationships
Strong
Causality
which primitive caused change
any
Prediction
near-future path
Gravity / flow
Contours
scalar fields
derived
Four fields. Many expressions. One DOM runtime. Every interface has priority, polarity,
binding, and transformation. field-ui gives those relations a field model.