Pierre Icons is an icon theme plugin (from: https://github.com/pierrecomputer/vscode-icons) for Acode that maps file names and extensions to themed SVG icons.
The plugin ships with 3 selectable themes:
- Complete: largest icon coverage, includes framework/tooling icons and colored variants.
- Default: balanced set, built from Minimal + Default theme configs.
- Minimal: core file/folder and common file types.
Theme source files:
Generated outputs:
The repository includes:
- Source SVG assets.
- Theme configuration files by tier.
- Build scripts that generate processed icon files and theme JSON.
- Plugin runtime logic for icon-class resolution and style generation.
Install dependencies:
npm installGenerate icon assets + theme JSON:
npm run build:iconsBundle plugin and create zip:
npm run buildAvailable scripts are defined in package.json.
Most icons and mappings are synced from the upstream vscode-icons project: https://github.com/pierrecomputer/vscode-icons
Recommended workflow:
- Add or update SVGs in
svgs/. For duo-tone icons, useclass="bg"andclass="fg"on paths. - Add an entry to the appropriate tier array in
scripts/build-icon-theme.mjs:
// Single color
{ name: "react", color: color(palette.cyan), fileExtensions: ["jsx", "tsx"] }
// Dual color (fg + bg)
{ name: "lang-python", color: duoColor(palette.blue, palette.yellow), fileExtensions: ["py"] }
// Monochrome (no color property)
{ name: "font", fileExtensions: ["ttf", "otf", "woff", "woff2"] }- Run
npm run build:icons.
Modes are generated during theme build from fileNames mappings.
How it works:
- Build script groups fileNames by icon name and emits theme.modes in generated JSON.
- Runtime resolves filename using modes first, then extension fallback.
- This allows filename-specific classes such as file_type_npm for package.json.
Relevant files:
Generated mode format (example):
{
"modes": {
"npm": {
"fileNames": {
"package.json": "npm",
"package-lock.json": "npm"
}
}
}
}To keep this project healthy over time:
- Sync icon additions and mapping updates from upstream vscode-icons regularly.
- Keep naming consistent between svgs filenames and theme config name values.
- Rebuild assets after every icon/theme change with
npm run build:icons. - Validate generated JSON outputs in icons before release.
- Build and test packaged output with npm run build.
- Keep color and palette logic centralized in scripts/palette.mjs.
- Run SVGO through the existing build path instead of manually editing generated icons in icons.
Release checklist:
- Run npm run build:icons.
- Run npm run build.
- Confirm plugin.zip is generated.
- Smoke-test theme switching inside Acode.
Plugin's Icon is from https://github.com/pierrecomputer , Only used for representation purposes (I hold no direct legal rights to their Icon).
The Project uses MIT License.
- Plugin's Icon is from https://github.com/pierrecomputer , Only used for representation purposes (I hold no direct legal rights to their Icon).
- SEBASTIAN JN https://github.com/sebastianjnuwu for their reusable iconCSSStyleBlock function.
- https://github.com/pierrecomputer & It's contributors for Icons, Svg building scripts, Color system, theme config/structures.