@theia/core
Version:
Theia is a cloud & desktop IDE framework implemented in TypeScript.
231 lines (194 loc) • 6.04 kB
CSS
/********************************************************************************
* Copyright (C) 2017, 2018 TypeFox and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the Eclipse
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
* with the GNU Classpath Exception which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
********************************************************************************/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
:root {
--theia-private-menubar-height: 32px;
--theia-private-menu-item-height: 24px;
--theia-menu-z-index: 10000;
}
/*-----------------------------------------------------------------------------
| MenuBar
|----------------------------------------------------------------------------*/
.p-Widget.p-MenuBar {
display: flex;
align-items: center;
padding-left: 5px;
font-size: var(--theia-ui-font-size1);
}
.p-MenuBar-menu {
transform: translateY(calc(-2 * var(--theia-border-width)));
}
.p-MenuBar-content {
display: flex;
align-items: center;
}
.p-MenuBar-item {
padding: 0px 8px;
line-height: var(--theia-content-line-height);
border-radius: 4px;
}
.p-MenuBar-item .p-MenuBar-itemLabel {
white-space: pre;
}
.p-MenuBar-item.p-mod-active {
background: var(--theia-menubar-selectionBackground);
color: var(--theia-menubar-selectionForeground);
opacity: 1;
}
.p-MenuBar.p-mod-active .p-MenuBar-item.p-mod-active {
z-index: calc(var(--theia-menu-z-index) - 1);
background: var(--theia-menubar-selectionBackground);
border-left: var(--theia-border-width) solid
var(--theia-menubar-selectionBorder);
border-right: var(--theia-border-width) solid
var(--theia-menubar-selectionBorder);
}
.p-MenuBar-item.p-mod-disabled {
opacity: var(--theia-mod-disabled-opacity);
}
.p-MenuBar-item.p-type-separator {
margin: 2px;
padding: 0;
border: none;
border-left: var(--theia-border-width) solid
var(--theia-menu-separatorBackground);
}
.p-MenuBar-itemMnemonic {
text-decoration: underline;
}
#theia-top-panel {
background: var(--theia-titleBar-activeBackground);
color: var(--theia-titleBar-activeForeground);
display: flex;
min-height: var(--theia-private-menubar-height);
border-bottom: 1px solid var(--theia-titleBar-border);
}
#theia-top-panel:window-inactive,
#theia-top-panel:-moz-window-inactive {
background: var(--theia-titleBar-inactiveBackground);
color: var(--theia-titleBar-inactiveForeground);
}
/*-----------------------------------------------------------------------------
| Menu
|----------------------------------------------------------------------------*/
.p-Menu {
z-index: var(--theia-menu-z-index);
padding: 4px;
background: var(--theia-menu-background);
color: var(--theia-menu-foreground);
font-size: var(--theia-ui-font-size1);
box-shadow: 0px 1px 6px var(--theia-widget-shadow);
border: 1px solid var(--theia-menu-border);
border-radius: 5px;
}
.p-Menu:focus {
outline: none;
}
.p-Menu-item {
min-height: var(--theia-private-menu-item-height);
max-height: var(--theia-private-menu-item-height);
padding: 0px;
/**
* FireFox adds 0.5px to all menu items for some reason
* Subtracting that amount fixes the behavior on FireFox and doesn't introduce issues on Chromium
*/
line-height: calc(var(--theia-private-menu-item-height) - 0.5px);
overflow: hidden;
}
.p-Menu-item.p-mod-active {
color: var(--theia-menu-selectionForeground);
border: thin solid var(--theia-menu-selectionBorder);
opacity: 1;
cursor: pointer;
}
/**
* We cannot apply border-radius on items with `display: table-row`
* So we apply it to its first and last child
*/
.p-Menu-item.p-mod-active > div {
background: var(--theia-menu-selectionBackground);
}
.p-Menu-item.p-mod-active > div:first-child {
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
.p-Menu-item.p-mod-active > div:last-child {
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
.p-Menu-item.p-mod-disabled {
opacity: var(--theia-mod-disabled-opacity);
}
.p-Menu-itemIcon {
width: 21px;
padding: 0px 2px 0px 4px;
height: var(--theia-private-menu-item-height);
}
.p-Menu-itemLabel {
padding: 0px 32px 0px 2px;
}
.p-Menu-itemMnemonic {
text-decoration: underline;
}
.p-Menu-itemShortcut {
padding: 0px;
}
.p-Menu-itemSubmenuIcon {
width: var(--theia-icon-size);
padding: 0px 10px 0px 0px;
}
.p-Menu-item[data-type="separator"] > div {
padding: 0;
height: 9px;
opacity: 0.36;
}
.p-Menu-item[data-type="separator"] > div::after {
content: "";
display: block;
position: relative;
top: 4px;
border-top: var(--theia-border-width) solid
var(--theia-menu-separatorBackground);
}
.p-Menu-item[data-type="separator"] > div:first-child:after {
margin-left: -4px;
}
.p-Menu-item[data-type="separator"] > div:last-child::after {
margin-right: -4px;
}
.p-Menu-itemIcon::before,
.p-Menu-itemSubmenuIcon::before {
font: normal normal normal 16px/1 codicon;
display: inline-block;
text-decoration: none;
text-rendering: auto;
text-align: center;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
transform: translateY(20%);
}
.p-Menu-item.p-mod-toggled > .p-Menu-itemIcon::before {
content: "\eab2";
transform: scale(0.8) translateY(20%);
}
.p-Menu-item[data-type="submenu"] > .p-Menu-itemSubmenuIcon::before {
content: "\eab6";
}