Conversation
…history management
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
feat: local icon studio — browse, edit, and export SVGs
Description
Introduces
/.github/scripts/demo— a zero-build local web app for browsing, visualizing, and editing every icon in the registry. Runs on top of a small Node static server (demo-server.ts) and exposes three pages:Studio capabilities
W×Hmeasurement label; W/H fields in the properties panel also resize the selection.Ctrl/Cmd + wheelzoom (50%–2000%, exponential scaling).<path>or pressEnterto reveal draggable anchor dots at every vertex.H/Vcommands are normalized toLon parse so each anchor is fully independent (moving one no longer visually shifts its neighbors).V/R/O/L,Delete,Ctrl+D,Ctrl+C/V, arrow-nudge,Ctrl+]/Ctrl+[).noneandcurrentColor), and a preview-color chip (changes howcurrentColorrenders on the canvas without touching the source).Ctrl+Vreads the system clipboard when the internal one is empty, and dropping an.svgfile (or SVG text) onto the canvas imports every shape.nameandcategory, then POSTs to/api/savewhich writes<repo-root>/<category>/<name>.jsonin the repo format. Falls back to a browser download if the server can't write.Shell + design
outline: none, native chrome stripped, custom range thumb, custom select arrow, autofill override).Registry cleanup
<style>blocks and the leftover<g id="…-logo">wrappers from every brand SVG (193 files). Rendering is unchanged; the JSON is smaller and easier to edit.Checklist
.jsonicon files live in their category directory (brands/).brands.json/regular.jsonwere not manually edited — still driven by the existing GitHub Action.<style>and wrapping<g>removed)..github/scripts/and require no changes to consumers of the registry.How to try it
npm --prefix .github/scripts install # first time only npm --prefix .github/scripts run demoThen open http://localhost:5173/ (redirects to
/browse).Files at a glance
.github/scripts/demo-server.ts(routes +POST /api/save).github/scripts/demo/studio.html,demo/assets/js/studio.js(~1.8k lines).github/scripts/demo/browse.html,demo/assets/js/browse.js.github/scripts/demo/graph.html,demo/assets/js/graph.jsdemo/assets/js/data.js,demo/assets/js/shell.js.github/scripts/README.md, rootREADME.md(Preview Demo section)brands/*.json— 193 files, stripped of inline<style>and wrapping<g>Test plan
npm run demostarts the server;/browse,/studio,/graph, and/index.jsonall return 200.+ New Iconcreates a blank 48×48 SVG; Save to Repo writescustom/<name>.jsonto the working tree.Ctrl+Vwith an external SVG on the OS clipboard imports its shapes.Ctrl/Cmd + wheelzooms;Space + dragpans; right-click on the canvas does not open the browser context menu.mainin the Browse grid.