- Одна приглушённая акцентная краска, скругления 4–6 px, плоские панели без теней - Свой набор векторных иконок вместо эмодзи-глифов (src/icons.rs) - Кнопки с иконкой, состояниями наведения и кольцом фокуса - Нейтральные монограммы вместо цветных аватаров Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
30 lines
2.5 KiB
Markdown
30 lines
2.5 KiB
Markdown
<!-- limit: 80 -->
|
||
# Решения
|
||
|
||
**egui/eframe вместо Tauri/Qt.** Чистый Rust, один бинарник, без WebView и Node; одинаково на Windows и Linux.
|
||
Рендер `glow` (OpenGL) — легче wgpu и быстрее собирается.
|
||
|
||
**Свой формат, а не .kdbx.** KDBX сложен (XML, много версий KDF/шифров). Свой формат — 60 байт заголовка
|
||
+ зашифрованный JSON, легко проверить. Импорт KDBX — отдельной задачей (см. PLAN).
|
||
|
||
**Argon2id 64 МиБ / 3 прохода / p=4.** Рекомендация OWASP-уровня, ~0.5 с на разблокировку.
|
||
Параметры пишутся в заголовок — можно усилить позже без смены формата.
|
||
|
||
**XChaCha20-Poly1305.** 24-байтный случайный nonce на каждое сохранение — без риска повтора.
|
||
Весь заголовок — AAD, подмена параметров ломает расшифровку.
|
||
|
||
**Синхронизация = файл в облачной папке.** Никакого своего сервера. Перед записью файл на диске
|
||
сливается с памятью; раз в 2 с проверяется внешнее изменение. Слияние — по записям, свежая побеждает,
|
||
старый пароль уходит в историю, удаления — через надгробия.
|
||
|
||
**Автосохранение после каждого изменения.** Нет кнопки «Сохранить» и риска забыть. Старая версия → `.qulyp.bak`.
|
||
|
||
**RustCrypto старых стабильных версий** (argon2 0.5, chacha20poly1305 0.10, hmac 0.12): новые мажорные
|
||
версии меняют API, а эти широко проверены.
|
||
|
||
**Язык интерфейса — русский.** Локализация — если понадобится.
|
||
|
||
**Строгий визуальный стиль.** Нейтрали делают работу, акцент (стальной синий) — только главная кнопка,
|
||
выделение, фокус и ссылки. Иконки рисуются вектором (`src/icons.rs`, сетка 16×16, одна толщина линии) —
|
||
шрифтовые эмодзи на разных системах выглядят по-разному.
|