https://github.com/caldis/bobcorn
一个从SVG图标到字体生成的解决方案
https://github.com/caldis/bobcorn
color-editor design-tool desktop-app electron eot font-generator icon-font icon-management iconfont react svg svg-icons tailwindcss ttf typescript webfont woff woff2
Last synced: 2 months ago
JSON representation
一个从SVG图标到字体生成的解决方案
- Host: GitHub
- URL: https://github.com/caldis/bobcorn
- Owner: Caldis
- License: mit
- Created: 2017-06-30T09:10:48.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2026-03-27T16:51:31.000Z (3 months ago)
- Last Synced: 2026-03-28T01:27:49.848Z (3 months ago)
- Topics: color-editor, design-tool, desktop-app, electron, eot, font-generator, icon-font, icon-management, iconfont, react, svg, svg-icons, tailwindcss, ttf, typescript, webfont, woff, woff2
- Language: TypeScript
- Homepage: https://bobcorn.caldis.me
- Size: 13.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
Bobcorn
Open-source icon manager and icon font generator for Windows & macOS.
Import SVGs, organize icon libraries, edit colors, and generate production-ready icon fonts (SVG, TTF, WOFF, WOFF2, EOT) — all in one app.
Website · Download · Changelog
---
## What is Bobcorn?
Bobcorn is a free, open-source desktop application for **icon management** and **icon font generation**. It helps designers and front-end developers organize large SVG icon libraries and generate production-ready icon fonts in every major format.
**Who uses it:** Individual designers, front-end developers, and enterprise teams (including ZTE and Shopee) who need to build and maintain custom icon font systems.
**How it compares:** Unlike browser-based tools like IcoMoon, Bobcorn is a native desktop app that handles large libraries (3,000+ icons) with fast local processing. Unlike macOS-only tools like IconJar, Bobcorn runs on Windows and macOS, and generates icon fonts — not just icon organization.
## Features
### Icon Management
- **SVG import** — Drag-and-drop or file dialog, batch import from folders
- **Group organization** — Create, reorder, copy, and move icon groups
- **Search & filter** — Instantly find icons across your entire library
- **Inline color editor** — Hex picker, eyedropper, or any CSS color format with live preview
- **Scales to thousands** — Handles 3,000+ icons smoothly
### Icon Font Generation
- **One-click export** — Generate all font formats at once with real-time progress
- **Output formats** — SVG, TTF, WOFF, WOFF2, EOT font files
- **Web assets** — CSS (class & symbol), JS, and HTML demo page
- **Project files** — Save/reload `.icp` projects; exports include the project file automatically
### General
- **Cross-platform** — Windows, macOS (Intel & Apple Silicon)
- **Dark mode** — One-click toggle, persisted across sessions
- **Open source** — MIT licensed, free forever
## Download
| Platform | Format | Link |
|----------|--------|------|
| Windows | `.exe` installer | [Download](https://github.com/Caldis/bobcorn/releases/latest) |
| macOS (Apple Silicon) | `.dmg` arm64 | [Download](https://github.com/Caldis/bobcorn/releases/latest) |
| macOS (Intel) | `.dmg` x64 | [Download](https://github.com/Caldis/bobcorn/releases/latest) |
## Export Formats
| Format | Type | Description |
|--------|------|-------------|
| `.svg` | Font | SVG font file |
| `.ttf` | Font | TrueType font |
| `.woff` | Font | Web Open Font Format |
| `.woff2` | Font | WOFF2 (compressed, recommended for web) |
| `.eot` | Font | Embedded OpenType (IE compatibility) |
| `.css` | Web | Stylesheet with class names and unicode mappings |
| `.js` | Web | JavaScript icon definitions |
| `.html` | Web | Demo page with all icons and usage examples |
| `.icp` | Project | Bobcorn project file (save/restore full state) |
## Tech Stack
| Layer | Technology |
|-------|-----------|
| Runtime | Electron 28 |
| UI | React 18 + Radix UI + Tailwind CSS + lucide-react |
| State | Zustand |
| Build | electron-vite (Vite-based) |
| Database | sql.js (SQLite compiled to WASM) |
| Types | TypeScript 5 |
| Test | Vitest (unit) + Playwright (E2E) |
| Packaging | electron-builder |
## Development
### Prerequisites
- Node.js 18+ (recommend [fnm](https://github.com/Schniz/fnm))
- npm 8+
### Quick Start
```bash
# Install dependencies
npm install --legacy-peer-deps
# Start dev server with HMR
npx electron-vite dev
```
### Build & Test
```bash
# Production build
npx electron-vite build
# Run tests
npx vitest run # Unit tests
node test/e2e/acceptance.js # E2E acceptance (21 checks)
node test/e2e/full-e2e.js # Full E2E flow (15 steps)
```
### Package
```bash
npm run package # Current platform
npm run package-win # Windows
npm run package-all # All platforms
```
## Contributing Translations
Bobcorn supports internationalization (i18n). To add a new language:
1. Copy `src/locales/zh-CN.json` to `src/locales/.json`
2. Translate all values (do not change the keys)
3. Register the language in `src/locales/index.ts`:
- Import the new JSON file
- Add it to the `resources` object
- Add an entry to `supportedLanguages`
4. Submit a pull request
Missing translations will fall back to Chinese (zh-CN).
## License
MIT — see [LICENSE](LICENSE) for details.