Path: blob/main/src/vs/workbench/browser/parts/statusbar/media/statusbarpart.css
3296 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.monaco-workbench .part.statusbar {6box-sizing: border-box;7cursor: default;8width: 100%;9height: 22px;10font-size: 12px;11display: flex;12overflow: hidden;13}1415.monaco-workbench:not(.reduce-motion) .part.statusbar {16transition: background-color 0.15s ease-out;17}1819.monaco-workbench.mac:not(.fullscreen) .part.statusbar:focus {20/* Rounded corners to make focus outline appear properly (unless fullscreen) */21border-bottom-right-radius: 5px;22border-bottom-left-radius: 5px;23}24.monaco-workbench.mac:not(.fullscreen).macos-bigsur-or-newer .part.statusbar:focus {25/* macOS Big Sur increased rounded corners size */26border-bottom-right-radius: 10px;27border-bottom-left-radius: 10px;28}2930.monaco-workbench .part.statusbar:not(:focus).status-border-top::after {31/* Top border only visible unless focused to make room for focus outline */32content: '';33position: absolute;34top: 0;35left: 0;36z-index: 5;37pointer-events: none;38background-color: var(--status-border-top-color);39width: 100%;40height: 1px;41}4243.monaco-workbench .part.statusbar > .left-items,44.monaco-workbench .part.statusbar > .right-items {45display: flex;46}4748.monaco-workbench .part.statusbar > .right-items {49flex-wrap: wrap; /* overflow elements by wrapping */50flex-direction: row-reverse; /* let the elements to the left wrap first */51}5253.monaco-workbench .part.statusbar > .left-items {54flex-grow: 1; /* left items push right items to the far right end */55}5657.monaco-workbench .part.statusbar > .items-container > .statusbar-item {58display: inline-block;59line-height: 22px;60height: 100%;61vertical-align: top;62max-width: 40vw;63font-variant-numeric: tabular-nums;64}6566.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-beak {67position: relative;68}6970.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-beak > .status-bar-item-beak-container {71position: absolute;72left: calc(50% - 5px); /* centering relative to parent */73top: -5px;74width: 10px;75height: 5px;76}7778.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-beak > .status-bar-item-beak-container:before {79content: '';80position: fixed;81border-bottom-width: 5px;82border-bottom-style: solid;83border-left: 5px solid transparent;84border-right: 5px solid transparent;85}8687.monaco-workbench .part.statusbar > .items-container > .statusbar-item.left.first-visible-item {88padding-left: 7px; /* Add padding to the most left status bar item */89}9091.monaco-workbench .part.statusbar > .items-container > .statusbar-item.right.last-visible-item {92margin-right: 7px; /* Add margin to the most right status bar item. Margin is used to position beak properly. */93}9495/* Tweak appearance for items with background to improve hover feedback */96.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-background-color.left.first-visible-item,97.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-background-color.right.last-visible-item {98padding-right: 0;99padding-left: 0;100}101102.monaco-workbench .part.statusbar > .items-container > .statusbar-item > .statusbar-item-label {103cursor: pointer;104display: flex;105height: 100%;106margin-right: 3px;107margin-left: 3px;108padding: 0 5px 0 5px;109white-space: pre; /* gives some degree of styling */110align-items: center;111text-overflow: ellipsis;112overflow: hidden;113outline-width: 0px; /* do not render focus outline, we already have background */114}115116.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-left > .statusbar-item-label {117margin-left: 0;118margin-right: 5px; /* +2px because padding is smaller and we want to preserve spacing between items */119padding: 0 3px;120}121122.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-right > .statusbar-item-label {123margin-left: 5px; /* +2px because padding is smaller and we want to preserve spacing between items */124margin-right: 0;125padding: 0 3px;126}127128.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-left.compact-right > .statusbar-item-label {129margin-left: 0;130margin-right:0;131}132133.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-background-color > .statusbar-item-label {134margin-left: 0;135margin-right: 0;136padding-left: 10px;137padding-right: 10px;138}139140.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-left.has-background-color > .statusbar-item-label {141padding-left: 3px;142padding-right: 10px;143}144145.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-right.has-background-color > .statusbar-item-label {146padding-left: 10px;147padding-right: 3px;148}149150.monaco-workbench .part.statusbar > .items-container > .statusbar-item > a:hover:not(.disabled) {151text-decoration: none;152color: var(--vscode-statusBarItem-hoverForeground);153}154155.monaco-workbench .part.statusbar > .items-container > .statusbar-item > a.disabled {156cursor: default;157}158159.monaco-workbench .part.statusbar > .items-container > .statusbar-item span.codicon {160text-align: center;161font-size: 14px;162color: inherit;163}164165.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:active:not(.disabled) {166outline: 1px solid var(--vscode-contrastActiveBorder) !important;167outline-offset: -1px;168}169170.monaco-workbench:not(.hc-light):not(.hc-black) .part.statusbar > .items-container > .statusbar-item a:active:not(.disabled) {171background-color: var(--vscode-statusBarItem-activeBackground) !important;172}173174.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:hover:not(.disabled) {175outline: 1px dashed var(--vscode-contrastActiveBorder);176outline-offset: -1px;177}178179.monaco-workbench:not(.hc-light):not(.hc-black) .part.statusbar > .items-container > .statusbar-item a:hover:not(.disabled) {180background-color: var(--vscode-statusBarItem-hoverBackground);181}182183/** Status bar entry item kinds */184185.monaco-workbench .part.statusbar > .items-container > .statusbar-item.warning-kind {186color: var(--vscode-statusBarItem-warningForeground);187background-color: var(--vscode-statusBarItem-warningBackground);188}189190.monaco-workbench .part.statusbar > .items-container > .statusbar-item.warning-kind a:hover:not(.disabled) {191color: var(--vscode-statusBarItem-warningHoverForeground);192background-color: var(--vscode-statusBarItem-warningHoverBackground) !important;193}194195.monaco-workbench .part.statusbar > .items-container > .statusbar-item.error-kind {196color: var(--vscode-statusBarItem-errorForeground);197background-color: var(--vscode-statusBarItem-errorBackground);198}199200.monaco-workbench .part.statusbar > .items-container > .statusbar-item.error-kind a:hover:not(.disabled) {201color: var(--vscode-statusBarItem-errorHoverForeground);202background-color: var(--vscode-statusBarItem-errorHoverBackground) !important;203}204205.monaco-workbench .part.statusbar > .items-container > .statusbar-item.prominent-kind {206color: var(--vscode-statusBarItem-prominentForeground);207background-color: var(--vscode-statusBarItem-prominentBackground);208}209210/**211* Using :not(.compact-right):not(.compact-left) here to improve the visual appearance212* when a prominent item uses `compact: true` with other items. The presence of the213* !important directive for `background-color` otherwise blocks our special hover handling214* code here:215* https://github.com/microsoft/vscode/blob/c2037f152b2bb3119ce1d87f52987776540dd57f/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts#L483-L505216*217* Note: this is currently only done for the prominent kind, but needs to be expanded if218* other kinds use compact feature.219*/220.monaco-workbench .part.statusbar > .items-container > .statusbar-item.prominent-kind:not(.compact-right):not(.compact-left) a:hover:not(.disabled) {221color: var(--vscode-statusBarItem-prominentHoverForeground);222background-color: var(--vscode-statusBarItem-prominentHoverBackground) !important;223}224225.monaco-workbench .part.statusbar > .items-container > .statusbar-item.remote-kind {226color: var(--vscode-statusBarItem-remoteForeground);227background-color: var(--vscode-statusBarItem-remoteBackground);228}229230.monaco-workbench .part.statusbar > .items-container > .statusbar-item.remote-kind a:hover:not(.disabled) {231color: var(--vscode-statusBarItem-remoteHoverForeground);232background-color: var(--vscode-statusBarItem-remoteHoverBackground) !important;233}234235.monaco-workbench .part.statusbar > .items-container > .statusbar-item.offline-kind {236color: var(--vscode-statusBarItem-offlineForeground);237background-color: var(--vscode-statusBarItem-offlineBackground);238}239240.monaco-workbench .part.statusbar > .items-container > .statusbar-item.offline-kind a:hover:not(.disabled) {241color: var(--vscode-statusBarItem-offlineHoverForeground);242background-color: var(--vscode-statusBarItem-offlineHoverBackground) !important;243}244245246