Стили и макет Ziva
Интерфейс формируется с помощью Lip Gloss. Библиотека экспортирует готовые стили, которые можно использовать как есть или модифицировать.Готовые стили
lipgloss.Style
. Его можно клонировать и изменить под свои нужды:
FuncTask
или дополнительном выводе после очереди).
Настройка заголовка
Управление шириной
ziva.CalculateLayoutWidth()
помогает подобрать ширину вывода, чтобы контент выглядел аккуратно на разных размерах терминала.
Для расчёта
terminalWidth
можно использовать lipgloss.Width()
или github.com/muesli/termenv
. Если ширина неизвестна, Ziva использует значение по умолчанию.Дополнительные подсказки
- Используйте единый стиль для списков. Подсказки в
SingleSelectTask
иMultiSelectTask
проще читать, если продолжать одну цветовую схему. - Учитывайте переносы строк. Если нужно вывести длинное сообщение об ошибке, используйте
task.WithNewLinesInErrors(true)
на задачах, где доступен этот метод (через базовый интерфейс). - Локализуйте текст. Подписи берите из собственных словарей, а не меняйте стили ради перевода.
- Тестируйте на узких терминалах. Viewport в списковых задачах помогает избежать «ломающегося» интерфейса.
Создание собственных элементов
Вы можете добавить дополнительный вывод до или послеqueue.Run()
с использованием тех же стилей: