Transform VS Code with themes, icons, fonts, effects, and your own CSS/JS. Secure by design.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Stylesmith is a safe, high-performance styling engine for Visual Studio Code. It allows you to inject custom CSS and JavaScript directly into the editor UI without compromising VS Code's internal security boundaries.
Stylesmith operates by applying pure, functional transformations to VS Code's core workbench.html.檢視完整 README ↗One click for a complete look in VS Code and your terminal: a color theme, pixel file icons and editor settings that belong together, with a matching Nerd Font if you want one. One click to undo it.
Pick a preset, such as a green-phosphor terminal, a neon city at night or a calm blue-grey studio, and Stylesmith applies it through VS Code's own settings. It can install the matching Nerd Font for you after you confirm, and the optional Oh My Posh prompt and Vim color scheme give your terminal the same colors. Stylesmith: Disable puts your own theme, icons and settings back.
Every theme is checked for contrast and color blindness: contrast for text, syntax and markers, and simulated color blindness for errors, warnings, git and terminal colors (see the ergonomics page for exactly what is and isn't tested). By default, Problem Lens shows problems on their line with shapes and words, not color alone.
Stylesmith uses only VS Code's extension API. It does not modify VS Code installation files: it never injects CSS or JavaScript into the workbench or alters product.json. Glow, scanlines and other effects that need such changes aren't available.
editor.fontFamily and terminal.integrated.fontFamily settings. The selected Nerd Font family must be installed on your system: install it yourself, or let Stylesmith install it for your user account after you confirm (see Installing a font).Stylesmith does not load workspace-provided or remote CSS/JavaScript. It does not inspect project files or settings to decide what code to run. The extension only changes global user settings through VS Code's configuration API and stores reversible setting state in its extension storage. Its color themes, icon themes, and decorations use documented extension contributions and APIs.
As with any extension, installing Stylesmith means trusting its published extension code. The reduced scope does not make all extension code risk-free; review SECURITY.md and the source before enterprise deployment.
Choose a Stylesmith color theme, file icon theme or product icon theme from the normal VS Code selectors (Preferences: Product Icon Theme for the interface icons), click the Stylesmith status-bar button (or run Stylesmith: Show Menu), or run Stylesmith: Apply Preset… to choose a preset. Stylesmith: Enable applies the selected native settings; Stylesmith: Disable restores the settings Stylesmith manages, including the color theme and file icon theme a preset chose. These operations do not require a window reload.
Problem Lens runs independently and updates as diagnostics change. Configure it under stylesmith.problems. With stylesmith.problems.errorSignal on, the status bar briefly shows the new error count whenever it goes up. With stylesmith.terminal.failSignal on, it does the same when a command in the integrated terminal fails, showing its exit code; with stylesmith.terminal.doneSignal on, it briefly shows the duration when a command finishes after running for at least 10 seconds. Both terminal signals need VS Code's shell integration (on by default for bash, zsh, fish and PowerShell), and a command stopped with Ctrl+C doesn't count.
With stylesmith.undoHighlight on, the lines an undo changed are tinted for a moment. With stylesmith.pasteHighlight on, the lines a multi-line paste added are tinted the same way. Themes can change the tints with the stylesmith.undoHighlightBackground and stylesmith.pasteHighlightBackground colors.
With stylesmith.saveReceipt on, a manual save is noted at the end of the cursor's line for two seconds, like a terminal log: ▸ saved 14:02:11. Auto-saves get no note, and a Problem Lens message on the line takes precedence. Themes can change its color with stylesmith.saveReceiptForeground.
Run Stylesmith: Preset Gallery, or choose it in the Stylesmith menu, to see every preset inside VS Code before you apply one: a code sample in its theme's colors, its story, its file icon theme, its settings and its recommended font, with filter buttons for Dark, Light and High contrast, an Apply button, an inline Install button when its font isn't installed yet, and a Disable button. The gallery page loads nothing from outside and can only ask Stylesmith to apply a preset, install a known font after you confirm, or disable.
Run Stylesmith: Boot Sequence to see a short boot log typed out in a terminal tab, in the style of the active theme's preset (a memory check for Phosphor Terminal, a self-test for Amber Monitor, a shelter console for Vault); any key closes it. With workbench.reduceMotion set to on, the whole log appears at once.
Run Stylesmith: Digital Rain to watch characters fall down a terminal tab, in your theme's terminal greens; any key closes it. It draws only while its tab is the active terminal in a focused window. With workbench.reduceMotion set to on, it shows one still frame. Stylesmith can't read the system's reduced-motion preference, so set that setting if you want no animation.
A preset sets a color theme, a file icon theme for the Explorer, and native VS Code settings. It leaves VS Code's own interface icons (the Activity Bar's) alone; the Stylesmith Pixel product icon theme is there to choose yourself. Every color theme also works on its own. The Themes page shows each one.
Choosing a font that isn't installed in the Stylesmith menu, clicking Install on a card in Stylesmith: Preset Gallery, or running Stylesmith: Install Font…, offers to install it for your user account. Nothing is downloaded unless you choose Install in the confirmation dialog, which shows what is downloaded, from where, and where it goes.
%LOCALAPPDATA%\Microsoft\Windows\Fonts on Windows (registered under HKCU), ~/Library/Fonts on macOS, and ~/.local/share/fonts/stylesmith on Linux.All Stylesmith settings are global user settings. The font settings select a family name; that font must be installed on your system.
{
"stylesmith.fonts.enabled": false,
"stylesmith.fonts.family": "JetBrainsMono",
"stylesmith.effects.smoothCursor": true,
"stylesmith.effects.currentLine": true,
"stylesmith.effects.bracketGuides": true,
"stylesmith.effects.compactLayout": false,
"stylesmith.effects.blockCursor": false,
"stylesmith.effects.blockTerminalCursor": false,
"stylesmith.effects.dimUnfocused": false,
"stylesmith.effects.readableTerminal": false,
"stylesmith.effects.stickyScroll": false,
"stylesmith.effects.calmMinimap": false,
"stylesmith.problems.enabled": true,
"stylesmith.problems.minimumSeverity": "warning",
"stylesmith.problems.inlineMessages": true,
"stylesmith.problems.gutterIcons": true,
"stylesmith.problems.statusBar": true,
"stylesmith.problems.errorSignal": false,
"stylesmith.terminal.failSignal": false,
"stylesmith.terminal.doneSignal": false,
"stylesmith.statusbar": true,
"stylesmith.undoHighlight": false,
"stylesmith.pasteHighlight": false,
"stylesmith.saveReceipt": false
}
Stylesmith manages the following VS Code settings while enabled. Disable restores the saved value, unless the user changed that setting while Stylesmith was active; in that case, the newer user value is preserved. Stylesmith also keeps such a change when it re-applies its settings at startup or after a Stylesmith setting changes; running Stylesmith: Enable applies its values again.
| VS Code setting | Stylesmith option |
|---|---|
workbench.colorTheme, workbench.iconTheme | the preset you apply |
workbench.productIconTheme | Pixel product icons in the Stylesmith menu |
editor.fontFamily, terminal.integrated.fontFamily | stylesmith.fonts.enabled, stylesmith.fonts.family |
editor.cursorSmoothCaretAnimation, editor.cursorBlinking | stylesmith.effects.smoothCursor |
editor.renderLineHighlight | stylesmith.effects.currentLine |
editor.guides.bracketPairs | stylesmith.effects.bracketGuides |
window.density.layout | stylesmith.effects.compactLayout |
editor.cursorStyle | stylesmith.effects.blockCursor |
terminal.integrated.cursorStyle, terminal.integrated.cursorBlinking | stylesmith.effects.blockTerminalCursor |
accessibility.dimUnfocused.enabled | stylesmith.effects.dimUnfocused |
terminal.integrated.minimumContrastRatio | stylesmith.effects.readableTerminal |
editor.stickyScroll.enabled, terminal.integrated.stickyScroll.enabled | stylesmith.effects.stickyScroll |
editor.minimap.renderCharacters, editor.minimap.showSlider | stylesmith.effects.calmMinimap |
Settings that are not available in the installed VS Code version are skipped. Stylesmith writes user (global) settings only, so a workspace or folder value for the same setting takes precedence in that workspace.
Run Stylesmith: Disable before uninstalling Stylesmith. VS Code gives an uninstalled extension no way to change settings, so values it applied otherwise stay in your user settings.
npm install
npm run compile
npm test
npm run lint
The browser tests (npm run test:browser) need Playwright's headless Chromium, once per machine:
npx playwright-core install chromium-headless-shell
See SECURITY.md for the security boundary and recovery notes.
Stylesmith began as a fork of Custom CSS and JS Loader by Belleve Invis, whose MIT license also carries Roberto Huertas's copyright. Both notices are kept in LICENSE.txt.
Visual Studio Code is a trademark of Microsoft. Stylesmith is not affiliated with Microsoft. Theme and preset names and stories describe their inspiration in our own words and don't refer to any film, game or product.