/******************************************************************************
*
* Copyright (c) 2017, the Perspective Authors.
*
* This file is part of the Perspective library, distributed under the terms
* of the Apache License 2.0. The full license can be found in the LICENSE
* file.
*
*/
:host {
#status_bar.titled {
padding-right: 108px;
#menu-bar {
opacity: 0.2;
}
}
// When settings open ...
#main_column #status_bar,
#main_column #status_bar.titled {
padding-right: 36px;
#menu-bar {
opacity: 1;
}
}
#status_bar {
overflow: hidden;
display: flex;
align-items: center;
background: var(--plugin--background);
padding-left: 8px;
position: absolute;
top: 0;
left: 0;
right: 0;
height: 48px;
.input-sizer {
display: inline-block;
align-items: center;
position: relative;
margin-top: 1px;
min-width: 65px;
overflow: hidden;
&:after,
input,
textarea {
width: auto;
grid-area: 1 / 1;
font-family: inherit;
}
input,
textarea {
// grid-area: 1 / 1;
position: absolute;
left: 0;
right: 0;
text-overflow: ellipsis;
padding: 0;
border: none;
background: transparent;
font-size: 12px;
color: inherit;
height: 100%;
}
&:after {
content: attr(data-value) " ";
color: var(--inactive--color, inherit);
visibility: hidden;
white-space: nowrap;
padding-right: 12px;
font-size: 12px;
}
&:focus-within {
textarea:focus,
input:focus {
outline: none;
}
}
}
.app-title {
margin-left: 12px;
font-size: 16px;
}
.section {
display: flex;
align-items: center;
}
#rows {
flex: 1 1000 auto;
overflow: hidden;
span {
white-space: nowrap;
font-size: 12px;
}
}
// Exceptions when the menu bar is visible and the settings panel is closed.
#menu-bar {
overflow: hidden;
flex: 0 1000000 auto;
.button {
height: 36px;
select {
height: 34px;
font-size: 9px;
}
}
}
#plugin-settings {
margin-left: auto;
}
#counter-arrow:before {
content: var(--status-bar-counter--content, "arrow_back");
}
span {
font-size: 9px;
margin: 0px 10px;
user-select: none;
height: 100%;
line-height: 36px;
&:before {
margin-right: 4px;
position: relative;
}
&:hover {
color: inherit;
}
}
span#rows {
margin-left: 2px;
}
span.icon {
height: 100%;
line-height: 36px;
margin: 0;
}
span#status {
&:before {
top: -1px;
color: #ccc;
font-size: 8px;
content: var(--status-icon--content, "\2B24");
}
&.connected,
&.error,
&.initializing {
opacity: 1;
}
&.connected:before {
color: rgb(51, 159, 77);
}
&.initializing:before {
color: rgb(223, 198, 57);
}
&.error:before {
color: rgb(252, 64, 52);
}
}
span.button:before {
height: 21px;
width: 21px;
background-repeat: no-repeat;
background-color: var(--icon--color);
content: "";
-webkit-mask-size: cover;
mask-size: cover;
pointer-events: none;
}
span#export {
&:before {
-webkit-mask-image: url("../svg/export-icon.svg");
mask-image: url("../svg/export-icon.svg");
}
}
span#lock {
&:before {
-webkit-mask-image: url("../svg/free-scroll-icon.svg");
mask-image: url("../svg/free-scroll-icon.svg");
}
}
span#reset {
&:before {
-webkit-mask-image: url("../svg/revert-icon.svg");
mask-image: url("../svg/revert-icon.svg");
}
}
span#copy {
&:before {
-webkit-mask-image: url("../svg/duplicate-icon.svg");
mask-image: url("../svg/duplicate-icon.svg");
}
}
span#theme {
&:before {
-webkit-mask-image: url("../svg/theme-icon.svg");
mask-image: url("../svg/theme-icon.svg");
}
}
span.button {
display: inline-flex;
align-items: center;
margin: 0px;
padding: 0 5px 0px 10px;
transition: background-color 0.2s;
color: var(--inactive--color, #ccc);
border: 1px solid transparent;
border-radius: 2px;
font-size: 9px;
& > span,
& > .dropdown-width-container {
pointer-events: none;
overflow: hidden;
display: none;
}
&:before {
z-index: 1;
font-size: 14px;
}
&:hover select {
background-color: transparent;
}
&:hover,
&.modal-target {
min-width: var(--button--min-width, 75px);
color: inherit;
cursor: pointer;
transition: none;
border: 1px solid var(--inactive--color);
& > span {
display: contents;
}
& > .dropdown-width-container {
overflow: visible;
display: inline;
pointer-events: all;
& > select {
cursor: pointer;
margin-left: -28px;
padding-left: 28px;
width: calc(100% + 28px);
height: 36px;
}
}
}
}
}
}
// Status bar status icon animations
:host #status_bar.updating span#status {
animation-name: status-bar-updating;
animation-duration: var(--status-icon-updating--animation-duration, 1s);
animation-iteration-count: infinite;
}
:host #status_bar span#status {
animation-name: status-bar;
animation-duration: var(--status-icon--animation-duration, 0.5s);
animation-iteration-count: 1;
}
@keyframes status-bar-updating {
0% {
filter: var(--status-icon-updating-keyframes-start--filter, opacity(1));
transform: var(--status-icon-updating-keyframes-start--transform, none);
}
100% {
filter: var(--status-icon-updating-keyframes-end--filter, opacity(0.2));
transform: var(--status-icon-updating-keyframes-end--transform, none);
}
}
@keyframes status-bar {
0% {
filter: var(--status-icon-keyframes-start--filter, saturate(4));
transform: var(--status-icon-keyframes-start--transform, none);
}
100% {
filter: var(--status-icon-keyframes-end--filter, saturate(1));
transform: var(--status-icon-keyframes-end--transform, none);
}
}