feat: restore interactive Neovim card control

This commit is contained in:
user
2026-07-16 23:59:03 +02:00
parent fc357bc190
commit 5255839e27
3 changed files with 487 additions and 130 deletions
+136 -5
View File
@@ -8,6 +8,41 @@
position: relative;
top: auto;
}
.viewer-chrome.is-nvim-fullscreen {
position: fixed;
z-index: 300;
inset: 0;
display: flex;
width: 100vw;
height: 100vh;
flex-direction: column;
overflow: hidden;
background: #11171a;
}
.viewer-chrome.is-nvim-fullscreen .topbar {
flex: none;
}
.viewer-chrome.is-nvim-fullscreen .nvim-panel {
display: flex;
min-height: 0;
flex: 1;
flex-direction: column;
}
.viewer-chrome.is-nvim-fullscreen .nvim-screen-scroll {
min-height: 0;
height: auto !important;
flex: 1;
}
.viewer-chrome.is-nvim-fullscreen .nvim-resize-handle {
display: none;
}
.viewer-chrome.is-nvim-fullscreen .nvim-screen-content {
overflow-y: hidden;
scrollbar-width: none;
}
.viewer-chrome.is-nvim-fullscreen .nvim-screen-content::-webkit-scrollbar {
display: none;
}
.topbar-nvim-section {
display: flex;
align-items: center;
@@ -53,7 +88,7 @@
width: 100%;
box-sizing: border-box;
border-bottom: 1px solid #52616a;
background: #11171a;
background: var(--desk, #eee);
color: #e7eef1;
box-shadow: 0 5px 16px #0004;
font: 12px/1.3 system-ui, sans-serif;
@@ -96,12 +131,42 @@
padding: 3px 8px;
font: 700 10px/1.2 ui-monospace, monospace;
letter-spacing: 0.04em;
white-space: nowrap;
}
.nvim-control-indicator.is-active {
border-color: #3cb3e2;
background: #17465a;
color: #d9f5ff;
}
.nvim-control-indicator.is-engaged {
box-shadow: inset 0 0 0 1px #8ee4ff;
}
.nvim-work-indicator {
flex: none;
border: 1px solid #7a878d;
border-radius: 3px;
background: #f4f6f7;
color: #56646a;
padding: 3px 8px;
font: 700 10px/1.2 ui-monospace, monospace;
letter-spacing: .03em;
white-space: nowrap;
}
.nvim-work-indicator.is-active {
border-color: #cf3d31;
background: #fff0ee;
color: #9f241b;
}
.nvim-shortcut-strip {
flex: none;
color: #536168;
font: 650 10px/1.2 ui-monospace, monospace;
white-space: nowrap;
}
.nvim-shortcut-strip kbd {
color: #263238;
font: inherit;
}
.nvim-screen-scroll {
position: relative;
width: 100%;
@@ -109,15 +174,73 @@
height: var(--nvim-panel-height, 75vh);
max-height: none;
min-height: 240px;
border: 2px solid transparent;
overflow: hidden;
background: #101315;
overflow: auto;
background: var(--desk, #eee);
outline: none;
scrollbar-color: #58666d #171d20;
}
.nvim-screen-scroll[data-control="true"] {
.nvim-screen-stage {
position: relative;
width: 210mm;
margin: 0 auto;
background: #fff;
zoom: var(--viewer-canvas-scale);
}
.nvim-screen-surface {
position: absolute;
inset: 0 4mm;
box-sizing: border-box;
padding: 1mm;
background: #fff;
}
.nvim-screen-frame {
position: relative;
height: 100%;
box-sizing: border-box;
border: 1px solid #267697;
background: #101315;
box-shadow: 0 0 0 3px #000;
}
.nvim-screen-scroll[data-sync="on"] .nvim-screen-frame {
border-color: #35b9ef;
}
.nvim-screen-scroll[data-control="true"] .nvim-screen-frame {
box-shadow: 0 0 0 3px #cf3d31;
}
.nvim-screen-scroll[data-control="true"] {
cursor: text;
}
.nvim-screen-content {
position: absolute;
top: 1mm;
right: -5mm;
bottom: 1mm;
left: 1mm;
overflow-x: hidden;
overflow-y: scroll;
background: transparent;
scrollbar-width: thin;
scrollbar-color: #829097 #fff;
}
.nvim-screen-grid {
width: calc(100% - 6mm);
min-height: 100%;
background: #101315;
}
.nvim-screen-content::-webkit-scrollbar {
width: .8mm;
}
.nvim-screen-content::-webkit-scrollbar-track {
background: #fff;
}
.nvim-screen-content::-webkit-scrollbar-thumb {
border: .12mm solid #fff;
border-radius: 99px;
background: #829097;
}
.nvim-screen-content::-webkit-scrollbar-thumb:hover {
background: #aeb9be;
}
.nvim-screen {
display: block;
max-width: none;
@@ -1203,6 +1326,14 @@ text.uml-step-element-active {
display: none;
}
.topbar-nvim-section .nvim-control-indicator {
max-width: 42vw;
overflow: hidden;
text-overflow: ellipsis;
}
.nvim-shortcut-strip {
display: none;
}
.nvim-work-indicator {
display: none;
}
.memory-lanes {