mirror of
https://github.com/emilk/egui.git
synced 2026-06-26 22:53:14 -04:00
The `FontTweak` settings UI previously let you edit variable-font variation coordinates only via free-form tag + value entry — you had to *know* that e.g. `wght` exists and what range is valid. This PR queries the font's actual variation axes and pre-populates the UI. ### Changes - **`epaint`**: new `FontData::variation_axes() -> Vec<FontVariationAxis>` (skrifa-backed). Each `FontVariationAxis` exposes the axis `tag`, human-readable `name`, `min`/`default`/`max`, and `hidden`. Empty for static (non-variable) fonts. - **`egui`**: extracted the `FontTweak` body into a public `style::font_tweak_ui(ui, tweak, axes)`. When `axes` is non-empty, each axis is shown as a named **slider** pre-filled with the font's default and clamped to its valid range, with a ⟲ button to drop the override. `impl Widget for &mut FontTweak` still exists and delegates with no axes (free-form fallback, also used for unknown/manual tags). - The font settings panel (`Context::fonts_tweak_ui`) now passes `data.variation_axes()`. - UI label renamed `coords` → **Axes** (matching Google Fonts' terminology); the underlying `FontTweak.coords` field keeps the OpenType "design coordinates" name. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Example (Weight and Width): <img width="340" height="239" alt="Screenshot 2026-06-24 at 11 51 33" src="https://github.com/user-attachments/assets/f898289a-e329-453a-ba86-c60858901466" /> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>