MA

makepad-shaders

Specialized assistance for Makepad shader programming and drawing.

Install

mkdir -p .claude/skills/makepad-shaders-tjsndhu && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15713" && unzip -o skill.zip -d .claude/skills/makepad-shaders-tjsndhu && rm skill.zip

Installs to .claude/skills/makepad-shaders-tjsndhu

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

CRITICAL: Use for Makepad shader system. Triggers on: makepad shader, makepad draw_bg, Sdf2d, makepad pixel, makepad glsl, makepad sdf, draw_quad, makepad gpu, makepad 着色器, makepad shader 语法, makepad 绘制
202 chars✓ has a “when” trigger
Advanced

Key capabilities

  • Generate Makepad shader code for custom drawing
  • Implement SDF-based visuals using Sdf2d
  • Create custom pixel and vertex shader functions
  • Apply gradients and effects to UI elements
  • Utilize built-in GLSL functions within Makepad shaders
  • Debug GPU rendering visuals in Makepad

How it works

The skill provides patterns and guidance for writing Makepad shaders, which use a Rust-like syntax compiled to GPU code, to customize widget appearance and create visual effects.

Inputs & outputs

You give it
Makepad View components, shader uniforms (color, border_radius), Sdf2d shape definitions, GLSL-like functions
You get back
Custom GPU-rendered visuals, such as rounded rectangles, gradients, circles, and hover effects within Makepad applications

When to use makepad-shaders

  • Write custom shader code for Makepad
  • Debug GPU rendering visuals
  • Implement animation effects with SDFs
  • Create hover and toggle effects

About this skill

Makepad Shaders Skill

Version: makepad-widgets (dev branch) | Last Updated: 2026-01-19

Check for updates: https://crates.io/crates/makepad-widgets

You are an expert at Makepad shaders. Help users by:

  • Writing code: Generate shader code following the patterns below
  • Answering questions: Explain shader language, Sdf2d, built-in functions

When to Use

  • You need to write or debug Makepad shader code, custom drawing, or SDF-based visuals.
  • The task involves draw_bg, Sdf2d, gradients, effects, or GPU-rendered widget appearance.
  • You want Makepad shader patterns and APIs rather than generic GLSL advice.

Documentation

Refer to the local files for detailed documentation:

  • ./references/shader-basics.md - Shader language fundamentals
  • ./references/sdf2d-reference.md - Complete Sdf2d API reference

Advanced Patterns

For production-ready shader patterns, see the _base/ directory:

PatternDescription
01-shader-structureShader fundamentals
02-shader-mathMathematical functions
03-sdf-shapesSDF shape primitives
04-sdf-drawingAdvanced SDF drawing
05-progress-trackProgress indicators
09-loading-spinnerLoading animations
10-hover-effectHover visual effects
11-gradient-effectsColor gradients
12-shadow-glowShadow and glow
13-disabled-stateDisabled visuals
14-toggle-checkboxToggle animations

Community contributions: ./community/

IMPORTANT: Documentation Completeness Check

Before answering questions, Claude MUST:

  1. Read the relevant reference file(s) listed above
  2. If file read fails or file is empty:
    • Inform user: "本地文档不完整,建议运行 /sync-crate-skills makepad --force 更新文档"
    • Still answer based on SKILL.md patterns + built-in knowledge
  3. If reference file exists, incorporate its content into the answer

Key Patterns

1. Basic Custom Shader

<View> {
    show_bg: true
    draw_bg: {
        // Shader uniforms
        color: #FF0000

        // Custom pixel shader
        fn pixel(self) -> vec4 {
            return self.color;
        }
    }
}

2. Rounded Rectangle with Border

<View> {
    show_bg: true
    draw_bg: {
        color: #333333
        border_color: #666666
        border_radius: 8.0
        border_size: 1.0

        fn pixel(self) -> vec4 {
            let sdf = Sdf2d::viewport(self.pos * self.rect_size);
            sdf.box(1.0, 1.0,
                    self.rect_size.x - 2.0,
                    self.rect_size.y - 2.0,
                    self.border_radius);
            sdf.fill_keep(self.color);
            sdf.stroke(self.border_color, self.border_size);
            return sdf.result;
        }
    }
}

3. Gradient Background

<View> {
    show_bg: true
    draw_bg: {
        color: #FF0000
        color_2: #0000FF

        fn pixel(self) -> vec4 {
            let t = self.pos.x;  // Horizontal gradient
            return mix(self.color, self.color_2, t);
        }
    }
}

4. Circle Shape

<View> {
    show_bg: true
    draw_bg: {
        color: #0066CC

        fn pixel(self) -> vec4 {
            let sdf = Sdf2d::viewport(self.pos * self.rect_size);
            let center = self.rect_size * 0.5;
            let radius = min(center.x, center.y) - 1.0;
            sdf.circle(center.x, center.y, radius);
            sdf.fill(self.color);
            return sdf.result;
        }
    }
}

Shader Structure

ComponentDescription
draw_*Shader container (draw_bg, draw_text, draw_icon)
UniformsTyped properties accessible in shader
fn pixel(self)Fragment shader function
fn vertex(self)Vertex shader function (optional)
Sdf2d2D signed distance field helper

Built-in Variables

VariableTypeDescription
self.posvec2Normalized position (0-1)
self.rect_sizevec2Widget size in pixels
self.rect_posvec2Widget position

Sdf2d Quick Reference

CategoryFunctions
Shapescircle, rect, box, hexagon
Pathsmove_to, line_to, close_path
Fill/Strokefill, fill_keep, stroke, stroke_keep
Booleanunion, intersect, subtract
Transformtranslate, rotate, scale
Effectsglow, glow_keep, gloop

Built-in Functions (GLSL)

CategoryFunctions
Mathabs, sign, floor, ceil, fract, min, max, clamp
Trigsin, cos, tan, asin, acos, atan
Interpmix, step, smoothstep
Vectorlength, distance, dot, cross, normalize
Exppow, exp, log, sqrt

When Writing Code

  1. Always use show_bg: true to enable background shader
  2. Use Sdf2d::viewport() to create SDF context
  3. Return vec4 (RGBA) from fn pixel()
  4. Uniforms must be declared before shader functions
  5. Use self. prefix to access uniforms and built-ins

When Answering Questions

  1. Makepad shaders use Rust-like syntax, compiled to GPU code
  2. Every widget can have custom shaders (draw_bg, draw_text, etc.)
  3. Shaders are live-reloaded - edit and see changes instantly
  4. Sdf2d is the primary tool for 2D shape rendering
  5. GLSL ES 1.0 built-in functions are available

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

When not to use it

  • When generic GLSL advice is needed instead of Makepad-specific patterns
  • When the task does not involve `draw_bg`, `Sdf2d`, or GPU-rendered widget appearance

How it compares

This skill focuses on Makepad's specific shader system and Sdf2d primitives, offering a tailored approach compared to general GLSL programming.

Compared to similar skills

makepad-shaders side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
makepad-shaders (this skill)03moNo flagsAdvanced
scroll-experience1016moNo flagsIntermediate
game-art236moNo flagsBeginner
motion-graphics316moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

scroll-experience

davila7

Expert in building immersive scroll-driven experiences - parallax storytelling, scroll animations, interactive narratives, and cinematic web experiences. Like NY Times interactives, Apple product pages, and award-winning web experiences. Makes websites feel like experiences, not just pages. Use when: scroll animation, parallax, scroll storytelling, interactive story, cinematic website.

101142

game-art

davila7

Game art principles. Visual style selection, asset pipeline, animation workflow.

2383

motion-graphics

rohitg00

Kinetic typography, logo animations, and stylized motion design skill. **Triggers when:** - User wants text animations or kinetic typography - Request involves logo reveals or title sequences - Content focuses on visual impact over education - User mentions "title", "intro", "logo", "text animation", "kinetic" **Capabilities:** - Kinetic typography with dynamic text effects - Logo reveals and brand animations - Particle effects and visual flourishes - Modern motion design patterns - Attention-grabbing title sequences

3141

interaction-design

wshobson

Design and implement microinteractions, motion design, transitions, and user feedback patterns. Use when adding polish to UI interactions, implementing loading states, or creating delightful user experiences.

1550

frontend-enhancer

ailabs-393

This skill should be used when enhancing the visual design and aesthetics of Next.js web applications. It provides modern UI components, design patterns, color palettes, animations, and layout templates. Use this skill for tasks like improving styling, creating responsive designs, implementing modern UI patterns, adding animations, selecting color schemes, or building aesthetically pleasing frontend interfaces.

35

threejs-postprocessing

CloudAI-X

Three.js post-processing - EffectComposer, bloom, DOF, screen effects. Use when adding visual effects, color grading, blur, glow, or creating custom screen-space shaders.

17

Search skills

Search the agent skills registry