--- name: makepad-font description: | CRITICAL: Use for Makepad font and text rendering. Triggers on: makepad font, makepad text, makepad glyph, makepad typography, font atlas, text layout, font family, font size, text shaping, makepad 字体, makepad 文字, makepad 排版, makepad 字形 --- # Makepad Font 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 text and font rendering. Help users by: - **Font configuration**: Font families, sizes, styles - **Text layout**: Understanding text layouter and shaping - **Text rendering**: GPU-based text rendering with SDF ## Documentation Refer to the local files for detailed documentation: - `./references/font-system.md` - Font module structure and APIs ## 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 ## Text Module Structure ``` draw/src/text/ ├── font.rs # Font handle and metrics ├── font_atlas.rs # GPU texture atlas for glyphs ├── font_face.rs # Font face data ├── font_family.rs # Font family management ├── fonts.rs # Built-in fonts ├── glyph_outline.rs # Glyph vector outlines ├── glyph_raster_image.rs # Rasterized glyph images ├── layouter.rs # Text layout engine ├── rasterizer.rs # Glyph rasterization ├── sdfer.rs # Signed distance field generator ├── selection.rs # Text selection/cursor ├── shaper.rs # Text shaping (harfbuzz) ``` ## Using Fonts in DSL ### Text Style ```rust