Agent skill

Masked Reveal

by nirholas in nirholas/three.ws

Create masked staggered word reveals on scroll with GSAP ScrollTrigger.

Apache-2.0Auto-check passedFrontend & Design

Install Masked Reveal

skills CLI
$ npx skills add nirholas/three.ws --skill masked-reveal -a claude-code

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

GitHub CLI
$ gh skill install nirholas/three.ws masked-reveal --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/nirholas/three.ws.git skills-src && mkdir -p .claude/skills && cp -r skills-src/third_party/designcode-agent-skills/agent-skills/web-design/masked-reveal .claude/skills/masked-reveal && 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
masked-reveal
GitHub stars
229
Used in
1 other repo
Token cost
~990 tokens
SKILL.md length
202 words
Files
12
Skills in repo
92
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create masked staggered word reveals on scroll with GSAP ScrollTrigger.

  • Editorial text should reveal word-by-word through an overflow mask as they enter the viewport
  • SKILL.md covers Use When, Motion Defaults, HTML and CSS Mask, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Tasks that involve Web animation and motion

What it does

Masked Reveal is an agent skill from nirholas/three.ws. Create masked staggered word reveals on scroll with GSAP ScrollTrigger. Use when headings, hero copy, section titles, or editorial text should reveal word-by-word through an overflow mask as they enter the viewport.

Its SKILL.md is about 990 tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files (for example `demo/PROMPT.md` and `demo/source.json`).

It sits in Frontend & Design, covering Web animation and motion. It works with GSAP. The repository describes itself as: Open-source platform for 3D AI agents. Turn text or a photo into a rigged, animated GLB avatar, give it an LLM brain, memory and a wallet, and embed it anywhere with one web… The licence is Apache-2.0.

When your agent uses it

  • Editorial text should reveal word-by-word through an overflow mask as they enter the viewport
  • Tasks that involve Web animation and motion

Example prompts

  • “/masked-reveal”

What it can do on your machine

Read from SKILL.md and the folder at commit 66624fb. 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 javascript, html and css).

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

  • Network

    No URLs in SKILL.md.

    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

Masked Reveal loads about 990 tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 202 words of instructions outside code blocks.

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

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 nirholas/three.ws at commit 66624fb, republished under its Apache-2.0 licence (© nirholas). 202 words, ~990 tokens.

Download SKILL.mdSave it as .claude/skills/masked-reveal/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
masked-reveal
description
Create masked staggered word reveals on scroll with GSAP ScrollTrigger. Use when headings, hero copy, section titles, or editorial text should reveal word-by-word through an overflow mask as they enter the viewport.

Masked Reveal

Use When

  • A headline or short text block needs a premium reveal on scroll.
  • Words should rise through an invisible mask with a staggered sequence.
  • The project already uses GSAP or needs ScrollTrigger-based motion.

Motion Defaults

  • Trigger: start when the text top reaches 82% of the viewport.
  • Duration: 0.7s to 0.9s.
  • Stagger: 0.025s to 0.045s per word.
  • Offset: yPercent: 110 to 0.
  • Ease: power3.out or expo.out.
  • Replay: reveal once by default.

HTML

html
<h1 class="masked-reveal" data-masked-reveal>
  Design systems that feel alive from the first scroll.
</h1>

CSS Mask

css
.masked-reveal {
  visibility: visible;
}

html.js .masked-reveal[data-masked-reveal] {
  visibility: hidden;
}

html.js .masked-reveal.is-split {
  visibility: visible;
}

.masked-reveal .word-mask {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
}

.masked-reveal .word {
  display: inline-block;
  transform: translateY(110%);
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  html.js .masked-reveal[data-masked-reveal] {
    visibility: visible;
  }

  .masked-reveal .word {
    transform: none;
  }
}

GSAP ScrollTrigger

This helper avoids the paid SplitText plugin and keeps spaces intact.

js
document.documentElement.classList.add("js");
gsap.registerPlugin(ScrollTrigger);

function escapeHTML(value) {
  return value
    .replace(/&/g, "&amp;")
    .replace(/</g, "&lt;")
    .replace(/>/g, "&gt;")
    .replace(/"/g, "&quot;")
    .replace(/'/g, "&#039;");
}

function splitMaskedReveal(element) {
  if (element.dataset.maskedRevealReady === "true") return;

  const text = element.textContent.trim();
  element.setAttribute("aria-label", text);
  element.innerHTML = text
    .split(/(\s+)/)
    .map((part) => {
      if (!part.trim()) return part;
      return `<span class="word-mask" aria-hidden="true"><span class="word">${escapeHTML(part)}</span></span>`;
    })
    .join("");
  element.dataset.maskedRevealReady = "true";
  element.classList.add("is-split");
}

function initMaskedReveals(selector = "[data-masked-reveal]") {
  if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;

  document.querySelectorAll(selector).forEach((element) => {
    splitMaskedReveal(element);
    const words = element.querySelectorAll(".word");

    gsap.set(element, { autoAlpha: 1 });
    gsap.fromTo(
      words,
      { yPercent: 110 },
      {
        yPercent: 0,
        duration: 0.8,
        ease: "power3.out",
        stagger: 0.035,
        scrollTrigger: {
          trigger: element,
          start: "top 82%",
          once: true,
        },
      }
    );
  });
}

initMaskedReveals();

React Cleanup Pattern

js
useLayoutEffect(() => {
  const ctx = gsap.context(() => {
    initMaskedReveals("[data-masked-reveal]");
  }, rootRef);

  return () => ctx.revert();
}, []);

Taste Rules

  • Use on short headlines, labels, and section intros; avoid long paragraphs.
  • Keep the vertical offset clean. Do not combine with blur unless the style explicitly calls for it.
  • Stagger by word, not letter, for a calmer editorial feel.
  • Initialize after fonts are loaded if line wrapping is critical.
  • Use ScrollTrigger.refresh() after late-loading images or layout shifts.
  • Do not split text that contains links, buttons, or meaningful inline markup.

Quick Checks

  • Text is hidden before GSAP initializes, then becomes visible with autoAlpha: 1.
  • Screen readers get the original full text through aria-label.
  • Spaces between words are preserved.
  • Reduced-motion users see static text.
  • ScrollTrigger is cleaned up in SPA routes.

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

Files

SKILL.md and 11 other files in third_party/designcode-agent-skills/agent-skills/web-design/masked-reveal of nirholas/three.ws.

  • SKILL.md
  • demo/PROMPT.md
  • demo/assets/page-01-65695f80-23f9-46ee-8487-cbb6c93cc48b-3840w.webp
  • demo/assets/page-02-724142aa-44a6-48d3-9cf3-761e00d05b78-1600w.jpg
  • demo/assets/page-03-4734259a-bad7-422f-981e-ce01e79184f2-1600w.jpg
  • demo/assets/page-04-005600e5-f6ab-4e59-bc86-eaeb02797dfa-1600w.jpg
  • demo/assets/page-05-e534354d-c5f2-4399-a1d9-2f50338e8c47-1600w.jpg
  • demo/assets/page-06-fb6415fd-bf4d-4ccf-8e9d-7ab445e99207-1600w.jpg
  • demo/assets/source-preview.jpg
  • demo/index.html
  • demo/preview.jpg
  • demo/source.json

Open the folder on GitHubat commit 66624fb

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in nirholas/three.ws, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Masked Reveal 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.

Masked Reveal compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Masked Reveal this skillnirholas/three.ws2291 repos~990Automated safety check: PassApache-2.0
GSAP ScrollTriggergreensock/gsap-skills16k4 repos~4.6kAutomated 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
GSAP Timelinegreensock/gsap-skills16k3 repos~1.1kAutomated safety check: PassMIT
Gsapboraoztunc/skills3985 repos~1.9kAutomated safety check: PassApache-2.0

Similar skills

  • GSAP ScrollTrigger

    greensock/gsap-skills

    Teaches an agent how to wire up GSAP's ScrollTrigger plugin for scroll-linked animation, pinned sections and scrub, including the start and end position syntax.

    16k GitHub starsUsed in 4 repos~4.6k tokens
    Frontend & DesignAuto-check passed
  • 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
  • GSAP Timeline

    greensock/gsap-skills

    Teaches the GSAP timeline API for sequencing animations: gsap.timeline(), the position parameter, labels, defaults, nesting and playback control.

    16k GitHub starsUsed in 3 repos~1.1k tokens
    Frontend & DesignAuto-check passed
  • Gsap

    boraoztunc/skills

    GSAP animation reference for HyperFrames. An agent skill from boraoztunc/skills.

    398 GitHub starsUsed in 5 repos~1.9k tokens
    Frontend & DesignAuto-check passed
  • Auteur

    agiwhitelist/auteur

    Design and build complete web experiences from scratch — award-level product and marketing pages, cinematic scroll-directed sites where the page is directed like a film, and multi-screen products…

    1k GitHub stars~5k tokensUpdated 2 mo ago
    Frontend & DesignAuto-check passed

More from nirholas/three.ws

All 92 skills in this repo
  • Add Shader Cursor Trail

    nirholas/three.ws

    Add the Shaders WebGPU mouse effect used for the Tidal Commons hero: a white twinkling halftone cursor trail driven by ChromaFlow, masked through a DotGrid, finished with chromatic ripples and film…

    229 GitHub starsUsed in 1 repo~760 tokens
    Auto-check passed
  • Publish Project To GitHub

    nirholas/three.ws

    Package a finished local project into an intentional GitHub repository, create a strong README and visual preview, push it safely, configure a public GitHub Pages URL when the project is compatible…

    229 GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check: notes
  • Audit a website or digital experience against its supplied source references for originality and plagiarism risk.

    229 GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Turn a completed daily UI inspiration capture into exactly five original landing-page builds, one per separate Codex task, using Sites.

    229 GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • Write Like Meng On X

    nirholas/three.ws

    Write, rewrite, review, or continuously refine X/Twitter posts in Meng To's current voice using his deduplicated authored-post corpus, personal and product context, shared resources, and Content…

    229 GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Browser Video Recording

    nirholas/three.ws

    Create polished 60 fps 4:3 4K browser screen-recording style videos from Codex in-app browser captures, with browser-only crop, natural macOS cursor styling, deliberate click choreography…

    229 GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed

Works with

Questions about Masked Reveal

What does Masked Reveal do?

Create masked staggered word reveals on scroll with GSAP ScrollTrigger. ws. Create masked staggered word reveals on scroll with GSAP ScrollTrigger.

When should I use Masked Reveal?

Masked Reveal fits situations like: editorial text should reveal word-by-word through an overflow mask as they enter the viewport; tasks that involve Web animation and motion.

How do I install Masked Reveal in Claude Code?

Run `npx skills add nirholas/three.ws --skill masked-reveal -a claude-code`. Or copy the skill folder (third_party/designcode-agent-skills/agent-skills/web-design/masked-reveal in nirholas/three.ws) into .claude/skills/masked-reveal in your project. Claude Code loads it when a task matches its description.

How do I install Masked Reveal in Codex?

Run `npx skills add nirholas/three.ws --skill masked-reveal -a codex`. Or copy the skill folder (third_party/designcode-agent-skills/agent-skills/web-design/masked-reveal in nirholas/three.ws) into .agents/skills/masked-reveal in your project. Codex loads it when a task matches its description.

Can I use Masked Reveal 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 nirholas/three.ws --skill masked-reveal -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/masked-reveal, .gemini/skills/masked-reveal, .github/skills/masked-reveal and .opencode/skills/masked-reveal in your project.

What does Masked Reveal need to run?

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

Does Masked Reveal access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Masked Reveal 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 Masked Reveal use?

Masked Reveal is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Masked Reveal use?

About 990 tokens (SKILL.md is roughly 4k 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 Masked Reveal?

Skills that share tags, products or a category with Masked Reveal: GSAP ScrollTrigger (greensock/gsap-skills, 16k stars), GSAP Core Animation (greensock/gsap-skills, 16k stars), GSAP for React (greensock/gsap-skills, 16k stars) and GSAP Timeline (greensock/gsap-skills, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Masked Reveal?

nirholas (a GitHub user) maintains it in nirholas/three.ws, which has 229 GitHub stars. The repository holds 92 skills in this directory. The repository was last updated on October 10, 2026.

Source: nirholas/three.ws on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.