feat(status-ui): improve bridge recovery and desktop controls

This commit is contained in:
2026-07-28 21:15:25 +02:00
parent 7cc15cca92
commit a792c577ef
23 changed files with 1336 additions and 204 deletions
+123 -25
View File
@@ -9,9 +9,22 @@
color: #ebebe8;
background: #101111;
}
* {
*,
*::before,
*::after {
box-sizing: border-box;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
body {
margin: 0;
min-width: 480px;
@@ -37,6 +50,13 @@ button {
button:hover {
background: #f0ffe0;
}
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
outline: 3px solid #c4ed8b;
outline-offset: 2px;
}
.app-shell {
position: relative;
@@ -70,8 +90,7 @@ button:hover {
.workspace-heading,
.status-row,
.composer-actions,
.settings-actions,
.folder-form {
.settings-actions {
display: flex;
align-items: center;
gap: 8px;
@@ -148,14 +167,20 @@ h1 {
padding: 7px 9px;
}
.agents {
.directory-tabs,
.directory-tab-list {
display: flex;
align-items: center;
gap: 6px;
min-height: 30px;
min-height: 32px;
}
.directory-tabs {
overflow-x: auto;
padding: 1px 0 3px;
}
.directory-tab-list {
gap: 3px;
}
.agent-caption {
flex: 0 0 auto;
color: #70776f;
@@ -164,34 +189,93 @@ h1 {
letter-spacing: 0.08em;
text-transform: uppercase;
}
.agent {
.directory-tab {
display: flex;
flex: 0 0 auto;
align-items: stretch;
}
.directory-tab-button {
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
max-width: 180px;
padding: 5px 8px;
border: 1px solid #303530;
border-right: 0;
border-radius: 7px 0 0 7px;
padding: 5px 8px;
background: #1b1e1b;
color: #aeb4ac;
font-size: 11px;
font-weight: 650;
}
.agent > span {
.directory-tab-button > span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.agent small {
.directory-tab-button small {
color: #70776f;
font-size: 10px;
font-weight: 600;
}
.agent.selected {
.directory-tab-button.selected {
border-color: #7da856;
background: #222b1d;
color: #ecf7df;
}
.directory-tab-button.selected + .directory-close {
border-color: #7da856;
background: #222b1d;
}
.directory-tab-button:only-child {
border-right: 1px solid #303530;
border-radius: 7px;
}
.directory-tab-button.selected:only-child {
border-color: #7da856;
}
.directory-close {
min-width: 24px;
border: 1px solid #303530;
border-radius: 0 7px 7px 0;
padding: 3px 6px;
background: #1b1e1b;
color: #aeb4ac;
font-size: 15px;
line-height: 1;
}
.directory-tab:focus-within .directory-tab-button,
.directory-tab:focus-within .directory-close {
border-color: #c4ed8b;
}
.directory-close:hover {
background: #3a2222;
color: #ffc0c0;
}
.directory-close:disabled {
cursor: not-allowed;
opacity: 0.45;
}
.directory-add-toggle {
flex: 0 0 auto;
padding: 5px 8px;
white-space: nowrap;
}
.directory-add {
display: flex;
flex: 0 0 auto;
align-items: stretch;
gap: 5px;
}
.directory-add input {
width: 220px;
padding: 5px 7px;
font-size: 11px;
}
.directory-add button {
padding: 5px 8px;
}
.notifications {
display: grid;
@@ -500,9 +584,9 @@ textarea {
line-height: 1.35;
}
.composer textarea:focus {
outline: none;
border-color: #6f8b56;
box-shadow: 0 0 0 1px rgba(143, 189, 95, 0.28);
outline: 2px solid #c4ed8b;
outline-offset: -2px;
}
.composer-actions {
justify-content: flex-end;
@@ -657,15 +741,6 @@ h2 {
margin: 0;
font-size: 14px;
}
.folder-form {
align-items: stretch;
}
.remembered {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
}
.settings-actions {
justify-content: flex-start;
}
@@ -684,6 +759,15 @@ h2 {
.session-panel-heading h2 {
margin-bottom: 3px;
}
.session-actions {
display: flex;
flex: 0 0 auto;
gap: 5px;
}
.session-actions button:disabled {
cursor: not-allowed;
opacity: 0.5;
}
.session-panel-heading .muted {
max-width: 460px;
overflow: hidden;
@@ -727,9 +811,18 @@ h2 {
opacity: 0.5;
cursor: not-allowed;
}
.extension {
.extension-backdrop {
position: absolute;
inset: auto 14px 14px;
z-index: 10;
inset: 0;
display: flex;
align-items: end;
justify-content: center;
padding: 14px;
background: rgba(0, 0, 0, 0.5);
}
.extension {
width: min(100%, 680px);
max-height: min(70vh, 460px);
overflow: auto;
border: 1px solid #9cc76d;
@@ -746,8 +839,13 @@ h2 {
}
@media (prefers-reduced-motion: reduce) {
.transcript.working {
animation: none;
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
scroll-behavior: auto !important;
transition-duration: 0.01ms !important;
}
}