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.

355 lines (297 loc) 8.17 kB
@import 'ui-variables'; @import 'syntax-variables'; @revisionBubbleDiameter: 10px; @revisionBubbleShadowRadius: 4px; .nuclide-diff-view-container { height: 100%; width: 100%; display: flex; flex-direction: column; -webkit-user-select: none; } .nuclide-diff-view-component { flex-grow: 1; /* Let the `<atom-pane-container>` fill the height since it already has `flex: 1` applied. */ display: flex; } .nuclide-diff-view-removable-tag { margin-left: 2px; margin-right: 2px; float: left; } .nuclide-diff-view-tree { z-index: 3; border-top: 1px solid @pane-item-border-color; -webkit-user-select: none; white-space: nowrap; overflow: auto; cursor: default; // Fill vertical and horizontal space if tree is smaller than panel. min-width: 100%; min-height: 100%; } .nuclide-diff-timeline { z-index: 3; border-top: 1px solid @pane-item-border-color; width: 100%; color: @text-color; .text-monospace { // TODO Use a standard Atom font-family https://github.com/atom/atom/issues/8800 font-family: Menlo, Consolas, monospace; } .revision { position: relative; } .revision-timeline-wrap { height: 100%; overflow: auto; } .revision-selector { width: 100%; white-space: nowrap; display: flex; } .revisions { display: flex; flex-direction: column; position: relative; } .revision--actionable { cursor: pointer; } .revision:hover .revision-label { font-weight: bold; } .revision:hover .revision-bubble { background-color: @text-color-info; box-shadow: 0 0 0 2px @text-color-info; } .revision:hover .revision-bubble--uncommitted { background-color: @text-color-warning; box-shadow: 0 0 0 2px @text-color-warning; } .nuclide-diff-rev-side-button { margin-left: 0.4em; } .revision:hover .revision-bubble--no-changes { /* * Match the app background color to give the illusion of transparency while properly cutting * off the underlying line that connects this bubble to the one below it. */ background-color: @app-background-color; } .revision-bubble { background-color: @text-color-info; border-radius: @revisionBubbleDiameter; float: left; height: @revisionBubbleDiameter; width: @revisionBubbleDiameter; margin: @revisionBubbleShadowRadius; } .revision-bubble::after { bottom: -8px; /* Pull into the revision bubble below */ content: " "; display: block; width: 1px; background-color: @text-color-info; margin-left: 5px; position: absolute; top: 5px; z-index: -1; } .revision-bubble--uncommitted { background-color: @text-color-warning; } .revision-bubble--no-changes { /* * Match the app background color to give the illusion of transparency while properly cutting * off the underlying line that connects this bubble to the one below it. */ background-color: @app-background-color; } .selected-revision-inrange .revision-bubble:after { background: @text-color-info; content: " "; margin-left: 1px; margin-right: 1px; width: 8px; } .selected-revision-inrange .revision-bubble--uncommitted:after { background: linear-gradient(to bottom, @text-color-warning, @text-color-info); } .selected-revision-last .revision-bubble::after { display: none; } .revision-label { margin-bottom: 12px; margin-left: 24px; } .selected-revision-start, .selected-revision-end { font-weight: bold; } .selected-revision-inrange, .selected-revision-end { .revision-label { color: @text-color-info; } .revision-label--uncommitted { color: @text-color-warning; } } .selected-revision-start .revision-bubble, .selected-revision-end .revision-bubble { box-shadow: 0 0 0 @revisionBubbleShadowRadius fade(@text-color-info, 25%); } .selected-revision-start .revision-bubble--uncommitted, .selected-revision-end .revision-bubble--uncommitted { box-shadow: 0 0 0 2px @text-color-warning; } } .diff-view-count.tool-bar-btn { &::after { content: attr(data-count); font-size: 0.8em; margin-top: 13px; position: absolute; text-shadow: 0 0px 2px @base-border-color; } &.max-count::after { margin-left: -4px; } &.positive-count { color: @text-color-warning; &:hover { color: @text-color-warning; } } } .nuclide-diff-view-block-offset { & when (lightness(@syntax-background-color) <= 50% ) { @diff-block-offset-cross-color: lighten(@syntax-background-color, 3%); .styleBlockOffset(); } & when ( lightness(@syntax-background-color) >= 50% ) { @diff-block-offset-cross-color: darken(@syntax-background-color, 3%); .styleBlockOffset(); } } .styleBlockOffset() { background: repeating-linear-gradient( -45deg, @diff-block-offset-cross-color, @diff-block-offset-cross-color, 5px, transparent 5px, transparent 10px ); } // Default colors for themes that do not specify any. @add-color: #0c0; @add-color: @text-color-success; @remove-color: #c00; @remove-color: @text-color-error; @blendAmount: 10%; atom-text-editor, atom-text-editor::shadow { .diff-view-insert .region { @add-color-faded: fade(@add-color, @blendAmount); border-left-style: solid; border-left-color: @add-color; border-left-width: 1px; background-color: @add-color-faded; } .diff-view-delete .region { @remove-color-faded: fade(@remove-color, @blendAmount); border-left-style: solid; border-left-color: @remove-color; border-left-width: 1px; background-color: @remove-color-faded; } } .nuclide-diff-view-navigation-bar { height: 100%; width: 100%; } .nuclide-diff-editor-container { display: flex; flex-direction: column; height: 100%; width: 100%; } .nuclide-diff-editor-wrapper { display: flex; flex-grow: 1; position: relative; } .nuclide-diff-mode { z-index: 3; display: flex; flex-direction: column; border-top: 1px solid @pane-item-border-color; .message-editor-wrapper { display: flex; flex-grow: 1; position: relative; } .commit-form-wrapper { background-color: inherit; margin-left: 5px; margin-right: 5px; overflow-y: auto; /* * overriding styles for atom-text-editor to make mini and multiline * editor have the similar color schemes based on the themes. */ atom-text-editor, atom-text-editor[mini] { background-color: @input-background-color; line-height: @component-line-height; border-radius: @component-border-radius; padding-left: @component-padding/2; &.is-focused { border-color: @background-color-selected; box-shadow: 0 0 0 1px @background-color-selected; } } /* * This is to prevent the cursor line to have a different background * compared to the mini atom inputs. * * Ref: https://atom.io/packages/block-cursor */ atom-text-editor::shadow .lines .line.cursor-line { background-color: transparent; } } } .nuclide-diff-view-navigation-target { position: absolute; width: 100%; cursor: pointer; &.added { background-color: @background-color-success; } &.removed { background-color: @background-color-error; } &.modified { background-color: @background-color-warning; } } /* * Animation originally taken from [atom/settings-view][1] to match its installing/uninstalling * buttons. * * [1] https://github.com/atom/settings-view/blob/cc409bacf1c44dbd7d27626809b11ea7a01639a0/styles/package-card.less#L296 */ @-webkit-keyframes btn-progress { 100% { background-position: -10px 0px; } } /* * Prepend another class selector, `nuclide-diff-view-component` in this case, to beat the * specificity of core styles with 2 classes + 1 tag. */ .nuclide-diff-view-component .btn.btn-progress, .nuclide-diff-view-component .btn.btn-progress:hover { background-image: linear-gradient(to right, transparent 50%, hsla(0,0%,0%,.15) 50%); background-size: 10px 100%; -webkit-animation: btn-progress .5s linear infinite; }