feat(frontend): channel type colors, triage/custom create fields, join/leave, dev mode

- per-x_type channel row colors (general/work/report/discuss/triage/custom)
- create-channel: required On-duty select (triage) / Listeners checklist (custom)
- channel Join/Leave in topbar; list carries isMember
- Developer mode toggle (Settings): show guild /ack + per-message wakeup
  metadata; off by default (metadata stays transparent)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
h z
2026-05-15 14:51:20 +01:00
parent 396b2fd231
commit b04b099754
2 changed files with 228 additions and 13 deletions

View File

@@ -341,32 +341,73 @@ button {
color: var(--text-h);
}
.chan-btn {
--xt: #9aa0a6;
position: relative;
width: 100%;
display: flex;
align-items: center;
gap: 6px;
text-align: left;
border: none;
background: transparent;
background: color-mix(in srgb, var(--xt) 9%, transparent);
border-radius: var(--radius-sm);
padding: 8px 10px;
margin: 1px 0;
color: var(--text-muted);
padding: 8px 10px 8px 14px;
margin: 2px 0;
color: color-mix(in srgb, var(--xt) 55%, var(--text));
font-size: 15px;
cursor: pointer;
}
.chan-btn::before {
content: '';
position: absolute;
left: 3px;
top: 7px;
bottom: 7px;
width: 3px;
border-radius: 3px;
background: var(--xt);
opacity: 0.7;
}
.chan-btn .hash {
color: var(--text-faint);
font-weight: 600;
color: var(--xt);
font-weight: 700;
}
.chan-btn .chan-tag {
color: var(--xt);
border-color: color-mix(in srgb, var(--xt) 60%, transparent);
background: color-mix(in srgb, var(--xt) 14%, transparent);
}
.chan-btn:hover {
background: var(--hover);
color: var(--text);
background: color-mix(in srgb, var(--xt) 18%, transparent);
color: var(--text-h);
}
.chan-btn.active {
background: var(--active);
background: color-mix(in srgb, var(--xt) 26%, transparent);
color: var(--text-h);
}
.chan-btn.active::before {
opacity: 1;
}
/* per x_type accent */
.chan-btn.xt-general {
--xt: #9aa0a6;
}
.chan-btn.xt-work {
--xt: #5865f2;
}
.chan-btn.xt-report {
--xt: #faa61a;
}
.chan-btn.xt-discuss {
--xt: #3ba55d;
}
.chan-btn.xt-triage {
--xt: #ed4245;
}
.chan-btn.xt-custom {
--xt: #c084fc;
}
.chan-tag {
margin-left: auto;
font-size: 10px;
@@ -515,6 +556,32 @@ button {
color: var(--text-faint);
font-style: italic;
}
.meta-badge {
font-family: var(--mono);
font-size: 10px;
font-weight: 700;
color: var(--text-faint);
border: 1px solid var(--border);
border-radius: 4px;
padding: 0 4px;
}
.meta-badge.on {
color: #fff;
background: var(--online);
border-color: var(--online);
}
.meta-raw {
margin: 4px 0 0;
padding: 6px 8px;
background: var(--elevated);
border: 1px solid var(--border);
border-radius: 6px;
color: var(--text-muted);
font-family: var(--mono);
font-size: 11px;
white-space: pre-wrap;
word-break: break-all;
}
.dc-empty-center {
margin: auto;
text-align: center;