# Swap Flip (`.sds-btn-swap-flip`)

Icon and label trade a crossing gesture — passing each other with a dip, then re-seating. Buttons animation in SDS Motion Forge v5.0.0. It loops continuously as soon as the class is applied.

- Page: https://sds-motion-forge.netlify.app/animations/btn-swap-flip/
- Category: Buttons (https://sds-motion-forge.netlify.app/categories/buttons/)
- Animated properties: opacity, transform
- Compositor-only: yes
- Needs child elements: yes
- 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/buttons.min.css" />

<button class="sds-btn-swap-flip"><span>→</span> <span>Button</span></button>
```

## How it works

Plays as soon as the class is applied, looping continuously. It animates opacity and movement and scale (transform) — compositor-only, so it never causes page reflow. `--sds-duration-dramatic` controls the speed and `--sds-ease-standard` controls the feel — override either on the element or :root (the sds-fast/sds-slow modifier classes do exactly that). The animation runs on the element's direct children — it needs child elements to be visible.

## Related

- [Spotlight Pan](https://sds-motion-forge.netlify.app/animations/btn-spotlight-pan/)
- [Stretch](https://sds-motion-forge.netlify.app/animations/btn-stretch/)
- [Surge Charge](https://sds-motion-forge.netlify.app/animations/btn-surge-charge/)
- [Swipe](https://sds-motion-forge.netlify.app/animations/btn-swipe/)
- [Tick Tock](https://sds-motion-forge.netlify.app/animations/btn-tick-tock/)
- [Tilt](https://sds-motion-forge.netlify.app/animations/btn-tilt/)
