mirror of
https://github.com/outbackdingo/step-ca-webui.git
synced 2026-01-27 18:20:22 +00:00
338 lines
6.9 KiB
CSS
338 lines
6.9 KiB
CSS
/* CSS Reset */
|
|
*, *::before, *::after {
|
|
box-sizing: border-box; /* Include padding and border in element's total width and height */
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
/*:root {*/
|
|
[data-theme='dark'] {
|
|
--color-red: #cc0000;
|
|
--color-bg: white;
|
|
--color-bg-overlay: rgba(0, 0, 0, 0.4);
|
|
--color-bg-textfield: #f2f2f2;
|
|
--color-border: #ddd;
|
|
--color-shadow: #aaa;
|
|
--color-focus: #930d17;
|
|
--color-text-contrast: white;
|
|
--color-text-main: black;
|
|
--color-table-header: #f2f2f2;
|
|
--modal-bg: #fefefe;
|
|
}
|
|
|
|
/*[data-theme='dark'] {*/
|
|
:root {
|
|
--color-red: #ff4444;
|
|
--color-bg: #2f2f2f;
|
|
--color-bg-overlay: rgba(255, 255, 255, 0.1);
|
|
--color-bg-textfield: #1a1a1a;
|
|
--color-border: #757575;
|
|
--color-shadow: #777;
|
|
--color-focus: #ffa6a6;
|
|
--color-text-contrast: white;
|
|
--color-text-main: white;
|
|
--color-table-header: #444444;
|
|
--modal-bg: #3e3e3e;
|
|
|
|
/* Shared */
|
|
--color-a-default: #137bfc;
|
|
--color-a-visited: #a44fff;
|
|
}
|
|
|
|
body, html {
|
|
margin: 0;
|
|
padding: 0;
|
|
height: 100%;
|
|
font-size: 16px;
|
|
line-height: 1.5;
|
|
font-family: Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
|
|
background-color: var(--color-bg);
|
|
color: var(--color-text-main);
|
|
}
|
|
|
|
body {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
/* Topbar */
|
|
|
|
.topbar {
|
|
background-color: var(--color-red);
|
|
color: var(--color-text-contrast);
|
|
padding: 10px;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
|
|
.topbar-logo {
|
|
font-weight: bold;
|
|
font-size: 18px;
|
|
}
|
|
|
|
@media screen and (max-width: 450px) {
|
|
.topbar-nav-container {
|
|
display: flex;
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
list-style-type: none;
|
|
}
|
|
}
|
|
|
|
.topbar-nav-button {
|
|
background-color: var(--color-red);
|
|
color: var(--color-text-contrast);
|
|
border: none;
|
|
padding: 5px 10px;
|
|
margin-left: 10px;
|
|
cursor: pointer;
|
|
text-decoration: none;
|
|
display: inline-block;
|
|
}
|
|
|
|
.topbar-nav-container li {
|
|
display: inline-block;
|
|
}
|
|
|
|
/* Main */
|
|
|
|
.main-container {
|
|
max-width: 1000px;
|
|
width: calc(100% - 40px); /* Ensures horizontal margins 20px */
|
|
margin-block: 20px; /* Vertical margins */
|
|
background-color: var(--color-bg);
|
|
border: 2px solid var(--color-red);
|
|
padding: 20px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1; /* Grow and take up available space in parent */
|
|
overflow: hidden; /* Clips not fitting content */
|
|
align-self: center; /* Center horizontally */
|
|
}
|
|
|
|
@media screen and (max-width: 450px) {
|
|
.main-container {
|
|
width: calc(100% - 10px); /* Ensures horizontal margins 5px */
|
|
margin-block: 5px;
|
|
}
|
|
}
|
|
|
|
.main-header {
|
|
color: var(--color-red);
|
|
margin-top: 0;
|
|
}
|
|
|
|
.main-container-content {
|
|
width: 100%;
|
|
margin-top: 20px;
|
|
flex: 1; /* Grow and take up available space in parent (main-container) */
|
|
overflow-y: auto; /* Enable vertical scrolling if content not fits */
|
|
padding: 10px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.main-bottom-button {
|
|
background-color: var(--color-red);
|
|
color: var(--color-text-contrast);
|
|
border: none;
|
|
padding: 10px 20px;
|
|
font-size: 16px;
|
|
cursor: pointer;
|
|
display: block;
|
|
width: 100%;
|
|
}
|
|
|
|
/* Base tags */
|
|
|
|
th, td {
|
|
border: 1px solid var(--color-border);
|
|
padding: 8px;
|
|
text-align: left;
|
|
}
|
|
|
|
th {
|
|
background-color: var(--color-table-header);
|
|
}
|
|
|
|
table {
|
|
width: 100%;
|
|
}
|
|
|
|
input {
|
|
background-color: var(--color-bg-textfield);
|
|
border: 1px solid var(--color-border);
|
|
padding: 5px;
|
|
color: var(--color-text-main);
|
|
}
|
|
|
|
select {
|
|
padding: 5px;
|
|
background-color: var(--color-bg);
|
|
border: 1px solid var(--color-border);
|
|
color: var(--color-text-main);
|
|
}
|
|
|
|
a {
|
|
color: var(--color-a-default);
|
|
}
|
|
|
|
a:visited {
|
|
color: var(--color-a-visited);
|
|
}
|
|
|
|
h1, h2, h3, h4, h5, h6 {
|
|
line-height: 1.2;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
p {
|
|
margin-bottom: 1em;
|
|
}
|
|
|
|
/* Certs */
|
|
|
|
.certs-actions-td {
|
|
display: flex;
|
|
gap: 5px;
|
|
}
|
|
|
|
@media screen and (max-width: 450px) {
|
|
/* Stack buttons vertically */
|
|
.certs-actions-td {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
}
|
|
|
|
@media screen and (min-width: 451px) and (max-width: 600px) {
|
|
.certs-actions-td { /* Needs to be duplicated */
|
|
flex-direction: column;
|
|
align-items: center;
|
|
}
|
|
|
|
.certs-actions-td button {
|
|
width: 70%;
|
|
}
|
|
}
|
|
|
|
/* Logs */
|
|
|
|
.logs-filters-container {
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
width: 80%;
|
|
}
|
|
|
|
.logs-filters-item {
|
|
display: flex;
|
|
gap: 5px;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
}
|
|
|
|
.logs-filters-fieldset {
|
|
display: flex;
|
|
align-items: center; /* Centers legend vertically in fieldset */
|
|
padding-block: 5px;
|
|
padding-left: 30px;
|
|
margin-left: 50px;
|
|
position: relative;
|
|
}
|
|
|
|
.logs-filters-legend {
|
|
position: absolute;
|
|
left: -40px;
|
|
background-color: var(--color-bg);
|
|
}
|
|
|
|
/* Modal */
|
|
|
|
.modal { /* Lays 100% over the whole page */
|
|
display: none; /* Initially hidden */
|
|
position: fixed; /* Stay in place relive to the browser window */
|
|
z-index: 1;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow: auto; /* Scroll if needed */
|
|
background-color: var(--color-bg-overlay); /* slightly shaded background */
|
|
}
|
|
|
|
.modal-content {
|
|
background-color: var(--modal-bg);
|
|
margin-inline: auto; /* Horizontally */
|
|
margin-block: 15%; /* Vertically */
|
|
padding: 20px;
|
|
border: 1px solid var(--color-border);
|
|
width: 80%;
|
|
max-width: 600px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.modal-close {
|
|
color: var(--color-shadow);
|
|
float: right; /* Positioned at the right relative to the modal-content */
|
|
font-size: 28px;
|
|
font-weight: bold;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.modal-cert-form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 5px;
|
|
}
|
|
|
|
.modal button {
|
|
background-color: var(--color-red);
|
|
color: var(--color-text-contrast);
|
|
border: none;
|
|
padding-inline: 20px; /* Horizontal */
|
|
padding-block: 10px; /* Vertical */
|
|
cursor: pointer;
|
|
}
|
|
|
|
.modal pre {
|
|
display: none;
|
|
background-color: var(--color-bg-textfield);
|
|
padding: 10px;
|
|
border: 1px solid var(--color-border);
|
|
overflow-x: auto; /* Horizontal scrolling if needed */
|
|
font-size: 14px;
|
|
|
|
}
|
|
|
|
.modal-logs {
|
|
background-color: var(--color-bg-textfield);
|
|
border: 1px solid var(--color-border);
|
|
padding: 10px;
|
|
min-height: 200px;
|
|
overflow-y: auto;
|
|
font-family: monospace;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.modal-logs h3 {
|
|
margin-top: 0;
|
|
}
|
|
|
|
/* Generic */
|
|
|
|
.small-button {
|
|
background-color: var(--color-red);
|
|
color: var(--color-text-contrast);
|
|
border: none;
|
|
padding: 5px 10px;
|
|
margin-right: 5px;
|
|
cursor: pointer;
|
|
}
|