Put every chat control on one row, the same row everywhere
The picker sat above the transcript and the buttons below it, so the same component read differently on each surface; size is the only thing a placement should get to choose.
This commit is contained in:
@@ -1217,7 +1217,6 @@ code.vv-unknown-var { color: #ff9800; background: #1f130d; }
|
||||
/* ── Profile picker ─────────────────────────────────────────────────────── */
|
||||
/* The chip borrows the Scheduler dock's language deliberately — same muted blue, same weight,
|
||||
same 10px — so the two surfaces read as one control that happens to appear in two places. */
|
||||
.vv-ai-profiles { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
|
||||
.vv-ai-picker { position:relative; flex-shrink:0; }
|
||||
.vv-ai-chip { display:inline-flex; align-items:center; gap:5px; font-size:10px; color:#5a7a8a;
|
||||
background:#12191d; border:1px solid #24343d; border-radius:3px; padding:3px 8px;
|
||||
@@ -1227,9 +1226,16 @@ code.vv-unknown-var { color: #ff9800; background: #1f130d; }
|
||||
.vv-ai-picker.open .vv-ai-chip { color:#8fb0c4; border-color:#2d4a6a; }
|
||||
.vv-ai-picker.open .vv-ai-chip-c { transform:rotate(180deg); }
|
||||
|
||||
.vv-ai-menu { display:none; position:absolute; top:calc(100% + 4px); left:0; z-index:60;
|
||||
/* Opens upward. Every picker in the plugin now sits on the composer's bottom row, so a menu
|
||||
dropping downward would fall out of the component — off the bottom of the Monitor card and
|
||||
over the help panel beneath it. Anchored to the trigger's top edge instead. */
|
||||
.vv-ai-menu { display:none; position:absolute; bottom:calc(100% + 4px); left:0; z-index:60;
|
||||
min-width:250px; background:#0e0e0e; border:1px solid #2a2a2a; border-radius:5px;
|
||||
box-shadow:0 6px 18px rgba(0,0,0,.55); overflow:hidden; }
|
||||
box-shadow:0 -6px 18px rgba(0,0,0,.55); overflow:hidden; }
|
||||
/* Right-anchored variant for triggers near the right edge, where a left-anchored menu would run
|
||||
off the card. Used by the saved-conversations picker, whose list is unbounded — capped so a
|
||||
long history scrolls in place rather than running off the top of the viewport. */
|
||||
.vv-ai-menu-r { left:auto; right:0; max-height:min(60vh,420px); overflow-y:auto; }
|
||||
.vv-ai-picker.open .vv-ai-menu { display:block; }
|
||||
.vv-ai-opt { display:block; width:100%; text-align:left; background:none; border:none;
|
||||
border-bottom:1px solid #1a1a1a; padding:7px 10px; cursor:pointer;
|
||||
@@ -1240,4 +1246,6 @@ code.vv-unknown-var { color: #ff9800; background: #1f130d; }
|
||||
.vv-ai-opt.active .vv-ai-opt-l { color:#9bd; }
|
||||
.vv-ai-opt-l { display:block; font-size:11px; color:#b8b8b8; }
|
||||
.vv-ai-opt-h { display:block; font-size:10px; color:#4a4a4a; line-height:1.4; margin-top:2px; }
|
||||
.vv-ai-prof-hint { font-size:10px; color:#4a4a4a; flex:1; min-width:150px; }
|
||||
/* Loading, empty and error in the saved-conversations menu: one line in the menu's own voice,
|
||||
styled so it does not read as a row you might try to click. */
|
||||
.vv-ai-hist-msg { font-size:10px; color:#4a4a4a; font-style:italic; padding:9px 10px; }
|
||||
|
||||
Reference in New Issue
Block a user