web-toolkit
Version:
A GTK inspired toolkit designed to build awesome web apps
1,417 lines (1,286 loc) • 199 kB
CSS
* {
box-sizing: border-box; }
/*************
* Constants *
*************/
/*************
* Colors *
*************/
/*************
* Dimensions *
*************/
/***************************
* Check and Radio buttons *
***************************/
/**********************
* General Typography *
**********************/
body {
font-family: 'Cantarell', 'Ubuntu', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; }
code {
font-family: source-code-pro, 'Source Code Pro', Menlo, Monaco, Consolas, 'Courier New', monospace; }
.title-large {
font-weight: 300;
font-size: 24pt; }
h1 {
font-weight: 800;
font-size: 20pt; }
h2 {
font-weight: 800;
font-size: 15pt; }
h3 {
font-weight: 700;
font-size: 15pt; }
h4 {
font-weight: 700;
font-size: 13pt; }
html, body {
font-weight: 400;
font-size: 11pt; }
.heading {
font-weight: 700;
font-size: 11pt; }
.caption-heading {
font-weight: 700;
font-size: 9pt; }
.caption {
font-weight: 400;
font-size: 9pt; }
button {
font-size: inherit;
font-family: inherit; }
code {
font-size: 0.9em;
padding: 1px 4px;
color: black;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 3px; }
pre {
font-size: 0.9em;
padding: 1px 4px;
color: black;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 3px; }
.text-info {
color: #3584e4;
--icon-color: #3584e4; }
.text-success {
color: #33d17a;
--icon-color: #33d17a; }
.text-warning {
color: #f57900;
--icon-color: #f57900; }
.text-danger {
color: #e01b24;
--icon-color: #e01b24; }
.text-muted {
color: #929595;
--icon-color: #929595; }
.text-italic {
font-style: italic; }
.text-bold {
font-weight: 700; }
.weight-100 {
font-weight: 100; }
.weight-200 {
font-weight: 200; }
.weight-300 {
font-weight: 300; }
.weight-400 {
font-weight: 400; }
.weight-500 {
font-weight: 500; }
.weight-600 {
font-weight: 600; }
.weight-700 {
font-weight: 700; }
.weight-800 {
font-weight: 800; }
.weight-900 {
font-weight: 900; }
/***************
* Variables *
***************/
/***************
* Selections *
***************/
*::selection {
background-color: #3584e4;
color: #ffffff; }
/***************
* Scrollbars *
***************/
*::-webkit-scrollbar {
width: 8px;
height: 8px; }
*::-webkit-scrollbar-track {
background-color: transparent;
padding: 0 5px; }
*::-webkit-scrollbar-thumb {
background-clip: padding-box;
background-color: #bbb;
border: 2px solid transparent;
border-radius: 5px;
margin: 0 2px; }
*::-webkit-scrollbar-thumb:hover {
background-color: #999; }
*::-webkit-scrollbar-thumb:active {
background-color: #888; }
/* Nice scrollbars */
/***************
* Utils *
***************/
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0; }
.user-select-none {
user-select: none; }
.fill {
width: 100%;
height: 100%; }
.fill-width {
width: 100%; }
.fill-height {
height: 100%; }
/***************
* Base States *
***************/
.background {
color: #2e3436;
background-color: #f6f5f4; }
.window-inactive .background {
text-shadow: none;
--icon-shadow: none; }
.background-low {
background-color: #ffffff; }
.background-default {
background-color: #f6f5f4; }
.background-medium {
background-color: #f1f0ee; }
.background-high {
background-color: #e1dedb; }
/***************
* Layout *
***************/
.separator {
border-bottom: 1px solid #d8d4d0;
border-right: 1px solid #d8d4d0;
min-width: 1px;
min-height: 1px; }
.Box.horizontal {
display: flex;
flex-direction: row; }
.Box.horizontal > *:not(:last-child) {
margin-right: 1rem; }
.Box.horizontal.compact > *:not(:last-child) {
margin-right: 0; }
.Box.vertical {
display: flex;
flex-direction: column; }
.Box.vertical > *:not(:last-child) {
margin-bottom: 1rem; }
.Box.vertical.compact > *:not(:last-child) {
margin-bottom: 0; }
.Box.inline {
display: inline-flex; }
.Box.align {
align-items: center; }
.Box.align-center {
align-items: center; }
.Box.align-start {
align-items: flex-start; }
.Box.align-end {
align-items: flex-end; }
.Box.justify {
justify-content: center; }
.Box.justify-center {
justify-content: center; }
.Box.justify-start {
justify-content: flex-start; }
.Box.justify-end {
justify-content: flex-end; }
.Box.space-around {
justify-content: space-around; }
.Box.space-between {
justify-content: space-between; }
.Box.fill {
display: inline-flex;
width: 100%;
height: 100%; }
.Box.fill-width {
display: inline-flex;
width: 100%; }
.Box.fill-height {
display: inline-flex;
height: 100%; }
.Box.padded {
padding: 1em; }
.Box.expand-children > * {
flex: 1; }
.Box.border {
border: 1px solid #cdc7c2; }
.Box__fill {
flex: 1; }
.Box__fill.expand-children > * {
width: 100%;
height: 100%; }
.view, .IconView {
color: black;
background-color: #ffffff; }
.view:disabled, .IconView:disabled {
color: #929595;
background-color: #f7f6f5; }
.view.selected:focus, .selected.IconView:focus, .view.selected, .selected.IconView {
border-radius: 3px; }
.IconView {
outline: 0 solid transparent;
outline-offset: 4px; }
.IconView:focus:focus-visible {
outline-color: rgba(53, 132, 228, 0.5);
outline-width: 2px;
outline-offset: -2px; }
.IconView.dnd-active {
box-shadow: none; }
.IconView > dndtarget.dnd-active {
border-style: solid;
border-width: 1px;
border-color: #185fb4; }
.Flowbox > .Flowbox__child {
padding: 3px;
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.Flowbox > .Flowbox__child {
outline: 0 solid transparent;
outline-offset: 4px; }
.Flowbox > .Flowbox__child:focus:focus-visible {
outline-color: rgba(53, 132, 228, 0.5);
outline-width: 2px;
outline-offset: -2px; }
.Flowbox > .Flowbox__child.selected {
outline-color: rgba(255, 255, 255, 0.8); }
.Grid > .Grid__child {
padding: 3px;
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.Grid > .Grid__child {
outline: 0 solid transparent;
outline-offset: 4px; }
.Grid > .Grid__child:focus:focus-visible {
outline-color: rgba(53, 132, 228, 0.5);
outline-width: 2px;
outline-offset: -2px; }
.Grid > .Grid__child.selected {
outline-color: rgba(255, 255, 255, 0.8); }
.Grid > .Grid__child .Grid__box {
border-spacing: 8px;
margin: 12px; }
.SelectionArea, .content-view > .SelectionArea, .table > .SelectionArea, .Flowbox > .SelectionArea, .Grid > .SelectionArea {
border: 1px solid #1b6acb;
background-color: rgba(27, 106, 203, 0.2); }
/*********
* Links *
*********/
.link {
color: #1b6acb;
text-decoration: underline;
cursor: pointer;
transition: color 150ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
border-radius: 5px; }
.link {
position: relative;
outline: none;
overflow: visible; }
.link::after {
content: '';
position: absolute;
pointer-events: none;
z-index: 2;
display: inline-block;
border: 2px solid transparent;
border-radius: inherit;
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
top: -4px;
left: -4px;
width: calc(100% - -4px);
height: calc(100% - -4px); }
.link:focus:focus-visible {
outline: none; }
.link:focus:focus-visible::after {
border: 2px solid rgba(53, 132, 228, 0.5);
top: -2px;
left: -2px;
width: 100%;
height: 100%; }
.link:not(:disabled):not(.disabled):visited {
color: #15539e; }
*.selected .link:not(:disabled):not(.disabled):visited {
color: #a1bad8; }
.link:not(:disabled):not(.disabled):hover {
color: #3584e4; }
*.selected .link:not(:disabled):not(.disabled):hover {
color: #ebf3fc; }
.link:not(:disabled):not(.disabled):active {
color: #1b6acb; }
*.selected .link:not(:disabled):not(.disabled):active {
color: #d1e1f5; }
.link:disabled {
color: rgba(115, 115, 115, 0.8); }
.link.selected, *.selected .link {
color: #d1e1f5; }
/***********
* Heading *
**********/
.Heading {
position: relative; }
.Heading:hover .Heading__anchor {
opacity: 0.5; }
.Heading__anchor {
position: absolute;
top: 0;
left: 0;
transform: translateX(-100%);
height: 100%;
line-height: 100%;
padding-right: 4px;
opacity: 0;
display: flex;
justify-content: center;
align-items: center;
color: #2e3436 !important;
text-decoration: none !important; }
/*****************
* Labels & Text *
****************/
.Label {
outline: 0 solid transparent;
outline-offset: 4px; }
.Label:focus:focus-visible {
outline-color: rgba(53, 132, 228, 0.5);
outline-width: 2px;
outline-offset: -2px; }
.Label.mini {
height: 18px;
min-height: 18px;
font-size: 10px;
--icon-size: 11px; }
.Label.small {
height: 22px;
min-height: 22px;
font-size: 12px;
--icon-size: 13px; }
.Label.medium {
height: 28px;
min-height: 28px;
font-size: 13.333333px;
--icon-size: 16px; }
.Label.large {
height: 36px;
min-height: 36px;
font-size: 15px;
--icon-size: 20px; }
.Label.huge {
height: 42px;
min-height: 42px;
font-size: 18px;
--icon-size: 23px; }
.Label::selection {
background-color: #3584e4;
color: #ffffff; }
.Label.disabled {
color: #929595; }
.Button .Label.disabled {
color: inherit; }
.Label.info {
color: #3584e4; }
.Label.info.disabled {
color: rgba(53, 132, 228, 0.5); }
.Label.success {
color: #2abb6b; }
.Label.success.disabled {
color: rgba(42, 187, 107, 0.5); }
.Label.warning {
color: #f57900; }
.Label.warning.disabled {
color: rgba(245, 121, 0, 0.5); }
.Label.danger {
color: #cc0000; }
.Label.danger.disabled {
color: rgba(204, 0, 0, 0.5); }
.Label.title {
color: #929595;
font-weight: 700; }
.Label.align-left {
text-align: left; }
.Label.align-center {
text-align: center; }
.Label.align-right {
text-align: right; }
.Label.ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; }
.Label.fill {
width: 100%;
height: 100%; }
.Label.fill-width {
width: 100%; }
.Label.fill-height {
height: 100%; }
.Text {
margin: 0; }
.Text.mini {
font-size: 12px;
line-height: 1.4;
--icon-size: 11px; }
.Text.small {
font-size: 14.4px;
line-height: 1.4;
--icon-size: 13px; }
.Text.medium {
font-size: 15.9999996px;
line-height: 1.4;
--icon-size: 16px; }
.Text.large {
font-size: 18px;
line-height: 1.4;
--icon-size: 20px; }
.Text.huge {
font-size: 21.6px;
line-height: 1.4;
--icon-size: 23px; }
.Text.hero {
font-size: 24px;
font-weight: 300;
line-height: 1.4; }
.dim-label, .titlebar:not(.HeaderBar) .subtitle,
.HeaderBar .subtitle, .InputNumber.vertical > .Input__area > input > .Input__area > input::placeholder, .InputNumber:not(.vertical) > .Input__area > input::placeholder,
.Input > .Input__area > input::placeholder, .Label.separator {
opacity: 0.55;
text-shadow: none; }
.osd .scale-popup, .app-notification,
.osd {
color: #eeeeec;
border: none;
background-color: rgba(53, 53, 53, 0.7);
background-clip: padding-box;
text-shadow: 0 1px black;
--icon-shadow: 0 1px black; }
/************
* Alerts *
***********/
.Alert {
border: 1px solid #cdc7c2;
border-left-width: 6px;
border-radius: 5px;
padding: 8px; }
.Alert.info {
color: #2e3436;
--icon-color: #5787c2;
background-color: #c4d7ee;
border-color: #a4c1e6; }
.Alert.info a {
color: #1b1f20;
font-weight: bold; }
.Alert.info a:not(:disabled):not(.disabled):hover {
color: #292f30; }
.Alert.info .Alert__close {
color: #2e3436;
outline-color: rgba(255, 255, 255, 0.8);
border-color: #9cbce3;
border-bottom-color: #74a1d8;
background-color: #c4d7ee;
box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 1px 2px rgba(0, 0, 0, 0.07); }
.Alert.info .Alert__close::before {
content: ' ';
position: absolute;
pointer-events: none;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
background: linear-gradient(to top, rgba(0, 0, 0, 0.03), transparent);
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.Alert.info .Alert__close.hover:not(:disabled):not(.disabled), .Alert.info .Alert__close:not(:disabled):not(.disabled):hover {
color: #2e3436;
border-color: #9cbce3;
border-bottom-color: #74a1d8;
background-color: #cadbf0;
box-shadow: inset 0 1px #c0d4ed, 0 1px 2px rgba(0, 0, 0, 0.07); }
.Alert.info .Alert__close.hover:not(:disabled):not(.disabled)::before, .Alert.info .Alert__close:not(:disabled):not(.disabled):hover::before {
opacity: 0; }
.Alert.info .Alert__close.active:not(:disabled):not(.disabled), .Alert.info .Alert__close:not(:disabled):not(.disabled):active {
color: #2e3436;
border-color: #9cbce3;
background-color: #8cb1df;
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
text-shadow: none;
--icon-shadow: none; }
.Alert.info .Alert__close.active:not(:disabled):not(.disabled)::before, .Alert.info .Alert__close:not(:disabled):not(.disabled):active::before {
opacity: 0; }
.Alert.success {
color: #2e3436;
--icon-color: #59ac7e;
background-color: #b4d0c0;
border-color: #9ac0ab; }
.Alert.success a {
color: #1b1f20;
font-weight: bold; }
.Alert.success a:not(:disabled):not(.disabled):hover {
color: #292f30; }
.Alert.success .Alert__close {
color: #2e3436;
outline-color: rgba(255, 255, 255, 0.8);
border-color: #94bca6;
border-bottom-color: #75a98c;
background-color: #b4d0c0;
box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.07); }
.Alert.success .Alert__close::before {
content: ' ';
position: absolute;
pointer-events: none;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
background: linear-gradient(to top, rgba(0, 0, 0, 0.03), transparent);
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.Alert.success .Alert__close.hover:not(:disabled):not(.disabled), .Alert.success .Alert__close:not(:disabled):not(.disabled):hover {
color: #2e3436;
border-color: #94bca6;
border-bottom-color: #75a98c;
background-color: #b8d3c4;
box-shadow: inset 0 1px #b0cebe, 0 1px 2px rgba(0, 0, 0, 0.07); }
.Alert.success .Alert__close.hover:not(:disabled):not(.disabled)::before, .Alert.success .Alert__close:not(:disabled):not(.disabled):hover::before {
opacity: 0; }
.Alert.success .Alert__close.active:not(:disabled):not(.disabled), .Alert.success .Alert__close:not(:disabled):not(.disabled):active {
color: #2e3436;
border-color: #94bca6;
background-color: #88b59c;
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
text-shadow: none;
--icon-shadow: none; }
.Alert.success .Alert__close.active:not(:disabled):not(.disabled)::before, .Alert.success .Alert__close:not(:disabled):not(.disabled):active::before {
opacity: 0; }
.Alert.warning {
color: #2e3436;
--icon-color: #d07925;
background-color: #eed3ba;
border-color: #e6bf99; }
.Alert.warning a {
color: #1b1f20;
font-weight: bold; }
.Alert.warning a:not(:disabled):not(.disabled):hover {
color: #292f30; }
.Alert.warning .Alert__close {
color: #2e3436;
outline-color: rgba(255, 255, 255, 0.8);
border-color: #e4ba91;
border-bottom-color: #d9a068;
background-color: #eed3ba;
box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 1px 2px rgba(0, 0, 0, 0.07); }
.Alert.warning .Alert__close::before {
content: ' ';
position: absolute;
pointer-events: none;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
background: linear-gradient(to top, rgba(0, 0, 0, 0.03), transparent);
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.Alert.warning .Alert__close.hover:not(:disabled):not(.disabled), .Alert.warning .Alert__close:not(:disabled):not(.disabled):hover {
color: #2e3436;
border-color: #e4ba91;
border-bottom-color: #d9a068;
background-color: #efd7c0;
box-shadow: inset 0 1px #edd1b6, 0 1px 2px rgba(0, 0, 0, 0.07); }
.Alert.warning .Alert__close.hover:not(:disabled):not(.disabled)::before, .Alert.warning .Alert__close:not(:disabled):not(.disabled):hover::before {
opacity: 0; }
.Alert.warning .Alert__close.active:not(:disabled):not(.disabled), .Alert.warning .Alert__close:not(:disabled):not(.disabled):active {
color: #2e3436;
border-color: #e4ba91;
background-color: #dfaf81;
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
text-shadow: none;
--icon-shadow: none; }
.Alert.warning .Alert__close.active:not(:disabled):not(.disabled)::before, .Alert.warning .Alert__close:not(:disabled):not(.disabled):active::before {
opacity: 0; }
.Alert.danger {
color: #2e3436;
--icon-color: #ad1f1f;
background-color: #ebadad;
border-color: #e28d8d; }
.Alert.danger a {
color: #1b1f20;
font-weight: bold; }
.Alert.danger a:not(:disabled):not(.disabled):hover {
color: #292f30; }
.Alert.danger .Alert__close {
color: #2e3436;
outline-color: rgba(255, 255, 255, 0.8);
border-color: #e08585;
border-bottom-color: #d65c5c;
background-color: #ebadad;
box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.07); }
.Alert.danger .Alert__close::before {
content: ' ';
position: absolute;
pointer-events: none;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
background: linear-gradient(to top, rgba(0, 0, 0, 0.03), transparent);
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.Alert.danger .Alert__close.hover:not(:disabled):not(.disabled), .Alert.danger .Alert__close:not(:disabled):not(.disabled):hover {
color: #2e3436;
border-color: #e08585;
border-bottom-color: #d65c5c;
background-color: #ecb4b4;
box-shadow: inset 0 1px #eaa9a9, 0 1px 2px rgba(0, 0, 0, 0.07); }
.Alert.danger .Alert__close.hover:not(:disabled):not(.disabled)::before, .Alert.danger .Alert__close:not(:disabled):not(.disabled):hover::before {
opacity: 0; }
.Alert.danger .Alert__close.active:not(:disabled):not(.disabled), .Alert.danger .Alert__close:not(:disabled):not(.disabled):active {
color: #2e3436;
border-color: #e08585;
background-color: #dc7474;
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
text-shadow: none;
--icon-shadow: none; }
.Alert.danger .Alert__close.active:not(:disabled):not(.disabled)::before, .Alert.danger .Alert__close:not(:disabled):not(.disabled):active::before {
opacity: 0; }
.Alert {
color: #2e3436;
--icon-color: #323232;
background-color: #e1dedb;
border-color: #cecac5; }
.Alert a {
color: #1b1f20;
font-weight: bold; }
.Alert a:not(:disabled):not(.disabled):hover {
color: #292f30; }
.Alert .Alert__close {
color: #2e3436;
outline-color: rgba(255, 255, 255, 0.8);
border-color: #cac5bf;
border-bottom-color: #b3aba3;
background-color: #e1dedb;
box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 1px 2px rgba(0, 0, 0, 0.07); }
.Alert .Alert__close::before {
content: ' ';
position: absolute;
pointer-events: none;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
background: linear-gradient(to top, rgba(0, 0, 0, 0.03), transparent);
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.Alert .Alert__close.hover:not(:disabled):not(.disabled), .Alert .Alert__close:not(:disabled):not(.disabled):hover {
color: #2e3436;
border-color: #cac5bf;
border-bottom-color: #b3aba3;
background-color: #e4e2df;
box-shadow: inset 0 1px #dfdbd8, 0 1px 2px rgba(0, 0, 0, 0.07); }
.Alert .Alert__close.hover:not(:disabled):not(.disabled)::before, .Alert .Alert__close:not(:disabled):not(.disabled):hover::before {
opacity: 0; }
.Alert .Alert__close.active:not(:disabled):not(.disabled), .Alert .Alert__close:not(:disabled):not(.disabled):active {
color: #2e3436;
border-color: #cac5bf;
background-color: #c1bab4;
box-shadow: inset 0 1px rgba(255, 255, 255, 0);
text-shadow: none;
--icon-shadow: none; }
.Alert .Alert__close.active:not(:disabled):not(.disabled)::before, .Alert .Alert__close:not(:disabled):not(.disabled):active::before {
opacity: 0; }
.Alert__icon {
margin-top: 3px;
--icon-size: 1.5em;
opacity: 0.5; }
.Alert__title {
font-size: 1.2em;
margin-bottom: 0.25rem; }
.Alert__message {
font-size: 1rem; }
/****************
* Icons *
****************/
.normal-icons {
--icon-size: 16px; }
.large-icons {
--icon-size: 32px; }
.Icon {
display: flex;
justify-content: center;
align-items: center;
display: inline-flex; }
.Icon svg {
width: auto;
height: var(--icon-size, 16px); }
.Icon:not(.colored) svg * {
fill: var(--icon-color, unset) !important; }
*:disabled .Icon:not(.colored):not(.increase-specificity), .disabled .Icon:not(.colored):not(.increase-specificity) {
--icon-color: rgba(0, 0, 0, 0.3); }
*:disabled .Icon.colored:not(.increase-specificity), .disabled .Icon.colored:not(.increase-specificity) {
opacity: 0.3; }
.Icon svg {
transform: scale(0.8); }
/*********************
* Spinner Animation *
*********************/
@keyframes spin {
to {
transform: rotate(1turn); } }
.Spinner {
opacity: 1;
animation: spin 1s linear infinite;
display: inline-block;
width: var(--icon-size, 16px);
height: var(--icon-size, 16px); }
.Spinner.disabled {
opacity: 0.5; }
.Spinner.hidden {
opacity: 0; }
/****************
* Text Entries *
****************/
@keyframes move_along_width {
0% {
left: var(--input-padding); }
50% {
left: calc(100% - var(--progress-indeterminate-width) - var(--input-padding, 8px)); }
100% {
left: var(--input-padding); } }
.InputNumber.vertical > .Input__area > input, .InputNumber:not(.vertical),
.Input {
--input-padding: 8px;
--progress-indeterminate-width: 50px; }
.InputNumber.vertical > .Input__area > input, .InputNumber:not(.vertical),
.Input {
position: relative;
display: inline-flex;
flex-direction: row;
align-items: center;
border: 1px solid;
border-radius: 5px;
border-spacing: 6px;
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
color: black;
border-color: #cdc7c2;
background-color: #ffffff;
height: 28px;
min-height: 28px;
padding-left: var(--input-padding);
padding-right: var(--input-padding); }
.InputNumber.vertical > .Input__area > input, .InputNumber:not(.vertical),
.Input {
position: relative;
outline: none;
overflow: visible; }
.InputNumber.vertical > .Input__area > input::after, .InputNumber:not(.vertical)::after,
.Input::after {
content: '';
position: absolute;
pointer-events: none;
z-index: 2;
display: inline-block;
border: 2px solid transparent;
border-radius: inherit;
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
top: -4px;
left: -4px;
width: calc(100% - -4px);
height: calc(100% - -4px); }
.InputNumber.vertical > .Input__area > input:focus-within, .InputNumber:focus-within:not(.vertical),
.Input:focus-within {
outline: none; }
.InputNumber.vertical > .Input__area > input:focus-within::after, .InputNumber:focus-within:not(.vertical)::after,
.Input:focus-within::after {
border: 2px solid rgba(53, 132, 228, 0.5);
top: -2px;
left: -2px;
width: 100%;
height: 100%; }
.InputNumber.vertical > .Input__area > input.mini, .mini.InputNumber:not(.vertical),
.Input.mini {
height: 18px;
min-height: 18px;
--input-padding: 4.5px;
font-size: 10px;
--icon-size: 11px; }
.InputNumber.vertical > .Input__area > input.mini > .Input__area, .mini.InputNumber:not(.vertical) > .Input__area,
.Input.mini > .Input__area {
line-height: 18px; }
.InputNumber.vertical > .Input__area > input.small, .small.InputNumber:not(.vertical),
.Input.small {
height: 22px;
min-height: 22px;
--input-padding: 5.5px;
font-size: 12px;
--icon-size: 13px; }
.InputNumber.vertical > .Input__area > input.small > .Input__area, .small.InputNumber:not(.vertical) > .Input__area,
.Input.small > .Input__area {
line-height: 22px; }
.InputNumber.vertical > .Input__area > input.medium, .medium.InputNumber:not(.vertical),
.Input.medium {
height: 28px;
min-height: 28px;
--input-padding: 7px;
font-size: 13.333333px;
--icon-size: 16px; }
.InputNumber.vertical > .Input__area > input.medium > .Input__area, .medium.InputNumber:not(.vertical) > .Input__area,
.Input.medium > .Input__area {
line-height: 28px; }
.InputNumber.vertical > .Input__area > input.large, .large.InputNumber:not(.vertical),
.Input.large {
height: 36px;
min-height: 36px;
--input-padding: 9px;
font-size: 15px;
--icon-size: 20px; }
.InputNumber.vertical > .Input__area > input.large > .Input__area, .large.InputNumber:not(.vertical) > .Input__area,
.Input.large > .Input__area {
line-height: 36px; }
.InputNumber.vertical > .Input__area > input.huge, .huge.InputNumber:not(.vertical),
.Input.huge {
height: 42px;
min-height: 42px;
--input-padding: 10.5px;
font-size: 18px;
--icon-size: 23px; }
.InputNumber.vertical > .Input__area > input.huge > .Input__area, .huge.InputNumber:not(.vertical) > .Input__area,
.Input.huge > .Input__area {
line-height: 42px; }
.InputNumber.vertical > .Input__area > input > .Input__area, .InputNumber:not(.vertical) > .Input__area,
.Input > .Input__area {
position: relative;
flex: 1;
height: 100%;
overflow: hidden; }
.InputNumber.vertical > .Input__area > input > .Input__area > input, .InputNumber:not(.vertical) > .Input__area > input,
.Input > .Input__area > input {
width: 100%;
height: 100%;
border: none;
color: inherit;
background: none;
font-size: inherit; }
.InputNumber.vertical > .Input__area > input > .Input__area > input:focus, .InputNumber:not(.vertical) > .Input__area > input:focus,
.Input > .Input__area > input:focus {
outline: none; }
.InputNumber.vertical > .Input__area > input > .Input__area > input::placeholder, .InputNumber:not(.vertical) > .Input__area > input::placeholder,
.Input > .Input__area > input::placeholder {
user-select: none; }
.InputNumber.vertical > .Input__area > input > .Input__area > .Input__children, .InputNumber:not(.vertical) > .Input__area > .Input__children,
.Input > .Input__area > .Input__children {
position: absolute;
pointer-events: none;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
justify-content: flex-start;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; }
.InputNumber.vertical > .Input__area > input > .Input__area > input:focus + .Input__children, .InputNumber:not(.vertical) > .Input__area > input:focus + .Input__children,
.Input > .Input__area > input:focus + .Input__children {
opacity: 0.5; }
.InputNumber.vertical > .Input__area > input > .Input__area > input:not(.empty) + .Input__children, .InputNumber:not(.vertical) > .Input__area > input:not(.empty) + .Input__children,
.Input > .Input__area > input:not(.empty) + .Input__children {
opacity: 0; }
.InputNumber.vertical > .Input__area > input .Input__left, .InputNumber:not(.vertical) .Input__left,
.InputNumber.vertical > .Input__area > input .Input__right,
.InputNumber:not(.vertical) .Input__right,
.Input .Input__left,
.Input .Input__right {
display: flex;
justify-content: center;
align-items: center; }
.InputNumber.vertical > .Input__area > input .Input__left, .InputNumber:not(.vertical) .Input__left,
.Input .Input__left {
margin-right: 6px; }
.InputNumber.vertical > .Input__area > input .Input__right, .InputNumber:not(.vertical) .Input__right,
.Input .Input__right {
margin: 0;
margin-left: 6px;
padding: 0; }
.InputNumber.vertical > .Input__area > input .Input__left.Button, .InputNumber:not(.vertical) .Input__left.Button,
.InputNumber.vertical > .Input__area > input .Input__right.Button,
.InputNumber:not(.vertical) .Input__right.Button,
.Input .Input__left.Button,
.Input .Input__right.Button {
opacity: 0.8;
min-width: unset;
min-height: unset;
height: min-content; }
.InputNumber.vertical > .Input__area > input.flat, .flat.InputNumber:not(.vertical),
.Input.flat:focus-within, .window-inactive .Input.flat,
.Input.flat:disabled, .window-inactive .Input.flat:disabled,
.Input.flat {
min-height: 0;
padding: 2px;
background-color: transparent;
border-color: transparent;
border-radius: 0; }
.InputNumber.vertical > .Input__area > input:focus-within > .Input__area > input::placeholder, .InputNumber:focus-within:not(.vertical) > .Input__area > input::placeholder,
.Input:focus-within > .Input__area > input::placeholder {
opacity: 0;
/* We hide placeholders on focus */ }
.InputNumber.vertical > .Input__area > input:disabled, .InputNumber:disabled:not(.vertical), .InputNumber.vertical > .Input__area > input.disabled, .disabled.InputNumber:not(.vertical),
.Input:disabled,
.Input.disabled {
color: #929595;
border-color: #cdc7c2;
background-color: #f7f6f5;
box-shadow: none; }
.InputNumber.vertical > .Input__area > input.error, .error.InputNumber:not(.vertical),
.Input.error {
border-color: #cc0000; }
.InputNumber.vertical > .Input__area > input.error, .error.InputNumber:not(.vertical),
.Input.error {
position: relative;
outline: none;
overflow: visible; }
.InputNumber.vertical > .Input__area > input.error::after, .error.InputNumber:not(.vertical)::after,
.Input.error::after {
content: '';
position: absolute;
pointer-events: none;
z-index: 2;
display: inline-block;
border: 2px solid transparent;
border-radius: inherit;
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
top: -4px;
left: -4px;
width: calc(100% - -4px);
height: calc(100% - -4px); }
.InputNumber.vertical > .Input__area > input.error:focus-within, .error.InputNumber:focus-within:not(.vertical),
.Input.error:focus-within {
outline: none; }
.InputNumber.vertical > .Input__area > input.error:focus-within::after, .error.InputNumber:focus-within:not(.vertical)::after,
.Input.error:focus-within::after {
border: 2px solid rgba(204, 0, 0, 0.5);
top: -2px;
left: -2px;
width: 100%;
height: 100%; }
.InputNumber.vertical > .Input__area > input.error input, .error.InputNumber:not(.vertical) input,
.Input.error input {
color: #ac0a0b; }
.InputNumber.vertical > .Input__area > input.error input::selection, .error.InputNumber:not(.vertical) input::selection,
.Input.error input::selection {
background-color: #cc0000; }
.InputNumber.vertical > .Input__area > input.warning, .warning.InputNumber:not(.vertical),
.Input.warning {
border-color: #f57900; }
.InputNumber.vertical > .Input__area > input.warning, .warning.InputNumber:not(.vertical),
.Input.warning {
position: relative;
outline: none;
overflow: visible; }
.InputNumber.vertical > .Input__area > input.warning::after, .warning.InputNumber:not(.vertical)::after,
.Input.warning::after {
content: '';
position: absolute;
pointer-events: none;
z-index: 2;
display: inline-block;
border: 2px solid transparent;
border-radius: inherit;
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
top: -4px;
left: -4px;
width: calc(100% - -4px);
height: calc(100% - -4px); }
.InputNumber.vertical > .Input__area > input.warning:focus-within, .warning.InputNumber:focus-within:not(.vertical),
.Input.warning:focus-within {
outline: none; }
.InputNumber.vertical > .Input__area > input.warning:focus-within::after, .warning.InputNumber:focus-within:not(.vertical)::after,
.Input.warning:focus-within::after {
border: 2px solid rgba(245, 121, 0, 0.5);
top: -2px;
left: -2px;
width: 100%;
height: 100%; }
.InputNumber.vertical > .Input__area > input.warning input, .warning.InputNumber:not(.vertical) input,
.Input.warning input {
color: #cd6b0b; }
.InputNumber.vertical > .Input__area > input.warning input::selection, .warning.InputNumber:not(.vertical) input::selection,
.Input.warning input::selection {
background-color: #f57900; }
.InputNumber.vertical > .Input__area > input *:not(.InputNumber__button) .Icon, .InputNumber:not(.vertical) *:not(.InputNumber__button) .Icon,
.Input *:not(.InputNumber__button) .Icon {
--icon-color: #585d5e; }
.InputNumber.vertical > .Input__area > input *:not(.InputNumber__button) .Icon:hover, .InputNumber:not(.vertical) *:not(.InputNumber__button) .Icon:hover,
.Input *:not(.InputNumber__button) .Icon:hover {
--icon-color: #2e3436; }
.InputNumber.vertical > .Input__area > input *:not(.InputNumber__button) .Icon:active, .InputNumber:not(.vertical) *:not(.InputNumber__button) .Icon:active,
.Input *:not(.InputNumber__button) .Icon:active {
--icon-color: #3584e4; }
.dnd-active .InputNumber.vertical > .Input__area > input, .dnd-active .InputNumber:not(.vertical), .dnd-active .Input:focus-within, .dnd-active .Input {
border-color: #2ec27e;
box-shadow: inset 0 0 0 1px #2ec27e; }
.osd .InputNumber.vertical > .Input__area > input, .osd .InputNumber:not(.vertical), .osd .Input {
color: white;
border-color: rgba(0, 0, 0, 0.7);
background-color: rgba(0, 0, 0, 0.5);
background-clip: padding-box;
box-shadow: none;
text-shadow: 0 1px black;
--icon-shadow: 0 1px black; }
.osd .InputNumber.vertical > .Input__area > input:focus-within, .osd .InputNumber:focus-within:not(.vertical), .osd .Input:focus-within {
color: white;
border-color: #3584e4;
background-color: rgba(0, 0, 0, 0.5);
background-clip: padding-box;
text-shadow: 0 1px black;
--icon-shadow: 0 1px black; }
.osd .InputNumber.vertical > .Input__area > input:disabled, .osd .InputNumber:disabled:not(.vertical), .osd .Input:disabled {
color: #919190;
border-color: rgba(0, 0, 0, 0.7);
background-color: rgba(71, 71, 71, 0.5);
background-clip: padding-box;
box-shadow: none;
text-shadow: none;
--icon-shadow: none; }
.InputNumber.vertical > .Input__area > input .Input__progress, .InputNumber:not(.vertical) .Input__progress,
.Input .Input__progress {
position: absolute;
display: inline-block;
pointer-events: none;
width: calc(100% - 2 * var(--input-padding, 8px));
height: calc(100% - 1px);
top: 0px;
left: var(--input-padding); }
.InputNumber.vertical > .Input__area > input .Input__progress .Input__progress__bar, .InputNumber:not(.vertical) .Input__progress .Input__progress__bar,
.Input .Input__progress .Input__progress__bar {
display: inline-block;
width: 100%;
height: 100%;
border-width: 0 0 2px;
border-color: #3584e4;
border-style: solid; }
.InputNumber.vertical > .Input__area > input .Input__progress.indeterminate, .InputNumber:not(.vertical) .Input__progress.indeterminate,
.Input .Input__progress.indeterminate {
height: calc(100% - 1px);
width: var(--progress-indeterminate-width);
animation: move_along_width 2.5s infinite; }
.InputNumber.vertical > .Input__area.linked:not(.vertical) > input:not(:first-child), .linked:not(.vertical) > .InputNumber:not(:first-child):not(.vertical), .linked:not(.vertical) > .Input:not(:first-child) {
border-top-left-radius: 0;
border-bottom-left-radius: 0; }
.InputNumber.vertical > .Input__area.linked:not(.vertical) > input:not(:last-child), .linked:not(.vertical) > .InputNumber:not(:last-child):not(.vertical), .linked:not(.vertical) > .Input:not(:last-child) {
border-right-style: none;
border-top-right-radius: 0;
border-bottom-right-radius: 0; }
.InputNumber.vertical > .Input__area.linked.vertical > input:not(:first-child), .linked.vertical > .InputNumber:not(:first-child):not(.vertical), .linked.vertical > .Input:not(:first-child) {
border-top-left-radius: 0;
border-top-right-radius: 0; }
.InputNumber.vertical > .Input__area.linked.vertical > input:not(:last-child), .linked.vertical > .InputNumber:not(:last-child):not(.vertical), .linked.vertical > .Input:not(:last-child) {
border-bottom-style: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.InputNumber.vertical > .Input__area.linked.vertical > input:not(:disabled) + entry:not(:disabled), .linked.vertical > .InputNumber:not(:disabled):not(.vertical) + entry:not(:disabled), .InputNumber.vertical > .Input__area.linked.vertical > input:not(:disabled) + input:not(:disabled), .InputNumber.vertical > .Input__area.linked.vertical > .InputNumber:not(:disabled):not(.vertical) + input:not(:disabled), .InputNumber.vertical > .Input__area.linked.vertical > input:not(:disabled) + .InputNumber:not(:disabled):not(.vertical), .linked.vertical > .InputNumber:not(:disabled):not(.vertical) + .InputNumber:not(:disabled):not(.vertical), .linked.vertical > .Input:not(:disabled) + entry:not(:disabled), .InputNumber.vertical > .Input__area.linked.vertical > .Input:not(:disabled) + input:not(:disabled), .linked.vertical > .Input:not(:disabled) + .InputNumber:not(:disabled):not(.vertical) {
border-top-color: #f0eeed; }
.InputNumber.vertical > .Input__area.linked.vertical > input:disabled + input:disabled, .InputNumber.vertical > .Input__area.linked.vertical > .InputNumber:disabled:not(.vertical) + input:disabled, .InputNumber.vertical > .Input__area.linked.vertical > input:disabled + .InputNumber:disabled:not(.vertical), .linked.vertical > .InputNumber:disabled:not(.vertical) + .InputNumber:disabled:not(.vertical), .InputNumber.vertical > .Input__area.linked.vertical > input:disabled + entry:disabled, .linked.vertical > .InputNumber:disabled:not(.vertical) + entry:disabled, .InputNumber.vertical > .Input__area.linked.vertical > .Input:disabled + input:disabled, .linked.vertical > .Input:disabled + .InputNumber:disabled:not(.vertical), .linked.vertical > .Input:disabled + entry:disabled {
border-top-color: #f0eeed; }
.InputNumber.vertical > .Input__area.linked.vertical > input + input.dnd-active:not(:only-child), .InputNumber.vertical > .Input__area.linked.vertical > .InputNumber:not(.vertical) + input.dnd-active:not(:only-child), .InputNumber.vertical > .Input__area.linked.vertical > input + .dnd-active.InputNumber:not(:only-child):not(.vertical), .linked.vertical > .InputNumber:not(.vertical) + .dnd-active.InputNumber:not(:only-child):not(.vertical),
.InputNumber.vertical > .Input__area.linked.vertical > input + entry.dnd-active:not(:only-child),
.linked.vertical > .InputNumber:not(.vertical) + entry.dnd-active:not(:only-child), .InputNumber.vertical > .Input__area.linked.vertical > .Input + input.dnd-active:not(:only-child), .linked.vertical > .Input + .dnd-active.InputNumber:not(:only-child):not(.vertical),
.linked.vertical > .Input + entry.dnd-active:not(:only-child) {
border-top-color: #2ec27e; }
.InputNumber.vertical > .Input__area.linked.vertical > input.dnd-active:not(:only-child) + input, .InputNumber.vertical > .Input__area.linked.vertical > .dnd-active.InputNumber:not(:only-child):not(.vertical) + input, .InputNumber.vertical > .Input__area.linked.vertical > input.dnd-active:not(:only-child) + .InputNumber:not(.vertical), .linked.vertical > .dnd-active.InputNumber:not(:only-child):not(.vertical) + .InputNumber:not(.vertical),
.InputNumber.vertical > .Input__area.linked.vertical > input.dnd-active:not(:only-child) + entry,
.linked.vertical > .dnd-active.InputNumber:not(:only-child):not(.vertical) + entry,
.InputNumber.vertical > .Input__area.linked.vertical > input.dnd-active:not(:only-child) + .Input,
.linked.vertical > .dnd-active.InputNumber:not(:only-child):not(.vertical) + .Input,
.InputNumber.vertical > .Input__area.linked.vertical > input.dnd-active:not(:only-child) + .Button,
.linked.vertical > .dnd-active.InputNumber:not(:only-child):not(.vertical) + .Button,
.InputNumber.vertical > .Input__area.linked.vertical > input.dnd-active:not(:only-child) + menubutton > .Button,
.linked.vertical > .dnd-active.InputNumber:not(:only-child):not(.vertical) + menubutton > .Button,
.InputNumber.vertical > .Input__area.linked.vertical > input.dnd-active:not(:only-child) + .Dropdown > .Button,
.linked.vertical > .dnd-active.InputNumber:not(:only-child):not(.vertical) + .Dropdown > .Button,
.InputNumber.vertical > .Input__area.linked.vertical > input.dnd-active:not(:only-child) + colorbutton > .Button,
.linked.vertical > .dnd-active.InputNumber:not(:only-child):not(.vertical) + colorbutton > .Button,
.InputNumber.vertical > .Input__area.linked.vertical > input.dnd-active:not(:only-child) + fontbutton > .Button,
.linked.vertical > .dnd-active.InputNumber:not(:only-child):not(.vertical) + fontbutton > .Button,
.InputNumber.vertical > .Input__area.linked.vertical > input.dnd-active:not(:only-child) + filechooserbutton > .Button,
.linked.vertical > .dnd-active.InputNumber:not(:only-child):not(.vertical) + filechooserbutton > .Button,
.InputNumber.vertical > .Input__area.linked.vertical > input.dnd-active:not(:only-child) + combobox > box > .Button.combo,
.linked.vertical > .dnd-active.InputNumber:not(:only-child):not(.vertical) + combobox > box > .Button.combo, .InputNumber.vertical > .Input__area.linked.vertical > .Input.dnd-active:not(:only-child) + input, .linked.vertical > .Input.dnd-active:not(:only-child) + .InputNumber:not(.vertical),
.linked.vertical > .Input.dnd-active:not(:only-child) + entry,
.linked.vertical > .Input.dnd-active:not(:only-child) + .Input,
.linked.vertical > .Input.dnd-active:not(:only-child) + .Button,
.linked.vertical > .Input.dnd-active:not(:only-child) + menubutton > .Button,
.linked.vertical > .Input.dnd-active:not(:only-child) + .Dropdown > .Button,
.linked.vertical > .Input.dnd-active:not(:only-child) + colorbutton > .Button,
.linked.vertical > .Input.dnd-active:not(:only-child) + fontbutton > .Button,
.linked.vertical > .Input.dnd-active:not(:only-child) + filechooserbutton > .Button,
.linked.vertical > .Input.dnd-active:not(:only-child) + combobox > box > .Button.combo {
border-top-color: #2ec27e; }
.InputGroup {
display: flex;
flex-direction: row; }
.table .Input:focus-within:dir(rtl), .table .Input:focus-within:dir(ltr) {
background-color: #ffffff;
transition-property: color, background; }
.table .Input.flat, .table .Input {
border-radius: 0;
background-image: none;
background-color: #ffffff; }
.table .Input.flat:focus-within, .table .Input:focus-within {
border-color: #3584e4; }
.TextArea {
display: inline-block;
padding: 0;
height: min-content !important;
width: min-content !important; }
.TextArea > textarea {
border: none;
background: transparent;
padding: 0 0.5em;
line-height: 1.5em; }
.TextArea > textarea:focus {
outline: none; }
/*******************
* Editable Labels *
*******************/
editablelabel > stack > text {
color: black;
border-color: #cdc7c2;
background-color: #ffffff; }
/***********
* Buttons *
***********/
@keyframes needs_attention {
from {
background-image: radial-gradient(farthest-side, #3584e4 0%, rgba(53, 132, 228, 0) 0%); }
to {
background-image: radial-gradient(farthest-side, #3584e4 95%, rgba(53, 132, 228, 0)); } }
.Notebook .Notebook__arrow, .control-buttons button,
.Button {
position: relative;
display: inline-flex;
justify-content: center;
align-items: center;
border: 1px solid;
border-radius: 5px;
transition: all 150ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
height: 28px;
min-height: 28px;
min-width: 16px;
padding: 4px 9px;
user-select: none;
color: #2e3436;
outline-color: rgba(53, 132, 228, 0.5);
border-color: #cdc7c2;
border-bottom-color: #bfb8b1;
background-color: #f6f5f4;
box-shadow: inset 0 1px white, 0 1px 2px rgba(0, 0, 0, 0.07); }
.Notebook .mini.Notebook__arrow, .control-buttons button.mini,
.Button.mini {
height: 18px;
min-height: 18px;
min-width: 18px;
font-size: 10px;
--icon-size: 11px; }
.Notebook .small.Notebook__arrow, .control-buttons button.small,
.Button.small {
height: 22px;
min-height: 22px;
min-width: 22px;
font-size: 12px;
--icon-size: 13px; }
.Notebook .medium.Notebook__arrow, .control-buttons button.medium,
.Button.medium {
height: 28px;
min-height: 28px;
min-width: 28px;
font-size: 13.333333px;
--icon-size: 16px; }
.Notebook .large.Notebook__arrow, .control-buttons button.large,
.Button.large {
height: 36px;
min-height: 36px;
min-width: 36px;
font-size: 15px;
--icon-size: 20px; }
.Notebook .huge.Notebook__arrow, .control-buttons button.huge,
.Button.huge {
height: 42px;
min-height: 42px;
min-width: 42px;
font-size: 18px;
--icon-size: 23px; }
.Notebook .Notebook__arrow, .control-buttons button, .Notebook .Notebook__arrow > .Label, .control-buttons button > .Label,
.Button,
.Button > .Label {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; }
.Notebook .Notebook__arrow::before, .control-buttons button::before,
.Button::before {
content: ' ';
position: absolute;
pointer-events: none;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
background: linear-gradient(to top, rgba(0, 0, 0, 0.03), transparent);
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.Notebook .Notebook__arrow, .control-buttons button,
.Button {
position: relative;
outline: none;
overflow: visible; }
.Notebook .Notebook__arrow::after, .control-buttons button::after,
.Button::after {
content: '';
position: absolute;
pointer-events: none;
z-index: 2;
display: inline-block;
border: 2px solid transparent;
border-radius: inherit;
transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
top: -4px;
left: -4px;
width: calc(100% - -4px);
height: calc(100% - -4px); }
.Notebook .Notebook__arrow:focus:focus-visible, .control-buttons button:focus:focus-visible,
.Button:focus:focus-visible {
outline: none; }
.Notebook .Notebook__arrow:focus:focus-visible::after, .control-buttons button:focus:focus-visible::after,
.Button:focus:focus-visible::after {
border: 2px solid rgba(53, 132, 228, 0.5);
top: -2px;
left: -2px;
width: 100%;
height: 100%; }
.Notebook .Notebook__arrow.hover:not(:disabled):not(.disabled), .control-buttons button.hover:not(:disabled):not(.disabled), .Notebook .Notebook__arrow:not(:disabled):not(.disabled):hover, .control-buttons button:not(:disabled):not(.disabled):hover,
.Button.hover:not(:disabled):not(.disabled),
.Button:not(:disabled):not(.disabled):hover {
color: #2e3436;
border-color: #cdc7c2;
border-bottom-color: #bfb8b1;
background-color: #f9f9f8;
box-shadow: inset 0 1px #f4f2f1, 0 1px 2px rgba(0, 0, 0, 0.07);
-gtk-icon-filter: brightness(1.2); }
.Notebook .Notebook__arrow.hover:not(:disabled):not(.disabled)::before, .control-buttons button.hover:not(:disabled):not(.disabled)::before, .Notebook .Notebook__arrow:not(:disabled):not(.disabled):hover::before, .control-buttons button:not(:disabled):not(.disabled):hover::before,
.Button.hover:not(:disabled):not(.disabled)::before,
.Button:not(:disabled):not(.disabled):hover::before {
opacity: 0; }
.Notebook .Notebook__arrow.active:not(:disabled):not(.disabled), .control-buttons button.active:not(:disabled):not(.disabled), .Notebook .Notebook__arrow:not(:disabled):not(.disabled):active, .control-buttons button:not(:disa