Skip to main content

add-icon

Add new icons to the GitLens GL Icons font

Source facts

Repository
gitkraken/vscode-gitlens
Last source activity
July 4, 2026 at 01:08
Detected SKILL.md language
English
Stars
9,941
Forks
1,809

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
add-icon
description
Add new icons to the GitLens GL Icons font
# /add-icon - Add GL Icon ## Usage ``` /add-icon [icon-name] ``` - `icon-name` — kebab-case (e.g., `my-new-icon`) ## Workflow ### 1. Add SVG File Place in `images/icons/{icon-name}.svg` Requirements: - Square viewBox (e.g., `viewBox="0 0 16 16"`) - Single color (fill controlled by CSS) - No embedded `<style>` tags or fonts - Use `fill="currentColor"` for color inheritance ### 2. Update Mapping Append to `images/icons/template/mapping.json`: ```json "icon-name": {next-available-code-point} ``` Code points are in the Private Use Area range (57344-63743). Check existing entries for next available. ### 3. Build ```bash pnpm run icons:svgo # Optimize SVGs pnpm run build:icons # Generate font (runs svgo + fantasticon + apply + export) ``` ### 4. Verify Font Cache-Busting `pnpm run build:icons` (via `scripts/applyIconsContribution.mjs`) now automatically propagates the new `glicons.woff2?{hash}` cache-bust hash into **both** `src/webviews/apps/shared/glicons.scss` **and** every per-app webview `*.html` file (each declares its own `@font-face`). No manual search-replace needed. Verify they're all unified (every reference must be the same hash): ```bash grep -rho "glicons.woff2?[a-f0-9]*" src/ dist/ | sort | uniq -c ``` If any HTML file lags behind, re-run `pnpm run build:icons` — a stale hash leaves that webview pointing at a cached font without the new glyph. ### 5. Use the Icon In Lit components (via the shared `<code-icon>` element, `src/webviews/apps/shared/components/code-icon.ts` — `gl-` prefix maps to the glicons font): ```typescript html`<code-icon icon="gl-my-new-icon"></code-icon>`; ``` In CSS: ```css .my-element::before { font-family: 'glicons'; content: '\{codepoint}'; } ``` ## Troubleshooting - **Icon not showing**: Check font URL is updated, verify code point in mapping.json, rebuild with `pnpm run build:icons` - **SVG issues**: Ensure single path/shape, remove `<style>` tags, use `fill="currentColor"`
View on GitHub