Watch
1
0
Fork
You've already forked souveraine
0

face: hid mode gives the room to the hands

The rig held 760px of a 1037px surface and left 226 for a status row, the agent
field, both pads and four buttons — so the pads were 92px and the last row sat
under a dock that claims no exclusive zone unless pinned. With the hand up the
rig drops to 320 and the pads take what is left.
This commit is contained in:
Fimeg 2026-08-15 22:39:18 -04:00
commit 3f796f5345

View file

@ -15,6 +15,35 @@
position: fixed; left: 0; right: 0; top: 0; height: 760px;
z-index: 1;
}
/*
* With the hand up, the room below her *is* the point: you are driving
* another screen and the trackpad is the instrument. So the rig gives most of
* its height back and keeps enough to be looked at, which is the only reason
* she is still on screen while you work. Casey, 2026-08-15: *"I want her, and
* then below her to have like a trackpad zone / keyboard zone stuff."*
*
* At 760/226 the split was the other way round and the controls had 226px to
* share between a status row, an agent field, the pads and four buttons — so
* the pads were 92px and the last row sat under the dock.
*
* `--dock-reserve` is a number here because the dock claims **no exclusive
* zone** unless it is Pinned (`modules/ii/dock/Dock.qml:321`), so nothing
* shrinks this surface for it and the bottom row would be untappable. Delete
* this the day the dock yields on its own.
*/
:root { --dock-reserve: 84px; }
body.hid #live2d-widget { height: 320px; }
body.hid #hands {
top: 326px;
height: auto;
bottom: var(--dock-reserve);
display: flex;
flex-direction: column;
}
/* The pads take whatever the fixed rows leave, rather than a written-down 92. */
body.hid #track-row,
body.hid #hands.keyboard #keyboard-pane { flex: 1; height: auto; min-height: 92px; }
#live2d { width: 100%; height: 100%; }
#bubble {
position: fixed; left: 8px; right: 8px; top: 12px;
@ -339,6 +368,9 @@
state: function (state) {
state = state || {};
hands.classList.toggle('up', !!state.active);
// On the body, not on #hands: the rig sits *before* the pane in the DOM,
// so no sibling selector can reach back to it.
document.body.classList.toggle('hid', !!state.active);
hands.classList.toggle('ready', !!state.ready);
hands.classList.toggle('listening', !!state.listening);
document.getElementById('mic').classList.toggle('listening', !!state.listening);