Небольшое приложение на Vue + Vite для bingo-карточки во время трансляции Minecraft Live. Карточка генерируется случайно, хранится в localStorage и умеет быстро копировать текущий прогресс в буфер обмена.
- адаптивное поле 5x5 без развала логики бинго на мобильных экранах
- автосохранение состояния в браузере
- подсветка собранных линий и отметка отмеченных клеток галочкой
- кнопка для копирования текущего статуса карточки
- кнопка запуска конфетти
- деплой на GitHub Pages через GitHub Actions
- Vue 3
- Vite 5
- Bun
- Monocraft — пиксельный акцентный шрифт для подписей, кнопок и значений
(IdreesInc/Monocraft, SIL Open Font License 1.1), файл лежит в
assets/Monocraft.ttf - Manrope — основной шрифт интерфейса и текста клеток, подключён через Google Fonts в
index.html
cd путь-к-клону-репозитория
bun install
bun run devПриложение поднимется на http://localhost:5173.
bun run buildСайт публикуется на GitHub Pages по адресу https://bingo.ruina.team через workflow
.github/workflows/deploy.yml, который:
- устанавливает Bun
- собирает приложение
- публикует
distв GitHub Pages
public/CNAME— файл с доменомbingo.ruina.team, попадает в корень сборкиvite.config.js— читаетBASE_URLотactions/configure-pages: пустое значение (кастомный домен) превращается в/, а путь вида/repo— в base для project pagesindex.html—canonical, Open Graph иtwitter:cardс абсолютным адресом домена, картинка для превью лежит вpublic/og-image.webp- workflow не передаёт
static_site_generatorвconfigure-pages: конфиг Vite настраивается вручную, без автоправок со стороны экшена
-
Settings → Pages → Build and deployment → Source: выбрать
GitHub Actions. -
Settings → Pages → Custom domain: вписать
bingo.ruina.teamи сохранить. Для Actions-деплоя домен задаётся именно здесь: файлCNAMEв артефакте сам по себе домен не включает. -
Дождаться проверки DNS и включить Enforce HTTPS.
-
В DNS у домена
ruina.teamдобавить запись:Тип Имя Значение CNAME bingo<владелец-репозитория>.github.io. -
После первого успешного прогона workflow сайт открывается на
https://bingo.ruina.team.
- список событий карточки:
src/components/bingo/data/predictions.js - логика и интерфейс поля:
src/components/bingo/ - основная страница:
src/App.vue - токены шрифтов, цветов, радиусов и анимаций:
src/style.css
- добавить free space в центре карточки
- добавить режимы карточки под конкретный сезон или тему
- экспортировать результат в изображение
- добавить отдельный экран для совместной игры с общим seed