summaryrefslogtreecommitdiff
path: root/src/assets/styles
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/styles')
-rw-r--r--src/assets/styles/_obmc-sila.scss6
-rw-r--r--src/assets/styles/bmc/_sila/_alert.scss70
-rw-r--r--src/assets/styles/bmc/_sila/_badge.scss21
-rw-r--r--src/assets/styles/bmc/_sila/_base.scss50
-rw-r--r--src/assets/styles/bmc/_sila/_bootstrap-grid.scss8
-rw-r--r--src/assets/styles/bmc/_sila/_buttons.scss82
-rw-r--r--src/assets/styles/bmc/_sila/_calendar.scss17
-rw-r--r--src/assets/styles/bmc/_sila/_card.scss5
-rw-r--r--src/assets/styles/bmc/_sila/_dropdown.scss31
-rw-r--r--src/assets/styles/bmc/_sila/_forms.scss132
-rw-r--r--src/assets/styles/bmc/_sila/_index.scss18
-rw-r--r--src/assets/styles/bmc/_sila/_kvm.scss12
-rw-r--r--src/assets/styles/bmc/_sila/_modal.scss12
-rw-r--r--src/assets/styles/bmc/_sila/_pagination.scss24
-rw-r--r--src/assets/styles/bmc/_sila/_section-divider.scss3
-rw-r--r--src/assets/styles/bmc/_sila/_sol.scss3
-rw-r--r--src/assets/styles/bmc/_sila/_tables.scss171
-rw-r--r--src/assets/styles/bmc/_sila/_toasts.scss61
18 files changed, 726 insertions, 0 deletions
diff --git a/src/assets/styles/_obmc-sila.scss b/src/assets/styles/_obmc-sila.scss
new file mode 100644
index 00000000..ea2507f0
--- /dev/null
+++ b/src/assets/styles/_obmc-sila.scss
@@ -0,0 +1,6 @@
+// Vendor styles
+@import "./bootstrap";
+@import "~bootstrap-vue/src/index";
+
+// IBS BMC styles
+@import "./bmc/_sila";
diff --git a/src/assets/styles/bmc/_sila/_alert.scss b/src/assets/styles/bmc/_sila/_alert.scss
new file mode 100644
index 00000000..0e78ba64
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_alert.scss
@@ -0,0 +1,70 @@
+.alert {
+ display: flex;
+ padding: $spacer;
+ border-width: 0 0 0 3px;
+ color: gray("800");
+ margin-bottom: $spacer;
+
+ &.small {
+ padding: $spacer / 2;
+ font-size: 1rem;
+ }
+
+ .close {
+ font-weight: 300;
+ opacity: 1;
+ }
+
+ .alert-icon {
+ display: inline-flex;
+ align-items: flex-start;
+ margin-right: $spacer;
+ margin-bottom: $spacer;
+
+ @include media-breakpoint-up(sm) {
+ margin-bottom: 0;
+ }
+ }
+
+ .alert-content {
+ flex: 1 1 auto;
+ }
+
+ .alert-title {
+ margin-bottom: $spacer / 2;
+ }
+
+ .alert-msg {
+ p + p {
+ margin-bottom: $spacer;
+ }
+
+ p:last-of-type {
+ margin-bottom: 0;
+ }
+ }
+
+ &.alert-info {
+ border-left-color: theme-color("info");
+ background-color: theme-color-light("info");
+ fill: theme-color("info");
+ }
+
+ &.alert-success {
+ border-left-color: theme-color("success");
+ background-color: theme-color-light("success");
+ fill: theme-color("success");
+ }
+
+ &.alert-danger {
+ border-left-color: theme-color("danger");
+ background-color: theme-color-light("danger");
+ fill: theme-color("danger");
+ }
+
+ &.alert-warning {
+ border-left-color: theme-color("warning");
+ background-color: theme-color-light("warning");
+ fill: theme-color("warning");
+ }
+ } \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_badge.scss b/src/assets/styles/bmc/_sila/_badge.scss
new file mode 100644
index 00000000..0b88b499
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_badge.scss
@@ -0,0 +1,21 @@
+.badge-pill {
+ // Need to explicitly set border-radius
+ // for pill variant because global $enable-rounded
+ // Bootstrap setting removes rounded pill style
+ border-radius: 10rem;
+ fill: currentColor;
+ font-weight: 400;
+ line-height: 1.5;
+ display: inline-flex;
+ .close {
+ font-size: 1em;
+ margin-left: $spacer/2;
+ font-weight: inherit;
+ color: inherit;
+ }
+}
+
+.badge-primary {
+ background-color: theme-color-light("info");
+ color: theme-color("info");
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_base.scss b/src/assets/styles/bmc/_sila/_base.scss
new file mode 100644
index 00000000..c11e046c
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_base.scss
@@ -0,0 +1,50 @@
+dt,
+legend,
+label {
+ color: gray("800");
+ font-size: 14px;
+ font-weight: 400;
+ line-height: 1.4285;
+}
+
+h1,
+.h1 {
+ font-size: 2.625rem;
+ font-weight: 300;
+ line-height: 1.238;
+}
+
+h2,
+.h2 {
+ font-size: 2.25rem;
+ font-weight: 300;
+ line-height: 1.3333;
+}
+
+h3,
+.h3 {
+ font-size: 1.75rem;
+ font-weight: 400;
+ line-height: 1.2857;
+}
+
+h4,
+.h4 {
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.3;
+}
+
+h5,
+.h5 {
+ font-size: 1rem;
+ font-weight: 500;
+ line-height: 1.375;
+}
+
+h6,
+.h6 {
+ font-size: 0.875rem;
+ font-weight: 500;
+ line-height: 1.2857;
+}
diff --git a/src/assets/styles/bmc/_sila/_bootstrap-grid.scss b/src/assets/styles/bmc/_sila/_bootstrap-grid.scss
new file mode 100644
index 00000000..7ad7c81b
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_bootstrap-grid.scss
@@ -0,0 +1,8 @@
+.container-xl {
+ // Fluid layout container class sets 100%
+ // width until xl breakpoint. Once a max-width
+ // is set, setting the left margin to 0 is needed
+ // so the content doesn't center align
+ // https://bootstrap-vue.org/docs/components/layout#fluid-width-container
+ margin-left: 0;
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_buttons.scss b/src/assets/styles/bmc/_sila/_buttons.scss
new file mode 100644
index 00000000..2a7b8169
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_buttons.scss
@@ -0,0 +1,82 @@
+.btn {
+ padding-top: $spacer / 2;
+ padding-right: $spacer;
+ padding-bottom: $spacer / 2;
+ padding-left: $spacer;
+ display: inline-flex;
+ align-items: center;
+ justify-content: space-around;
+ svg {
+ margin-right: $spacer / 4;
+ }
+ &:disabled {
+ color: gray("600");
+ fill: currentColor;
+ box-shadow: none !important;
+ &:not(.btn-link) {
+ border-color: gray("400");
+ background-color: gray("400");
+ }
+ }
+}
+
+.btn-primary {
+ fill: currentColor;
+ &:focus,
+ &:not(:disabled):not(.disabled):active:focus {
+ border-color: $white;
+ box-shadow: inset 0 0 0 3px theme-color('primary'), inset 0 0 0 5px $white;
+ }
+}
+
+.btn-secondary {
+ fill: currentColor;
+ &:focus,
+ &:not(:disabled):not(.disabled):active:focus {
+ border-color: $white;
+ box-shadow: inset 0 0 0 3px theme-color('secondary'), inset 0 0 0 5px $white;
+ }
+}
+
+// Global style for all button link
+.btn-link {
+ font-weight: $headings-font-weight;
+ fill: theme-color("primary");
+ text-decoration: none !important;
+ &:hover {
+ background-color: gray("200");
+ color: theme-color("primary");
+ }
+ &:active {
+ background-color: gray("300");
+ }
+ &:focus {
+ box-shadow: inset 0 0 0 2px theme-color("primary");
+ color: theme-color("primary");
+ outline: none;
+ }
+ &:disabled {
+ box-shadow: $btn-focus-box-shadow;
+ }
+}
+
+// Icon only buttons
+.btn-icon-only svg {
+ margin-right: 0;
+}
+
+// Datepicker, clear search and Password toggle buttons
+.input-action-btn,
+.btn-datepicker {
+ position: absolute;
+ right: 0;
+ top: 0;
+ z-index: $zindex-dropdown + 1;
+}
+
+// Contain input buttons within input
+.btn-datepicker .dropdown-toggle,
+.input-action-btn {
+ padding: 7px;
+ margin: 1px;
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_calendar.scss b/src/assets/styles/bmc/_sila/_calendar.scss
new file mode 100644
index 00000000..0307a6ce
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_calendar.scss
@@ -0,0 +1,17 @@
+.b-calendar-nav {
+ .btn {
+ &:hover {
+ background: none;
+ color: theme-color("dark");
+ }
+ }
+}
+
+.b-calendar-grid .btn {
+ display: inline-block;
+}
+
+// Date picker focus
+.b-calendar .b-calendar-grid {
+ padding: 6px 12px;
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_card.scss b/src/assets/styles/bmc/_sila/_card.scss
new file mode 100644
index 00000000..5f2a5962
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_card.scss
@@ -0,0 +1,5 @@
+.card {
+ .bg-success {
+ background-color: theme-color-light('success')!important;
+ }
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_dropdown.scss b/src/assets/styles/bmc/_sila/_dropdown.scss
new file mode 100644
index 00000000..969c4c68
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_dropdown.scss
@@ -0,0 +1,31 @@
+// Make calendar visible over the table
+.dropdown-menu {
+ z-index: $zindex-dropdown + 1;
+ padding: 0;
+}
+.dropdown-item {
+ padding-left: $spacer/4;
+ margin-top: -1 * $spacer/4;
+}
+.b-dropdown-form {
+ padding: $spacer/2;
+ .form-group {
+ margin-bottom: $spacer/2;
+ }
+}
+// Table filter dropdown clear button style
+.table-filter {
+ .dropdown-item {
+ &:hover {
+ background-color: gray("200");
+ }
+ &:active {
+ background-color: gray("300");
+ }
+ &:focus {
+ outline: none;
+ background-color: transparent;
+ box-shadow: inset 0 0 0 2px theme-color("primary");
+ }
+ }
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_forms.scss b/src/assets/styles/bmc/_sila/_forms.scss
new file mode 100644
index 00000000..428a40c2
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_forms.scss
@@ -0,0 +1,132 @@
+// Helper text
+.form-text {
+ font-size: $form-label-font-size;
+ line-height: $form-line-height;
+ margin-top: -$spacer / 4;
+ margin-bottom: $spacer / 2;
+ color: gray("700")!important;
+}
+
+// Legend label
+.col-form-label {
+ color: gray("800");
+ font-size: $form-label-font-size;
+ line-height: $form-line-height;
+}
+
+.form-group {
+ margin-bottom: $spacer * 2;
+}
+
+.custom-select,
+.form-control,
+.input-group-text {
+ border-color: gray("500") !important;
+ background-color: gray("100");
+}
+
+.custom-select,
+.form-control {
+ &:active {
+ border: 1px solid $primary!important;
+ }
+ &:focus {
+ color: theme-color("dark");
+ background-color: gray("100");
+ box-shadow: inset 0 0 0 3px gray("100"), inset 0 0 0 5px $primary !important;
+ }
+ &:disabled {
+ background-color: gray("400");
+ color: gray("600");
+ }
+ &::placeholder {
+ color: gray("600");
+ }
+ &.is-invalid,
+ &:invalid {
+ border: 1px solid theme-color("danger") !important;
+ }
+}
+
+.custom-select,
+.custom-control-label,
+.form-control {
+ color: theme-color("dark") !important;
+ font-size: 1rem;
+}
+
+// Inverted form colors
+.form-background {
+ background-color: gray("100");
+ .custom-select,
+ .form-control {
+ background-color: $white;
+ &:focus {
+ background-color: $white;
+ }
+ &:disabled {
+ background-color: gray("400");
+ color: gray("600");
+ }
+ }
+}
+
+.invalid-feedback {
+ font-size: $form-label-font-size;
+ line-height: $form-line-height;
+}
+
+.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after,
+.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before,
+.custom-control-input:checked ~ .custom-control-label::before {
+ background-color: $black;
+ border-color: $black;
+ cursor: pointer;
+}
+
+.custom-control {
+ .custom-control-input[disabled=disabled] {
+ & + .custom-control-label {
+ // Disabled label for checkbox, radio,
+ // switch bootstrap form components
+ color: gray("600")!important;
+ }
+ }
+}
+
+.custom-control-input:focus ~ .custom-control-label::before{
+ box-shadow: 0 0 0 2px theme-color("primary");
+}
+
+.custom-control-label::after {
+ cursor: pointer;
+}
+
+.b-form-tag-remove {
+ // X button to remove tag
+ font-weight: normal;
+}
+
+.b-form-tags-button {
+ // Add button inside input field
+ white-space: nowrap;
+ margin-right: -$spacer;
+ &.btn-link-primary {
+ color: theme-color("primary");
+ fill: currentColor;
+ }
+}
+
+// Form validation icon
+ .form-control.is-invalid,
+ .form-control.is-valid {
+ background-position: right 1rem bottom 50%;
+ }
+
+// Form validation icon with datepicker or password toggle icon
+.form-control-with-button {
+ &.is-invalid,
+ &.is-valid {
+ background-position: right 3rem bottom 50%;
+ }
+}
diff --git a/src/assets/styles/bmc/_sila/_index.scss b/src/assets/styles/bmc/_sila/_index.scss
new file mode 100644
index 00000000..74594e35
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_index.scss
@@ -0,0 +1,18 @@
+// OpenBMC Global Style Overrides of out of the box
+// Bootstrap styles
+@import "./alert";
+@import "./badge";
+@import "./base";
+@import "./bootstrap-grid";
+@import "./buttons";
+@import "./calendar";
+@import "./card";
+@import "./dropdown";
+@import "./forms";
+@import "./kvm";
+@import "./modal";
+@import "./pagination";
+@import "./section-divider";
+@import "./sol";
+@import "./tables";
+@import "./toasts"; \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_kvm.scss b/src/assets/styles/bmc/_sila/_kvm.scss
new file mode 100644
index 00000000..a7223844
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_kvm.scss
@@ -0,0 +1,12 @@
+#terminal-kvm {
+ height: calc(100vh - 300px);
+ display: flex;
+ &.full-window {
+ height: calc(100vh - 80px);
+ }
+ div:nth-child(1) {
+ background: transparent !important;
+ display: block !important;
+ overflow: hidden !important;
+ }
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_modal.scss b/src/assets/styles/bmc/_sila/_modal.scss
new file mode 100644
index 00000000..e2fa0cd8
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_modal.scss
@@ -0,0 +1,12 @@
+.modal-header {
+ .close {
+ font-weight: normal;
+ color: theme-color("dark");
+ opacity: 1;
+ }
+ .modal-title {
+ font-size: 1.25rem;
+ font-weight: normal;
+ line-height: 1.3;
+ }
+}
diff --git a/src/assets/styles/bmc/_sila/_pagination.scss b/src/assets/styles/bmc/_sila/_pagination.scss
new file mode 100644
index 00000000..d38ce5d2
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_pagination.scss
@@ -0,0 +1,24 @@
+.table-pagination-select {
+ display: flex;
+ flex-direction: row-reverse;
+ justify-content: flex-end;
+ select {
+ width: fit-content;
+ }
+ label {
+ margin-left: $spacer;
+ line-height: $spacer * 2;
+ }
+}
+
+.b-pagination {
+ @include media-breakpoint-up(sm) {
+ justify-content: flex-end;
+ }
+ .page-item.active button {
+ color: theme-color("dark");
+ background-color: color("white");
+ border-color: $border-color;
+ box-shadow: inset 0px -3px theme-color("primary");
+ }
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_section-divider.scss b/src/assets/styles/bmc/_sila/_section-divider.scss
new file mode 100644
index 00000000..620c9e56
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_section-divider.scss
@@ -0,0 +1,3 @@
+.section-divider {
+ border-bottom: 1px solid gray('400');
+ } \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_sol.scss b/src/assets/styles/bmc/_sila/_sol.scss
new file mode 100644
index 00000000..6987cf79
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_sol.scss
@@ -0,0 +1,3 @@
+#terminal .xterm .xterm-viewport {
+ overflow: auto;
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/_tables.scss b/src/assets/styles/bmc/_sila/_tables.scss
new file mode 100644
index 00000000..e8b5a832
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_tables.scss
@@ -0,0 +1,171 @@
+.table {
+ position: relative;
+ z-index: $zindex-dropdown;
+
+ td {
+ border-top: 1px solid gray("300");
+ border-bottom: 1px solid gray("300");
+ &:first-of-type {
+ border-left: 1px solid gray("300");
+ }
+ &:last-of-type {
+ border-right: 1px solid gray("300");
+ }
+ vertical-align: middle;
+
+ // Table action buttons
+ .btn-link {
+ width: 40px;
+ height: 40px;
+ padding: 5px !important;
+ display: inline-flex;
+ justify-content: center;
+ align-items: center;
+ }
+ }
+
+ // thead-light added for specificity
+ .thead-light th {
+ vertical-align: middle;
+ border-top: 1px solid gray("300");
+ border-bottom: 1px solid gray("300");
+ &:first-of-type {
+ border-left: 1px solid gray("300");
+ }
+ &:last-of-type {
+ border-right: 1px solid gray("300");
+ }
+ color: theme-color("dark");
+ &:focus {
+ outline: none;
+ }
+ }
+
+ .status-icon svg {
+ width: 1rem;
+ height: auto;
+ }
+
+ .b-table-has-details {
+ td {
+ border-bottom: none;
+ }
+ .table-row-expand svg {
+ transform: rotate(180deg);
+ }
+ }
+
+ .b-table-details {
+ background-color: theme-color("light");
+ td {
+ padding-left: calc(50px + (#{$table-cell-padding} * 2));
+ padding-right: calc(50px + (#{$table-cell-padding} * 2));
+ }
+ dl {
+ margin: 0;
+ }
+ dt {
+ float: left;
+ clear: left;
+ margin-right: $spacer / 2;
+ }
+ dd {
+ line-height: 1.2
+ }
+ }
+
+ .table-row-expand {
+ width: 50px;
+ .btn {
+ padding: 0;
+ width: 50px;
+ }
+ svg {
+ fill: theme-color("dark");
+ }
+ }
+ .b-table-sort-icon-left {
+ background-position: left calc(1.5rem / 2) center !important;
+ padding-left: calc(1.2rem + 0.65em) !important;
+ &:focus {
+ outline: none;
+ box-shadow: inset 0 0 0 2px theme-color('primary') !important;
+ }
+ &:hover {
+ background-color: theme-color-dark('light');
+ }
+ }
+}
+
+.b-table-sticky-header td {
+ border-top: none;
+}
+
+// Table stacked style for small screen only
+@include media-breakpoint-down(xs) {
+ .b-table-stacked-sm {
+ border: 1px solid gray("300");
+
+ tr {
+
+ &:not(:first-child) > td[aria-colindex='1'] {
+ border-top: 1px solid gray("300");
+ padding-top: 0.625rem;
+ }
+
+ &:not(.b-table-empty-row) {
+ position: relative; // Restrict background color to get zebra striping for the row
+
+ &::before,
+ &::after {
+ position: absolute;
+ top: 0;
+ height: 100%;
+ z-index: -1;
+ }
+
+ &:before {
+ content: '';
+ background-color: gray("200");
+ width: 40%;
+ border-right: 1px solid gray("300");
+ }
+
+ &:after {
+ content: '';
+ right: 0;
+ width: 60%;
+ }
+
+ &:nth-child(even)::after {
+ background-color: gray("100"); // Zebra striping for the row
+ }
+ }
+
+ td {
+ border: 0;
+ padding: 0.75rem;
+ text-align: left !important;
+
+ &:last-of-type {
+ border-right: 0;
+ }
+ }
+ }
+ }
+
+ .table.b-table.b-table-stacked-sm > tbody > tr > [data-label] {
+ &::before {
+ text-align: left;
+ padding-left: $spacer /2;
+ }
+
+ > div {
+ padding-left: 1rem;
+ }
+ }
+
+ .table.b-table.b-table-stacked-sm > tbody > tr > :first-child {
+ border-top-width: 1px;
+ }
+}
diff --git a/src/assets/styles/bmc/_sila/_toasts.scss b/src/assets/styles/bmc/_sila/_toasts.scss
new file mode 100644
index 00000000..4e2ad7fa
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/_toasts.scss
@@ -0,0 +1,61 @@
+.b-toaster {
+ top: 75px!important; // make sure toasts do not hide top header
+}
+
+// Toast component and status icon style
+.toast {
+ padding: $spacer/2 $spacer/2 $spacer/2 $spacer+2;
+ border-width: 0 0 0 3px;
+ box-shadow: $box-shadow;
+ .close {
+ font-weight: 300;
+ opacity: 1;
+ }
+}
+
+.toast-header {
+ display: flex;
+ align-items: flex-start;
+ background-color: inherit!important; //override specificity
+ border: none;
+ color: theme-color("dark")!important; //override specificity
+ padding-bottom: 0;
+}
+
+.toast-icon {
+ display: flex;
+ margin-right: 1rem;
+
+ svg {
+ margin-left: -2.5rem;
+ }
+
+ + .close {
+ line-height: .9;
+ }
+}
+
+.toast-body {
+ color: theme-color("dark");
+ padding-top: 0;
+}
+
+.b-toast-success .toast {
+ border-left-color: theme-color("success")!important;
+ background-color: theme-color-light("success")!important;
+}
+
+.b-toast-info .toast {
+ border-left-color: theme-color("info")!important;
+ background-color: theme-color-light("info")!important;
+}
+
+.b-toast-danger .toast {
+ border-left-color: theme-color("danger")!important;
+ background-color: theme-color-light("danger")!important;
+}
+
+.b-toast-warning .toast {
+ border-left-color: theme-color("warning")!important;
+ background-color: theme-color-light("warning")!important;
+} \ No newline at end of file