Spring

The spring function is an alternative to tweened that often works better for values that are frequently changing.

In this example we have two stores — one representing the circle’s coordinates, and one representing its size. Let’s convert them to springs:

  1. <script>
  2. import { spring } from 'svelte/motion';
  3. let coords = spring({ x: 50, y: 50 });
  4. let size = spring(10);
  5. </script>

Both springs have default stiffness and damping values, which control the spring’s, well… springiness. We can specify our own initial values:

  1. let coords = spring({ x: 50, y: 50 }, {
  2. stiffness: 0.1,
  3. damping: 0.25
  4. });

Waggle your mouse around, and try dragging the sliders to get a feel for how they affect the spring’s behaviour. Notice that you can adjust the values while the spring is still in motion.