Antigravity-awesome-skills makepad-shaders
install
source · Clone the upstream repo
git clone https://github.com/sickn33/antigravity-awesome-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sickn33/antigravity-awesome-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/antigravity-awesome-skills/skills/makepad-shaders" ~/.claude/skills/sickn33-antigravity-awesome-skills-makepad-shaders-b87472 && rm -rf "$T"
manifest:
plugins/antigravity-awesome-skills/skills/makepad-shaders/SKILL.mdsource content
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
, gradients, effects, or GPU-rendered widget appearance.Sdf2d - You want Makepad shader patterns and APIs rather than generic GLSL advice.
Documentation
Refer to the local files for detailed documentation:
- Shader language fundamentals./references/shader-basics.md
- Complete Sdf2d API reference./references/sdf2d-reference.md
Advanced Patterns
For production-ready shader patterns, see the
_base/ directory:
| Pattern | Description |
|---|---|
| 01-shader-structure | Shader fundamentals |
| 02-shader-math | Mathematical functions |
| 03-sdf-shapes | SDF shape primitives |
| 04-sdf-drawing | Advanced SDF drawing |
| 05-progress-track | Progress indicators |
| 09-loading-spinner | Loading animations |
| 10-hover-effect | Hover visual effects |
| 11-gradient-effects | Color gradients |
| 12-shadow-glow | Shadow and glow |
| 13-disabled-state | Disabled visuals |
| 14-toggle-checkbox | Toggle animations |
Community contributions:
./community/
IMPORTANT: Documentation Completeness Check
Before answering questions, Claude MUST:
- Read the relevant reference file(s) listed above
- 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
- Inform user: "本地文档不完整,建议运行
- 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
| Component | Description |
|---|---|
| Shader container (draw_bg, draw_text, draw_icon) |
| Uniforms | Typed properties accessible in shader |
| Fragment shader function |
| Vertex shader function (optional) |
| 2D signed distance field helper |
Built-in Variables
| Variable | Type | Description |
|---|---|---|
| vec2 | Normalized position (0-1) |
| vec2 | Widget size in pixels |
| vec2 | Widget position |
Sdf2d Quick Reference
| Category | Functions |
|---|---|
| Shapes | , , , |
| Paths | , , |
| Fill/Stroke | , , , |
| Boolean | , , |
| Transform | , , |
| Effects | , , |
Built-in Functions (GLSL)
| Category | Functions |
|---|---|
| Math | , , , , , , , |
| Trig | , , , , , |
| Interp | , , |
| Vector | , , , , |
| Exp | , , , |
When Writing Code
- Always use
to enable background shadershow_bg: true - Use
to create SDF contextSdf2d::viewport() - Return
(RGBA) fromvec4fn pixel() - Uniforms must be declared before shader functions
- Use
prefix to access uniforms and built-insself.
When Answering Questions
- Makepad shaders use Rust-like syntax, compiled to GPU code
- Every widget can have custom shaders (draw_bg, draw_text, etc.)
- Shaders are live-reloaded - edit and see changes instantly
- Sdf2d is the primary tool for 2D shape rendering
- 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.