Skip to content
Back to skills

Locomotive Scroll

ASecurity

Scroll suave y parallax con Locomotive Scroll: data-scroll-*, sticky, scroll horizontal, eventos scroll/call, sync con GSAP ScrollTrigger (scrollerProxy). No para reveals simples (scroll-reveal-libraries) ni scroll sin smooth (gsap).

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 8, 2026
ai-agentspythongoreactvueapiperformance

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 8, 2026

npx -y skills add petersonsenadevs/senzu --skill locomotive-scroll --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Locomotive Scroll?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Locomotive Scroll
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/petersonsenadevs-locomotive-scroll/badge)](https://www.skillsdirectory.com/skills/petersonsenadevs-locomotive-scroll)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: locomotive-scroll
description: "Scroll suave y parallax con Locomotive Scroll: data-scroll-*, sticky, scroll horizontal, eventos scroll/call, sync con GSAP ScrollTrigger (scrollerProxy). No para reveals simples (scroll-reveal-libraries) ni scroll sin smooth (gsap)."
---

# locomotive-scroll (índice Senzu, ES)

Documentación completa upstream (inglés): `SKILL.upstream.md` (480 líneas). **No la leas entera**: usa el mapa y lee solo la sección que necesites (Read con offset/limit o Grep).

## Cuándo usar / cuándo NO
- Usar: landings inmersivas tipo Apple con scroll suavizado (lerp), capas parallax por velocidad y elementos sticky dentro de secciones.
- Usar: scroll horizontal o storytelling largo que necesita progreso por elemento (`data-scroll-id`) o disparadores `data-scroll-call`.
- NO usar: solo fade-in al entrar en viewport → scroll-reveal-libraries (AOS) o IntersectionObserver.
- NO usar: animaciones scrubbed/pin sin smooth scroll → gsap-scrolltrigger (ScrollSmoother si se quiere suavizado); en React → motion-framer.

## Lectura mínima por tarea
| Tarea | Lee solo |
|---|---|
| Empezar un proyecto/starter | `SKILL.upstream.md` L33-116 (§Installation + §Core Concepts) + `assets/starter_locomotive/` |
| Parallax, sticky, scroll horizontal | L139-161 (§2. Parallax), L193-209 (§4. Sticky), L236-254 (§6. Horizontal) |
| Eventos, progreso y scrollTo | L163-191 (§3. Viewport Detection) + L211-234 (§5. Programmatic Scrolling) + L333-353 (§Instance Methods) |
| Combinar con GSAP ScrollTrigger | L277-331 (§Integration with GSAP ScrollTrigger) + `references/gsap_integration.md` |
| Depurar / rendimiento | L355-383 (§Performance Optimization) + L385-466 (§Common Pitfalls) |

## Mapa de `SKILL.upstream.md`
| Líneas | Sección | Para qué |
|---|---|---|
| 10-32 | Overview | Capacidades y trade-offs (accesibilidad, móviles, position fixed) |
| 33-47 | Installation | npm + CSS obligatorio, o CDN |
| 49-116 | Core Concepts | Estructura `data-scroll-container`/`-section`, opciones de `new LocomotiveScroll`, tabla de atributos |
| 118-275 | Common Patterns | Smooth básico, parallax, eventos, sticky, scrollTo, horizontal, breakpoints tablet/smartphone |
| 277-331 | Integration with GSAP ScrollTrigger | `scrollerProxy`, `scroller`, refresh/update mutuos |
| 333-353 | Instance Methods | init/update/destroy/start/stop, scrollTo, on/off |
| 355-383 | Performance Optimization | Secciones, limitar parallax, desactivar en móvil, update en resize, destroy |
| 385-466 | Common Pitfalls | Fixed roto, lazy images, posiciones desactualizadas, accesibilidad, fugas de memoria, z-index |
| 468-480 | Related Skills / Resources | Skills relacionadas e índice de scripts, references y assets |

## Recursos
- `references/api_reference.md` — API completa: opciones, atributos, métodos, eventos.
- `references/gsap_integration.md` — Patrones de ScrollTrigger + Locomotive (scrollerProxy, pin, scrub).
- `scripts/generate_config.py` — Genera la configuración inicial: `py -3 scripts/generate_config.py --smooth` / `--horizontal` (o `python3 …`).
- `scripts/integration_helper.py` — Genera código de integración GSAP por patrón/framework: `py -3 scripts/integration_helper.py --pattern fade-in --framework react`.
- `assets/starter_locomotive/` — Starter completo (index.html, main.js, style.css, package.json, README.md).

## Reglas duras
- Importa siempre `locomotive-scroll/dist/locomotive-scroll.css`; envuelve el contenido en `data-scroll-container` y segmenta con `data-scroll-section`.
- Respeta `prefers-reduced-motion`: `smooth: !matchMedia('(prefers-reduced-motion: reduce)').matches`; considera `smartphone: { smooth: false }`.
- Llama a `scroll.update()` tras insertar contenido dinámico, cargar imágenes o en resize; llama a `scroll.destroy()` al desmontar o cambiar de ruta.
- Los elementos `position: fixed` van fuera del contenedor (o usa `data-scroll-sticky`); las capas parallax necesitan z-index explícito.
- Con GSAP: registra `scrollerProxy`, pasa `scroller: '[data-scroll-container]'` a cada ScrollTrigger y encadena `ScrollTrigger.refresh()` → `locoScroll.update()`.
- SSR-safe: instancia solo en cliente (`useEffect`/`onMounted`/`client:only`), nunca en el nivel superior del módulo.

## Integración con el stack del proyecto
- Detecta el stack como indica la skill `front-activation`/`skill-router` (senzu/senzu.json → package.json). Es vanilla JS y sirve en HTML estático, Astro, Vue (instancia en `onMounted`, destruye en `onUnmounted`) y React (`useEffect` con cleanup). En proyectos React con GSAP, valora ScrollSmoother (gsap-scrolltrigger) para evitar dos sistemas de scroll; con barba-js, destruye y recrea la instancia en cada transición.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.