mirror of
https://github.com/atom/atom.git
synced 2026-02-07 05:05:02 -05:00
251 lines
5.1 KiB
Plaintext
251 lines
5.1 KiB
Plaintext
|
|
// Tabs
|
|
|
|
@tab-border: 1px solid @tab-border-color;
|
|
@title-padding: .66em;
|
|
@icon-padding-top: .5em; // 2.5 (total) - 1.5 (text) / 2
|
|
@icon-padding-right: .5em;
|
|
|
|
.tab-bar {
|
|
position: relative;
|
|
height: @ui-tab-height;
|
|
box-shadow: inset 0 -1px 0 @tab-border-color;
|
|
background: @tab-bar-background-color;
|
|
overflow-x: auto;
|
|
overflow-y: hidden;
|
|
border-radius: 0;
|
|
|
|
&::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
&:empty {
|
|
display: none;
|
|
}
|
|
|
|
|
|
// Tab ----------------------
|
|
|
|
.tab {
|
|
position: relative;
|
|
top: 0;
|
|
padding: 0;
|
|
margin: 0;
|
|
height: inherit;
|
|
font-size: inherit;
|
|
line-height: @ui-tab-height;
|
|
color: @tab-text-color;
|
|
background-color: @tab-background-color;
|
|
box-shadow: inherit;
|
|
border-left: @tab-border;
|
|
&.active {
|
|
color: @tab-text-color-active;
|
|
background-color: @tab-background-color-active;
|
|
box-shadow: none;
|
|
}
|
|
&:first-of-type {
|
|
border-left-color: transparent;
|
|
}
|
|
&:last-of-type {
|
|
// use box-shadow to not take up any space
|
|
box-shadow: inset 0 -1px 0 @tab-border-color, 1px 0 0 @base-border-color;
|
|
}
|
|
&.active:last-of-type {
|
|
box-shadow: 1px 0 0 @base-border-color;
|
|
}
|
|
|
|
|
|
// Title ----------------------
|
|
|
|
.title {
|
|
text-align: center;
|
|
margin: 0 @title-padding;
|
|
}
|
|
|
|
// VCS coloring ----------------------
|
|
&:not(.active) .status-added { color: @tab-inactive-status-added; }
|
|
&:not(.active) .status-modified { color: @tab-inactive-status-modified; }
|
|
|
|
|
|
// Icons ----------------------
|
|
|
|
.title.title:before {
|
|
margin-right: .3em;
|
|
width: auto;
|
|
height: auto;
|
|
line-height: 1;
|
|
font-size: 1.125em;
|
|
vertical-align: -.0625em; // Adjust center for the 0.1em font-size increase
|
|
}
|
|
|
|
// Close icon ----------------------
|
|
|
|
.close-icon {
|
|
top: @icon-padding-top;
|
|
right: @icon-padding-right;
|
|
z-index: 2;
|
|
font-size: 1em;
|
|
width: 1.5em;
|
|
height: 1.5em;
|
|
line-height: 1.5;
|
|
text-align: center;
|
|
border-radius: @component-border-radius;
|
|
background-color: inherit;
|
|
overflow: hidden;
|
|
transform: scale(0);
|
|
transition: transform .08s;
|
|
&:hover {
|
|
color: @accent-text-color;
|
|
background-color: @accent-color;
|
|
}
|
|
&:active {
|
|
background-color: fade(@accent-color, 50%);
|
|
}
|
|
&::before {
|
|
z-index: 1;
|
|
font-size: 1.1em;
|
|
vertical-align: -.05em; // Adjust center for the 0.1em font-size increase
|
|
width: auto;
|
|
height: auto;
|
|
pointer-events: none;
|
|
}
|
|
}
|
|
&:hover .close-icon {
|
|
transform: scale(1);
|
|
transition-duration: .16s;
|
|
}
|
|
}
|
|
|
|
// Modified icon ----------------------
|
|
|
|
.tab.modified {
|
|
&:hover .close-icon {
|
|
color: @accent-color;
|
|
&:hover {
|
|
color: @accent-bg-text-color;
|
|
}
|
|
}
|
|
&:not(:hover) .close-icon {
|
|
top: @icon-padding-top;
|
|
right: @icon-padding-right;
|
|
width: 1.5em;
|
|
height: 1.5em;
|
|
line-height: 1.5;
|
|
color: @accent-color;
|
|
border-radius: @component-border-radius;
|
|
border: none;
|
|
transform: scale(1);
|
|
&::before {
|
|
content: "\f052";
|
|
display: inline-block;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// Tabs in the docks ----------------------
|
|
|
|
atom-dock & {
|
|
.tab.active {
|
|
background-color: @tool-panel-background-color;
|
|
}
|
|
}
|
|
|
|
|
|
// Dragging ----------------------
|
|
|
|
.tab.is-dragging {
|
|
opacity: .5;
|
|
|
|
.close-icon,
|
|
&:before {
|
|
visibility: hidden;
|
|
}
|
|
}
|
|
|
|
.placeholder {
|
|
position: relative;
|
|
pointer-events: none;
|
|
|
|
// bar
|
|
&:before {
|
|
z-index: 1;
|
|
margin: 0;
|
|
width: 2px;
|
|
height: @ui-tab-height;
|
|
background-color: @accent-color;
|
|
}
|
|
|
|
// arrow
|
|
&:after {
|
|
z-index: 0;
|
|
top: @ui-tab-height/2;
|
|
margin: -4px 0 0 -3px;
|
|
border-radius: 0;
|
|
border: 4px solid @accent-color;
|
|
transform: rotate(45deg);
|
|
background: transparent;
|
|
}
|
|
|
|
&:last-child {
|
|
&:before {
|
|
margin-left: -2px;
|
|
}
|
|
&:after {
|
|
transform: none;
|
|
margin-left: -10px;
|
|
border-color: transparent @accent-color transparent transparent;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// Overrides ----------------------
|
|
|
|
// keep tabs same size when active
|
|
.tab,
|
|
.tab.active {
|
|
padding-right: 0;
|
|
.title {
|
|
padding: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// Active pane marker --------------
|
|
|
|
atom-pane-axis > atom-pane.active,
|
|
atom-pane-container > atom-pane.pane {
|
|
.tab.active:before {
|
|
content: "";
|
|
position: absolute;
|
|
pointer-events: none;
|
|
z-index: 2;
|
|
top: 0;
|
|
left: -1px; // cover left border
|
|
bottom: 0;
|
|
width: 2px;
|
|
background: @accent-color;
|
|
}
|
|
}
|
|
|
|
// hide marker in docks
|
|
atom-dock .tab-bar .tab::before {
|
|
display: none;
|
|
}
|
|
|
|
|
|
// Custom tabs --------------
|
|
|
|
.tab-bar .tab.active {
|
|
&[data-type$="Editor"],
|
|
&[data-type$="AboutView"],
|
|
&[data-type$="TimecopView"],
|
|
&[data-type$="StyleguideView"],
|
|
&[data-type="MarkdownPreviewView"] {
|
|
color: @tab-text-color-editor;
|
|
background-color: @tab-background-color-editor; // Match syntax background color
|
|
}
|
|
}
|