diff --git a/.kilo/skills/icon-jetbrains/SKILL.md b/.kilo/skills/icon-jetbrains/SKILL.md index 672536113a..563a376494 100644 --- a/.kilo/skills/icon-jetbrains/SKILL.md +++ b/.kilo/skills/icon-jetbrains/SKILL.md @@ -46,7 +46,7 @@ Two placements exist and both are valid — pick based on whether a Classic-UI i - **Only New UI needed** → put the SVG (and its `_dark` sibling) under an `expui//` resource root. Callers reference it directly through the plugin's generated `Icons` class. - **Replacing an existing Classic-UI icon** → keep the Classic file at its old path, put the New UI SVG under the matching `expui//` path, and add a mapping entry to the nearest `*IconMappings.json`. At runtime, when `ExperimentalUI.isNewUI()` is true, the mapper substitutes the New UI file for the Classic one so no caller has to change its icon reference. -Mapping-file shape (excerpt from `community/platform/icons/src/PlatformIconMappings.json`): +Mapping-file shape: ```json { @@ -115,7 +115,7 @@ Do not use plain `#000000` or off-the-palette grays. ## Generation workflow -1. **Pick the role and canvas size** from the table above. Find at least two visually similar siblings under `community/platform/icons/src/expui//` and read their SVG sources. Mirror their stroke/fill mix. +1. **Pick the role and canvas size** from the table above. For source lookup, follow the IntelliJ repository guidance in `packages/kilo-jetbrains/AGENTS.md`; use that AGENTS file alongside this skill when generating or reviewing plugin icons. Find at least two visually similar sibling icons and mirror their stroke/fill mix. 2. **Lay out geometry on the pixel grid** (whole-pixel fills, half-pixel stroke centers). Optical-center the glyph. 3. **Apply the canonical light palette** from [palette.md](./palette.md). Never invent colors. 4. **Save the light SVG** with the Apache 2.0 header, `width`/`height`/`viewBox` matching the role, and `fill="none"` on ``. @@ -139,5 +139,5 @@ Do not use plain `#000000` or off-the-palette grays. - [palette.md](./palette.md) — full color palette with light↔dark mapping. - [examples.md](./examples.md) — annotated SVG snippets for each icon role, copied from the live icon set. -- Canonical example tree: `community/platform/icons/src/expui/` — when reviewing, diff your new icon against a sibling there. +- `packages/kilo-jetbrains/AGENTS.md` — repository-specific JetBrains plugin constraints; use it together with this skill for icon work. - Repo-level `Icons guidelines.svg` is a design sheet (visual reference only; not machine-readable). When it disagrees with the folder, trust the folder. diff --git a/.kilo/skills/icon-jetbrains/examples.md b/.kilo/skills/icon-jetbrains/examples.md index 200c834652..c7384cb0ed 100644 --- a/.kilo/skills/icon-jetbrains/examples.md +++ b/.kilo/skills/icon-jetbrains/examples.md @@ -1,6 +1,6 @@ # Annotated New UI Icon Examples -Each example below is copied from `community/platform/icons/src/expui/`, paired with the dark variant and a short note on the pattern it represents. Use these as templates when generating new icons. +Each example below is paired with a dark variant and a short note on the pattern it represents. Use these as templates when generating new icons. --- diff --git a/.kilo/skills/icon-jetbrains/palette.md b/.kilo/skills/icon-jetbrains/palette.md index 249d16ac48..1ebdcaff3c 100644 --- a/.kilo/skills/icon-jetbrains/palette.md +++ b/.kilo/skills/icon-jetbrains/palette.md @@ -1,6 +1,6 @@ # New UI Icon Palette -Canonical color palette used by New UI icons. Empirically derived from a full scan of `community/platform/icons/src/expui/` (~2000 light + ~2000 dark SVGs). When picking colors, always pull from this table; the IntelliJ icon engine recolors by exact-string match, so a one-off hue will fail to theme. +Canonical color palette used by New UI icons. When picking colors, always pull from this table; the IntelliJ icon engine recolors by exact-string match, so a one-off hue will fail to theme. ## How to read the mapping diff --git a/packages/kilo-docs/pages/contributing/architecture/jetbrains-plugin.md b/packages/kilo-docs/pages/contributing/architecture/jetbrains-plugin.md index cc537bd4c9..8ad09a5237 100644 --- a/packages/kilo-docs/pages/contributing/architecture/jetbrains-plugin.md +++ b/packages/kilo-docs/pages/contributing/architecture/jetbrains-plugin.md @@ -126,6 +126,8 @@ Split mode changes path and UI assumptions: JetBrains Kotlin toolchain is Java 21. Gradle commands report missing or incompatible Java clearly; check Java only when diagnosing that failure mode. +For plugin icon creation, modification, or review, use the `icon-jetbrains` skill at `.kilo/skills/icon-jetbrains/SKILL.md` together with `packages/kilo-jetbrains/AGENTS.md`. The skill covers IntelliJ New UI SVG roles, sizing, palette, dark variants, and icon validation guidance. + | Check | Command from `packages/kilo-jetbrains/` | |---|---| | Typecheck | `./gradlew typecheck` | diff --git a/packages/kilo-jetbrains/AGENTS.md b/packages/kilo-jetbrains/AGENTS.md index 05a80bf50c..7b6cf8823d 100644 --- a/packages/kilo-jetbrains/AGENTS.md +++ b/packages/kilo-jetbrains/AGENTS.md @@ -574,6 +574,8 @@ child.align(HAlign.TRACK, VAlign.TRACK) // fill all available space ### Icons and SVG Assets +When creating, modifying, or reviewing JetBrains plugin icon assets, load and follow the `icon-jetbrains` skill in `.kilo/skills/icon-jetbrains/SKILL.md` for New UI SVG roles, sizing, palette, dark variants, and validation guidance. + Official references: - [IntelliJ Platform UI Guidelines](https://jetbrains.design/intellij/) - [User Interface Components](https://plugins.jetbrains.com/docs/intellij/user-interface-components.html)