gsap-utils
Official GSAP skill for gsap.utils — clamp, mapRange, normalize, interpolate, random, snap, toArray, wrap, pipe. Use when the user asks about gsap.utils, clamp, mapRange, random, snap, toArray, wrap, or helper utilities in GSAP.
Supply asset profile
Coding and developer agents
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
Coding agents
I need a coding agent that can understand a repository, edit code, and review pull requests.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add greensock/gsap-skills --skill gsap-utils
Maintenance
fresh
Pushed today
Risk
Safe to try
Quality score needs review
GitHub quality
14K
89/100 Quality · 84/100 Trust
Coverage tags
Review notes
Quality score needs review
Agent adoption scorecard
Trust, audit, and install readiness at a glance
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Review then installGood shortlist signal, but the agent should review audit notes, install policy, and outcome evidence before running it.
Audit
Safe to tryA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Human review before install
Use as the primary candidate after human or sandbox review.
Stars
14K GitHub stars
Repo activity
14K stars, 830 forks
Maintenance
Pushed today
License
MIT
Install
npx skills add greensock/gsap-skills --skill gsap-utils
Install safety
standard package or runtime install path
Permission surface
filesystem or document access, network or browser access
Agent outcomes
No agent outcome data yet
Docs
Usable metadata, review docs
Risk summary
Low metadata risk
- Quality score needs review
Install readiness
Install path available
- Install path is available
- Repository evidence is available
- License is declared
- No Agent Proven outcome evidence yet
Agent-readable metadata
Machine-readable decision data for this skill.
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
- Browser automation workflows
- Claude Code teams
- teams that value GitHub adoption signals
- Navigate pages
Suited agents
Install decision
- Command
- npx skills add greensock/gsap-skills --skill gsap-utils
- Policy
- review
- Human review
- yes
Trust and risk
- Trust
- 79/100
- Audit
- 88/100
- Risk level
- Safe to try
Outcome loop
- Endpoint
- /api/agent/outcome
- Event ID
- resolve
- Outcomes
- 5
Install command
npx skills add greensock/gsap-skills --skill gsap-utilsDo not use when
- teams that need a vendor-supported SLA
- high-compliance environments without internal security review
- No major risk signals from current metadata
- Quality score needs review
- Production credentials, payments, or irreversible account changes without explicit human review
Agent safety v2
68/100 · Review before install
Good audit and safety signals with no high-risk permission hints in public metadata.
Review the audit page, then allow agent install in a sandboxed workflow.
medium
Browser automation
Skill may drive a browser or interact with web pages.
medium
Network access
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Filesystem access
Skill may read or write project files, documents, generated artifacts, or local workspace state.
- Quality score needs review
Install targets
Install this skill in your agent workflow
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
OpenAgentSkill CLI
Resolve policy, run the source installer safely, and report a verified install receipt.
$ npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install greensock-gsap-utilsAgent resolve plan
Let an agent verify fit before installing.
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20gsap-utils%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20gsap-utils%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/greensock-gsap-utils/install
Agent should check
- Task fit and alternatives from Resolve API.
- Audit score, trust score, and safety policy warnings.
- Install target compatibility for Codex, Claude Code, Cursor, or CLI.
Copy prompt
Task: Use gsap-utils in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20gsap-utils%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/greensock-gsap-utils/install
Install command: npx skills add greensock/gsap-skills --skill gsap-utils
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Give an agent the install path, not another directory page.
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/greensock-gsap-utils/install
LLM text format
/api/skills/greensock-gsap-utils/install?format=text
Find alternatives
/api/skills/search?q=gsap-utils&limit=3
Agent prompt
Use gsap-utils for this task. Review https://www.openagentskill.com/api/skills/greensock-gsap-utils/install, then install with: npx skills add greensock/gsap-skills --skill gsap-utilsRegistry metadata
Agent-readable profile for automatic skill selection.
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/greensock-gsap-utils
LLM text
/api/registry/manifest/greensock-gsap-utils?format=text
Install alias
/api/registry/install/greensock-gsap-utils
Recommend
/api/registry/recommend?task=Use%20gsap-utils%20in%20an%20agent%20workflow&limit=3
Agent fit
Browser automation
Use-case tags
Platforms
Claude Code
Audit report
Safe to try · 88/100
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Primary pick for Browser automation
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Browser automation
Trust label
Production-ready
Install path
Command ready
Use when
- Browser automation workflows
- Claude Code teams
- teams that value GitHub adoption signals
Evidence
- 14,102 GitHub stars
- recent repository activity
- install command or GitHub repo available
- 89/100 quality profile
- 3 OpenAgentSkill engagement events
review first
- No major risk signals from current metadata
Implementation path
- 1Install it in a sandbox agent and run one Browser automation task end to end.
- 2Compare output quality, latency, and failure behavior against at least one alternative.
- 3Promote it into production only after reviewing repository permissions, license, and maintenance signals.
Trust profile
Review then install
Good shortlist signal, but the agent should review audit notes, install policy, and outcome evidence before running it.
GitHub adoption
PASS14K GitHub stars
Stars/forks activity
PASS14K stars, 830 forks; issue activity unavailable in current metadata
Recent maintenance
PASSPushed today
License clarity
PASSMIT
Good signals
- AI review approved
- Install path is available
- Repository evidence is available
- Recently maintained repository
- Large GitHub adoption signal
- Install command has no obvious high-risk pattern
- Outcome loop is ready but needs first real agent run
Review before install
- Quality score needs review
- No real agent outcome reports yet
- Human review required before unattended installation
Recommended action
Use as the primary candidate after human or sandbox review.
Quality profile
Excellent candidate for agent workflows
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Use this skill in these scenarios
Operate web apps
Browser automation
I need my agent to control a browser, fill forms, and verify web app workflows.
Build and ship code
Coding agents
I need a coding agent that can understand a repository, edit code, and review pull requests.
Manage repositories
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Workflow fit
Add it to a complete workflow
Operate and verify web apps
Browser QA agent
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Inspect, patch, and verify code
Coding review agent
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Turn skills into distribution
Content growth agent
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Compare before you install
Similar skills that may fit this task.
UI-TARS Desktop
Run multimodal agents that operate desktop interfaces
MoneyPrinterTurbo
利用AI大模型,一键生成高清短视频 Generate short videos with one click using AI LLM.
Cua
Open-source infrastructure for Computer-Use Agents. Sandboxes, SDKs, and benchmarks to train and evaluate AI agents that can control full desktops (macOS, Linux, Windows).
Overview
--- name: gsap-utils description: Official GSAP skill for gsap.utils — clamp, mapRange, normalize, interpolate, random, snap, toArray, wrap, pipe. Use when the user asks about gsap.utils, clamp, mapRange, random, snap, toArray, wrap, or helper utilities in GSAP. license: MIT ---
# gsap.utils
## When to Use This Skill
Apply when writing or reviewing code that uses **gsap.utils** for math, array/collection handling, unit parsing, or value mapping in animations (e.g. mapping scroll to a value, randomizing, snapping to a grid, or normalizing inputs).
**Related skills:** Use with **gsap-core**, **gsap-timeline**, and **gsap-scrolltrigger** when building animations; CustomEase and other easing utilities are in **gsap-plugins**.
## Overview
**gsap.utils** provides pure helpers; no need to register. Use in tween vars (e.g. function-based values), in ScrollTrigger or Observer callbacks, or in any JS that drives GSAP. All are on **gsap.utils** (e.g. `gsap.utils.clamp()`).
**Omitting the value: function form.** Many utils accept the value to transform as the **last** argument. If you omit that argument, the util returns a **function** that accepts the value later. Use the function form when you need to clamp, map, normalize, or snap many values with the same config (e.g. in a mousemove handler or tween callback). **Exception: random()** — pass **true** as the last argument to get a reusable function (do not omit the value); see [random()](https://gsap.com/docs/v3/GSAP/UtilityMethods/random()).
```javascript // With value: returns the result gsap.utils.clamp(0, 100, 150); // 100
// Without value: returns a function you call with the value later let c = gsap.utils.clamp(0, 100); c(150); // 100 c(-10); // 0 ```
## Clamping and Ranges
### clamp(min, max, value?)
Constrains a value between min and max. Omit **value** to get a function: `clamp(min, max)(value)`.
```javascript gsap.utils.clamp(0, 100, 150); // 100 gsap.utils.clamp(0, 100, -10); // 0
let clampFn = gsap.utils.clamp(0, 100); clampFn(150); // 100 ```
### mapRange(inMin, inMax, outMin, outMax, value?)
Maps a value from one range to another. Use when converting scroll position, progress (0–1), or input range to an animation range. Omit **value** to get a function: `mapRange(inMin, inMax, outMin, outMax)(value)`.
```javascript gsap.utils.mapRange(0, 100, 0, 500, 50); // 250 gsap.utils.mapRange(0, 1, 0, 360, 0.5); // 180 (progress to degrees)
let mapFn = gsap.utils.mapRange(0, 100, 0, 500); mapFn(50); // 250 ```
### normalize(min, max, value?)
Returns a value normalized to 0–1 for the given range. Inverse of mapping when the target range is 0–1. Omit **value** to get a function: `normalize(min, max)(value)`.
```javascript gsap.utils.normalize(0, 100, 50); // 0.5 gsap.utils.normalize(100, 300, 200); // 0.5
let normFn = gsap.utils.normalize(0, 100); normFn(50); // 0.5 ```
### interpolate(start, end, progress?)
Interpolates between two values at a given progress (0–1). Handles numbers, colors, and objects with matching keys. Omit **progress** to get a function: `interpolate(start, end)(progress)`.
```javascript gsap.utils.interpolate(0, 100, 0.5); // 50 gsap.utils.interpolate("#ff0000", "#0000ff", 0.5); // mid color gsap.utils.interpolate({ x: 0, y: 0 }, { x: 100, y: 50 }, 0.5); // { x: 50, y: 25 }
let lerp = gsap.utils.interpolate(0, 100); lerp(0.5); // 50 ```
## Random and Snap
### random(minimum, maximum[, snapIncrement, returnFunction]) / random(array[, returnFunction])
Returns a random number in the range **minimum**–**maximum**, or a random element from an **array**. Optional **snapIncrement** snaps the result to the nearest multiple (e.g. `5` → multiples of 5). **To get a reusable function**, pass **true** as the last argument (**returnFunction**); the returned function takes no args and returns a new random value each time. This is the only util that uses `true` for the function form instead of omitting the value.
```javascript // immediate value: number in range gsap.utils.random(-100, 100); // e.g. 42.7 gsap.utils.random(0, 500, 5); // 0–500, snapped to nearest 5
// reusable function: pass true as last argument let randomFn = gsap.utils.random(-200, 500, 10, true); randomFn(); // random value in range, snapped to 10 randomFn(); // another random value
// array: pick one value at random gsap.utils.random(["red", "blue", "green"]); // "red", "blue", or "green" let randomFromArray = gsap.utils.random([0, 100, 200], true); randomFromArray(); // 0, 100, or 200 ```
**String form in tween vars:** use `"random(-100, 100)"`, `"random(-100, 100, 5)"`, or `"random([0, 100, 200])"`; GSAP evaluates it per target.
```javascript gsap.to(".box", { x: "random(-100, 100, 5)", duration: 1 }); gsap.to(".item", { backgroundColor: "random([red, blue, green])" }); ```
### snap(snapTo, value?)
Snaps a value to the nearest multiple of **snapTo**, or to the nearest value in an array of allowed values. Omit **value** to get a function: `snap(snapTo)(value)` (or `snap(snapArray)(value)`).
```javascript gsap.utils.snap(10, 23); // 20 gsap.utils.snap(0.25, 0.7); // 0.75 gsap.utils.snap([0, 100, 200], 150); // 100 or 200 (nearest in array)
let snapFn = gsap.utils.snap(10); snapFn(23); // 20 ```
Use in tweens for grid or step-based animation:
```javascript gsap.to(".x", { x: 200, snap: { x: 20 } }); ```
### shuffle(array)
Returns a new array with the same elements in random order. Use for randomizing order (e.g. stagger from "random" with a copy).
```javascript gsap.utils.shuffle([1, 2, 3, 4]); // e.g. [3, 1, 4, 2] ```
### distribute(config)
**Returns a function** that assigns a value to each target based on its position in the array (or in a grid). Used internally for advanced staggers; use it whenever you need values spread across many elements (e.g. scale, opacity, x, delay). The returned function receives `(index, target, targets)` — either call it manually or pass the result directly into a tween; GSAP will call it per target with index, element, and array.
**Config (all optional):**
| Property | Type | Description | |----------|------|-------------| | `base` | Number | Starting value. Default `0`. | | `amount` | Number | Total to distribute across all targets (added to base). E.g. `amount: 1` with 100 targets → 0.01 between each. Use **each** instead to set a fixed step per target. | | `each` | Number | Amount to add between each target (added to base). E.g. `each: 1` with 4 targets → 0, 1, 2, 3. Use **amount** instead to split a total. | | `from` | Number \| String \| Array | Where distribution starts: index, or `"start"`, `"center"`, `"edges"`, `"random"`, `"end"`, or ratios like `[0.25, 0.75]`. Default `0`. | | `grid` | String \| Array | Use grid position instead of flat index: `[rows, columns]` (e.g. `[5, 10]`) or `"auto"` to detect. Omit for flat array. | | `axis` | String | For grid: limit to one axis (`"x"` or `"y"`). | | `ease` | Ease | Distribute values along an ease curve (e.g. `"power1.inOut"`). Default `"none"`. |
**In a tween:** pass the result of `distribute(config)` as the property value; GSAP calls the function for each target with `(index, target, targets)`.
```javascript // Scale: middle elements 0.5, outer edges 3 (amount 2.5 distributed from center) gsap.to(".class", { scale: gsap.utils.distribute({ base: 0.5, amount: 2.5, from: "center" }) }); ```
**Manual use:** call the returned function with `(index, target, targets)` to get the value for that index.
```javascript const distributor = gsap.utils.distribute({ base: 50, amount: 100, from: "center", ease: "power1.inOut" }); const targets = gsap.utils.toArray(".box"); const valueForIndex2 = distributor(2, targets[2], targets); ```
See [distribute()](https://gsap.com/docs/v3/GSAP/UtilityMethods/distribute/) for more.
## Units and Parsing
### getUnit(value)
Returns the unit string of a value (e.g. `"px"`, `"%"`, `"deg"`). Use when normalizing or converting values.
```javascript gsap.utils.getUnit("100px"); // "px" gsap.utils.getUnit("50%"); // "%" gsap.utils.getUnit(42); // "" (unitless) ```
### unitize(value, unit)
Appends a unit to a number, or returns the value as-is if it already has a unit. Use when building CSS values or tween end values.
```javascript gsap.utils.unitize(100, "px"); // "100px" gsap.utils.unitize("2rem", "px"); // "2rem" (unchanged) ```
### splitColor(color, returnHSL?)
Converts a color string into an array: **[red, green, blue]** (0–255), or **[red, green, blue, alpha]** (4 elements for RGBA when alpha is present or required). Pass **true** as the second argument (**returnHSL**) to get **[hue, saturation, lightness]** or **[hue, saturation, lightness, alpha]** (HSL/HSLA) instead. Works with `"rgb()"`, `"rgba()"`, `"hsl()"`, `"hsla()"`, hex, and named colors (e.g. `"red"`). Use when animating color components or building gradients. See [splitColor()](https://gsap.com/docs/v3/GSAP/UtilityMethods/splitColor/).
```javascript gsap.utils.splitColor("red"); // [255, 0, 0] gsap.utils.splitColor("#6fb936"); // [111, 185, 54] gsap.utils.splitColor("rgba(204, 153, 51, 0.5)"); // [204, 153, 51, 0.5] (4 elements) gsap.utils.splitColor("#6fb936", true); // [94, 55, 47] (HSL: hue, saturation, lightness) ```
## Arrays and Collections
### selector(scope)
Returns a scoped selector function that finds elements only within the given element (or ref). Use in components so selectors like `".box"` match only descendants of that component, not the whole document. Accepts a DOM element or a ref (e.g. React ref; handles `.current`).
```javascript const q = gsap.utils.selector(containerRef); q(".box"); // array of .box elements inside container gsap.to(q(".circle"), { x: 100 }); ```
### toArray(value, scope?)
Converts a value to an array: selector string (scoped to element), NodeList, HTMLCollection, single element, or array. Use when passing mixed inputs to GSAP (e.g. targets) and a true array is needed.
```javascript gsap.utils.toArray(".item"); // array of elements gsap.utils.toArray(".item", container); // scoped to container gsap.utils.toArray(nodeList); // [ ... ] from NodeList ```
### pipe(...functions)
Composes functions: **pipe(f1, f2, f3)(value)** returns f3(f2(f1(value))). Use when applying a chain of transforms (e.g. normalize → mapRange → snap) in a tween or callback.
```javascript const fn = gsap.utils.pipe( (v) => gsap.utils.normalize(0, 100, v), (v) => gsap.utils.snap(0.1, v) ); fn(50); // normalized then snapped ```
### wrap(min, max, value?)
Wraps a value into the range min–max (inclusive min, exclusive max). Use for infinite scroll or cyclic values. Omit **value** to get a function: `wrap(min, max)(value)`.
```javascript gsap.utils.wrap(0, 360, 370); // 10 gsap.utils.wrap(0, 360, -10); // 350
let wrapFn = gsap.utils.wrap(0, 360); wrapFn(370); // 10 ```
### wrapYoyo(min, max, value?)
Wraps value in range with a yoyo (bounces at ends). Use for back-and-forth within a range. Omit **value** to get a function: `wrapYoyo(min, max)(value)`.
```javascript gsap.utils.wrapYoyo(0, 100, 150); // 50 (bounces back)
let wrapY = gsap.utils.wrapYoyo(0, 100); wrapY(150); // 50 ```
## Best practices
- ✅ Omit the value argument to get a reusable function when the same range/config is used many times (e.g. scroll handler, tween callback): `let mapFn = gsap.utils.mapRange(0, 1, 0, 360); mapFn(progress)`. - ✅ Use **snap** for grid-aligned or step-based values; use **toArray** when GSAP or your code needs a real array from a selector or NodeList. - ✅ Use **gsap.utils.selector(scope)** in components so selectors are scoped to a container or ref.
## Do Not
- ❌ Assume **mapRange** / **normalize** handle units; they work on numbers. Use **getUnit** / **unitize** when units matter. - ❌ Override or rely on undocumented behavior; stick to the documented API.
### Le
Technical details
- Version
- 1.0.0
- License
- MIT
- Last updated
- Aug 22, 2026
- Published
- Aug 22, 2026
Decision snapshot
Primary pick
14,102 GitHub stars
Audit
Install review
Install and adoption review
- Security
- 84/100
- Maintenance
- 100/100
- Install
- 92/100
Agent-proven evidence
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
- Success rate
- —
- Recent failure
- —
- Outcomes
- 0
- Output quality
- —
- Failed
- 0
- Not relevant
- 0
- Installs
- 0
- Risk blocked
- 0
- Setup needed
- 0
- Production
- 0
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Add to agent workflow
Free and open source. Review the report before installing into production agents.
Growth loop
Share kit
Scenario-led draft for gsap-utils, ready for a manual X post.
A practical pick for a repeatable workflow: gsap-utils: Official GSAP skill for gsap.utils — clamp, mapRange, normalize, interpolate, random, snap, toArray, wrap, pipe. Use when t... 14.1K stars https://www.openagentskill.com/skills/greensock-gsap-utils?ref=x
Optional reply with install command
Listing + install path for gsap-utils: https://www.openagentskill.com/skills/greensock-gsap-utils?ref=x Install: npx skills add greensock/gsap-skills --skill gsap-utils
Listing source
Registry indexed
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
- Creator
- greensock
- Source
- greensock/gsap-skills
- Indexed by
- OpenAgentSkill community index
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
Claim this skill listing
This Registry indexed listing is attributed to greensock but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Add the evidence badges to your README
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/greensock-gsap-utils)
[](https://www.openagentskill.com/skills/greensock-gsap-utils)
[](https://www.openagentskill.com/skills/greensock-gsap-utils/audit)
[](https://www.openagentskill.com/skills/greensock-gsap-utils)Author
greensock
@greensock
Tags
Platform fit
Health signals
- GitHub stars
- 14.1K
- Quality score
- 53/100
- Last GitHub push
- Aug 22, 2026
- Framework hints
- Unknown
- OpenAgentSkill views
- 3
- Install copies
- 0
- Outbound clicks
- 0
Community signal
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Trust & safety
Review then install
- GitHub adoption14K GitHub starsPASS
- Stars/forks activity14K stars, 830 forks; issue activity unavailable in current metadataPASS
- Recent maintenancePushed todayPASS
- License clarityMITPASS
- README/SKILL.md completenessPublic metadata needs stronger README/SKILL.md contextINFO
- Dependency/runtime riskexternal package install surface, network or browser surfaceINFO
Related skills
UI-TARS Desktop
Run multimodal agents that operate desktop interfaces
37.0K StarsMoneyPrinterTurbo
利用AI大模型,一键生成高清短视频 Generate short videos with one click using AI LLM.
88.5K StarsCua
Open-source infrastructure for Computer-Use Agents. Sandboxes, SDKs, and benchmarks to train and evaluate AI agents that can control full desktops (macOS, Linux, Windows).
21.4K Stars