[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81439":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":15,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":13,"lastSyncTime":34,"discoverSource":35},81439,"jsonforge","jfbedrock\u002Fjsonforge","jfbedrock","Visual JSON UI editor for Minecraft: Bedrock Edition.","http:\u002F\u002Fjsonforge.xrookiefight.com\u002F",null,"TypeScript",43,2,33,12,0,4,6,10,53.43,"MIT License",false,"master",true,[26,27,5,28,29,30],"bedrock","editor","jsonui","jsonuieditor","mojang","2026-06-12 04:01:33","\u003Cdiv align=\"center\">\n\n# JsonForge\n\n**Visual JSON UI editor for Minecraft: Bedrock Edition.**\n\n\u003Cimg src=\".github\u002Fshowcase.png\">\n\n\u003Csub>Web + Electron · MIT licensed · open source\u003C\u002Fsub>\n\n![CI](https:\u002F\u002Fgithub.com\u002Fjfbedrock\u002Fjsonforge\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)\n![Release](https:\u002F\u002Fgithub.com\u002Fjfbedrock\u002Fjsonforge\u002Factions\u002Fworkflows\u002Frelease.yml\u002Fbadge.svg)\n![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fjfbedrock\u002Fjsonforge)\n![Node](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fnode-%3E%3D20-339933)\n\n\u003C\u002Fdiv>\n\n---\n\n## What it is\n\nJsonForge is a visual editor that lets you build Minecraft Bedrock JSON UI\nscreens with a dockable interface - drag elements onto a\ncanvas, tweak properties, drop in textures, export valid JSON UI for your\nresource pack. It runs in any modern browser **and** as a native desktop\napplication via Electron, from a single codebase.\n\n## Features\n\n- **10 element types** out of the box - `panel`, `stack_panel`,\n  `collection_panel`, `scrolling_panel`, `image`, `label`, `button`,\n  `input_panel`, `toggle`, `custom`.\n- **Dock layout** (react-mosaic) - Toolbox, Hierarchy,\n  Canvas, Properties, Textures, Bindings, JSON Preview, History panels.\n  Drag splitters to resize, drag tabs to rearrange.\n- **Live, pixel-perfect canvas** - every element renders with\n  `image-rendering: pixelated`, nine-slice via CSS `border-image`, real\n  anchors. Edit\u002FPreview toggle hides editor decorations to match the\n  in-game look.\n- **Welcome screen** - Template gallery and\n  Recent Projects on startup.\n- **`.jfproject` bundled format** - one file that contains the element tree,\n  bindings, and all textures (base64). The installer registers the\n  extension and double-clicking opens JsonForge.\n- **Drag-and-drop textures** from the Textures panel onto image elements or\n  property fields.\n- **Bindings editor** per element (`global`, `view`, `collection`,\n  `collection_details`, `none`).\n- **Undo \u002F Redo** command history.\n- **Native installer** on Windows (NSIS + portable), macOS (DMG), Linux\n  (AppImage + deb). Desktop and Start Menu shortcuts.\n\n## Quick start\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fjfbedrock\u002Fjsonforge\ncd jsonforge\nnpm install\n\nnpm run dev               # web at http:\u002F\u002Flocalhost:5173\nnpm run dev:electron      # desktop window\n```\n\n## Build\n\n```bash\nnpm run build             # static web bundle in dist\u002F\nnpm run build:electron    # bundles desktop installer in installer\u002F\n```\n\nOutputs land in `installer\u002F` (NSIS setup, portable .exe, DMG, AppImage, deb).\n\n## File formats\n\n| Extension     | Purpose                                                        |\n| ------------- | -------------------------------------------------------------- |\n| `.jfproject`  | Bundled project (tree + bindings + textures). Use this format. |\n| `.json`       | Raw Minecraft Bedrock JSON UI - import \u002F export.               |\n\nThe installer registers `.jfproject` with JsonForge automatically.\n\n## Keyboard\n\n| Combo                            | Action            |\n| -------------------------------- | ----------------- |\n| `Ctrl\u002FCmd+N`                     | New project       |\n| `Ctrl\u002FCmd+O`                     | Open `.jfproject` |\n| `Ctrl\u002FCmd+S`                     | Save `.jfproject` |\n| `Ctrl\u002FCmd+Z`                     | Undo              |\n| `Ctrl\u002FCmd+Shift+Z`               | Redo              |\n| `Ctrl\u002FCmd+D`                     | Duplicate         |\n| `Delete` \u002F `Backspace`           | Delete selection  |\n| Wheel                            | Zoom toward cursor |\n| Drag empty canvas \u002F Alt+drag \u002F\u003Cbr\u002F>middle-click \u002F right-click \u002F Space+drag | Pan canvas |\n\n## Architecture\n\nTwo-layer service-oriented OOP (no inline business logic in entry points):\n\n```\nsrc\u002Fcore\u002F\n├── base\u002F         Service + ServiceRegistry + Module + ModuleMapping\n├── di\u002F           Container\n├── event\u002F        EventBus\n├── element\u002F      ElementType base + 10 concrete impls + ElementRegistry\n├── property\u002F     PropertyType + PropertySchema + CommonProperties\n├── io\u002F           JsonUiExporter, JsonUiImporter, ProjectSerializer, JfProjectFormat\n└── services\u002F     Platform, Persistence (IndexedDB), Project, Selection,\n                  History, Texture, Binding, Preset, Keyboard, File, AutoSave\n\nsrc\u002Fplatform\u002F    PlatformBridge interface + Web + Electron implementations\nsrc\u002Fstate\u002F       Zustand stores (editor, project)\nsrc\u002Fui\u002F\n├── layout\u002F      MenuBar, StatusBar, DockLayout\n├── panels\u002F      Toolbox, Hierarchy, Canvas, Properties, Textures,\n│                Bindings, JsonPreview, History\n├── canvas\u002F      anchorMath, ElementRenderer, SelectionOverlay\n├── properties\u002F  PropertyField router + 10 typed fields\n├── modals\u002F      ModalShell, NewProject, Settings, About\n├── welcome\u002F     WelcomeScreen (sidebar + templates + recents)\n└── icons\u002F       Lucide icon registry per element type\n\nelectron\u002F\n├── main.ts      BrowserWindow, single-instance, file-association\n└── preload.ts   Exposes window.jsonforge contextBridge\n\nbuild\u002Ficons\u002F    Platform icon resources (consumed by electron-builder)\ninstaller\u002F      Generated installers (gitignored except README)\n```\n\n### Adding a new element type\n\n1. Implement `ElementType` in `src\u002Fcore\u002Felement\u002Fimpl\u002FMyElement.ts`. Return\n   metadata, override `schema()` to declare properties.\n2. Register in `src\u002Fcore\u002Felement\u002FElementBootstrap.ts`.\n3. Optionally add an icon in `src\u002Fui\u002Ficons\u002FelementIcons.ts`.\n\nToolbox, Hierarchy, exporter, and property panel pick it up automatically.\n\n### Adding a new service\n\n1. Extend `Service` in `src\u002Fcore\u002Fservices\u002FMyService.ts`, set `getPriority()`.\n2. Append to `Container.boot([...])` in `src\u002Fmain.tsx`.\n\nLifecycle (`onLoad` → `onEnable` → `onDisable`) runs in priority order.\n\n## Contributing\n\nSee [CONTRIBUTING.md](.\u002FCONTRIBUTING.md). Bug reports and PRs welcome.\n\nFor security issues, see [SECURITY.md](.\u002FSECURITY.md) - do **not** open a\npublic issue.\n\n## Acknowledgements\n\n- [react-mosaic-component](https:\u002F\u002Fgithub.com\u002Fnomcopter\u002Freact-mosaic) - dock layout\n- [Monaco Editor](https:\u002F\u002Fmicrosoft.github.io\u002Fmonaco-editor\u002F) - JSON preview\n- [lucide-react](https:\u002F\u002Flucide.dev) - icons\n- [zustand](https:\u002F\u002Fgithub.com\u002Fpmndrs\u002Fzustand) - state\n- [Minecraft Bedrock](https:\u002F\u002Fwww.minecraft.net\u002F) (lol i know) - JSON UI target format\n- Inspired by [SebTheSigma\u002FJSON-UI-Maker](https:\u002F\u002Fgithub.com\u002FSebTheSigma\u002FJSON-UI-Maker)\n  and [Blockbench](https:\u002F\u002Fwww.blockbench.net\u002F).\n\n## License\n\n[MIT](.\u002FLICENSE) © 2026 JsonForge Developer Team \n","JsonForge 是一个为 Minecraft: Bedrock Edition 设计的可视化 JSON UI 编辑器。它提供了10种基础元素类型，如面板、按钮等，并支持拖拽布局调整与像素级精确画布渲染，使得用户能够通过简单的拖放操作创建复杂的用户界面。此外，该工具还具备实时预览、项目模板库、历史记录回溯等功能，且能以单一代码库同时作为网页应用和桌面应用程序运行。JsonForge 适合于 Minecraft 床岩版游戏开发者或爱好者用于快速构建资源包中的UI界面。","2026-06-11 04:05:03","CREATED_QUERY"]