SHA256
Compare commits
2
Commits
60c8a6608a
...
0f30317bb4
| Author | SHA256 | Date | |
|---|---|---|---|
|
|
0f30317bb4 | ||
|
|
1f1bc0a7b9 |
@@ -1217,7 +1217,6 @@ function renderListContent({ screen, container, listState, navigate, refreshFeed
|
|||||||
|
|
||||||
const main = renderChannelMain(channel);
|
const main = renderChannelMain(channel);
|
||||||
|
|
||||||
const isGuest = !state.session.isAuthorized;
|
|
||||||
const controls = document.createElement('div');
|
const controls = document.createElement('div');
|
||||||
controls.className = 'channel-row-controls';
|
controls.className = 'channel-row-controls';
|
||||||
|
|
||||||
@@ -1228,37 +1227,10 @@ function renderListContent({ screen, container, listState, navigate, refreshFeed
|
|||||||
const count = document.createElement('span');
|
const count = document.createElement('span');
|
||||||
count.className = 'unread channel-row-count';
|
count.className = 'unread channel-row-count';
|
||||||
const unreadCount = Number(channel.unreadCount || 0);
|
const unreadCount = Number(channel.unreadCount || 0);
|
||||||
|
count.hidden = unreadCount <= 0;
|
||||||
count.textContent = unreadCount > 0 ? String(unreadCount) : '';
|
count.textContent = unreadCount > 0 ? String(unreadCount) : '';
|
||||||
count.classList.toggle('is-empty', unreadCount <= 0);
|
count.classList.toggle('is-empty', unreadCount <= 0);
|
||||||
|
|
||||||
if (!isGuest) {
|
|
||||||
const menuButton = document.createElement('button');
|
|
||||||
menuButton.type = 'button';
|
|
||||||
menuButton.className = 'channel-menu-trigger';
|
|
||||||
menuButton.append(createOverflowDots());
|
|
||||||
menuButton.addEventListener('click', (event) => {
|
|
||||||
event.stopPropagation();
|
|
||||||
animatePress(menuButton);
|
|
||||||
listState.revealedCounters.add(channel.id);
|
|
||||||
|
|
||||||
if (listState.openMenuId === channel.id) {
|
|
||||||
closeChannelMenu(listState);
|
|
||||||
rerenderList();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
listState.openMenuId = channel.id;
|
|
||||||
openChannelMenu({
|
|
||||||
listState,
|
|
||||||
channel,
|
|
||||||
anchorEl: menuButton,
|
|
||||||
refreshFeed: async () => loadFeedAndRender({ screen, listState, contentEl: container, navigate }),
|
|
||||||
rerenderList,
|
|
||||||
});
|
|
||||||
rerenderList();
|
|
||||||
});
|
|
||||||
controls.append(menuButton);
|
|
||||||
}
|
|
||||||
controls.append(time, count);
|
controls.append(time, count);
|
||||||
|
|
||||||
row.append(avatar, main, controls);
|
row.append(avatar, main, controls);
|
||||||
|
|||||||
@@ -4197,8 +4197,25 @@ textarea.input {
|
|||||||
.channel-row-count {
|
.channel-row-count {
|
||||||
min-width: 28px;
|
min-width: 28px;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
background: linear-gradient(140deg, rgba(223, 186, 98, 0.95), rgba(199, 155, 75, 0.95));
|
background: linear-gradient(180deg, #57b6ff 0%, #2a86ff 100%);
|
||||||
color: #17203a;
|
color: #ffffff;
|
||||||
|
box-shadow:
|
||||||
|
0 0 0 1px rgba(255, 255, 255, 0.08) inset,
|
||||||
|
0 0 10px rgba(52, 146, 255, 0.68),
|
||||||
|
0 0 18px rgba(52, 146, 255, 0.32);
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.channels-screen--list .channel-row-count {
|
||||||
|
grid-row: 1;
|
||||||
|
align-self: start;
|
||||||
|
justify-self: end;
|
||||||
|
}
|
||||||
|
|
||||||
|
.channels-screen--list .channel-row-count[hidden] {
|
||||||
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.channels-bottom-action {
|
.channels-bottom-action {
|
||||||
@@ -5227,6 +5244,14 @@ textarea.input {
|
|||||||
justify-items: end;
|
justify-items: end;
|
||||||
align-content: start;
|
align-content: start;
|
||||||
gap: 6px;
|
gap: 6px;
|
||||||
|
position: relative;
|
||||||
|
min-width: 44px;
|
||||||
|
grid-template-rows: auto auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.channels-screen--list .channel-row-time {
|
||||||
|
grid-row: 2;
|
||||||
|
align-self: end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.channel-menu-trigger {
|
.channel-menu-trigger {
|
||||||
@@ -9172,32 +9197,6 @@ body.chat-topbar-overlay .app-shell.keyboard-open .scroll-to-bottom-btn {
|
|||||||
margin-left: 48px;
|
margin-left: 48px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Троеточие внутри строки канала использует тот же чистый overflow-стиль:
|
|
||||||
* без рамки/подложки, белые точки с мягким голубым свечением. */
|
|
||||||
.channels-screen--list .channel-menu-trigger {
|
|
||||||
width: 34px;
|
|
||||||
height: 34px;
|
|
||||||
min-width: 34px;
|
|
||||||
min-height: 34px;
|
|
||||||
padding: 0;
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
border: 0;
|
|
||||||
border-radius: 0;
|
|
||||||
background: transparent;
|
|
||||||
box-shadow: none;
|
|
||||||
color: var(--app-topbar-gold);
|
|
||||||
text-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.channels-screen--list .channel-menu-trigger .app-overflow-dots i {
|
|
||||||
background: var(--app-topbar-gold);
|
|
||||||
box-shadow:
|
|
||||||
0 0 5px var(--app-topbar-blue-glow),
|
|
||||||
0 0 10px var(--app-topbar-blue-glow-soft);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Название канала и техническая строка (login / channel) — одна типографическая
|
/* Название канала и техническая строка (login / channel) — одна типографическая
|
||||||
* система с основным интерфейсом: белый текст + голубое свечение. */
|
* система с основным интерфейсом: белый текст + голубое свечение. */
|
||||||
.channels-screen--list .channel-row-title,
|
.channels-screen--list .channel-row-title,
|
||||||
@@ -9213,76 +9212,32 @@ body.chat-topbar-overlay .app-shell.keyboard-open .scroll-to-bottom-btn {
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===== Channels: final overflow + unread polish (2026-08-22 13:34) ===== */
|
|
||||||
/* Внутреннее троеточие карточки канала должно выглядеть ровно как остальные
|
|
||||||
* overflow-кнопки интерфейса. Более высокая специфичность намеренно перекрывает
|
|
||||||
* старые локальные стили .channel-menu-trigger. */
|
|
||||||
.channels-screen--list .channel-row .channel-row-controls > button.channel-menu-trigger {
|
|
||||||
width: 40px !important;
|
|
||||||
height: 40px !important;
|
|
||||||
min-width: 40px !important;
|
|
||||||
min-height: 40px !important;
|
|
||||||
margin: 0 !important;
|
|
||||||
padding: 0 !important;
|
|
||||||
border: 0 !important;
|
|
||||||
border-radius: 0 !important;
|
|
||||||
outline: 0 !important;
|
|
||||||
background: transparent !important;
|
|
||||||
box-shadow: none !important;
|
|
||||||
color: #F7FBFF !important;
|
|
||||||
display: inline-flex !important;
|
|
||||||
align-items: center !important;
|
|
||||||
justify-content: center !important;
|
|
||||||
font: inherit !important;
|
|
||||||
line-height: 1 !important;
|
|
||||||
appearance: none !important;
|
|
||||||
-webkit-appearance: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.channels-screen--list .channel-row .channel-row-controls > button.channel-menu-trigger:hover,
|
|
||||||
.channels-screen--list .channel-row .channel-row-controls > button.channel-menu-trigger:focus,
|
|
||||||
.channels-screen--list .channel-row .channel-row-controls > button.channel-menu-trigger:focus-visible,
|
|
||||||
.channels-screen--list .channel-row .channel-row-controls > button.channel-menu-trigger:active {
|
|
||||||
border: 0 !important;
|
|
||||||
outline: 0 !important;
|
|
||||||
background: transparent !important;
|
|
||||||
box-shadow: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.channels-screen--list .channel-row .channel-menu-trigger > .app-overflow-dots {
|
|
||||||
width: 8px !important;
|
|
||||||
height: 24px !important;
|
|
||||||
margin: 0 !important;
|
|
||||||
color: #F7FBFF !important;
|
|
||||||
filter:
|
|
||||||
drop-shadow(0 0 3px rgba(92, 190, 255, 0.72))
|
|
||||||
drop-shadow(0 0 7px rgba(72, 145, 255, 0.34));
|
|
||||||
}
|
|
||||||
|
|
||||||
.channels-screen--list .channel-row .channel-menu-trigger > .app-overflow-dots > i {
|
|
||||||
width: 4px !important;
|
|
||||||
height: 4px !important;
|
|
||||||
flex-basis: 4px !important;
|
|
||||||
border: 0 !important;
|
|
||||||
background: #F7FBFF !important;
|
|
||||||
box-shadow: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Счётчик непрочитанных: без видимой границы. Сам овал — светящийся синий объём,
|
/* Счётчик непрочитанных: без видимой границы. Сам овал — светящийся синий объём,
|
||||||
* цифра остаётся обычной белой. */
|
* цифра остаётся обычной белой. */
|
||||||
.channels-screen--list .channel-row-count,
|
.channels-screen--list .channel-row-count,
|
||||||
.channels-screen--list .unread.channel-row-count {
|
.channels-screen--list .unread.channel-row-count {
|
||||||
border: 0 !important;
|
border: 0 !important;
|
||||||
outline: 0 !important;
|
outline: 0 !important;
|
||||||
background: rgba(74, 169, 255, 0.36) !important;
|
background: linear-gradient(180deg, #57b6ff 0%, #2a86ff 100%) !important;
|
||||||
color: #FFFFFF !important;
|
color: #FFFFFF !important;
|
||||||
box-shadow:
|
box-shadow:
|
||||||
0 0 8px rgba(92, 190, 255, 0.82),
|
0 0 0 1px rgba(255, 255, 255, 0.08) inset,
|
||||||
0 0 18px rgba(72, 145, 255, 0.54),
|
0 0 10px rgba(52, 146, 255, 0.68),
|
||||||
0 0 30px rgba(72, 145, 255, 0.24) !important;
|
0 0 18px rgba(52, 146, 255, 0.32) !important;
|
||||||
text-shadow: none !important;
|
text-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.channels-screen--list .channel-row .channel-row-controls > .channel-row-count {
|
||||||
|
top: 0 !important;
|
||||||
|
right: 0 !important;
|
||||||
|
position: absolute !important;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.channels-screen--list .channel-row .channel-row-controls > .channel-menu-trigger {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ===== Transparent topbar + scroll fade (2026-08-22 13:40) =====
|
/* ===== Transparent topbar + scroll fade (2026-08-22 13:40) =====
|
||||||
* Верхняя шапка не рисует отдельную плашку. Контент прокручивается под ней и
|
* Верхняя шапка не рисует отдельную плашку. Контент прокручивается под ней и
|
||||||
|
|||||||
Reference in New Issue
Block a user