# Label Spring (`.sds-input-label-spring`)

On focus the label lifts with an 8% overshoot and settles small while the field swells a hair. Inputs animation in SDS Motion Forge v5.0.0. It plays once as soon as the class is applied.

- Page: https://sds-motion-forge.netlify.app/animations/input-label-spring/
- Category: Inputs (https://sds-motion-forge.netlify.app/categories/inputs/)
- Animated properties: opacity, transform
- Compositor-only: yes
- Needs child elements: no
- Needs per-character spans: no
- JavaScript: none required

## Use it

```html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@salkomdesignstudio/sds-motion-forge/dist/categories/inputs.min.css" />

<div class="sds-input-label-spring">
  <input id="sds-email" placeholder=" " />
  <label for="sds-email">Email</label>
</div>
```

## How it works

Plays when the field receives focus. It animates opacity and movement and scale (transform) — compositor-only, so it never causes page reflow. `--sds-duration-fast` controls the speed and `--sds-ease-spring` controls the feel — override either on the element or :root (the sds-fast/sds-slow modifier classes do exactly that).

## Related

- [Arrive Slide Label](https://sds-motion-forge.netlify.app/animations/input-arrive-slide-label/)
- [Idle Soft Zoom](https://sds-motion-forge.netlify.app/animations/input-idle-soft-zoom/)
- [Ink Stroke](https://sds-motion-forge.netlify.app/animations/input-ink/)
- [Kinetic](https://sds-motion-forge.netlify.app/animations/input-kinetic/)
- [Laser](https://sds-motion-forge.netlify.app/animations/input-laser/)
- [Momentum](https://sds-motion-forge.netlify.app/animations/input-momentum/)
- [Border Morph](https://sds-motion-forge.netlify.app/animations/input-morph/)
