Animate react-horizontal-scrolling-menu scrolling and build right-to-left menus: noPolyfill defaults to true since v8, so transitionDuration (default 500), a custom-easing-function…

MITAuto-check passedFrontend & Design

Install Menu Transitions Rtl

skills CLI
$ npx skills add asmyshlyaev177/react-horizontal-scrolling-menu --skill menu-transitions-rtl -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install asmyshlyaev177/react-horizontal-scrolling-menu menu-transitions-rtl --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/asmyshlyaev177/react-horizontal-scrolling-menu.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/menu-transitions-rtl .claude/skills/menu-transitions-rtl && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
menu-transitions-rtl
GitHub stars
790
Token cost
~3.3k tokens
SKILL.md length
594 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Animate react-horizontal-scrolling-menu scrolling and build right-to-left menus: noPolyfill defaults to true since v8, so transitionDuration (default 500), a custom-easing-function…

  • Tasks that involve Web animation and motion
  • SKILL.md covers Setup, Core Patterns, Common Mistakes and Tensions, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Menu Transitions Rtl is an agent skill from asmyshlyaev177/react-horizontal-scrolling-menu. Animate react-horizontal-scrolling-menu scrolling and build right-to-left menus: noPolyfill defaults to true since v8, so transitionDuration (default 500), a custom-easing-function transitionBehavior, and per-call ScrollOptions { duration, boundary } on scrollToItem/scrollNext/scrollPrev are silently ignored unless noPolyfill={false} (string 'smooth' | 'auto' behaviors still reach native scrollIntoView); the RTL prop (only a direction: rtl CSS class) and its limits — never combine RTL with transition props. Load…

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Web animation and motion. It works with React. The repository describes itself as: Horizontal scrolling menu component for React with per-item visibility tracking. Supports mouse and touch devices, SSR-safe. The licence is MIT.

When your agent uses it

  • Tasks that involve Web animation and motion

Example prompts

  • “smooth”
  • “/menu-transitions-rtl”

What it can do on your machine

Read from SKILL.md and the folder at commit 42c99aa. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • asmyshlyaev177.github.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Menu Transitions Rtl loads about 3.3k tokens when it runs. Until then it costs about 162 tokens; SKILL.md has 594 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~162
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from asmyshlyaev177/react-horizontal-scrolling-menu at commit 42c99aa, republished under its MIT licence (© asmyshlyaev177). 594 words, ~3,322 tokens.

Download SKILL.mdSave it as .claude/skills/menu-transitions-rtl/SKILL.md (or your agent's skills folder).
name
menu-transitions-rtl
description
Animate react-horizontal-scrolling-menu scrolling and build right-to-left menus: noPolyfill defaults to true since v8, so transitionDuration (default 500), a custom-easing-function transitionBehavior, and per-call ScrollOptions { duration, boundary } on scrollToItem/scrollNext/scrollPrev are silently ignored unless noPolyfill={false} (string 'smooth' | 'auto' behaviors still reach native scrollIntoView); the RTL prop (only a direction: rtl CSS class) and its limits — never combine RTL with transition props. Load when scroll animation speed/easing has no effect, when customizing transitions, or when building RTL menus.
metadata.type
core
metadata.library
react-horizontal-scrolling-menu
metadata.library_version
8.3.2
sources
asmyshlyaev177/react-horizontal-scrolling-menu:README.md, asmyshlyaev177/react-horizontal-scrolling-menu:src/helpers.tsx…

react-horizontal-scrolling-menu — Transitions and RTL

The single most important fact: noPolyfill defaults to true since v8.0.0 (src/index.tsx:183). With the default, every scroll uses native Element.scrollIntoView: transitionDuration, a function-valued transitionBehavior, and ScrollOptions duration/boundary are silently discarded (src/helpers.tsx:72-77). Only the string behaviors 'smooth'/'auto' survive — they are forwarded to the native call, with 'smooth' as the fallback (src/helpers.tsx:60-73). Any duration/easing work starts by setting noPolyfill={false}, which routes scrolling through the smooth-scroll-into-view-if-needed polyfill. The one exception: RTL menus must keep the default (see Tensions).

Setup

Animated transitions, minimum viable:

tsx
import React from 'react';
import {
  ScrollMenu,
  VisibilityContext,
  type publicApiType,
} from 'react-horizontal-scrolling-menu';
import 'react-horizontal-scrolling-menu/dist/styles.css';

function LeftArrow() {
  const api = React.useContext<publicApiType>(VisibilityContext);
  const disabled = api.useLeftArrowVisible();
  return (
    <button disabled={disabled} onClick={() => api.scrollPrev()}>
      Left
    </button>
  );
}

function RightArrow() {
  const api = React.useContext<publicApiType>(VisibilityContext);
  const disabled = api.useRightArrowVisible();
  return (
    <button disabled={disabled} onClick={() => api.scrollNext()}>
      Right
    </button>
  );
}

// itemId must stay on the component's props (ScrollMenu reads it);
// do not spread it onto the DOM node.
function Card({ title }: { itemId: string; title: string }) {
  return <div style={{ width: '160px', margin: '0 10px' }}>{title}</div>;
}

const items = Array.from({ length: 10 }, (_, i) => ({ id: `item-${i}` }));

export function AnimatedMenu() {
  return (
    <ScrollMenu
      LeftArrow={LeftArrow}
      RightArrow={RightArrow}
      noPolyfill={false} // REQUIRED — transition props are no-ops without it
      transitionDuration={1200} // ms, default 500
      transitionBehavior="smooth"
    >
      {items.map(({ id }) => (
        <Card itemId={id} key={id} title={id} />
      ))}
    </ScrollMenu>
  );
}

Patterns below reuse LeftArrow, RightArrow, Card, items, and the import block from this Setup.

Core Patterns

The noPolyfill gate — which engine scrolls
noPolyfillEngineTransition controlsRTL
true (default)native Element.scrollIntoViewduration/boundary/function behavior ignored; string behavior still appliescorrect
falsesmooth-scroll-into-view-if-needed polyfillall honoredbuggy — never combine

Resolution chains in polyfill mode (src/createApi.ts:120-160,316-336, src/helpers.tsx:60):

  • behavior: positional argument → transitionBehavior prop → 'smooth'
  • duration: ScrollOptions.duration → transitionDuration prop → 500
  • boundary: ScrollOptions.boundary → the menu's own scroll container (src/index.tsx:250)
Custom easing function via transitionBehavior

A function transitionBehavior receives the computed scroll targets and drives scrollLeft itself — any curve or animation library works from there. Polyfill mode only.

tsx
// What scroll-into-view-if-needed hands to a custom behavior: one action per
// scrollable ancestor that must move — here always just the scroll container,
// because the menu passes it as `boundary`.
type ScrollAction = { el: Element; top: number; left: number };

const easeInOutCubic = (t: number) =>
  t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;

// A second arrow click can land mid-animation; remembering the pending frame
// per element lets the new animation cancel the old one instead of both
// fighting over scrollLeft.
const pendingFrames = new WeakMap<Element, number>();

function animateScroll(el: Element, target: number, duration: number) {
  const prevFrame = pendingFrames.get(el);
  if (prevFrame !== undefined) cancelAnimationFrame(prevFrame);

  const from = el.scrollLeft;
  const startTime = performance.now();

  const step = (now: number) => {
    const progress = Math.min((now - startTime) / duration, 1);
    el.scrollLeft = from + (target - from) * easeInOutCubic(progress);
    if (progress < 1) {
      pendingFrames.set(el, requestAnimationFrame(step));
    } else {
      pendingFrames.delete(el);
    }
  };

  pendingFrames.set(el, requestAnimationFrame(step));
}

const transition = (instructions: ScrollAction[]) =>
  instructions.forEach(({ el, left }) => animateScroll(el, left, 1200));

export function CustomEasingMenu() {
  return (
    <ScrollMenu
      LeftArrow={LeftArrow}
      RightArrow={RightArrow}
      noPolyfill={false} // custom easing only runs through the polyfill
      // The typings describe the options-object form, but the menu passes this
      // value straight to scroll-into-view-if-needed as its behavior callback.
      transitionBehavior={transition as unknown as ScrollBehavior}
    >
      {items.map(({ id }) => (
        <Card itemId={id} key={id} title={id} />
      ))}
    </ScrollMenu>
  );
}

Live-editable version: the CustomTransition Storybook story.

Per-call override with ScrollOptions

ScrollOptions is the last argument of scrollToItem, scrollNext, and scrollPrev; its duration/boundary override the menu-level transition props for that one call (polyfill mode only):

tsx
function CenteringCard({ title, itemId }: { itemId: string; title: string }) {
  const api = React.useContext<publicApiType>(VisibilityContext);

  const center = () =>
    // behavior inside the options object is required by the type but the
    // positional 'smooth' always wins — only duration/boundary take effect.
    api.scrollToItem(api.getItemById(itemId), 'smooth', 'center', 'nearest', {
      behavior: 'smooth',
      duration: 800, // overrides transitionDuration for this call only
    });

  return (
    <div onClick={center} style={{ width: '160px', margin: '0 10px' }}>
      {title}
    </div>
  );
}

scrollNext/scrollPrev type their options as Omit<scrollToItemOptions, 'behavior'> (src/createApi.ts:18), so there { duration: 800 } alone compiles:

tsx
function SlowNextArrow() {
  const api = React.useContext<publicApiType>(VisibilityContext);
  const disabled = api.useRightArrowVisible();
  return (
    <button
      disabled={disabled}
      onClick={() =>
        api.scrollNext('smooth', 'start', 'nearest', { duration: 800 })
      }
    >
      Right
    </button>
  );
}
RTL menu

The RTL prop does exactly one thing: it appends the rtl class to the scroll container (src/index.tsx:306-307), which styles.css maps to direction: rtl (src/styles.css:9-11). Item order and scrolling are native browser RTL behavior. Keep the noPolyfill default and pass no transition props. Swap the arrow slots so the advancing arrow sits visually left (in RTL the row starts at the right edge and later items extend leftwards):

tsx
export function RTLMenu() {
  return (
    // Visual left = logical end in RTL, so the slots swap components.
    // Each arrow keeps its own hook/handler pair, so disabling stays correct.
    <ScrollMenu RTL LeftArrow={RightArrow} RightArrow={LeftArrow}>
      {items.map(({ id }) => (
        <Card itemId={id} key={id} title={id} />
      ))}
    </ScrollMenu>
  );
}

Common Mistakes

CRITICAL Transition props ignored under default noPolyfill

Wrong:

tsx
<ScrollMenu transitionDuration={1200}>
  {items.map(({ id }) => (
    <Card itemId={id} key={id} title={id} />
  ))}
</ScrollMenu>

Correct:

tsx
<ScrollMenu noPolyfill={false} transitionDuration={1200}>
  {items.map(({ id }) => (
    <Card itemId={id} key={id} title={id} />
  ))}
</ScrollMenu>

noPolyfill defaults to true (native scrollIntoView) since v8.0.0, so duration, boundary and custom-function behavior are silently discarded unless noPolyfill={false} pulls in the smooth-scroll polyfill. (Shared with menu-migration: code written for v5–v7 relied on the polyfill being the default.)

Source: src/helpers.tsx:72-77; src/index.tsx:183; CHANGELOG v8.0.0

Show full SKILL.md (238 more words)Show less
HIGH Custom transitionBehavior function without noPolyfill={false}

Wrong:

tsx
<ScrollMenu transitionBehavior={transition as unknown as ScrollBehavior}>
  {items.map(({ id }) => (
    <Card itemId={id} key={id} title={id} />
  ))}
</ScrollMenu>

Correct:

tsx
<ScrollMenu
  noPolyfill={false}
  transitionBehavior={transition as unknown as ScrollBehavior}
>
  {items.map(({ id }) => (
    <Card itemId={id} key={id} title={id} />
  ))}
</ScrollMenu>

With noPolyfill true the function is cast to a native ScrollBehavior string and handed to scrollIntoView, which ignores or rejects it — custom easing only works through the polyfill.

Source: src/helpers.tsx:67; stories/CustomTransition/CustomTransition.source.tsx

HIGH Combining transition props with RTL

Wrong:

tsx
<ScrollMenu RTL noPolyfill={false} transitionDuration={800}>
  {items.map(({ id }) => (
    <Card itemId={id} key={id} title={id} />
  ))}
</ScrollMenu>

Correct:

tsx
<ScrollMenu RTL LeftArrow={RightArrow} RightArrow={LeftArrow}>
  {items.map(({ id }) => (
    <Card itemId={id} key={id} title={id} />
  ))}
</ScrollMenu>

The polyfill has RTL bugs (page-level horizontal scrolling); transitions and the RTL prop are documented as not combining — RTL menus keep the noPolyfill default and native scrolling.

Source: README.md "Transitions and animation"; https://github.com/asmyshlyaev177/react-horizontal-scrolling-menu/issues/230 (#241, #216)

MEDIUM behavior field in ScrollOptions treated as effective

Wrong:

tsx
api.scrollToItem(api.getItemById('item-3'), undefined, 'center', 'nearest', {
  behavior: 'smooth', // never reaches the scroll call
});

Correct:

tsx
api.scrollToItem(api.getItemById('item-3'), 'smooth', 'center', 'nearest', {
  behavior: 'smooth', // required by the type, but only satisfies TS
  duration: 800, // duration/boundary are the fields that take effect
});

scrollToItemOptions types behavior as required, but the implementation spreads the positional behavior after the options object, so options.behavior is always overridden (falling back through transitionBehavior to 'smooth') — only duration and boundary in the options object matter, and only in polyfill mode.

Source: src/types.ts:55-59 vs src/helpers.tsx:66-77; src/createApi.ts:316-336

Tensions

HIGH Tension: native scroll correctness vs animation control

noPolyfill={true} (the default) avoids the polyfill's elusive edge bugs but makes every transition prop a no-op; noPolyfill={false} restores animation control (duration, easing, per-call ScrollOptions) and re-imports those bugs — RTL breakage and page-level scrolling. Agents adding transitionDuration for polish silently get nothing; agents flipping noPolyfill for animation break RTL menus. Pick one side per menu: animated LTR with noPolyfill={false}, or RTL/maximum-correctness with the default. The scroll methods these props modify are covered in menu-scrolling.

See also

  • menu-scrolling — scrollToItem, scrollNext/scrollPrev, apiRef, and paging: transition props and ScrollOptions modify how those scroll methods animate.

© asmyshlyaev177, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/menu-transitions-rtl of asmyshlyaev177/react-horizontal-scrolling-menu.

Open the folder on GitHubat commit 42c99aa

Compare with similar skills

Menu Transitions Rtl next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Menu Transitions Rtl compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Menu Transitions Rtl this skillasmyshlyaev177/react-horizontal-scrolling-menu790—~3.3kAutomated safety check: PassMIT
GSAP Core Animationgreensock/gsap-skills16k3 repos~3.7kAutomated safety check: PassMIT
GSAP for Reactgreensock/gsap-skills16k3 repos~1.6kAutomated safety check: PassMIT
Animated React Component LibrariesHainrixz/editor-pro-max2641 repos~5.7kAutomated safety check: PassCustom licence
Motion Dev Animations199-biotechnologies/motion-dev-animations-skill1331 repos~2.8kAutomated safety check: NotesMIT
Silk Designbendrape1-byte/silk-design138—~1.8kAutomated safety check: PassMIT

Similar skills

  • GSAP Core Animation

    greensock/gsap-skills

    Covers the GSAP core API for tweens, easing, staggers, defaults and matchMedia, and when to choose GSAP over CSS animations or other JavaScript animation libraries.

    16k GitHub starsUsed in 3 repos~3.7k tokens
    Frontend & DesignAuto-check passed
  • GSAP for React

    greensock/gsap-skills

    Shows how to run GSAP animations in React and Next.js with the useGSAP hook, refs, scoped selectors and automatic cleanup on unmount.

    16k GitHub starsUsed in 3 repos~1.6k tokens
    Frontend & DesignAuto-check passed
  • Animated React Component Libraries

    Hainrixz/editor-pro-max

    Helps choose and drop in animated React components from Magic UI and React Bits for landing pages, marketing sites and dashboards, instead of hand-coding animations.

    264 GitHub starsUsed in 1 repo~5.7k tokens
    Frontend & DesignAuto-check passed
  • Motion Dev Animations

    199-biotechnologies/motion-dev-animations-skill

    Creates 120fps GPU-accelerated animations with Motion.dev (Framer Motion successor) for React, Next.js, Svelte, and Astro projects.

    133 GitHub starsUsed in 1 repo~2.8k tokens
    Frontend & DesignAuto-check: notes
  • Silk Design

    bendrape1-byte/silk-design

    Build websites and web UI with smooth, polished, high-end motion by default — the buttery feel of premium sites, not static slop.

    138 GitHub stars~1.8k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed
  • Goey Toast

    anl331/goey-toast

    Install and use goey-toast — a gooey, morphing React toast component built on Sonner with Framer Motion.

    1.3k GitHub stars~1.3k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check: warnings

More from asmyshlyaev177/react-horizontal-scrolling-menu

All 8 skills in this repo
  • Menu Recipes

    asmyshlyaev177/react-horizontal-scrolling-menu

    Recipes composed on the react-horizontal-scrolling-menu public API — NOT props: autoplay (setInterval + scrollNext gated on menuVisible), infinite loop/carousel (clone head/tail + scrollLeft…

    790 GitHub stars~4k tokensUpdated 9 days ago
    Auto-check passed
  • Menu Scrolling

    asmyshlyaev177/react-horizontal-scrolling-menu

    Imperative scrolling for react-horizontal-scrolling-menu: scrollToItem(getItemById(id), behavior, inline, block), scrollNext/scrollPrev, apiRef for controlling the menu from outside (fire methods…

    790 GitHub stars~3.1k tokensUpdated 9 days ago
    Auto-check passed
  • Menu Interactions

    asmyshlyaev177/react-horizontal-scrolling-menu

    Wire mouse, wheel and touch input for react-horizontal-scrolling-menu: onWheel/onScroll are plain (api, event) = void callbacks, while ALL mouse/touch props (onMouseDown, onMouseUp, onMouseMove…

    790 GitHub stars~3.3k tokensUpdated 9 days ago
    Auto-check passed
  • Menu Migration

    asmyshlyaev177/react-horizontal-scrolling-menu

    Detect and upgrade pre-v8 react-horizontal-scrolling-menu patterns that agents trained on older data still generate: destructured visibleElements/isFirstItemVisible/isLastItemVisible/initComplete…

    790 GitHub stars~4k tokensUpdated 9 days ago
    Auto-check passed
  • Menu Setup

    asmyshlyaev177/react-horizontal-scrolling-menu

    Build a working react-horizontal-scrolling-menu: install, the mandatory 'react-horizontal-scrolling-menu/dist/styles.css' import, ScrollMenu with a unique itemId per child, arrow components via…

    790 GitHub stars~3.3k tokensUpdated 9 days ago
    Auto-check passed
  • Menu Testing Ssr

    asmyshlyaev177/react-horizontal-scrolling-menu

    Server rendering and testing for react-horizontal-scrolling-menu: the library is client-only ('use client' required in React Server Components, else "createContext is not a function"), SSR first…

    790 GitHub stars~3.5k tokensUpdated 9 days ago
    Auto-check passed

Works with

Questions about Menu Transitions Rtl

What does Menu Transitions Rtl do?

Animate react-horizontal-scrolling-menu scrolling and build right-to-left menus: noPolyfill defaults to true since v8, so transitionDuration (default 500), a custom-easing-function…. Menu Transitions Rtl is an agent skill from asmyshlyaev177/react-horizontal-scrolling-menu. Animate react-horizontal-scrolling-menu scrolling and build right-to-left menus: noPolyfill defaults to true since v8, so transitionDuration (default 500), a custom-easing-function transitionBehavior, and per-call ScrollOptions { duration, boundary } on scrollToItem/scrollNext/scrollPrev are silently ignored unless noPolyfill={false} (string 'smooth' | 'auto' behaviors still reach native scrollIntoView); the RTL prop (only a direction: rtl CSS class) and its limits — never combine RTL with transition props.

When should I use Menu Transitions Rtl?

Menu Transitions Rtl fits situations like: tasks that involve Web animation and motion.

How do I install Menu Transitions Rtl in Claude Code?

Run `npx skills add asmyshlyaev177/react-horizontal-scrolling-menu --skill menu-transitions-rtl -a claude-code`. Or copy the skill folder (skills/menu-transitions-rtl in asmyshlyaev177/react-horizontal-scrolling-menu) into .claude/skills/menu-transitions-rtl in your project. Claude Code loads it when a task matches its description.

How do I install Menu Transitions Rtl in Codex?

Run `npx skills add asmyshlyaev177/react-horizontal-scrolling-menu --skill menu-transitions-rtl -a codex`. Or copy the skill folder (skills/menu-transitions-rtl in asmyshlyaev177/react-horizontal-scrolling-menu) into .agents/skills/menu-transitions-rtl in your project. Codex loads it when a task matches its description.

Can I use Menu Transitions Rtl in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add asmyshlyaev177/react-horizontal-scrolling-menu --skill menu-transitions-rtl -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/menu-transitions-rtl, .gemini/skills/menu-transitions-rtl, .github/skills/menu-transitions-rtl and .opencode/skills/menu-transitions-rtl in your project.

What does Menu Transitions Rtl need to run?

SKILL.md names no scripts, command-line tools or credentials: Menu Transitions Rtl is instructions for the agent only.

Does Menu Transitions Rtl access the network?

SKILL.md names 1 domain. As links in the text: asmyshlyaev177.github.io. This is read from the text; nothing was executed.

Is Menu Transitions Rtl safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Menu Transitions Rtl use?

Menu Transitions Rtl is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Menu Transitions Rtl use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Menu Transitions Rtl?

Skills that share tags, products or a category with Menu Transitions Rtl: GSAP Core Animation (greensock/gsap-skills, 16k stars), GSAP for React (greensock/gsap-skills, 16k stars), Animated React Component Libraries (Hainrixz/editor-pro-max, 264 stars) and Motion Dev Animations (199-biotechnologies/motion-dev-animations-skill, 133 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Menu Transitions Rtl?

asmyshlyaev177 (a GitHub user) maintains it in asmyshlyaev177/react-horizontal-scrolling-menu, which has 790 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 1, 2026.

Source: asmyshlyaev177/react-horizontal-scrolling-menu on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.