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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user