diff --git a/apps/web/src/components/terminal.tsx b/apps/web/src/components/terminal.tsx index f050f76..a273930 100644 --- a/apps/web/src/components/terminal.tsx +++ b/apps/web/src/components/terminal.tsx @@ -185,6 +185,21 @@ export const TerminalComponent: React.FC = ({ ); } }, 500); + + // Fit after mobile header auto-hides (3s delay + 0.3s transition) + setTimeout(() => { + fitAddon.fit(); + const { cols, rows } = term; + if (ws.readyState === WebSocket.OPEN) { + ws.send( + JSON.stringify({ + type: "resize", + cols, + rows, + }) + ); + } + }, 4000); }); }); diff --git a/apps/web/src/styles.css b/apps/web/src/styles.css index 3c70331..4949702 100644 --- a/apps/web/src/styles.css +++ b/apps/web/src/styles.css @@ -2599,6 +2599,16 @@ a.nav-item, .terminal-container .xterm { flex: 1; min-height: 0; + width: 100%; +} + +.terminal-container .xterm-viewport { + width: 100% !important; + height: 100% !important; +} + +.terminal-container .xterm-screen { + width: 100% !important; } .terminal-container .xterm-viewport { @@ -3304,9 +3314,10 @@ a.nav-item, .terminal-wrapper.mobile { border: none; border-radius: 0; - height: 100%; - min-height: 100%; + flex: 1; + min-height: 0; width: 100%; + overflow: hidden; } .terminal-wrapper.mobile .terminal-header {