Skip to content

Commit c477adf

Browse files
authored
Merge pull request #42 from xscriptor/dev
Xscriptor Themes update
2 parents 54b39de + 3ef3446 commit c477adf

1,636 files changed

Lines changed: 18187 additions & 69 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ROADMAP.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
## Phase 1 · Repository foundation (already done) <!-- phase:foundation -->
22

3-
- [/] Consolidate monorepo structure with packages in `extensions/`, `themes/`, and `ui-mods/` (#5)
4-
- [/] Publish root documentation: `README.md`, `CONTRIBUTING.md`, `SECURITY.md`, `CODE_OF_CONDUCT.md`, `SUPPORT.md`, `CHANGELOG.md` (#6)
5-
- [/] Normalize package `README.md` files to GitHub-compatible HTML format (#7)
6-
- [/] Define initial visual identity and previews in `assets/` and theme folders (#8)
7-
- [/] Keep per-package licensing strategy (`MIT` for tooling and dedicated licenses for themes) (#9)
3+
- [x] Consolidate monorepo structure with packages in `extensions/`, `themes/`, and `ui-mods/` (#5)
4+
- [x] Publish root documentation: `README.md`, `CONTRIBUTING.md`, `SECURITY.md`, `CODE_OF_CONDUCT.md`, `SUPPORT.md`, `CHANGELOG.md` (#6)
5+
- [x] Normalize package `README.md` files to GitHub-compatible HTML format (#7)
6+
- [x] Define initial visual identity and previews in `assets/` and theme folders (#8)
7+
- [x] Keep per-package licensing strategy (`MIT` for tooling and dedicated licenses for themes) (#9)
88

99
## Phase 2 · Governance and automation <!-- phase:automation -->
1010

11-
- [ ] Integrate `xgh/github-roadmap-sync` into the main repo flow (`.github/scripts/sync_roadmap.py`) (#10)
12-
- [ ] Create `roadmap-sync.yml` workflow to sync `ROADMAP.md` with GitHub Issues (#11)
13-
- [ ] Define phase label convention and create baseline labels on GitHub (#12)
14-
- [ ] Run local `--dry-run` with authenticated `gh` and validate duplicate prevention (#13)
15-
- [ ] Document roadmap sync usage in root documentation (#14)
11+
- [x] Integrate `xgh/github-roadmap-sync` into the main repo flow (`.github/scripts/sync_roadmap.py`) (#10)
12+
- [x] Create `roadmap-sync.yml` workflow to sync `ROADMAP.md` with GitHub Issues (#11)
13+
- [x] Define phase label convention and create baseline labels on GitHub (#12)
14+
- [x] Run local `--dry-run` with authenticated `gh` and validate duplicate prevention (#13)
15+
- [x] Document roadmap sync usage in root documentation (#14)
1616

1717
## Phase 3 · Theme quality <!-- phase:themes-quality -->
1818

@@ -25,20 +25,20 @@
2525

2626
## Phase 4 · Versioning and releases <!-- phase:releases -->
2727

28-
- [ ] Define semantic versioning strategy for `xglass`, `x-dark-colors`, and `xscriptor-themes` (#21)
29-
- [ ] Bump version in `extensions/xglass/package.json` with matching changelog notes (#22)
30-
- [ ] Bump version in `themes/x-dark-colors/package.json` with matching changelog notes (#23)
31-
- [ ] Bump version in `themes/xscriptor-themes/package.json` with matching changelog notes (#24)
32-
- [ ] Standardize release notes per package (highlights, breaking changes, migrations) (#25)
33-
- [ ] Prepare pipeline/manual process to package `.vsix` for each package (#26)
28+
- [x] Define semantic versioning strategy for `xglass`, `x-dark-colors`, and `xscriptor-themes` (#21)
29+
- [x] Bump version in `extensions/xglass/package.json` with matching changelog notes (#22)
30+
- [x] Bump version in `themes/x-dark-colors/package.json` with matching changelog notes (#23)
31+
- [x] Bump version in `themes/xscriptor-themes/package.json` with matching changelog notes (#24)
32+
- [x] Standardize release notes per package (highlights, breaking changes, migrations) (#25)
33+
- [x] Prepare pipeline/manual process to package `.vsix` for each package (#26)
3434

3535
## Phase 5 · XGlass functional improvements <!-- phase:xglass-improvements -->
3636

37-
- [ ] Review `xglass.alpha` and `xglass.step` defaults based on real usage feedback (#27)
38-
- [ ] Add clearer validation and error messages for Linux/X11 environments (#28)
39-
- [ ] Improve behavior in compositors that ignore opacity (#29)
40-
- [ ] Review keybindings for potential conflicts with common shortcuts (#30)
41-
- [ ] Expand platform-specific troubleshooting documentation (#31)
37+
- [x] Review `xglass.alpha` and `xglass.step` defaults based on real usage feedback (#27)
38+
- [x] Add clearer validation and error messages for Linux/X11 environments (#28)
39+
- [x] Improve behavior in compositors that ignore opacity (#29)
40+
- [x] Review keybindings for potential conflicts with common shortcuts (#30)
41+
- [x] Expand platform-specific troubleshooting documentation (#31)
4242

4343
## Phase 6 · UI Mods and UX improvements <!-- phase:ui-mods -->
4444

themes/xscriptor-themes/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ All important modifications to this VSCode theme collection will be documented i
88
- Tokio theme: Fixed tab bar background color to match tab panel color (#191919 instead of #0a0a0a)
99
- Tokio & X themes: Refined tab styling with transparent borders and golden icon colors
1010

11+
### Changed
12+
- Rebuilt Product Icon Theme from scratch as `x` using a custom SVG set (16x16, filled shapes) with an integrated X marker on every glyph
13+
- Added local generation pipeline with Node + Fantasticon, plus HTML preview, and replaced previous default product icon theme mapping
14+
1115
## [1.1.0] - 2026-04-01
1216
### Added
1317
- Enhanced visual hierarchy with bracket pair guides (6 nesting levels) using palette colors

themes/xscriptor-themes/README.md

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -66,23 +66,11 @@
6666
</ol>
6767

6868
<ul>
69-
<li><code>Xscriptor Product Icons</code> (glyph variant)</li>
70-
<li><code>Xscriptor Product Icons Text (1 Letter)</code></li>
71-
<li><code>Xscriptor Product Icons Numbers</code></li>
69+
<li><code>x Product Icons</code> (glyph variant)</li>
7270
</ul>
7371

7472
<pre><code>{
75-
"workbench.productIconTheme": "xscriptor-product-icons"
76-
}
77-
</code></pre>
78-
79-
<pre><code>{
80-
"workbench.productIconTheme": "xscriptor-product-icons-text"
81-
}
82-
</code></pre>
83-
84-
<pre><code>{
85-
"workbench.productIconTheme": "xscriptor-product-icons-numbers"
73+
"workbench.productIconTheme": "x-product-icons"
8674
}
8775
</code></pre>
8876

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<h1>Product Icon Generation Guide</h1>
2+
3+
<p>
4+
This document explains how the Xscriptor Themes Product Icon Theme is generated,
5+
how the SVG source set is structured, and what to do if you need to rebuild the
6+
font and the theme files from scratch.
7+
</p>
8+
9+
<h2>Menu</h2>
10+
<ul>
11+
<li><a href="#overview">Overview</a></li>
12+
<li><a href="#source-model">Source Model</a></li>
13+
<li><a href="#build-pipeline">Build Pipeline</a></li>
14+
<li><a href="#rebuild-steps">Rebuild Steps</a></li>
15+
<li><a href="#output-artifacts">Output Artifacts</a></li>
16+
<li><a href="#notes">Notes</a></li>
17+
</ul>
18+
19+
<h2 id="overview">Overview</h2>
20+
<p>
21+
The repository generates a custom Product Icon Theme from codicon-inspired SVG
22+
sources. The build process keeps the icons single-color, converts them into a
23+
font, and writes a VS Code Product Icon Theme JSON file that maps each VS Code
24+
icon identifier to a glyph in that font.
25+
</p>
26+
27+
<h2 id="source-model">Source Model</h2>
28+
<p>
29+
The source icons live under <code>icons/product icons/svg-x-min/</code> and
30+
<code>icons/product icons/svg-x/</code>. Each SVG is built from the codicon
31+
source set and then customized with an X badge overlay. The SVGs are filled
32+
shapes, not stroked outlines, so they are compatible with font conversion.
33+
</p>
34+
<p>
35+
The current repository keeps the compact build as the shipped theme entry. The
36+
theme definition in <code>icons/x-min-product-icon-theme.json</code> is the one
37+
exposed through the extension manifest as <code>X</code>.
38+
</p>
39+
40+
<h2 id="build-pipeline">Build Pipeline</h2>
41+
<p>
42+
The generator is implemented in <code>icons/scripts/build-product-icons.mjs</code>.
43+
It does the following:
44+
</p>
45+
<ol>
46+
<li>Reads the codicon source SVG files from <code>@vscode/codicons</code>.</li>
47+
<li>Extracts the paths from each SVG and forces filled black geometry.</li>
48+
<li>Adds the custom X badge paths on top of the original icon shape.</li>
49+
<li>Writes SVG output into variant folders under <code>icons/product icons/</code>.</li>
50+
<li>Runs Fantasticon to convert the SVG set into WOFF fonts.</li>
51+
<li>Writes the Product Icon Theme JSON file with the generated code points.</li>
52+
</ol>
53+
54+
<h2 id="rebuild-steps">Rebuild Steps</h2>
55+
<p><strong>1. Install dependencies</strong></p>
56+
<pre><code>npm install</code></pre>
57+
58+
<p><strong>2. Regenerate the product icons</strong></p>
59+
<pre><code>npm run build:product-icons</code></pre>
60+
61+
<p><strong>3. Verify the output</strong></p>
62+
<p>
63+
After the build finishes, confirm that the expected WOFF files and JSON files
64+
exist in <code>icons/product icons/fonts/</code> and <code>icons/</code>.
65+
</p>
66+
67+
<h2 id="output-artifacts">Output Artifacts</h2>
68+
<ul>
69+
<li><code>icons/product icons/fonts/x-min.woff</code>: compact font build.</li>
70+
<li><code>icons/x-min-product-icon-theme.json</code>: Product Icon Theme mapped to the compact build.</li>
71+
<li><code>icons/product icons/svg-x-min/</code>: compact SVG source set.</li>
72+
<li><code>icons/product icons/preview-x-min.html</code>: compact preview page.</li>
73+
<li><code>icons/product icons/fonts/x.woff</code>: alternate generated font build.</li>
74+
<li><code>icons/x-product-icon-theme.json</code>: alternate Product Icon Theme JSON.</li>
75+
<li><code>icons/product icons/svg-x/</code>: alternate SVG source set.</li>
76+
<li><code>icons/product icons/preview-x.html</code>: alternate preview page.</li>
77+
</ul>
78+
79+
<h2 id="notes">Notes</h2>
80+
<ul>
81+
<li>VS Code Product Icon Themes are single-color glyph fonts.</li>
82+
<li>Font color is controlled by the active VS Code color theme.</li>
83+
<li>If icons appear stale, reload the window after rebuilding the font.</li>
84+
<li>If you want to ship a different build as the default, update the Product Icon Theme entry in <code>package.json</code> to point at the desired JSON file.</li>
85+
</ul>

0 commit comments

Comments
 (0)