Skillquality 0.70

makepad-shaders

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 绘制

Price
free
Protocol
skill
Verified
no

What it does

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.

Capabilities

skillsource-sickn33skill-makepad-shaderstopic-agent-skillstopic-agentic-skillstopic-ai-agent-skillstopic-ai-agentstopic-ai-codingtopic-ai-workflowstopic-antigravitytopic-antigravity-skillstopic-claude-codetopic-claude-code-skillstopic-codex-clitopic-codex-skills

Install

Quality

0.70/ 1.00

deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34666 github stars · SKILL.md body (5,721 chars)

Provenance

Indexed fromgithub
Enriched2026-04-23 06:51:31Z · deterministic:skill-github:v1 · v1
First seen2026-04-18
Last seen2026-04-23

Agent access