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
3296 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:not(.reduce-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: 5px;
23
border-bottom-left-radius: 5px;
24
}
25
.monaco-workbench.mac:not(.fullscreen).macos-bigsur-or-newer .part.statusbar:focus {
26
/* macOS Big Sur increased rounded corners size */
27
border-bottom-right-radius: 10px;
28
border-bottom-left-radius: 10px;
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
padding-left: 7px; /* Add padding to the most left status bar item */
90
}
91
92
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.right.last-visible-item {
93
margin-right: 7px; /* Add margin to the most right status bar item. Margin is used to position beak properly. */
94
}
95
96
/* Tweak appearance for items with background to improve hover feedback */
97
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-background-color.left.first-visible-item,
98
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-background-color.right.last-visible-item {
99
padding-right: 0;
100
padding-left: 0;
101
}
102
103
.monaco-workbench .part.statusbar > .items-container > .statusbar-item > .statusbar-item-label {
104
cursor: pointer;
105
display: flex;
106
height: 100%;
107
margin-right: 3px;
108
margin-left: 3px;
109
padding: 0 5px 0 5px;
110
white-space: pre; /* gives some degree of styling */
111
align-items: center;
112
text-overflow: ellipsis;
113
overflow: hidden;
114
outline-width: 0px; /* do not render focus outline, we already have background */
115
}
116
117
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-left > .statusbar-item-label {
118
margin-left: 0;
119
margin-right: 5px; /* +2px because padding is smaller and we want to preserve spacing between items */
120
padding: 0 3px;
121
}
122
123
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-right > .statusbar-item-label {
124
margin-left: 5px; /* +2px because padding is smaller and we want to preserve spacing between items */
125
margin-right: 0;
126
padding: 0 3px;
127
}
128
129
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-left.compact-right > .statusbar-item-label {
130
margin-left: 0;
131
margin-right:0;
132
}
133
134
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-background-color > .statusbar-item-label {
135
margin-left: 0;
136
margin-right: 0;
137
padding-left: 10px;
138
padding-right: 10px;
139
}
140
141
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-left.has-background-color > .statusbar-item-label {
142
padding-left: 3px;
143
padding-right: 10px;
144
}
145
146
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.compact-right.has-background-color > .statusbar-item-label {
147
padding-left: 10px;
148
padding-right: 3px;
149
}
150
151
.monaco-workbench .part.statusbar > .items-container > .statusbar-item > a:hover:not(.disabled) {
152
text-decoration: none;
153
color: var(--vscode-statusBarItem-hoverForeground);
154
}
155
156
.monaco-workbench .part.statusbar > .items-container > .statusbar-item > a.disabled {
157
cursor: default;
158
}
159
160
.monaco-workbench .part.statusbar > .items-container > .statusbar-item span.codicon {
161
text-align: center;
162
font-size: 14px;
163
color: inherit;
164
}
165
166
.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:active:not(.disabled) {
167
outline: 1px solid var(--vscode-contrastActiveBorder) !important;
168
outline-offset: -1px;
169
}
170
171
.monaco-workbench:not(.hc-light):not(.hc-black) .part.statusbar > .items-container > .statusbar-item a:active:not(.disabled) {
172
background-color: var(--vscode-statusBarItem-activeBackground) !important;
173
}
174
175
.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:hover:not(.disabled) {
176
outline: 1px dashed var(--vscode-contrastActiveBorder);
177
outline-offset: -1px;
178
}
179
180
.monaco-workbench:not(.hc-light):not(.hc-black) .part.statusbar > .items-container > .statusbar-item a:hover:not(.disabled) {
181
background-color: var(--vscode-statusBarItem-hoverBackground);
182
}
183
184
/** Status bar entry item kinds */
185
186
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.warning-kind {
187
color: var(--vscode-statusBarItem-warningForeground);
188
background-color: var(--vscode-statusBarItem-warningBackground);
189
}
190
191
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.warning-kind a:hover:not(.disabled) {
192
color: var(--vscode-statusBarItem-warningHoverForeground);
193
background-color: var(--vscode-statusBarItem-warningHoverBackground) !important;
194
}
195
196
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.error-kind {
197
color: var(--vscode-statusBarItem-errorForeground);
198
background-color: var(--vscode-statusBarItem-errorBackground);
199
}
200
201
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.error-kind a:hover:not(.disabled) {
202
color: var(--vscode-statusBarItem-errorHoverForeground);
203
background-color: var(--vscode-statusBarItem-errorHoverBackground) !important;
204
}
205
206
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.prominent-kind {
207
color: var(--vscode-statusBarItem-prominentForeground);
208
background-color: var(--vscode-statusBarItem-prominentBackground);
209
}
210
211
/**
212
* Using :not(.compact-right):not(.compact-left) here to improve the visual appearance
213
* when a prominent item uses `compact: true` with other items. The presence of the
214
* !important directive for `background-color` otherwise blocks our special hover handling
215
* code here:
216
* https://github.com/microsoft/vscode/blob/c2037f152b2bb3119ce1d87f52987776540dd57f/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts#L483-L505
217
*
218
* Note: this is currently only done for the prominent kind, but needs to be expanded if
219
* other kinds use compact feature.
220
*/
221
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.prominent-kind:not(.compact-right):not(.compact-left) a:hover:not(.disabled) {
222
color: var(--vscode-statusBarItem-prominentHoverForeground);
223
background-color: var(--vscode-statusBarItem-prominentHoverBackground) !important;
224
}
225
226
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.remote-kind {
227
color: var(--vscode-statusBarItem-remoteForeground);
228
background-color: var(--vscode-statusBarItem-remoteBackground);
229
}
230
231
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.remote-kind a:hover:not(.disabled) {
232
color: var(--vscode-statusBarItem-remoteHoverForeground);
233
background-color: var(--vscode-statusBarItem-remoteHoverBackground) !important;
234
}
235
236
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.offline-kind {
237
color: var(--vscode-statusBarItem-offlineForeground);
238
background-color: var(--vscode-statusBarItem-offlineBackground);
239
}
240
241
.monaco-workbench .part.statusbar > .items-container > .statusbar-item.offline-kind a:hover:not(.disabled) {
242
color: var(--vscode-statusBarItem-offlineHoverForeground);
243
background-color: var(--vscode-statusBarItem-offlineHoverBackground) !important;
244
}
245
246