/********************************************* * Copyright (c) 2014 AnsibleWorks, Inc. * * ansible-ui.css * * custom styles for ansible-ui * */ @black: #171717; @white: #FFF; @warning: #FF9900; @red: #da4f49; @red-hover: #AE3F3A; @green: #5bb75b; @blue: #1778c3; /* logo blue */ @blue-link: #1778c3; @blue-dark: #2a6496; /* link hover */ @grey: #A9A9A9; @well: #f5f5f5; /* well background color */ @info: #d9edf7; /* alert info background color */ @info-border: #bce8f1; /* alert info border color */ @info-color: #3a87ad; @tip-background: #0088CC; @tip-color: #fff; @import "animations.less"; @import "jquery-ui-overrides.less"; html, body { height: 100%; } html { background-color: @white; } body { padding-top: 100px; color: @black; } /* Bootstrap fix that's causing a right margin to appear whenver a modal is opened */ body.modal-open { margin-right: 0; } /* Helper Classes */ .pad-right-sm { padding-right: 10px; } .pad-left-md { padding-left: 30px; } .pad-left-sm { padding-left: 10px; } .pad-left-lg { padding-left: 50px; } .normal-weight { font-weight: normal; } .no-bullets { list-style: none; } .nowrap { white-space: nowrap; } .capitalize { text-transform: capitalize; } .grey-txt { color: @grey; } .red-txt { color: @red; } a.red-txt:hover { color: @red; } //make red links (for things like cancel) .text-center { text-align: center !important; } /* Used on inventory groups/hosts lists for long names */ .ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .group-name { display: inline-block; width: 90%; } a { color: @blue; text-decoration: none; } a:hover, a:focus { color: @blue-dark; text-decoration: none; } /* Old style TB default button with grey background */ .btn-grey { color: #333; background-color: #ccc; border-color: #ccc; } .btn-grey:hover { background-color: #FFF; } /* Make buttons appear to be disabled, but allow mouse events */ .btn-disabled { opacity: 0.35; filter: alpha(opacity=65); -webkit-box-shadow: none; box-shadow: none; } .btn-disabled { cursor: not-allowed; } /* Bring primary (blue) buttons in line with link colors */ .btn-primary { background-color: @blue; } .btn-primary:hover { background-color: @blue-dark; } /* List Actions column */ .actions { a { font-size: 14px; margin-right: 12px; } a:last-child { margin-right: 0; } a:hover { cursor: pointer; } .cancel { padding-right: 8px; } .dropdown .caret { border-top-color: @blue; } } #home_groups_table .actions .cancel { padding-right: 3px; } #jobs_table .actions .cancel { padding-right: 10px; } .success-badge { color: #ffffff; background-color: #5cb85c; } .bold-text .checkbox-inline { font-weight: bold; } /* Disable textarea re-sizing as a general rule */ textarea { resize: none; } /* Working... spinner */ .spinny { display: none; position: fixed; z-index: 2000; width: 75px; height: 75px; text-align:center; color: #eee; background-color: @black; border: 1px solid @grey; border-radius: 6px; padding-top: 10px; p { padding-top: 10px; font-size: 11px; } } .prepend-asterisk:before { content: "\002A\00A0"; color: @red; } .subtitle { font-size: 16px; } .modal-dialog .ui-accordion .ui-accordion-content { overflow: hidden; } .overlay { display: none; position: absolute; top: 0; left: 0; z-index: 1999; background-color: @black; opacity: .4; } /* TB tooltip overrides */ .popover-content, .popover-content { width: 100%; } .popover { z-index: 2000; } .tooltip { z-index: 1050; opacity: 1.0; } .alert { margin-top: 15px; margin-bottom: 15px; } hr { border-color: #e3e3e3; } .help { display: inline-block; } /* help collapse */ h4.panel-title { font-size: 14px; } .panel-heading:hover { cursor: pointer; } .panel-default>.panel-heading .collapse-help-icon { color: @grey; } .collapsible-help { margin-top: 20px; margin-bottom: 20px; dl { margin-left: 15px; } dt { margin-top: 15px; } } th.actions-column, td.actions { white-space: nowrap; } .tab-content { padding-top: 20px; } .btn .caret { border-top-color: #696969; } .dropdown-toggle, /* .dropdown-toggle:hover, .btn-default:visited, .btn-default:hover, .btn-default:active { color: #333; background-color: #bbb; border-color: #bbb; } */ .btn-light { color: #333; background-color: #ddd; border-color: #ddd; } .refresh-grp { display: inline-block; text-align: right; margin-left: 0; margin-top: 0; padding: 0; line-height: normal; .refresh-msg { font-size: 10px; } } .btn-light:hover { color: #333; background-color: #ccc; border-color: #ccc; } .ssh-key-field, .mono-space { font-family: Fixed, monospace; } dd { margin-left: 15px; } /* Use code-breakable in pop-over text to indent and wrap code segments */ .code-breakable { padding-left: 10px; word-wrap: break-word; } .break { word-wrap: break-word; } .login-alert { margin-bottom: 25px; font-size: 14px; font-weight: normal; color: @blue-link; text-align: center; } .controls { min-height: 15px; } /* footer variables */ @footer-height: 96px; @footer-margin: 40px; @push-height: (@footer-height + @footer-margin); @push-margin: 0px; #wrap { min-height: 100%; height: 100%; height: auto !important; margin: 0 auto -(@push-height + @push-margin); } #push { height: (@footer-height + @footer-margin); /* push height = footer height + footer padding */ margin-bottom: (@footer-margin); } #navbar-container, .main-menu { width: 100%; background-color: @black; } .main-menu .nav { margin-top: 0; } .main-menu .nav > li > a { color: @grey; } .main-menu .nav > li > a:hover, .main-menu .nav > li > a:focus { color: @blue; } .text-justify { text-align: justify; } .navbar-collapse { padding-right: 0; } .main-menu .nav >li >a:last-child { padding-right: 0; padding-left: 20px; } .navbar>.container .navbar-brand { margin-left: 0; margin-top: 11px; } /* Using inline-block rather than block keeps brand img from right aligning into the collapse button on mobile screens */ .main-menu .navbar-brand { display: inline-block; padding: 0; } .main-menu .navbar-brand img { max-width: 260px; } .help-link, .help-link:active, .help-link:visited { color: @grey; text-decoration: none; } .help-link:hover { color: @black; text-decoration: none; } .site-footer { width: 100%; padding-top: 10px; padding-bottom: 10px; margin-top: 60px; color: @grey; text-align: center; background-color: @black; a, a:active, a:visited { color: @grey; } a:hover { color: @white; } .help { padding-top: 18px; font-weight: normal; } .logo { text-align: right; } .logo img { max-width: 125px; } .copyright { padding-top: 18px; font-weight: normal; text-align: center; } } .modal-header.login-header { text-align: center; background-color: @black; border-left: 1px solid #686868; border-right: 1px solid #686868; border-top: 1px solid #686868; border-top-left-radius: 6px; border-top-right-radius: 6px; } .login-header img { width: 327px; } .form-title { display: inline-block; width: 100%; vertical-align: middle; font-weight: bold; padding-left: 15px; margin-bottom: 10px; } .form-group { margin-bottom: 25px; } .form-cancel { float: right; margin-right: 10px; } .form-title-hr { margin-bottom: 20px; } .form-horizontal .buttons { margin-top: 25px; } .label-text { padding-right: 10px; } /* Outline required fields in Red when there is an error */ .form-control.ng-dirty.ng-invalid, .form-control.ng-dirty.ng-invalid:focus { border-color: rgba(204, 0, 0, 0.8); outline: 0; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px rgba(204, 0, 0, 0.6); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px rgba(204, 0, 0, 0.6); } /* For some reason TB 3 RC1 does not provide an input-mini */ .input-mini { height: 26px; padding: 3px 8px; font-size: 12px; border-radius: 3px; } .error { margin-top: 5px; font-size: 12px; line-height: normal; color: @red; } .xsmall { font-size: 12px; } .note { padding-top: 15px; font-size: 12px; } legend { font-size: medium; font-weight: bold; } .navigation { margin: 15px 0 15px 0; } .page-number { display: inline-block; padding: 0; margin: 0; } .page-number-small { display: inline-block; margin-left: 10px; font-size: 11px; } /* Pagination */ .page-label { margin-top: 0; text-align: right; } .pagination { margin-top: 0; margin-bottom: 7px; } .pagination > li > a { padding: 3px 6px; } .modal-body { .pagination { margin-top: 15px; margin-bottom: 0; } .pagination > li > a { border: none; padding-top: 0; padding-bottom: 0; } .pagination > .active > a { background-color: #fff; color: #428bca; border-color: none; border: 1px solid #428bca; } } .footer-navigation { margin: 10px 0 10px 0; } .lookup-navigation { margin: 15px 0 0 0; /*padding-top: 20px;*/ } .related-footer { margin: 10px 0 0 0; } select.page-size { width: 65px; height: 24px; font-size: 10px; } .page-size-label { margin-left: 15px; font-size: 10.5px; font-weight: normal; } .accordion-heading { font-weight: bold; color: @blue-link; } .accordion-heading i { margin-right: 5px; } .status-actions { display: inline-block; height: 25px; } .status-spin { display: inline-block; margin-left: 15px; font-size: 22px; vertical-align: middle; } /* Search Widget */ .search-widget label { display: inline-block; padding-right: 15px; vertical-align: middle; } #search_value_input { padding-right: 25px; } .search-reset-start { color: @grey; float: right; position: relative; top: -25px; left: -10px; z-index: 10; } .search-reset-start:hover { cursor: pointer; color: @black; } .ui-widget-content a.search-reset-start { color: @grey; } /* breadcrumbs */ .nav-path { padding: 5px 0 10px 0; margin-right: 5px; margin-bottom: 25px; font-size: 14px; font-weight: bold; background-color: #f5f5f5; border: 1px solid #d8d8d8; border-radius: 6px; box-shadow: 3px 3px 4px 0 #808080; .breadcrumb { display: inline-block; padding-bottom: 0; padding-left: 0; padding-right: 0; margin-bottom: 0; margin-left: 10px; } .dropdown { display: inline-block; margin-right: 0; paddding-right: 0; .toggle, .toggle:visited, .toggle:hover, .toggle:active { color: @black; } li a.active { color: @grey; } .crumb-icon { font-size: 12px; } } } .actions .dropdown { display: inline-block; } /* Display drop-down menus on hover. Remove margin between toggle link and menu, allowing smooth mouse movement between toggle and menu http://stackoverflow.com/questions/8878033/how-to-make-twitter-bootstrap-menu-dropdown-on-hover-rather-than-click */ .dropdown-toggle:hover .dropdown-menu, .dropdown:hover .dropdown-menu { display: block; } .dropdown-menu li:hover { visibility: visible; } .dropdown-menu { margin-top: 0; } /* end */ .greeting { padding-right: 22px; } .breadcrumb .active { color: @black; } .nav-tabs > li > a { font-weight: bold; } input[type="text"].field-mini-height { height: 12px; font-size: 10.5px; } select.field-mini-height { height: 22px; font-size: 10.5px; } .ask-checkbox { margin-left: 10px; } .no-padding { padding: 0; margin: 0; } input[type="checkbox"].checkbox-no-label { margin-top: 10px; } .checkbox-options { font-weight: normal; padding-right: 20px; } /* Display list actions next to search widget */ .list-actions { text-align: right; margin-bottom: 25px; button { margin-left: 4px; } .fa-lg { vertical-align: -8%; } } #home-list-actions { margin-bottom: 15px; } /* End Display list actions */ /* Enable table-hover to work when table is in a well */ .table-hover tbody tr:hover > td, .table-hover tbody tr:hover > th { background-color: #fff; border-top: 1px solid #ddd; } .table-hover-inverse tbody tr:hover > td, .table-hover-inverse tbody tr:hover > th { background-color: #dff0d8; } .table-summary thead > tr > th, .table-summary tbody > tr > th, .table-summary tfoot > tr > th, .table-summary thead > tr > td, .table-summary tbody > tr > td, .table-summary tfoot > tr > td { border-top: 1px solid #ccc; } .table-summary thead > tr > th { border-bottom: 1px solid #ccc; } /* Table without row borders */ .table-no-border thead > tr > th, .table-no-border tbody > tr > th, .table-no-border tfoot > tr > th, .table-no-border thead > tr > td, .table-no-border tbody > tr > td, .table-no-border tfoot > tr > td { border-top: none; } /* Jobs pages */ .license-expired, .license-invalid, .icon-failures-true, .active-failures-true a, .active-failures-true a:active, .job-failed, .job-error { color: #da4f49; } .icon-failures-true a:hover { color: @red; } .job-failures-true { padding-top: 5px; color: #da4f49; } .job-event-status, .license-status { padding-top: 5px; } .job-new, .job-canceled { color: #778899; } .icon-failures-false, .license-valid, .job-success, .job-successful { color: @green; } .icon-job-pending:before, .icon-job-running:before, .icon-job-success:before, .icon-job-successful:before, .icon-job-waiting:before, .icon-job-new:before, .icon-job-canceled:before, .icon-job-changed:before { content: "\f111"; } .icon-job-error:before, .icon-job-failed:before { content: "\f06a"; } .icon-job-pending, .icon-job-running, .icon-job-success, .icon-job-successful, .icon-job-waiting, .icon-job-new { color: @green; } .icon-job-canceled { color: @grey; } .icon-job-changed, .job-changed { color: @warning; } .icon-job-error, .icon-job-failed { color: @red; } .icon-failures-none, .icon-failures-na { color: @grey; } .icon-failures-true:before { content: "\f06a"; } .icon-failures-none:before, .icon-failures-na:before, .icon-failures-false:before { content: "\f111"; } /*.icon-failures-none, .icon-failures-na, .icon-failures-true, .icon-failures-false { font-size: 12px; }*/ .badge { padding: 2px 3px 3px 4px; font-size: 10px; font-weight: normal; line-height: 1; } /* Inventory job status badge */ .failures-true { background-color: @red; color: #fff; } .failures-false { background-color: @green; color: #fff; } /* Cloud inventory status. i.e. inventory_source.status values */ /* .icon-cloud-na:before, .icon-cloud-never:before, .icon-cloud-updating:before, .icon-cloud-successful:before { content: "\f111"; } .icon-cloud-failed:before { content: "\f06a"; } */ .icon-cloud-na, .icon-cloud-never, a.icon-cloud-na:hover, a.icon-cloud-never:hover { color: @grey; } .icon-cloud-updating, .icon-cloud-successful, a.icon-cloud-updating:hover, a.icon-cloud-successful:hover { color: @green; } .icon-cloud-failed, a.icon-cloud-failed:hover { color: @red; } .icon-cloud-updating { .pulsate(); } .icon-enabled-true:before { content: "\f046"; } .icon-enabled-true { color: @green; width: 14px; } .icon-enabled-false:before { content: "\f096"; } .icon-enabled-false{ color: @red; width: 14px; } /* Inventory cloud sourced? indicator */ .icon-cloud-true:before { content: "\f111"; } .icon-cloud-false:before { content: "\f111"; } .icon-cloud-true { color: @green; } .icon-cloud-false { color: @grey; } /* end */ .field-success { color: #5bb75b; } .field-success input { border-color: #5bb75b; } .field-failure { color: @red; } .field-failure input { border-color: @red; } .field-badge { font-size: 12px; margin-right: 3px; } .license-warning, .license-demo { color: @warning; } .job-detail-status { display: inline-block; margin-top: 5px; font-size: 15px; font-weight: bold; } /*.form-items .search-widget { margin-top: 15px; }*/ .form-items .item-count { display: inline-block; margin-top: 25px; font-size: small; } .child-event a { color: @black; cursor: default; } /* Padding levels used on job events and inventory groups */ .level-1 { padding-left: 20px; } .level-2 { padding-left: 40px; } .level-3 { padding-left: 60px; } .level-4 { padding-left: 80px; } .level-5 { padding-left: 100px; } .level-6 { padding-left: 120px; } .level-7 { padding-left: 140px; } .level-8 { padding-left: 160px; } .level-9 { padding-left: 180px; } .level-10 { padding-left: 200px; } .level-3-detail { padding-left: 80px; } #job_events .control-group { margin-top: 0; margin-bottom: 10px; } /* End Jobs Page */ /* License Accordion */ #license-collapse .ui-accordion-content { overflow: hidden; } /* Inventory nav links */ .navigation-links { padding: 0; margin-top: -10px; a { margin-right: 15px; } a:last-child { margin-right: 20px; } } /* Inventory Edit */ .selected { font-weight: bold; color: @blue-dark; } .inventory-title { font-size: 16px; font-weight: bold; } .active-row { background-color: @white; border-bottom: 1px solid #ddd; border-right: 1px solid #ddd; } #groups_table .actions .cancel { padding-right: 2px; } .node-toggle, .node-no-toggle { /* also used on job evetns */ float: none; padding-top: 3px; padding-left: 0; margin-right: 5px; margin-left: 0; } .node-no-toggle { opacity: .30; } .draggable-clone { opacity: .60; font-weight: bold; /*z-index: 2000; overflow: visible; whitespace: wrap; text-overflow: clip;*/ } .droppable-hover { background-color: @info; color: @info-color; padding: 6px; border: 1px solid @info-border; border-radius: 4px; /*overflow: visible; whitespace: wrap; text-overflow: clip;*/ } .disabled { color: @grey; } a.disabled:hover { color: @grey; cursor: not-allowed; } a.btn-disabled:hover { cursor: not-allowed; } .parse-selection { display: inline-block; margin: 5px 0 8px 0; font-size: 12px; line-height: normal; } .parse-selection input { margin-left: 5px; } .parse-select .parse-label { margin-left: 3px; } .slider { display: inline-block; width: 100px; margin: 0 10px; vertical-align: middle; } /* Sort link styles */ .list-header:hover { cursor: pointer; } .list-header i { margin-left: 10px; } .list-header .icon-sort { color: #ccc; } .list-header .icon-sort-down, .list-header .icon-sort-up { color: @black; } /* job_events syles */ #jobevents_table .actions i { padding-top: 0; margin-right: 0; } tr td button i { padding-top: 0; margin-right: 0; } .event-form { margin-top: 10px; margin-bottom: 5px; label { font-weight: normal; } } .event-detail-host { padding-top: 10px; padding-bottom: 5px; } .form-section-title { width: 100%; margin-top: 0; margin-bottom: 10px; font-weight: bold; border-bottom: 1px solid #d8d8d8; } .modal-backdrop, .modal-backdrop.fade.in { opacity: 0.6; filter: alpha(opacity=60); } .modal-body .ui-accordion .ui-accordion-content { padding: 10px; } /* overrides to TB modal */ .modal-header { padding: 15px 10px; color: #2078be; border-bottom: 1px solid #eee; -webkit-border-top-right-radius: 3px; -moz-border-top-right-radius: 3px; border-top-right-radius: 3px; -webkit-border-top-left-radius: 3px; -moz-border-top-left-radius: 3px; border-top-left-radius: 3px; } .modal { border: 1px solid @black; } .close { color: @grey; opacity: .7; filter: alpha(opacity=70); } .modal-header h3 { margin: 0; font-size: 22px; font-weight: bold; text-rendering: optimizeLegibility; } .modal-body { padding-top: 30px; } #prompt-modal .modal-body { padding-bottom: 30px; } .skinny-modal .modal-body { padding: 5px 10px 0 10px; } /* form navigation */ .navigation-buttons { height: 40px; } /* PW progress bar */ .pw-progress { margin-top: 10px; li { line-height: normal; margin-bottom: 10px; } ul:last-child { margin-top: 10px; } } /* Home page */ .failed-column { a:link, a:visited { color: @red; } a:hover { color: @red-hover; } } #home #refresh-row { margin-bottom: 5px; } /* help dialog */ #help-modal { overflow: hidden; padding: 10px; text-align: center; } .help-box { text-align: center; border: 1px solid @info-border; border-radius: 6px; margin-top: 0; margin-bottom: 10px; padding: 10px; background-color: @info; color: @info-color; } .help-intro { width: 100; text-align: left; margin: 15px 0 30px 0; font-weight: normal; font-size: 16px; color: #888; } .step-no { font-weight: bold; } /* Activity Stream Widget */ #stream-container { display: none; border-radius: 8px; z-index: 20; /* has to be greater than tree selector */ .nav-path { margin-bottom: 15px; margin-top: 5px; } } #stream-content { border: 1px solid @grey; border-radius: 8px; padding: 8px; h5 { margin-top: 0; margin-bottom: 20px; } } /* .activity-btn { padding-left: 2px; padding-right: 2px; padding-bottom: 2px; img { width: 16px; height: 16px; } } */ /* ng-cloak directive */ [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { display: none !important; } /* Large desktop */ @media (min-width: 1200px) { .container, { max-width: 96%; } .delete-btn { /* Used on job and project page to make cancel and delete buttons have an equal width */ width: 60px; } .label-text { text-align: right; } } /* Portrait tablet to landscape and desktop */ @media (max-width: 1200px) { .site-footer { .logo { text-align: center; padding-top: 20px; margin-bottom: 10px; } } } @media (min-width: 768px) and (max-width: 1199px) { .list-actions button, .list-actions .checkbox-inline { margin-top: 10px; } .label-text { text-align: left; } .group-name { width: 80%; } } /* Landscape phone to portrait tablet */ @media (max-width: 767px) { /* Job events */ .level-1, .level-2, .level-3, .level-3-detail { padding-left: 0; } table { word-wrap: break-word; table-layout: fixed; } th.actions-column, td.actions { white-space: normal; } td.actions .btn { width: 75px; margin-bottom: 5px; } .list-actions button, .list-actions .checkbox-inline { margin-top: 10px; } .group-name { width: 80%; } .label-text { text-align: left; } }