gsap-utils
Ajuda seu agente a usar funções úteis do GSAP para cálculos. Permite controlar valores, gerar números aleatórios e ajustar animações.
O que ela faz
Este conjunto de ferramentas ajuda a fazer cálculos e a organizar dados para animações. Ele permite limitar valores, mapear um valor para outro, normalizar números, misturar cores ou valores, gerar números aleatórios e organizar itens em uma lista.
Quando usar
- ✓Quando você precisa que um valor não ultrapasse um limite.
- ✓Ao converter uma posição de rolagem em um movimento de animação.
- ✓Para gerar valores aleatórios ou organizar itens de forma aleatória.
Exemplo do que pedir para a IA
“Como faço para que a posição X de um objeto não passe de 100 pixels?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Essas funções são como calculadoras e organizadores para animações. Elas não precisam ser registradas, você pode usá-las diretamente com o comando `gsap.utils`. Algumas podem retornar uma função para reutilizar a mesma configuração várias vezes.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add nexu-io/open-design --skill gsap-utilsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/nexu-io/open-design/main/skills/gsap-utils/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
gsap.utils
Selecionado das habilidades oficiais do GSAP da GreenSock: https://github.com/greensock/gsap-skills
Quando Usar Esta Habilidade
Aplique ao escrever ou revisar código que usa gsap.utils para matemática, manipulação de arrays/coleções, análise de unidades ou mapeamento de valores em animações (por exemplo, mapear scroll para um valor, randomizar, "travar" em uma grade ou normalizar entradas).
Habilidades relacionadas: Use com gsap-core, gsap-timeline e gsap-scrolltrigger ao construir animações; CustomEase e outras utilidades de easing estão em gsap-plugins.
Visão Geral
gsap.utils fornece ajudantes puros; não é necessário registrar. Use em variáveis de tween (por exemplo, valores baseados em função), em callbacks de ScrollTrigger ou Observer, ou em qualquer JS que controle o GSAP. Todos estão em gsap.utils (por exemplo, gsap.utils.clamp()).
Omitindo o valor: forma de função. Muitos utils aceitam o valor a ser transformado como o último argumento. Se você omitir esse argumento, o util retorna uma função que aceita o valor posteriormente. Use a forma de função quando precisar limitar, mapear, normalizar ou "travar" muitos valores com a mesma configuração (por exemplo, em um manipulador de mousemove ou callback de tween). Exceção: random() — passe true como o último argumento para obter uma função reutilizável (não omita o valor); veja random().
// 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
Limitação e Faixas
clamp(min, max, value?)
Limita um valor entre min e max. Omita value para obter uma função: clamp(min, max)(value).
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?)
Mapeia um valor de uma faixa para outra. Use ao converter posição de scroll, progresso (0–1) ou faixa de entrada para uma faixa de animação. Omita value para obter uma função: mapRange(inMin, inMax, outMin, outMax)(value).
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?)
Retorna um valor normalizado para 0–1 para a faixa dada. Inverso de mapear quando a faixa de destino é 0–1. Omita value para obter uma função: normalize(min, max)(value).
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?)
Interpola entre dois valores em um progresso dado (0–1). Lida com números, cores e objetos com chaves correspondentes. Omita progress para obter uma função: interpolate(start, end)(progress).
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
Aleatório e Travar
random(minimum, maximum[, snapIncrement, returnFunction]) / random(array[, returnFunction])
Retorna um número aleatório na faixa minimum–maximum, ou um elemento aleatório de um array. snapIncrement opcional "trava" o resultado no múltiplo mais próximo (por exemplo, 5 → múltiplos de 5). Para obter uma função reutilizável, passe true como o último argumento (returnFunction); a função retornada não aceita argumentos e retorna um novo valor aleatório a cada vez. Este é o único util que usa true para a forma de função em vez de omitir o valor.
// 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
…
Perguntas frequentes
O que significa 'omitir o valor'?
Significa que você não fornece o último dado para a função. Em vez de obter o resultado na hora, você recebe uma nova função que pode ser chamada depois com o dado que faltava. Isso é útil para aplicar a mesma regra a vários valores.
Qual a diferença entre `clamp` e `mapRange`?
`clamp` apenas impede que um valor ultrapasse um mínimo e um máximo. `mapRange` transforma um valor de uma escala para outra completamente diferente.
Como uso `random` para escolher entre cores?
Você pode passar um array de cores para a função `random`, como `gsap.utils.random(['red', 'blue', 'green'])`. Ele escolherá uma cor aleatoriamente a cada vez que for chamado.
Detalhes
Descrição original do autor
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.
repo: nexu-io/open-design
Popularidade
- Estrelas no GitHub
- 101 mil
- Posição no ranking
- #726
- Licença
- Apache-2.0
- Atualizada em
- 16/10/2026
Comentários
- …
Mais skills deste repositório
sample-plugin
Faz seu agente criar um arquivo de metadados para testes. Ele ajuda a garantir que o código funcione corretamente em diferentes situações.
nexu-io/open-design
aster-atelier
Ajuda seu agente a criar um site artístico com visual clássico. Ele usa imagens elegantes, céus azuis e fontes serifadas para um visual cinematográfico.
nexu-io/open-design
audio-jingle
Faz seu agente gerar áudio como jingles e efeitos sonoros. Ele pode criar músicas e vozes, salvando o resultado em um arquivo de áudio.
nexu-io/open-design
blog-post
Ajuda seu agente a escrever artigos longos ou posts de blog. Ele inclui espaços para imagens, citações e informações do autor.
nexu-io/open-design
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC