Tweak

Tweak

// 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.

/* Brackets patterns (and overrides and re-definitions of Bootstrap patterns)
 *
 * This file should contain all _reusable_ UI elements / LESS definitions
 * That is, things that will either a.) be used for more than one element or
 * b.) exist in multiple versions of brackets (e.g. App, In-Browser, etc.)
 *
 * Note that if you want a UI element to be themeable, you should put the
 * themeable part in "brackets_theme_default" as variables/mixins.
 *
 */

.panel {
    .vbox;
    .box-flex(1);

    padding: 0;
    margin: 0;

    background: @project-panel-base-color url("images/propertiespanel_back.png") repeat-x 0 0;
    color: #bbb;
    letter-spacing: .01em;
    text-shadow: 0px 1px 2px rgba(0,0,0,.5);
}

/* Toolbar-related styles */

/* Simple toolbar layout (project panel, find in files, etc.)
   We don't set this directly on .toolbar because it'd be a pain to override all the pieces
   if other code (e.g. #main-toolbar) wants to do a different layout */
.simple-toolbar-layout.toolbar {
    .hbox;
    .box-align(center);
    overflow: hidden;

    .title-wrapper {
        /* This is necessary because text-overflow: ellipsis doesn't work when it's set
           directly on a flexing box in Chrome currently. */
        .box-flex(1);
    }
    .buttons {
        .hbox;
        margin-left: 4px;
    }
}

/* Horizontal titlebar/menubar (in-browser only)

   CSS hack based on this code: http://jsfiddle.net/cD657/3/ (via StackOverflow)
   This center-aligns the title across the full width of the toolbar (ignoring the width of the nav floated
   left and buttons floated right), yet still have the browser automatically wrap the floats onto a 2nd row
   if they collide with the title. But the centered content must be a block element with fixed width. Since
   the editor title (filename) varies in width, we rely on JS code to update the width whenever the string
   changes.

   Another wrinkle: wrapping to/from the two-line toolbar layout requires notifying the CodeMirror editor that
   its height changed. Currently, we assume this can ONLY happen in two cases:
    - the window resizes (handled by general listener in EditorManager)
    - title content changes (the same JS code that sets .title-wrapper's fixed width is expected to handle this)
*/
#titlebar {
    // Visible only in-browser
    body.in-appshell & {
        display: none;
    }

    text-align: center;
    .nav {  // menubar
        float: left;
        text-align: left;
    }
    .title {
        float: none;
        display: inline;  // must be an inline for JS to measure text size
    }
    .title-wrapper {
        margin: 0 auto;
        display: block;  // must be a block for the fixed width applied by JS to be respected
        // width set in px is appled/updated by JavaScript in DocumentCommandHandlers
    }
}

/* Vertical icon toolbar on right */
#main-toolbar {
    position: absolute;
    top: 0;
    right: 0;
    width: @main-toolbar-width;
    height: 100%;
    box-sizing: border-box;

    background: @main-toolbar-background-color;
    padding: 5px 0px;

    // Ensure icons are vertically stacked & horizontally centered
    .vbox;
    .box-flex(1);
    text-align: center;

    .buttons {
        text-align: center;
        margin: 0;

        > a {
            margin: 5px 0px 5px 0px;
            padding: 0 !important;
            position: static !important;
            top: 0 !important;
            left: 0 !important;
        }
    }
}

/* Toolbar appearance - shared by all toolbars, independent of layout */

@toolbar-top-gap-px: 5px;

.toolbar {
    font-size: @label-font-size;
    padding: 4px 8px;
    background-color: @bc-white;
    color: @bc-black;

    position: relative;  // needed for abs-positioned elements in toolbar (e.g. right-aligned "X")

    .title-wrapper {
        // Title is taller than menu text, so reduce top padding to keep its baseline aligned
        padding: (@toolbar-top-gap-px - 3px) 0 3px 0;
    }
    .title {
        font-size: @title-font-size;
        line-height: normal;
        font-weight: @font-weight-light;

        // On Win, the size+weight combo used above does not look good for the bullet character
        .dirty-dot {
            font-weight: normal;
        }

        white-space: nowrap;
        overflow: hidden;
        -ms-text-overflow: ellipsis;
        -o-text-overflow: ellipsis;
        text-overflow: ellipsis;
    }

    .buttons {
        margin: @toolbar-top-gap-px 0 0 4px;

        span, a {
            cursor: default;
        }
    }
}

/* Menu-related styles */

@menubar-top-padding: 8px;
@menubar-bottom-padding: 6px;
@menubar-h-padding: 9px;
@item-highlight-color: #e0f0fa;

.toolbar .nav, .context-menu, .codehint-menu {

    // The 1px adjustments here are to account for the border around the top-level menu items.
    margin: (@toolbar-top-gap-px - @menubar-top-padding - 1) 0 (-@menubar-bottom-padding + 1) (-@menubar-h-padding + 4);

    // General item appearance
    a {
        color: @bc-black;
        text-shadow: none;
        cursor: default;
    }

    // Menubar item appearance
    .dropdown-toggle {
        padding: @menubar-top-padding @menubar-h-padding @menubar-bottom-padding;
        border: 1px solid rgba(0, 0, 0, 0); // transparent border just to hold the layout so it doesn't shift on hover
        color: fadeout(@bc-black, 25%);
        font-weight: @font-weight-light;
    }
    .dropdown-toggle:hover, .dropdown.open .dropdown-toggle {
        /* Note: we need several selectors for this in order to match the specificity of all the various Bootstrap
           color rules we need to override (and Bootstrap has several selectors because the colors really differ
           in their defaults). */
        color: @bc-black;
        background: @item-highlight-color;
        border-color: #dbeaf4;
    }

    // no triangle icon after menu items
    .dropdown-toggle:after {
        border: 0;
        margin: 0;
    }

    // Menu dropdown appearance
    .dropdown-menu {
        top: 34px; // Offset from top of menubar item

        background-color: @bc-white;
        border: 1px solid #c8c8c8;
        .border-radius(0 0 3px 3px);
        .box-shadow(0 6px 18px 0 rgba(0, 0, 0, .2));

        // Menu items
        li {
            a {
                font-size: @menu-item-font-size;
                line-height: 18px;

                // Slightly less padding on left to account for checkmark.
                // More padding on top than bottom to center font within its bg highlight better.
                padding: 2px 10px 0px 6px;

                color: @bc-black;
                text-shadow: none;
                white-space: nowrap;
                .box-shadow(none);

                &:hover, &.highlight {
                    color: @bc-black;
                    background: @item-highlight-color;
                }

                &.disabled {
                    color: @bc-gray;

                    &:hover {
                        background: @bc-white;
                    }
                }

                /* hidden checkmark for all list item content ensures consistent left spacing */
                &::before {
                    content: "✓\00a0"; /* non-breaking space */
                    visibility: hidden;
                }
                /* toggle checkmark visibility */
                &.checked::before {
                    visibility: visible;
                }
            }
        }

        .divider {
            background-color: #eaeaea;
            border: 0;
        }
    }

    // Ensure a minimum amount of space to the left of the shortcut
    .menu-shortcut {
        margin-left: 15px;
    }
}

/* Context menu styles */

.context-menu, .codehint-menu {
    position: absolute;
    z-index: @z-index-brackets-context-menu-base;
    list-style-type: none;

    .dropdown-menu {
        .border-radius(3px);
    }

    .menu-shortcut {
        float: right;
    }
}

.codehint-menu {
    .dropdown-menu {
        .box-shadow(none);
        max-height: 160px;
        overflow-y: auto;

        padding: 0;

        li {
            a {
                // Less padding than on menus. More padding on top than bottom
                // to center font within its bg highlight better.
                padding: 2px 20px 0px 0px;

                // Don't show highlighting on hover for code hints...
                &:hover {
                    color: @bc-black;
                    background-color: @bc-white;
                }

				// ...except for selected item
                &.highlight:hover {
                    color: @bc-black;
                    background-color: @item-highlight-color;
                }
            }
        }
    }
}

#context-menu-bar {
    margin: 0;
}

/* Dialog-related styles */

.modal {
    width: auto;
}

.modal .close {
    cursor: default;
}

.modal-body, .modal-header {
    /* See styles/bootstrap/patterns.less .modal class.
       Pushing this value down to .modal-header and .modal-body
       to allow the overall modal to take the width of the footer */
    width: 560px;
}

.modal-footer {
    background-color: #dfe2e2;
    border-top: 1px solid rgba(0,0,0,0.15);
    box-shadow: none;
    white-space: nowrap;
}

.modal-footer .btn.left {
    float: left;

    /* Transfer the margin to the right of each left-aligned button, so the left side lines up properly
     * with the title.
     */
    margin-left: 0;
    margin-right: 5px;
}

.modal-body ul {
    /* Bootstrap's type.less defines a heavy margin-bottom on ul/ol that we don't want in dialogs
       since they have heavy padding instead. */
    margin-bottom: 0;
}

.dialog-title {
    margin-bottom: 0;
    font-size: 26px;
    line-height: 40px;
    font-weight: @font-weight-light;
}

.dialog-message {
    font-size: 16px;
    line-height: 26px;
    margin-bottom: 20px;
    font-weight: @font-weight-light;
}

/* bootstrap's base color for generic li is gray */
.dialog-message li {
    line-height: 26px;
    color: @grayDark;
}

.dialog-message select {
    margin-left: 10px;
}

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

/* Any Dialog text in this style is automatically turned into a link that opens in the browser. Use data-href for the link's target. */
.clickable-link {
    cursor: pointer;
}

.btn {
    cursor: default;
    font-size: 16px;
    font-weight: @font-weight-semibold;
    color: #454545;

    // On hover, gradient slides away to reveal a solid-color bg. Want same bg color in non-hover
    // too so we don't see the color cross-fading during the gradient slide animation
    background-color: #fff;
    &:hover {
        background-position: 0 15px;
    }

    &.primary {
        background-color: @blue;
    }
}

/* Update dialog */
.update-dialog .modal-body {
    position: relative;
    .update-icon {
        position: absolute;
        left: 30px; // relative to border of modal-body
        top: 20px;
        width: 80px;
        height: 80px;
    }
    .update-text {
        // Icon is 120px, so we need at least that much left padding/margin to avoid overlap
        margin: 0 10px 0 123px;

        .update-info {
            max-height: 200px;
            overflow: auto;

            // Enable text selection
            cursor: auto;
            -webkit-user-select: text;
            -khtml-user-select: text;
            -moz-user-select: text;
            -ms-user-select: text;
            -o-user-select: text;
            user-select: text;
        }
    }
}

/* Project Settings and Install Extension dialogs */
.project-settings-dialog .modal-body, .install-extension-dialog .modal-body {
    text-align: center;

    .field-container {
        display: inline-block;
    }
    label {
        float: none;
    }
    input.url {
        display: inline;
    }
}

.project-settings-dialog .modal-body input.url {
    margin: 10px;
    width: 400px;
}

.install-extension-dialog .modal-body input.url {
    margin: 10px 0;
    width: 550px;
}

/* Extension Manager dialog */
.extension-manager-dialog {
    top: 50%;
    left: 50%;
    margin-top: -325px;
    margin-left: -350px;

    .modal-body {
        width: 700px;
        height: 500px;
        text-align: center;
        overflow-y: scroll;

        .extension-list {
            .ext-name {
                font-weight: bold;
            }
            .ext-desc {
                width: 60%;
            }
            .ext-version,
            .ext-date,
            .ext-author {
                font-size: 0.8em;
            }
            .spinner {
                position: absolute;
                top: 50%;
                left: 50%;
                margin-top: -18px;
                margin-left: -18px;
            }
            .load-error {
                display: inline-block;
                margin-top: 240px;
            }
            .install {
                width: 90px;
            }
        }
    }
}

/* About dialog */
.about-dialog .modal-body {
    // Simple two-column layout: image on left, text taking up remaining space on right
    position: relative;
    .about-icon {
        position: absolute;
        left: 10px;  // relative to border of modal-body (bounds outside padding)
        top:  11px;
    }
    .about-text {
        // Icon is 120px, so we need at least that much left padding/margin to avoid overlap
        margin: 0 10px 0 123px;

        #about-build-number {
            color: #b0b0b0;
        }
        .about-info {
            max-height: 300px;
            overflow: auto;
        }
        .about-contributors {
            min-height: 100px;
        }
        .about-contributors img {
            opacity: 0;
            -webkit-transition: opacity 1s;
            -moz-transition: opacity 1s;
            -o-transition: opacity 1s;
            transition: opacity 1s;
        }
    }

    h2 {
        font-weight: normal;
        font-size: 25px;
        margin-bottom: -4px;
        margin-top: 3px;
    }
    .dialog-message {
        font-size: 14px;
        line-height: 17px;

        // Enable text selection
        cursor: auto;
        -webkit-user-select: text;
        -khtml-user-select: text;
        -moz-user-select: text;
        -ms-user-select: text;
        -o-user-select: text;
        user-select: text;
    }
}

/* Buttons */

// Base .btn styles
.btn {
    // Button Base
    background-image: none;

    background-color: #e5e9e9;
    text-shadow: 0 1px 0 #fff;
    color: #454545;
    font-weight: 500;
    line-height: normal;
    border: 1px solid #9c9e9e;
    .border-radius(3px);
    box-shadow: inset 0 1px 0 #fff;

    &:hover {
        background-color: #edf1f1;
        color: #454545;
    }

    // Focus state for keyboard and accessibility
    &:focus {
        box-shadow: inset 0 1px 0 #fff, 0 0 0 2px #6fb5f1;
        outline: none;
    }

    // Primary Button Type
    &.primary {
        background-image: none;
        background-color: #288edf;
        border: 1px solid  #0055ad;
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.36);
        color: #fff;
        text-shadow: 0 -1px 0 rgba(0,0,0,0.36);
        &.active,
        &:active {
            background-image: none;
            background-color: #0380e8;
            box-shadow: inset 0 1px 0 rgba(0,0,0,0.12);
        }

        &:focus {
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.36), 0 0 0 2px #6fb5f1;
            outline: none;
        }
    }

    // Active and Disabled states
    &.active,
    &:active {
        background-image: none;
        background-color: #d3d7d7;
        box-shadow: inset 0 1px 0 rgba(0,0,0,0.12);
    }

    &.disabled, &[disabled] {
        .opacity(30);
    }

    // Button Sizes
    &.large {
        font-size: @basefont + 1px;
        .border-radius(3px);
    }
    &.small {
        font-size: @basefont - 1px;
    }
}

// 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.

/* Brackets patterns (and overrides and re-definitions of Bootstrap patterns)
 *
 * This file should contain all _reusable_ UI elements / LESS definitions
 * That is, things that will either a.) be used for more than one element or
 * b.) exist in multiple versions of brackets (e.g. App, In-Browser, etc.)
 *
 * Note that if you want a UI element to be themeable, you should put the
 * themeable part in "brackets_theme_default" as variables/mixins.
 *
 */

.panel {
    .vbox;
    .box-flex(1);

    padding: 0;
    margin: 0;

    background: @project-panel-base-color url("images/propertiespanel_back.png") repeat-x 0 0;
    color: #bbb;
    letter-spacing: .01em;
    text-shadow: 0px 1px 2px rgba(0,0,0,.5);
}

/* Toolbar-related styles */

/* Simple toolbar layout (project panel, find in files, etc.)
   We don't set this directly on .toolbar because it'd be a pain to override all the pieces
   if other code (e.g. #main-toolbar) wants to do a different layout */
.simple-toolbar-layout.toolbar {
    .hbox;
    .box-align(center);
    overflow: hidden;

    .title-wrapper {
        /* This is necessary because text-overflow: ellipsis doesn't work when it's set
           directly on a flexing box in Chrome currently. */
        .box-flex(1);
    }
    .buttons {
        .hbox;
        margin-left: 4px;
    }
}

/* Horizontal titlebar/menubar (in-browser only)

   CSS hack based on this code: http://jsfiddle.net/cD657/3/ (via StackOverflow)
   This center-aligns the title across the full width of the toolbar (ignoring the width of the nav floated
   left and buttons floated right), yet still have the browser automatically wrap the floats onto a 2nd row
   if they collide with the title. But the centered content must be a block element with fixed width. Since
   the editor title (filename) varies in width, we rely on JS code to update the width whenever the string
   changes.

   Another wrinkle: wrapping to/from the two-line toolbar layout requires notifying the CodeMirror editor that
   its height changed. Currently, we assume this can ONLY happen in two cases:
    - the window resizes (handled by general listener in EditorManager)
    - title content changes (the same JS code that sets .title-wrapper's fixed width is expected to handle this)
*/
#titlebar {
    // Visible only in-browser
    body.in-appshell & {
        display: none;
    }

    text-align: center;
    .nav {  // menubar
        float: left;
        text-align: left;
    }
    .title {
        float: none;
        display: inline;  // must be an inline for JS to measure text size
    }
    .title-wrapper {
        margin: 0 auto;
        display: block;  // must be a block for the fixed width applied by JS to be respected
        // width set in px is appled/updated by JavaScript in DocumentCommandHandlers
    }
}

/* Vertical icon toolbar on right */
#main-toolbar {
    position: absolute;
    top: 0;
    right: 0;
    width: @main-toolbar-width;
    height: 100%;
    box-sizing: border-box;

    background: @main-toolbar-background-color;
    padding: 5px 0px;

    // Ensure icons are vertically stacked & horizontally centered
    .vbox;
    .box-flex(1);
    text-align: center;

    .buttons {
        text-align: center;
        margin: 0;

        > a {
            margin: 5px 0px 5px 0px;
            padding: 0 !important;
            position: static !important;
            top: 0 !important;
            left: 0 !important;
        }
    }
}

/* Toolbar appearance - shared by all toolbars, independent of layout */

@toolbar-top-gap-px: 5px;

.toolbar {
    font-size: @label-font-size;
    padding: 4px 8px;
    background-color: @bc-white;
    color: @bc-black;

    position: relative;  // needed for abs-positioned elements in toolbar (e.g. right-aligned "X")

    .title-wrapper {
        // Title is taller than menu text, so reduce top padding to keep its baseline aligned
        padding: (@toolbar-top-gap-px - 3px) 0 3px 0;
    }
    .title {
        font-size: @title-font-size;
        line-height: normal;
        font-weight: @font-weight-light;

        // On Win, the size+weight combo used above does not look good for the bullet character
        .dirty-dot {
            font-weight: normal;
        }

        white-space: nowrap;
        overflow: hidden;
        -ms-text-overflow: ellipsis;
        -o-text-overflow: ellipsis;
        text-overflow: ellipsis;
    }

    .buttons {
        margin: @toolbar-top-gap-px 0 0 4px;

        span, a {
            cursor: default;
        }
    }
}

/* Menu-related styles */

@menubar-top-padding: 8px;
@menubar-bottom-padding: 6px;
@menubar-h-padding: 9px;
@item-highlight-color: #e0f0fa;

.toolbar .nav, .context-menu, .codehint-menu {

    // The 1px adjustments here are to account for the border around the top-level menu items.
    margin: (@toolbar-top-gap-px - @menubar-top-padding - 1) 0 (-@menubar-bottom-padding + 1) (-@menubar-h-padding + 4);

    // General item appearance
    a {
        color: @bc-black;
        text-shadow: none;
        cursor: default;
    }

    // Menubar item appearance
    .dropdown-toggle {
        padding: @menubar-top-padding @menubar-h-padding @menubar-bottom-padding;
        border: 1px solid rgba(0, 0, 0, 0); // transparent border just to hold the layout so it doesn't shift on hover
        color: fadeout(@bc-black, 25%);
        font-weight: @font-weight-light;
    }
    .dropdown-toggle:hover, .dropdown.open .dropdown-toggle {
        /* Note: we need several selectors for this in order to match the specificity of all the various Bootstrap
           color rules we need to override (and Bootstrap has several selectors because the colors really differ
           in their defaults). */
        color: @bc-black;
        background: @item-highlight-color;
        border-color: #dbeaf4;
    }

    // no triangle icon after menu items
    .dropdown-toggle:after {
        border: 0;
        margin: 0;
    }

    // Menu dropdown appearance
    .dropdown-menu {
        top: 34px; // Offset from top of menubar item

        background-color: @bc-white;
        border: 1px solid #c8c8c8;
        .border-radius(0 0 3px 3px);
        .box-shadow(0 6px 18px 0 rgba(0, 0, 0, .2));

        // Menu items
        li {
            a {
                font-size: @menu-item-font-size;
                line-height: 18px;

                // Slightly less padding on left to account for checkmark.
                // More padding on top than bottom to center font within its bg highlight better.
                padding: 2px 10px 0px 6px;

                color: @bc-black;
                text-shadow: none;
                white-space: nowrap;
                .box-shadow(none);

                &:hover, &.highlight {
                    color: @bc-black;
                    background: @item-highlight-color;
                }

                &.disabled {
                    color: @bc-gray;

                    &:hover {
                        background: @bc-white;
                    }
                }

                /* hidden checkmark for all list item content ensures consistent left spacing */
                &::before {
                    content: "✓\00a0"; /* non-breaking space */
                    visibility: hidden;
                }
                /* toggle checkmark visibility */
                &.checked::before {
                    visibility: visible;
                }
            }
        }

        .divider {
            background-color: #eaeaea;
            border: 0;
        }
    }

    // Ensure a minimum amount of space to the left of the shortcut
    .menu-shortcut {
        margin-left: 15px;
    }
}

/* Context menu styles */

.context-menu, .codehint-menu {
    position: absolute;
    z-index: @z-index-brackets-context-menu-base;
    list-style-type: none;

    .dropdown-menu {
        .border-radius(3px);
    }

    .menu-shortcut {
        float: right;
    }
}

.codehint-menu {
    .dropdown-menu {
        .box-shadow(none);
        max-height: 160px;
        overflow-y: auto;

        padding: 0;

        li {
            a {
                // Less padding than on menus. More padding on top than bottom
                // to center font within its bg highlight better.
                padding: 2px 20px 0px 0px;

                // Don't show highlighting on hover for code hints...
                &:hover {
                    color: @bc-black;
                    background-color: @bc-white;
                }

				// ...except for selected item
                &.highlight:hover {
                    color: @bc-black;
                    background-color: @item-highlight-color;
                }
            }
        }
    }
}

#context-menu-bar {
    margin: 0;
}

/* Dialog-related styles */

.modal {
    width: auto;
}

.modal .close {
    cursor: default;
}

.modal-body, .modal-header {
    /* See styles/bootstrap/patterns.less .modal class.
       Pushing this value down to .modal-header and .modal-body
       to allow the overall modal to take the width of the footer */
    width: 560px;
}

.modal-footer {
    background-color: #dfe2e2;
    border-top: 1px solid rgba(0,0,0,0.15);
    box-shadow: none;
    white-space: nowrap;
}

.modal-footer .btn.left {
    float: left;

    /* Transfer the margin to the right of each left-aligned button, so the left side lines up properly
     * with the title.
     */
    margin-left: 0;
    margin-right: 5px;
}

.modal-body ul {
    /* Bootstrap's type.less defines a heavy margin-bottom on ul/ol that we don't want in dialogs
       since they have heavy padding instead. */
    margin-bottom: 0;
}

.dialog-title {
    margin-bottom: 0;
    font-size: 26px;
    line-height: 40px;
    font-weight: @font-weight-light;
}

.dialog-message {
    font-size: 16px;
    line-height: 26px;
    margin-bottom: 20px;
    font-weight: @font-weight-light;
}

/* bootstrap's base color for generic li is gray */
.dialog-message li {
    line-height: 26px;
    color: @grayDark;
}

.dialog-message select {
    margin-left: 10px;
}

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

/* Any Dialog text in this style is automatically turned into a link that opens in the browser. Use data-href for the link's target. */
.clickable-link {
    cursor: pointer;
}

.btn {
    cursor: default;
    font-size: 16px;
    font-weight: @font-weight-semibold;
    color: #454545;

    // On hover, gradient slides away to reveal a solid-color bg. Want same bg color in non-hover
    // too so we don't see the color cross-fading during the gradient slide animation
    background-color: #fff;
    &:hover {
        background-position: 0 15px;
    }

    &.primary {
        background-color: @blue;
    }
}

/* Update dialog */
.update-dialog .modal-body {
    position: relative;
    .update-icon {
        position: absolute;
        left: 30px; // relative to border of modal-body
        top: 20px;
        width: 80px;
        height: 80px;
    }
    .update-text {
        // Icon is 120px, so we need at least that much left padding/margin to avoid overlap
        margin: 0 10px 0 123px;

        .update-info {
            max-height: 200px;
            overflow: auto;

            // Enable text selection
            cursor: auto;
            -webkit-user-select: text;
            -khtml-user-select: text;
            -moz-user-select: text;
            -ms-user-select: text;
            -o-user-select: text;
            user-select: text;
        }
    }
}

/* Project Settings and Install Extension dialogs */
.project-settings-dialog .modal-body, .install-extension-dialog .modal-body {
    text-align: center;

    .field-container {
        display: inline-block;
    }
    label {
        float: none;
    }
    input.url {
        display: inline;
    }
}

.project-settings-dialog .modal-body input.url {
    margin: 10px;
    width: 400px;
}

.install-extension-dialog .modal-body input.url {
    margin: 10px 0;
    width: 550px;
}

/* Extension Manager dialog */
.extension-manager-dialog {
    top: 50%;
    left: 50%;
    margin-top: -325px;
    margin-left: -350px;

    .modal-body {
        width: 700px;
        height: 500px;
        text-align: center;
        overflow-y: scroll;

        .extension-list {
            .ext-name {
                font-weight: bold;
            }
            .ext-desc {
                width: 60%;
            }
            .ext-version,
            .ext-date,
            .ext-author {
                font-size: 0.8em;
            }
            .spinner {
                position: absolute;
                top: 50%;
                left: 50%;
                margin-top: -18px;
                margin-left: -18px;
            }
            .load-error {
                display: inline-block;
                margin-top: 240px;
            }
            .install {
                width: 90px;
            }
        }
    }
}

/* About dialog */
.about-dialog .modal-body {
    // Simple two-column layout: image on left, text taking up remaining space on right
    position: relative;
    .about-icon {
        position: absolute;
        left: 10px;  // relative to border of modal-body (bounds outside padding)
        top:  11px;
    }
    .about-text {
        // Icon is 120px, so we need at least that much left padding/margin to avoid overlap
        margin: 0 10px 0 123px;

        #about-build-number {
            color: #b0b0b0;
        }
        .about-info {
            max-height: 300px;
            overflow: auto;
        }
        .about-contributors {
            min-height: 100px;
        }
        .about-contributors img {
            opacity: 0;
            -webkit-transition: opacity 1s;
            -moz-transition: opacity 1s;
            -o-transition: opacity 1s;
            transition: opacity 1s;
        }
    }

    h2 {
        font-weight: normal;
        font-size: 25px;
        margin-bottom: -4px;
        margin-top: 3px;
    }
    .dialog-message {
        font-size: 14px;
        line-height: 17px;

        // Enable text selection
        cursor: auto;
        -webkit-user-select: text;
        -khtml-user-select: text;
        -moz-user-select: text;
        -ms-user-select: text;
        -o-user-select: text;
        user-select: text;
    }
}

/* Buttons */

// Base .btn styles
.btn {
  // Button Base
  background-image: none;
  cursor: pointer;
  display: inline-block;
  background-color: #e5e9e9;
  padding: 5px 14px 6px;
  text-shadow: 0 1px 0 #fff;
  color: #454545;
  font-size: @basefont;
  font-weight: 500;
  line-height: normal;
  border: 1px solid #9c9e9e;
  .border-radius(3px);
  box-shadow: inset 0 1px 0 #fff;

  &:hover {
    background-color: #edf1f1;
    color: #454545;
    text-decoration: none;
  }

  // Focus state for keyboard and accessibility
  &:focus {
    box-shadow: inset 0 1px 0 #fff, 0 0 0 2px #6fb5f1;
    outline: none;
  }

  // Primary Button Type
  &.primary {
    background-image: none;
    background-color: #288edf;
    border: 1px solid  #0055ad;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.36);
    color: #fff;
    text-shadow: 0 -1px 0 rgba(0,0,0,0.36);
    &.active,
    &:active {
      background-image: none;
      background-color: #0380e8;
      box-shadow: inset 0 1px 0 rgba(0,0,0,0.12);
    }

    &:focus {
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.36), 0 0 0 2px #6fb5f1;
      outline: none;
    }
  }

   // Transitions
  .transition(.1s linear all);

  // Active and Disabled states
  &.active,
  &:active {
    background-image: none;
    background-color: #d3d7d7;
    box-shadow: inset 0 1px 0 rgba(0,0,0,0.12);
  }

  &.disabled {
    cursor: default;
    background-image: none;
    .reset-filter();
    .opacity(30);
    .box-shadow(none);
  }
  &[disabled] {
    // disabled pseudo can't be included with .disabled
    // def because IE8 and below will drop it ;_;
    cursor: default;
    background-image: none;
    .reset-filter();
    .opacity(30);
    .box-shadow(none);
  }

  // Button Sizes
  &.large {
    font-size: @basefont + 1px;
    line-height: normal;
    padding: 9px 14px 9px;
    .border-radius(3px);
  }
  &.small {
    padding: 7px 9px 7px;
    font-size: @basefont - 1px;
  }
}


Added missing poll.less

Added missing poll.less

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/MenesesEvandro/WCF.git/'


Use min-device-width instead of min-width

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/metao1/chat.git/'


Did some CSS housekeeping.

Did some CSS housekeeping.

fatal: unable to access 'https://github.com/bac/juju-gui.git/': The requested URL returned error: 403