SHA256
UI v4: новый стиль по макету V3/V4 и доводка экранов
Палитра «Сияние» по умолчанию, новые роли цветов. Лента канала: плоские записи, ряд действий с равным шагом иконок, дата у записи. Обсуждение со строкой ввода, личный чат, шторки. Вход и регистрация: стартовый экран (надпись «СИЯНИЕ», сияние мандалы), настройки входа со статусами серверов, статус логина в одну строку, вход с другого устройства (код, таймер, шаги), сохранение ключей с переключателями. Корневые разделы – заголовок по центру; фильтр чатов – переключатель; уведомления – список как в чатах; фото – просмотр на весь экран. Общее: один зазор под шапкой (--page-top-gap), переключатели высотой с поле ввода, второстепенные кнопки по одной роли (в том числе на экранах устройств и серверов), иконки только из ui-icon.js, полоса прокрутки скрыта, среднее тире в текстах интерфейса. Что нужно от сервера и разработчика – docs/UI-Design/UI-v4-for-dev.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -34,26 +34,21 @@ export function render({navigate, chrome}) {
|
||||
screen.className = 'stack';
|
||||
let isDisposed = false;
|
||||
|
||||
chrome?.setTopbar(createTopBar({
|
||||
title: 'Настройки',
|
||||
back: { label: '←', onClick: () => navigate('profile-view') },
|
||||
}));
|
||||
const topbar = createTopBar({
|
||||
title: 'Настройки',
|
||||
back: { label: '←', onClick: () => navigate('profile-view') },
|
||||
});
|
||||
chrome?.setTopbar(topbar);
|
||||
|
||||
const logoButton = document.createElement('button');
|
||||
logoButton.type = 'button';
|
||||
logoButton.className = 'settings-shine-logo-button';
|
||||
logoButton.setAttribute('aria-label', 'Логотип Сияния');
|
||||
logoButton.title = 'SHiNE';
|
||||
logoButton.innerHTML = '<img class="settings-shine-logo" src="/img/shine-logo-transparent-final_big.png" alt="SHiNE" />';
|
||||
|
||||
let logoTapCount = 0;
|
||||
let lastLogoTapAt = 0;
|
||||
logoButton.addEventListener('click', () => {
|
||||
// Скрытый вход в «Дополнительные настройки»: пять быстрых нажатий на заголовок.
|
||||
let titleTapCount = 0;
|
||||
let lastTitleTapAt = 0;
|
||||
topbar.querySelector('.topbar__title')?.addEventListener('click', () => {
|
||||
const now = Date.now();
|
||||
logoTapCount = now - lastLogoTapAt <= 900 ? logoTapCount + 1 : 1;
|
||||
lastLogoTapAt = now;
|
||||
if (logoTapCount < 5) return;
|
||||
logoTapCount = 0;
|
||||
titleTapCount = now - lastTitleTapAt <= 900 ? titleTapCount + 1 : 1;
|
||||
lastTitleTapAt = now;
|
||||
if (titleTapCount < 5) return;
|
||||
titleTapCount = 0;
|
||||
navigate('advanced-settings-view');
|
||||
});
|
||||
|
||||
@@ -68,7 +63,7 @@ export function render({navigate, chrome}) {
|
||||
<button type="button" class="tab-btn" role="radio" data-mode="light">День</button>
|
||||
<button type="button" class="tab-btn" role="radio" data-mode="dark">Ночь</button>
|
||||
</div>
|
||||
<span class="meta-muted">«Авто» — как на устройстве.</span>
|
||||
<span class="meta-muted">«Авто» – как на устройстве.</span>
|
||||
<button type="button" class="secondary-btn settings-theme-editor" id="settings-theme-editor">Настроить цвета</button>
|
||||
</div>
|
||||
<div class="nav-list">
|
||||
@@ -137,7 +132,7 @@ export function render({navigate, chrome}) {
|
||||
}
|
||||
});
|
||||
|
||||
screen.append(logoButton, card);
|
||||
screen.append(card);
|
||||
|
||||
if (isDeveloperToolsEnabled()) {
|
||||
const versionCard = document.createElement('div');
|
||||
|
||||
Reference in New Issue
Block a user