/* Normalize CSS */ .content { a { font-weight: normal; color: inherit; } .text-small { color: inherit; font-size: inherit; } p a { color: @icinga-blue; text-decoration: underline; } } .controls h1 a { color: inherit; float: right; font-weight: normal; } .controls h1 form { display: inline; } .action-bar a { color: @icinga-blue; &:hover::before { text-decoration: none; } margin-right: 1em; } h1 a:focus { outline: none; } div.bp { margin-bottom: 4px; } .simulation div.bp { border-right: 1em solid @colorCriticalHandled; padding-right: 1em; background: white; } table.bp { /* Business process table styling starts here */ width: 100%; margin: 0; padding: 0; color: #0a0a0a; border-collapse: collapse; border-spacing: 0; box-sizing: border-box; font-size: 1em; font-weight: normal; /* Reset all paddings and margins, just to be on the safe side */ th, td { padding: 0; margin: 0; } /* Left outer margin on nested BPs */ table.bp { width: 99.6%; margin-left: .4%; margin-top: 4px; } .time-since { display: none; } } table.bp th { font-weight: bold; } /* END of font settings */ /* No focus outline on our links, look ugly */ table.bp a:focus { outline: none; } /* No link underlining */ table.bp a, table.bp a:hover { text-decoration: none; } /* White font for all hovered objects */ table.bp.hovered { color: white; > tbody > tr > td > a > .time-since { display: inline; } } table.bp.handled.hovered { color: #0a0a0a; } table.bp a { color: inherit; } /* Show a pointer when hovering th, highlighting is JS-triggered */ table.bp tr th { cursor: pointer; } /* Expand / collapse styling */ table.bp.process { position: relative; > tbody > tr:first-child > td:before { content: '\e81d'; font-family: ifont; position: absolute; font-size: 1.5em; margin-left: -0.8em; -webkit-transition: -webkit-transform 0.3s; -moz-transition: -moz-transform 0.3s; -o-transition: -o-transform 0.3s; transition: transform 0.3s; } &.collapsed { > tbody > tr:first-child > td:before { -webkit-transform:rotate(-90deg); -moz-transform:rotate(-90deg); -o-transform:rotate(-90deg); .rotate(360deg); } table.bp, th span { display: none; } } } table.bp th > a, table.bp td > a, table.bp td > span { display: block; text-decoration: none; } table.bp span.op { width: 1.5em; min-height: 1.5em; margin-top: 1em; display: block; line-height: 2em; transform: rotate(-90deg); -moz-transform: rotate(-90deg); } table.bp .icon { float: left; margin-top: 0.4em; margin-right: 0.4em; } table.bp.node { td:before { font-family: ifont; z-index: 10; font-size: 1.25em; position: absolute; margin-left: 1.25em; margin-top: 0.25em; } } table.bp.node.subtree td:before { content: '\e80e'; } table.bp.node.service td:before { content: '\e840'; } table.bp.node.host td:before { content: '\e866'; } /* Border defaults */ table.bp { border-width: 0; border-style: solid; border-color: transparent; } table.bp tr, table.bp tbody, table.bp th, table.bp td, table.bp.node td > a, table.node.missing td > span { border-width: 0; border-style: inherit; border-color: inherit; } table.bp td > a, table.node.missing td > span { line-height: 2em; padding-left: 0.5em; display: block; } table.bp.node td > a:last-child, table.node.missing td > span { padding-left: 2.5em; background-repeat: no-repeat; background-position: 0.5em 0.5em; border-left-width: 0.8em; } table.bp.node.handled td > a:last-child, table.bp.node.ok td > a:last-child, table.node.missing td > span, table.bp.node.up td > a:last-child { border-left-width: 0.3em; background-position: 1em 0.5em; padding-left: 3em; } table.bp th { border-left-width: 0.8em; width: 1.2em; } table.bp.handled > tbody > tr > th, table.bp.ok > tbody > tr > th { border-left-width: 0.3em; width: 2em; } /* Operator: upper line */ table.bp.operator > tbody > tr:first-child > * { border-top-width: 1px; border-top-style: dotted; } table.bp.operator.hovered > tbody > tr:first-child > * { border-top-style: solid; } /* Set colors based on element state */ table.bp { &.ok { border-color: @colorOk; } &.up { border-color: @colorOk; } &.warning { border-color: @colorWarning; } &.warning.handled { border-color: @colorWarningHandled; } &.critical { border-color: @colorCritical; } &.critical.handled { border-color: @colorCriticalHandled; } &.down { border-color: @colorCritical; } &.down.handled { border-color: @colorCriticalHandled; } &.unknown { border-color: @colorUnknown; } &.unknown.handled { border-color: @colorUnknownHandled; } &.unreachable { border-color: @colorUnknown; } &.unreachable.handled { border-color: @colorUnknownHandled; } &.pending { border-color: @colorPending; } &.missing { border-color: #ccc; } &.hovered { &.ok > tbody > tr > { th, td > a { background-color: @colorOk; } } &.up > tbody > tr > { th, td > a { background-color: @colorOk; } } &.warning > tbody > tr > { th, td > a { background-color: @colorWarning; } } &.warning.handled > tbody > tr { > th, > td > a { background-color: @colorWarningHandled; } } &.critical > tbody > tr > { th, td > a { background-color: @colorCritical; } } &.critical.handled > tbody > tr > { th, td > a { background-color: @colorCriticalHandled; } } &.down > tbody > tr > { th, td > a { background-color: @colorCritical; } } &.down.handled > tbody > tr > { th, td > a { background-color: @colorCriticalHandled; } } &.unknown > tbody > tr > { th, td > a { background-color: @colorUnknown; } } &.unknown.handled > tbody > tr > { th, td > a { background-color: @colorCUnknownHandled; } } &.unreachable > tbody > tr > { th, td > a { background-color: @colorUnknown; } } &.unreachable.handled > tbody > tr > { th, td > a { background-color: @colorCUnreachableHandled; } } &.pending > tbody > tr > { th, td > a { background-color: @colorPending; } } &.missing > tbody > tr > { th, td > a, td > span { background-color: #ccc; } } } } /* Reduce font size after the 3rd level... */ table.bp table.bp table.bp table.bp { font-size: 0.9em; } /* ...and keep it constant afterwards */ table.bp table.bp table.bp table.bp table.bp { font-size: 1em; } /* Transitions */ table.bp { // That's ugly, I know .transition(@val1, @val2) { transition: @val1, @val2; -moz-transition: @val1, @val2; -o-transition: @val1, @val2; -webkit-transition: @val1, @val2; } > tbody > tr > td > a:last-child, > tbody > tr > td > span, > tbody > tr > th { // Fade out .transition(color 0.5s 0.1s step-start, background-color 0.5s 0.1s ease-out ); } &.hovered > tbody > tr { > td > a:last-child, > td > span, > th { // Fade in .transition(color 0.0s 0.0s step-start, background-color 0.0s 0.0s ease-out ); } } } /** BEGIN Tiles **/ .tiles:after { content:''; display:block; clear: both; } .tiles.few { font-size: 3em; } .tiles.normal { font-size: 2em; } .tiles.many { font-size: 1.5em; } #layout.twocols, #layout.layout-minimal, .compact { .tiles.few { font-size: 1.8em; } .tiles.normal { font-size: 1.4em; } .tiles.many { font-size: 0.9em; } } .tiles > div { width: 12em; height: 6em; float: left; margin-right: 0.2em; margin-bottom: 0.2em; color: white; background: #ccc; } .tiles > div.parent::before { content: '&'; position: absolute; font-size: 1.2em; } .tiles > div.parent { width: 100%; height: 2em; } .tiles > div > a { text-decoration: none; color: inherit; vertical-align: middle; text-align: center; display: block; padding: 1em; font-weight: bold; word-wrap: break-word; width: 100%; height: 6em; box-sizing: border-box; } .tiles > div > a:hover { color: @text-color; } .badges { display: block; padding: 0.5em; .badge { border: 1px solid white; margin: 0; margin-right: 1px; } } .badge-critical, .badge-down { background: @colorCritical; } .badge-unknown, .badge-unreachable { background: @colorUnknown; } .badge-warning { background: @colorWarning; } .badge-pending { background: @colorPending; } .badge-missing { background: #ccc; } .tiles { > .critical { background: @colorCritical; } > .critical.handled { background: @colorCriticalHandled; } > .down { background: @colorCritical; } > .down.handled { background: @colorCriticalHandled; } > .unknown { background: @colorUnknown; } > .unknown.handled { background: @colorUnknownHandled; } > .unreachable { background: @colorUnknown; } > .unreachable.handled { background: @colorUnknownHandled; } > .warning { background: @colorWarning; } > .warning.handled { background: @colorWarningHandled; } > .ok { background: @colorOk; } > .pending { background: @colorPending; } > .missing { background: #ccc; } } .tiles > .addnew { background: white; a { color: @icinga-blue; border: 0.2em solid @icinga-blue; &:hover { color: white; background: @icinga-blue; } } &.with-form { width: auto; height: auto; min-width: 30em; min-height: 10em; a { display: none; } } } .tiles > .monitored-node a { font-size: 0.8em; } .tiles .missing a { pointer-events: none; cursor: default; } /** END of tiles **/ /** BEGIN breadcrumb **/ .breadcrumb { list-style: none; overflow: hidden; padding: 0; .badges { display: inline-block; padding: 0.02em 0 0.02em 0.5em; margin-top: -0.2em; .badge { font-size: 0.8em; border: 1px solid white; margin: 0; margin-right: 1px; } } } .breadcrumb { > .critical a { background: @colorCritical; } > .critical.handled a { background: @colorCriticalHandled; } > .unknown a { background: @colorUnknown; } > .unknown.handled a { background: @colorUnknownHandled; } > .warning a { background: @colorWarning; } > .warning.handled a { background: @colorWarningHandled; } > .ok a { background: @colorOk; } } .breadcrumb { > .critical a:after { border-left-color: @colorCritical; } > .critical.handled a:after { border-left-color: @colorCriticalHandled; } > .unknown a:after { border-left-color: @colorUnknown; } > .unknown.handled a:after { border-left-color: @colorUnknownHandled; } > .warning a:after { border-left-color: @colorWarning; } > .warning.handled a:after { border-left-color: @colorWarningHandled; } > .ok a:after { border-left-color: @colorOk; } } .breadcrumb:after { content:''; display:block; clear: both; } .breadcrumb li { float: left; cursor: pointer; user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; } .breadcrumb li a { color: white; margin: 0; font-size: 1.2em; text-decoration: none; padding-left: 2em; line-height: 3em; background: @icinga-blue; position: relative; display: block; float: left; &:focus { outline: none; } } .breadcrumb li a:before, .breadcrumb li a:after { content: " "; display: block; width: 0; height: 0; border-top: 1.5em solid transparent; border-bottom: 1.5em solid transparent; position: absolute; margin-top: -1.5em; top: 50%; left: 100%; } .breadcrumb li a:before { border-left: 1.4em solid white; margin-left: 1px; z-index: 1; } .breadcrumb li a:after { border-left: 1.4em solid @icinga-blue; z-index: 2; } .breadcrumb li:first-child a { padding-left: 1em; } .breadcrumb li:last-child a { padding-right: 1em; pointer-events: none; cursor: default; } .breadcrumb li a:hover, .breadcrumb li a:focus { background: @text-color; color: white; } .breadcrumb li a:hover:after, .breadcrumb li a:focus:after { border-left-color: @text-color; } /** END of breadcrumg **/ ul.error { padding: 0; list-style-type: none; background-color: @colorCritical; li { font-weight: bold; color: white; padding: 0.3em 0.8em; } li a { color: inherit; } } table.sourcecode { font-family: monospace; white-space: pre-wrap; th { vertical-align: top; padding-right: 0.5em; user-select: none; -moz-user-select: none; -o-user-select: none; -ms-user-select: none; -webkit-user-select: none; font-weight: bold; } td { vertical-align: top; } } .diff { font-family: monospace; white-space: pre-wrap; del, ins { text-decoration: none; } del { color: @colorCritical; background-color: #fdd; } ins { color: @colorOk; background-color: #dfd; } } .badges { display: block; padding: 0.5em; .badge { border: 1px solid white; margin: 0; margin-right: 1px; } }