Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/browser/parts/statusbar/media/statusbarpart.css
5318 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
.monaco-workbench .part.statusbar {
7
box-sizing: border-box;
8
cursor: default;
9
width: 100%;
10
height: 22px;
11
font-size: 12px;
12
display: flex;
13
overflow: hidden;
14
}
15
16
.monaco-workbench.monaco-enable-motion .part.statusbar {
17
transition: background-color 0.15s ease-out;
18
}
19
20
.monaco-workbench.mac:not(.fullscreen) .part.statusbar:focus {
21
/* Rounded corners to make focus outline appear properly (unless fullscreen) */
22
border-bottom-right-radius: 10px;
23
border-bottom-left-radius: 10px;
24
}
25
.monaco-workbench.mac.macos-tahoe:not(.fullscreen) .part.statusbar:focus {
26
/* macOS Tahoe increased rounded corners size */
27
border-bottom-right-radius: 16px;
28
border-bottom-left-radius: 16px;
29
}
30
31
.monaco-workbench .part.statusbar:not(:focus).status-border-top::after {
32
/* Top border only visible unless focused to make room for focus outline */
33
content: '';
34
position: absolute;
35
top: 0;
36
left: 0;
37
z-index: 5;
38
pointer-events: none;
39
background-color: var(--status-border-top-color);
40
width: 100%;
41
height: 1px;
42
}
43
44
.monaco-workbench .part.statusbar > .left-items,
45
.monaco-workbench .part.statusbar > .right-items {
46
display: flex;
47
}
48
49
.monaco-workbench .part.statusbar > .right-items {
50
flex-wrap: wrap; /* overflow elements by wrapping */
51
flex-direction: row-reverse; /* let the elements to the left wrap first */
52
}
53
54
.monaco-workbench .part.statusbar > .left-items {
55
flex-grow: 1; /* left items push right items to the far right end */
56
}
57
58
.monaco-workbench .part.statusbar > .items-container > .statusbar-item {
59
display: inline-block;
60
line-height: 22px;
61
height: 100%;
62
vertical-align: top;
63
max-width: 40vw;
64
font-variant-numeric: tabular-nums;
65
}
66
67
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-beak {
68
position: relative;
69
}
70
71
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-beak > .status-bar-item-beak-container {
72
position: absolute;
73
left: calc(50% - 5px); /* centering relative to parent */
74
top: -5px;
75
width: 10px;
76
height: 5px;
77
}
78
79
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-beak > .status-bar-item-beak-container:before {
80
content: '';
81
position: fixed;
82
border-bottom-width: 5px;
83
border-bottom-style: solid;
84
border-left: 5px solid transparent;
85
border-right: 5px solid transparent;
86
}
87
88
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.left.first-visible-item,
89
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.right.last-visible-item {
90
padding-right: 0;
91
padding-left: 0;
92
}
93
94
.monaco-workbench .part.statusbar > .items-container > .statusbar-item > .statusbar-item-label {
95
cursor: pointer;
96
display: flex;
97
height: 100%;
98
margin-right: 3px;
99
margin-left: 3px;
100
padding: 0 5px;
101
white-space: pre; /* gives some degree of styling */
102
align-items: center;
103
text-overflow: ellipsis;
104
overflow: hidden;
105
outline-width: 0px; /* do not render focus outline, we already have background */
106
}
107
108
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-left > .statusbar-item-label {
109
margin-left: 0;
110
margin-right: 5px; /* +2px because padding is smaller and we want to preserve spacing between items */
111
padding: 0 3px;
112
}
113
114
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-right > .statusbar-item-label {
115
margin-left: 5px; /* +2px because padding is smaller and we want to preserve spacing between items */
116
margin-right: 0;
117
padding: 0 3px;
118
}
119
120
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-left.compact-right > .statusbar-item-label {
121
margin-left: 0;
122
margin-right: 0;
123
}
124
125
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.left.first-visible-item > .statusbar-item-label,
126
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.right.last-visible-item > .statusbar-item-label,
127
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-background-color > .statusbar-item-label {
128
margin-left: 0; /* Reduce margin to let element attach to the corners */
129
margin-right: 0;
130
padding-left: 8px; /* But increase padding to preserve our usual spacing */
131
padding-right: 8px;
132
}
133
134
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-left.has-background-color > .statusbar-item-label {
135
padding-left: 3px;
136
padding-right: 10px;
137
}
138
139
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-right.has-background-color > .statusbar-item-label {
140
padding-left: 10px;
141
padding-right: 3px;
142
}
143
144
.monaco-workbench .part.statusbar > .items-container > .statusbar-item > a:hover:not(.disabled) {
145
text-decoration: none;
146
color: var(--vscode-statusBarItem-hoverForeground);
147
}
148
149
.monaco-workbench .part.statusbar > .items-container > .statusbar-item > a.disabled {
150
cursor: default;
151
}
152
153
.monaco-workbench .part.statusbar > .items-container > .statusbar-item span.codicon {
154
text-align: center;
155
color: inherit;
156
}
157
158
.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:active:not(.disabled) {
159
outline: 1px solid var(--vscode-contrastActiveBorder) !important;
160
outline-offset: -1px;
161
}
162
163
.monaco-workbench:not(.hc-light):not(.hc-black) .part.statusbar > .items-container > .statusbar-item a:active:not(.disabled) {
164
background-color: var(--vscode-statusBarItem-activeBackground) !important;
165
}
166
167
.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:hover:not(.disabled) {
168
outline: 1px dashed var(--vscode-contrastActiveBorder);
169
outline-offset: -1px;
170
}
171
172
.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:hover:not(.disabled) {
173
background-color: var(--vscode-statusBarItem-hoverBackground) !important;
174
}
175
176
/** Status bar entry item kinds */
177
178
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.warning-kind {
179
color: var(--vscode-statusBarItem-warningForeground);
180
background-color: var(--vscode-statusBarItem-warningBackground);
181
}
182
183
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.warning-kind a:hover:not(.disabled) {
184
color: var(--vscode-statusBarItem-warningHoverForeground);
185
background-color: var(--vscode-statusBarItem-warningHoverBackground) !important;
186
}
187
188
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.error-kind {
189
color: var(--vscode-statusBarItem-errorForeground);
190
background-color: var(--vscode-statusBarItem-errorBackground);
191
}
192
193
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.error-kind a:hover:not(.disabled) {
194
color: var(--vscode-statusBarItem-errorHoverForeground);
195
background-color: var(--vscode-statusBarItem-errorHoverBackground) !important;
196
}
197
198
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.prominent-kind {
199
color: var(--vscode-statusBarItem-prominentForeground);
200
background-color: var(--vscode-statusBarItem-prominentBackground);
201
}
202
203
/**
204
* Using :not(.compact-right):not(.compact-left) here to improve the visual appearance
205
* when a prominent item uses `compact: true` with other items. The presence of the
206
* !important directive for `background-color` otherwise blocks our special hover handling
207
* code here:
208
* https://github.com/microsoft/vscode/blob/c2037f152b2bb3119ce1d87f52987776540dd57f/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts#L483-L505
209
*
210
* Note: this is currently only done for the prominent kind, but needs to be expanded if
211
* other kinds use compact feature.
212
*/
213
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.prominent-kind:not(.compact-right):not(.compact-left) a:hover:not(.disabled) {
214
color: var(--vscode-statusBarItem-prominentHoverForeground);
215
background-color: var(--vscode-statusBarItem-prominentHoverBackground) !important;
216
}
217
218
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.remote-kind {
219
color: var(--vscode-statusBarItem-remoteForeground);
220
background-color: var(--vscode-statusBarItem-remoteBackground);
221
}
222
223
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.remote-kind a:hover:not(.disabled) {
224
color: var(--vscode-statusBarItem-remoteHoverForeground);
225
background-color: var(--vscode-statusBarItem-remoteHoverBackground) !important;
226
}
227
228
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.offline-kind {
229
color: var(--vscode-statusBarItem-offlineForeground);
230
background-color: var(--vscode-statusBarItem-offlineBackground);
231
}
232
233
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.offline-kind a:hover:not(.disabled) {
234
color: var(--vscode-statusBarItem-offlineHoverForeground);
235
background-color: var(--vscode-statusBarItem-offlineHoverBackground) !important;
236
}
237
238