This commit is contained in:
ayurishchev committed 2026-08-23 21:58:19 +03:00
1 parent ee2a29cb36
commit 4f597505cc
30 files changed
+830 -305

No files matched your search

+14 -12
View File
@@ -11,18 +11,20 @@
- Рендеринг полностью на сервере: `html/template` + [htmx](https://htmx.org)
(частичные обновления без перезагрузки страницы) +
[Alpine.js](https://alpinejs.dev) (точечная клиентская интерактивность) +
[Bootstrap 5](https://getbootstrap.com) (стабильная 5.3.x) для оформления
— компактные таблицы/формы/бейджи через `table-sm`/`*-sm`-утилиты и
плотную сетку, без кастомной вёрстки с нуля. Только CSS-часть Bootstrap:
JS-бандл (навигация-collapse/модалки/тултипы) не подключён — ничего из
этого дашборд не использует, подтверждения — через нативный
`hx-confirm`. Никакой сборки фронтенда нет — все библиотеки вендорены
как статические файлы (`internal/dashboard/static/vendor/`, см.
`VENDOR.md` там же) и встроены в бинарник через `//go:embed`. Дашборд
работает полностью офлайн — при открытии страницы браузер не делает ни
одного запроса за пределы самого дашборда (можно проверить через
DevTools → Network).
[Alpine.js](https://alpinejs.dev) (точечная клиентская интерактивность).
Оформление — собственная небольшая дизайн-система
(`internal/dashboard/static/dashboard.css`), не построена на готовом
CSS-фреймворке: боковая навигация, карточки-панели со скруглением и
мягкой тенью, статусы — пастельные «пилюли» (не Bootstrap-бейджи).
Шрифты — Manrope (интерфейс/заголовки) и IBM Plex Mono (IP-адреса,
таймстампы, числа — моноширинные для табличного выравнивания), с
кириллицей. Адаптивна: боковая панель на узких экранах уходит в
выдвижное меню, таблицы складываются в карточки. Никакой сборки
фронтенда нет — шрифты и JS-библиотеки вендорены как статические файлы
(`internal/dashboard/static/vendor/`, см. `VENDOR.md` там же) и встроены
в бинарник через `//go:embed`. Дашборд работает полностью офлайн — при
открытии страницы браузер не делает ни одного запроса за пределы самого
дашборда (можно проверить через DevTools → Network).
- Браузер никогда не видит JSON `control-api` напрямую: каждая страница и
каждый htmx-фрагмент — это HTML, отрендеренный Go-хендлером дашборда
после вызова `control-api`. CORS и reverse-proxy не нужны.