- npm build does now also include building css files. - Source javascript and css are now defined in the source directories (eveai_app or eveai_chat_client), and automatically built for use with nginx - eveai.css is now split into several more manageable files (per control type)
211 lines
6.1 KiB
CSS
211 lines
6.1 KiB
CSS
/* Form and Input Fields ----------------------------------------------------------------------- */
|
|
.form-group label.form-label {
|
|
color: var(--bs-secondary) !important; /* Secondary color for labels */
|
|
font-weight: 500; /* Slightly bolder labels */
|
|
}
|
|
|
|
.form-group:last-of-type {
|
|
margin-bottom: 2rem; /* Adjust this value to control spacing */
|
|
}
|
|
|
|
.form-control {
|
|
background-color: var(--bs-light) !important; /* Light background for input fields */
|
|
border-color: var(--bs-secondary) !important; /* Secondary color for borders */
|
|
color: var(--bs-body-color) !important; /* Text color consistent with the theme */
|
|
}
|
|
|
|
/* Style for both disabled and readonly fields - same gray background */
|
|
.form-control:disabled,
|
|
.form-control[readonly] {
|
|
background-color: var(--bs-gray-100) !important; /* Gray background */
|
|
color: var(--bs-gray-600) !important; /* Dimmed text color */
|
|
}
|
|
|
|
.form-check-input:checked {
|
|
background-color: var(--bs-primary) !important; /* Primary color for checked checkboxes */
|
|
border-color: var(--bs-primary) !important; /* Primary color for checkbox border */
|
|
}
|
|
|
|
.form-check-label {
|
|
color: var(--bs-body-color) !important; /* Consistent text color for check labels */
|
|
}
|
|
|
|
/* Tabs Navigation ----------------------------------------------------------------------------- */
|
|
.nav-pills .nav-link {
|
|
color: var(--bs-primary) !important; /* Primary color for inactive tab text */
|
|
border-radius: 0.375rem !important; /* Rounded corners for tabs */
|
|
transition: background-color 0.3s ease, color 0.3s ease; /* Smooth transitions */
|
|
}
|
|
|
|
.nav-pills .nav-link.active {
|
|
background-color: var(--bs-primary) !important; /* Primary background for active tab */
|
|
color: var(--bs-white) !important; /* White text for active tab */
|
|
}
|
|
|
|
.nav-pills .nav-link:hover {
|
|
background-color: var(--bs-secondary) !important; /* Secondary background on hover */
|
|
color: var(--bs-white) !important; /* White text on hover */
|
|
}
|
|
|
|
/* Tabs Content -------------------------------------------------------------------------------- */
|
|
.tab-pane {
|
|
padding-top: 1rem; /* Consistent padding inside tabs */
|
|
}
|
|
|
|
.moving-tab {
|
|
background-color: var(--bs-primary) !important; /* Primary color for the moving tab indicator */
|
|
}
|
|
|
|
/* Buttons ------------------------------------------------------------------------------------- */
|
|
|
|
.btn-primary:hover {
|
|
background-color: var(--bs-secondary) !important;
|
|
border-color: var(--bs-secondary) !important;
|
|
}
|
|
|
|
#copy-message {
|
|
color: var(--bs-success) !important; /* Success color for the copy message */
|
|
}
|
|
|
|
/* Danger Button Styling */
|
|
.btn-danger {
|
|
background-color: var(--bs-danger) !important; /* Use the danger color from the EveAI theme */
|
|
border-color: var(--bs-danger) !important;
|
|
color: var(--bs-white) !important; /* Ensure text is white for readability */
|
|
transition: background-color 0.3s ease, color 0.3s ease; /* Smooth transition on hover */
|
|
}
|
|
|
|
.btn-danger:hover {
|
|
background-color: var(--bs-secondary) !important;
|
|
border-color: var(--bs-secondary) !important;
|
|
color: var(--bs-white) !important; /* Ensure the text remains white and readable */
|
|
}
|
|
|
|
/* Success Alert Styling */
|
|
.alert-success {
|
|
background-color: var(--bs-success) !important; /* EveAI success background color */
|
|
color: var(--bs-dark) !important; /* Dark color for the text for better readability */
|
|
border-color: var(--bs-success) !important; /* Matching border color */
|
|
border-radius: 0.375rem; /* Rounded corners for the alert box */
|
|
padding: 1rem; /* Consistent padding */
|
|
box-shadow: 0px 4px 10px rgba(118, 89, 154, 0.2); /* Soft shadow for some depth */
|
|
}
|
|
|
|
.alert-success .alert-heading {
|
|
color: var(--bs-dark) !important; /* Ensure the heading stands out */
|
|
font-weight: 600; /* Slightly bolder heading */
|
|
}
|
|
|
|
.alert-success p {
|
|
margin-bottom: 0; /* Remove extra margin from paragraphs inside alerts */
|
|
}
|
|
|
|
.form-control {
|
|
border: 1px solid #d2d6da;
|
|
padding: 0.625rem 0.75rem;
|
|
}
|
|
|
|
.form-control:focus {
|
|
color: #495057;
|
|
background-color: transparent;
|
|
border-color: #d2d6da;
|
|
outline: 0;
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* REQUIRED FIELD SETTINGS --------------------------------------------------------------------- */
|
|
/* Required field indicator styling */
|
|
.field-label-wrapper {
|
|
display: flex;
|
|
align-items: baseline; /* Changed from center to baseline for proper text alignment */
|
|
gap: 0.25rem;
|
|
}
|
|
|
|
.required-field-indicator {
|
|
display: inline-flex;
|
|
align-items: baseline; /* Match the wrapper's alignment */
|
|
}
|
|
|
|
.required-field-indicator .required-icon {
|
|
font-size: 0.7rem;
|
|
transition: transform 0.2s ease-in-out;
|
|
opacity: 0.8;
|
|
line-height: 1; /* Ensure proper vertical alignment */
|
|
}
|
|
|
|
/* Hover animation */
|
|
.field-label-wrapper:hover .required-icon {
|
|
transform: scale(1.2);
|
|
opacity: 1;
|
|
}
|
|
|
|
/* Animation when field is invalid */
|
|
.is-invalid + .field-label-wrapper .required-icon {
|
|
color: var(--bs-danger);
|
|
animation: pulse 1s infinite;
|
|
}
|
|
|
|
@keyframes pulse {
|
|
0% {
|
|
transform: scale(1);
|
|
opacity: 0.8;
|
|
}
|
|
50% {
|
|
transform: scale(1.2);
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
opacity: 0.8;
|
|
}
|
|
}
|
|
|
|
/* Hide visually but maintain accessibility */
|
|
.visually-hidden {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
padding: 0;
|
|
margin: -1px;
|
|
overflow: hidden;
|
|
clip: rect(0, 0, 0, 0);
|
|
white-space: nowrap;
|
|
border: 0;
|
|
}
|
|
|
|
/* TAB ERROR STYLES ---------------------------------------------------------------------------- */
|
|
/* Style for tabs with errors */
|
|
.nav-link.has-error {
|
|
position: relative;
|
|
}
|
|
|
|
.nav-link.has-error::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
width: 8px;
|
|
height: 8px;
|
|
background-color: var(--bs-danger);
|
|
border-radius: 50%;
|
|
transform: translate(50%, -50%);
|
|
}
|
|
|
|
/* Enhance the invalid field visualization */
|
|
.form-control:invalid {
|
|
border-color: var(--bs-danger);
|
|
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
|
|
}
|
|
|
|
/* Add smooth transition for tab changes */
|
|
.tab-pane {
|
|
transition: opacity 0.15s linear;
|
|
}
|
|
|
|
.tab-pane.fade {
|
|
opacity: 0;
|
|
}
|
|
|
|
.tab-pane.fade.show {
|
|
opacity: 1;
|
|
} |