# Glyphs Vanilla Ui

> Queries Vanilla GUI library (schriftgestalt/vanilla fork) for Glyphs 3 plugin UI development. Use when building plugin UIs with windows, buttons, text fields, or lists, finding available Vanilla components, or looking up component APIs like Window, List2, or PopUpButton parameters.

- **Type:** Skill
- **Install:** `agentstack add skill-yintzuyuan-glyphs-reference-glyphs-vanilla-ui`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [yintzuyuan](https://agentstack.voostack.com/s/yintzuyuan)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [yintzuyuan](https://github.com/yintzuyuan)
- **Source:** https://github.com/yintzuyuan/glyphs-reference/tree/main/skills/glyphs-vanilla-ui
- **Website:** http://erikyin.net/glyphs-reference/

## Install

```sh
agentstack add skill-yintzuyuan-glyphs-reference-glyphs-vanilla-ui
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Vanilla GUI Library Skill

Query the Vanilla GUI library (schriftgestalt/vanilla fork) used by Glyphs 3 for building plugin UIs — windows, buttons, text fields, lists, and more.

> Run all scripts from this skill's base directory. Prepend the base directory path to `scripts/` when executing.

## Vanilla Path

```
${GLYPHS_VANILLA_PATH:-~/Library/Application Support/Glyphs 3/Repositories/vanilla/Lib/vanilla}
```

If `GLYPHS_VANILLA_PATH` is not set, try `GLYPHS_REPOSITORIES_PATH/vanilla/Lib/vanilla`, then the default path above.

## Quick Start: Browse All Components

Read `__init__.py` (≈107 lines) to see every exported class and which module it comes from:

```bash
Read $VANILLA/__init__.py
```

This shows all `from vanilla.moduleName import ClassName` lines — the complete component inventory.

## Quick Start: Read a Component

For multi-class files (vanillaWindows.py, vanillaList2.py, etc.), use the script to extract a single class:

```bash
python3 scripts/read_component.py Button                # Full: source + docstring + methods
python3 scripts/read_component.py Window --summary      # Summary: methods list (no source)
```

For single-class files (vanillaCheckBox.py, vanillaSlider.py, etc.), just Read directly:

```bash
Read $VANILLA/vanillaCheckBox.py
```

## Quick Start: Search Components

```bash
# Find a component by keyword
Grep "class.*Button" $VANILLA/

# Find all classes in a module
Grep "^class " $VANILLA/vanillaWindows.py

# Find usage of a specific method
Grep "def setTitle" $VANILLA/
```

## Quick Start: Official Documentation

Fetch component docs from the vanilla website:

```
WebFetch https://vanilla.robotools.dev/en/latest/objects/{ComponentName}.html
```

Replace `{ComponentName}` with the actual class name (e.g., `Button`, `Window`, `List2`).

## Glyphs-Specific Notes

### Palette Plugins Use Group, Not Window

Palette plugins receive a `Group` as their container — never create a `Window` inside a palette. Use `Group` with embedded controls.

### posSize Convention

All Vanilla components use `posSize = (left, top, width, height)`:
- Use `"auto"` for Auto Layout managed dimensions
- Negative values for `width`/`height` mean "from right/bottom edge"

### Auto Layout

Use `VerticalStackView` and `HorizontalStackView` for modern Auto Layout UIs instead of manual `posSize` positioning.

### GridView

`GridView` is conditionally imported (requires macOS 10.12+). It appears in a try/except block at the bottom of `__init__.py`.

## Common Workflow

1. **Find component** → `Read $VANILLA/__init__.py` to browse all exports
2. **Read API** → `python3 scripts/read_component.py ComponentName` for details
3. **Check docs** → `WebFetch https://vanilla.robotools.dev/en/latest/objects/ComponentName.html`
4. **Search patterns** → `Grep "pattern" $VANILLA/` for usage examples

## Reference

See [references/component-categories.md](references/component-categories.md) for categorized component guide.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [yintzuyuan](https://github.com/yintzuyuan)
- **Source:** [yintzuyuan/glyphs-reference](https://github.com/yintzuyuan/glyphs-reference)
- **License:** MIT
- **Homepage:** http://erikyin.net/glyphs-reference/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-yintzuyuan-glyphs-reference-glyphs-vanilla-ui
- Seller: https://agentstack.voostack.com/s/yintzuyuan
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
