Path: blob/main/src/vs/sessions/browser/parts/mobile/contributions/media/mobileOverlayViews.css
13406 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45/* Shared base for full-screen mobile overlay views (terminal, diff). */67.mobile-overlay-view {8position: fixed;9inset: 0;10z-index: 1000;11display: flex;12flex-direction: column;13background: var(--vscode-editor-background);14color: var(--vscode-editor-foreground, var(--vscode-foreground));15touch-action: manipulation;16-webkit-touch-callout: none;17user-select: none;18-webkit-user-select: none;19}2021/* -- Header ------------------------------------------------------------------------------------- */2223.mobile-overlay-header {24display: flex;25align-items: center;26gap: 4px;27height: 56px;28min-height: 56px;29padding: 0 8px;30padding-top: env(safe-area-inset-top);31border-bottom: 1px solid var(--vscode-panel-border, var(--vscode-editorWidget-border, transparent));32flex-shrink: 0;33box-sizing: content-box;34}3536.mobile-overlay-back-btn {37display: flex;38align-items: center;39gap: 4px;40height: 44px;41min-width: 44px;42padding: 0 8px;43border: none;44background: none;45color: var(--vscode-foreground);46cursor: pointer;47border-radius: 4px;48font-size: 14px;49white-space: nowrap;50touch-action: manipulation;51}5253.mobile-overlay-back-btn:active {54background: var(--vscode-toolbar-hoverBackground);55}5657.mobile-overlay-back-btn .back-btn-label {58font-size: 14px;59color: var(--vscode-foreground);60}6162.mobile-overlay-header-info {63flex: 1;64min-width: 0;65display: flex;66flex-direction: column;67justify-content: center;68}6970.mobile-overlay-header-title {71font-size: 14px;72font-weight: 500;73color: var(--vscode-foreground);74overflow: hidden;75text-overflow: ellipsis;76white-space: nowrap;77}7879.mobile-overlay-header-subtitle {80font-size: 12px;81color: var(--vscode-descriptionForeground);82overflow: hidden;83text-overflow: ellipsis;84white-space: nowrap;85}8687.mobile-overlay-header-badge {88display: inline-flex;89align-items: center;90gap: 3px;91padding: 1px 6px;92border-radius: 10px;93font-size: 11px;94font-weight: 500;95white-space: nowrap;96flex-shrink: 0;97}9899.mobile-overlay-header-badge.success {100background-color: color-mix(in srgb, var(--vscode-testing-iconPassed) 20%, transparent);101color: var(--vscode-testing-iconPassed);102}103104.mobile-overlay-header-badge.error {105background-color: color-mix(in srgb, var(--vscode-errorForeground) 20%, transparent);106color: var(--vscode-errorForeground);107}108109.mobile-overlay-header-badge.running {110background-color: color-mix(in srgb, var(--vscode-textLink-foreground) 20%, transparent);111color: var(--vscode-textLink-foreground);112}113114/* -- Body --------------------------------------------------------------------------------------- */115116.mobile-overlay-body {117flex: 1;118overflow: hidden;119display: flex;120flex-direction: column;121}122123.mobile-overlay-scroll {124flex: 1;125overflow-y: auto;126overflow-x: auto;127-webkit-overflow-scrolling: touch;128overscroll-behavior: contain;129padding-bottom: env(safe-area-inset-bottom);130}131132/* -- Footer toolbar --------------------------------------------------------------------- */133134.mobile-overlay-footer {135display: flex;136align-items: center;137gap: 8px;138padding: 8px 12px;139padding-bottom: calc(8px + env(safe-area-inset-bottom));140border-top: 1px solid var(--vscode-panel-border, transparent);141background: var(--vscode-editor-background);142flex-shrink: 0;143}144145.mobile-overlay-footer-btn {146display: flex;147align-items: center;148gap: 6px;149height: 36px;150padding: 0 14px;151border-radius: 6px;152border: 1px solid var(--vscode-widget-border, color-mix(in srgb, var(--vscode-foreground) 15%, transparent));153background: transparent;154color: var(--vscode-foreground);155font-size: 13px;156cursor: pointer;157touch-action: manipulation;158white-space: nowrap;159}160161.mobile-overlay-footer-btn:active {162background: var(--vscode-toolbar-hoverBackground);163}164165/* -- Terminal-specific ---------------------------------------------------------------- */166167.mobile-terminal-output {168font-family: var(--monaco-monospace-font, 'SF Mono', Menlo, Monaco, Consolas, monospace);169font-size: 13px;170line-height: 1.5;171white-space: pre; /* preserve columns; horizontal scroll for long lines */172color: var(--vscode-editor-foreground, var(--vscode-foreground));173padding: 12px 16px;174min-height: 100%;175box-sizing: border-box;176}177178.mobile-terminal-output.truncated::after {179content: '\A[output truncated]';180display: block;181color: var(--vscode-descriptionForeground);182font-style: italic;183}184185.mobile-terminal-jump-btn {186position: absolute;187bottom: 64px;188right: 16px;189right: calc(16px + env(safe-area-inset-right));190height: 36px;191padding: 0 14px;192border-radius: 18px;193border: 1px solid var(--vscode-widget-border, transparent);194background: var(--vscode-editor-background);195color: var(--vscode-foreground);196font-size: 13px;197box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);198cursor: pointer;199touch-action: manipulation;200transition: opacity 0.15s ease;201}202203.mobile-terminal-jump-btn.hidden {204opacity: 0;205pointer-events: none;206}207208/* -- Diff-specific ------------------------------------------------------------------------ */209210.mobile-diff-output {211font-family: var(--monaco-monospace-font, 'SF Mono', Menlo, Monaco, Consolas, monospace);212font-size: 12px;213line-height: 1.6;214white-space: pre;215padding: 8px 0;216min-height: 100%;217box-sizing: border-box;218}219220.mobile-diff-hunk-header {221display: block;222color: var(--vscode-descriptionForeground);223background: color-mix(in srgb, var(--vscode-foreground) 6%, transparent);224padding: 4px 16px;225font-size: 11px;226user-select: none;227-webkit-user-select: none;228}229230.mobile-diff-line {231display: flex;232gap: 0;233}234235.mobile-diff-line-num {236flex-shrink: 0;237width: 40px;238padding: 0 8px;239color: var(--vscode-editorLineNumber-foreground);240text-align: right;241user-select: none;242-webkit-user-select: none;243}244245.mobile-diff-gutter {246flex-shrink: 0;247width: 16px;248text-align: center;249padding: 0 2px;250user-select: none;251-webkit-user-select: none;252}253254.mobile-diff-content {255flex: 1;256padding: 0 16px 0 4px;257user-select: text;258-webkit-user-select: text;259}260261/* Added lines — soft green tint on the row, vibrant green text. The tint is intentionally very light (8%) so the text remains the loudest visual signal, matching the mockup. */262.mobile-diff-line.added {263background: color-mix(in srgb, var(--vscode-gitDecoration-addedResourceForeground) 8%, transparent);264}265266.mobile-diff-line.added .mobile-diff-line-num,267.mobile-diff-line.added .mobile-diff-gutter,268.mobile-diff-line.added .mobile-diff-content {269color: var(--vscode-gitDecoration-addedResourceForeground);270}271272/* Removed lines — same treatment with the deletion color. */273.mobile-diff-line.removed {274background: color-mix(in srgb, var(--vscode-gitDecoration-deletedResourceForeground) 8%, transparent);275}276277.mobile-diff-line.removed .mobile-diff-line-num,278.mobile-diff-line.removed .mobile-diff-gutter,279.mobile-diff-line.removed .mobile-diff-content {280color: var(--vscode-gitDecoration-deletedResourceForeground);281}282283.mobile-diff-empty-state {284display: flex;285align-items: center;286justify-content: center;287flex: 1;288color: var(--vscode-descriptionForeground);289font-size: 14px;290padding: 32px;291text-align: center;292}293294295