# Scroll and Swap Text

> A text component that swaps the letters vertically on scroll.  The trick here is similar to the Letter Swap Hover component—duplicate the text, then wrapping the them in a container with relative position, then stack the elements vertically. We use useScroll hook from motion to track the scroll position of the container, and use the scrollYProgress value to offset the vertical position of the elements (by setting the y property of the element).

- Author: [Daniel Petho](https://21st.dev/@danielpetho)
- Library: [Fancy Components](https://21st.dev/@danielpetho/library/fancy-components)
- License: mit
- Tags: Scroll Area, Text Effect
- npm dependencies: framer-motion
- Live preview: https://21st.dev/@danielpetho/components/scroll-and-swap-text

## Install

```bash
npx shadcn@latest add "https://21st.dev/r/danielpetho/scroll-and-swap-text?api_key=$API_KEY_21ST"
```

Requires a 21st API key (generate one at https://21st.dev/mcp) passed as `API_KEY_21ST`. Free accounts get a limited number of installs per day; unlimited on a paid plan — see https://21st.dev/pricing.

Full component directory: https://21st.dev/llms.txt · More like this: https://21st.dev/community/components/s/scroll-area.md
