Modern Code Icons
Glassmorphism-inspired File Icon Themes for Visual Studio Code:
- Modern Code Icons — Glass (Subtle) → Apple-like, muted gradients, soft glow
- Modern Code Icons — Glass (Neon) → vibrant gradients, stronger glow, higher contrast
This extension is a File Icon Theme (declarative). VS Code reads a theme JSON file and maps file/folder associations to icons (SVG/PNG via iconPath). Source
Quick start
- Install the extension
- Open Command Palette → Preferences: File Icon Theme
- Select one:
- Modern Code Icons — Glass (Subtle)
- Modern Code Icons — Glass (Neon)
Highlights (30 real features)
- Two complete icon themes in one extension (Subtle + Neon)
- Dark + Light variants for every supported icon
- Default file icon fallback so every file always has an icon Source
- Default folder + expanded folder icons Source
- Folder semantics: distinct icons for open vs closed folders
- Special folder icons (open/closed):
src, test, .vscode, .github, config
- Languages: Rust (
.rs)
- Languages: Go (
.go)
- Languages: Python (
.py)
- Languages: Java (
.java + pom.xml)
- Languages: Kotlin (
.kt, .kts, build.gradle, build.gradle.kts)
- Languages: Swift (
.swift)
- Languages: PHP (
.php + composer.json)
- Languages: SQL (
.sql)
- Infra: Docker (
Dockerfile, docker-compose.yml|yaml, .dockerignore)
- Infra: Terraform (
.tf, .tfvars, .hcl)
- Terraform precision:
main.tf, variables.tf, outputs.tf
- Docs: Markdown (
.md, .mdx, README.md)
- Config:
.json, .yaml/.yml, .toml, .ini, .env
- Filename-level matching for high precision (strongest match type) Source
- Case-insensitive matching for file/folder associations (per VS Code rules) Source
- No runtime code: no activation events, no performance overhead
- No dependencies at runtime: just JSON + icons
- Deterministic icon ID conventions (
_file_*, _folder_*) to keep maintenance clean
- Schema-linked theme JSON for editor validation & completion
- Marketplace-safe extension icon: PNG (not SVG)
- Small package size via
.vscodeignore
- Offline-friendly: installable via
.vsix
- MIT license + changelog
- Includes Support guide (
SUPPORT.md) and clear contribution expectations
Note: A single icon set can’t be both “more subtle” and “more neon” at the same time—so you get two selectable variants.
Supported types (detail)
Languages
- Rust:
.rs
- Go:
.go
- Python:
.py
- Java:
.java, pom.xml
- Kotlin:
.kt, .kts, build.gradle, build.gradle.kts
- Swift:
.swift
- PHP:
.php, composer.json
- SQL:
.sql
Infra / DevOps
- Docker:
Dockerfile, docker-compose.yml, docker-compose.yaml, .dockerignore
- Terraform:
.tf, .tfvars, .hcl, main.tf, variables.tf, outputs.tf
Docs + Config
- Markdown:
.md, .mdx, README.md
- Config:
.json, .jsonc, .yaml, .yml, .toml, .ini, .env
Project layout
fileicons/
glass-subtle-icon-theme.json
glass-neon-icon-theme.json
icons/ # subtle assets
icons-neon/ # neon assets
assets/
marketplace-icon.png
Development
- Open the project folder in VS Code
- Press F5 to run an Extension Development Host
- Switch theme via Preferences: File Icon Theme
Packaging (VSIX)
npm i -g @vscode/vsce
vsce package
Install the .vsix:
- VS Code → Extensions →
... → Install from VSIX...
Publishing to the VS Code Marketplace
Publishing is done with vsce (VS Code Extension Manager). The official publishing guide explains publisher creation, PAT creation, and vsce commands. Source
Important publishing constraint: vsce won’t publish extensions that use SVG as the extension icon and has additional restrictions about untrusted SVGs in README/badges. Source
Steps
- Install tooling
npm i -g @vscode/vsce
Create an Azure DevOps Personal Access Token (PAT) with Marketplace (Manage) scope. Source
Create a publisher
- Update
package.json
- Set
"publisher": "<your-publisher-id>"
- Login and publish
vsce login <your-publisher-id>
vsce publish
License
MIT
| |