Сучасний веб-редактор для створення, редагування, підрахунку та фізичного відтворення схем вишивки й плетіння бісером по клітинках із каталогом Preciosa Traditional Czech Beads.
Спробувати без встановлення: foxalastor.github.io/BeadsViewer
Застосунок повністю клієнтський (без бекенду) — усі дані малюнка автозберігаються локально в браузері через IndexedDB.
- Високопродуктивне Canvas 2D-полотно з viewport culling для великих схем.
- Реалістичний режим бісеру та квадратний режим сітки.
- Інструменти олівця, гумки, заливки, ліній, геометричних фігур, сердечка, піпетки, виділення та панорамування.
- Зум від 20% до 800%, undo/redo та зміна розміру полотна без втрати малюнка.
- Каталог Preciosa з пошуком, власними кольорами та імпортом JSON/CSV.
- Автозбереження в IndexedDB, ручне збереження
.beadsproj, XML-імпорт/експорт. - Підрахунок бісеру, список закупівлі та експорт CSV.
- Експорт схем у PNG/JPEG із сіткою, кодами кольорів і легендою.
Спочатку клонуй репозиторій і перейди в його теку — це потрібно незалежно від того, який варіант запуску оберете нижче:
git clone https://github.com/FoxAlastor/BeadsViewer.git
cd BeadsViewerПотрібні лише Docker і Docker Compose plugin (перевірити наявність: docker --version і docker compose version).
docker compose up --buildПісля запуску відкрийте http://localhost:8080.
Зупинити контейнер:
docker compose downКонтейнер збирає production-версію через Node.js, а потім роздає статичні файли через Nginx. Налаштування SPA fallback уже додане, тому оновлення сторінки працює коректно.
Потрібен Node.js 20+ та npm (перевірити наявність: node --version).
npm install
npm run devDev-сервер буде доступний за адресою http://localhost:3000.
Production-збірка (генерує статичні файли в dist/, які потім можна роздавати будь-яким веб-сервером):
npm run build
npm run previewТести:
npm testЯкщо
npm testзапускається в середовищі без локальногоtsx, npm може запропонувати завантажити його черезnpx. Для звичайної розробки це не впливає на Docker-збірку.
src/ React-компоненти, canvas-рендерер, алгоритми та утиліти
data/ Каталог кольорів Preciosa
tools/ Офлайн-утиліти обробки PDF-каталогу
docker/nginx.conf Nginx-конфіг для SPA
Dockerfile Multi-stage production image
compose.yaml Запуск застосунку через Docker Compose
test_suite.ts Перевірка алгоритмів і серіалізації
| Клавіша | Дія |
|---|---|
| B | Олівець |
| E | Гумка |
| G | Заливка |
| L | Лінія |
| I | Піпетка |
| M | Виділення прямокутником |
| D | Позначка «виконано» |
| H | Рука / панорамування |
| Space + ЛКМ | Панорамування полотна |
| Коліщатко миші | Зум із фокусом на курсор |
| Ctrl + Z | Undo |
| Ctrl + Y / Ctrl + Shift + Z | Redo |
| Ctrl + S | Зберегти проєкт |
| Ctrl + Plus / Minus / 0 | Змінити / скинути масштаб |
| Escape | Зняти виділення або фокус |