2024-12-08 18:15:40 +02:00

1089 lines
21 KiB
CSS

/* Smooth transitions for collapse/expand effect */
#dropdown-div {
overflow: hidden; /* Hide overflowing content */
transition: max-height 2s ease-out; /* Smooth transition for height */
}
/* Arrow rotation */
.arrow {
transition: transform 0.5s ease;
cursor: pointer;
}
.rotate-down {
transform: rotate(180deg); /* Arrow pointing up */
}
.rotate-up {
transform: rotate(0deg); /* Arrow pointing down */
}
html,
body {
scroll-behavior: smooth; /* Smooth scrolling */
overflow-anchor: none; /* Prevents layout shift from causing jump */
}
/* Prevent scrollbar jumping due to margin collapse */
body {
overflow-y: scroll; /* Always show the vertical scrollbar, preventing jumps */
}
/* General form styling */
.form-group label {
font-size: 14px;
font-weight: 600;
color: #6c757d; /* Muted grey color */
}
.selectpicker {
font-size: 14px;
padding: 8px;
}
/* Ensure the table has proper padding and layout */
.table-responsive {
max-height: 400px; /* Add max height to make the table scrollable if content exceeds */
overflow-y: auto;
}
/* Range input styling */
.custom-range {
width: 100%; /* Ensure the slider takes full width */
}
#slider {
height: 8px;
background-color: #007bff; /* Primary blue */
border-radius: 5px;
}
#slider::-webkit-slider-thumb {
background-color: #fff;
border: 2px solid #007bff;
height: 18px;
width: 18px;
border-radius: 50%;
}
#slider::-moz-range-thumb {
background-color: #fff;
border: 2px solid #007bff;
height: 18px;
width: 18px;
border-radius: 50%;
}
#slider::-ms-thumb {
background-color: #fff;
border: 2px solid #007bff;
height: 18px;
width: 18px;
border-radius: 50%;
}
/* Styling for the output value under the slider */
#value {
font-size: 16px;
font-weight: bold;
text-align: center;
margin-top: 8px;
color: #007bff; /* Matching the blue slider */
}
/* Button styling */
button.btn-primary {
font-size: 16px;
padding: 10px 20px;
background-color: #007bff; /* Primary blue */
border: none;
border-radius: 5px;
}
button.btn-primary:hover {
background-color: #0056b3; /* Darker blue on hover */
transition: background-color 0.3s ease;
}
/* Action button row */
.row.justify-content-center {
margin-top: 30px;
}
/* Preprocessing checkboxes styling */
.form-check-inline .form-check-label {
margin-left: 5px;
font-size: 14px;
}
/* Align preprocessing checkboxes in flexbox */
.d-flex.flex-wrap {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.form-check-inline {
margin-right: 20px;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.form-group {
margin-bottom: 15px;
}
.form-row .form-group {
margin-bottom: 10px;
}
}
/* For the table wrapper */
.table-responsive {
max-height: 500px; /* Scroll if table content exceeds this height */
}
.table-bordered {
border: 1px solid #dee2e6; /* Add subtle border */
}
/* Subtle card styling */
.card {
border-radius: 8px;
}
/* Card Body Styling */
.card-body {
padding: 20px; /* Increase padding for better content spacing */
}
/* Table Border Styles */
.table-bordered {
border: 1px solid #ddd;
}
/* Centered Content for Better UX */
.text-center {
text-align: center;
}
/* Responsive Padding */
@media (max-width: 768px) {
.card-body {
padding: 15px; /* Adjust padding for smaller screens */
}
}
/* Hover effect for dropdowns */
select.form-control:hover,
select.form-control:focus {
border-color: #007bff;
box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
}
/* To ensure proper alignment of checkboxes within the flex row */
.form-check-input {
margin-top: 5px;
}
/* Ensure layout consistency */
h6 {
margin-bottom: 10px;
}
.btn-dataset {
border: 1px solid #ddd;
background-color: #f9f9f9;
color: #555;
transition: all 0.3s ease;
border-radius: 30px;
}
.btn-dataset:hover {
background-color: #e2e6ea;
color: #333;
border-color: #ccc;
transform: scale(1.05);
}
.btn-dataset.active {
background-color: #007bff;
color: white;
border-color: #007bff;
}
.btn-dataset i {
margin-right: 8px;
color: #666;
}
.btn-dataset.active i {
color: white;
}
/* Minimal button style */
.dataset-btn {
display: block;
width: 100%;
padding: 0.5rem;
font-size: 0.875rem;
font-weight: 500;
color: #333;
background-color: #f9f9f9;
border: 1px solid #ddd;
border-radius: 0.25rem;
text-align: center;
cursor: pointer;
transition: background-color 0.2s, color 0.2s;
}
/* Hover and active states */
.dataset-btn:hover {
background-color: #f1f1f1;
}
.dataset-btn.active {
background-color: #e9ecef;
border-color: #007bff;
color: #007bff;
}
/* Smaller and simplified upload button */
.btn-outline-primary {
padding: 0.4rem 0.75rem;
font-size: 0.875rem;
}
/* Adjust spacing for a minimalist feel */
.mb-3 {
margin-bottom: 1rem !important;
}
.h4 {
font-size: 1.3rem !important;
}
/* Reduce padding around the form */
.card-body {
padding: 1rem;
}
.form-group {
margin-bottom: 1rem;
}
/* Centering the file upload section */
.col-lg-5 {
max-width: 80%;
}
/* Wrapper and transitions */
#wrapper {
transition: all 0.3s ease;
}
#content-wrapper {
transition: margin-left 0.3s ease;
margin-left: 14rem; /* Adjust this for default sidebar width */
}
/* Sidebar adjustments */
#accordionSidebar {
width: 14rem; /* Default sidebar width */
height: 100vh;
top: 0;
overflow-y: auto;
padding-top: 1rem;
z-index: 1000;
transition: width 0.3s ease;
}
/* Minimized sidebar style */
#accordionSidebar.minimized {
width: 5rem; /* Minimized sidebar width */
}
/* Adjust main content based on sidebar size */
#content-wrapper.expanded {
margin-left: 14rem;
}
#content-wrapper.collapsed {
margin-left: 7rem;
}
/* Ensure icons are visible in minimized state */
#accordionSidebar.minimized .nav-item .nav-link span {
display: none;
}
#accordionSidebar.minimized .sidebar-brand-text {
display: none;
}
/* Sidebar link styles */
.sidebar .nav-item .nav-link {
font-weight: 500;
color: #e3f2fd;
transition: color 0.2s ease, background-color 0.2s ease;
}
.sidebar .nav-item .nav-link:hover,
.sidebar .nav-item .nav-link.active {
color: #ffffff;
background-color: rgba(255, 255, 255, 0.1);
}
.sidebar .nav-item .nav-link.active i {
color: #ffffff;
}
/* Responsive adjustments for small screens */
@media (max-width: 768px) {
#accordionSidebar {
width: 100%;
height: auto;
position: relative;
transition: none; /* Remove transition on mobile for smoother behavior */
}
#content-wrapper {
margin-left: 0;
}
/* Hide the sidebar when minimized on mobile */
#accordionSidebar.minimized {
display: none;
}
/* Show a toggle button for small screens */
.sidebar-toggler {
display: block;
position: fixed;
top: 10px;
right: 10px;
z-index: 1100;
}
}
.minimal-section-title {
font-size: 1.8rem; /* Slightly larger font size for emphasis */
font-weight: 500; /* Medium weight for a clean, modern look */
color: #333; /* Dark gray for a softer contrast than pure black */
border-left: 4px solid #007bff; /* A simple, colored left border for uniqueness */
padding-left: 15px; /* Space between the border and the text */
margin-bottom: 30px; /* Margin to separate the title from the content below */
text-transform: capitalize; /* Capitalize the first letter of each word for a polished look */
}
.cool-separator hr {
border: 0;
height: 1px;
background: linear-gradient(to right, #007bff, transparent, #007bff);
opacity: 0.6; /* Make it a bit subtle */
margin: 20px 0; /* Spacing around the separator */
}
.disabled {
color: #ccc; /* Greyed out text */
pointer-events: none; /* Disable click events */
cursor: not-allowed; /* Change cursor to indicate it's disabled */
}
/*skata */
.container-fluid {
padding-bottom: 500px;
}
.card-header {
background-color: #f8f9fa !important; /* Soft light gray */
color: #333; /* Dark gray for text */
font-size: 1.1rem; /* Slightly smaller text */
border-bottom: 1px solid #e0e0e0; /* Light border for separation */
}
.card {
border: 1px solid #e0e0e0; /* Subtle border around the card */
}
.form-check-label,
.alert,
.btn {
font-weight: 400 !important; /* Lighter weight for labels and buttons */
}
.btn-primary {
background-color: #007bff !important; /* Keep a softer blue for buttons */
border: none;
}
/* Add hover effect for list-group items */
.list-group-item:hover {
background-color: #f8f9fa; /* Light gray background on hover */
}
/* Make the active radio button visually distinct */
.form-check-input:checked + label {
font-weight: bold;
color: #007bff; /* Bootstrap primary color */
}
.card-header {
background-color: #f8f9fa !important; /* Soft light gray */
color: #333; /* Dark gray for text */
font-size: 1.1rem; /* Slightly smaller text */
border-bottom: 1px solid #e0e0e0; /* Light border for separation */
}
.btn-view-models {
background-color: #ffffff;
color: #007bff;
border: 2px solid #007bff;
border-radius: 5px;
padding: 10px 20px;
font-size: 16px;
font-weight: 500;
text-transform: uppercase;
transition: all 0.3s ease;
display: inline-flex;
align-items: center;
justify-content: center;
}
.btn-view-models:hover {
background-color: #007bff;
color: #ffffff;
border-color: #0056b3; /* Slightly darker blue for hover effect */
transform: translateY(-2px); /* Subtle lift effect */
box-shadow: 0 4px 8px rgba(0, 123, 255, 0.3); /* Light shadow for depth */
}
.btn-view-models i {
font-size: 18px; /* Adjust icon size */
transition: all 0.3s ease;
}
.btn-view-models:hover i {
transform: translateX(
5px
); /* Slide the icon slightly to the right on hover */
}
.smooth-transition {
opacity: 0;
transition: opacity 0.5s ease-in-out;
}
.smooth-transition.show {
opacity: 1;
}
.btn-group .btn {
font-weight: 700;
font-size: 15px;
padding: 12px 25px;
border-radius: 25px; /* Softer rounded edges */
border-width: 2px; /* Slightly thicker border for emphasis */
transition: all 0.4s ease; /* Smoother transition effect */
outline: none; /* Remove the default outline */
text-transform: uppercase; /* Make text uppercase for a bold look */
}
.btn-outline-primary {
color: #0066cc; /* A richer blue for better contrast */
border-color: #0066cc;
background-color: #ffffff; /* White background for a clean look */
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); /* Soft shadow for depth */
}
.btn-outline-primary:hover {
background-color: #0066cc; /* Blue background on hover */
color: #ffffff; /* White text on hover */
border-color: #005bb5; /* Slightly darker border on hover */
box-shadow: 0 4px 15px rgba(0, 102, 204, 0.3); /* Enhanced shadow on hover */
}
.btn-outline-primary:focus,
.btn-outline-primary:active {
background-color: #005bb5; /* Darker blue when focused or active */
color: #ffffff;
border-color: #005bb5;
box-shadow: 0 4px 12px rgba(0, 91, 181, 0.4); /* Deeper shadow when active */
transform: translateY(2px); /* Button press effect */
}
.btn[style*="display: none;"] {
opacity: 0; /* Make the button invisible */
visibility: hidden;
pointer-events: none; /* Disable interaction */
}
/* Fade-in Animation */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Apply animation to the card container */
.animate-card {
animation: fadeIn 0.5s ease forwards;
}
.animate-card-delay {
animation: fadeIn 0.8s ease forwards;
}
/* Existing Loader Spinner */
.loader {
display: inline-block;
width: 1.5rem;
height: 1.5rem;
border: 2px solid rgba(0, 0, 0, 0.1);
border-radius: 50%;
border-top-color: #007bff;
animation: spin 0.6s linear infinite;
margin-left: 8px;
}
/* Keyframes for spinner animation */
@keyframes spin {
to {
transform: rotate(360deg);
}
}
/* Loader Overlay */
.loader-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(255, 255, 255, 0.8); /* Semi-transparent white background */
display: flex;
justify-content: center;
align-items: center;
z-index: 10; /* Ensure it overlays the content */
}
/* Spinner Loader */
.spinner-border {
width: 3rem;
height: 3rem;
border: 4px solid rgba(0, 0, 0, 0.1);
border-top-color: #007bff; /* Customize color */
border-radius: 50%;
animation: spin 0.6s linear infinite;
}
/* Keyframes for spinner animation */
@keyframes spin {
to {
transform: rotate(360deg);
}
}
/* Enhanced style for the modal trigger button */
.info-button {
background: none;
border: none;
font-size: 1.2rem;
color: #6c757d;
cursor: pointer;
transition: color 0.3s ease;
}
.info-button:hover {
color: #007bff;
}
/* Sticky header row */
.sticky-top-table table thead tr {
position: sticky;
top: 0;
background-color: #f1f1f1; /* Background color for sticky header */
color: #555; /* Text color for header */
font-weight: bold;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Shadow for sticky effect */
z-index: 10;
}
table th,
.sticky-top-table table td {
padding: 12px 15px;
border: 1px solid #e0e0e0; /* Border for each cell */
text-align: left;
}
.sticky-top-table table tbody tr:nth-child(even) {
background-color: #f9f9f9;
}
.sticky-top-table table tbody tr:nth-child(odd) {
background-color: #ffffff;
}
/* Hover effect for rows */
.sticky-top-table table tbody tr:hover {
background-color: #eaf1f8; /* Soft highlight on hover */
}
/* Modal Styling */
#deleteFileModal .modal-content {
border-radius: 4px;
padding: 0;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
#deleteFileModal .modal-header {
padding: 0.5rem 1rem;
border-bottom: none;
}
#deleteFileModal .modal-title {
font-size: 1rem;
color: #d9534f;
}
#deleteFileModal .modal-body {
font-size: 0.9rem;
color: #444;
}
/* Custom Buttons */
.custom-btn-secondary,
.custom-btn-danger {
font-size: 0.85rem;
padding: 0.4rem 1rem;
border-radius: 2px;
cursor: pointer;
transition: background-color 0.2s;
}
.custom-btn-secondary {
color: #555;
background-color: #f8f9fa;
border: 1px solid #ddd;
}
.custom-btn-secondary:hover {
background-color: #e2e6ea;
}
.custom-btn-danger {
color: #fff;
background-color: #d9534f;
border: 1px solid transparent;
}
.custom-btn-danger:hover {
background-color: #c9302c;
}
/* Delete icon next to file names */
.delete-file-icon {
font-size: 1.2rem;
color: #bbb;
cursor: pointer;
transition: color 0.2s;
}
.delete-file-icon:hover {
color: #d9534f;
}
.custom-alert {
display: flex;
align-items: center;
padding: 5px 10px;
border-radius: 8px;
background-color: #eafaf1;
color: #28a745;
font-size: 14px;
max-width: 250px;
opacity: 0;
transform: translateY(-10px);
transition: opacity 0.4s ease, transform 0.4s ease;
}
.custom-alert.show {
opacity: 1;
transform: translateY(0);
}
.loader i {
font-size: 1.2em;
color: #007bff;
}
.card-header h6 {
font-size: 1rem;
font-weight: 600;
margin-right: auto;
}
.card-footer {
font-size: 0.85rem;
color: #6c757d;
}
/* Add to your CSS file */
.blur-effect {
transition: filter 0.3s ease, opacity 0.3s ease;
}
/* Ensure the modal respects the maximum height */
#modelAnalysisModal .modal-content {
max-height: 80vh; /* Adjust the maximum height as needed */
overflow-y: auto; /* Add vertical scrolling when content exceeds height */
}
/* Style for the modal body */
#modelAnalysisModal .modal-body {
padding: 20px; /* Add some padding for better readability */
}
/* Optional: Keep the tabs navigation fixed at the top inside the modal */
#modelAnalysisModal .nav-tabs {
position: sticky;
top: 0;
z-index: 1020;
background-color: #f8f9fa; /* Match with modal header background */
border-bottom: 1px solid #dee2e6;
}
/* Optional: Add smooth scrolling */
#modelAnalysisModal .modal-content::-webkit-scrollbar {
width: 8px;
}
#modelAnalysisModal .modal-content::-webkit-scrollbar-thumb {
background-color: #6c757d; /* Darker thumb for scrollbar */
border-radius: 4px;
}
#modelAnalysisModal .modal-content::-webkit-scrollbar-track {
background-color: #f8f9fa; /* Light track for scrollbar */
}
/* Make the modal footer fixed to the bottom of the modal */
#modelAnalysisModal .modal-footer {
position: sticky; /* Keep it at the bottom of the modal body */
bottom: 0;
z-index: 1050; /* Ensure it appears above the modal body content */
background-color: #fff; /* Match the modal's background color */
border-top: 1px solid #dee2e6; /* Optional: Add a top border */
box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1); /* Optional: Add subtle shadow */
}
/* Adjust the modal body to account for the footer's height */
#modelAnalysisModal .modal-body {
max-height: calc(80vh - 60px); /* Subtract the approximate footer height */
overflow-y: auto; /* Enable scrolling if content exceeds height */
}
/* Minimal animations and transitions */
.fade-in {
opacity: 0;
transform: translateY(20px);
transition: all 0.5s ease-in-out;
}
.fade-in.visible {
opacity: 1;
transform: translateY(0);
}
/* Button hover effect */
.btn-outline-primary {
border: 2px solid #007bff;
color: #007bff;
background: none;
transition: all 0.3s ease-in-out;
}
.btn-outline-primary:hover {
background: #007bff;
color: #fff;
transform: scale(1.05);
}
/* Card hover effect */
.feature-card {
transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}
.feature-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}
/* Typography tweaks */
h1,
h2,
h3 {
font-weight: 600;
}
p {
font-size: 1rem;
line-height: 1.6;
}
.separator {
height: 2px;
background-color: #ddd;
width: 100px;
margin: 20px auto;
}
.fade-in {
animation: fadeIn 1s ease-in-out;
}
.btn-primary {
transition: background-color 0.3s ease, transform 0.2s ease;
}
.btn-primary:hover {
background-color: #0056b3;
transform: scale(1.05);
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.carousel-control-prev-icon,
.carousel-control-next-icon {
width: 3rem;
height: 3rem;
}
.carousel-indicators li {
width: 1rem;
height: 1rem;
margin: 0 0.5rem;
}
#backToTop {
position: fixed;
bottom: 20px;
right: 20px;
display: none;
z-index: 1000;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}
#backToTop:hover {
background-color: #007bff;
color: white;
}
body.dark-mode {
background-color: #121212;
color: #ffffff;
}
.dark-mode .bg-light {
background-color: #2a2a2a;
}
.dark-mode .text-dark {
color: #ffffff;
}
.dark-mode .btn-primary {
background-color: #0056b3;
border-color: #0056b3;
}
/* Background Enhancements */
#home_intro {
overflow: hidden;
position: relative;
background: linear-gradient(145deg, #f3f4f6, #ffffff);
}
#home_intro .background-shape {
position: absolute;
width: 180px; /* Reduced size */
height: 180px; /* Reduced size */
background: rgba(0, 123, 255, 0.2);
border-radius: 50%;
filter: blur(60px);
z-index: 0;
animation: float 5s ease-in-out infinite;
}
#home_intro .background-shape.shape-1 {
top: -40px;
left: -40px;
}
#home_intro .background-shape.shape-2 {
bottom: -40px;
right: -40px;
animation-delay: 2s;
}
/* Keyframe Animation for Background Shapes */
@keyframes float {
0%,
100% {
transform: translateY(0);
}
50% {
transform: translateY(15px);
}
}
/* Logo Styling */
#home_intro .logos .logo {
max-height: 60px; /* Smaller logo size */
filter: drop-shadow(0 3px 5px rgba(0, 0, 0, 0.1));
transition: transform 0.3s ease, filter 0.3s ease;
}
#home_intro .logos .logo:hover {
transform: scale(1.1);
filter: drop-shadow(0 5px 7px rgba(0, 0, 0, 0.2));
}
/* Animation for Fading in */
.fade-in {
animation: fadeIn 1s ease-in-out;
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Responsive Styling */
@media (max-width: 768px) {
#home_intro .logos {
flex-wrap: wrap;
}
#home_intro .logos .logo {
margin-bottom: 8px; /* Reduced spacing */
}
}
/* Overall Styling */
.collapse {
padding: 20px;
line-height: 1.6;
font-size: 16px;
}
.collapse h4 {
font-weight: 600;
text-align: center;
margin-bottom: 20px;
}
.collapse ul {
padding: 0;
margin: 20px 0;
list-style: none;
}
.collapse ul li {
display: inline-block;
margin: 0 15px;
font-size: 16px;
font-weight: 500;
color: #495057;
}
.collapse ul li i {
font-size: 20px;
vertical-align: middle;
}
.collapse p {
text-align: justify;
margin: 10px 0;
}
.collapse a.btn {
font-size: 14px;
padding: 10px 20px;
border: 1px solid #007bff;
color: #007bff;
transition: background-color 0.3s ease, color 0.3s ease;
}
.collapse a.btn:hover {
background-color: #007bff;
color: white;
}
.about-dashboard-section {
background-color: #f8f9fa;
padding: 60px 20px;
border-radius: 10px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
.about-dashboard-section h2 {
font-size: 1.75rem;
font-weight: bold;
color: #333;
}
.about-dashboard-section ul {
list-style: none;
padding: 0;
}
.about-dashboard-section li {
display: flex;
align-items: flex-start;
}
.about-dashboard-section i {
font-size: 1.25rem;
}
.about-dashboard-section .btn-primary {
background-color: #007bff;
border-color: #007bff;
transition: background-color 0.3s ease;
}
.about-dashboard-section .btn-primary:hover {
background-color: #0056b3;
}
@keyframes rotation {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}