feat(ui): frameless transparent window with drag

This commit is contained in:
2026-08-25 18:05:12 +05:00
parent 26ac5e6003
commit e336cf7e86
8 changed files with 104 additions and 38 deletions
+20 -10
View File
@@ -12,16 +12,26 @@
- GUI: [Slint](https://slint.dev/) (Native-speed, Declarative UI)
- Запуск процессов: std::process::Command
## 🏗 План на выходные (MVP)
## 📊 Текущий статус
- Настройка проекта: Инициализация cargo и установка зависимостей Slint.
- Верстка UI: Создать чистое окно с кнопками установленных браузеров (Firefox, Chrome, Edge и т.д.).
- Логика запуска: Реализовать передачу URL из аргументов командной строки в выбранный браузер.
- Регистрация в системе: Написать скрипт/инструкцию, как сделать приложение браузером по умолчанию.
- Frameless-окно с прозрачным фоном: карточка парит над рабочим столом со скруглёнными углами
- Тёмная и светлая темы (переключение кнопкой, env `BP_THEME=light`)
- Перетаскивание окна за хедер, Esc — закрыть, центрирование при старте
- Дизайн-макеты: [refs/dark.html](refs/dark.html) / [refs/light.html](refs/light.html)
## 📝 Заметки для реализации
## 🔧 Разработка
- Использовать no-frame: true в Slint для кастомного дизайна окна.
- Для иконок браузеров использовать формат SVG (Slint отлично их рендерит).
- Конфигурацию путей к браузерам вынести в простой config.toml (в будущем).
- загружать конфигурацию браузера из ярлыка
План работ и цикл визуальной разработки с ИИ-агентом — [docs/dev-workflow.md](docs/dev-workflow.md).
```powershell
cargo run # запуск
tools/render-refs.ps1 # PNG-референсы из макетов
tools/run-and-shot.ps1 # собрать, снять скриншот окна
tools/run-and-shot.ps1 -Light # то же в светлой теме
```
## 🗺 Дорожная карта
1. Список браузеров с логотипами, запуск выбранного браузера с URL (MVP)
2. Регистрация в системе как браузер по умолчанию
3. config.toml + страница настроек