From 5de420a3215e4cae818ab1d94a78c5353d008bcb Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Tue, 4 Aug 2026 18:35:39 +0200 Subject: [PATCH 1/2] docs(vscode): add icon authoring skill --- .kilo/skills/icon-vscode/SKILL.md | 53 +++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .kilo/skills/icon-vscode/SKILL.md diff --git a/.kilo/skills/icon-vscode/SKILL.md b/.kilo/skills/icon-vscode/SKILL.md new file mode 100644 index 00000000000..91f5abb1bb0 --- /dev/null +++ b/.kilo/skills/icon-vscode/SKILL.md @@ -0,0 +1,53 @@ +--- +name: icon-vscode +description: Create or review icons for Kilo's VS Code extension, webviews, and shared icon registry. +--- + +# VS Code Icons + +Use this skill for icon work in `packages/kilo-vscode/`, `packages/kilo-ui/`, and the shared `packages/ui/` icon registry. + +## Choose the icon system first + +| Surface | Use | Source of truth | Theme handling | +|---|---|---|---| +| VS Code commands, menus, and editor actions | Codicon, for example `$(add)` | `packages/kilo-vscode/package.json` | VS Code themes it | +| Activity bar and extension branding | Packaged asset | `packages/kilo-vscode/assets/icons/` | Provide light/dark assets when the contribution point supports them | +| Webview buttons and UI | `Icon` or `IconButton` from `@kilocode/kilo-ui` | `packages/kilo-ui/src/components/icon.tsx`, then `packages/ui/src/components/icon.tsx` | `currentColor` and the VS Code theme bridge | + +Do not draw a custom SVG when an appropriate Codicon or existing registry icon already exists. Do not use a webview icon directly in `package.json`, or a VS Code contribution icon directly in the webview. + +## Existing repository conventions + +- Search `packages/kilo-ui/src/components/icon.tsx` first for Kilo-only icons, then `packages/ui/src/components/icon.tsx` for shared icons. Use the existing kebab-case name and visual sibling before adding a new one. +- Webview icons are inline SVG path strings, not standalone files. They use `fill="currentColor"` or `stroke="currentColor"`; never add a light/dark duplicate or a literal palette for these icons. +- Standard registry icons use a `20 20` viewBox and render at 16px (`small`), 20px (`normal`), or 24px (`medium`/`large`). Use a `16 16` viewBox only when matching an existing small-grid sibling or a role that requires it. Do not paste a 16px path into a 20px canvas without rebalancing it. +- The extension's current brand assets are `kilo-light.svg`, `kilo-dark.svg`, `kilo-light.png`, `kilo-dark.png`, and `logo-outline-black.png`. The WOFF2 file is a packaged contribution font, not an editable icon source. +- Keep icon buttons accessible through their `label` or surrounding text. Registry icons are decorative by default. + +## Geometry rules + +1. Give each icon one clear semantic meaning. A small `+`, status mark, or active-state fill is an acceptable modifier. +2. Start from at least one existing sibling with the same role and match its `viewBox`, visual weight, caps, joins, and padding. +3. Keep meaningful geometry inside roughly `1..15` on a 16px canvas and `2..18` on a 20px canvas. Keep round-capped endpoints away from the edge so caps are not clipped. +4. Use path, rect, circle, line, polyline, and polygon geometry only. No raster images, gradients, filters, embedded fonts, or `