css, stylelint: Set indentation to 2; reindent everything

This commit is contained in:
Garrett LeSage 2022-08-11 09:35:35 +02:00 committed by Martin Pitt
parent 8eb58dbbfd
commit c33285c2ca
55 changed files with 2766 additions and 2765 deletions

View File

@ -1,38 +1,39 @@
{
"extends": "stylelint-config-standard-scss",
"rules": {
"declaration-colon-newline-after": null,
"selector-list-comma-newline-after": null,
"indentation": 2,
"at-rule-empty-line-before": null,
"declaration-colon-space-before": null,
"declaration-empty-line-before": null,
"custom-property-empty-line-before": null,
"comment-empty-line-before": null,
"scss/double-slash-comment-empty-line-before": null,
"scss/dollar-variable-colon-space-after": null,
"declaration-colon-newline-after": null,
"selector-list-comma-newline-after": null,
"custom-property-pattern": null,
"declaration-block-no-duplicate-properties": null,
"declaration-block-no-redundant-longhand-properties": null,
"declaration-block-no-shorthand-property-overrides": null,
"declaration-block-single-line-max-declarations": null,
"font-family-no-duplicate-names": null,
"function-url-quotes": null,
"indentation": null,
"keyframes-name-pattern": null,
"max-line-length": null,
"no-descending-specificity": null,
"no-duplicate-selectors": null,
"scss/at-extend-no-missing-placeholder": null,
"scss/at-import-partial-extension": null,
"scss/at-mixin-pattern": null,
"scss/comment-no-empty": null,
"scss/dollar-variable-pattern": null,
"scss/double-slash-comment-whitespace-inside": null,
"scss/no-global-function-names": null,
"scss/operator-no-unspaced": null,
"selector-class-pattern": null,
"selector-id-pattern": null
"at-rule-empty-line-before": null,
"declaration-colon-space-before": null,
"declaration-empty-line-before": null,
"custom-property-empty-line-before": null,
"comment-empty-line-before": null,
"scss/double-slash-comment-empty-line-before": null,
"scss/dollar-variable-colon-space-after": null,
"custom-property-pattern": null,
"declaration-block-no-duplicate-properties": null,
"declaration-block-no-redundant-longhand-properties": null,
"declaration-block-no-shorthand-property-overrides": null,
"declaration-block-single-line-max-declarations": null,
"font-family-no-duplicate-names": null,
"function-url-quotes": null,
"keyframes-name-pattern": null,
"max-line-length": null,
"no-descending-specificity": null,
"no-duplicate-selectors": null,
"scss/at-extend-no-missing-placeholder": null,
"scss/at-import-partial-extension": null,
"scss/at-mixin-pattern": null,
"scss/comment-no-empty": null,
"scss/dollar-variable-pattern": null,
"scss/double-slash-comment-whitespace-inside": null,
"scss/no-global-function-names": null,
"scss/operator-no-unspaced": null,
"selector-class-pattern": null,
"selector-id-pattern": null
}
}

View File

@ -4,36 +4,36 @@
/* Application list */
.app-list img {
width: 32px;
height: 32px;
max-width: unset;
width: 32px;
height: 32px;
max-width: unset;
}
.app-list .progress-title {
margin-right: 10px;
margin-right: 10px;
}
.app-list .pf-c-data-list__item-action button {
min-width: 6rem;
min-width: 6rem;
}
.app-list .pf-c-data-list__item-content {
/* Vertically align application info to the center */
align-items: center;
/* Vertically align application info to the center */
align-items: center;
}
/* Application */
.application-details img {
width: 32px;
height: 32px;
width: 32px;
height: 32px;
}
.application-details .progress-title {
float: left;
margin-right: 10px;
float: left;
margin-right: 10px;
}
.app-screenshot {
margin: 10px;
margin: 10px;
}

View File

@ -20,7 +20,7 @@
@use "page";
#kdump-settings-location {
width: 100%;
width: 100%;
}
// error details

View File

@ -1,8 +1,8 @@
.pf-c-modal-box__body .scroll {
max-height: calc(75vh - 10rem);
overflow: auto;
max-height: calc(75vh - 10rem);
overflow: auto;
}
.dialog-wait-ct-spinner {
margin-left: var(--pf-global--spacer--sm);
margin-left: var(--pf-global--spacer--sm);
}

View File

@ -1,3 +1,3 @@
.pf-c-empty-state .pf-c-button.pf-m-primary.slim {
margin: 0;
margin: 0;
}

View File

@ -2,11 +2,11 @@
@use "../../node_modules/@patternfly/patternfly/utilities/BoxShadow/box-shadow.css";
.pf-c-page__main-section.ct-no-bottom-padding {
--pf-c-page__main-section--PaddingBottom: 0;
--pf-c-page__main-section--PaddingBottom: 0;
}
// <Toolbar> embedded into an <Alert>
.pf-c-toolbar.ct-alert-toolbar {
--pf-c-toolbar--BackgroundColor: transparent;
--pf-c-toolbar--PaddingBottom: 0;
--pf-c-toolbar--BackgroundColor: transparent;
--pf-c-toolbar--PaddingBottom: 0;
}

View File

@ -1,7 +1,7 @@
.alert-link.more-button {
margin-left: var(--pf-global--spacer--sm);
margin-left: var(--pf-global--spacer--sm);
}
.notification-message {
white-space: pre-wrap;
white-space: pre-wrap;
}

View File

@ -1,41 +1,41 @@
.package-list-ct {
margin: 1em 0;
padding: 0;
max-width: 110rem;
text-align: left;
box-sizing: border-box;
margin: 1em 0;
padding: 0;
max-width: 110rem;
text-align: left;
box-sizing: border-box;
}
.package-list-ct li {
text-align: left;
box-sizing: border-box;
width: 22rem;
padding: 0 1ex;
display: inline-block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
text-align: left;
box-sizing: border-box;
width: 22rem;
padding: 0 1ex;
display: inline-block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.scale-up-ct {
animation: dialogScaleUpCt 1s;
animation: dialogScaleUpCt 1s;
}
@keyframes dialogScaleUpCt {
0% {
opacity: 0;
max-height: 0;
}
0% {
opacity: 0;
max-height: 0;
}
25% {
opacity: 0;
}
25% {
opacity: 0;
}
50% {
max-height: 100vh;
}
50% {
max-height: 100vh;
}
100% {
opacity: 1;
}
100% {
opacity: 1;
}
}

View File

@ -3,23 +3,23 @@
flex-wrap: wrap;
&-actions {
order: 2;
flex-grow: 1;
padding: var(--pf-global--spacer--sm) var(--pf-global--spacer--lg) var(--pf-global--spacer--sm) var(--pf-global--spacer--md);
order: 2;
flex-grow: 1;
padding: var(--pf-global--spacer--sm) var(--pf-global--spacer--lg) var(--pf-global--spacer--sm) var(--pf-global--spacer--md);
}
&-caption {
margin-left: auto;
margin-left: auto;
}
&-tabs {
flex-grow: 1;
order: 1;
flex-grow: 1;
order: 1;
}
.pf-c-tab-content {
order: 3;
flex-basis: 100%;
order: 3;
flex-basis: 100%;
}
&-body {

View File

@ -1,11 +1,11 @@
.panel-body.empty-message {
padding: 0.5rem 1rem;
text-align: center;
padding: 0.5rem 1rem;
text-align: center;
}
.cockpit-log-panel .panel-body {
padding-left: 0;
padding-right: 0;
padding-left: 0;
padding-right: 0;
}
.cockpit-log-panel .pf-c-card__header > .pf-c-card__title {

View File

@ -1,29 +1,29 @@
.automation-script-modal pre {
max-height: 20em;
margin-bottom: 5px;
max-height: 20em;
margin-bottom: 5px;
}
.automation-script-modal span.fa {
margin-right: 5px;
margin-right: 5px;
}
.automation-script-modal i.fa {
margin-right: 2px;
margin-left: 5px;
margin-right: 2px;
margin-left: 5px;
}
.automation-script-modal textarea {
min-height: 15rem;
min-height: 15rem;
}
.automation-script-modal .ansible-docs-link > svg {
padding-right: var(--pf-global--spacer--xs);
padding-right: var(--pf-global--spacer--xs);
}
.green-icon {
color: var(--pf-global--success-color--100);
color: var(--pf-global--success-color--100);
}
.pf-c-card.modifications-table .pf-c-card__header {
justify-content: space-between;
justify-content: space-between;
}

View File

@ -1,7 +1,7 @@
.ct-password-strength-meter {
grid-gap: var(--pf-global--spacer--xs);
grid-gap: var(--pf-global--spacer--xs);
.pf-c-progress__description, .pf-c-progress__status {
display: none;
}
.pf-c-progress__description, .pf-c-progress__status {
display: none;
}
}

View File

@ -1,64 +1,64 @@
// Selected set of PF chart colors to optimize for full-spectrum and colorblindness
// using unique part of PF name and a hex color fallback
$plotColors: (
blue-300 #06c,
green-100 #bde2b9,
cyan-200 #73c5c5,
purple-100 #b2b0ea,
gold-300 #f4c145,
orange-300 #ec7a08,
red-200 #a30000,
cyan-300 #009596,
black-500 #4d5258
blue-300 #06c,
green-100 #bde2b9,
cyan-200 #73c5c5,
purple-100 #b2b0ea,
gold-300 #f4c145,
orange-300 #ec7a08,
red-200 #a30000,
cyan-300 #009596,
black-500 #4d5258
);
.ct-plot {
font-family: var(--pf-chart-global--FontFamily);
font-family: var(--pf-chart-global--FontFamily);
&-border {
stroke: var(--pf-chart-global--Fill--Color--300);
fill: transparent;
shape-rendering: crispedges;
}
&-title {
font-size: calc(var(--pf-chart-global--FontSize--md) * 1px);
}
// Placeholder string to stretch the column, set offscreen
&-widest {
fill: transparent;
}
&-axis,
&-unit {
font-size: calc(var(--pf-chart-global--FontSize--xs) * 1px);
fill: var(--pf-chart-global--Fill--Color--700);
letter-spacing: var(--pf-chart-global--letter-spacing);
}
&-lines,
&-ticks {
stroke: var(--pf-chart-global--Fill--Color--300);
shape-rendering: crispedges;
}
&-selection {
fill: tan;
stroke: black;
opacity: 0.5;
shape-rendering: crispedges;
}
&-paths {
stroke-width: var(--pf-chart-global--stroke--Width--sm);
shape-rendering: geometricprecision;
> path {
fill: var(--ct-plot-path-color);
stroke: var(--ct-plot-path-color);
}
&-border {
stroke: var(--pf-chart-global--Fill--Color--300);
fill: transparent;
shape-rendering: crispedges;
}
&-title {
font-size: calc(var(--pf-chart-global--FontSize--md) * 1px);
}
// Placeholder string to stretch the column, set offscreen
&-widest {
fill: transparent;
}
&-axis,
&-unit {
font-size: calc(var(--pf-chart-global--FontSize--xs) * 1px);
fill: var(--pf-chart-global--Fill--Color--700);
letter-spacing: var(--pf-chart-global--letter-spacing);
}
&-lines,
&-ticks {
stroke: var(--pf-chart-global--Fill--Color--300);
shape-rendering: crispedges;
}
&-selection {
fill: tan;
stroke: black;
opacity: 0.5;
shape-rendering: crispedges;
}
&-paths {
stroke-width: var(--pf-chart-global--stroke--Width--sm);
shape-rendering: geometricprecision;
> path {
fill: var(--ct-plot-path-color);
stroke: var(--ct-plot-path-color);
}
}
}
$plotColorCurrent: 0;
@ -69,17 +69,17 @@ $plotColorTotal: 0;
// Iterate through colors and set each graph area to a color
@each $plotColor, $plotColorBackup in $plotColors {
$plotColorCurrent: $plotColorCurrent + 1;
.ct-plot-paths > path:nth-last-child(#{$plotColorTotal}n + #{$plotColorCurrent}) {
--ct-plot-path-color: var(--pf-chart-color-#{$plotColor}, #{$plotColorBackup});
}
$plotColorCurrent: $plotColorCurrent + 1;
.ct-plot-paths > path:nth-last-child(#{$plotColorTotal}n + #{$plotColorCurrent}) {
--ct-plot-path-color: var(--pf-chart-color-#{$plotColor}, #{$plotColorBackup});
}
}
// Make plot colors available to the entire page
:root {
--ct-plot-color-total: #{$plotColorTotal};
--ct-plot-color-total: #{$plotColorTotal};
@for $i from 1 through $plotColorTotal {
--ct-plot-color-#{i}: #{$plotColors[$i]};
}
@for $i from 1 through $plotColorTotal {
--ct-plot-color-#{i}: #{$plotColors[$i]};
}
}

View File

@ -3,15 +3,15 @@
}
.shutdown-delay-group {
// Add spacing between rows for when the flex items wrap
row-gap: var(--pf-global--spacer--sm);
// Add spacing between rows for when the flex items wrap
row-gap: var(--pf-global--spacer--sm);
.shutdown-time-picker {
max-width: 7rem;
}
.shutdown-time-picker {
max-width: 7rem;
}
.shutdown-select-delay,
.shutdown-date-picker {
max-width: 10rem;
}
.shutdown-select-delay,
.shutdown-date-picker {
max-width: 10rem;
}
}

View File

@ -3,105 +3,105 @@
@import "@patternfly/patternfly/components/Table/table-grid.scss";
.ct-table {
&.pf-m-compact {
> thead, > tbody {
> tr:not(.pf-c-table__expandable-row) {
// We actually want the normal font size for our lists
--pf-c-table-cell--FontSize: var(--pf-global--FontSize--md);
}
}
&.pf-m-compact {
> thead, > tbody {
> tr:not(.pf-c-table__expandable-row) {
// We actually want the normal font size for our lists
--pf-c-table-cell--FontSize: var(--pf-global--FontSize--md);
}
}
}
&-header {
display: flex;
align-items: center;
flex-wrap: wrap;
> :only-child {
flex: auto;
}
}
&-heading {
// Push buttons to the right by stretching the heading
flex: auto;
// Add a bit of minimum margin to the right of the heading
margin-right: var(--pf-global--spacer--md);
// Set a minimum height of 3rem, so when buttons wrap, there's spacing
min-height: var(--pf-global--spacer--2xl);
// Make sure textual content is aligned to the center
display: flex;
align-items: center;
}
&-actions {
> * {
margin: var(--pf-global--spacer--xs) 0 var(--pf-global--spacer--xs) var(--pf-global--spacer--sm);
}
&-header {
display: flex;
align-items: center;
flex-wrap: wrap;
> :first-child {
margin-left: 0;
}
}
> :only-child {
flex: auto;
}
// https://github.com/patternfly/patternfly-react/issues/5379
&-empty {
[data-label] {
display: revert;
}
&-heading {
// Push buttons to the right by stretching the heading
flex: auto;
// Add a bit of minimum margin to the right of the heading
margin-right: var(--pf-global--spacer--md);
// Set a minimum height of 3rem, so when buttons wrap, there's spacing
min-height: var(--pf-global--spacer--2xl);
// Make sure textual content is aligned to the center
display: flex;
align-items: center;
}
&-actions {
> * {
margin: var(--pf-global--spacer--xs) 0 var(--pf-global--spacer--xs) var(--pf-global--spacer--sm);
}
> :first-child {
margin-left: 0;
}
}
// https://github.com/patternfly/patternfly-react/issues/5379
&-empty {
[data-label] {
display: revert;
}
[data-label]::before {
display: none;
}
}
// Don't wrap labels
[data-label]::before {
white-space: nowrap;
display: none;
}
}
// Fix toggle button alignment
.pf-c-table__toggle {
// Workaround: Chrome sometimes oddly expands the table,
// unless a width is set. (This affects panels the most, but not only.)
// As the width is smaller than the contents, and this is a table,
// the cell will stay at the correct width.
width: 1px;
}
// Properly align actions on the end
> tbody > tr > td:last-child > .btn-group {
display: flex;
justify-content: flex-end;
align-items: center;
}
// Use PF4 style headings
> thead th {
font-size: var(--pf-global--FontSize--sm);
font-weight: var(--pf-global--FontWeight--semi-bold);
}
// Adjust the padding for nested ct-tables in ct-tables
// FIXME: https://github.com/patternfly/patternfly/issues/4280
.ct-table {
td, th {
&:first-child {
--pf-c-table--nested--first-last-child--PaddingLeft: var(--pf-global--spacer--lg);
}
&:last-child {
--pf-c-table--nested--first-last-child--PaddingRight: var(--pf-global--spacer--lg);
}
}
// Don't wrap labels
[data-label]::before {
white-space: nowrap;
}
// Fix toggle button alignment
.pf-c-table__toggle {
// Workaround: Chrome sometimes oddly expands the table,
// unless a width is set. (This affects panels the most, but not only.)
// As the width is smaller than the contents, and this is a table,
// the cell will stay at the correct width.
width: 1px;
}
// Properly align actions on the end
> tbody > tr > td:last-child > .btn-group {
display: flex;
justify-content: flex-end;
align-items: center;
}
// Use PF4 style headings
> thead th {
font-size: var(--pf-global--FontSize--sm);
font-weight: var(--pf-global--FontWeight--semi-bold);
}
// Adjust the padding for nested ct-tables in ct-tables
// FIXME: https://github.com/patternfly/patternfly/issues/4280
.ct-table {
td, th {
&:first-child {
--pf-c-table--nested--first-last-child--PaddingLeft: var(--pf-global--spacer--lg);
}
&:last-child {
--pf-c-table--nested--first-last-child--PaddingRight: var(--pf-global--spacer--lg);
}
}
}
}
// Special handling for rows with errors
.pf-c-table tbody tr:first-child.error {
&, tbody.pf-m-expanded > & {
background-color: var(--ct-color-list-critical-bg) !important; /* keep red background when expanded */
border-top: 1px solid var(--ct-color-list-critical-border);
border-bottom: 1px solid var(--ct-color-list-critical-border);
}
&, tbody.pf-m-expanded > & {
background-color: var(--ct-color-list-critical-bg) !important; /* keep red background when expanded */
border-top: 1px solid var(--ct-color-list-critical-border);
border-bottom: 1px solid var(--ct-color-list-critical-border);
}
}

View File

@ -2,63 +2,63 @@
/* Our terminal or logs */
.console-ct {
font-family: Menlo, Monaco, Consolas, monospace;
margin-top: 0;
margin-bottom: 0;
font-size: var(--pf-global--FontSize--md);
text-align: center;
line-height: normal;
font-family: Menlo, Monaco, Consolas, monospace;
margin-top: 0;
margin-bottom: 0;
font-size: var(--pf-global--FontSize--md);
text-align: center;
line-height: normal;
}
@media (min-width: 568px) {
.console-ct {
font-size: var(--pf-global--FontSize--sm);
}
.console-ct {
font-size: var(--pf-global--FontSize--sm);
}
}
.console-ct > pre {
text-align: left;
display: block;
font-family: inherit;
font-size: inherit;
width: 48em;
height: 310px;
overflow-y: scroll;
white-space: pre-wrap;
margin: 0 auto;
text-align: left;
display: block;
font-family: inherit;
font-size: inherit;
width: 48em;
height: 310px;
overflow-y: scroll;
white-space: pre-wrap;
margin: 0 auto;
}
.console-ct > .terminal {
display: flex;
height: 100%;
/* Vertically center the terminal to split the extra space between top and bottom */
align-items: center;
/* Add a touch of space to the left */
padding-left: var(--pf-global--spacer--xs);
display: flex;
height: 100%;
/* Vertically center the terminal to split the extra space between top and bottom */
align-items: center;
/* Add a touch of space to the left */
padding-left: var(--pf-global--spacer--xs);
}
.terminal .terminal-cursor {
border: 1px solid var(--pf-global--palette--black-200);
border: 1px solid var(--pf-global--palette--black-200);
}
.terminal:focus .terminal-cursor {
border: none;
animation: blink 1s step-end infinite;
border: none;
animation: blink 1s step-end infinite;
}
@keyframes blink {
from {
color: var(--ct-color-text);
background: var(--pf-global--palette--black-200);
}
from {
color: var(--ct-color-text);
background: var(--pf-global--palette--black-200);
}
50% {
color: var(--pf-global--palette--black-200);
background: var(--ct-color-text);
}
50% {
color: var(--pf-global--palette--black-200);
background: var(--ct-color-text);
}
}
/* Ensure the console fits to its container (and doesn't attempt to go beyond the limits) */
.xterm-screen, .xterm-viewport {
width: auto !important;
width: auto !important;
}

View File

@ -1,27 +1,27 @@
.contextMenu {
position: fixed;
/* xterm accessibility tree has z-index 100 and we need to be in front of it
position: fixed;
/* xterm accessibility tree has z-index 100 and we need to be in front of it
* to be able to handle mouse events.
*/
z-index: 101;
background: white;
padding-top: 2px;
padding-bottom: 2px;
box-shadow: 0 2px 10px var(--ct-color-subtle-copy);
z-index: 101;
background: white;
padding-top: 2px;
padding-bottom: 2px;
box-shadow: 0 2px 10px var(--ct-color-subtle-copy);
}
.contextMenuOption {
padding: 5px 15px;
min-width: 220px;
font-size: 13px;
display: flex;
justify-content: space-between;
background-color: transparent;
border: none;
padding: 5px 15px;
min-width: 220px;
font-size: 13px;
display: flex;
justify-content: space-between;
background-color: transparent;
border: none;
}
.contextMenuOption:hover,
.contextMenuOption:active {
background-color: var(--ct-color-link);
color: white;
background-color: var(--ct-color-link);
color: white;
}

View File

@ -2,30 +2,30 @@
/* Rely on the margin from the Card for spacing */
.ct-card.pf-c-card .table {
margin-bottom: 0;
margin-bottom: 0;
}
// FIXME: Once PF4 provides a property for removing padding: https://github.com/patternfly/patternfly-react/issues/5606
.ct-card.pf-c-card .pf-c-card__body.contains-list {
padding-left: 0;
padding-right: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-bottom: 0;
> .pf-c-table > :last-child > tr:last-child {
border-bottom: none;
}
// Remove excess padding from compact tables toggles
// And adjust the padding to left align the toggles with the card header
> .pf-c-table {
.pf-c-table__toggle {
padding-left: 0;
> .pf-c-button {
padding-left: var(--pf-global--spacer--lg);
}
}
> .pf-c-table > :last-child > tr:last-child {
border-bottom: none;
}
// Remove excess padding from compact tables toggles
// And adjust the padding to left align the toggles with the card header
> .pf-c-table {
.pf-c-table__toggle {
padding-left: 0;
> .pf-c-button {
padding-left: var(--pf-global--spacer--lg);
}
}
}
}
.ct-card.pf-c-card .pf-c-card__title {
@ -39,25 +39,25 @@
// Remove excess top padding from top-level empty state in cards,
// as card headers already add enough space
.ct-card > .pf-c-card__body > .pf-c-empty-state {
--pf-c-empty-state__body--MarginTop: 0;
padding-top: 0;
padding-bottom: var(--pf-global--spacer--md);
--pf-c-empty-state__body--MarginTop: 0;
padding-top: 0;
padding-bottom: var(--pf-global--spacer--md);
}
.ct-cards-grid {
--ct-grid-columns: 2;
--pf-l-gallery--GridTemplateColumns: repeat(var(--ct-grid-columns), 1fr);
--ct-grid-columns: 2;
--pf-l-gallery--GridTemplateColumns: repeat(var(--ct-grid-columns), 1fr);
> .pf-c-card:not(.ct-card-info) {
// Extend all non-info cards to be full width;
// let ct-card-info fit 1 column of the grid
grid-column: 1 / -1;
}
> .pf-c-card:not(.ct-card-info) {
// Extend all non-info cards to be full width;
// let ct-card-info fit 1 column of the grid
grid-column: 1 / -1;
}
@media screen and (max-width: $pf-global--breakpoint--lg) {
// Shrink to 1 column when space is constrained
--ct-grid-columns: 1;
}
@media screen and (max-width: $pf-global--breakpoint--lg) {
// Shrink to 1 column when space is constrained
--ct-grid-columns: 1;
}
}
// Remove redundant padding from embedded toolbars (handled by header)

View File

@ -18,142 +18,142 @@
*/
.cockpit-log-panel:empty {
border: none;
border: none;
}
.cockpit-log-panel {
overflow-x: unset;
overflow-x: unset;
}
.cockpit-log-panel .panel-body {
padding: 0;
padding: 0;
}
.cockpit-log-panel .pf-c-card__body .panel-heading,
.cockpit-log-panel .panel-body .panel-heading {
border-top: 0;
background-color: var(--ct-color-bg);
font-weight: var(--pf-global--FontWeight--normal);
padding-top: var(--pf-global--spacer--sm);
padding-bottom: var(--pf-global--spacer--sm);
width: auto;
color: var(--ct-color-list-text);
display: flex;
border-top: 0;
background-color: var(--ct-color-bg);
font-weight: var(--pf-global--FontWeight--normal);
padding-top: var(--pf-global--spacer--sm);
padding-bottom: var(--pf-global--spacer--sm);
width: auto;
color: var(--ct-color-list-text);
display: flex;
}
.cockpit-log-panel .pf-c-card__body .panel-heading {
/* Align sub-heading within a PF4 card to the heading of the card */
padding-left: var(--pf-global--spacer--lg);
/* Align sub-heading within a PF4 card to the heading of the card */
padding-left: var(--pf-global--spacer--lg);
}
.cockpit-log-panel .panel-body .panel-heading:not(:first-child)::after {
content: "\a0";
display: block;
flex: auto;
background: linear-gradient(var(--ct-color-bg) 50%, var(--ct-color-border) calc(50% + 1px), var(--ct-color-bg) calc(50% + 2px));
margin: 0 0 0 0.5rem;
content: "\a0";
display: block;
flex: auto;
background: linear-gradient(var(--ct-color-bg) 50%, var(--ct-color-border) calc(50% + 1px), var(--ct-color-bg) calc(50% + 2px));
margin: 0 0 0 0.5rem;
}
.cockpit-logline {
--log-icon: 24px;
--log-time: 3rem;
--log-message: 1fr;
--log-service-min: 0;
--log-service: minmax(var(--log-service-min), max-content);
background-color: var(--ct-color-list-bg);
font-size: var(--font-small);
padding: 0.5rem 1rem;
display: grid;
grid-template-columns: var(--log-icon) var(--log-time) var(--log-message) var(--log-service);
grid-gap: var(--pf-global--spacer--sm);
align-items: baseline;
--log-icon: 24px;
--log-time: 3rem;
--log-message: 1fr;
--log-service-min: 0;
--log-service: minmax(var(--log-service-min), max-content);
background-color: var(--ct-color-list-bg);
font-size: var(--font-small);
padding: 0.5rem 1rem;
display: grid;
grid-template-columns: var(--log-icon) var(--log-time) var(--log-message) var(--log-service);
grid-gap: var(--pf-global--spacer--sm);
align-items: baseline;
}
.cockpit-log-panel .cockpit-logline:hover {
background-color: var(--ct-color-list-hover-bg);
cursor: pointer;
background-color: var(--ct-color-list-hover-bg);
cursor: pointer;
}
.cockpit-log-panel .cockpit-logline:hover .cockpit-log-message:not(.cockpit-logmsg-reboot) {
color: var(--ct-color-list-hover-text);
text-decoration: underline;
color: var(--ct-color-list-hover-text);
text-decoration: underline;
}
.cockpit-log-panel .cockpit-logline + .panel-heading {
border-top-width: 1px;
border-top-width: 1px;
}
/* Don't show headers without content */
.cockpit-log-panel .panel-heading:last-child {
display: none !important;
display: none !important;
}
.cockpit-logmsg-reboot {
font-style: italic;
font-style: italic;
}
.cockpit-log-warning {
display: flex;
align-self: center;
justify-content: center;
display: flex;
align-self: center;
justify-content: center;
}
.empty-message {
width: 100%;
color: var(--pf-global--Color--200);
display: block;
padding: 0.5rem 1rem;
text-align: center;
width: 100%;
color: var(--pf-global--Color--200);
display: block;
padding: 0.5rem 1rem;
text-align: center;
}
.cockpit-log-time,
.cockpit-log-service,
.cockpit-log-service-reduced {
color: var(--pf-global--Color--200);
color: var(--pf-global--Color--200);
}
.cockpit-log-time {
color: var(--pf-global--Color--200);
font-family: monospace;
font-size: var(--pf-global--FontSize--xs);
justify-self: end;
white-space: nowrap;
color: var(--pf-global--Color--200);
font-family: monospace;
font-size: var(--pf-global--FontSize--xs);
justify-self: end;
white-space: nowrap;
}
.cockpit-log-message,
.cockpit-log-service,
.cockpit-log-service-reduced {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
flex: auto;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
flex: auto;
}
.cockpit-log-message,
.cockpit-log-service,
.cockpit-log-service-reduced {
font-size: var(--pf-global--FontSize--sm);
font-size: var(--pf-global--FontSize--sm);
}
.cockpit-log-service-container > .pf-c-badge {
margin-left: var(--pf-global--spacer--xs);
margin-left: var(--pf-global--spacer--xs);
}
.cockpit-log-service-container {
display: flex;
align-items: baseline;
display: flex;
align-items: baseline;
}
@media screen and (max-width: 428px) {
.cockpit-logline {
/* Remove space for service */
--log-service: 0;
}
.cockpit-logline {
/* Remove space for service */
--log-service: 0;
}
.cockpit-log-service,
.cockpit-log-service-reduced,
.cockpit-log-service-container {
/* Move service under message */
grid-area: 2 / 3;
}
.cockpit-log-service,
.cockpit-log-service-reduced,
.cockpit-log-service-container {
/* Move service under message */
grid-area: 2 / 3;
}
}

View File

@ -4,32 +4,32 @@
// Therefore, we're changing the visuals here locally.
// PF4 upstream request for multi-select @ https://github.com/patternfly/patternfly/issues/4027
.ct-menu-select-widget.pf-c-menu {
// It's not really a menu, so it shouldn't have a shadow
box-shadow: none;
// It's not really a menu, so it shouldn't have a shadow
box-shadow: none;
// Divider is silly between the widgets in this context
.pf-c-divider {
display: none;
}
// Divider is silly between the widgets in this context
.pf-c-divider {
display: none;
}
.pf-c-menu__content {
// An overflow multi-select widget needs an outline
border: 1px solid var(--pf-global--BorderColor--100);
// There should be minimal space between the widgets (replacing the divider)
margin-top: var(--pf-global--spacer--sm);
}
.pf-c-menu__content {
// An overflow multi-select widget needs an outline
border: 1px solid var(--pf-global--BorderColor--100);
// There should be minimal space between the widgets (replacing the divider)
margin-top: var(--pf-global--spacer--sm);
}
// Search should not be inset when there's no border containing it
.pf-c-menu__search {
padding: 0;
}
// Search should not be inset when there's no border containing it
.pf-c-menu__search {
padding: 0;
}
// Keep the background on a selected item even when it doesn't have
// focus, allowing keyboard control to have the only background color
// when active but also keep the background color when the list loses
// focus (such as when the keyboard or mouse navigates outside,
// including initial rendering of the list.
.pf-c-menu__list:not(:focus-within) .pf-m-selected {
background-color: var(--pf-c-menu__list-item--hover--BackgroundColor);
}
// Keep the background on a selected item even when it doesn't have
// focus, allowing keyboard control to have the only background color
// when active but also keep the background color when the list loses
// focus (such as when the keyboard or mouse navigates outside,
// including initial rendering of the list.
.pf-c-menu__list:not(:focus-within) .pf-m-selected {
background-color: var(--pf-c-menu__list-item--hover--BackgroundColor);
}
}

View File

@ -22,28 +22,28 @@ h4 {
// Only apply a custom font size when a heading does NOT have a PF4 class
h1, h2, h3, h4 {
&:not([class*="pf-"]) {
font-size: var(--ct-heading-font-size);
}
&:not([class*="pf-"]) {
font-size: var(--ct-heading-font-size);
}
}
/* End of headings resize */
a {
cursor: pointer;
cursor: pointer;
}
.disabled {
pointer-events: auto;
pointer-events: auto;
}
.btn {
min-height: 26px;
min-width: 26px;
min-height: 26px;
min-width: 26px;
}
.btn.disabled, .pf-c-button.disabled {
pointer-events: auto;
pointer-events: auto;
}
.btn.disabled:hover, .pf-c-button.disabled:hover {
@ -51,36 +51,36 @@ a {
}
.btn-group {
/* Fix button groups from wrapping in narrow widths */
display: inline-flex;
/* Fix button groups from wrapping in narrow widths */
display: inline-flex;
}
a.disabled {
cursor: not-allowed !important;
text-decoration: none;
pointer-events: none;
color: #8b8d8f;
cursor: not-allowed !important;
text-decoration: none;
pointer-events: none;
color: #8b8d8f;
}
a.disabled:hover {
text-decoration: none;
text-decoration: none;
}
.highlight-ct {
background-color: var(--ct-color-link-hover-bg);
background-color: var(--ct-color-link-hover-bg);
}
.curtains-ct {
width: 100%;
width: 100%;
}
/* Animation of new items */
.ct-new-item {
animation: ctNewRow 4s ease-in;
animation: ctNewRow 4s ease-in;
}
:root {
--ct-animation-new-background: #fdf4dd;
--ct-animation-new-background: #fdf4dd;
}
/* Animation background is instantly yellow and fades out halfway through */
@ -97,65 +97,65 @@ a.disabled:hover {
/* Dialog patterns */
.dialog-wait-ct {
margin-top: 3px;
/* Right align footer idle messages after the buttons */
margin-left: auto;
margin-top: 3px;
/* Right align footer idle messages after the buttons */
margin-left: auto;
}
.dialog-wait-ct .spinner {
display: inline-block;
/* Add spacing between possible messages and the spinner */
margin-left: var(--pf-global--spacer--md);
display: inline-block;
/* Add spacing between possible messages and the spinner */
margin-left: var(--pf-global--spacer--md);
}
.dialog-wait-ct span {
vertical-align: 4px;
padding-left: 10px;
vertical-align: 4px;
padding-left: 10px;
}
:root {
/* Cockpit custom colors */
--ct-color-light-red: #f8cccc;
--ct-color-red-hat-red : #e00;
/* Cockpit custom colors */
--ct-color-light-red: #f8cccc;
--ct-color-red-hat-red : #e00;
// Blend between --pf-global--palette--black-200 and 300
--ct-global--palette--black-250: #e6e6e6;
// Blend between --pf-global--palette--black-200 and 300
--ct-global--palette--black-250: #e6e6e6;
/* Semantic colors */
--ct-color-fg: var(--pf-global--color--100);
--ct-color-bg: var(--pf-global--BackgroundColor--100);
--ct-color-text: var(--ct-color-fg);
/* Semantic colors */
--ct-color-fg: var(--pf-global--color--100);
--ct-color-bg: var(--pf-global--BackgroundColor--100);
--ct-color-text: var(--ct-color-fg);
--ct-color-link : var(--pf-global--active-color--100);
--ct-color-link-visited: var(--pf-global--active-color--100);
--ct-color-link : var(--pf-global--active-color--100);
--ct-color-link-visited: var(--pf-global--active-color--100);
--ct-color-subtle-copy: var(--pf-global--disabled-color--100);
--ct-color-subtle-copy: var(--pf-global--disabled-color--100);
// General border color (semantic shortcut, instead of specifying the color directly)
--ct-color-border: var(--pf-global--BorderColor--100);
// General border color (semantic shortcut, instead of specifying the color directly)
--ct-color-border: var(--pf-global--BorderColor--100);
// Used for highlighting link blocks (with a light background blue)
--ct-color-link-hover-bg : var(--pf-global--palette--light-blue-100);
// Used for highlighting link blocks (with a light background blue)
--ct-color-link-hover-bg : var(--pf-global--palette--light-blue-100);
/* Colors used for custom lists */
// as seen in Journal, Listing, Table widgets and pages like Machines, Updates, Services
--ct-color-list-text : var(--ct-color-text);
--ct-color-list-link : var(--ct-color-link);
--ct-color-list-bg : var(--ct-color-bg);
--ct-color-list-border : var(--ct-color-border);
--ct-color-list-hover-text : var(--ct-color-link);
--ct-color-list-hover-bg : var(--pf-global--BackgroundColor--150);
--ct-color-list-hover-border : var(--pf-global--BackgroundColor--150);
--ct-color-list-hover-icon : var(--pf-global--palette--light-blue-400);
--ct-color-list-selected-text : var(--ct-color-link);
--ct-color-list-selected-bg : var(--pf-global--BackgroundColor--150);
--ct-color-list-selected-border : var(--pf-global--BackgroundColor--150);
--ct-color-list-active-text : var(--pf-global--palette--blue-500);
--ct-color-list-active-bg : var(--ct-color-bg);
--ct-color-list-active-border : var(--ct-color-list-border);
--ct-color-list-critical-bg : var(--pf-global--palette--red-50);
--ct-color-list-critical-border : #e6bcbc; // red-500 mixed with white @ 50%
--ct-color-list-critical-alert-text: var(--pf-global--palette--red-200);
/* Colors used for custom lists */
// as seen in Journal, Listing, Table widgets and pages like Machines, Updates, Services
--ct-color-list-text : var(--ct-color-text);
--ct-color-list-link : var(--ct-color-link);
--ct-color-list-bg : var(--ct-color-bg);
--ct-color-list-border : var(--ct-color-border);
--ct-color-list-hover-text : var(--ct-color-link);
--ct-color-list-hover-bg : var(--pf-global--BackgroundColor--150);
--ct-color-list-hover-border : var(--pf-global--BackgroundColor--150);
--ct-color-list-hover-icon : var(--pf-global--palette--light-blue-400);
--ct-color-list-selected-text : var(--ct-color-link);
--ct-color-list-selected-bg : var(--pf-global--BackgroundColor--150);
--ct-color-list-selected-border : var(--pf-global--BackgroundColor--150);
--ct-color-list-active-text : var(--pf-global--palette--blue-500);
--ct-color-list-active-bg : var(--ct-color-bg);
--ct-color-list-active-border : var(--ct-color-list-border);
--ct-color-list-critical-bg : var(--pf-global--palette--red-50);
--ct-color-list-critical-border : #e6bcbc; // red-500 mixed with white @ 50%
--ct-color-list-critical-alert-text: var(--pf-global--palette--red-200);
}
[hidden] { display: none !important; }
@ -171,24 +171,24 @@ html:not(.index-page) body {
}
.ct-icon-info-circle {
color: var(--pf-global--info-color--100);
color: var(--pf-global--info-color--100);
}
.ct-icon-exclamation-triangle {
color: var(--pf-global--warning-color--100);
color: var(--pf-global--warning-color--100);
}
.ct-icon-times-circle {
color: var(--pf-global--danger-color--100);
color: var(--pf-global--danger-color--100);
}
// Action buttons in headers add extra space. Offset that with a negative margin
// to compensate, so headings are always the same height regardless of action
// buttons or not.
.pf-c-page__main-breadcrumb .pf-c-button {
--offset: calc(-1 * var(--pf-global--spacer--sm));
margin-top: var(--offset);
margin-bottom: var(--offset);
--offset: calc(-1 * var(--pf-global--spacer--sm));
margin-top: var(--offset);
margin-bottom: var(--offset);
}
// Drop side padding in mobile mode,
@ -196,8 +196,8 @@ html:not(.index-page) body {
// It's similar to adding padding={{ default: 'noPadding', sm: 'padding' }},
// except this only affects the sides, not the top and bottom.
@media screen and (max-width: $pf-global--breakpoint--sm) {
.ct-pagesection-mobile {
padding-left: 0;
padding-right: 0;
}
.ct-pagesection-mobile {
padding-left: 0;
padding-right: 0;
}
}

View File

@ -1,19 +1,19 @@
@mixin printRedHatFont(
$weightValue: 400,
$weightValue: 400,
$weightName: "Regular",
$familyName: "RedHatText",
$style: "normal",
$relative: true
) {
$filePath: "../../static/fonts" + "/" + $familyName + "-" + $weightName;
$filePath: "../../static/fonts" + "/" + $familyName + "-" + $weightName;
@font-face {
font-family: $familyName;
src: url("#{$filePath}.woff2") format("woff2");
font-style: #{$style};
font-weight: $weightValue;
text-rendering: optimizelegibility;
}
@font-face {
font-family: $familyName;
src: url("#{$filePath}.woff2") format("woff2");
font-style: #{$style};
font-weight: $weightValue;
text-rendering: optimizelegibility;
}
}
@include printRedHatFont(700, "Bold", $familyName: "RedHatDisplay");

View File

@ -6,20 +6,20 @@
/* See: https://github.com/patternfly/patternfly-design/issues/840 */
/* Helper mod to wrap pf-c-nav__tertiary */
.ct-m-nav__tertiary-wrap {
.pf-c-nav__list {
flex-wrap: wrap;
}
.pf-c-nav__list {
flex-wrap: wrap;
}
.pf-c-nav__scroll-button {
display: none;
}
.pf-c-nav__scroll-button {
display: none;
}
}
/* Helper mod to center pf-c-nav__tertiary when it wraps */
.ct-m-nav__tertiary-center {
.pf-c-nav__list {
justify-content: center;
}
.pf-c-nav__list {
justify-content: center;
}
}
/* Fix overflow issue with tabs, especially seen in small sizes, like mobile
@ -36,13 +36,13 @@ This disables the large and halfway useless overflow buttons and causes the tabs
to wrap around when there isn't enough space.
*/
.pf-c-tabs__list {
flex-wrap: wrap;
flex-wrap: wrap;
}
ul.pf-c-select__menu {
max-width: 20rem;
max-height: 20rem;
overflow-y: auto;
max-width: 20rem;
max-height: 20rem;
overflow-y: auto;
}
/* Adjust padding on form selects to resemble PF non-form selects */
@ -50,47 +50,47 @@ ul.pf-c-select__menu {
/* Upstream: https://github.com/patternfly/patternfly/issues/4387 */
/* Cockpit-Podman: https://github.com/cockpit-project/cockpit-podman/issues/755 */
select.pf-c-form-control {
--pf-c-form-control--PaddingRight: 41px;
--pf-c-form-control--PaddingLeft: 8px;
--pf-c-form-control--PaddingRight: 41px;
--pf-c-form-control--PaddingLeft: 8px;
// Firefox's select text has additional padding (4px)
@-moz-document url-prefix() {
--pf-c-form-control--PaddingRight: 37px;
--pf-c-form-control--PaddingLeft: 4px;
}
// Firefox's select text has additional padding (4px)
@-moz-document url-prefix() {
--pf-c-form-control--PaddingRight: 37px;
--pf-c-form-control--PaddingLeft: 4px;
}
}
/* All SVGs used in PF4 have some inline style to align them
* https://github.com/patternfly/patternfly-react/issues/4767
*/
svg {
vertical-align: -0.125em;
vertical-align: -0.125em;
}
// The default gap between the rows in horizontal lists is too large
.pf-c-description-list.pf-m-horizontal-on-sm,
.pf-c-description-list.pf-m-horizontal {
--pf-c-description-list--RowGap: 1rem;
--pf-c-description-list--RowGap: 1rem;
}
.pf-c-description-list {
// When using horizontal ruler inside description list it's just for the spacing - don't show it
> hr {
border-top: none;
}
// When using horizontal ruler inside description list it's just for the spacing - don't show it
> hr {
border-top: none;
}
}
.pf-c-modal-box.pf-m-align-top {
// We utilize custom footers in dialogs
// Make sure that the buttons always appear in the next line from the inline alerts
.pf-c-modal-box__footer {
flex-wrap: wrap;
gap: var(--pf-global--spacer--sm);
// We utilize custom footers in dialogs
// Make sure that the buttons always appear in the next line from the inline alerts
.pf-c-modal-box__footer {
flex-wrap: wrap;
gap: var(--pf-global--spacer--sm);
> div:not(.pf-c-button):not(.dialog-wait-ct) {
flex: 0 0 100%;
}
> div:not(.pf-c-button):not(.dialog-wait-ct) {
flex: 0 0 100%;
}
}
}
.pf-c-card {
@ -104,14 +104,14 @@ svg {
justify-content: space-between;
> .pf-c-card__actions {
flex-wrap: wrap;
row-gap: var(--pf-global--spacer--sm);
flex-wrap: wrap;
row-gap: var(--pf-global--spacer--sm);
// PF4 CardActions act up when using buttons while the title is large of font
// https://github.com/patternfly/patternfly/issues/3713
// https://github.com/patternfly/patternfly/issues/4362
margin: unset;
padding-left: unset;
// PF4 CardActions act up when using buttons while the title is large of font
// https://github.com/patternfly/patternfly/issues/3713
// https://github.com/patternfly/patternfly/issues/4362
margin: unset;
padding-left: unset;
}
}
}
@ -119,31 +119,31 @@ svg {
// Alignment of checks is incorrect and inconsistent across browsers
// Upstream issue: https://github.com/patternfly/patternfly/issues/3868
.pf-c-check > .pf-c-check__input {
// Set the height of the input widget to be the same as its label
--pf-c-check__input--Height: var(--pf-c-check__label--FontSize);
// Offset by the top half of the difference between the height and the line height
--pf-c-check__input--MarginTop: calc((var(--pf-c-check__label--LineHeight) - 1) / 2 * var(--pf-c-check__input--Height));
// PF3 sets a margin which messes with PF4, so set PF4's rule again here (Cockpit-specific mix of PF3+PF4)
margin-top: var(--pf-c-check__input--MarginTop);
// Set the height of the input widget to be the same as its label
--pf-c-check__input--Height: var(--pf-c-check__label--FontSize);
// Offset by the top half of the difference between the height and the line height
--pf-c-check__input--MarginTop: calc((var(--pf-c-check__label--LineHeight) - 1) / 2 * var(--pf-c-check__input--Height));
// PF3 sets a margin which messes with PF4, so set PF4's rule again here (Cockpit-specific mix of PF3+PF4)
margin-top: var(--pf-c-check__input--MarginTop);
}
// Alignment of checks is incorrect and inconsistent across browsers
// Upstream issue: https://github.com/patternfly/patternfly/issues/3868
.pf-c-radio > .pf-c-radio__input {
// Set the height of the input widget to be the same as its label
--pf-c-radio__input--Height: var(--pf-c-radio__label--FontSize);
// Offset by the top half of the difference between the height and the line height
--pf-c-radio__input--MarginTop: calc((var(--pf-c-radio__label--LineHeight) - 1) / 2 * var(--pf-c-radio__input--Height));
// PF3 sets a margin which messes with PF4, so set PF4's rule again here (Cockpit-specific mix of PF3+PF4)
margin-top: var(--pf-c-radio__input--MarginTop);
// Set the height of the input widget to be the same as its label
--pf-c-radio__input--Height: var(--pf-c-radio__label--FontSize);
// Offset by the top half of the difference between the height and the line height
--pf-c-radio__input--MarginTop: calc((var(--pf-c-radio__label--LineHeight) - 1) / 2 * var(--pf-c-radio__input--Height));
// PF3 sets a margin which messes with PF4, so set PF4's rule again here (Cockpit-specific mix of PF3+PF4)
margin-top: var(--pf-c-radio__input--MarginTop);
}
// Add some spacing to nested form groups - PF4 does not support these yet
// https://github.com/patternfly/patternfly-design/issues/1012
.pf-c-form__group-control {
.pf-c-form__group, .pf-c-form__section {
padding-top: var(--pf-global--spacer--md);
}
.pf-c-form__group, .pf-c-form__section {
padding-top: var(--pf-global--spacer--md);
}
}
// Alerts use elements that have fonts set in other frameworks (including PF3);
@ -151,71 +151,71 @@ svg {
// Therefore, it should inherit from the alert font set at the pf-c-alert level.
// https://github.com/patternfly/patternfly/issues/4206
.pf-c-alert__title {
font-size: inherit;
font-family: inherit;
font-size: inherit;
font-family: inherit;
}
.pf-c-toolbar {
// Make summary content use the same vertical space as the filter toggle,
// when possible.
// https://github.com/patternfly/patternfly-design/issues/1055
&.ct-compact {
@media screen and (max-width: $pf-global--breakpoint--lg - 1) {
display: flex;
flex-wrap: wrap;
// Make summary content use the same vertical space as the filter toggle,
// when possible.
// https://github.com/patternfly/patternfly-design/issues/1055
&.ct-compact {
@media screen and (max-width: $pf-global--breakpoint--lg - 1) {
display: flex;
flex-wrap: wrap;
> .pf-c-toolbar__content:first-child {
flex: auto;
}
> .pf-c-toolbar__content:first-child {
flex: auto;
}
.pf-c-toolbar__content-section {
width: auto;
}
}
.pf-c-toolbar__content-section {
width: auto;
}
}
}
}
// When there is an Alert above the Form add some spacing
.pf-c-modal-box .pf-c-alert + .pf-c-form {
padding-top: var(--pf-global--FontSize--sm);
padding-top: var(--pf-global--FontSize--sm);
}
// HACK: Not possible to specify text, so needs some hacks, see https://github.com/patternfly/patternfly-react/issues/6140
.pf-c-toolbar__toggle {
.pf-c-button.pf-m-plain {
color: var(--pf-c-button--m-link--Color);
.pf-c-button.pf-m-plain {
color: var(--pf-c-button--m-link--Color);
.pf-c-button__icon {
margin-right: var(--pf-global--spacer--sm);
}
}
.pf-c-button__icon {
margin-right: var(--pf-global--spacer--sm);
}
}
}
// Flex should use gap, not a margin hack
// https://github.com/patternfly/patternfly/issues/4523
.pf-l-flex {
gap: var(--pf-l-flex--spacer-base);
gap: var(--pf-l-flex--spacer-base);
// Negate the margin hack used by immediate flex children
// (except for nested flex, as we want to mind the gap)
> :not(.pf-l-flex) {
--pf-l-flex--spacer-base: 0;
}
// Negate the margin hack used by immediate flex children
// (except for nested flex, as we want to mind the gap)
> :not(.pf-l-flex) {
--pf-l-flex--spacer-base: 0;
}
// Undo all spacer modification adjustments
&[class*="pf-m-space-items-"] {
> * {
--pf-l-flex--spacer: 0;
}
// Undo all spacer modification adjustments
&[class*="pf-m-space-items-"] {
> * {
--pf-l-flex--spacer: 0;
}
}
// Re-add spacer modification adjustments on the flex layout widget
// (using class attribute matching for handling breakpoint -on- also)
@each $size in (none, xs, sm, md, lg, xl, 2xl, 3xl, 4xl) {
&[class*="pf-m-space-items-#{$size}"] {
--pf-l-flex--spacer-base: var(--pf-l-flex--spacer--#{$size});
}
// Re-add spacer modification adjustments on the flex layout widget
// (using class attribute matching for handling breakpoint -on- also)
@each $size in (none, xs, sm, md, lg, xl, 2xl, 3xl, 4xl) {
&[class*="pf-m-space-items-#{$size}"] {
--pf-l-flex--spacer-base: var(--pf-l-flex--spacer--#{$size});
}
}
}
// InputMenus now use the PF Panel component which mistakenly uses position:
@ -224,9 +224,9 @@ svg {
// popover panel describes.
// https://github.com/patternfly/patternfly-react/issues/7592
.pf-c-search-input__menu.pf-c-panel {
position: absolute;
width: 100%;
}
position: absolute;
width: 100%;
}
// Breadcrumb links should have the correct pointing hand cursor.
//
@ -240,5 +240,5 @@ svg {
//
// Nevertheless, Cockpit needs to be adapted for this to work as expected.
.pf-c-breadcrumb__link {
cursor: pointer;
cursor: pointer;
}

View File

@ -1,3 +1,3 @@
.ct-serverTime-time-picker {
max-width: 7rem;
max-width: 7rem;
}

View File

@ -1,45 +1,45 @@
.panel .table {
font-size: var(--pf-global--FontSize-s);
font-size: var(--pf-global--FontSize-s);
}
/* Panels don't draw borders between them */
.panel > .table > tbody:first-child td {
border-top: 1px solid rgb(221 221 221);
border-top: 1px solid rgb(221 221 221);
}
/* Table headers should not generate a double border */
.panel .table thead tr th {
border-bottom: none;
border-bottom: none;
}
/* Fix panel heading alignment & mobile layout */
.panel-heading {
align-items: center;
background: #f5f5f5;
display: flex;
flex-wrap: wrap;
/* (28px small size widget height) + (0.5rem * 2) */
min-height: calc(28px + 1rem);
padding: 0.5rem 1rem;
position: relative;
z-index: 100;
align-items: center;
background: #f5f5f5;
display: flex;
flex-wrap: wrap;
/* (28px small size widget height) + (0.5rem * 2) */
min-height: calc(28px + 1rem);
padding: 0.5rem 1rem;
position: relative;
z-index: 100;
}
.panel-title {
font: inherit;
margin: 0;
padding: 0;
font: inherit;
margin: 0;
padding: 0;
}
.panel-title > a {
color: var(--ct-color-link);
display: inline-block;
color: var(--ct-color-link);
display: inline-block;
}
.panel-title > a:hover,
.panel-title > a:focus {
color: var(--alert-info-text);
color: var(--alert-info-text);
}
/* Allow children in the title to wrap */
@ -47,63 +47,63 @@
.panel-title > a,
.panel-title > div,
.panel-title > span {
flex-shrink: 1;
word-break: break-all;
flex-shrink: 1;
word-break: break-all;
}
.panel-heading > :last-child:not(:first-child),
.panel-heading > .panel-heading-actions {
flex: auto;
text-align: right;
flex: auto;
text-align: right;
}
@media screen and (max-width: 640px) {
/* Remove _most_ of the gaps on the sides of small screens */
/* to maximize space, but still keep the boxy panel look */
.col-md-12 > .panel {
margin-left: -10px;
margin-right: -10px;
}
/* Remove _most_ of the gaps on the sides of small screens */
/* to maximize space, but still keep the boxy panel look */
.col-md-12 > .panel {
margin-left: -10px;
margin-right: -10px;
}
.panel {
/* Background fade */
--hi-color: #d1d1d1;
--hi-color2: var(--ct-global--palette--black-250);
--bg-color: var(--ct-color-bg);
--hi-width: 20px;
--hi-width3: calc(var(--hi-width) * 3);
--transparent: rgb(255 255 255 / 0%); /* WebKit needs white transparent */
max-width: 100vw;
overflow-x: auto;
position: relative;
background-image:
linear-gradient(to left, var(--bg-color) var(--hi-width), var(--transparent) var(--hi-width3)),
linear-gradient(to left, var(--hi-color) 1px, var(--transparent) 2px, var(--hi-color2) 4px, var(--bg-color) var(--hi-width)),
linear-gradient(to right, var(--bg-color) var(--hi-width), var(--transparent) var(--hi-width3)),
linear-gradient(to right, var(--hi-color) 1px, var(--transparent) 2px, var(--hi-color2) 4px, var(--bg-color) var(--hi-width));
background-attachment: local, scroll, local, scroll;
background-position: right, right, left, left;
background-repeat: no-repeat;
background-size: var(--hi-width3) 100%;
}
.panel {
/* Background fade */
--hi-color: #d1d1d1;
--hi-color2: var(--ct-global--palette--black-250);
--bg-color: var(--ct-color-bg);
--hi-width: 20px;
--hi-width3: calc(var(--hi-width) * 3);
--transparent: rgb(255 255 255 / 0%); /* WebKit needs white transparent */
max-width: 100vw;
overflow-x: auto;
position: relative;
background-image:
linear-gradient(to left, var(--bg-color) var(--hi-width), var(--transparent) var(--hi-width3)),
linear-gradient(to left, var(--hi-color) 1px, var(--transparent) 2px, var(--hi-color2) 4px, var(--bg-color) var(--hi-width)),
linear-gradient(to right, var(--bg-color) var(--hi-width), var(--transparent) var(--hi-width3)),
linear-gradient(to right, var(--hi-color) 1px, var(--transparent) 2px, var(--hi-color2) 4px, var(--bg-color) var(--hi-width));
background-attachment: local, scroll, local, scroll;
background-position: right, right, left, left;
background-repeat: no-repeat;
background-size: var(--hi-width3) 100%;
}
.panel > .panel-heading {
position: sticky;
left: 0;
top: 0;
}
.panel > .panel-heading {
position: sticky;
left: 0;
top: 0;
}
.panel .table thead th {
white-space: nowrap;
}
.panel .table thead th {
white-space: nowrap;
}
.panel .table:not(:hover):not(:focus):not(:active) {
background: transparent;
}
.panel .table:not(:hover):not(:focus):not(:active) {
background: transparent;
}
.panel .table thead:not(:hover):not(:focus):not(:active) {
background: transparent;
}
.panel .table thead:not(:hover):not(:focus):not(:active) {
background: transparent;
}
}
/*
@ -113,36 +113,36 @@
*/
.table-hover > tbody > tr > td,
.table-hover > tbody > tr > th {
cursor: pointer;
cursor: pointer;
}
.table-hover > tbody > tr:hover > td,
.table-hover > tbody > tr:hover > th {
/* PF3 uses a light blue; we have to force the override for hover colors */
background-color: var(--ct-color-list-hover-bg) !important;
color: var(--ct-color-list-hover-text) !important;
/* PF3 uses a light blue; we have to force the override for hover colors */
background-color: var(--ct-color-list-hover-bg) !important;
color: var(--ct-color-list-hover-text) !important;
}
/* Override patternfly to fit buttons and such */
.table > thead > tr > th,
.table > tbody > tr > td {
padding: 0.5rem;
vertical-align: baseline;
padding: 0.5rem;
vertical-align: baseline;
}
/* Override the heavy patternfly headers */
.table > thead {
background-image: none;
background-color: var(--ct-color-bg);
background-image: none;
background-color: var(--ct-color-bg);
}
/* Make things line up */
.table tbody tr > :first-child,
.table thead tr > :first-child {
padding-left: 1rem;
padding-left: 1rem;
}
.table tbody tr > :last-child,
.table thead tr > :last-child {
padding-right: 1rem;
padding-right: 1rem;
}

View File

@ -7,14 +7,14 @@
@import "@patternfly/patternfly/utilities/Spacing/spacing.css";
#app {
section.pf-c-page__main-breadcrumb {
padding-bottom: var(--pf-c-page__main-breadcrumb--PaddingTop);
}
section.pf-c-page__main-breadcrumb {
padding-bottom: var(--pf-c-page__main-breadcrumb--PaddingTop);
}
}
// Remove doubled-up padding on "main" sections, when two+ sections are used.
.pf-c-page__main-section + .pf-c-page__main-section {
padding-top: 0;
padding-top: 0;
}
// FIXME: More styles from ct-system-overview
@ -24,169 +24,169 @@
// the cards already have padding, align the "top 5" tables with the other content
.pf-c-table {
--pf-c-table--m-compact--cell--first-last-child--PaddingLeft: 0;
--pf-c-table--m-compact--cell--first-last-child--PaddingRight: 0;
--pf-c-table--m-compact--cell--first-last-child--PaddingLeft: 0;
--pf-c-table--m-compact--cell--first-last-child--PaddingRight: 0;
tr > * {
--pf-c-table--cell--PaddingTop: var(--pf-global--spacer--xs);
--pf-c-table--cell--PaddingBottom: var(--pf-global--spacer--xs);
}
tr > * {
--pf-c-table--cell--PaddingTop: var(--pf-global--spacer--xs);
--pf-c-table--cell--PaddingBottom: var(--pf-global--spacer--xs);
}
}
.pf-c-card {
// Make sure the cards do not get taller than 50% of the screen
// ...and when they do, they should scroll
@media screen and (orientation: landscape) {
max-height: 50vh;
overflow: auto;
// Make sure the cards do not get taller than 50% of the screen
// ...and when they do, they should scroll
@media screen and (orientation: landscape) {
max-height: 50vh;
overflow: auto;
}
&__title {
font-size: var(--pf-global--FontSize--xl);
font-weight: var(--pf-global--FontWeight--normal);
}
// Let the children get flexy
&__body {
display: flex;
flex-direction: column;
// Strip the padding from the first item,
// including table headings
> :first-child,
> :first-child > thead > tr > th {
padding-top: 0;
}
&__title {
font-size: var(--pf-global--FontSize--xl);
font-weight: var(--pf-global--FontWeight--normal);
.pf-c-table thead th:not(:first-child),
.pf-c-table tbody td:not(:first-child) {
text-align: right;
}
}
.align-baseline {
align-items: baseline;
}
.text-color-warning {
color: var(--pf-global--warning-color--200);
}
.icon-color-warning {
color: var(--pf-global--warning-color--100);
}
.text-color-critical {
color: var(--pf-global--danger-color--200);
}
.icon-color-critical {
color: var(--pf-global--danger-color--100);
}
.progress-stack {
display: grid;
padding-bottom: var(--pf-global--spacer--sm);
grid-gap: var(--pf-global--spacer--sm) var(--pf-global--spacer--md);
&:not(:first-child) {
padding-top: var(--pf-global--spacer--sm);
}
}
.progress-stack-no-space {
display: grid;
padding-bottom: var(--pf-global--spacer--sm);
grid-gap: 0;
&:not(:first-child) {
padding-top: var(--pf-global--spacer--sm);
}
// Let the children get flexy
&__body {
display: flex;
flex-direction: column;
// Strip the padding from the first item,
// including table headings
> :first-child,
> :first-child > thead > tr > th {
padding-top: 0;
}
.pf-c-table thead th:not(:first-child),
.pf-c-table tbody td:not(:first-child) {
text-align: right;
}
// avoid the "x" icon on high CPU usage
.pf-c-progress__status-icon {
display: none;
}
.align-baseline {
align-items: baseline;
// don't center the "View all CPUs" button
button {
padding-left: 0;
width: fit-content;
}
}
.text-color-warning {
color: var(--pf-global--warning-color--200);
}
// Stretch the progress stack and description list so they fill up remaining space.
// This pushes the (unflexing) tables to the bottom.
.progress-stack,
.pf-c-description-list {
flex: 1 1 0;
align-content: start;
}
.icon-color-warning {
color: var(--pf-global--warning-color--100);
}
// When progress stack and description list are used sequentially,
// give the most space to the latter of the two elements.
.progress-stack + .pf-c-description-list,
.pf-c-description-list + .progress-stack {
flex-basis: 100%;
}
.text-color-critical {
color: var(--pf-global--danger-color--200);
}
// WebKit is a little wonky with flex sizing; it needs specific instructions here
.pf-c-description-list:first-child {
flex-grow: 0;
}
.icon-color-critical {
color: var(--pf-global--danger-color--100);
}
.progress-stack {
display: grid;
padding-bottom: var(--pf-global--spacer--sm);
grid-gap: var(--pf-global--spacer--sm) var(--pf-global--spacer--md);
&:not(:first-child) {
padding-top: var(--pf-global--spacer--sm);
}
}
.progress-stack-no-space {
display: grid;
padding-bottom: var(--pf-global--spacer--sm);
grid-gap: 0;
&:not(:first-child) {
padding-top: var(--pf-global--spacer--sm);
}
// avoid the "x" icon on high CPU usage
.pf-c-progress__status-icon {
display: none;
}
// don't center the "View all CPUs" button
button {
padding-left: 0;
width: fit-content;
}
}
// Stretch the progress stack and description list so they fill up remaining space.
// This pushes the (unflexing) tables to the bottom.
.progress-stack,
.pf-c-description-list {
flex: 1 1 0;
align-content: start;
}
// When progress stack and description list are used sequentially,
// give the most space to the latter of the two elements.
.progress-stack + .pf-c-description-list,
.pf-c-description-list + .progress-stack {
flex-basis: 100%;
}
// WebKit is a little wonky with flex sizing; it needs specific instructions here
.pf-c-description-list:first-child {
flex-grow: 0;
}
.pf-c-description-list__description {
font-size: var(--pf-global--FontSize--sm);
}
.pf-c-description-list__description {
font-size: var(--pf-global--FontSize--sm);
}
}
// Shrink progress bars and their gap a little
.pf-c-progress {
grid-gap: 0;
--pf-c-progress__bar--Height: var(--pf-global--spacer--xs);
// PF4 uses end; it probably should arguably use last baseline.
// (perhaps end may work better for non-text content?)
align-items: last baseline;
grid-gap: 0;
--pf-c-progress__bar--Height: var(--pf-global--spacer--xs);
// PF4 uses end; it probably should arguably use last baseline.
// (perhaps end may work better for non-text content?)
align-items: last baseline;
+ .pf-c-progress {
// Add a tiny gap for sandwiched usage bars (as in CPU)
padding-top: 1px;
}
+ .pf-c-progress {
// Add a tiny gap for sandwiched usage bars (as in CPU)
padding-top: 1px;
}
}
// Only underline the description
.pf-c-button.pf-m-link.pf-m-inline:hover {
text-decoration: none;
text-decoration: none;
.pf-c-progress__description {
text-decoration: var(--pf-c-button--m-link--m-inline--hover--TextDecoration);
}
.pf-c-progress__description {
text-decoration: var(--pf-c-button--m-link--m-inline--hover--TextDecoration);
}
}
// Match font weight with description list terms
.pf-c-progress__description {
font-weight: var(--pf-global--FontWeight--bold);
font-weight: var(--pf-global--FontWeight--bold);
}
// Recolor text
.pf-m-link {
&, &:hover {
.pf-c-progress__measure {
color: var(--pf-global--Color--100);
&, &:hover {
.pf-c-progress__measure {
color: var(--pf-global--Color--100);
}
}
}
// default is way too wide for the cards
.pf-c-description-list {
--pf-c-description-list--m-horizontal__term--width: minmax(0, auto);
--pf-c-description-list--m-horizontal__description--width: minmax(0, auto);
--pf-c-description-list--m-horizontal__term--width: minmax(0, auto);
--pf-c-description-list--m-horizontal__description--width: minmax(0, auto);
}
// Don't wrap network in / out data
td[data-label="In"],
td[data-label="Out"] {
white-space: nowrap;
white-space: nowrap;
}
// Shrink network cards and data a little more
@ -195,43 +195,43 @@
td[data-label="In"],
td[data-label="Out"],
td[data-label="Interface"] {
font-size: var(--pf-global--FontSize--xs);
font-size: var(--pf-global--FontSize--xs);
}
// Shrink percentage column to allow for more service text
th[data-label="%"],
td[data-label="%"] {
.pf-c-table__text {
.pf-c-table__text {
--pf-c-table--cell--MinWidth: 0;
display: inline;
}
width: 2rem;
min-width: 0;
}
width: 2rem;
min-width: 0;
}
// Adjust responsive versions of lg grid tables
// (mainly for the network table, as it is more information dense)
.pf-m-grid-lg.pf-c-table {
tbody:first-of-type {
border-top: none;
tbody:first-of-type {
border-top: none;
}
tbody tr:not(.pf-c-table__expandable-row) {
--pf-c-table-tr--responsive--PaddingTop: var(--pf-global--spacer--sm);
--pf-c-table-tr--responsive--PaddingRight: 0;
--pf-c-table-tr--responsive--PaddingBottom: var(--pf-global--spacer--sm);
--pf-c-table-tr--responsive--PaddingLeft: 0;
--pf-c-table-tr--responsive--border-width--base: 1px;
&:last-child {
border-bottom: none;
}
tbody tr:not(.pf-c-table__expandable-row) {
--pf-c-table-tr--responsive--PaddingTop: var(--pf-global--spacer--sm);
--pf-c-table-tr--responsive--PaddingRight: 0;
--pf-c-table-tr--responsive--PaddingBottom: var(--pf-global--spacer--sm);
--pf-c-table-tr--responsive--PaddingLeft: 0;
--pf-c-table-tr--responsive--border-width--base: 1px;
&:last-child {
border-bottom: none;
}
> * {
--pf-c-table--cell--responsive--PaddingTop: 0;
--pf-c-table--cell--responsive--PaddingBottom: 0;
}
> * {
--pf-c-table--cell--responsive--PaddingTop: 0;
--pf-c-table--cell--responsive--PaddingBottom: 0;
}
}
}
}
@ -247,7 +247,7 @@
// Trim down the gutter space between cards
.current-metrics.pf-l-gallery.pf-m-gutter {
grid-gap: var(--pf-global--spacer--sm);
grid-gap: var(--pf-global--spacer--sm);
}
// Shave off a few pixels from cards
@ -265,331 +265,331 @@
@media (min-width: 460px) and (max-width: 1200px) {
// Stack description lists (instead of grid)
.pf-c-description-list__group {
display: block;
display: block;
}
}
// Stretch network card and reflow items
@media (min-width: 660px) and (max-width: 860px) {
.current-metrics-network {
grid-column: 1 / -1;
.current-metrics-network {
grid-column: 1 / -1;
// Reflow interfaces horizontally, with wrapping
.pf-c-table > tbody {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
grid-gap: 0 var(--pf-global--spacer--lg);
}
// Reflow interfaces horizontally, with wrapping
.pf-c-table > tbody {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
grid-gap: 0 var(--pf-global--spacer--lg);
}
}
}
.metrics {
--column-size: 10vw;
--half-column-size: 8vw;
--data-min-height: 5px;
--column-size: 10vw;
--half-column-size: 8vw;
--data-min-height: 5px;
&-heading,
&-minute {
&-heading,
&-minute {
display: flex;
justify-content: space-between;
}
&-graphs {
display: inherit;
.metrics-data,
.metrics-label {
width: var(--half-column-size);
}
.metrics-data.have-saturation,
.metrics-label.have-saturation {
width: var(--column-size);
}
.metrics-data {
min-height: var(--data-min-height);
}
}
&-label {
margin: 0.5rem;
}
&-sublabels {
font-size: var(--pf-global--FontSize--xs);
color: rgb(0 0 0 / 70%);
display: flex;
}
&-label-graph {
text-align: right;
& .metrics-sublabels {
justify-content: flex-end;
}
}
&-label-graph.have-saturation {
text-align: center;
& .metrics-sublabels {
justify-content: space-evenly;
}
}
&-events-wrapper {
width: 100%;
}
&-events {
width: 100%;
// Remove left padding from the table toggle
.pf-c-table__toggle {
padding-left: 0;
}
.description {
display: grid;
grid-template-columns: [info] 1fr [time] 1fr;
.details {
grid-column: time;
grid-row: 1;
display: flex;
justify-content: space-between;
}
&-graphs {
display: inherit;
.metrics-data,
.metrics-label {
width: var(--half-column-size);
}
.metrics-data.have-saturation,
.metrics-label.have-saturation {
width: var(--column-size);
}
.metrics-data {
min-height: var(--data-min-height);
}
}
&-label {
margin: 0.5rem;
}
&-sublabels {
font-size: var(--pf-global--FontSize--xs);
color: rgb(0 0 0 / 70%);
display: flex;
}
&-label-graph {
text-align: right;
& .metrics-sublabels {
justify-content: flex-end;
}
}
&-label-graph.have-saturation {
text-align: center;
& .metrics-sublabels {
justify-content: space-evenly;
}
}
&-events-wrapper {
width: 100%;
}
.type {
grid-column: info;
}
}
&-events {
width: 100%;
// Make messages such as `Loading...` or `No logs found` centered
.cockpit-log-panel {
display: flex;
flex-wrap: wrap;
justify-content: center;
// Remove left padding from the table toggle
.pf-c-table__toggle {
padding-left: 0;
}
.cockpit-logline {
flex: 0 0 100%;
}
}
}
.description {
display: grid;
grid-template-columns: [info] 1fr [time] 1fr;
&-time,
&-heading {
position: relative;
width: calc(100% + var(--pf-c-page__main-section--PaddingRight) + var(--pf-c-page__main-section--PaddingLeft));
right: var(--pf-c-page__main-section--PaddingRight);
.details {
grid-column: time;
grid-row: 1;
display: flex;
justify-content: space-between;
width: 100%;
}
padding-right: var(--pf-c-page__main-section--PaddingRight);
padding-left: var(--pf-c-page__main-section--PaddingLeft);
}
.type {
grid-column: info;
}
}
&-time {
background: #eee;
// Make messages such as `Loading...` or `No logs found` centered
.cockpit-log-panel {
display: flex;
flex-wrap: wrap;
justify-content: center;
padding: 0.5rem 1rem;
margin-left: var(--pf-global--spacer--md);
}
.cockpit-logline {
flex: 0 0 100%;
}
}
&-heading {
background: #fff;
margin-bottom: 0.25rem;
box-shadow: var(--pf-global--BoxShadow--sm);
&-sticky {
position: sticky;
top: 0;
z-index: 99;
}
}
&-history {
padding: 0;
}
&-data {
display: grid;
contain: strict;
margin-left: 0.5rem;
margin-right: 0.5rem;
// Make SVG and generated before/after line position relative to metrics-data
position: relative;
// vertical ruler line for areas with data, and horizontal tick mark for utilization half
&.valid-data::before {
content: "";
position: absolute;
z-index: 1;
width: 100%;
top: 0;
bottom: 0;
border-right: 1px solid rgb(0 0 0 / 30%);
border-top: 1px solid rgb(0 0 0 / 30%);
}
&-time,
&-heading {
position: relative;
width: calc(100% + var(--pf-c-page__main-section--PaddingRight) + var(--pf-c-page__main-section--PaddingLeft));
right: var(--pf-c-page__main-section--PaddingRight);
padding-right: var(--pf-c-page__main-section--PaddingRight);
padding-left: var(--pf-c-page__main-section--PaddingLeft);
&.valid-data.have-saturation::before {
width: 50%;
}
&-time {
background: #eee;
padding: 0.5rem 1rem;
margin-left: var(--pf-global--spacer--md);
// horizontal tick mark for saturation half, for resources that have it
&.valid-data.have-saturation::after {
content: "";
position: absolute;
z-index: 1;
width: 50%;
left: 50%;
border-top: 1px solid rgb(0 0 0 / 30%);
}
&-heading {
background: #fff;
margin-bottom: 0.25rem;
box-shadow: var(--pf-global--BoxShadow--sm);
&-sticky {
position: sticky;
top: 0;
z-index: 99;
}
> svg {
fill: var(--color);
min-width: 2px;
width: 100%;
height: 100%;
// WebKit has an issue with normal positioning (height exceeds bounds), but absolute works fine
position: absolute;
top: 0;
left: 0;
}
&-history {
padding: 0;
&-cpu {
--color: plum;
}
&-data {
display: grid;
contain: strict;
margin-left: 0.5rem;
margin-right: 0.5rem;
// Make SVG and generated before/after line position relative to metrics-data
position: relative;
// vertical ruler line for areas with data, and horizontal tick mark for utilization half
&.valid-data::before {
content: "";
position: absolute;
z-index: 1;
width: 100%;
top: 0;
bottom: 0;
border-right: 1px solid rgb(0 0 0 / 30%);
border-top: 1px solid rgb(0 0 0 / 30%);
}
&.valid-data.have-saturation::before {
width: 50%;
}
// horizontal tick mark for saturation half, for resources that have it
&.valid-data.have-saturation::after {
content: "";
position: absolute;
z-index: 1;
width: 50%;
left: 50%;
border-top: 1px solid rgb(0 0 0 / 30%);
}
> svg {
fill: var(--color);
min-width: 2px;
width: 100%;
height: 100%;
// WebKit has an issue with normal positioning (height exceeds bounds), but absolute works fine
position: absolute;
top: 0;
left: 0;
}
&-cpu {
--color: plum;
}
&-memory {
--color: lightblue;
}
&-disks {
--color: lightgreen;
}
&-network {
--color: lightsalmon;
}
// compressed minutes without events are simple bars
.compressed {
display: grid;
grid-template-areas: ". utilization .";
--util-pct: calc(100% * var(--utilization));
grid-template-columns: calc(100% - var(--util-pct)) var(--util-pct);
> .saturation,
> .utilization {
background-color: var(--color);
}
> .utilization {
grid-area: utilization;
}
> .saturation {
grid-area: saturation;
opacity: 0.7;
}
}
&.have-saturation .compressed {
grid-template-areas: ". utilization saturation .";
--util-pct: calc(50% * var(--utilization));
--sat-pct: calc(50% * var(--saturation));
grid-template-columns: calc(50% - var(--util-pct)) var(--util-pct) var(--sat-pct) calc(50% - var(--sat-pct));
}
&-memory {
--color: lightblue;
}
// vertical dotted line through graph center, for areas without data
&-data::after {
content: "";
z-index: -1;
top: 0;
bottom: 0;
position: absolute;
&-disks {
--color: lightgreen;
}
&-data.empty-data::after {
position: initial;
border-right: 1px dotted rgb(0 0 0 / 30%);
&-network {
--color: lightsalmon;
}
&-data.empty-data.have-saturation::after {
position: absolute;
border-left: 1px dotted rgb(0 0 0 / 30%);
border-right: none;
left: 50%;
// compressed minutes without events are simple bars
.compressed {
display: grid;
grid-template-areas: ". utilization .";
--util-pct: calc(100% * var(--utilization));
grid-template-columns: calc(100% - var(--util-pct)) var(--util-pct);
> .saturation,
> .utilization {
background-color: var(--color);
}
> .utilization {
grid-area: utilization;
}
> .saturation {
grid-area: saturation;
opacity: 0.7;
}
}
.pf-c-card__body:first-child {
padding-top: 0;
&.have-saturation .compressed {
grid-template-areas: ". utilization saturation .";
--util-pct: calc(50% * var(--utilization));
--sat-pct: calc(50% * var(--saturation));
grid-template-columns: calc(50% - var(--util-pct)) var(--util-pct) var(--sat-pct) calc(50% - var(--sat-pct));
}
}
// vertical dotted line through graph center, for areas without data
&-data::after {
content: "";
z-index: -1;
top: 0;
bottom: 0;
position: absolute;
}
&-data.empty-data::after {
position: initial;
border-right: 1px dotted rgb(0 0 0 / 30%);
}
&-data.empty-data.have-saturation::after {
position: absolute;
border-left: 1px dotted rgb(0 0 0 / 30%);
border-right: none;
left: 50%;
}
.pf-c-card__body:first-child {
padding-top: 0;
}
}
// Graph column labels are the widest part; scale down the labels for narrow widths
@media (min-width: 800px) and (max-width: 1200px) {
.metrics-label-graph {
font-size: var(--pf-global--FontSize--s);
}
.metrics-label-graph {
font-size: var(--pf-global--FontSize--s);
}
}
@media (max-width: 800px) {
.metrics-label-graph {
font-size: var(--pf-global--FontSize--xs);
}
.metrics-label-graph {
font-size: var(--pf-global--FontSize--xs);
}
}
.bottom-panel {
display: flex;
justify-content: space-around;
padding: 1em;
display: flex;
justify-content: space-around;
padding: 1em;
}
.nodata {
margin: 1em;
margin: 1em;
}
.select-min {
width: min-content;
width: min-content;
}
#pcp-settings-modal {
.pcp-settings-modal-text {
// "Read more..." link
a {
padding-left: 1em;
white-space: nowrap;
}
.pcp-settings-modal-text {
// "Read more..." link
a {
padding-left: 1em;
white-space: nowrap;
}
}
// leave some space for the focus rings
.pf-c-switch {
margin-bottom: 10px;
}
// leave some space for the focus rings
.pf-c-switch {
margin-bottom: 10px;
}
}
.cpu-all {
--pf-l-grid--m-gutter--GridGap: var(--pf-global--spacer--xs) var(--pf-global--spacer--md);
// Mixing font families need to be aligned properly (to the baseline)
align-items: baseline;
// In monospaced text, "100%" is 4 characters
grid-template-columns: 1fr minmax(4ch, auto);
--pf-l-grid--m-gutter--GridGap: var(--pf-global--spacer--xs) var(--pf-global--spacer--md);
// Mixing font families need to be aligned properly (to the baseline)
align-items: baseline;
// In monospaced text, "100%" is 4 characters
grid-template-columns: 1fr minmax(4ch, auto);
> .pf-l-grid__item {
// Don't use PF's hardcoded 12-column grid
grid-column: auto;
}
> .pf-l-grid__item {
// Don't use PF's hardcoded 12-column grid
grid-column: auto;
}
> dd {
// TODO: Use tabular numbers instead of monospace,
// after new font usage is enabled
font-family: var(--pf-global--FontFamily--monospace);
// Aligning percentages to the right, especially when monospaced,
// makes it easier to see high percentages
text-align: right;
}
> dd {
// TODO: Use tabular numbers instead of monospace,
// after new font usage is enabled
font-family: var(--pf-global--FontFamily--monospace);
// Aligning percentages to the right, especially when monospaced,
// makes it easier to see high percentages
text-align: right;
}
}

View File

@ -6,290 +6,290 @@
#firewall,
#network-page {
.pf-c-card {
@extend .ct-card;
}
.pf-c-card {
@extend .ct-card;
}
}
#networking, #network-interface {
.pf-l-gallery {
--pf-l-gallery--GridTemplateColumns: 1fr;
}
.pf-l-gallery {
--pf-l-gallery--GridTemplateColumns: 1fr;
}
}
// General networking page overview
.network-page {
.cockpit-log-panel {
max-width: 100vw;
}
.cockpit-log-panel {
max-width: 100vw;
}
}
#network-interface {
@at-root {
#network-interface-name {
font-weight: var(--pf-c-card__title--FontWeight);
}
.network-interface-status > span {
overflow-wrap: anywhere;
}
@at-root {
#network-interface-name {
font-weight: var(--pf-c-card__title--FontWeight);
}
.network-interface-status > span {
overflow-wrap: anywhere;
}
}
}
.network-number-field {
max-width: 4em;
max-width: 4em;
}
.network-graph {
height: 180px;
height: 180px;
}
.pf-c-page__main-breadcrumb + .networking-graphs {
// Remove the top padding when following a breadcrumb
padding-top: 0;
// Remove the top padding when following a breadcrumb
padding-top: 0;
}
// Constrain widths of networking headers (on both the main page and in network-interface-members)
th {
&.networking-speed {
width: 20%;
}
&.networking-speed {
width: 20%;
}
&.networking-spacer {
width: var(--pf-global--spacer--4xl);
}
&.networking-spacer {
width: var(--pf-global--spacer--4xl);
}
&.networking-action {
width: var(--pf-global--spacer--3xl);
}
&.networking-action {
width: var(--pf-global--spacer--3xl);
}
}
.network-interface-details {
&-title {
display: grid;
grid-auto-flow: column;
grid-gap: var(--pf-global--spacer--md);
&-title {
display: grid;
grid-auto-flow: column;
grid-gap: var(--pf-global--spacer--md);
}
&-delete {
margin-right: var(--pf-global--spacer--lg);
}
// Seems to be used for the "general" checkbox
.networking-controls {
label {
font-weight: inherit;
}
&-delete {
margin-right: var(--pf-global--spacer--lg);
}
// Seems to be used for the "general" checkbox
.networking-controls {
label {
font-weight: inherit;
}
input {
margin-left: 0;
}
input {
margin-left: 0;
}
}
}
#networking-interfaces, #networking-unmanaged-interfaces {
th[data-label="Name"] button {
font-weight: var(--pf-global--FontWeight--bold);
th[data-label="Name"] button {
font-weight: var(--pf-global--FontWeight--bold);
// Preserve the same baseline as other elements, so items align
display: inline;
// Expand the link to the container, for easier clickability
width: 100%;
}
// Preserve the same baseline as other elements, so items align
display: inline;
// Expand the link to the container, for easier clickability
width: 100%;
}
}
.network-interface-members {
.pf-c-switch {
margin-right: var(--pf-global--spacer--md);
}
.pf-c-switch {
margin-right: var(--pf-global--spacer--md);
}
.pf-c-table > tbody > tr > td:last-child {
--pf-c-table--cell--Width: 10%;
text-align: right;
}
.pf-c-table > tbody > tr > td:last-child {
--pf-c-table--cell--Width: 10%;
text-align: right;
}
}
// If the button is not the first item in the DescriptionListDescription all left padding
.network-interface-settings dd .pf-c-description-list__text button:not(:first-child) {
padding-left: var(--pf-global--spacer--md);
padding-left: var(--pf-global--spacer--md);
}
#network-mtu-settings-custom {
position: relative;
top: 6px;
position: relative;
top: 6px;
}
#network-mtu-settings-input {
margin-left: 0.5em;
width: 5em;
display: inline;
margin-left: 0.5em;
width: 5em;
display: inline;
}
// Temporary curtain to hide the content as it loads
#testing-connection-curtain {
z-index: 2000;
z-index: 2000;
}
.pf-l-flex > .network-ip-settings-method {
width: 12rem;
width: 12rem;
}
#network-ip-settings-body {
.pf-c-form__label {
// Don't allow labels to wrap
white-space: nowrap;
}
.pf-c-form__label {
// Don't allow labels to wrap
white-space: nowrap;
}
.remove-button-group {
// Move 'Remove' button the the end of the row
grid-column: -1;
// Move 'Remove' button to the bottom of the line so as to align with the other form fields
display: flex;
align-items: flex-end;
}
.remove-button-group {
// Move 'Remove' button the the end of the row
grid-column: -1;
// Move 'Remove' button to the bottom of the line so as to align with the other form fields
display: flex;
align-items: flex-end;
}
}
/********** Firewall section **********/
#add-services-dialog {
.service-list {
border: 1px solid var(--pf-c-data-list--BorderTopColor);
height: 30rem;
// full height minus UI, for mobile and small desktops
max-height: calc(100vh - 20rem);
overflow-y: auto;
.service-list {
border: 1px solid var(--pf-c-data-list--BorderTopColor);
height: 30rem;
// full height minus UI, for mobile and small desktops
max-height: calc(100vh - 20rem);
overflow-y: auto;
}
.service-list-item-heading {
font-size: 1.2em;
margin: 0;
}
.service-list-item-text {
display: flex;
flex-wrap: wrap;
}
.service-ports {
opacity: 0.75;
&:first-of-type {
margin-right: 1em;
}
}
.service-list-item-heading {
font-size: 1.2em;
margin: 0;
}
.service-list-item-text {
display: flex;
flex-wrap: wrap;
}
.service-ports {
opacity: 0.75;
&:first-of-type {
margin-right: 1em;
}
}
.add-services-dialog-type {
display: flex;
}
.has-error {
animation: 300ms error-slide-down ease-in-out;
color: #c00;
padding: 0;
&:empty {
display: none;
}
.add-services-dialog-type {
display: flex;
}
.has-error {
animation: 300ms error-slide-down ease-in-out;
color: #c00;
padding: 0;
&:empty {
display: none;
}
}
}
#firewall {
height: 100%;
height: 100%;
.ct-table tbody tr:first-of-type td:nth-child(2) {
font-weight: var(--pf-global--FontWeight--bold);
}
.ct-table tbody tr:first-of-type td:nth-child(2) {
font-weight: var(--pf-global--FontWeight--bold);
}
}
@media screen and (max-width: $pf-global--breakpoint--md) {
.zone-section-heading.pf-c-card__header {
padding-left: var(--pf-global--spacer--md);
}
.zone-section-heading.pf-c-card__header {
padding-left: var(--pf-global--spacer--md);
}
}
#delete-confirmation-dialog {
.delete-confirmation-body {
display: flex;
}
.delete-confirmation-body {
display: flex;
}
}
#add-zone-dialog legend {
color: var(--ct-color-subtle-copy);
font-size: var(--pf-global--FontSize--sm);
color: var(--ct-color-subtle-copy);
font-size: var(--pf-global--FontSize--sm);
}
.add-zone-zones legend {
line-height: 3;
line-height: 3;
}
#add-zone-dialog .add-zone-zones .pf-c-radio__label {
text-transform: capitalize;
text-transform: capitalize;
}
/* Move firewalld zones higher in z-index (so lines can go behind) */
.add-zone-zones-firewalld {
input {
position: relative;
z-index: 2;
width: 16px;
height: 16px;
input {
position: relative;
z-index: 2;
width: 16px;
height: 16px;
}
> label {
/* FIXME: Add lines behind the radio buttons */
&::after {
border-bottom: 1px solid #d1d1d1;
content: "";
}
> label {
/* FIXME: Add lines behind the radio buttons */
&::after {
border-bottom: 1px solid #d1d1d1;
content: "";
}
/* Start line at the midpoint for the first radio */
&:first-of-type::after {
left: 50%;
}
/* End line at the midpoint for the last radio */
&:last-of-type::after {
right: 50%;
}
/* Start line at the midpoint for the first radio */
&:first-of-type::after {
left: 50%;
}
/* End line at the midpoint for the last radio */
&:last-of-type::after {
right: 50%;
}
}
}
/* Display labels below buttons */
.add-zone-zones-firewalld, .add-zone-zones-custom {
> label.radio {
display: inline-flex;
}
> label.radio {
display: inline-flex;
}
}
#add-zone-description-readonly {
padding: 0.5rem 0 0;
color: var(--ct-color-subtle-copy);
padding: 0.5rem 0 0;
color: var(--ct-color-subtle-copy);
}
#add-zone-services-readonly legend {
padding: 0;
line-height: 1;
padding: 0;
line-height: 1;
}
// Animation for Firewall's add service dialog,
// as a sudden transition would be (otherwise) too jarring
@keyframes error-slide-down {
0% {
line-height: 0;
height: 0;
opacity: 0;
overflow: hidden;
}
0% {
line-height: 0;
height: 0;
opacity: 0;
overflow: hidden;
}
100% {
line-height: inherit;
height: auto;
opacity: 1;
}
100% {
line-height: inherit;
height: auto;
opacity: 1;
}
}
.pf-c-dropdown__menu-item.pf-m-danger {
color: var(--pf-global--danger-color--200);
color: var(--pf-global--danger-color--200);
}
/* End Firewall specific CSS */

View File

@ -5,254 +5,254 @@
/* Style the list cards as ct-cards */
.pf-c-page__main-section .pf-c-card {
@extend .ct-card;
@extend .ct-card;
}
.pf-c-table tr:nth-child(1) {
> td, th {
--pf-c-table--cell--PaddingTop: 0.5rem;
--pf-c-table--cell--PaddingBottom: 0.5rem;
> td, th {
--pf-c-table--cell--PaddingTop: 0.5rem;
--pf-c-table--cell--PaddingBottom: 0.5rem;
padding: var(--pf-c-table--cell--PaddingTop) var(--pf-c-table--cell--PaddingRight) var(--pf-c-table--cell--PaddingBottom) var(--pf-c-table--cell--PaddingLeft);
}
padding: var(--pf-c-table--cell--PaddingTop) var(--pf-c-table--cell--PaddingRight) var(--pf-c-table--cell--PaddingBottom) var(--pf-c-table--cell--PaddingLeft);
}
}
.kpatches-labelgroup ul.pf-c-label-group__list,
.kpatches-labelgroup li.pf-c-label-group__list-item:last-child, {
margin-bottom: 0;
margin-bottom: 0;
}
.pk-updates--header {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
padding: 1.5rem 0 1rem;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
padding: 1.5rem 0 1rem;
&--actions {
> .pf-c-button,
> .btn-group {
margin: 5px 5px 0 0;
&--actions {
> .pf-c-button,
> .btn-group {
margin: 5px 5px 0 0;
&:last-child {
margin-right: 0;
}
}
&:last-child {
margin-right: 0;
}
}
}
}
@media screen and (min-width: 640px) {
.pk-updates--header--auto {
justify-content: flex-start;
}
.pk-updates--header--auto {
justify-content: flex-start;
}
}
// Make header's content bold
.pf-c-table tr:nth-child(1) td:nth-child(2) {
font-weight: var(--pf-global--FontWeight--bold);
font-weight: var(--pf-global--FontWeight--bold);
}
.ct-table tr {
.severity-icon {
margin-right: var(--pf-global--spacer--xs);
.severity-icon {
margin-right: var(--pf-global--spacer--xs);
}
td.changelog {
vertical-align: top;
* {
display: inline;
font: inherit;
background: inherit;
color: inherit;
}
td.changelog {
vertical-align: top;
* {
display: inline;
font: inherit;
background: inherit;
color: inherit;
}
&, p {
max-width: 60vw;
margin-bottom: 0; // counter-act <Markdown>
overflow: hidden;
text-overflow: ellipsis;
}
&, p {
max-width: 60vw;
margin-bottom: 0; // counter-act <Markdown>
overflow: hidden;
text-overflow: ellipsis;
}
}
th:last-child,
td.changelog:last-child {
text-align: left;
}
th:last-child,
td.changelog:last-child {
text-align: left;
}
}
.severity-critical {
color: #a30000;
color: #a30000;
}
.severity-important {
color: #ec7a08;
color: #ec7a08;
}
.severity-low {
color: var(--ct-color-subtle-copy);
color: var(--ct-color-subtle-copy);
}
div.changelog {
max-height: 20em;
overflow: auto;
white-space: pre-wrap;
max-height: 20em;
overflow: auto;
white-space: pre-wrap;
}
/* Hide changelog summaries in narrow widths */
@media screen and (max-width: 80ch) {
table.ct-table {
/* Hide changelog header (there's no class) & data */
thead th:last-child,
td.changelog {
display: none;
}
table.ct-table {
/* Hide changelog header (there's no class) & data */
thead th:last-child,
td.changelog {
display: none;
}
}
}
/* don't let the install progress bar get too wide */
.progress-main-view {
max-width: 60rem;
margin: 10ex auto 0;
max-width: 60rem;
margin: 10ex auto 0;
.pf-l-grid {
align-items: end;
}
.pf-l-grid {
align-items: end;
}
}
/* workaround font not supporting tabular numbers yet https://github.com/cockpit-project/cockpit/issues/15090 */
.pf-c-progress__status {
min-width: 3ch;
min-width: 3ch;
}
/* Add some space between the spinner and the text */
.progress-description > svg {
margin-right: var(--pf-global--spacer--sm);
margin-right: var(--pf-global--spacer--sm);
}
.flow-list-blank-slate {
margin: 0 auto;
max-width: 69rem;
text-align: center;
margin: 0 auto;
max-width: 69rem;
text-align: center;
}
.flow-list {
padding: 0;
padding: 0;
text-align: left;
box-sizing: border-box;
li {
text-align: left;
box-sizing: border-box;
li {
text-align: left;
box-sizing: border-box;
width: 22rem;
padding: 0 1ex 0 0;
display: inline-block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
width: 22rem;
padding: 0 1ex 0 0;
display: inline-block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.update-log {
text-align: center;
text-align: center;
th {
text-align: left;
padding-right: 3ex;
}
th {
text-align: left;
padding-right: 3ex;
}
td {
text-align: left;
}
td {
text-align: left;
}
}
.update-log-content {
margin: 0 10ex;
height: 13em;
overflow-y: auto;
margin: 0 10ex;
height: 13em;
overflow-y: auto;
}
table.header-buttons {
margin-bottom: 20px; /* replacement for h2's margin-bottom */
td {
vertical-align: middle;
}
margin-bottom: 20px; /* replacement for h2's margin-bottom */
td {
vertical-align: middle;
}
h2 {
margin: 0 4rem 0 0; /* vertical default ones break vertical alignment */
}
h2 {
margin: 0 4rem 0 0; /* vertical default ones break vertical alignment */
}
}
#auto-update-day {
max-width: 10rem;
max-width: 10rem;
}
#auto-update-time {
max-width: 7rem;
max-width: 7rem;
}
.auto-update-group {
// Add spacing between rows for when the flex items wrap
row-gap: var(--pf-global--spacer--sm);
// Add spacing between rows for when the flex items wrap
row-gap: var(--pf-global--spacer--sm);
}
.pk-updates .pf-c-description-list + div {
padding-top: var(--pf-global--spacer--md);
padding-top: var(--pf-global--spacer--md);
}
.restart-services-modal-body {
padding: 1em 0;
padding: 1em 0;
}
.pf-c-content ul {
list-style-type: none;
list-style-type: none;
}
.updates-history {
// Constrain time's width
.history-time {
width: 0;
white-space: nowrap;
}
// Constrain time's width
.history-time {
width: 0;
white-space: nowrap;
}
// Fix alignment of the package count's icon
.list-view-pf-additional-info-item {
align-items: baseline;
// Fix alignment of the package count's icon
.list-view-pf-additional-info-item {
align-items: baseline;
> svg {
margin-right: 1ex;
}
> svg {
margin-right: 1ex;
}
}
}
.updates-success-table {
margin-bottom: 1em;
margin-bottom: 1em;
}
.update-success-actions > button {
margin: 0.25rem 0 0.25rem 0.5rem;
margin: 0.25rem 0 0.25rem 0.5rem;
}
.update-success-table-title {
padding-left: 0.5em;
padding-left: 0.5em;
}
.cockpit-update-warning {
margin-right: 1rem;
margin-right: 1rem;
}
.cockpit-update-warning-icon {
margin-right: 0.5rem;
margin-right: 0.5rem;
}
.cockpit-update-warning-text {
color: var(--pf-global--warning-color--200);
color: var(--pf-global--warning-color--200);
}
.autoupdates-card-error {
margin-bottom: var(--pf-global--spacer--md);
margin-bottom: var(--pf-global--spacer--md);
}
.ct-info-circle {
color: var(--pf-global--info-color--100);
color: var(--pf-global--info-color--100);
}

View File

@ -1,3 +1,3 @@
.mem-graph {
height: 180px;
height: 180px;
}

View File

@ -1,5 +1,5 @@
#spawn-output {
min-width: 70ex;
min-height: 1rem;
max-height: 20rem;
min-width: 70ex;
min-height: 1rem;
max-height: 20rem;
}

View File

@ -21,47 +21,47 @@
@use "page";
#app .pf-c-card {
@extend .ct-card;
@extend .ct-card;
}
.setroubleshoot-log {
font-family: monospace;
font-family: monospace;
}
.setroubleshoot-progress-spinner {
display: inline-block;
display: inline-block;
}
.setroubleshoot-progress-message {
vertical-align: top;
vertical-align: top;
}
/* Table cells should collapse on mobile */
.ct-table.pf-c-table tbody > tr > * {
word-break: break-word;
word-break: break-word;
}
.selinux-details {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: var(--pf-global--spacer--sm) var(--pf-global--spacer--md);
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: var(--pf-global--spacer--sm) var(--pf-global--spacer--md);
> div:first-child {
width: 70%;
flex: auto;
}
> div:first-child {
width: 70%;
flex: auto;
}
+ hr {
margin-top: var(--pf-global--spacer--sm);
}
+ hr {
margin-top: var(--pf-global--spacer--sm);
}
.pf-c-expandable-section__content {
margin-top: unset;
}
.pf-c-expandable-section__content {
margin-top: unset;
}
}
.selinux-details textarea {
margin-top: var(--pf-global--spacer--xs);
resize: none;
margin-top: var(--pf-global--spacer--xs);
resize: none;
}

View File

@ -1,22 +1,22 @@
#credentials-modal {
// SSH keys don't have spaces, allow these two wrap
.pf-c-clipboard-copy__expandable-content {
word-wrap: anywhere;
}
// SSH keys don't have spaces, allow these two wrap
.pf-c-clipboard-copy__expandable-content {
word-wrap: anywhere;
}
th[data-label="Name"] {
font-weight: var(--pf-global--FontWeight--bold);
}
th[data-label="Name"] {
font-weight: var(--pf-global--FontWeight--bold);
}
td[data-label="Toggle"] {
width: 1%;
}
td[data-label="Toggle"] {
width: 1%;
}
// Remove excess padding from compact tables toggles
// And adjust the padding to left align the toggles with the card header
.pf-c-table {
.pf-c-table__toggle {
padding-left: 0;
}
// Remove excess padding from compact tables toggles
// And adjust the padding to left align the toggles with the card header
.pf-c-table {
.pf-c-table__toggle {
padding-left: 0;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -24,59 +24,59 @@
@use "nav.scss";
:root {
--ct-color-host-accent: var(--pf-global--active-color--100);
--ct-color-host-accent: var(--pf-global--active-color--100);
}
/* Hacks on top for now */
html.index-page body {
overflow: hidden;
overflow: hidden;
}
.hide-before::before {
display: none;
display: none;
}
#machine-change-auth > p {
margin-bottom: 5px;
margin-bottom: 5px;
}
// Fix fingerprint layout
.add-host-fingerprint {
margin-top: var(--pf-global--spacer--md);
margin-top: var(--pf-global--spacer--md);
td {
padding: 0;
line-height: inherit;
height: auto;
vertical-align: middle !important;
td {
padding: 0;
line-height: inherit;
height: auto;
vertical-align: middle !important;
&:first-child {
padding-right: var(--pf-global--spacer--md);
}
&:first-child {
padding-right: var(--pf-global--spacer--md);
}
}
}
.machine-key {
margin: 0;
white-space: pre-line;
padding: var(--pf-global--spacer--xs) var(--pf-global--spacer--sm);
margin: 0;
white-space: pre-line;
padding: var(--pf-global--spacer--xs) var(--pf-global--spacer--sm);
}
.login-setup-checkbox-wrapper {
// Use a flex layout to better vertically align the contents to the grid
display: flex;
// Use a flex layout to better vertically align the contents to the grid
display: flex;
}
#edit-machine-port {
width: 100px;
width: 100px;
}
#connecting {
height: 100%;
background-color: var(--ct-global--palette--black-250);
text-align: center;
padding-top: 120px;
height: 100%;
background-color: var(--ct-global--palette--black-250);
text-align: center;
padding-top: 120px;
}
/* System information */
@ -84,23 +84,23 @@ html.index-page body {
#systime-date-input,
#systime-time-hours,
#systime-time-minutes {
display: inline;
display: inline;
}
/* index page */
.display-language-modal {
/* Do not let the language menu expand to the end of the page */
.pf-c-menu__content {
max-height: 20rem;
overflow: auto;
}
/* Do not let the language menu expand to the end of the page */
.pf-c-menu__content {
max-height: 20rem;
overflow: auto;
}
}
iframe.container-frame {
display: none;
border: none;
width: 100%;
display: none;
border: none;
width: 100%;
}
// Page layout
@ -109,112 +109,112 @@ $phone: 767px;
$desktop: $phone + 1px;
.page {
--nav-width: 15rem;
display: grid;
width: 100%;
height: 100%;
--nav-width: 15rem;
display: grid;
width: 100%;
height: 100%;
// Set masthead and toolbar to transparent, so the background shows through
// (including the accent line)
// Set masthead and toolbar to transparent, so the background shows through
// (including the accent line)
.pf-c-masthead {
--pf-c-masthead--BackgroundColor: transparent;
}
.pf-c-toolbar {
--pf-c-toolbar--BackgroundColor: transparent;
}
@media (max-width: $phone) {
grid-template-areas: "main main main" "sidebar switcher header";
grid-template-rows: 1fr 4rem;
grid-template-columns: 1fr auto auto;
overflow: hidden;
.area-ct-subnav {
grid-area: main;
}
.sidebar-toggle {
grid-area: sidebar;
display: flex;
background: var(--pf-global--BackgroundColor--dark-100);
}
> .header,
> .navbar,
> .sidebar-toggle {
// Line on bottom, Base color (with subtle glow)
background: linear-gradient(
to top,
var(--ct-color-host-accent),
var(--ct-color-host-accent) 0.1875rem,
transparent 0.1875rem
),
linear-gradient(
to top,
var(--ct-color-host-accent) -1.5rem,
var(--pf-global--BackgroundColor--dark-100) 0.75rem
);
}
// Remove excess padding from masthead in mobile
.pf-c-masthead {
--pf-c-masthead--BackgroundColor: transparent;
--pf-c-masthead--inset: 0;
}
}
@media (min-width: $desktop) {
grid-template-areas: "switcher header" "sidebar main";
grid-template-rows: max-content 1fr;
grid-template-columns: minmax(min-content, var(--nav-width)) 1fr;
> .navbar {
max-width: var(--nav-width);
}
.pf-c-toolbar {
--pf-c-toolbar--BackgroundColor: transparent;
.sidebar {
grid-area: sidebar;
}
@media (max-width: $phone) {
grid-template-areas: "main main main" "sidebar switcher header";
grid-template-rows: 1fr 4rem;
grid-template-columns: 1fr auto auto;
overflow: hidden;
.area-ct-subnav {
grid-area: main;
}
.sidebar-toggle {
grid-area: sidebar;
display: flex;
background: var(--pf-global--BackgroundColor--dark-100);
}
> .header,
> .navbar,
> .sidebar-toggle {
// Line on bottom, Base color (with subtle glow)
background: linear-gradient(
to top,
var(--ct-color-host-accent),
var(--ct-color-host-accent) 0.1875rem,
transparent 0.1875rem
),
linear-gradient(
to top,
var(--ct-color-host-accent) -1.5rem,
var(--pf-global--BackgroundColor--dark-100) 0.75rem
);
}
// Remove excess padding from masthead in mobile
.pf-c-masthead {
--pf-c-masthead--inset: 0;
}
.sidebar-toggle {
grid-area: none;
display: none;
}
@media (min-width: $desktop) {
grid-template-areas: "switcher header" "sidebar main";
grid-template-rows: max-content 1fr;
grid-template-columns: minmax(min-content, var(--nav-width)) 1fr;
> .navbar {
max-width: var(--nav-width);
}
.sidebar {
grid-area: sidebar;
}
.sidebar-toggle {
grid-area: none;
display: none;
}
> .header {
// Shadow to the left, Line on top, Base color (with subtle glow)
background: linear-gradient(
to right,
var(--pf-global--BackgroundColor--dark-100) -1rem,
transparent 1rem
),
linear-gradient(
to bottom,
var(--ct-color-host-accent),
var(--ct-color-host-accent) 0.1875rem,
transparent 0.1875rem
),
linear-gradient(
to bottom,
var(--ct-color-host-accent) -1.5rem,
var(--pf-global--BackgroundColor--dark-100) 0.75rem
);
}
> .header {
// Shadow to the left, Line on top, Base color (with subtle glow)
background: linear-gradient(
to right,
var(--pf-global--BackgroundColor--dark-100) -1rem,
transparent 1rem
),
linear-gradient(
to bottom,
var(--ct-color-host-accent),
var(--ct-color-host-accent) 0.1875rem,
transparent 0.1875rem
),
linear-gradient(
to bottom,
var(--ct-color-host-accent) -1.5rem,
var(--pf-global--BackgroundColor--dark-100) 0.75rem
);
}
}
// Shrink nav for VMs @ 1024×768 (and below)
@media (max-width: 1024px) and (max-height: 768px) and (orientation: landscape) {
--nav-width: 14rem;
}
// Shrink nav for VMs @ 1024×768 (and below)
@media (max-width: 1024px) and (max-height: 768px) and (orientation: landscape) {
--nav-width: 14rem;
}
.area-ct-content {
grid-area: main;
}
.area-ct-content {
grid-area: main;
}
.header {
grid-area: header;
}
.header {
grid-area: header;
}
}
.hostkey-fingerprint {
@ -239,10 +239,10 @@ $desktop: $phone + 1px;
/* Alert fixups */
.modal-content .pf-c-alert {
text-align: left;
margin-bottom: 24px;
text-align: left;
margin-bottom: 24px;
}
.early-failure {
height: 100%;
height: 100%;
}

View File

@ -4,22 +4,22 @@
@import "global-variables";
.table-row-action {
text-align: right;
white-space: nowrap !important;
text-align: right;
white-space: nowrap !important;
}
.hidden {
display: none;
display: none;
}
@media (max-width: $pf-global--breakpoint--md - 1) {
.show-only-when-wide {
display: none !important;
}
.show-only-when-wide {
display: none !important;
}
}
@media (min-width: $pf-global--breakpoint--md) {
.show-only-when-narrow {
display: none !important;
}
.show-only-when-narrow {
display: none !important;
}
}

View File

@ -24,415 +24,415 @@
@import "@patternfly/patternfly/utilities/Text/text.scss";
#storage .pf-c-card {
@extend .ct-card;
@extend .ct-card;
}
#storage .pf-l-gallery {
--pf-l-gallery--GridTemplateColumns: 1fr;
--pf-l-gallery--GridTemplateColumns: 1fr;
}
#storage-detail .pf-c-page__main-section,
#storage-detail .pf-c-page__main-nav {
overflow: auto;
overflow: auto;
}
#storage .create-storage {
margin-bottom: 10px;
margin-bottom: 10px;
}
@media (max-width: 1560px) {
#storage .create-storage .col-lg-6 {
width: 100%;
}
#storage .create-storage .col-lg-6 {
width: 100%;
}
}
#storage .create-storage button {
margin-bottom: 5px;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
margin-bottom: 5px;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
}
#storage .storage-sidebar table {
table-layout: fixed;
table-layout: fixed;
}
#storage .ct-table th {
font-weight: var(--pf-global--FontWeight--bold);
font-weight: var(--pf-global--FontWeight--bold);
}
#storage .storage-sidebar table td {
overflow: hidden;
text-overflow: ellipsis;
vertical-align: top;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: top;
}
.dialog-select-row-table {
width: 100%;
width: 100%;
}
.dialog-select-row-table td,
.dialog-select-row-table td:first-child {
text-align: left;
padding-top: 0.75em;
padding-bottom: 0.75em;
padding-left: 0;
padding-right: 0;
vertical-align: top;
white-space: default;
color: black;
width: auto;
height: auto;
border-top: 1px solid #d1d1d1;
border-bottom: 1px solid #d1d1d1;
text-align: left;
padding-top: 0.75em;
padding-bottom: 0.75em;
padding-left: 0;
padding-right: 0;
vertical-align: top;
white-space: default;
color: black;
width: auto;
height: auto;
border-top: 1px solid #d1d1d1;
border-bottom: 1px solid #d1d1d1;
}
.dialog-select-row-table td:first-child {
padding-left: 0.75em;
border-left: 1px solid #d1d1d1;
padding-left: 0.75em;
border-left: 1px solid #d1d1d1;
}
.dialog-select-row-table td:last-child {
padding-right: 0.75em;
border-right: 1px solid #d1d1d1;
padding-right: 0.75em;
border-right: 1px solid #d1d1d1;
}
.dialog-select-row-table th {
font-weight: bold;
text-align: left;
color: var(--pf-global--palette--black-800);
padding: 0;
padding-top: 0.75em;
padding-bottom: 0.75em;
padding-left: 0;
padding-right: 0;
font-weight: bold;
text-align: left;
color: var(--pf-global--palette--black-800);
padding: 0;
padding-top: 0.75em;
padding-bottom: 0.75em;
padding-left: 0;
padding-right: 0;
}
.dialog-select-row-table th:first-child {
padding-left: 0.75em;
padding-left: 0.75em;
}
.dialog-select-row-table th:last-child {
padding-right: 0.75em;
padding-right: 0.75em;
}
td.storage-icon {
width: 48px;
width: 48px;
}
div.progress {
width: 100%;
height: var(--pf-global--FontSize-xs);
width: 100%;
height: var(--pf-global--FontSize-xs);
}
#detail-header div.progress {
min-width: 250px;
min-width: 250px;
}
#storage-detail .ct-table {
border-top: var(--pf-global--BorderWidth--sm) solid var(--pf-global--BorderColor--100);
border-top: var(--pf-global--BorderWidth--sm) solid var(--pf-global--BorderColor--100);
}
td.usage-text {
text-align: right;
text-align: right;
}
td.job-description {
width: 50%;
width: 50%;
}
td.job-status {
width: 15%;
text-align: right;
width: 15%;
text-align: right;
}
td.job-action {
text-align: right;
text-align: right;
}
.detail-jobs {
margin-top: 20px;
margin-top: 20px;
}
.storage-graph {
height: 180px;
height: 180px;
}
.content-nav-item-warning:first-child {
padding-right: var(--pf-global--spacer--sm);
padding-right: var(--pf-global--spacer--sm);
}
.content-action {
text-align: right;
white-space: nowrap !important;
text-align: right;
white-space: nowrap !important;
}
.dialog-item-tooltip {
margin-left: 5px;
padding: 0;
white-space: nowrap;
margin-left: 5px;
padding: 0;
white-space: nowrap;
}
.modal-footer-teardown {
text-align: left;
text-align: left;
}
.pf-c-modal-box__body table {
--pf-c-table--m-compact--cell--first-last-child--PaddingLeft: 0;
--pf-c-table--m-compact--cell--first-last-child--PaddingLeft: 0;
}
* + .modal-footer-teardown {
padding-top: var(--pf-global--spacer--xl);
padding-top: var(--pf-global--spacer--xl);
}
tr[class*="content-level-"] {
--multiplier: 0;
--offset: calc(var(--pf-global--spacer--lg) * var(--multiplier));
--multiplier: 0;
--offset: calc(var(--pf-global--spacer--lg) * var(--multiplier));
// Move the button over
> .pf-c-table__toggle > button {
position: relative;
left: var(--offset);
}
// Move the button over
> .pf-c-table__toggle > button {
position: relative;
left: var(--offset);
}
// Add space for the button and offset
> .pf-c-table__toggle + td {
padding-left: calc(var(--offset) + var(--pf-c-table--cell--PaddingLeft));
}
// Add space for the button and offset
> .pf-c-table__toggle + td {
padding-left: calc(var(--offset) + var(--pf-c-table--cell--PaddingLeft));
}
}
@for $i from 1 through 10 {
tr.content-level-#{$i} {
--multiplier: #{$i};
}
tr.content-level-#{$i} {
--multiplier: #{$i};
}
}
.tab-actions {
float: right;
margin-top: -15px;
float: right;
margin-top: -15px;
}
.tab-actions button {
margin-left: 0.3em;
margin-left: 0.3em;
}
a.disabled {
color: var(--pf-global--palette--light-blue-200);
text-decoration: none;
cursor: not-allowed;
color: var(--pf-global--palette--light-blue-200);
text-decoration: none;
cursor: not-allowed;
}
.tab-row-actions {
display: inline-block;
margin-left: 2em;
display: inline-block;
margin-left: 2em;
}
/* Make tooltips inside tables visible.
*/
td.storage-action {
overflow: visible !important;
overflow: visible !important;
}
.network-keys-table td {
vertical-align: baseline;
padding-right: 10px;
vertical-align: baseline;
padding-right: 10px;
}
.combobox-container .input-group {
width: 100%;
width: 100%;
}
/* Prevent long names from sticking out of dialog titles
*/
.modal-title {
word-break: break-all;
word-break: break-all;
}
.just-installed {
margin-right: 1em;
margin-right: 1em;
}
.faded {
transition: opacity 1s, visibility 1s;
opacity: 0;
visibility: hidden;
transition: opacity 1s, visibility 1s;
opacity: 0;
visibility: hidden;
}
.widest-title {
visibility: hidden;
height: 0;
visibility: hidden;
height: 0;
}
.radio-horizontal input[type="radio"] {
margin-top: 5px;
margin-top: 5px;
}
.radio-horizontal label {
margin-right: 1em;
margin-right: 1em;
}
.key-slot-panel-remaining {
margin-right: 1em;
margin-right: 1em;
}
.sigkey-heading {
color: var(--pf-global--Color--dark-100);
font-size: var(--pf-global--FontSize--sm);
margin: var(--pf-global--spacer--md) 0 0;
color: var(--pf-global--Color--dark-100);
font-size: var(--pf-global--FontSize--sm);
margin: var(--pf-global--spacer--md) 0 0;
}
.sigkey-hash {
font-family: monospace;
font-size: 140%;
font-family: monospace;
font-size: 140%;
}
.pf-c-modal-box h3 {
margin-top: 0;
line-height: 24px;
margin-top: 0;
line-height: 24px;
}
.progressive-disclosure .form-group {
padding-left: 20px;
padding-left: 20px;
}
.progressive-disclosure .form-group > :first-child {
margin-left: -20px;
margin-left: -20px;
}
.progressive-disclosure .form-group > :not(:first-child) {
margin-top: 0.5em;
animation: showRemovalDisclosure ease-in-out 200ms;
margin-top: 0.5em;
animation: showRemovalDisclosure ease-in-out 200ms;
}
@keyframes showRemovalDisclosure {
0% {
opacity: 0;
transform: scaleY(0);
transform-origin: top left;
}
0% {
opacity: 0;
transform: scaleY(0);
transform-origin: top left;
}
100% {
opacity: 1;
transform: scaleY(1);
}
100% {
opacity: 1;
transform: scaleY(1);
}
}
.pf-c-modal-box .slot-warning {
color: var(--pf-global--danger-color--200);
color: var(--pf-global--danger-color--200);
}
.pf-c-modal-box .key-source .radio-horizontal {
margin-bottom: 2ex;
margin-bottom: 2ex;
}
// This is needs to avoid showing scrollbar in dialog
.size-slider {
padding-bottom: var(--pf-global--spacer--xs);
padding-bottom: var(--pf-global--spacer--xs);
}
/* Overview side panels */
.sidepanel-row {
padding: var(--pf-global--spacer--sm) var(--pf-global--spacer--lg);
border-top: var(--pf-global--BorderWidth--sm) solid var(--pf-global--BorderColor--100);
padding: var(--pf-global--spacer--sm) var(--pf-global--spacer--lg);
border-top: var(--pf-global--BorderWidth--sm) solid var(--pf-global--BorderColor--100);
}
.sidepanel-row.pf-c-empty-state {
.pf-c-empty-state__body {
margin-top: 0;
}
.pf-c-empty-state__body {
margin-top: 0;
}
}
.sidepanel-row:not(.pf-c-empty-state):hover {
color: var(--ct-color-list-hover-text);
cursor: pointer;
color: var(--ct-color-list-hover-text);
cursor: pointer;
}
.sidepanel-row-name {
font-size: var(--pf-global--FontSize--sm);
font-size: var(--pf-global--FontSize--sm);
}
.sidepanel-row-info {
font-size: var(--pf-global--FontSize--xs);
max-width: 50ch;
font-size: var(--pf-global--FontSize--xs);
max-width: 50ch;
}
.panel-heading {
position: static;
position: static;
}
.storage_alert_action_buttons button {
margin: 0.5rem 0.2rem 0.2rem 0;
margin: 0.5rem 0.2rem 0.2rem 0;
}
// We wrap the data list row with a label to make checkboxes clickable from the whole row
// we need this HACK in order to make alignRight property take effect
.data-list-row-checkbox-label {
display: flex;
flex-wrap: wrap;
flex-grow: 1;
display: flex;
flex-wrap: wrap;
flex-grow: 1;
}
.crypto-keyslots-list {
border: none;
border: none;
}
// So that "Stored passphrase" fits
.pf-c-description-list.ct-wide-labels {
--pf-c-description-list--m-horizontal__term--width: minmax(0, 18ch);
--pf-c-description-list--m-horizontal__term--width: minmax(0, 18ch);
}
.pf-c-description-list .pf-c-progress {
max-width: 30ch;
max-width: 30ch;
}
#mounts .pf-c-progress__measure, #nfs-mounts .pf-c-progress__measure, #detail-content .pf-c-progress__measure {
min-width: 7rem;
min-width: 7rem;
}
td.ct-text-align-right {
text-align: right;
text-align: right;
}
// Hatched effect for progressbars that are parts of a group, but not the main
.ct-progress-other {
// Use the page's default background color
--bg-light: var(--pf-global--BackgroundColor--100);
// Alternate with the used color of the progress bar
--bg-dark: var(--pf-c-progress__indicator--BackgroundColor);
// Repeat a gradient with hard stops, a perfect slant, and a consistency
// with all "other" hatched backgrounds (fixed, so they repeat the same)
background: repeating-linear-gradient(
-45deg,
var(--bg-light),
var(--bg-light) 25%,
var(--bg-dark) 25%,
var(--bg-dark) 50%,
var(--bg-light) 50%
) top left fixed;
background-size: var(--pf-global--spacer--sm) var(--pf-global--spacer--sm);
// Overlay at 1/3 to mix the light and dark against the trough color
opacity: 0.333;
// Use the page's default background color
--bg-light: var(--pf-global--BackgroundColor--100);
// Alternate with the used color of the progress bar
--bg-dark: var(--pf-c-progress__indicator--BackgroundColor);
// Repeat a gradient with hard stops, a perfect slant, and a consistency
// with all "other" hatched backgrounds (fixed, so they repeat the same)
background: repeating-linear-gradient(
-45deg,
var(--bg-light),
var(--bg-light) 25%,
var(--bg-dark) 25%,
var(--bg-dark) 50%,
var(--bg-light) 50%
) top left fixed;
background-size: var(--pf-global--spacer--sm) var(--pf-global--spacer--sm);
// Overlay at 1/3 to mix the light and dark against the trough color
opacity: 0.333;
}
.ct-warning-text {
color: var(--pf-global--warning-color--200);
color: var(--pf-global--warning-color--200);
}
td button.pf-m-link {
padding: 0;
padding: 0;
}
@media (max-width: $pf-global--breakpoint--md - 1) {
.show-only-when-wide {
display: none;
}
.show-only-when-wide {
display: none;
}
}
@media (min-width: $pf-global--breakpoint--md) {
.show-only-when-narrow {
display: none;
}
.show-only-when-narrow {
display: none;
}
}

View File

@ -2,29 +2,29 @@
@use "page";
#hwinfo {
/* Style the list cards as ct-cards */
.pf-c-page__main-section .pf-c-card {
@extend .ct-card;
}
/* Style the list cards as ct-cards */
.pf-c-page__main-section .pf-c-card {
@extend .ct-card;
}
.pf-l-gallery {
--pf-l-gallery--GridTemplateColumns: 1fr;
}
.pf-l-gallery {
--pf-l-gallery--GridTemplateColumns: 1fr;
}
}
#hwinfo-system-info-list {
/* When the flex wraps make have the same gap as description list items have between them */
row-gap: 1rem;
/* When the flex wraps make have the same gap as description list items have between them */
row-gap: 1rem;
}
.nosmt-read-more-link {
display: block;
display: block;
}
.nosmt-heading {
font-weight: var(--pf-global--FontWeight--bold);
font-weight: var(--pf-global--FontWeight--bold);
}
.cpu-mitigations-dialog-info {
margin-bottom: var(--pf-global--spacer--md);
margin-bottom: var(--pf-global--spacer--md);
}

View File

@ -7,139 +7,139 @@
// https://github.com/patternfly/patternfly-react/issues/5993
.pf-c-popover.pf-m-width-auto {
--pf-c-popover--MaxWidth: min(300px, 90%);
--pf-c-popover--MaxWidth: min(300px, 90%);
}
#journal {
grid-template-rows: auto 1fr;
grid-template-rows: auto 1fr;
.cockpit-log-panel {
border: none;
}
.cockpit-log-panel {
border: none;
}
.pf-c-page__main {
// Constrain page to viewport height, so journal can overflow
max-height: 100vh;
}
.pf-c-page__main {
// Constrain page to viewport height, so journal can overflow
max-height: 100vh;
}
// Static width for the service selector as it likes to resize a lot while loading
#journal-identifier-menu ul.pf-c-select__menu {
width: 10rem;
}
// Static width for the service selector as it likes to resize a lot while loading
#journal-identifier-menu ul.pf-c-select__menu {
width: 10rem;
}
// Long names without spaces do not wrap; triggers overflow and overlaps with check icon
#journal-identifier-menu .pf-c-select__menu-item {
white-space: normal;
}
// Long names without spaces do not wrap; triggers overflow and overlaps with check icon
#journal-identifier-menu .pf-c-select__menu-item {
white-space: normal;
}
}
#log-details {
.pf-l-gallery {
--pf-l-gallery--GridTemplateColumns: 1fr;
.pf-l-gallery {
--pf-l-gallery--GridTemplateColumns: 1fr;
}
.pf-c-page__main-breadcrumb {
padding: var(--pf-global--gutter);
}
.pf-c-card__title,
.multiline {
word-break: break-all;
white-space: pre-wrap !important;
}
.multiline {
font-family: monospace, monospace;
}
.pf-l-split {
padding-bottom: var(--pf-global--gutter);
align-items: center;
}
.pf-c-description-list {
--pf-c-description-list--m-horizontal__term--width: 25ch;
}
// For abrt log details: add some gutter between the tabs and their content
.pf-c-tab-content > .pf-c-description-list {
padding-top: var(--pf-global--spacer--md);
}
.table-hide-labels {
[data-label] {
display: revert;
}
.pf-c-page__main-breadcrumb {
padding: var(--pf-global--gutter);
[data-label]::before {
display: none;
}
}
.pf-c-card__title,
.multiline {
word-break: break-all;
white-space: pre-wrap !important;
}
.multiline {
font-family: monospace, monospace;
}
.pf-l-split {
padding-bottom: var(--pf-global--gutter);
align-items: center;
}
.pf-c-description-list {
--pf-c-description-list--m-horizontal__term--width: 25ch;
}
// For abrt log details: add some gutter between the tabs and their content
.pf-c-tab-content > .pf-c-description-list {
padding-top: var(--pf-global--spacer--md);
}
.table-hide-labels {
[data-label] {
display: revert;
}
[data-label]::before {
display: none;
}
}
// Let the description list set the color, not the wrapper accordion component
.pf-c-accordion__expanded-content {
color: unset;
}
// Let the description list set the color, not the wrapper accordion component
.pf-c-accordion__expanded-content {
color: unset;
}
}
#journal-box {
flex: auto;
flex: auto;
.panel-heading {
position: sticky;
top: 0;
color: var(--pf-global--Color--300);
background-color: var(--pf-global--BackgroundColor--100);
border: none;
font-size: var(--pf-global--FontSize--md);
font-family: var(--pf-global--FontFamily--heading--sans-serif);
font-weight: var(--pf-global--FontWeight--semi-bold);
padding: var(--pf-global--spacer--lg) var(--pf-global--spacer--lg) var(--pf-global--spacer--sm);
}
.panel-heading {
position: sticky;
top: 0;
color: var(--pf-global--Color--300);
background-color: var(--pf-global--BackgroundColor--100);
border: none;
font-size: var(--pf-global--FontSize--md);
font-family: var(--pf-global--FontFamily--heading--sans-serif);
font-weight: var(--pf-global--FontWeight--semi-bold);
padding: var(--pf-global--spacer--lg) var(--pf-global--spacer--lg) var(--pf-global--spacer--sm);
}
}
/* Set min width for services in the journal view */
#journal .cockpit-logline {
--log-service-min: 8rem;
--log-service-min: 8rem;
}
#accordion-markup {
margin-bottom: 0;
margin-bottom: 0;
}
.pf-c-toolbar {
--pf-c-toolbar--BackgroundColor: var(--pf-c-page__main-section--BackgroundColor);
--pf-c-toolbar--BackgroundColor: var(--pf-c-page__main-section--BackgroundColor);
// Make toolbar stretch to all the available space and wrap up to two lines
--pf-c-toolbar--PaddingTop: 0;
--pf-c-toolbar--PaddingBottom: 0;
// Make toolbar stretch to all the available space and wrap up to two lines
--pf-c-toolbar--PaddingTop: 0;
--pf-c-toolbar--PaddingBottom: 0;
.pf-c-toolbar__group {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
.pf-c-toolbar__group {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
}
.pf-c-toolbar__group:nth-child(3) {
flex-grow: 1;
}
// Make text filter stretch to all the available space
.pf-c-toolbar__item.text-search, #journal-grep {
flex-grow: 1;
}
.text-help {
padding-left: var(--pf-global--spacer--xs);
}
// Hide filters from advanced search dropdown entries which already exist in the toolbar
#journal-grep .pf-c-panel__main-body {
.pf-c-form__group:nth-child(5), .pf-c-form__group:nth-child(6) {
display: none;
}
}
.pf-c-toolbar__group:nth-child(3) {
flex-grow: 1;
}
// Make text filter stretch to all the available space
.pf-c-toolbar__item.text-search, #journal-grep {
flex-grow: 1;
}
.text-help {
padding-left: var(--pf-global--spacer--xs);
}
// Hide filters from advanced search dropdown entries which already exist in the toolbar
#journal-grep .pf-c-panel__main-body {
.pf-c-form__group:nth-child(5), .pf-c-form__group:nth-child(6) {
display: none;
}
}
.pf-c-toolbar__expandable-content.pf-m-expanded .pf-c-divider {
display: none;
}
.pf-c-toolbar__expandable-content.pf-m-expanded .pf-c-divider {
display: none;
}
}

View File

@ -1,19 +1,19 @@
#system_information_hostname_text + span {
font: inherit;
margin-left: 0.5em;
font: inherit;
margin-left: 0.5em;
}
#systime-date-input {
width: 10em;
margin-right: 0.5em;
width: 10em;
margin-right: 0.5em;
}
#systime-time-hours,
#systime-time-minutes {
display: inline;
width: 3em;
display: inline;
width: 3em;
}
.system-configuration .pf-c-button.pf-m-link:disabled {
color: inherit;
color: inherit;
}

View File

@ -1,3 +1,3 @@
.crypto-policies-health-card-icon {
color: var(--pf-global--Color--200);
color: var(--pf-global--Color--200);
}

View File

@ -12,13 +12,13 @@
}
.spinner {
margin-left: 0;
margin-left: 0;
}
.pf-c-spinner {
// PF's spinner is 18px while the icons are 16px,
// so redefine it here to make text to the right line up
--pf-c-spinner--m-md--diameter: 16px;
// PF's spinner is 18px while the icons are 16px,
// so redefine it here to make text to the right line up
--pf-c-spinner--m-md--diameter: 16px;
}
> :not(a):last-child {

View File

@ -1,61 +1,61 @@
.insights-icon {
width: auto;
height: 1.25rem;
flex-basis: 22px;
margin-right: 0.5rem;
justify-self: center;
width: auto;
height: 1.25rem;
flex-basis: 22px;
margin-right: 0.5rem;
justify-self: center;
/* JavaScript-set numbers; default to 0 */
--critical: 0;
--important: 0;
--moderate: 0;
--low: 0;
/* Add the numbers together, making calculations easier later on */
--total: calc(var(--critical) + var(--important) + var(--moderate) + var(--low));
border-radius: 3px;
border: 1px solid var(--pf-global--BorderColor--200);
/* Use flex here (with auto below) so everything always adds up properly */
display: flex;
flex-direction: column;
width: 22px;
height: 22px;
/* Inner gap between colors and border */
padding: 1px;
/* The top border offset is provided by the border of the first block */
padding-top: 0;
/* JavaScript-set numbers; default to 0 */
--critical: 0;
--important: 0;
--moderate: 0;
--low: 0;
/* Add the numbers together, making calculations easier later on */
--total: calc(var(--critical) + var(--important) + var(--moderate) + var(--low));
border-radius: 3px;
border: 1px solid var(--pf-global--BorderColor--200);
/* Use flex here (with auto below) so everything always adds up properly */
display: flex;
flex-direction: column;
width: 22px;
height: 22px;
/* Inner gap between colors and border */
padding: 1px;
/* The top border offset is provided by the border of the first block */
padding-top: 0;
> * {
/* If there's a value, set to 1px. Otherwise, divide by 0 and it becomes invalid */
--pixel-onoff: calc(var(--severity) / var(--severity) * 1px);
/* Hit severity is mapped to the --servity variable in blocks below. */
height: calc(var(--severity) / var(--total) * 100%);
/* Make it stretchy so the math always works out. ("Fudge factor") */
flex: auto;
/* Anti-alias the edges ever-so-slightly */
border-radius: 1px;
/* If there's a value, then there's a gap at top */
margin-top: var(--pixel-onoff);
/* If there's a value, always round height up to 1px minimum */
min-height: var(--pixel-onoff);
}
> * {
/* If there's a value, set to 1px. Otherwise, divide by 0 and it becomes invalid */
--pixel-onoff: calc(var(--severity) / var(--severity) * 1px);
/* Hit severity is mapped to the --servity variable in blocks below. */
height: calc(var(--severity) / var(--total) * 100%);
/* Make it stretchy so the math always works out. ("Fudge factor") */
flex: auto;
/* Anti-alias the edges ever-so-slightly */
border-radius: 1px;
/* If there's a value, then there's a gap at top */
margin-top: var(--pixel-onoff);
/* If there's a value, always round height up to 1px minimum */
min-height: var(--pixel-onoff);
}
&-critical {
--severity: var(--critical);
background: #c9190b;
}
&-critical {
--severity: var(--critical);
background: #c9190b;
}
&-important {
--severity: var(--important);
background: #ec7a08;
}
&-important {
--severity: var(--important);
background: #ec7a08;
}
&-moderate {
--severity: var(--moderate);
background: #f0ab00;
}
&-moderate {
--severity: var(--moderate);
background: #f0ab00;
}
&-low {
--severity: var(--low);
background: #d2d2d2;
}
&-low {
--severity: var(--low);
background: #d2d2d2;
}
}

View File

@ -2,27 +2,27 @@
@import "@patternfly/patternfly/utilities/Text/text.scss";
.system-information-failed-login-warning-icon {
color: var(--pf-global--warning-color--100);
color: var(--pf-global--warning-color--100);
}
.system-information-failed-login-warning {
color: var(--pf-global--warning-color--200);
font-weight: bold;
color: var(--pf-global--warning-color--200);
font-weight: bold;
}
.system-information-failed-login-danger-icon {
color: var(--pf-global--danger-color--100);
color: var(--pf-global--danger-color--100);
}
.system-information-failed-login-danger {
color: var(--pf-global--danger-color--200);
font-weight: bold;
color: var(--pf-global--danger-color--200);
font-weight: bold;
}
.system-information-last-login-icon {
color: var(--pf-global--Color--200);
color: var(--pf-global--Color--200);
}
.ct-grey-text {
color: var(--pf-global--Color--200);
color: var(--pf-global--Color--200);
}

View File

@ -1,14 +1,14 @@
#motd {
--motd--font-size: var(--pf-global--FontSize--sm);
background-color: transparent;
border: none;
font-size: var(--motd--font-size);
// Account for the difference in font sizes, so the text lines up
margin: calc(var(--pf-c-alert__title--FontSize) - var(--motd--font-size)) 0 0;
padding: 0;
white-space: pre-wrap;
--motd--font-size: var(--pf-global--FontSize--sm);
background-color: transparent;
border: none;
font-size: var(--motd--font-size);
// Account for the difference in font sizes, so the text lines up
margin: calc(var(--pf-c-alert__title--FontSize) - var(--motd--font-size)) 0 0;
padding: 0;
white-space: pre-wrap;
}
#motd-box {
margin-bottom: 0;
margin-bottom: 0;
}

View File

@ -1,3 +1,3 @@
.shutdown-status-poweroff-icon, .reboot-status-poweroff-icon {
color: var(--pf-global--Color--200);
color: var(--pf-global--Color--200);
}

View File

@ -1,12 +1,12 @@
#system_machine_id {
overflow: visible;
white-space: normal;
// Some browsers don't support anywhere yet, so we provide break-word as a fallback
overflow-wrap: break-word;
overflow-wrap: anywhere;
// WebKit & Blink browsers don't support overflow-wrap for non-words (yet?),
// so use a nonstandard break-all in this special case
word-break: break-all;
overflow: visible;
white-space: normal;
// Some browsers don't support anywhere yet, so we provide break-word as a fallback
overflow-wrap: break-word;
overflow-wrap: anywhere;
// WebKit & Blink browsers don't support overflow-wrap for non-words (yet?),
// so use a nonstandard break-all in this special case
word-break: break-all;
}
.system-information {

View File

@ -37,13 +37,13 @@
padding-right: var(--pf-c-page__main-section--PaddingRight);
> .pf-c-alert__action {
margin-right: 0;
margin-left: var(--pf-global--spacer--md);
margin-right: 0;
margin-left: var(--pf-global--spacer--md);
}
// Align left content with the rest of the page
@media (min-width: $pf-global--breakpoint--xl) {
padding-left: var(--pf-global--spacer--lg);
padding-left: var(--pf-global--spacer--lg);
}
}
@ -111,7 +111,7 @@
p {
+ p,
+ button {
margin-top: calc(var(--pf-global--LineHeight--md) * 1rem);
margin-top: calc(var(--pf-global--LineHeight--md) * 1rem);
}
}
@ -263,5 +263,5 @@
}
.pf-c-alert .pf-c-alert__description a {
padding-left: 15px;
padding-left: 15px;
}

View File

@ -1,3 +1,3 @@
.page-status-bug-icon {
color: var(--pf-global--Color--200);
color: var(--pf-global--Color--200);
}

View File

@ -1,5 +1,5 @@
@use "../lib/ct-card.scss";
#log-details .pf-c-card {
@extend .ct-card;
@extend .ct-card;
}

View File

@ -3,19 +3,19 @@
@use "_global-variables.scss";
#service-details .pf-l-gallery {
--pf-l-gallery--GridTemplateColumns: 1fr;
--pf-l-gallery--GridTemplateColumns: 1fr;
}
#service-details .pf-c-page__main-breadcrumb {
padding: var(--pf-global--gutter);
padding: var(--pf-global--gutter);
}
#service-details .pf-c-card {
@extend .ct-card;
@extend .ct-card;
}
#service-details .pf-c-expandable-section {
margin-top: var(--pf-global--spacer--md);
margin-top: var(--pf-global--spacer--md);
}
.comma-list {
@ -34,68 +34,68 @@
}
.service-top-panel {
padding-bottom: 1.25rem;
display: flex;
align-items: baseline;
padding-bottom: 1.25rem;
display: flex;
align-items: baseline;
}
.service-top-panel > .service-name {
margin: 0 0.75rem 0 0;
margin: 0 0.75rem 0 0;
}
.service-top-panel .pf-c-switch {
vertical-align: text-bottom;
margin: 0 0 0 0.75rem;
vertical-align: text-bottom;
margin: 0 0 0 0.75rem;
}
.service-top-panel > .service-thumbtack-icon {
color: var(--pf-global--icon--Color--light);
margin: 0 0.5rem 0 0;
color: var(--pf-global--icon--Color--light);
margin: 0 0.5rem 0 0;
}
/* Make the kebab wrapper flex to parents for proper alignment */
.service-top-panel .pf-c-dropdown {
display: flex;
display: flex;
}
.action-button {
margin-left: 2rem;
margin-left: 2rem;
}
.status-icon::before {
color: inherit;
color: inherit;
}
.status-icon {
margin-right: 0.5rem;
color: var(--pf-global--icon--Color--light);
margin-right: 0.5rem;
color: var(--pf-global--icon--Color--light);
}
.status-running > .status-icon,
.status-enabled > .status-icon {
/* mid-way between PF4 success-100 & 200; then rounded to AA contrast */
color: #6da000;
/* mid-way between PF4 success-100 & 200; then rounded to AA contrast */
color: #6da000;
}
.status-failed > .status-icon,
.status-failed > .status,
.control-label.failed {
color: var(--pf-global--danger-color--200);
color: var(--pf-global--danger-color--200);
}
.side-note {
color: var(--pf-global--Color--300);
padding-left: 1em;
color: var(--pf-global--Color--300);
padding-left: 1em;
}
.font-xs {
font-size: var(--pf-global--FontSize--xs);
font-size: var(--pf-global--FontSize--xs);
}
.pf-c-dropdown__menu-item.pf-m-danger {
color: var(--pf-global--danger-color--200);
color: var(--pf-global--danger-color--200);
}
.pf-c-alert.pf-m-inline.pf-m-danger {
margin-bottom: var(--pf-global--spacer--sm);
margin-bottom: var(--pf-global--spacer--sm);
}

View File

@ -6,98 +6,98 @@
// However, the toolbar also lacks a border and is sticky, so add a bottom
// border to the toolbar to separate the toolbar and list.
.services-toolbar {
border-bottom: 1px solid var(--pf-global--BorderColor--100);
border-bottom: 1px solid var(--pf-global--BorderColor--100);
}
// Magic pixie dust to make the list a bit faster and more furious
.services-list tbody {
// Skip a lot of computations
contain: content;
// Skip a lot of computations
contain: content;
}
.service-unit-failed {
background-color: var(--ct-color-list-critical-bg);
background-color: var(--ct-color-list-critical-bg);
.service-unit-status {
color: var(--ct-color-list-critical-alert-text);
}
.service-unit-status {
color: var(--ct-color-list-critical-alert-text);
}
}
.service-unit-status {
white-space: nowrap;
text-align: right;
white-space: nowrap;
text-align: right;
&-failed {
color: red;
white-space: break-spaces;
}
&-failed {
color: red;
white-space: break-spaces;
}
&-flex-container {
--pf-l-flex--FlexWrap: nowrap;
}
&-flex-container {
--pf-l-flex--FlexWrap: nowrap;
}
}
.service-unit-file-state {
display: inline-block;
font-size: var(--pf-global--FontSize--sm);
min-width: 5rem;
text-align: center;
display: inline-block;
font-size: var(--pf-global--FontSize--sm);
min-width: 5rem;
text-align: center;
}
.service-unit-file-state:not(.pf-c-badge) {
text-align: center;
opacity: 0.8;
text-align: center;
opacity: 0.8;
}
// Add some spacing between the tab label and the icon
.pf-c-nav__link > .ct-exclamation-circle {
margin-left: 0.5rem;
margin-left: 0.5rem;
}
.services-header.pf-c-page__main-nav {
padding-bottom: 1rem;
padding-right: 0;
padding-bottom: 1rem;
padding-right: 0;
> .pf-l-flex {
// Add spacing between the tabs and the 'Create timer' button in mobile
row-gap: var(--pf-global--spacer--sm);
// Align 'Create timer' button with the right side of the services list card
margin-right: var(--pf-c-page__main-section--PaddingRight);
}
> .pf-l-flex {
// Add spacing between the tabs and the 'Create timer' button in mobile
row-gap: var(--pf-global--spacer--sm);
// Align 'Create timer' button with the right side of the services list card
margin-right: var(--pf-c-page__main-section--PaddingRight);
}
}
// Add some spacing between the icon and the status string in the list
.service-unit-status-failed > .ct-exclamation-circle {
margin-right: 0.5rem;
margin-right: 0.5rem;
}
.service-unit-first-column {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(5rem, 25rem));
grid-gap: var(--pf-global--spacer--sm);
display: grid;
grid-template-columns: repeat(auto-fill, minmax(5rem, 25rem));
grid-gap: var(--pf-global--spacer--sm);
.service-unit-description {
font-weight: bold;
}
.service-unit-description {
font-weight: bold;
}
}
.service-thumbtack-icon-color {
color: var(--pf-global--icon--Color--light);
color: var(--pf-global--icon--Color--light);
}
.pf-c-table .pf-c-table__action.service-unit-second-column {
--pf-c-table--cell--Width: 20%;
--pf-c-table--cell--Width: 20%;
&-flex-container {
row-gap: var(--pf-global--spacer--sm);
}
&-flex-container {
row-gap: var(--pf-global--spacer--sm);
}
}
// Don't show labels from mobile mode
.pf-m-grid-md.pf-c-table [data-label]::before {
display: none;
display: none;
}
.pf-m-grid-md.pf-c-table [data-label] {
display: revert;
display: revert;
}

View File

@ -1,15 +1,15 @@
.timer-dialog {
// Limit the width of the components so that they fit in a single row
.pf-c-date-picker:not(.create-timer-time-picker), select {
width: 10rem;
max-width: 10rem;
}
// Limit the width of the components so that they fit in a single row
.pf-c-date-picker:not(.create-timer-time-picker), select {
width: 10rem;
max-width: 10rem;
}
.create-timer-time-picker, .delay-number {
width: 6rem;
}
.create-timer-time-picker, .delay-number {
width: 6rem;
}
.specific-repeat-group, .delay-group {
row-gap: var(--pf-global--spacer--sm);
}
.specific-repeat-group, .delay-group {
row-gap: var(--pf-global--spacer--sm);
}
}

View File

@ -1,39 +1,39 @@
@use "page";
.ct-check-circle {
color: var(--pf-global--success-color--100);
color: var(--pf-global--success-color--100);
}
.ct-info-circle {
color: var(--pf-global--info-color--100);
color: var(--pf-global--info-color--100);
}
.ct-exclamation-triangle {
color: var(--pf-global--warning-color--100);
color: var(--pf-global--warning-color--100);
}
.ct-exclamation-circle {
color: var(--pf-global--danger-color--100);
color: var(--pf-global--danger-color--100);
}
.nav-tabs-pf > li:first-child > a {
padding-left: 20px;
padding-left: 20px;
}
.nav li a {
font-size: 13px;
font-size: 13px;
}
/* Extra content header */
a.disabled {
text-decoration: none;
pointer-events: none;
cursor: default;
color: var(--ct-color-text);
text-decoration: none;
pointer-events: none;
cursor: default;
color: var(--ct-color-text);
}
.popover {
max-width: none;
white-space: nowrap;
max-width: none;
white-space: nowrap;
}

View File

@ -4,81 +4,81 @@
@import "@patternfly/patternfly/components/Toolbar/toolbar.scss";
.console-ct-container {
height: 100%;
display: grid;
grid-template-rows: auto 1fr;
overflow: hidden;
height: 100%;
display: grid;
grid-template-rows: auto 1fr;
overflow: hidden;
}
.console-ct-container .terminal-body,
.console-ct-container .console-ct {
top: 0;
right: 0;
bottom: 0;
left: 0;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.console-ct-container .terminal-group {
border-bottom: 1px solid var(--ct-color-border);
border-bottom: 1px solid var(--ct-color-border);
}
.xterm-accessibility {
/* Allow for scrollbar clicking */
/* (scrollbars are 18px or less across common OSes) */
right: 18px !important;
/* Allow for scrollbar clicking */
/* (scrollbars are 18px or less across common OSes) */
right: 18px !important;
}
.console-ct-container .terminal-body {
padding: 0;
position: relative;
padding: 0;
position: relative;
}
.console-ct-container .console-ct {
position: absolute;
position: absolute;
}
.black-theme {
background-color: #000;
background-color: #000;
}
.dark-theme {
background-color: #002b36;
background-color: #002b36;
}
.light-theme {
background-color: #fdf6e3;
background-color: #fdf6e3;
}
.white-theme {
background-color: #fff;
background-color: #fff;
}
.terminal-group {
display: flex;
row-gap: 0.5rem;
justify-content: space-between;
align-content: center;
align-items: baseline;
flex-wrap: wrap;
display: flex;
row-gap: 0.5rem;
justify-content: space-between;
align-content: center;
align-items: baseline;
flex-wrap: wrap;
/* Move the padding handling to the container element outside of the toolbar */
padding: var(--pf-global--spacer--md);
/* Move the padding handling to the container element outside of the toolbar */
padding: var(--pf-global--spacer--md);
> .pf-c-toolbar {
padding: 0;
> .pf-c-toolbar {
padding: 0;
> .pf-c-toolbar__content {
padding: 0;
> .pf-c-toolbar__content {
padding: 0;
select {
min-width: 5rem;
}
}
padding: 0;
select {
min-width: 5rem;
}
}
padding: 0;
}
}
// HACK for https://forum.patternfly.org/t/read-only-number-input/422
.font-size .pf-c-form-control[readonly] {
cursor: default;
cursor: default;
}

View File

@ -7,215 +7,215 @@
@import "@patternfly/patternfly/components/DataList/data-list.scss";
#account .pf-c-card {
@extend .ct-card;
@extend .ct-card;
}
.account-details .pf-c-card__header {
margin-bottom: var(--pf-global--spacer--lg);
margin-bottom: var(--pf-global--spacer--lg);
}
#account {
--pf-c-page__main-breadcrumb--PaddingBottom: var(--pf-c-page__main-breadcrumb--PaddingTop);
--pf-c-page__main-breadcrumb--PaddingBottom: var(--pf-c-page__main-breadcrumb--PaddingTop);
}
#account .pf-l-gallery {
--pf-l-gallery--GridTemplateColumns: 1fr;
--pf-l-gallery--GridTemplateColumns: 1fr;
}
#account .pf-c-page__main-section,
#account .pf-c-page__main-nav {
padding: var(--pf-global--gutter);
padding: var(--pf-global--gutter);
}
#accounts-list {
--ct-account-pic-size: 3rem;
--ct-account-pic-size: 3rem;
}
@media (max-width: 640px) {
#accounts-list {
--ct-account-pic-size: 0;
}
#accounts-list {
--ct-account-pic-size: 0;
}
}
.cockpit-account {
display: grid;
grid-template-areas: "pic name"
"pic account";
grid-template-columns: var(--ct-account-pic-size) 1fr;
grid-gap: 0 0.25rem;
min-height: 4rem;
padding: 0.5rem;
display: grid;
grid-template-areas: "pic name"
"pic account";
grid-template-columns: var(--ct-account-pic-size) 1fr;
grid-gap: 0 0.25rem;
min-height: 4rem;
padding: 0.5rem;
}
.cockpit-account > .cockpit-account-pic {
font-size: var(--ct-account-pic-size);
color: #bebebe;
grid-area: pic;
font-size: var(--ct-account-pic-size);
color: #bebebe;
grid-area: pic;
}
.cockpit-account > .cockpit-account-real-name {
font-weight: bold;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
grid-area: name;
font-weight: bold;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
grid-area: name;
}
.cockpit-account > .cockpit-account-user-name {
overflow: hidden;
text-overflow: ellipsis;
grid-area: account;
outline: none;
align-self: end;
display: flex;
justify-content: space-between;
overflow: hidden;
text-overflow: ellipsis;
grid-area: account;
outline: none;
align-self: end;
display: flex;
justify-content: space-between;
> a {
margin-right: 0.5rem;
}
> a {
margin-right: 0.5rem;
}
}
#account-details div.checkbox:first-child {
margin-top: 0;
margin-top: 0;
}
#account-details div.checkbox:last-child {
margin-bottom: 0;
margin-bottom: 0;
}
#account-pic {
background: #d3d7cf;
border-radius: 5px;
cursor: pointer;
background: #d3d7cf;
border-radius: 5px;
cursor: pointer;
}
#account-authorized-keys {
.pf-c-data-list__item {
// Align text with heading
--pf-c-data-list__item-row--PaddingLeft: var(--pf-global--spacer--lg);
.pf-c-data-list__item {
// Align text with heading
--pf-c-data-list__item-row--PaddingLeft: var(--pf-global--spacer--lg);
// Align - buttons with + button
--pf-c-data-list__item-row--PaddingRight: var(--pf-global--spacer--md);
// Align - buttons with + button
--pf-c-data-list__item-row--PaddingRight: var(--pf-global--spacer--md);
// Add a border to the top item
&:first-child {
border-top: var(--pf-c-data-list__item--BorderBottomWidth) solid var(--pf-c-data-list__item--BorderBottomColor);
}
// Remove a border from the bottom item
&:last-child {
border-bottom: none;
}
// Add a border to the top item
&:first-child {
border-top: var(--pf-c-data-list__item--BorderBottomWidth) solid var(--pf-c-data-list__item--BorderBottomColor);
}
.pf-c-data-list__cell {
// Align to center (when stretched wide)
align-self: center;
// Allow cells to be wrappable
overflow-wrap: anywhere;
// Remove a border from the bottom item
&:last-child {
border-bottom: none;
}
}
// Comment is user@hostname
&.comment {
// Grow, shrink, and try to be around 12rem (or more or less)
flex: 1 1 10rem;
}
.pf-c-data-list__cell {
// Align to center (when stretched wide)
align-self: center;
// Allow cells to be wrappable
overflow-wrap: anywhere;
&.fingerprint {
// Grow more, shrink, and try to be around 20rem (or more or less)
flex: 100 1 50%;
}
// Comment is user@hostname
&.comment {
// Grow, shrink, and try to be around 12rem (or more or less)
flex: 1 1 10rem;
}
// Handle empty state
.no-keys {
display: block;
text-align: center;
padding: var(--pf-global--spacer--lg);
&.fingerprint {
// Grow more, shrink, and try to be around 20rem (or more or less)
flex: 100 1 50%;
}
}
// Handle empty state
.no-keys {
display: block;
text-align: center;
padding: var(--pf-global--spacer--lg);
}
}
/* Use subgrid to properly align items, making the list act like a table */
@supports (grid-template-columns: subgrid) {
@media screen and (min-width: 512px) {
#account-authorized-keys-list {
display: grid;
// This template will apply to the subgrids too
grid-template-columns: minmax(8rem, auto) minmax(33%, 1fr) auto;
@media screen and (min-width: 512px) {
#account-authorized-keys-list {
display: grid;
// This template will apply to the subgrids too
grid-template-columns: minmax(8rem, auto) minmax(33%, 1fr) auto;
/* Bring the grid through all the children */
.pf-c-data-list__item,
.pf-c-data-list__item-row:not(.no-keys),
.pf-c-data-list__item-content {
display: grid;
grid-template-columns: subgrid;
}
/* Bring the grid through all the children */
.pf-c-data-list__item,
.pf-c-data-list__item-row:not(.no-keys),
.pf-c-data-list__item-content {
display: grid;
grid-template-columns: subgrid;
}
/* Align children across all the grid */
.pf-c-data-list__item,
.pf-c-data-list__item-row {
grid-column: 1 / -1;
}
/* Align children across all the grid */
.pf-c-data-list__item,
.pf-c-data-list__item-row {
grid-column: 1 / -1;
}
/* Put the wrapper for the items on the first two grid cells (leaving the actions on the third) */
.pf-c-data-list__item-content {
grid-column: 1 / -2;
}
/* Put the wrapper for the items on the first two grid cells (leaving the actions on the third) */
.pf-c-data-list__item-content {
grid-column: 1 / -2;
}
/* Place comment and fingerprint on their cells */
.pf-c-data-list__cell {
&.comment {
grid-column: 1;
}
&.fingerprint {
grid-column: 2;
}
}
/* Place comment and fingerprint on their cells */
.pf-c-data-list__cell {
&.comment {
grid-column: 1;
}
&.fingerprint {
grid-column: 2;
}
}
}
}
}
#account-authorized-keys-list {
border: none;
margin-bottom: 0;
border: none;
margin-bottom: 0;
}
.align-top {
vertical-align: top;
vertical-align: top;
}
.size-text-ct {
display: inline;
width: 8em;
text-align: left;
margin: 2px;
display: inline;
width: 8em;
text-align: left;
margin: 2px;
}
@media (min-width: 500px) {
.modal-sm-ct {
width: 32rem;
}
.modal-sm-ct {
width: 32rem;
}
}
.account-column-one {
min-width: 270px;
display: inline-block;
min-width: 270px;
display: inline-block;
}
.expiration-modal .pf-c-form__group-control {
.pf-c-radio:first-child {
padding-bottom: var(--pf-global--spacer--sm);
}
// Work around for https://github.com/patternfly/patternfly/issues/4061
.pf-c-radio:nth-child(2) input {
align-self: center;
}
.pf-c-radio:first-child {
padding-bottom: var(--pf-global--spacer--sm);
}
// Work around for https://github.com/patternfly/patternfly/issues/4061
.pf-c-radio:nth-child(2) input {
align-self: center;
}
}
.help-block {
white-space: pre-wrap;
white-space: pre-wrap;
}
.outline-question-circle-icon {
margin-left: var(--pf-global--spacer--sm);
margin-left: var(--pf-global--spacer--sm);
}