@jupyterlab/application
Version:
JupyterLab - Application
185 lines (156 loc) • 5.88 kB
CSS
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
:root {
/* These need to be root because tabs get attached to the body during dragging. */
--jp-private-horizontal-tab-height: 24px;
--jp-private-horizontal-tab-width: 216px;
--jp-private-horizontal-tab-active-top-border: 2px;
}
/*-----------------------------------------------------------------------------
| Tabs in the dock panel
|----------------------------------------------------------------------------*/
.lm-DockPanel-tabBar,
.lm-TabPanel-tabBar {
overflow: visible;
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
}
.lm-DockPanel-tabBar[data-orientation='horizontal'],
.lm-TabPanel-tabBar[data-orientation='horizontal'] {
min-height: calc(
var(--jp-private-horizontal-tab-height) + 2 * var(--jp-border-width)
);
}
.lm-DockPanel-tabBar[data-orientation='vertical'] {
min-width: 80px;
}
.lm-DockPanel-tabBar > .lm-TabBar-content,
.lm-TabPanel-tabBar > .lm-TabBar-content {
align-items: flex-end;
min-width: 0;
min-height: 0;
}
.lm-DockPanel-tabBar .lm-TabBar-tab,
.lm-TabPanel-tabBar .lm-TabBar-tab {
flex: 0 1 var(--jp-private-horizontal-tab-width);
align-items: center;
min-height: calc(
var(--jp-private-horizontal-tab-height) + 2 * var(--jp-border-width)
);
min-width: 0;
margin-left: calc(-1 * var(--jp-border-width));
line-height: var(--jp-private-horizontal-tab-height);
padding: 0 8px;
background: var(--jp-layout-color2);
border: var(--jp-border-width) solid var(--jp-border-color1);
border-bottom: none;
position: relative;
}
.lm-DockPanel-tabBar .lm-TabBar-tab:focus-visible,
.lm-DockPanel-tabBar .lm-TabBar-addButton:focus-visible,
.lm-TabPanel-tabBar .lm-TabBar-tab:focus-visible {
border: 1px solid var(--accent-fill-focus);
border-bottom: none;
/* Thicken the border by 1px within the element border */
box-shadow: 0 0 0 1px inset var(--accent-fill-focus);
outline: none;
}
.lm-DockPanel-tabBar .lm-TabBar-tab:not(.lm-mod-current):focus-visible::after,
.lm-TabPanel-tabBar .lm-TabBar-tab:not(.lm-mod-current):focus-visible::after {
border-bottom-color: var(--accent-fill-focus);
}
.lm-DockPanel-tabBar .lm-TabBar-tab:hover:not(.lm-mod-current),
.lm-TabPanel-tabBar .lm-TabBar-tab:hover:not(.lm-mod-current) {
background: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
}
.lm-DockPanel-tabBar .lm-TabBar-tab:not(.lm-mod-current)::after,
.lm-DockPanel-tabBar .lm-TabBar-addButton::after {
position: absolute;
content: '';
bottom: 0;
left: calc(-1 * var(--jp-border-width));
width: calc(100% + 2 * var(--jp-border-width));
border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
}
.lm-DockPanel-tabBar .lm-TabBar-tab:first-child,
.lm-TabPanel-tabBar .lm-TabBar-tab:first-child {
margin-left: 0;
}
/* This is a current tab of a tab bar in the dock panel: each tab bar has 1. */
.lm-DockPanel-tabBar .lm-TabBar-tab.lm-mod-current {
background: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
}
.lm-TabPanel-tabBar .lm-TabBar-tab.lm-mod-current {
background: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
}
/* This is the main application level current tab: only 1 exists. */
.lm-DockPanel-tabBar .lm-TabBar-tab.jp-mod-current::before {
position: absolute;
top: calc(-1 * var(--jp-border-width) + 1px);
left: calc(-1 * var(--jp-border-width));
content: '';
height: var(--jp-private-horizontal-tab-active-top-border);
width: calc(100% + 2 * var(--jp-border-width));
background: var(--jp-brand-color1);
}
/* This is the left tab bar current tab: only 1 exists. */
.lm-TabBar-tab.lm-mod-current {
background: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
}
.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab,
.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab {
flex: 0 1 40px;
margin-top: -1px;
line-height: 40px;
}
.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab {
border-right: none;
}
.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab {
border-left: none;
}
.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab:first-child,
.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab:first-child {
margin-top: 0;
}
/* stylelint-disable selector-max-class */
.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab.lm-mod-current,
.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab.lm-mod-current {
min-width: 80px;
max-width: 80px;
}
.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab.lm-mod-current {
transform: translateX(-1px);
}
.lm-DockPanel-tabBar .lm-TabBar-tab .lm-TabBar-tabIcon,
.lm-TabBar-tab.lm-mod-drag-image .lm-TabBar-tabIcon,
.lm-TabPanel-tabBar .lm-TabBar-tab .lm-TabBar-tabIcon {
width: 14px;
background-position: left center;
background-repeat: no-repeat;
background-size: 14px;
margin-right: 4px;
}
/* stylelint-enable selector-max-class */
.lm-TabBar-tab.lm-mod-drag-image {
background: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
border: var(--jp-border-width) solid var(--jp-border-color1);
border-top: var(--jp-border-width) solid var(--jp-brand-color1);
box-shadow: var(--jp-elevation-z4);
font-size: var(--jp-ui-font-size1);
line-height: var(--jp-private-horizontal-tab-height);
min-height: var(--jp-private-horizontal-tab-height);
min-width: var(--jp-private-horizontal-tab-width);
padding: 0 10px;
transform: translateX(-40%) translateY(-58%);
}