UNPKG

atom-nuclide

Version:

A unified developer experience for web and mobile development, built as a suite of features on top of Atom to provide hackability and the support of an active community.

445 lines (370 loc) 13 kB
@import "ui-variables"; @import "syntax-variables"; @nuclide-console-border-size: 1px; @nuclide-console-record-background-color-normal: @syntax-background-color; @nuclide-console-record-text-color-normal: @syntax-text-color; @nuclide-console-record-border-color-normal: @base-border-color; @nuclide-console-record-background-color-error: lighten(@background-color-error, 25%); @nuclide-console-record-text-color-error: darken(@text-color-error, 40%); @nuclide-console-record-border-color-error: @background-color-error; @nuclide-console-record-background-color-warning: lighten(@background-color-warning, 25%); @nuclide-console-record-text-color-warning: darken(@text-color-warning, 40%); @nuclide-console-record-border-color-warning: @background-color-warning; @nuclide-console-record-background-color-success: lighten(@background-color-success, 25%); @nuclide-console-record-text-color-success: darken(@text-color-success, 40%); @nuclide-console-record-border-color-success: @background-color-success; @nuclide-console-record-vertical-padding: 1px; @nuclide-console-record-horizontal-padding: 5px; @nuclide-console-icon-size: 11px; // Color variables for `level-color` classes. @nuclide-console-record-background-color-red: lighten(@background-color-error, 25%); @nuclide-console-record-text-color-red: darken(@text-color-error, 40%); @nuclide-console-record-background-color-orange: lighten(@ui-site-color-3, 25%); @nuclide-console-record-text-color-orange: darken(@ui-site-color-3, 40%); @nuclide-console-record-background-color-yellow: lighten(@ui-site-color-5, 25%); @nuclide-console-record-text-color-yellow: darken(@ui-site-color-5, 50%); @nuclide-console-record-background-color-green: lighten(@ui-site-color-2, 25%); @nuclide-console-record-text-color-green: darken(@ui-site-color-2, 40%); @nuclide-console-record-background-color-blue: lighten(@ui-site-color-1, 25%); @nuclide-console-record-text-color-blue: darken(@ui-site-color-1, 40%); @nuclide-console-record-background-color-purple: lighten(@ui-site-color-4, 25%); @nuclide-console-record-text-color-purple: darken(@ui-site-color-4, 40%); @nuclide-console-record-background-color-violet: lighten(@ui-site-color-4, 35%); @nuclide-console-record-text-color-violet: darken(@ui-site-color-4, 30%); @nuclide-console-record-text-color-rainbow: #000; // Console text should be smaller than normal text. Gotta fit more! @nuclide-console-record-font-size: @font-size * 0.9; .nuclide-console { display: flex; flex-direction: column; width: 100%; } // If the console is displayed in a pane, change the color of the header to // match. .nuclide-ui-toolbar { background-color: @pane-item-background-color; atom-panel & { background-color: @tool-panel-background-color; } } .nuclide-console-body { display: flex; flex: 1; flex-direction: column; background-color: @syntax-background-color; min-height: 0; } .nuclide-console-lazy-nested-value div, .nuclide-console-lazy-nested-value span { font-size: @nuclide-console-record-font-size; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; white-space: pre-wrap; word-break: normal; word-wrap: break-word; } .nuclide-console-lazy-nested-value { display: flex; // The following selectors style the tree components inside of the LazyNestedValueComponent // instance that is used by the console. .list-item::before { div { display: flex; } } .list-tree li:not(.list-nested-item) { line-height: 1.6em; } div.list-item > div { display: inline-block; } } .nuclide-console-scroll-pane { overflow-y: auto; overflow-x: hidden; background-color: @syntax-background-color; // Hack: This ensures that the scrollbar appears on top of all of the records. // Without it, the atom-text-editors appear above the scrollbar. transform: translate3d(0, 0, 0); } .nuclide-console-table-wrapper { // Make sure that record text is selectable. -webkit-user-select: text; } .nuclide-console-record { display: flex; padding: @nuclide-console-record-vertical-padding @nuclide-console-record-horizontal-padding; background-color: @nuclide-console-record-background-color-normal; border-radius: 0; border-top: @nuclide-console-border-size solid @nuclide-console-record-border-color-normal; pre { background-color: transparent; color: @nuclide-console-record-text-color-normal; // Break on words word-break: normal; white-space: pre-wrap; } .icon { color: fadeout(@nuclide-console-record-text-color-normal, 70%); text-align: center; } &, pre, atom-text-editor, .icon, .icon::before { font-size: @nuclide-console-record-font-size; } .icon::before { width: @nuclide-console-record-font-size; margin-right: 0.5em; } &:first-child { border-top: none; } &:last-child { border-bottom: @nuclide-console-border-size solid @nuclide-console-record-border-color-normal; } &.level-info { .icon { color: @text-color-info; } } &.level-warning { background-color: @nuclide-console-record-background-color-warning; border-color: @nuclide-console-record-border-color-warning; // The border on both sides of the warning message should be the warning // color unless it's a higher-level (error). & + :not(.level-error) { border-top-color: @nuclide-console-record-border-color-warning; } pre, .nuclide-console-lazy-nested-value div, .nuclide-console-lazy-nested-value span { color: @nuclide-console-record-text-color-warning; } .icon { color: @nuclide-console-record-border-color-warning; } } &.level-success { background-color: @nuclide-console-record-background-color-success; border-color: @nuclide-console-record-border-color-success; // The border on both sides of the success message should be the success // color unless it's a higher-level. & + :not(.level-error):not(.level-warning) { border-top-color: @nuclide-console-record-border-color-success; } pre, .nuclide-console-lazy-nested-value div, .nuclide-console-lazy-nested-value span { color: @nuclide-console-record-text-color-success; } .icon { color: @nuclide-console-record-border-color-success; } } &.level-error { background-color: @nuclide-console-record-background-color-error; border-color: @nuclide-console-record-border-color-error; // The border on both sides of the error should be the error color. & + .nuclide-console-record { border-top-color: @nuclide-console-record-border-color-error; } pre, .nuclide-console-lazy-nested-value div, .nuclide-console-lazy-nested-value span { color: @nuclide-console-record-text-color-error; } .icon { color: @nuclide-console-record-border-color-error; } } // Console record colors for `level-color` classes. &.level-red { background-color: @nuclide-console-record-background-color-red; pre, .nuclide-console-lazy-nested-value div, .nuclide-console-lazy-nested-value span { color: @nuclide-console-record-text-color-red; } } &.level-orange { background-color: @nuclide-console-record-background-color-orange; pre, .nuclide-console-lazy-nested-value div, .nuclide-console-lazy-nested-value span { color: @nuclide-console-record-text-color-orange; } } &.level-yellow { background-color: @nuclide-console-record-background-color-yellow; pre, .nuclide-console-lazy-nested-value div, .nuclide-console-lazy-nested-value span { color: @nuclide-console-record-text-color-yellow; } } &.level-green { background-color: @nuclide-console-record-background-color-green; pre, .nuclide-console-lazy-nested-value div, .nuclide-console-lazy-nested-value span { color: @nuclide-console-record-text-color-green; } } &.level-blue { background-color: @nuclide-console-record-background-color-blue; pre, .nuclide-console-lazy-nested-value div, .nuclide-console-lazy-nested-value span { color: @nuclide-console-record-text-color-blue; } } &.level-purple { background-color: @nuclide-console-record-background-color-purple; pre, .nuclide-console-lazy-nested-value div, .nuclide-console-lazy-nested-value span { color: @nuclide-console-record-text-color-purple; } } &.level-violet { background-color: @nuclide-console-record-background-color-violet; pre, .nuclide-console-lazy-nested-value div, .nuclide-ui-lazy-nested-value span { color: @nuclide-console-record-text-color-violet; } } &.level-rainbow { background: #fff; background-image: linear-gradient( to right, rgba(255, 0, 0, .4) 0%, rgba(255, 165, 0, .4) 20%, rgba(255, 255, 0, .4) 40%, rgba(173, 255, 47, .4) 60%, rgba(0, 191, 255, .4) 80%, rgba(138, 43, 226, .4) 100% ); pre, .nuclide-console-lazy-nested-value div, .nuclide-ui-lazy-nested-value span, .list-group li:not(.list-nested-item), .list-tree li:not(.list-nested-item), .list-group li.list-nested-item > .list-item, .list-tree li.list-nested-item > .list-item { color: @nuclide-console-record-text-color-rainbow; } } pre { display: inline; padding: 0; background-color: transparent; } &.request { display: flex; background-color: @syntax-background-color; } } .nuclide-console-record-content-wrapper { display: flex; width: 100%; // Give the source label a little breathing room. We don't apply this directly // to the label because that would affect text wrapping around it. padding-top: 1px; padding-bottom: 1px; .nuclide-ui-lazy-nested-value-treelist { // Inherit the line-height so that it's the same as other records. If we // don't do this, the expandable items will be taller. li.list-nested-item > .list-item, .list-item { line-height: inherit; } } } .nuclide-console-record-source-label { align-self: flex-start; margin: 2px 0 0 4px; white-space: nowrap; font-size: 0.8em; // This makes the label < 1 line tall in most themes. // Ramp up the specificity and override Atom's default label padding. span& { padding-top: 0; padding-bottom: 0; } } .nuclide-console-input-wrapper { display: flex; background-color: @syntax-background-color; padding: @nuclide-console-record-vertical-padding 0; flex-grow: 1; // Make the text in the input field the same size as the records'. atom-text-editor { font-size: @nuclide-console-record-font-size; } } .nuclide-console-prompt { display: flex; padding: 5px @nuclide-console-record-horizontal-padding; border-top: 1px solid @pane-item-border-color; background-color: @syntax-background-color; color: @syntax-text-color; min-height: 30px; } .nuclide-console-prompt-wrapper { display: flex; align-items: center; white-space: nowrap; } .nuclide-console-prompt-label { text-transform: uppercase; font-weight: bold; font-size: 0.8em; padding-right: 1em; } .nuclide-console-scroll-pane-wrapper { position: relative; display: flex; flex-direction: column; overflow: hidden; } .nuclide-console-new-messages-notification { position: absolute; bottom: 0; left: 50%; text-align: center; padding-left: @component-padding; padding-right: @component-padding; cursor: pointer; // Use a timing function that approximates easeOutBack. transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); &.visible { // Using both margin-bottom and translateY allows us to combine percentage- // and pixel-based sizes. margin-bottom: @component-padding / 2; // translateX to center horizontally, translateY for hiding. transform: translateX(-50%) translateY(0); } &:not(.visible) { margin-bottom: 0; transform: translateX(-50%) translateY(100%); } } .nuclide-console-new-messages-notification-icon { text-align: left; &::before { width: auto; } } // Target the filter field, making sure that we have a great enough specificity. atom-text-editor[mini].nuclide-console-filter-field { // Make it butt up against the button. float: left; border-bottom-right-radius: 0; border-top-right-radius: 0; &.is-focused { // When focused, layer this on top of the regexp button so that the outline // overlays it. z-index: 1; } &.invalid { background-color: @nuclide-console-record-background-color-error; color: @nuclide-console-record-text-color-error; border-color: @nuclide-console-record-border-color-error; } } .btn.nuclide-console-filter-regexp-button { position: relative; left: -1px; font-weight: bold; font-family: Menlo, monospace; } .nuclide-console-header-icon-fill { fill: @text-color; } .nuclide-console-header-filter-icon { display: flex; } .nuclide-console-header-funnel-icon { height: 12px; }