Fixes based on @peterflynn's feedback.

Fixes based on @peterflynn's feedback.

/*
 * Copyright (c) 2012 Adobe Systems Incorporated. All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 *
 */

/*
 * This file first imports all of the shared LESS/CSS, and then defines
 * version-specific layout (e.g. layout for the App shell, or layout for
 * the In-Browser version on Firefox).
 *
 * Going forward, we may have different versions of this file for different
 * Versions (e.g. App, In-Browser, etc.)
 *
 * Anything that is general/reusable should be pushed up into a LESS file
 * in the "styles" directory. See "brackets_shared.less" for the organization
 *
 * Date: @DATE
 */

/* IMPORTANT: importing brackets_shared should be the first step in this file
 * This is so that imported CSS files (NOT LESS files) end up in the
 * right place
 */
@import "brackets_shared.less";

/* Overall layout */

html, body {
    height: 100%;
    overflow: hidden;

    /* Turn off selection for UI elements */
    .user-select(none);

    /* And make sure we get a pointer cursor even over text */
    cursor: default;

    /* Turn off subpixel antialiasing on Mac since it flickers during animations. */
    -webkit-font-smoothing: antialiased;

    /* This is a hack to avoid flicker when animations (like inline editors) that use the GPU complete.
       It seems that we have to put it here rather than on the animated element in order to prevent the
       entire window from flashing.
       See: http://stackoverflow.com/questions/3461441/prevent-flicker-on-webkit-transition-of-webkit-transform
    */
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.resizing-container {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: @z-index-brackets-panel-resizer;

    &.horz-resizing {
        cursor: col-resize;
    }

    &.vert-resizing {
        cursor: row-resize;
    }
}

a, img {
    -webkit-user-drag: none;
}

.main-view {
    background: @background-color-3; // to keep the theme background consistent
    height: 100%;

    .sidebar {
        height: 100%;
        .vbox;
        width: @sidebar-width;  // changed dynamically via Resizer
        position: absolute;
        left: 0;
        top: 0;
    }

    .content {
        height: 100%;
        position: absolute;
        padding: 0;
        top: 0;
        left: @sidebar-width;  // changed dynamically via Resizer
        right: @main-toolbar-width;
    }
}

#titlebar, .modal-bar {
    border-bottom: 1px solid @tc-gray-panel-border;
    box-shadow: @tc-small-shadow-bottom;

    // Make sure the bottom box-shadow goes above the editor (position: relative needed to start a new stacking group)
    position: relative;
    z-index: @z-index-brackets-toolbar;
}

.busyCursor {
    cursor: wait !important;
}

#status-bar {
    position: relative;
    background: #fff;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    box-sizing: border-box;
    color: @tc-text;
    font-family: @sansFontFamily;
    font-size: 11px;
    line-height: 25px;
    height: 26px;
    overflow: hidden;
}

#status-info {
    color: @tc-text;
    left: 10px;
    position: absolute;
    white-space: nowrap;

    div {
        display: inline;
    }
}

#status-file {
    color: #999;
}

#status-indicators {
    background: #fff;
    color: @tc-text;
    position: absolute;
    right: 0;
    text-align: right;
    white-space: nowrap;

    > div {
        border-left: 1px solid rgba(0, 0, 0, 0.1);
        float: right;
        padding: 0 10px;
    }
    .spinner {  // spinner is tiny & usually invisible; reduce margin so gap is less glaring
        border: none;
        margin: 6px 10px;
        padding: 0;
    }

    #status-language {
        border-right: 1px solid rgba(0, 0, 0, 0.1);
    }
}

@-webkit-keyframes spinner-sprites-12 {
      0% { background-position:    0px 0px; }
    100% { background-position: -120px 0px; }
}
@-webkit-keyframes spinner-sprites-36 {
      0% { background-position:    0px 0px; }
    100% { background-position: -360px 0px; }
}

#status-indent > * {
    display: inline-block;
}

#status-indent > *.hidden {
    display: none;
}

#indent-type, #indent-width-label {
    cursor: pointer;
    margin-right: 3px;
}

#indent-type:hover, #indent-width-label:hover {
    text-decoration: underline;
}

#indent-width-input {
    font-size: 11px;
    font-weight: @font-weight-semibold;
    height: 13px;
    line-height: 1;
    vertical-align: middle;
    color: @tc-text;
    margin: 0;
    padding: 0 3px 2px;
    position: relative;
    left: 0;
    top: -1px;
    width: 6px;
    transition: 0.1s linear all;
}

#indent-width-input:focus {

}

#indent-width-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

#editor-holder {
    position: relative;

    /* Placeholder shown when there is no editor open */
    #not-editor {
        height: 100%;
        .vbox;
        .box-pack(center);
        .box-align(center);
        background: @background-color-3 url('images/no_content_bg.svg') no-repeat center 45%;
    }

    /* Image Preview */
    #image-holder {
        overflow: hidden;
        position: absolute;
        top: 0px;
        right: 0px;
        bottom: 0px;
        left: 0px;
        text-align: center;
        display: none;
        #img-centering {
            display: inline-block;
            vertical-align: middle;
            margin-top: -50px; /* Offset as vertical align takes image metadata into account */
            max-width: 90%;
            max-height: 90%;
        }
        #img-data {
            font-weight: @font-weight-semibold;
        }
    }

    #image-holder:before {
        content: '';
        display: inline-block;
        height: 100%;
        margin-right: -0.25em; /* Adjusts for spacing */
        vertical-align: middle;
    }

    #img-preview {
        background: url(images/preview_bg.png);
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.36);
        max-height: 90%;
    }

    #img-header {
        display: block;
        width: 100%;
        height: 38px;
        margin-bottom: 15px;
    }

    #img-data,
    #img-path {
        text-align: left;
        .user-select(text);
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
    }

    #img-data::selection,
    #img-path::selection {
        background: @selection-color-focused;
    }

    #img {
        position: relative;
    }

    .img-guide,
    #img-preview {
        cursor: none;
    }

    #img-scale {
        display: block;
        position: absolute;
        top: 5px;
        left: 5px;
        width: 40px;
        text-align: center;
        background-color: rgba(0, 0, 0, 0.8);
        color: #fff;
        border-radius: 3px;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    }

    #img-tip {
        display: block;
        position: absolute;
        text-align: left;
        white-space: nowrap;
        padding: 6px 9px;
        color: #fff;
        background-color: rgba(0, 0, 0, 0.8);
        font-size: 11px;
        font-family: SourceCodePro;
        line-height: 13px;
        border-radius: 3px;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.24);
    }

    #x-value,
    #y-value {
        text-align: right;
    }

    .tip-container {
        border: 0;
    }

    #horiz-guide {
        background-image: url("images/horizontal-dash.svg");
        background-repeat: repeat-x;
        width: 8px;
        height: 1px;
    }

    #vert-guide {
        background-image: url("images/vertical-dash.svg");
        background-repeat: repeat-y;
        width: 1px;
        height: 8px;
    }

    #horiz-guide,
    #vert-guide {
        position: absolute;
        display: block;
    }
}

.vert-resizer {
    position: absolute;
    height: 6px;
    width: 100%;
    z-index: @z-index-brackets-panel-resizer;
    opacity: 0;
    cursor: row-resize;
}

.horz-resizer {
    position: absolute;
    height: 100%;
    width: 6px;
    z-index: @z-index-brackets-panel-resizer;
    opacity: 0;
    cursor: col-resize;
}

.bottom-panel {
    background-color: @tc-gray-panel;
    display: none;
    height: 200px;
    border-top-style: solid;
    border-width: 1px;
    border-color: @tc-gray-panel-border;

    .check-all {
        margin: 7px 15px 7px 7px;
    }

    .toolbar {
        background-color: @tc-gray-panel-top-bar;
        border-bottom: @tc-gray-panel-top-bar-shadow;
        height: auto;
        padding-top: (@base-padding / 2);
        padding-bottom: (@base-padding / 2);
        z-index: @z-index-brackets-results-panel;
        box-shadow: @tc-gray-panel-bevel, @tc-small-shadow-top;
        .title {
            color: @tc-text;
            font-size: @label-font-size;
            font-weight: @font-weight-semibold;
        }
        .close {
            position: absolute;
            right: 10px;

            // vertically centers close button
            top: 50%;
            margin-top: -10px;
        }
    }

    .table-container {
        height: 170px;
        overflow: auto;

        .highlight {
            background: @bc-white;
            border-radius: 2px;
        }

        tr.selected td {
            background-color: @tc-selected-row;
            color: @bc-black;
        }
    }
}

.bottom-panel-table {
    td {
        font-size: 12px;
        padding-left: 15px;
        padding-right: 0;
        vertical-align: baseline;
    }

    .file-section > td {
        padding-left: 5px;
    }

    .line-number {
        color: @tc-light-weight-quiet-text;
        font-family: SourceCodePro;
        font-size: 11px;
        padding: 4px 0 0 15px;
        text-align: right;
        white-space: nowrap;
        width: 5px;
    }

    .dialog-filename {
        font-size: 13px;
        font-weight: @font-weight-semibold;
    }

    .dialog-path {
        font-size: 11px;
        font-weight: normal;
    }

    .line-text {
        width: 100%;
    }
}

#update-notification {
    .sprite-icon(0, 0, 24px, 24px, "images/updateSprites.svg");
}

#toolbar-go-live {
    // background-position is 0 0 for 24x24 icons
    // Default icon is for the 'disconnected' state
    // The 'connecting failed' (.warning) state also maps here
    .sprite-icon(0, 0, 24px, 24px, "images/live_development_sprites.svg");
    // 'Connected' state
    &.success {
        .sprite-swap(0, 24px);
    }
    // 'Connection in progress' state
    &.info {
        .sprite-swap(0, 48px);
    }
    // 'Out-of-sync' state
    &.out-of-sync {
        .sprite-swap(0, 72px);
    }
    // 'sync-error'
    &.sync-error {
        .sprite-swap(0, 96px);
    }
}

#toolbar-extension-manager {
    .sprite-icon(0, 0, 24px, 24px, "images/topcoat-plugin-20.svg");
}

/* Project panel */

#working-set-header {
    height: 19px;
    padding: 10px 0 9px 12px;
    background: #3C3F41;
    color: @project-panel-text-2;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5);
    overflow: hidden;
}

#sidebar {
    position: relative;
    white-space: nowrap;
}

#sidebar-resizer {
    position: absolute;
    width: 6px;
    height: 100%;
    z-index: @z-index-brackets-sidebar-resizer;
    opacity: 0;
    cursor: col-resize;
}

#project-files-header {
    border-top: 1px solid #56595a;
    padding: 8px 0 9px 12px;
    font-size: 13px;
    color: @project-panel-text-2;
    overflow: hidden;
}

#open-files-container {
    .box-flex(0);
    background: #3C3F41;
    padding: 0px;
    max-height: 200px; // TODO (Issue #276): it would be nicer to have this be 50%, but that doesn't seem to work

    ul {
        list-style-type: none;
        margin: 0;
        padding-bottom: 23px;
    }

    li {
        position: relative; // so that children can be positioned absolute
        line-height: 18px;
        padding: 0 0 0 8px;
        min-height: 18px;
        vertical-align: baseline;

        &.selected a {
            color: @open-working-file-name-highlight;
        }

        &.selected .extension {
            color: @open-working-file-ext-highlight;
        }
    }

    a {
        color: #fff;

        font-size: 13px;
        text-decoration: none;

        display: block;
        height: 16px;
        line-height: 15px;
        margin-left: 18px;
        padding: 3px (@sidebar-triangle-size * 2) 3px 0;

        cursor: default;

        .directory {
            font-size: 11px;
        }
    }

    .extension, .directory {
        color: @project-panel-text-2;
    }
}

.sidebar-selection {
    background: url("images/active_back.png") no-repeat top right;
    height: 22px;
    position: absolute;
}

.sidebar-selection-triangle {
    background: url("images/active_back.png");
    width: 9px; /* quiet scrollbar width */
    height: 22px;
    position: fixed;

    z-index: @z-index-brackets-selection-triangle; /* scroller-shadow appears above this triangle */
}

.sidebar-selection-triangle.triangle-visible:before {
    content: "";

    border-top: @sidebar-triangle-size solid transparent;
    border-bottom: (@sidebar-triangle-size - 1) solid transparent;
    border-left: @sidebar-triangle-size solid #2D2E30;

    display: block;
    position: absolute;
    top: -1px;
    right: -9px;
    width: 0;
    height: 0;

    .scale-x(0.8, right, top);
}

//Initially start with the open files hidden, they will get show as files are added
#open-files-container {
    display:none;
}

#project-files-container {
    .box-flex(1);

    .jstree-brackets li > a {
        padding-right: (@sidebar-triangle-size * 2);
    }

    ul {
        padding-left: 8px;
    }

    > ul {
        padding-bottom: 24px;
    }
}

.scroller-shadow {
    background-size: 100%;
    background-repeat: no-repeat;
    height: 5px;
    position: fixed;
    z-index: @z-index-brackets-scroller-shadow;

    &.top {
        #gradient > .vertical(rgba(0,0,0,0.1), rgba(0,0,0,0));
        background-position: 0 -5px;
        background-color: transparent; /* override background-color: @endColor from #gradient.vertical */
    }

    &.bottom {
        #gradient > .vertical(rgba(0,0,0,0), rgba(0,0,0,0.1));
        background-position: 0 5px;
        background-color: transparent; /* override background-color: @endColor from #gradient.vertical */
    }
}

@jstree-sprite-size: 18px;  // this is hardcoded in jsTree's JS code

/** Classes for icons from jsTreeSprites.svg
*/
.jstree-sprite {
    background-image: url("images/jsTreeSprites.svg");
    background-repeat: no-repeat;
    background-color: transparent;
    vertical-align: middle;
    width: @jstree-sprite-size;
    height: @jstree-sprite-size;
}

/** Overriding jsTreeTheme.less
*/
.jstree-brackets .jstree-no-dots .jstree-open > ins {
    background-position: 7px -8px;
    -webkit-transform: translateZ(0) rotate(90deg);
    -webkit-filter: drop-shadow(1px 0 1px rgba(0, 0, 0, 0.36));
}

.jstree-brackets .jstree-no-dots .jstree-closed > ins {
    background-position: 7px -8px;
    -webkit-transform: translateZ(0); /* Need this to make sure that the svg isn't blurry on retina. */
    -webkit-filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.36));
}

/** Classes for icons from bracketSprites.png
*/
.bracket-sprite {
    background-image: url("images/close_btn.svg");
    background-repeat: no-repeat;
    background-color: transparent;
    vertical-align: middle;
    width: 15px;
    height: 16px;
}

.file-status-icon {
    margin: 2px 0 0 8px;
    .bracket-sprite;
    display: inline-block;
    position: absolute;
    left: 0px;
    top: 1px;

    &.dirty {
        background-position: -30px 1px;
    }

    &.can-close {
        background-position: 0 0;
    }

    &.can-close:hover {
        background-position: -15px 0;
    }

    &.can-close:active {
        background-position: -15px 0;
        opacity: @tc-icon-down;
    }
}

/* Styles for inline editors */

.inline-text-editor {
    line-height: 0px;
}

.inline-widget {
    position: relative;
    overflow: hidden;

    background-color: @tc-lighter-gray;
    min-width: 250px;
    cursor: default;

    &.animating {
        // Make the animation use the GPU--especially important for retina.
        -webkit-transform: translateZ(0);
        transform: translateZ(0);

        transition: height 250ms cubic-bezier(0, 1.02, 0.6, 1);
    }

    .CodeMirror {
        /* remove CodeMirror default height: 300px */
        height: auto;
    }

    .inline-text-editor {
        white-space: nowrap;
    }

    .inline-editor-header {
        display: inline-block;
        padding: 10px 10px 0px 40px;

        .filename {
            vertical-align: middle;
            font-family: @sansFontFamily;
            font-size: 13px;
            color: @bc-black;

            // Filename header is clickable (it's an <a> tag, so we get underscore on hover by
            // default; but the hand cursor is shut off by Bootstrap's reset stylesheet)
            cursor: pointer;

            .dirty-indicator {
                .bracket-sprite;
                display: inline-block;
                background-position: -32px 2px;
                padding-top: 5px;
            }

            .line-number {
                color: @inline-color-2;
            }
        }
    }

    .shadow {
        display: block;
        height: 4px;
        width: 100%;
        position: absolute;
        content: " ";
        left: 0;
        z-index: @z-index-brackets-inline-editor-shadow;
    }

    .shadow.top {
        top: 0px;
        background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));
    }

    .shadow.bottom {
        bottom: 0px;
        background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1));
    }

    .CodeMirror-scroll {
        background-color: transparent;

        .CodeMirror-linenumbers {
            background-color: @tc-lighter-gray;
        }
    }

    .close {
        position: absolute;
        left: 15px;
        top: 10px;
        margin-right: 30px;
    }

}

/* CSSInlineEditor rule list */
.related-container {
    @top-margin: 12px;

    float: right;
    position: relative;
    min-height: 100%;
    font-family: @sansFontFamily;
    width: 250px;
    max-width: 50%;
    overflow: hidden;
    background: @inline-background-color-2;

    // Without this, the "New Rule" button shows on top of the rule list if you resize
    // the window narrow enough. No idea why, since there's no z-index on the button, and
    // the other items in the header go behind the rule list.
    z-index: 1;

    .selection {
        width: 100%;
        background: #d0d5d5;
        position: absolute;
        border-top: 1px solid darken(@inline-background-color-3, @bc-color-step-size);
        border-bottom: 1px solid lighten(@inline-background-color-3, @bc-color-step-size);
        top: @top-margin;

        &.animate {
            transition: top 0.1s ease-out;
        }
    }

    /*
     * CSS triangle hack with anti-alias workarounds:
     * (a) Use selection-background-color instead of transparent.
     * (b) Use transform scaleX and origin to adjust width.
     */
    .selection:before {
        content: " ";
        position: absolute;
        width: 0;
        height: 0;
        border-top: @inline-triangle-size solid @inline-background-color-3;
        border-bottom: @inline-triangle-size solid @inline-background-color-3;
        border-left: @inline-triangle-size solid @inline-background-color-1;
        margin-top: -@inline-triangle-size;
        top: 50%;
        .scale-x(0.9, left, top);
    }

    .related {
        font-size: 12px;
        position: absolute;
        top: 0;
        left: 1px;
        width: 100%;

        ul {
            margin: 0;
            padding: @top-margin 0px;
            list-style: none;
        }

        li {
            color: @tc-emphasized-text;
            margin: 0;
            overflow: hidden;
            padding: 2px 0px 2px 15px;
            text-overflow: ellipsis;
            white-space: nowrap;

            .related-file {
                color: @tc-input-placeholder-text;
            }
        }

        .selected {
            color: @tc-light-weight-text;
            transition: color 0.1s ease-out .15s;
        }
    }
}

.inline-editor-message {
    color: @tc-input-placeholder-text;
    font-family: @sansFontFamily;
    font-size: 12px;
    line-height: 17px;
    height: 20px;
    padding: 10px 0 40px 50px;
}

/* This text is used to force the code editor's font to be loaded early on if it's a
   web font. This is necessary in order for the editor's horizontal measurement of text
   to work properly.

   In the future, when we allow the user to switch fonts, we'll need to make sure to
   update the font for this text item whenever the user switches. We'll also need to
   wait to initiate a re-measure in CodeMirror until the new font is loaded (if they
   choose a web font). This library allows for checking if a web font is loaded:

     http://code.google.com/apis/webfonts/docs/webfont_loader.html
*/
.dummy-text {
    position: fixed;
    top: -10000px;
    .code-font();
}

.platform-mac .dummy-text {
    .code-font-mac();
}

/* Find in Files results panel - temporary UI, to be replaced with a richer search feature later */

#search-results .title, #replace-all-results .title {
    .sane-box-model;
    padding-right: 20px;
    width: 100%;
    line-height: 25px;

    .flex-box;
    .contracting-col {
        .flex-item(0);
        min-width: 1px;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .fixed-col {
        .flex-item(0, 0);
    }
    .pagination-col {
        .flex-item(1, 0);
        min-width: 100px;
    }
    .replace-col {
        .flex-item(1, 0);
        min-width: 120px;
        padding: 0 15px;
    }
    .first-page,
    .prev-page,
    .next-page,
    .last-page {
        .jstree-sprite;
        width: 6px;
        display: inline-block;
        margin: 0 2px;
        background-position: 0px 4px;
    }
    .first-page {
        background-position: 0px -80px;
        margin-left: 10px;
    }
    .prev-page {
        background-position: 0px -24px;
    }
    .last-page {
        background-position: 0px -52px;
    }
    .disabled {
        opacity: 0.3;
    }
}

#search-results .disclosure-triangle {
    .jstree-sprite;
    display: inline-block;
    &.expanded {
        // Unfortunately, the way jsTree sprites are aligned within their 18px boxes doesn't look good in
        // other contexts, so we need some tweaks here instead of straight multiples of @jstree-sprite-size
        background-position: 7px 5px;
        -webkit-transform: translateZ(0) rotate(90deg);
    }
    &.collapsed {
        background-position: 7px 5px;
    }
}

/* Modal bar for Find/Quick Open */

.modal-bar {
    display: block;
    text-align: left;

    font-family: @sansFontFamily;
    font-size: 14px;
    color: @tc-text;
    background: @tc-gray-panel;
    overflow: visible;  // needed for .error popup
    padding: 5px 4px 4px 14px;

    -webkit-transform: translate(0, 0); // Prefix still required.
    transition: -webkit-transform 66ms cubic-bezier(0, 0.62, 0.04, 0.99);
    z-index: @z-index-brackets-modalbar;

    body.in-browser &,
    body:not(.has-appshell-menus) & {
        // Separator line between us and the HTML menu/titlebar above
        border-top: 1px solid darken(@background-color-3, @bc-color-step-size);
    }

    &.popout {
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
    }

    &.offscreen {
        -webkit-transform: translate(0, -44px);
        transform: translate(0, -44px);
        transition: -webkit-transform 266ms cubic-bezier(0, 0.56, 0, 1);
        transition: transform 266ms cubic-bezier(0, 0.56, 0, 1);

        body:not(.has-appshell-menus) & {
            top: 37px;
        }
    }

    input {
        font-family: @sansFontFamily;
        outline: none;
        width: 20em;
        margin: 5px 5px 0;
        position: relative;
        top: -3px;
        &.no-results {
            border: 1px solid #bc0023;
            box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.12), 0 0 0 2px rgba(255, 0, 120, 0.5);
        }
    }

    #find-what, #replace-with {
        width: 295px;
    }

    .search-input-container {
        position: relative;
        display: inline;

        .error {  // "popup" that hangs below search field
            position: absolute;
            left: 5px;
            top: 24px;
            min-width: 291px + 2px;  // to align with search field above it

            background-color: #f74687;
            color: @bc-white;
            font-size: 12px;
            padding: 3px 8px;
            border-top-right-radius: 0;
            border-bottom-right-radius: 0;
            box-shadow: @tc-small-shadow-bottom;
        }

        #find-what {
            padding-right: 62px;  // room for #find-counter overlay
            width: 295px - (62px - 6px);  // maintain width, accounting for differing padding
        }
        #find-counter {
            position: absolute;
            color: @tc-light-weight-quiet-text;
            top: 1px;
            right: 2px;
            font-size: 12px;
        }
    }

    #find-group, #replace-group {
        display: inline-block;
        white-space: nowrap;
    }

    .message, .no-results-message {
        display: inline-block;
    }

    #find-case-sensitive, #find-regexp {
        padding: 1px 5px;
    }
    .button-icon {  // icons must be nested inside button so we can apply padding w/o tiling icon
        .sprite-icon(0, 0, 24px, 24px, "images/find-replace-sprites.svg");
        background-repeat: no-repeat;
    }
    #find-regexp.active .button-icon {
        .sprite-swap(0, 24px);
    }
    #find-case-sensitive .button-icon {
        .sprite-swap(0, 48px);
    }
    #find-case-sensitive.active .button-icon {
        .sprite-swap(0, 72px);
    }
    #find-regexp.active, #find-case-sensitive.active {
        background-color: @tc-highlight;
    }

    .navigator {  // next/prev buttons
        display: inline-block;
    }
    button {
        margin: 2px 1px 3px;
    }
    #find-prev {
        border-radius: 3px 0 0 3px;
        margin-left: 5px;
    }

    // Make button pairs snug
    #find-prev, #replace-yes, #find-case-sensitive {
        border-right: none;
        margin-right: 0;
    }
    #find-next, #replace-all, #find-regexp {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
        margin-left: 0;
    }

    // Make find field snug with options buttons
    //    & replace snug with replace commands
    #find-what, #replace-with {
        margin-right: 0px;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
    #find-case-sensitive, #replace-yes {
        border-left: none;
        margin-left: 0px;
        border-radius: 0;
    }
}

// Search result highlighting - CodeMirror highlighting is pretty constrained. Highlights are
// blended on TOP of the selection color. The "current" search result is indicated by selection,
// so we want the selection visible underneath the highlight. To do this, the highlight must be
// transparent; it has to look good atop both the selection color AND the regular text bg color.
.CodeMirror-searching {
    // Highlight color, overlaid on top of the .find-highlighting color
    background-color: @cm-match-highlight;
    border-radius: @tc-inline-border-radius;
    box-shadow: @tc-small-shadow-bottom;
    color: @match-text !important;
}
.CodeMirror.find-highlighting div.CodeMirror-selected,
.CodeMirror .CodeMirror.find-highlighting div.CodeMirror-selected {
    // Selection color while highlighting shown - ALWAYS has the .CodeMirror-searching color
    // blended atop it.
    // Note: the 2nd selector reflecting CM nesting is needed to override the similar rules in
    // brackets_codemirror_override.less (see the note about #324).
    background: @cm-current-match-highlight;
    border-radius: @tc-inline-border-radius;
}
#find-counter {
    font-weight: @font-weight-semibold;
    padding: 0 5px;
}

.tickmark-track {
    position: absolute;
    bottom: 0;
    top: 0;
    right: 0;
    width: 16px;
    z-index: @z-index-cm-max;
    pointer-events: none;

    .tickmark {
        position: absolute;
        width: 16px;
        body.platform-mac & { width: 15px; }

        height: 1px;
        background-color: #eddd23;
        border-top: 1px solid #e0d123;
        border-bottom: 1px solid #d4c620;
        opacity: 0.85;  // allow thumb to show through
    }
}

/* Quick Open search bar & dropdown */

.smart_autocomplete_container {

    // the borders show up even if the container is empty, must set height to zero using JS.
    border: 1px solid @tc-gray-panel-border;

    background-color: @tc-gray-panel;
    border-radius: 0 0 4px 4px;
    box-shadow: @tc-normal-shadow-bottom;

    // so that border won't show when height is 0.
    box-sizing: border-box;

    // using this to fix the spacing that breaks item seperators and had to use !important to override inline css
    width: 434px !important;

    /* smart auto complete doesn't correctly position the container
     * so these specific padding and margin values are necessary*/
    padding: 0px;
    margin: 9px 0 0;

    .quick-open-path {
        color: #666;
        font-size: 11px;
        letter-spacing: 0.04em;
        line-height: 11px;
    }

    li {
        color: #222;
        line-height: 15px;
        list-style: none;
        cursor: default;
        padding: 6px 10px;

        &:nth-child(odd) {
            background-color: @tc-lighter-gray;
        }

        &:hover {
            background-color: @tc-hover-highlight;
        }

        &.smart_autocomplete_highlight {
            background-color: @tc-highlight;
        }
    }
}

.quicksearch-pathmatch,
.quicksearch-namematch {
    font-weight: @font-weight-semibold;
}

.quicksearch-pathmatch {
    color: #555;
}

/* Spinner */

.spinner {
    display: inline-block;
    vertical-align: middle;
    margin-top: -2px;
    width: 12px;
    height: 12px;
    background: url("images/spinner_small_sprites12.png") no-repeat;
    visibility: hidden;

    &.spin {
        -webkit-animation: spinner-sprites-12 1.2s steps(10) infinite;
        visibility: visible;
    }

    &.large {
        width: 36px;
        height: 36px;
        margin-top: 0;
        background: url("images/spinner_large_sprites36.png") no-repeat;

        &.spin {
            -webkit-animation: spinner-sprites-36 1.2s steps(10) infinite;
        }
    }
}
// Retina versions
@media only screen and (-webkit-min-device-pixel-ratio: 2),
       only screen and (min-device-pixel-ratio: 2) {
    .spinner {
        background-image: url("images/spinner_small_sprites12@2x.png");
        background-size: 120px 12px;

        &.large {
            background: url("images/spinner_large_sprites36@2x.png") no-repeat;
            background-size: 360px 36px;
        }
    }
}

/* Problems panel & CodeInspection status bar indicator */

#status-indicators #status-inspection {
    border: none;
    cursor: default;
    width: 13px;
}

.inspection-disabled {
    background: url(images/topcoat-inactive-15.svg) 9px 5px no-repeat;
}

.inspection-errors {
    background: url(images/topcoat-warning-15.svg) 9px 5px no-repeat;
}

.inspection-errors:hover {
    background-color: rgba(0, 0, 0, 0.03);
}

.inspection-errors:active {
    background-color: rgba(0, 0, 0, 0.05);
}

.inspection-valid {
    background: url(images/topcoat-okay-15.svg) 9px 5px no-repeat;
}

#problems-panel {
    .user-select(text);  // allow selecting error messages for easy web searching
    .line {
        text-align: right;  // make line number line up with editor line numbers
    }
}

/* Line up label text and input text */
label input {
    position: relative;
    top: -2px;
}

/* Live Preview */
.live-preview-sync-error .CodeMirror-linenumber {
    background-color: @live-preview-sync-error-background;
    color: @live-preview-sync-error-color;
}

/*
 * Copyright (c) 2012 Adobe Systems Incorporated. All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 *
 */

/*
 * This file first imports all of the shared LESS/CSS, and then defines
 * version-specific layout (e.g. layout for the App shell, or layout for
 * the In-Browser version on Firefox).
 *
 * Going forward, we may have different versions of this file for different
 * Versions (e.g. App, In-Browser, etc.)
 *
 * Anything that is general/reusable should be pushed up into a LESS file
 * in the "styles" directory. See "brackets_shared.less" for the organization
 *
 * Date: @DATE
 */

/* IMPORTANT: importing brackets_shared should be the first step in this file
 * This is so that imported CSS files (NOT LESS files) end up in the
 * right place
 */
@import "brackets_shared.less";

/* Overall layout */

html, body {
    height: 100%;
    overflow: hidden;

    /* Turn off selection for UI elements */
    .user-select(none);

    /* And make sure we get a pointer cursor even over text */
    cursor: default;

    /* Turn off subpixel antialiasing on Mac since it flickers during animations. */
    -webkit-font-smoothing: antialiased;

    /* This is a hack to avoid flicker when animations (like inline editors) that use the GPU complete.
       It seems that we have to put it here rather than on the animated element in order to prevent the
       entire window from flashing.
       See: http://stackoverflow.com/questions/3461441/prevent-flicker-on-webkit-transition-of-webkit-transform
    */
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.resizing-container {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: @z-index-brackets-panel-resizer;

    &.horz-resizing {
        cursor: col-resize;
    }

    &.vert-resizing {
        cursor: row-resize;
    }
}

a, img {
    -webkit-user-drag: none;
}

.main-view {
    background: @background-color-3; // to keep the theme background consistent
    height: 100%;

    .sidebar {
        height: 100%;
        .vbox;
        width: @sidebar-width;  // changed dynamically via Resizer
        position: absolute;
        left: 0;
        top: 0;
    }

    .content {
        height: 100%;
        position: absolute;
        padding: 0;
        top: 0;
        left: @sidebar-width;  // changed dynamically via Resizer
        right: @main-toolbar-width;
    }
}

#titlebar, .modal-bar {
    border-bottom: 1px solid @tc-gray-panel-border;
    box-shadow: @tc-small-shadow-bottom;

    // Make sure the bottom box-shadow goes above the editor (position: relative needed to start a new stacking group)
    position: relative;
    z-index: @z-index-brackets-toolbar;
}

.busyCursor {
    cursor: wait !important;
}

#status-bar {
    position: relative;
    background: #fff;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    box-sizing: border-box;
    color: @tc-text;
    font-family: @sansFontFamily;
    font-size: 11px;
    line-height: 25px;
    height: 26px;
    overflow: hidden;
}

#status-info {
    color: @tc-text;
    left: 10px;
    position: absolute;
    white-space: nowrap;

    div {
        display: inline;
    }
}

#status-file {
    color: #999;
}

#status-indicators {
    background: #fff;
    color: @tc-text;
    position: absolute;
    right: 0;
    text-align: right;
    white-space: nowrap;

    > div {
        border-left: 1px solid rgba(0, 0, 0, 0.1);
        float: right;
        padding: 0 10px;
    }
    .spinner {  // spinner is tiny & usually invisible; reduce margin so gap is less glaring
        border: none;
        margin: 6px 10px;
        padding: 0;
    }

    #status-language {
        border-right: 1px solid rgba(0, 0, 0, 0.1);
    }
}

@-webkit-keyframes spinner-sprites-12 {
      0% { background-position:    0px 0px; }
    100% { background-position: -120px 0px; }
}
@-webkit-keyframes spinner-sprites-36 {
      0% { background-position:    0px 0px; }
    100% { background-position: -360px 0px; }
}

#status-indent > * {
    display: inline-block;
}

#status-indent > *.hidden {
    display: none;
}

#indent-type, #indent-width-label {
    cursor: pointer;
    margin-right: 3px;
}

#indent-type:hover, #indent-width-label:hover {
    text-decoration: underline;
}

#indent-width-input {
    font-size: 11px;
    font-weight: @font-weight-semibold;
    height: 13px;
    line-height: 1;
    vertical-align: middle;
    color: @tc-text;
    margin: 0;
    padding: 0 3px 2px;
    position: relative;
    left: 0;
    top: -1px;
    width: 6px;
    transition: 0.1s linear all;
}

#indent-width-input:focus {

}

#indent-width-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

#editor-holder {
    position: relative;

    /* Placeholder shown when there is no editor open */
    #not-editor {
        height: 100%;
        .vbox;
        .box-pack(center);
        .box-align(center);
        background: @background-color-3 url('images/no_content_bg.svg') no-repeat center 45%;
    }

    /* Image Preview */
    #image-holder {
        overflow: hidden;
        position: absolute;
        top: 0px;
        right: 0px;
        bottom: 0px;
        left: 0px;
        text-align: center;
        display: none;
        #img-centering {
            display: inline-block;
            vertical-align: middle;
            margin-top: -50px; /* Offset as vertical align takes image metadata into account */
            max-width: 90%;
            max-height: 90%;
        }
        #img-data {
            font-weight: @font-weight-semibold;
        }
    }

    #image-holder:before {
        content: '';
        display: inline-block;
        height: 100%;
        margin-right: -0.25em; /* Adjusts for spacing */
        vertical-align: middle;
    }

    #img-preview {
        background: url(images/preview_bg.png);
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.36);
        max-height: 90%;
    }

    #img-header {
        display: block;
        width: 100%;
        height: 38px;
        margin-bottom: 15px;
    }

    #img-data,
    #img-path {
        text-align: left;
        .user-select(text);
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
    }

    #img-data::selection,
    #img-path::selection {
        background: @selection-color-focused;
    }

    #img {
        position: relative;
    }

    .img-guide,
    #img-preview {
        cursor: none;
    }

    #img-scale {
        display: block;
        position: absolute;
        top: 5px;
        left: 5px;
        width: 40px;
        text-align: center;
        background-color: rgba(0, 0, 0, 0.8);
        color: #fff;
        border-radius: 3px;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    }

    #img-tip {
        display: block;
        position: absolute;
        text-align: left;
        white-space: nowrap;
        padding: 6px 9px;
        color: #fff;
        background-color: rgba(0, 0, 0, 0.8);
        font-size: 11px;
        font-family: SourceCodePro;
        line-height: 13px;
        border-radius: 3px;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.24);
    }

    #x-value,
    #y-value {
        text-align: right;
    }

    .tip-container {
        border: 0;
    }

    #horiz-guide {
        background-image: url("images/horizontal-dash.svg");
        background-repeat: repeat-x;
        width: 8px;
        height: 1px;
    }

    #vert-guide {
        background-image: url("images/vertical-dash.svg");
        background-repeat: repeat-y;
        width: 1px;
        height: 8px;
    }

    #horiz-guide,
    #vert-guide {
        position: absolute;
        display: block;
    }
}

.vert-resizer {
    position: absolute;
    height: 6px;
    width: 100%;
    z-index: @z-index-brackets-panel-resizer;
    opacity: 0;
    cursor: row-resize;
}

.horz-resizer {
    position: absolute;
    height: 100%;
    width: 6px;
    z-index: @z-index-brackets-panel-resizer;
    opacity: 0;
    cursor: col-resize;
}

.bottom-panel {
    background-color: @tc-gray-panel;
    display: none;
    height: 200px;
    border-top-style: solid;
    border-width: 1px;
    border-color: @tc-gray-panel-border;

    .check-all {
        margin: 7px 15px 7px 7px;
    }

    .toolbar {
        background-color: @tc-gray-panel-top-bar;
        border-bottom: @tc-gray-panel-top-bar-shadow;
        height: auto;
        padding-top: (@base-padding / 2);
        padding-bottom: (@base-padding / 2);
        z-index: @z-index-brackets-results-panel;
        box-shadow: @tc-gray-panel-bevel, @tc-small-shadow-top;
        .title {
            color: @tc-text;
            font-size: @label-font-size;
            font-weight: @font-weight-semibold;
        }
        .close {
            position: absolute;
            right: 10px;

            // vertically centers close button
            top: 50%;
            margin-top: -10px;
        }
    }

    .table-container {
        height: 170px;
        overflow: auto;

        .highlight {
            background: @bc-white;
            border-radius: 2px;
        }

        tr.selected td {
            background-color: @tc-selected-row;
            color: @bc-black;
        }
    }
}

.bottom-panel-table {
    td {
        font-size: 12px;
        padding-left: 15px;
        padding-right: 0;
        vertical-align: baseline;
    }

    .file-section > td {
        padding-left: 5px;
    }

    .line-number {
        color: @tc-light-weight-quiet-text;
        font-family: SourceCodePro;
        font-size: 11px;
        padding: 4px 0 0 15px;
        text-align: right;
        white-space: nowrap;
        width: 5px;
    }

    .dialog-filename {
        font-size: 13px;
        font-weight: @font-weight-semibold;
    }

    .dialog-path {
        font-size: 11px;
        font-weight: normal;
    }

    .line-text {
        width: 100%;
    }
}

#update-notification {
    .sprite-icon(0, 0, 24px, 24px, "images/updateSprites.svg");
}

#toolbar-go-live {
    // background-position is 0 0 for 24x24 icons
    // Default icon is for the 'disconnected' state
    // The 'connecting failed' (.warning) state also maps here
    .sprite-icon(0, 0, 24px, 24px, "images/live_development_sprites.svg");
    // 'Connected' state
    &.success {
        .sprite-swap(0, 24px);
    }
    // 'Connection in progress' state
    &.info {
        .sprite-swap(0, 48px);
    }
    // 'Out-of-sync' state
    &.out-of-sync {
        .sprite-swap(0, 72px);
    }
    // 'sync-error'
    &.sync-error {
        .sprite-swap(0, 96px);
    }
}

#toolbar-extension-manager {
    .sprite-icon(0, 0, 24px, 24px, "images/topcoat-plugin-20.svg");
}

/* Project panel */

#working-set-header {
    height: 19px;
    padding: 10px 0 9px 12px;
    background: #3C3F41;
    color: @project-panel-text-2;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5);
    overflow: hidden;
}

#sidebar {
    position: relative;
    white-space: nowrap;
}

#sidebar-resizer {
    position: absolute;
    width: 6px;
    height: 100%;
    z-index: @z-index-brackets-sidebar-resizer;
    opacity: 0;
    cursor: col-resize;
}

#project-files-header {
    border-top: 1px solid #56595a;
    padding: 8px 0 9px 12px;
    font-size: 13px;
    color: @project-panel-text-2;
    overflow: hidden;
}

#open-files-container {
    .box-flex(0);
    background: #3C3F41;
    padding: 0px;
    max-height: 200px; // TODO (Issue #276): it would be nicer to have this be 50%, but that doesn't seem to work

    ul {
        list-style-type: none;
        margin: 0;
        padding-bottom: 23px;
    }

    li {
        position: relative; // so that children can be positioned absolute
        line-height: 18px;
        padding: 0 0 0 8px;
        min-height: 18px;
        vertical-align: baseline;

        &.selected a {
            color: @open-working-file-name-highlight;
        }

        &.selected .extension {
            color: @open-working-file-ext-highlight;
        }
    }

    a {
        color: #fff;

        font-size: 13px;
        text-decoration: none;

        display: block;
        height: 16px;
        line-height: 15px;
        margin-left: 18px;
        padding: 3px (@sidebar-triangle-size * 2) 3px 0;

        cursor: default;

        .directory {
            font-size: 11px;
        }
    }

    .extension, .directory {
        color: @project-panel-text-2;
    }
}

.sidebar-selection {
    background: url("images/active_back.png") no-repeat top right;
    height: 22px;
    position: absolute;
}

.sidebar-selection-triangle {
    background: url("images/active_back.png");
    width: 9px; /* quiet scrollbar width */
    height: 22px;
    position: fixed;

    z-index: @z-index-brackets-selection-triangle; /* scroller-shadow appears above this triangle */
}

.sidebar-selection-triangle.triangle-visible:before {
    content: "";

    border-top: @sidebar-triangle-size solid transparent;
    border-bottom: (@sidebar-triangle-size - 1) solid transparent;
    border-left: @sidebar-triangle-size solid #2D2E30;

    display: block;
    position: absolute;
    top: -1px;
    right: -9px;
    width: 0;
    height: 0;

    .scale-x(0.8, right, top);
}

//Initially start with the open files hidden, they will get show as files are added
#open-files-container {
    display:none;
}

#project-files-container {
    .box-flex(1);

    .jstree-brackets li > a {
        padding-right: (@sidebar-triangle-size * 2);
    }

    ul {
        padding-left: 8px;
    }

    > ul {
        padding-bottom: 24px;
    }
}

.scroller-shadow {
    background-size: 100%;
    background-repeat: no-repeat;
    height: 5px;
    position: fixed;
    z-index: @z-index-brackets-scroller-shadow;

    &.top {
        #gradient > .vertical(rgba(0,0,0,0.1), rgba(0,0,0,0));
        background-position: 0 -5px;
        background-color: transparent; /* override background-color: @endColor from #gradient.vertical */
    }

    &.bottom {
        #gradient > .vertical(rgba(0,0,0,0), rgba(0,0,0,0.1));
        background-position: 0 5px;
        background-color: transparent; /* override background-color: @endColor from #gradient.vertical */
    }
}

@jstree-sprite-size: 18px;  // this is hardcoded in jsTree's JS code

/** Classes for icons from jsTreeSprites.svg
*/
.jstree-sprite {
    background-image: url("images/jsTreeSprites.svg");
    background-repeat: no-repeat;
    background-color: transparent;
    vertical-align: middle;
    width: @jstree-sprite-size;
    height: @jstree-sprite-size;
}

/** Overriding jsTreeTheme.less
*/
.jstree-brackets .jstree-no-dots .jstree-open > ins {
    background-position: 7px -8px;
    -webkit-transform: translateZ(0) rotate(90deg);
    -webkit-filter: drop-shadow(1px 0 1px rgba(0, 0, 0, 0.36));
}

.jstree-brackets .jstree-no-dots .jstree-closed > ins {
    background-position: 7px -8px;
    -webkit-transform: translateZ(0); /* Need this to make sure that the svg isn't blurry on retina. */
    -webkit-filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.36));
}

/** Classes for icons from bracketSprites.png
*/
.bracket-sprite {
    background-image: url("images/close_btn.svg");
    background-repeat: no-repeat;
    background-color: transparent;
    vertical-align: middle;
    width: 15px;
    height: 16px;
}

.file-status-icon {
    margin: 2px 0 0 8px;
    .bracket-sprite;
    display: inline-block;
    position: absolute;
    left: 0px;
    top: 1px;

    &.dirty {
        background-position: -30px 1px;
    }

    &.can-close {
        background-position: 0 0;
    }

    &.can-close:hover {
        background-position: -15px 0;
    }

    &.can-close:active {
        background-position: -15px 0;
        opacity: @tc-icon-down;
    }
}

/* Styles for inline editors */

.inline-text-editor {
    line-height: 0px;
}

.inline-widget {
    position: relative;
    overflow: hidden;

    background-color: @tc-lighter-gray;
    min-width: 250px;
    cursor: default;

    &.animating {
        // Make the animation use the GPU--especially important for retina.
        -webkit-transform: translateZ(0);
        transform: translateZ(0);

        transition: height 250ms cubic-bezier(0, 1.02, 0.6, 1);
    }

    .CodeMirror {
        /* remove CodeMirror default height: 300px */
        height: auto;
    }

    .inline-text-editor {
        white-space: nowrap;
    }

    .inline-editor-header {
        display: inline-block;
        padding: 10px 10px 0px 40px;

        .filename {
            vertical-align: middle;
            font-family: @sansFontFamily;
            font-size: 13px;
            color: @bc-black;

            // Filename header is clickable (it's an <a> tag, so we get underscore on hover by
            // default; but the hand cursor is shut off by Bootstrap's reset stylesheet)
            cursor: pointer;

            .dirty-indicator {
                .bracket-sprite;
                display: inline-block;
                background-position: -32px 2px;
                padding-top: 5px;
            }

            .line-number {
                color: @inline-color-2;
            }
        }
    }

    .shadow {
        display: block;
        height: 4px;
        width: 100%;
        position: absolute;
        content: " ";
        left: 0;
        z-index: @z-index-brackets-inline-editor-shadow;
    }

    .shadow.top {
        top: 0px;
        background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));
    }

    .shadow.bottom {
        bottom: 0px;
        background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1));
    }

    .CodeMirror-scroll {
        background-color: transparent;

        .CodeMirror-linenumbers {
            background-color: @tc-lighter-gray;
        }
    }

    .close {
        position: absolute;
        left: 15px;
        top: 10px;
        margin-right: 30px;
    }

}

/* CSSInlineEditor rule list */
.related-container {
    @top-margin: 12px;

    float: right;
    position: relative;
    min-height: 100%;
    font-family: @sansFontFamily;
    width: 250px;
    max-width: 50%;
    overflow: hidden;
    background: @inline-background-color-2;

    // Without this, the "New Rule" button shows on top of the rule list if you resize
    // the window narrow enough. No idea why, since there's no z-index on the button, and
    // the other items in the header go behind the rule list.
    z-index: 1;

    .selection {
        width: 100%;
        background: #d0d5d5;
        position: absolute;
        border-top: 1px solid darken(@inline-background-color-3, @bc-color-step-size);
        border-bottom: 1px solid lighten(@inline-background-color-3, @bc-color-step-size);
        top: @top-margin;

        &.animate {
            transition: top 0.1s ease-out;
        }
    }

    /*
     * CSS triangle hack with anti-alias workarounds:
     * (a) Use selection-background-color instead of transparent.
     * (b) Use transform scaleX and origin to adjust width.
     */
    .selection:before {
        content: " ";
        position: absolute;
        width: 0;
        height: 0;
        border-top: @inline-triangle-size solid @inline-background-color-3;
        border-bottom: @inline-triangle-size solid @inline-background-color-3;
        border-left: @inline-triangle-size solid @inline-background-color-1;
        margin-top: -@inline-triangle-size;
        top: 50%;
        .scale-x(0.9, left, top);
    }

    .related {
        font-size: 12px;
        position: absolute;
        top: 0;
        left: 1px;
        width: 100%;

        ul {
            margin: 0;
            padding: @top-margin 0px;
            list-style: none;
        }

        li {
            color: @tc-emphasized-text;
            margin: 0;
            overflow: hidden;
            padding: 2px 0px 2px 15px;
            text-overflow: ellipsis;
            white-space: nowrap;

            .related-file {
                color: @tc-input-placeholder-text;
            }
        }

        .selected {
            color: @tc-light-weight-text;
            transition: color 0.1s ease-out .15s;
        }
    }
}

.inline-editor-message {
    color: @tc-input-placeholder-text;
    font-family: @sansFontFamily;
    font-size: 12px;
    line-height: 17px;
    height: 20px;
    padding: 10px 0 40px 50px;
}

/* This text is used to force the code editor's font to be loaded early on if it's a
   web font. This is necessary in order for the editor's horizontal measurement of text
   to work properly.

   In the future, when we allow the user to switch fonts, we'll need to make sure to
   update the font for this text item whenever the user switches. We'll also need to
   wait to initiate a re-measure in CodeMirror until the new font is loaded (if they
   choose a web font). This library allows for checking if a web font is loaded:

     http://code.google.com/apis/webfonts/docs/webfont_loader.html
*/
.dummy-text {
    position: fixed;
    top: -10000px;
    .code-font();
}

.platform-mac .dummy-text {
    .code-font-mac();
}

/* Find in Files results panel - temporary UI, to be replaced with a richer search feature later */

#search-results .title, #replace-all-results .title {
    .sane-box-model;
    padding-right: 20px;
    width: 100%;
    line-height: 25px;

    .flex-box;
    .contracting-col {
        .flex-item(0);
        min-width: 1px;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .fixed-col {
        .flex-item(0, 0);
    }
    .pagination-col {
        .flex-item(1, 0);
        min-width: 100px;
    }
    .replace-col {
        .flex-item(1, 0);
        min-width: 120px;
        padding: 0 15px;
    }
    .first-page,
    .prev-page,
    .next-page,
    .last-page {
        .jstree-sprite;
        width: 6px;
        display: inline-block;
        margin: 0 2px;
        background-position: 0px 4px;
    }
    .first-page {
        background-position: 0px -80px;
        margin-left: 10px;
    }
    .prev-page {
        background-position: 0px -24px;
    }
    .last-page {
        background-position: 0px -52px;
    }
    .disabled {
        opacity: 0.3;
    }
}

#search-results .disclosure-triangle {
    .jstree-sprite;
    display: inline-block;
    &.expanded {
        // Unfortunately, the way jsTree sprites are aligned within their 18px boxes doesn't look good in
        // other contexts, so we need some tweaks here instead of straight multiples of @jstree-sprite-size
        background-position: 7px 5px;
        -webkit-transform: translateZ(0) rotate(90deg);
    }
    &.collapsed {
        background-position: 7px 5px;
    }
}

/* Modal bar for Find/Quick Open */

.modal-bar {
    display: block;
    text-align: left;

    font-family: @sansFontFamily;
    font-size: 14px;
    color: @tc-text;
    background: @tc-gray-panel;
    overflow: visible;  // needed for .error popup
    padding: 5px 4px 4px 14px;

    -webkit-transform: translate(0, 0); // Prefix still required.
    transition: -webkit-transform 66ms cubic-bezier(0, 0.62, 0.04, 0.99);
    z-index: @z-index-brackets-modalbar;

    body.in-browser &,
    body:not(.has-appshell-menus) & {
        // Separator line between us and the HTML menu/titlebar above
        border-top: 1px solid darken(@background-color-3, @bc-color-step-size);
    }

    &.popout {
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
    }

    &.offscreen {
        -webkit-transform: translate(0, -44px);
        transform: translate(0, -44px);
        transition: -webkit-transform 266ms cubic-bezier(0, 0.56, 0, 1);
        transition: transform 266ms cubic-bezier(0, 0.56, 0, 1);

        body:not(.has-appshell-menus) & {
            top: 37px;
        }
    }

    input {
        font-family: @sansFontFamily;
        outline: none;
        width: 20em;
        margin: 5px 5px 0;
        position: relative;
        top: -3px;
        &.no-results {
            border: 1px solid #bc0023;
            box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.12), 0 0 0 2px rgba(255, 0, 120, 0.5);
        }
    }

    #find-what, #replace-with {
        width: 295px;
    }

    .search-input-container {
        position: relative;
        display: inline;

        .error {  // "popup" that hangs below search field
            position: absolute;
            left: 6px;
            top: 24px;
            min-width: 291px + 2px;  // to align with search field above it

            background-color: #f74687;
            color: @bc-white;
            font-size: 12px;
            padding: 3px 8px;
            border-radius: 0 0 3px 3px;
            box-shadow: @tc-small-shadow-bottom;
        }

        #find-what {
            padding-right: 62px;  // room for #find-counter overlay
            width: 295px - (62px - 6px);  // maintain width, accounting for differing padding
        }
        #find-counter {
            position: absolute;
            color: @tc-light-weight-quiet-text;
            top: 1px;
            right: 2px;
            font-size: 12px;
        }
    }

    #find-group, #replace-group {
        display: inline-block;
        white-space: nowrap;
    }

    .message, .no-results-message {
        display: inline-block;
    }

    #find-case-sensitive, #find-regexp {
        padding: 1px 5px;
    }
    .button-icon {  // icons must be nested inside button so we can apply padding w/o tiling icon
        .sprite-icon(0, 0, 24px, 24px, "images/find-replace-sprites.svg");
        background-repeat: no-repeat;
    }
    #find-regexp.active .button-icon {
        .sprite-swap(0, 24px);
    }
    #find-case-sensitive .button-icon {
        .sprite-swap(0, 48px);
    }
    #find-case-sensitive.active .button-icon {
        .sprite-swap(0, 72px);
    }
    #find-regexp.active, #find-case-sensitive.active {
        background-color: @tc-highlight;
    }

    .navigator {  // next/prev buttons
        display: inline-block;
    }
    button {
        margin: 2px 1px 3px;
    }
    #find-prev {
        border-radius: 3px 0 0 3px;
        margin-left: 5px;
    }

    // Make button pairs snug
    #find-prev, #replace-yes, #find-case-sensitive {
        border-right: none;
        margin-right: 0;
    }
    #find-next, #replace-all, #find-regexp {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
        margin-left: 0;
    }

    // Make find field snug with options buttons
    //    & replace snug with replace commands
    #find-what, #replace-with {
        margin-right: 0px;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
    #find-case-sensitive, #replace-yes {
        border-left: none;
        margin-left: 0px;
        border-radius: 0;
    }
}

// Search result highlighting - CodeMirror highlighting is pretty constrained. Highlights are
// blended on TOP of the selection color. The "current" search result is indicated by selection,
// so we want the selection visible underneath the highlight. To do this, the highlight must be
// transparent; it has to look good atop both the selection color AND the regular text bg color.
.CodeMirror-searching {
    // Highlight color, overlaid on top of the .find-highlighting color
    background-color: @cm-match-highlight;
    border-radius: @tc-inline-border-radius;
    box-shadow: @tc-small-shadow-bottom;
    color: @match-text !important;
}
.CodeMirror.find-highlighting div.CodeMirror-selected,
.CodeMirror .CodeMirror.find-highlighting div.CodeMirror-selected {
    // Selection color while highlighting shown - ALWAYS has the .CodeMirror-searching color
    // blended atop it.
    // Note: the 2nd selector reflecting CM nesting is needed to override the similar rules in
    // brackets_codemirror_override.less (see the note about #324).
    background: @cm-current-match-highlight;
    border-radius: @tc-inline-border-radius;
}
#find-counter {
    font-weight: @font-weight-semibold;
    padding: 0 5px;
}

.tickmark-track {
    position: absolute;
    bottom: 0;
    top: 0;
    right: 0;
    width: 16px;
    z-index: @z-index-cm-max;
    pointer-events: none;

    .tickmark {
        position: absolute;
        width: 16px;
        body.platform-mac & { width: 15px; }

        height: 1px;
        background-color: #eddd23;
        border-top: 1px solid #e0d123;
        border-bottom: 1px solid #d4c620;
        opacity: 0.85;  // allow thumb to show through
    }
}

/* Quick Open search bar & dropdown */

.smart_autocomplete_container {

    // the borders show up even if the container is empty, must set height to zero using JS.
    border: 1px solid @tc-gray-panel-border;

    background-color: @tc-gray-panel;
    border-radius: 0 0 4px 4px;
    box-shadow: @tc-normal-shadow-bottom;

    // so that border won't show when height is 0.
    box-sizing: border-box;

    // using this to fix the spacing that breaks item seperators and had to use !important to override inline css
    width: 434px !important;

    /* smart auto complete doesn't correctly position the container
     * so these specific padding and margin values are necessary*/
    padding: 0px;
    margin: 9px 0 0;

    .quick-open-path {
        color: #666;
        font-size: 11px;
        letter-spacing: 0.04em;
        line-height: 11px;
    }

    li {
        color: #222;
        line-height: 15px;
        list-style: none;
        cursor: default;
        padding: 6px 10px;

        &:nth-child(odd) {
            background-color: @tc-lighter-gray;
        }

        &:hover {
            background-color: @tc-hover-highlight;
        }

        &.smart_autocomplete_highlight {
            background-color: @tc-highlight;
        }
    }
}

.quicksearch-pathmatch,
.quicksearch-namematch {
    font-weight: @font-weight-semibold;
}

.quicksearch-pathmatch {
    color: #555;
}

/* Spinner */

.spinner {
    display: inline-block;
    vertical-align: middle;
    margin-top: -2px;
    width: 12px;
    height: 12px;
    background: url("images/spinner_small_sprites12.png") no-repeat;
    visibility: hidden;

    &.spin {
        -webkit-animation: spinner-sprites-12 1.2s steps(10) infinite;
        visibility: visible;
    }

    &.large {
        width: 36px;
        height: 36px;
        margin-top: 0;
        background: url("images/spinner_large_sprites36.png") no-repeat;

        &.spin {
            -webkit-animation: spinner-sprites-36 1.2s steps(10) infinite;
        }
    }
}
// Retina versions
@media only screen and (-webkit-min-device-pixel-ratio: 2),
       only screen and (min-device-pixel-ratio: 2) {
    .spinner {
        background-image: url("images/spinner_small_sprites12@2x.png");
        background-size: 120px 12px;

        &.large {
            background: url("images/spinner_large_sprites36@2x.png") no-repeat;
            background-size: 360px 36px;
        }
    }
}

/* Problems panel & CodeInspection status bar indicator */

#status-indicators #status-inspection {
    border: none;
    cursor: default;
    width: 13px;
}

.inspection-disabled {
    background: url(images/topcoat-inactive-15.svg) 9px 5px no-repeat;
}

.inspection-errors {
    background: url(images/topcoat-warning-15.svg) 9px 5px no-repeat;
}

.inspection-errors:hover {
    background-color: rgba(0, 0, 0, 0.03);
}

.inspection-errors:active {
    background-color: rgba(0, 0, 0, 0.05);
}

.inspection-valid {
    background: url(images/topcoat-okay-15.svg) 9px 5px no-repeat;
}

#problems-panel {
    .user-select(text);  // allow selecting error messages for easy web searching
    .line {
        text-align: right;  // make line number line up with editor line numbers
    }
}

/* Line up label text and input text */
label input {
    position: relative;
    top: -2px;
}

/* Live Preview */
.live-preview-sync-error .CodeMirror-linenumber {
    background-color: @live-preview-sync-error-background;
    color: @live-preview-sync-error-color;
}


Create mixins.less

Create mixins.less

// Bootstrap Button Variant

.button-variant(@color; @background; @border) {
	color: @color;
	background-color: @background;
	border-color: @border;

	&:hover,
	&:focus,
	&:active,
	&.active,
	.open .dropdown-toggle& {
		color: @color;
		background-color: darken(@background, 10%);
        border-color: darken(@border, 12%);
	}
	&:active,
	&.active,
	.open .dropdown-toggle& {
		background-image: none;
	}
	&.disabled,
	&[disabled],
	fieldset[disabled] & {
		&,
		&:hover,
		&:focus,
		&:active,
		&.active {
			background-color: @background;
			border-color: @border;
		}
	}

	.badge {
		color: @background;
		background-color: @color;
	}
}

// Background Features

.background-cover() {
    -webkit-background-size: cover;
    -moz-background-size: cover;
    background-size: cover;
    -o-background-size: cover;
}

// Font Selections

.serif-font() {
	font-family: "Droid Serif", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.script-font() {
	font-family: "Kaushan Script", "Helvetica Neue", Helvetica, Arial, cursive;
}

.body-font() {
	font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.heading-font() {
	font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
	text-transform: uppercase;
}

error: pathspec 'less/mixins.less' did not match any file(s) known to git


add pygmentize styles

add pygmentize styles

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/bmesuere/uni-test.git/'


added the linkedin subclass

added the linkedin subclass

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/dedalozzo/pit-bootstrap.git/'


admin less

admin less

fatal: unable to access 'https://github.com/Shivabeach/herbs.git/': The requested URL returned error: 403


Create vendor-prefixes.less

Create vendor-prefixes.less

// Vendor Prefixes
//
// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
// Autoprefixer in our Gruntfile. They will be removed in v4.

// - Animations
// - Backface visibility
// - Box shadow
// - Box sizing
// - Content columns
// - Hyphens
// - Placeholder text
// - Transformations
// - Transitions
// - User Select

// Animations
.animation(@animation) {
  -webkit-animation: @animation;
       -o-animation: @animation;
          animation: @animation;
}
.animation-name(@name) {
  -webkit-animation-name: @name;
          animation-name: @name;
}
.animation-duration(@duration) {
  -webkit-animation-duration: @duration;
          animation-duration: @duration;
}
.animation-timing-function(@timing-function) {
  -webkit-animation-timing-function: @timing-function;
          animation-timing-function: @timing-function;
}
.animation-delay(@delay) {
  -webkit-animation-delay: @delay;
          animation-delay: @delay;
}
.animation-iteration-count(@iteration-count) {
  -webkit-animation-iteration-count: @iteration-count;
          animation-iteration-count: @iteration-count;
}
.animation-direction(@direction) {
  -webkit-animation-direction: @direction;
          animation-direction: @direction;
}
.animation-fill-mode(@fill-mode) {
  -webkit-animation-fill-mode: @fill-mode;
          animation-fill-mode: @fill-mode;
}

// Backface visibility
// Prevent browsers from flickering when using CSS 3D transforms.
// Default value is `visible`, but can be changed to `hidden`

.backface-visibility(@visibility){
  -webkit-backface-visibility: @visibility;
     -moz-backface-visibility: @visibility;
          backface-visibility: @visibility;
}

// Drop shadows
//
// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
// supported browsers that have box shadow capabilities now support it.

.box-shadow(@shadow) {
  -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
          box-shadow: @shadow;
}

// Box sizing
.box-sizing(@boxmodel) {
  -webkit-box-sizing: @boxmodel;
     -moz-box-sizing: @boxmodel;
          box-sizing: @boxmodel;
}

// CSS3 Content Columns
.content-columns(@column-count; @column-gap: @grid-gutter-width) {
  -webkit-column-count: @column-count;
     -moz-column-count: @column-count;
          column-count: @column-count;
  -webkit-column-gap: @column-gap;
     -moz-column-gap: @column-gap;
          column-gap: @column-gap;
}

// Optional hyphenation
.hyphens(@mode: auto) {
  word-wrap: break-word;
  -webkit-hyphens: @mode;
     -moz-hyphens: @mode;
      -ms-hyphens: @mode; // IE10+
       -o-hyphens: @mode;
          hyphens: @mode;
}

// Placeholder text
.placeholder(@color: @input-color-placeholder) {
  &::-moz-placeholder           { color: @color;   // Firefox
                                  opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
  &:-ms-input-placeholder       { color: @color; } // Internet Explorer 10+
  &::-webkit-input-placeholder  { color: @color; } // Safari and Chrome
}

// Transformations
.scale(@ratio) {
  -webkit-transform: scale(@ratio);
      -ms-transform: scale(@ratio); // IE9 only
       -o-transform: scale(@ratio);
          transform: scale(@ratio);
}
.scale(@ratioX; @ratioY) {
  -webkit-transform: scale(@ratioX, @ratioY);
      -ms-transform: scale(@ratioX, @ratioY); // IE9 only
       -o-transform: scale(@ratioX, @ratioY);
          transform: scale(@ratioX, @ratioY);
}
.scaleX(@ratio) {
  -webkit-transform: scaleX(@ratio);
      -ms-transform: scaleX(@ratio); // IE9 only
       -o-transform: scaleX(@ratio);
          transform: scaleX(@ratio);
}
.scaleY(@ratio) {
  -webkit-transform: scaleY(@ratio);
      -ms-transform: scaleY(@ratio); // IE9 only
       -o-transform: scaleY(@ratio);
          transform: scaleY(@ratio);
}
.skew(@x; @y) {
  -webkit-transform: skewX(@x) skewY(@y);
      -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
       -o-transform: skewX(@x) skewY(@y);
          transform: skewX(@x) skewY(@y);
}
.translate(@x; @y) {
  -webkit-transform: translate(@x, @y);
      -ms-transform: translate(@x, @y); // IE9 only
       -o-transform: translate(@x, @y);
          transform: translate(@x, @y);
}
.translate3d(@x; @y; @z) {
  -webkit-transform: translate3d(@x, @y, @z);
          transform: translate3d(@x, @y, @z);
}
.rotate(@degrees) {
  -webkit-transform: rotate(@degrees);
      -ms-transform: rotate(@degrees); // IE9 only
       -o-transform: rotate(@degrees);
          transform: rotate(@degrees);
}
.rotateX(@degrees) {
  -webkit-transform: rotateX(@degrees);
      -ms-transform: rotateX(@degrees); // IE9 only
       -o-transform: rotateX(@degrees);
          transform: rotateX(@degrees);
}
.rotateY(@degrees) {
  -webkit-transform: rotateY(@degrees);
      -ms-transform: rotateY(@degrees); // IE9 only
       -o-transform: rotateY(@degrees);
          transform: rotateY(@degrees);
}
.perspective(@perspective) {
  -webkit-perspective: @perspective;
     -moz-perspective: @perspective;
          perspective: @perspective;
}
.perspective-origin(@perspective) {
  -webkit-perspective-origin: @perspective;
     -moz-perspective-origin: @perspective;
          perspective-origin: @perspective;
}
.transform-origin(@origin) {
  -webkit-transform-origin: @origin;
     -moz-transform-origin: @origin;
      -ms-transform-origin: @origin; // IE9 only
          transform-origin: @origin;
}

// Transitions

.transition(@transition) {
  -webkit-transition: @transition;
       -o-transition: @transition;
          transition: @transition;
}
.transition-property(@transition-property) {
  -webkit-transition-property: @transition-property;
          transition-property: @transition-property;
}
.transition-delay(@transition-delay) {
  -webkit-transition-delay: @transition-delay;
          transition-delay: @transition-delay;
}
.transition-duration(@transition-duration) {
  -webkit-transition-duration: @transition-duration;
          transition-duration: @transition-duration;
}
.transition-timing-function(@timing-function) {
  -webkit-transition-timing-function: @timing-function;
          transition-timing-function: @timing-function;
}
.transition-transform(@transition) {
  -webkit-transition: -webkit-transform @transition;
     -moz-transition: -moz-transform @transition;
       -o-transition: -o-transform @transition;
          transition: transform @transition;
}

// User select
// For selecting text on the page

.user-select(@select) {
  -webkit-user-select: @select;
     -moz-user-select: @select;
      -ms-user-select: @select; // IE10+
          user-select: @select;
}

error: pathspec 'static/app/components/bootstrap/css/less/mixins/vendor-prefixes.less' did not match any file(s) known to git


Updates table column config

Updates table column config

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/sonatra/sonatra-jquery-table-select.git/'


Create alert.less

Create alert.less

// Alerts

.alert-variant(@background; @border; @text-color) {
  background-color: @background;
  border-color: @border;
  color: @text-color;

  hr {
    border-top-color: darken(@border, 5%);
  }
  .alert-link {
    color: darken(@text-color, 10%);
  }
}

error: pathspec 'static/app/components/bootstrap/css/less/mixins/alerts.less' did not match any file(s) known to git


Updated font weights

Updated font weights

fatal: unable to access 'https://github.com/maroun-baydoun/maroun-baydoun.com.git/': The requested URL returned error: 403


Fixed the landscape display

Fixed the landscape display

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/maroun-baydoun/maroun-baydoun.com.git/'


created helpers stylesheet

created helpers stylesheet

@import 'variables';

// helper styles

.list {

  &.unstyled {
	  list-style-type: none;
  }
}

error: pathspec 'client/stylesheets/helpers.less' did not match any file(s) known to git


move keystone variables to less file 2

move keystone variables to less file 2

/*!
 * Keystone JS
 *
 * Copyright 2013 Jed Watson
 * Licensed under the MIT License
 * http://opensource.org/licenses/MIT
 */

// Elemental
// ------------------------------

@import "../../node_modules/elemental/less/elemental.less";

// KEYSTONE VARIABLES
@import "variables.less";

// KEYSTONE SETUP
@import "keystone/base.less";
@import "keystone/forms.less";
@import "keystone/navigation.less";
@import "keystone/tables.less";
@import "keystone/utils.less";

@import "keystone/list.less";
@import "keystone/item.less";

// COMPONENTS
@import "keystone/wysiwyg.less";
@import "keystone/select2.less";

// THEME SETUP
// @import "theme/variables.less";
@import "theme/theme.less";

// REACT FIELDS
@import "react/react.less";

error: pathspec 'public/styles/keystone.less' did not match any file(s) known to git


Font: Change default font

Font: Change default font

remove "NanumBarunGothic"
add default font : "맑은 고딕", "Apple SD Gothic Neo"

// Variables.less
// -----------------------------------------------------

// GLOBAL VALUES
// --------------------------------------------------

// Path
@base-image-path:   "../images";
@base-webfont-path: "../images/webfont";

// Typography
@base-font-family:"Helvetica Neue", "Helvetica", "Arial", "나눔고딕", "NanumGothic", "NanumGothicOTF", "Apple SD Gothic Neo", "맑은 고딕", sans-serif;
@fixed-font-family: "Monaco", "Menlo", "Ubuntu Mono", "Consolas", "source-code-pro", monospace;

@base-font-size  : 13px;
@base-line-height: 18px;
@base-text-color : @gray-33;
@base-width      : 95%; /*960px;*/

// Color
@white  : #FFF;
@black  : #000;
@orange : #F36C22;
@purple : #8d008d;
@blue   : #5DBBE0;
@blue2  : #51AACC;
@darkgray: #878787;
@green: #007fca;

@gray-d4: #D4D4D4;
@gray-ec: #ECECEC;
@gray-f7: #F7F7F7;
@gray-ea: #EAEAEA;
@gray-87: #878787;
@gray-11: #111;
@gray-33: #333;
@gray-99: #999;
@gray-66: #666;
@gray-cc: #CCC;
@gray-52: #5D5D5D;
@gray-f2: #F2F2F2;
@gray-d9: #D9D9D9;

// new color scheme

@yobi-cyan : #6C8DAC;
@yobi-cyan-dark :#4A7EAF;
@yobi-cyan-light : #f2f4f5;
@yobi-green : #24A05F;
@yobi-green-dark : #179157;
@yobi-blue : #3A7EE5;
@yobi-blue-dark :#206EE5;
@yobi-purple : #9B59B6;
@yobi-purple-dark :#8E44AD;
@yobi-yello : #F1C40F;
@yobi-yello-dark : #F39C12;
@yobi-orange : #FF7332;
@yobi-orange-dark : #E95E01;
@yobi-red : #C93426;
@yobi-red-dark : #B13427;
@yobi-white :#FFF;
@yobi-white-dark :#F2F2F2;
@yobi-gray :#95A5A6;
@yobi-gray-dark :#7F8C8D;
@yobi-disabled : #d5dbdb;
@yobi-inverse : #383838;
@yobi-inverse-dark : #222222;
@yobi-inverse-light : #3e3e3e;

@yobi-primary : @yobi-orange;
@yobi-link : #51aacc;
@yobi-background : @yobi-white;
@yobi-background-gnv : #383838;

@yobi-btn-default : @yobi-white;
@yobi-btn-default-hover : @yobi-white;
@yobi-btn-primary : @yobi-primary;
@yobi-btn-primary-hover : @yobi-orange-dark;
@yobi-btn-success : @yobi-green;
@yobi-btn-success-hover : @yobi-green-dark;
@yobi-btn-info : @yobi-blue;
@yobi-btn-info-hover : @yobi-blue-dark;
@yobi-btn-inverse : @yobi-inverse;
@yobi-btn-inverse-hover : @yobi-inverse-dark;
@yobi-btn-danger : @yobi-red;
@yobi-btn-danger-hover : @yobi-red-dark;
@yobi-btn-warning : @yobi-yello;
@yobi-btn-warning-hover : #f5d313;
@yobi-btn-disabled : @yobi-white-dark;
@yobi-btn-disabled-hover : #cacfd2;

// State color
@state-open: #b6da54;
@state-closed: #fd6956;
@state-rejected: #fd8658;
@state-warning: #fcc666;
@state-changed: #65c9df;
@state-merged: #65c9df;

@primary         : @orange;
@secondary       : @blue2;
@link-color      : @primary;
@link-hover-color: @primary;

@search-bar-bg-color: #fff;
@search-bar-border-color:#aaabac;
@search-input-color:#898989;

@gnb-logo-bg-color:@orange;
@gnb-bg-color     :#f3f4f6;
@gnb-border-bottom:1px solid #c7c9ca;

@gnb-link-color          : #111;
@gnb-link-hover-color    : @orange;
@gnb-link-active-color   : @orange;

@gnb-action-color: @white;
@gnb-action-signout-color: #868D96;
@gnb-action-separate-border-color: @gray-cc;

@submenu-selected-color: #337581;

@activity-separate-border-color: #E7E7E7;

// Variables.less
// -----------------------------------------------------

// GLOBAL VALUES
// --------------------------------------------------

// Path
@base-image-path:   "../images";
@base-webfont-path: "../images/webfont";

// Typography
@base-font-family:"Helvetica Neue", "Helvetica", "Arial", "나눔바른고딕", "NanumBarunGothic", "NanumBarunGothicOTF", "나눔고딕","나눔고딕", "NanumGothic", "NanumGothicOTF",  sans-serif;
@fixed-font-family: "Monaco", "Menlo", "Ubuntu Mono", "Consolas", "source-code-pro", monospace;

@base-font-size  : 13px;
@base-line-height: 18px;
@base-text-color : @gray-33;
@base-width      : 95%; /*960px;*/

// Color
@white  : #FFF;
@black  : #000;
@orange : #F36C22;
@purple : #8d008d;
@blue   : #5DBBE0;
@blue2  : #51AACC;
@darkgray: #878787;
@green: #007fca;

@gray-d4: #D4D4D4;
@gray-ec: #ECECEC;
@gray-f7: #F7F7F7;
@gray-ea: #EAEAEA;
@gray-87: #878787;
@gray-11: #111;
@gray-33: #333;
@gray-99: #999;
@gray-66: #666;
@gray-cc: #CCC;
@gray-52: #5D5D5D;
@gray-f2: #F2F2F2;
@gray-d9: #D9D9D9;

// new color scheme

@yobi-cyan : #6C8DAC;
@yobi-cyan-dark :#4A7EAF;
@yobi-cyan-light : #f2f4f5;
@yobi-green : #24A05F;
@yobi-green-dark : #179157;
@yobi-blue : #3A7EE5;
@yobi-blue-dark :#206EE5;
@yobi-purple : #9B59B6;
@yobi-purple-dark :#8E44AD;
@yobi-yello : #F1C40F;
@yobi-yello-dark : #F39C12;
@yobi-orange : #FF7332;
@yobi-orange-dark : #E95E01;
@yobi-red : #C93426;
@yobi-red-dark : #B13427;
@yobi-white :#FFF;
@yobi-white-dark :#F2F2F2;
@yobi-gray :#95A5A6;
@yobi-gray-dark :#7F8C8D;
@yobi-disabled : #d5dbdb;
@yobi-inverse : #383838;
@yobi-inverse-dark : #222222;
@yobi-inverse-light : #3e3e3e;

@yobi-primary : @yobi-orange;
@yobi-link : #51aacc;
@yobi-background : @yobi-white;
@yobi-background-gnv : #383838;

@yobi-btn-default : @yobi-white;
@yobi-btn-default-hover : @yobi-white;
@yobi-btn-primary : @yobi-primary;
@yobi-btn-primary-hover : @yobi-orange-dark;
@yobi-btn-success : @yobi-green;
@yobi-btn-success-hover : @yobi-green-dark;
@yobi-btn-info : @yobi-blue;
@yobi-btn-info-hover : @yobi-blue-dark;
@yobi-btn-inverse : @yobi-inverse;
@yobi-btn-inverse-hover : @yobi-inverse-dark;
@yobi-btn-danger : @yobi-red;
@yobi-btn-danger-hover : @yobi-red-dark;
@yobi-btn-warning : @yobi-yello;
@yobi-btn-warning-hover : #f5d313;
@yobi-btn-disabled : @yobi-white-dark;
@yobi-btn-disabled-hover : #cacfd2;

// State color
@state-open: #b6da54;
@state-closed: #fd6956;
@state-rejected: #fd8658;
@state-warning: #fcc666;
@state-changed: #65c9df;
@state-merged: #65c9df;

@primary         : @orange;
@secondary       : @blue2;
@link-color      : @primary;
@link-hover-color: @primary;

@search-bar-bg-color: #fff;
@search-bar-border-color:#aaabac;
@search-input-color:#898989;

@gnb-logo-bg-color:@orange;
@gnb-bg-color     :#f3f4f6;
@gnb-border-bottom:1px solid #c7c9ca;

@gnb-link-color          : #111;
@gnb-link-hover-color    : @orange;
@gnb-link-active-color   : @orange;

@gnb-action-color: @white;
@gnb-action-signout-color: #868D96;
@gnb-action-separate-border-color: @gray-cc;

@submenu-selected-color: #337581;

@activity-separate-border-color: #E7E7E7;


About page styling

About page styling

fatal: unable to access 'https://github.com/timrlaw/bandsoc.git/': The requested URL returned error: 403


update in 8.28

update in 8.28

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/earthaYan/lagou.git/'


form cleanup

form cleanup

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/puttarajubr/commcare-hq.git/'


Applied patch for RAVE-863 from Eduardo Romeiro

git-svn-id: 2c5eef89e506a7ff64d405e714ba3c778b83051b@1437072 13f79535-47bb-0310-9956-ffa450edef68

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/kidaa/rave.git/'


smug --fonts ++

smug --fonts ++

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/mrAndersen/Stoleshnikoff.git/'


added .no-text style to the <i> tag, in case a tag doesn't have text but just an image, like facebook, twitter and google tags

fatal: unable to access 'https://github.com/dedalozzo/pit-bootstrap.git/': The requested URL returned error: 403


Create buttons.less

Create buttons.less

// Button variants
//
// Easily pump out default styles, as well as :hover, :focus, :active,
// and disabled options for all buttons

.button-variant(@color; @background; @border) {
  color: @color;
  background-color: @background;
  border-color: @border;

  &:hover,
  &:focus,
  &:active,
  &.active,
  .open > .dropdown-toggle& {
    color: @color;
    background-color: darken(@background, 10%);
        border-color: darken(@border, 12%);
  }
  &:active,
  &.active,
  .open > .dropdown-toggle& {
    background-image: none;
  }
  &.disabled,
  &[disabled],
  fieldset[disabled] & {
    &,
    &:hover,
    &:focus,
    &:active,
    &.active {
      background-color: @background;
          border-color: @border;
    }
  }

  .badge {
    color: @background;
    background-color: @color;
  }
}

// Button sizes
.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
  padding: @padding-vertical @padding-horizontal;
  font-size: @font-size;
  line-height: @line-height;
  border-radius: @border-radius;
}

error: pathspec 'static/app/components/bootstrap/css/less/mixins/buttons.less' did not match any file(s) known to git


Add padding to transac-tx-maches .match-caption

fatal: unable to access 'https://github.com/xaun/transac.git/': The requested URL returned error: 403


easy to go mixin on app for colors and global variables

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/zazujs/zazu-app-example.git/'


added hover class to the delete icon button in the Insulet upload component.

/**
* Copyright (c) 2014, Tidepool Project
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the associated License, which is identical to the BSD 2-Clause
* License as published by the Open Source Initiative at opensource.org.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the License for more details.
*
* You should have received a copy of the License along with this program; if
* not, you can obtain one from Tidepool Project at tidepool.org.
*/

.Upload {
  flex-flow: row wrap;
}

.Upload-left,
.Upload-right {
  // Same width, and stretch
  flex: 1 0px;
}

.Upload-left {
  padding-right: 5px;
}
.Upload-right {
  padding-left: 5px;
}

.Upload-name {
  font-weight: bold;
}

.Upload-detail {
  color: @gray-text;
}

.Upload-statusSection {
  flex-flow: row;
  justify-content: space-between;
  margin-bottom: 5px;
}

.Upload-status {
  flex-flow: row;
  flex-shrink: 1;
  // Reset button height
  min-height: 24px;
  // elide long text
  p {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    width: 100%;
    margin: 0px;
  }
}

.Upload-status--filename {
  width: 100%;
}

.Upload-status--filename i:hover {
  color: @purple-light;
}

.Upload-status--error {
  padding-right: 5px;
  color: @red;
}

.Upload-status--error--debug {
  font-size: 10px;
}

.Upload-reset > a  {
  &:extend(.btn all);

  line-height: 20px;
  padding-left: 10px;
  padding-right: 10px;
}

.Upload-reset--success > a {
  &:extend(.btn-secondary all);
}

.Upload-reset--error > a  {
  &:extend(.btn-primary all);
}

.Upload-progress {
  justify-content: center;
  margin-bottom: 10px;
}

.Upload-form {
  .box-flex();
}

.Upload-input {
  margin-bottom: 15px;
}

.Upload-button {
  flex-flow: row wrap;
  justify-content: flex-end;
}

input[type=file] {
  &:focus {
    // Disable default WebKit focus style
    outline: 0;
    border-color: @form-control-border-color;
  }
}

.Upload-inputWrapper {
  width: 116px;
  position: relative;
  left: 111px;
  overflow: hidden;
  margin-bottom: 15px;
}

// hide Chrome-default filepicker button
.Upload-fileinput::-webkit-file-upload-button {
  visibility: hidden;
  width: 0;
  height: 0;
  position: absolute;
}
// replace with a button consistent with rest of app
.Upload-fileinput::before {
  visibility: visible;
  content: 'Choose file';
  .btn;
  .btn-secondary;
}

.Upload-fileinput:hover::before,
.Upload-fileinput:focus::before,
.Upload-fileinput:active::before {
  border-color: @purple-light;
}

.Upload-helpText {
  padding-bottom: 10px;
}

/**
* Copyright (c) 2014, Tidepool Project
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the associated License, which is identical to the BSD 2-Clause
* License as published by the Open Source Initiative at opensource.org.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the License for more details.
*
* You should have received a copy of the License along with this program; if
* not, you can obtain one from Tidepool Project at tidepool.org.
*/

.Upload {
  flex-flow: row wrap;
}

.Upload-left,
.Upload-right {
  // Same width, and stretch
  flex: 1 0px;
}

.Upload-left {
  padding-right: 5px;
}
.Upload-right {
  padding-left: 5px;
}

.Upload-name {
  font-weight: bold;
}

.Upload-detail {
  color: @gray-text;
}

.Upload-statusSection {
  flex-flow: row;
  justify-content: space-between;
  margin-bottom: 5px;
}

.Upload-status {
  flex-flow: row;
  flex-shrink: 1;
  // Reset button height
  min-height: 24px;
  // elide long text
  p {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    width: 100%;
    margin: 0px;
  }
}

.Upload-status--filename {
  width: 100%;
}

.Upload-status--error {
  padding-right: 5px;
  color: @red;
}

.Upload-status--error--debug {
  font-size: 10px;
}

.Upload-reset > a  {
  &:extend(.btn all);

  line-height: 20px;
  padding-left: 10px;
  padding-right: 10px;
}

.Upload-reset--success > a {
  &:extend(.btn-secondary all);
}

.Upload-reset--error > a  {
  &:extend(.btn-primary all);
}

.Upload-progress {
  justify-content: center;
  margin-bottom: 10px;
}

.Upload-form {
  .box-flex();
}

.Upload-input {
  margin-bottom: 15px;
}

.Upload-button {
  flex-flow: row wrap;
  justify-content: flex-end;
}

input[type=file] {
  &:focus {
    // Disable default WebKit focus style
    outline: 0;
    border-color: @form-control-border-color;
  }
}

.Upload-inputWrapper {
  width: 116px;
  position: relative;
  left: 111px;
  overflow: hidden;
  margin-bottom: 15px;
}

// hide Chrome-default filepicker button
.Upload-fileinput::-webkit-file-upload-button {
  visibility: hidden;
  width: 0;
  height: 0;
  position: absolute;
}
// replace with a button consistent with rest of app
.Upload-fileinput::before {
  visibility: visible;
  content: 'Choose file';
  .btn;
  .btn-secondary;
}

.Upload-fileinput:hover::before,
.Upload-fileinput:focus::before,
.Upload-fileinput:active::before {
  border-color: @purple-light;
}

.Upload-helpText {
  padding-bottom: 10px;
}


update Carousel style

update Carousel style

.clear-side-padding
{
    padding-left: 0;
    padding-right: 0;
}

.DailyPage
{
    .clear-side-padding;

    .CarouselContainer
    {
        .clear-side-padding;
        background-color: #EEE;

        .Carousel
        {
            margin-top: 10px;
            margin-bottom: 10px;
        }
    }

    .FlexContainer
    {
        .clear-side-padding;
    }
}

.clear-side-padding
{
    padding-left: 0;
    padding-right: 0;
}

.DailyPage
{
    .clear-side-padding;

    .CarouselContainer
    {
        /* 隐藏幻灯片 */
        display: none;
        .clear-side-padding;
        background-color: #EEE;
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .FlexContainer
    {
        .clear-side-padding;
    }
}


commit

commit

fatal: unable to access 'https://github.com/Tosuke/Misskey-Web.git/': The requested URL returned error: 403


Reverted forms.less to original state.

Reverted forms.less to original state.

fatal: unable to access 'https://github.com/sfmskywalker/Orchard.git/': The requested URL returned error: 403


Gace the carousel modal asset picker a fixed height

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Arragro/ArragroCMS.Examples.git/'


Changes

Changes

.custom-footer {
  background-color: #f5f5f5;
  bottom: 0;
  height: 60px;
  width: 100%;
  text-align:center;
  padding:20px 0px;
}
.emotions_block {
  height: 108px;
  overflow-x: auto;
}

.message_form .form-group textarea.text_message {
  overflow-y: hidden;
  height: 38px;
  resize: none;
}

.messages {
  background-color: #ffffff; border: 1px solid darkgray; height: 500px; overflow: auto
}

.messages .message {
  padding:5px;
}
.messages .message:hover {
  background: #eeeeee;
}

error: pathspec 'home.import.less' did not match any file(s) known to git


added theme overrides for one dark/light

fatal: unable to access 'https://github.com/ccoolawn/seti-icons.git/': The requested URL returned error: 403


Minor style update.

Minor style update.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/BobHutchings/beyond_youtube.git/'


OR-1588

OR-1588

override .btn:focus from bootstrap which put a black color
on clicked button until the user click somewhere else

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/heroandtn3/openpaas-esn.git/'


many changes

many changes

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/dedalozzo/pit-bootstrap.git/'