Spaces:
Sleeping
Sleeping
| /* static/css/terminal.css - xterm.js PTY terminal */ | |
| .term-layout { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| overflow: hidden; | |
| } | |
| .term-shell { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| overflow: hidden; | |
| min-height: 0; | |
| } | |
| .term-header { | |
| height: 40px; | |
| background: var(--bg-elevated); | |
| border-bottom: 1px solid var(--border); | |
| display: flex; | |
| align-items: center; | |
| padding: 0 var(--sp-3); | |
| gap: var(--sp-2); | |
| flex-shrink: 0; | |
| } | |
| .term-tab { | |
| padding: 4px 12px; | |
| font-size: 12px; | |
| font-weight: 500; | |
| color: var(--text-2); | |
| display: flex; | |
| align-items: center; | |
| } | |
| .term-tab.active { | |
| color: var(--accent); | |
| } | |
| .term-actions { | |
| margin-left: auto; | |
| display: flex; | |
| gap: var(--sp-1); | |
| } | |
| /* xterm.js container */ | |
| .xterm-container { | |
| flex: 1; | |
| overflow: hidden; | |
| background: #0a0a0a; | |
| min-height: 0; | |
| touch-action: manipulation; | |
| cursor: text; | |
| } | |
| .xterm-container .xterm { | |
| height: 100%; | |
| padding: 4px 8px; | |
| } | |
| .xterm-container .xterm-viewport { | |
| overflow-y: auto ; | |
| } | |
| /* Extra keys row */ | |
| .term-keys { | |
| display: flex; | |
| background: var(--bg-elevated); | |
| border-top: 1px solid var(--border); | |
| padding: var(--sp-2); | |
| gap: var(--sp-2); | |
| overflow-x: auto; | |
| flex-shrink: 0; | |
| -webkit-overflow-scrolling: touch; | |
| scrollbar-width: none; | |
| } | |
| .term-keys::-webkit-scrollbar { display: none; } | |
| .term-key { | |
| background: rgba(255,255,255,0.04); | |
| border: 1px solid var(--border); | |
| color: var(--text-1); | |
| padding: 0 var(--sp-3); | |
| border-radius: var(--r-sm); | |
| font-size: 12px; | |
| font-family: var(--font-mono); | |
| font-weight: 500; | |
| cursor: pointer; | |
| min-height: 40px; | |
| min-width: 48px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| flex-shrink: 0; | |
| touch-action: manipulation; | |
| transition: all 0.1s ease; | |
| } | |
| .term-key:active { | |
| background: var(--accent); | |
| color: var(--accent-text); | |
| transform: scale(0.95); | |
| } | |
| .term-key.ctrl-active { | |
| background: var(--accent); | |
| color: var(--accent-text); | |
| } | |
| /* Desktop: side panel */ | |
| .term-side { | |
| display: none; | |
| } | |
| @media (min-width: 769px) { | |
| .term-layout { | |
| flex-direction: row; | |
| padding: var(--sp-4); | |
| gap: var(--sp-4); | |
| } | |
| .term-shell { | |
| border: 1px solid var(--border); | |
| border-radius: var(--r-md); | |
| overflow: hidden; | |
| } | |
| .term-side { | |
| display: flex; | |
| flex-direction: column; | |
| width: 320px; | |
| flex-shrink: 0; | |
| gap: var(--sp-4); | |
| } | |
| .glass-panel { | |
| flex: 1; | |
| background: var(--bg-elevated); | |
| border: 1px solid var(--border); | |
| border-radius: var(--r-md); | |
| padding: var(--sp-4); | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .panel-title { | |
| font-size: 12px; | |
| font-weight: 600; | |
| color: var(--text-3); | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| margin-bottom: var(--sp-3); | |
| display: flex; | |
| align-items: center; | |
| gap: var(--sp-2); | |
| } | |
| } | |
| /* Light theme */ | |
| :root.light .xterm-container { | |
| background: #ffffff; | |
| } | |