Contact has a location.
The response comes from the point you approach, then settles back to a neutral plane.
Kinetic resolves the nearest owned surface, compresses the near edge, raises the far edge, and sends circular turbulent waves outward from the actual input point.
This isolated demonstration turns waves and drift off. Move across the plate or use the four edge-position triggers to study contact location, opposing depth, content travel, and the return to rest.
Move across the plate or trigger an edge position. The contact side compresses, the opposite side lifts, and locally owned content follows at a bounded depth.
The response comes from the point you approach, then settles back to a neutral plane.
Studio strength is intentionally clearer for learning. Product defaults remain restrained.
The edge nearest the pointer moves down and inward instead of expanding the entire surface indiscriminately.
The far edge lifts with an opposing shadow, producing a readable plate response from one bounded transform.
Semantic content uses its own translate channel while the application-owned element transform remains untouched.
Tilt is disabled in this lab, so every click teaches the wave system alone. Switch geometry, density, and wave character; then click any card or use Send wave.
Interfaces form through reversible geometry.
Surfaces react at the point of contact.
One boundary enhances existing HTML.
Motion stays separate from accessible meaning.
A regular rectilinear field for structured surfaces.
A continuous honeycomb with shared visual adjacency.
Separated radial cells that clarify wave-front curvature.
Offset cells that emphasize directional propagation.
createKinetic({
root,
selector: '[data-tilt-surface]',
effects: {
tilt: true,
content: true,
wave: false,
drift: false
},
motion: { maxTilt: 1.35, response: 0.18 }
});createKinetic({
root,
selector: '[data-wave-surface]',
effects: {
tilt: false,
content: true,
wave: true,
drift: false
},
cells: { shape: 'hexagon', size: [22, 18, 14] },
flow: { turbulence: 0.42, maxWaves: 3 }
});