Agent skill

Shader for Interfaces

by v2space-labs in v2space-labs/shader-for-interfaces

Decides whether an interface effect belongs in CSS, SVG, Canvas 2D, WebGL or WebGPU, then builds, debugs and visually verifies focused GPU effects inside product UIs.

MITAuto-check passedFrontend & Design

Install Shader for Interfaces

skills CLI
$ npx skills add v2space-labs/shader-for-interfaces --skill shader-for-interfaces -a claude-code

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

GitHub CLI
$ gh skill install v2space-labs/shader-for-interfaces shader-for-interfaces --agent claude-code

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

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

Facts

Skill name
shader-for-interfaces
GitHub stars
115
Token cost
~3.1k tokens
SKILL.md length
1,491 words
Files
15 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Decides whether an interface effect belongs in CSS, SVG, Canvas 2D, WebGL or WebGPU, then builds, debugs and visually verifies focused GPU effects inside product UIs.

  • Works in 8 steps: Inspect the project, target surface,… → Write a brief visual contract that names… → Choose the lightest renderer that can… → …
  • Deciding whether a visual effect needs WebGL or can stay in CSS or SVG
  • SKILL.md covers Task mode, Scope, Workflow for build and change… and Implementation constraints, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

The skill has three modes. Recommend compares the viable renderers and returns a decision, tradeoffs, a fallback and validation gaps without changing files. Diagnose reproduces and isolates a failure, explains the cause and a scoped fix, and implements it only if asked. Build or change follows the full workflow, integrates the effect and passes a browser check. Content, controls, layout and accessibility stay in the interface while the GPU supplies only the visual layer.

Scope is a contained surface in Three.js, WebGL2 and GLSL or vgpu, WebGPU and WGSL, written in TypeScript or React: one effect or draw, modest particles or data, and fixed quality caps chosen from measurement. Dependent render targets, ping-pong feedback, persistent simulations, adaptive-quality controllers, formal render graphs and renderer migrations are named as out of scope instead of being half-built. A symptom table points to focused references on effect selection, GLSL patterns, UI integration, performance and accessibility, textures, particles and React Three Fiber.

When your agent uses it

  • Deciding whether a visual effect needs WebGL or can stay in CSS or SVG
  • Adding a contained shader background or distortion effect to a React page
  • Debugging a blank or black canvas or non-compiling GLSL
  • Fixing resize, pointer or frame-rate problems in a GPU canvas

Example prompts

  • “Should this hero gradient animation be CSS or WebGL? Compare the options before changing anything.”
  • “Add a subtle noise-distortion shader behind the pricing cards in our React app.”
  • “My ShaderMaterial renders a black canvas, so find out why.”

Requirements

  • A web project, typically in TypeScript or React
  • A browser to run the visual check

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Inspect the project, target surface, existing renderer, installed Three.js, R3F, or vgpu versions, design tokens, interaction states, and…
  2. Write a brief visual contract that names the effect's UI role, protected content, applicable component states, readiness condition…
  3. Choose the lightest renderer that can meet the contract. Read effect-selection.md before adding a GPU renderer to a project that does not…
  4. Build a no-post baseline. Verify geometry, coordinates, color, alpha, resize behavior, and one motion source before adding polish.
  5. Expose design-facing controls such as intensity, scale, softness, turbulence, depth, contrast, motionSpeed, interactionRadius, and…
  6. Integrate the canvas with ui-integration.md. Preserve clipping, stacking, input, responsive layout, DOM semantics, and cleanup.
  7. Use glsl-patterns.md while writing or adapting GLSL. Diagnose intermediate values before changing several parameters at once.
  8. Profile GPU and page-level outcomes, add fallbacks with performance-accessibility.md, then pass the browser checks below.

What it can do on your machine

Read from SKILL.md and the folder at commit 08fe6fc. 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.

    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

Shader for Interfaces loads about 3.1k tokens when it runs, and up to ~19k if it reads all its reference files. Until then it costs about 125 tokens; SKILL.md has 1,491 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~125
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~19k

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 v2space-labs/shader-for-interfaces at commit 08fe6fc, republished under its MIT licence (© v2space-labs). 1,491 words, ~3,104 tokens.

Download SKILL.mdSave it as .claude/skills/shader-for-interfaces/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.
name
shader-for-interfaces
description
Decide whether an interface effect should stay in CSS, SVG, or Canvas 2D or needs WebGL or WebGPU, then create, integrate, diagnose, and visually verify focused GPU effects inside product interfaces. Use for contained Three.js/WebGL2/GLSL or vgpu/WebGPU/WGSL surfaces, modest particles, GPU data views, and responsive canvases in TypeScript or React. Do not use for dependent passes, persistent simulations, formal render graphs, adaptive-quality systems, or renderer migrations.
license
MIT

Shader for Interfaces

Build the effect as part of the product. Keep content, controls, layout, and accessibility in the interface while the GPU supplies the visual layer.

Task mode

  • Recommend: read effect-selection.md, compare the viable renderers, and return a decision, tradeoffs, fallback, and validation gaps. Do not change files unless asked.
  • Diagnose: reproduce and isolate the failure. Explain the cause and a scoped fix; implement it only when the request includes fixing the issue.
  • Build or change: follow the complete workflow, integrate the effect, and pass the browser gate.

Scope

For GPU implementation, this skill handles a focused, contained surface: one effect or draw, modest particles or data, and fixed quality caps chosen from measurement. It does not implement dependent render targets, ping-pong or feedback state, persistent GPU simulations, measured adaptive-quality controllers, formal render graphs, Three.js TSL/WebGPU migrations, or reusable delivery systems.

When a request crosses this boundary, name the features outside scope. Offer a contained simplification only when it still meets the user's goal; if it does not, return a system and acceptance outline and leave the advanced implementation undone. Never present a partial advanced system as complete.

Load only what the current decision or symptom needs:

SymptomRead
Renderer choice among CSS, SVG, Canvas 2D, WebGL, and WebGPUeffect-selection.md
Blank, black, malformed, or non-compiling GLSL or ShaderMaterialglsl-patterns.md
Vague visual idea, mood, or request without shader vocabularybrief-to-effect.md
Resize, layering, pointer, alpha, or lifecycle failureui-integration.md
Low frame rate, leak, context loss, or fallback failureperformance-accessibility.md
Texture load, crop, edge, or distortion problemtextures-and-distortion.md
Particle count, bounds, update, or overdraw problemparticles.md
React Three Fiber ownership or frame-loop problemr3f-integration.md
Blank or non-compiling WGSL, or a vgpu adapter, binding, surface, device, or headless-render problemvgpu-wgsl.md
Incorrect or misleading data outputdata-visualization.md
Generic or unmotivated palette, muddy gradient, or low contrastcolor-direction.md

Workflow for build and change tasks

  1. Inspect the project, target surface, existing renderer, installed Three.js, R3F, or vgpu versions, design tokens, interaction states, and device constraints. Resolve version-specific APIs from the target lockfile and installed documentation. Keep the current stack unless it blocks the requested result.
  2. Write a brief visual contract that names the effect's UI role, protected content, applicable component states, readiness condition, inputs, still composition, motion, target devices, fallback, and reduced-motion state. When the user starts from a mood or plain-language visual idea, read brief-to-effect.md and translate it without requiring shader vocabulary. Use color-direction.md to record the palette source, role map, and purpose of every gradient or glow before fixing color values.
  3. Choose the lightest renderer that can meet the contract. Read effect-selection.md before adding a GPU renderer to a project that does not already use one. For a contained vgpu/WGSL path, also read vgpu-wgsl.md. Apply the scope boundary above before implementation. When CSS, SVG, or Canvas 2D wins, keep the same contract discipline: name the first stable visual checkpoint, state what readiness and fallback mean for that renderer, and explicitly mark GPU-only compilation, context/device failure, and teardown checks as not applicable instead of silently omitting them.
  4. Build a no-post baseline. Verify geometry, coordinates, color, alpha, resize behavior, and one motion source before adding polish.
  5. Expose design-facing controls such as intensity, scale, softness, turbulence, depth, contrast, motionSpeed, interactionRadius, and dataExaggeration. Give each public control a default, useful range, visible meaning, and a cost note when it changes GPU work. Keep raw shader constants out of the public control surface.
  6. Integrate the canvas with ui-integration.md. Preserve clipping, stacking, input, responsive layout, DOM semantics, and cleanup.
  7. Use glsl-patterns.md while writing or adapting GLSL. Diagnose intermediate values before changing several parameters at once.
  8. Profile GPU and page-level outcomes, add fallbacks with performance-accessibility.md, then pass the browser checks below.

For data-driven work, read data-visualization.md before uploading buffers or textures. Define each source-to-visual mapping, including units, domain, missing values, legend, and accessible alternative. Keep decorative motion separate from represented values.

For image sampling or distortion, read textures-and-distortion.md. For point or instanced effects, read particles.md. For an effect inside an existing R3F application, read r3f-integration.md.

When a separate vgpu skill is available and vgpu is the selected renderer, use it as the version-specific API and performance companion after reading vgpu-wgsl.md. Keep this skill responsible for renderer choice, product integration, visual direction, accessibility, fallback, and browser acceptance. The companion skill remains optional.

Show full SKILL.md (773 more words)Show less

Implementation constraints

  • Reuse the host application's renderer. Once Three.js is justified, default to WebGLRenderer with ShaderMaterial for custom GLSL. Do not add vgpu beside an existing Three.js or R3F renderer for one effect unless the product explicitly needs a separate WebGPU surface and accepts the extra device, bundle, lifecycle, and fallback cost.
  • Choose vgpu for a contained WebGPU/WGSL effect when the project already uses it or when WebGPU, WGSL modules, or browser-and-Node pixel validation provides a concrete benefit. vgpu does not supply an automatic WebGL fallback; keep a designed non-WebGPU state.
  • Give a contained vgpu surface one Gpu owner. Create its surface, effect, and resource objects once. After the first set(), keep each binding in the same ownership category: continue sending plain values to value-backed bindings, and keep user-owned textures, buffers, and samplers resource-backed. Stop the frame loop, unsubscribe resize callbacks, and call gpu.dispose() during teardown.
  • Use the installed vgpu documentation or companion skill to resolve current API details. Load only the concept, guide, or symbol needed for the next decision; do not vendor the upstream manual or assume the latest online API matches the lockfile.
  • Check the installed Three.js and R3F versions before using version-specific shader chunks, color APIs, renderer compilation hooks, or frame-loop behavior. Translate older APIs deliberately rather than presenting current syntax as version-agnostic.
  • Use RawShaderMaterial only when full shader declarations are intentional. Then own precision, attributes, uniforms, GLSL version, fragment output, and output color conversion explicitly.
  • Keep an existing React Three Fiber setup. Do not add R3F to a vanilla Three.js project for one effect.
  • Keep DOM or application state authoritative. Feed shaders bounded visual derivatives of hover, focus, press, selection, disabled, loading, error, and progress states instead of making the GPU the component state machine.
  • Name the owner of the renderer, scene, camera, geometry, material, uniforms, animation loop, resize logic, and cleanup.
  • Mutate stable uniforms in the frame loop. Do not recreate materials, geometry, typed arrays, or React state each frame.
  • Normalize pointer input within the canvas container unless the interaction is intentionally global.
  • Use ResizeObserver for component-sized canvases. Distinguish CSS size, drawing-buffer size, and shader resolution.
  • Avoid unbounded renderer, context, device, loop, and observer counts across repeated components. Use ui-integration.md to choose isolated, shared, or demand-driven surfaces. Carry focus, disabled/loading suppression, interruption, readiness, and fallback behavior into the chosen repeated-surface approach.
  • Cap DPR. Start at Math.min(devicePixelRatio, 2) and lower it for fragment-heavy surfaces.
  • Test color space, alpha, and transparent edges over the real interface background.
  • Require a product, brand, reference, material, or data reason for dominant hues. Do not default to purple-cyan gradients, neon-on-dark glow, glass surfaces, or any replacement canned palette.
  • Keep essential text, controls, status, and the only representation of data out of the canvas.
  • Adapt shader source, textures, models, fonts, and data only when the user owns them or the applicable license permits the use. Preserve required attribution in the target project.

Browser gate

Before claiming completion:

  1. Run the real app and check JavaScript, shader compilation, selected GPU backend, and asset errors.
  2. Inspect desktop, mobile, and one unusual aspect ratio. When the effect repeats, test a representative grid or list rather than one isolated instance. Record layout stability, primary interaction latency, loading, and the first stable effect frame in addition to GPU timing.
  3. Freeze time or use a fixed seed to judge the still composition.
  4. Watch several seconds of motion for seams, hard bands, popping, unstable transparency, and discontinuities.
  5. Test applicable default, hover, focus-visible, pressed, selected, disabled, loading, error, and progress states; input at the surface edges; resize; pointer cancellation; touch-scroll takeover; route interruption; and rapid re-entry.
  6. Test reduced motion, initialization or context/device failure, unavailable selected GPU backend, and the static fallback.
  7. Check the readability of the actual UI and inspect canvas accessibility semantics: decorative surfaces stay hidden and unfocusable, while meaningful or interactive surfaces have an accessible DOM equivalent or a complete name, description, and keyboard model.
  8. Run the acceptance checklist in color-direction.md, including light/dark and runtime theme changes, supported forced-colors/high-contrast modes, grayscale, worst-frame contrast, non-color cues, and the generic-palette test.
  9. Record browser, viewport, DPR, quality setting, and remaining gaps.

When output looks wrong, inspect UVs, normals, depth, field value, particle age, data value, alpha, and overdraw before tuning the final color.

Handoff

Match the handoff to the task:

  • Recommend: report the renderer decision, rationale, constraints, fallback, and next validation step.
  • Diagnose: report the cause, affected files or shader stages, reproduction evidence, scoped fix, and anything still inferred or unverified.
  • Build or change: return the runnable integration and report changed files, public controls, input or data paths, browser checks, fallback behavior, and unverified states.

© v2space-labs, MIT. 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 14 other files (references) in the repository root of v2space-labs/shader-for-interfaces.

  • SKILL.md
  • .github/FUNDING.yml
  • LICENSE
  • README.md
  • references/brief-to-effect.md
  • references/color-direction.md
  • references/data-visualization.md
  • references/effect-selection.md
  • references/glsl-patterns.md
  • references/particles.md
  • references/performance-accessibility.md
  • references/r3f-integration.md
  • references/textures-and-distortion.md
  • references/ui-integration.md
  • references/vgpu-wgsl.md

Open the folder on GitHubat commit 08fe6fc

Compare with similar skills

Shader for Interfaces 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.

Shader for Interfaces compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Shader for Interfaces this skillv2space-labs/shader-for-interfaces115—~3.1kAutomated safety check: PassMIT
Typegpusoftware-mansion-labs/skills2912 repos~5.6kAutomated safety check: PassNone
3D Web Experiencesmadebyaris/advance-minimax-m3-cursor-rules126—~3kAutomated safety check: PassMIT
Animationskingstinct/react-native-healthkit716—~937Automated safety check: PassMIT
Oma Designfirst-fluke/oh-my-agent1.3k—~2.9kAutomated safety check: PassMIT
Animationssoftware-mansion-labs/skills291—~1.1kAutomated safety check: PassNone

Similar skills

  • Typegpu

    software-mansion-labs/skills

    TypeGPU is type-safe WebGPU in TypeScript. An agent skill from software-mansion-labs/skills.

    291 GitHub starsUsed in 2 repos~5.6k tokens
    Game DevelopmentAuto-check passed
  • 3D Web Experiences

    madebyaris/advance-minimax-m3-cursor-rules

    Builds 3D web scenes with Three.js and React Three Fiber, with attention to art direction, a performance budget, mobile behavior and fallbacks.

    126 GitHub stars~3k tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed
  • Animations

    kingstinct/react-native-healthkit

    Production animation patterns for React Native using Reanimated 4, Skia, WebGPU, and TypeGPU.

    716 GitHub stars~937 tokensUpdated 2 days ago
    Game DevelopmentAuto-check passed
  • Oma Design

    first-fluke/oh-my-agent

    AI design specialist skill with DESIGN.md management, anti-pattern enforcement, optional Stitch MCP integration, and component library guidance.

    1.3k GitHub stars~2.9k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Animations

    software-mansion-labs/skills

    Production animation patterns for React Native using Reanimated 4, Skia, WebGPU, and TypeGPU.

    291 GitHub stars~1.1k tokensUpdated 11 days ago
    Game DevelopmentAuto-check passed
  • Art-direct and implement distinctive, motion-rich marketing, editorial, portfolio, and landing websites with original reference-inspired imagery, standout heroes, GSAP choreography, one…

    228 GitHub starsUsed in 1 repo~1.8k tokens
    Game DevelopmentAuto-check passed

Questions about Shader for Interfaces

What does Shader for Interfaces do?

Decides whether an interface effect belongs in CSS, SVG, Canvas 2D, WebGL or WebGPU, then builds, debugs and visually verifies focused GPU effects inside product UIs. The skill has three modes. Recommend compares the viable renderers and returns a decision, tradeoffs, a fallback and validation gaps without changing files.

When should I use Shader for Interfaces?

Shader for Interfaces fits situations like: deciding whether a visual effect needs WebGL or can stay in CSS or SVG; adding a contained shader background or distortion effect to a React page; debugging a blank or black canvas or non-compiling GLSL; fixing resize, pointer or frame-rate problems in a GPU canvas.

How do I install Shader for Interfaces in Claude Code?

Run `npx skills add v2space-labs/shader-for-interfaces --skill shader-for-interfaces -a claude-code`. Or copy the skill folder (the v2space-labs/shader-for-interfaces repository) into .claude/skills/shader-for-interfaces in your project. Claude Code loads it when a task matches its description.

How do I install Shader for Interfaces in Codex?

Run `npx skills add v2space-labs/shader-for-interfaces --skill shader-for-interfaces -a codex`. Or copy the skill folder (the v2space-labs/shader-for-interfaces repository) into .agents/skills/shader-for-interfaces in your project. Codex loads it when a task matches its description.

Can I use Shader for Interfaces 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 v2space-labs/shader-for-interfaces --skill shader-for-interfaces -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/shader-for-interfaces, .gemini/skills/shader-for-interfaces, .github/skills/shader-for-interfaces and .opencode/skills/shader-for-interfaces in your project.

What does Shader for Interfaces need to run?

SKILL.md names no scripts, command-line tools or credentials: Shader for Interfaces is instructions for the agent only. Our summary lists: A web project, typically in TypeScript or React; A browser to run the visual check.

Does Shader for Interfaces 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 Shader for Interfaces 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 Shader for Interfaces use?

Shader for Interfaces is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Shader for Interfaces use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 16k tokens, read only when the agent opens those files.

What are the alternatives to Shader for Interfaces?

Skills that share tags, products or a category with Shader for Interfaces: Typegpu (software-mansion-labs/skills, 291 stars), 3D Web Experiences (madebyaris/advance-minimax-m3-cursor-rules, 126 stars), Animations (kingstinct/react-native-healthkit, 716 stars) and Oma Design (first-fluke/oh-my-agent, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Shader for Interfaces?

v2space-labs (a GitHub organization) maintains it in v2space-labs/shader-for-interfaces, which has 115 GitHub stars. The repository was last updated on September 1, 2026.

Source: v2space-labs/shader-for-interfaces on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.