Version Gravity
show which version, branch, or draft is becoming canonical
Running the actual pattern live via applyPattern() — switch the substrate, stack overlays, watch the signals, or reverse the dynamics. Not a mock.
"Version Gravity" — show which version, branch, or draft is becoming canonical. 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 morph layer (assemble matter into a mark/shape (never words, §11)). The active render stack is metaballs, links, field-lines, particles.
Versions gain and lose mass by recency, approval, references, and edits, so the canonical draft becomes a gravity center pulling the rest while forks stay visible as related bodies that may morph toward it.
Copy this pattern
<field-root></field-root>
<div data-body="gravity" data-strength="1.1" data-range="400" data-feedback></div>
<div data-body="memory" data-strength="0.6" data-range="280"></div>
<div data-body="link" data-strength="0.6" data-range="300"></div>
<div data-body="morph" data-strength="0.4" data-range="220"></div> <script type="module">
import '@fundamental-engine/elements';
</script>
<field-root></field-root>
<div data-body="gravity" data-strength="1.1" data-range="400" data-feedback></div>
<div data-body="memory" data-strength="0.6" data-range="280"></div>
<div data-body="link" data-strength="0.6" data-range="300"></div>
<div data-body="morph" data-strength="0.4" data-range="220"></div> import { FieldField } from '@fundamental-engine/react';
export default function VersionGravity() {
return (
<FieldField>
<div data-body="gravity" data-strength="1.1" data-range="400" data-feedback />
<div data-body="memory" data-strength="0.6" data-range="280" />
<div data-body="link" data-strength="0.6" data-range="300" />
<div data-body="morph" data-strength="0.4" data-range="220" />
</FieldField>
);
} {
"id": "version-gravity",
"name": "Version Gravity",
"intent": "show which version, branch, or draft is becoming canonical",
"naturalField": "gravity",
"primitives": [
"gravity",
"memory",
"link",
"morph"
],
"bodies": [
{
"body": "gravity",
"strength": 1.1,
"range": 400,
"feedback": true
},
{
"body": "memory",
"strength": 0.6,
"range": 280
},
{
"body": "link",
"strength": 0.6,
"range": 300
},
{
"body": "morph",
"strength": 0.4,
"range": 220
}
],
"relationships": [
{
"from": "fork",
"to": "canonical",
"type": "derives-from",
"strength": 0.6
}
],
"render": [
"metaballs",
"links",
"field-lines",
"particles"
],
"metrics": [
"version-weight",
"recency",
"approval",
"fork-distance"
],
"diagnostics": [
"topology",
"potential",
"causality"
],
"accessibility": {
"reducedMotion": "a version tree with a canonical badge and a fork list",
"meaningWithoutMotion": "versions form a tree; the canonical one carries a badge and a weight, forks list their distance from it"
},
"notes": "Versions gain and lose mass by recency, approval, references, and edits, so the canonical draft becomes a gravity center pulling the rest while forks stay visible as related bodies that may morph toward it.",
"tier": "operational",
"status": "shipped",
"concepts": [
"canonical version"
]
} See also
- Priority Well make important elements feel naturally weighted without shouting
- Focus Orbit keep related options moving around the active item
- Search Relevance Field let search results settle by relevance, confidence, and recency
- Reading Field make long content pages reveal attention, memory, and concept links
- Attention Weather show system urgency, density, and activity across a dashboard
- Command Intent Field let command palettes settle around likely intent