FluxInator / static /style.css
Scalino84
Initial commit
1e7308f
:root {
/* Farben */
--primary-color: #007bff; /* Hauptfarbe (Blau) */
--secondary-color: #6c757d; /* Sekundärfarbe (Grau) */
--success-color: #28a745; /* Erfolgsfarbe (Grün) */
--error-color: #dc3545; /* Fehlerfarbe (Rot) */
--info-color: #17a2b8; /* Info-Farbe (Hellblau) */
--light-gray: #f8f9fa; /* Helles Grau für Hintergründe */
--medium-gray: #ced4da; /* Mittleres Grau für Rahmen */
--dark-gray: #333; /* Dunkles Grau für Text */
--body-bg-color: #f4f4f4;
--text-color: #333;
--blink-text-color: #2eb82e;
/* Typografie */
--base-font-size: 1rem;
--font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
/* Abstände */
--base-padding: 10px;
--base-margin: 10px;
/* Rahmen */
--border-radius: 5px;
/* Schatten */
--box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
/* Transparenz */
--base-opacity: 0.8;
}
/* Grundlegende Styles */
body {
font-family: var(--font-family);
background-image: url('bg.webp');
background-size: cover;
background-repeat: no-repeat;
background-position: center;
background-attachment: fixed;
/* background-color: var(--body-bg-color); */
color: var(--text-color);
margin: 0;
padding: 0;
font-size: var(--base-font-size);
}
.container {
max-width: 1200px;
margin: auto;
padding: 20px;
}
/* Header- und Navigationsbereich */
.banner img {
border-radius: var(--border-radius);
box-shadow: var(--box-shadow);
}
.nav-buttons a {
background-color: var(--primary-color);
color: white;
border: none;
padding: var(--base-padding) calc(var(--base-padding) * 2);
text-decoration: none;
font-weight: bold;
border-radius: var(--border-radius);
transition: background-color 0.3s ease;
}
.nav-buttons a:hover {
background-color: color-mix(in srgb, var(--primary-color) 40%, black);
}
/* Formulare */
.custom-bg {
background-color: var(--light-gray);
border-radius: var(--border-radius);
box-shadow: var(--box-shadow);
padding: var(--base-padding);
}
.form-label {
font-weight: 600;
}
.form-control {
border-radius: var(--border-radius);
border: 1px solid var(--medium-gray);
padding: var(--base-padding);
}
.form-control:focus {
border-color: var(--primary-color);
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
}
.btn-primary:hover {
background-color: color-mix(in srgb, var(--primary-color) 40%, black);
border-color: color-mix(in srgb, var(--primary-color) 40%, black);
}
.btn-secondary {
background-color: var(--secondary-color);
border-color: var(--secondary-color);
}
.btn-secondary:hover {
background-color: color-mix(in srgb, var(--secondary-color) 40%, black);
border-color: color-mix(in srgb, var(--secondary-color) 40%, black);
}
/* Akkordeon */
.accordion-button {
font-weight: bold;
}
.accordion-button:not(.collapsed) {
color: var(--primary-color);
}
/* Fortschrittsnachricht */
#progressMessage {
background-color: rgb(40 167 69 / 10%); /* Leicht transparentes Grün */
border: 1px solid rgb(40 167 69 / 80%); /* Passender Rahmen */
color: var(--blink-text-color);
padding: 1rem;
border-radius: var(--border-radius);
font-weight: bold;
text-align: center;
animation: blink 1.5s infinite;
margin-top: 1rem;
}
/* Blinken-Animation */
@keyframes blink {
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
}
/* Fortschrittsbalken */
#progressContainer {
height: 30px;
background-color: var(--light-gray); /* Hintergrund des Containers */
border-radius: var(--border-radius); /* Abgerundete Ecken */
overflow: hidden; /* Versteckt den Fortschrittsbalken, der über den Container hinausragt */
}
#progressBar {
background-color: var(--success-color);
height: 100%; /* Füllt die Höhe des Containers */
line-height: 30px; /* Vertikal zentriert den Text */
color: white;
text-align: center; /* Horizontal zentriert den Text */
transition: width 0.4s ease-in-out; /* Sanfter Übergang für die Breite */
}
/* Bilder und Galerie */
#output img {
margin-bottom: var(--base-margin);
border-radius: var(--border-radius);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.image-thumbnail {
border-radius: var(--border-radius);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
transition: transform 0.3s ease;
cursor: pointer;
}
.image-thumbnail:hover {
transform: scale(1.05);
}
.thumbnail-img {
transition: transform 0.3s ease;
cursor: pointer;
}
.thumbnail-img:hover {
transform: scale(1.05);
}
/* Karten */
.card {
border: none;
border-radius: var(--border-radius);
box-shadow: var(--box-shadow);
}
/* Modal */
.modal-content {
border-radius: var(--border-radius);
}
.modal-header {
background-color: var(--light-gray);
}
/* Toolbars */
.toolbar {
background-color: white;
padding: var(--base-padding);
border: 1px solid var(--medium-gray);
border-radius: var(--border-radius);
margin-bottom: calc(var(--base-margin) * 2);
display: flex;
align-items: center;
gap: var(--base-margin);
}
/* Auswahl-Checkboxes */
.select-item {
cursor: pointer;
}
/* "Nach oben"-Button */
#scrollTopBtn {
display: none;
position: fixed;
bottom: 20px;
right: 20px;
z-index: 99;
border: none;
background: transparent;
cursor: pointer;
transition: all 0.3s ease;
opacity: var(--base-opacity);
}
#scrollTopBtn:hover {
transform: translateY(-5px);
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
}
/* "Nach oben"-Pfeil */
#scrollTopBtn img {
width: 50px;
height: 50px;
border-radius: 50%;
}
/* Benachrichtigungs-Container */
.notification {
position: fixed;
top: 20px;
left: 50%;
transform: translateX(-50%);
padding: var(--base-padding) calc(var(--base-padding) * 2);
border: 1px solid var(--medium-gray);
z-index: 1000;
border-radius: var(--border-radius);
color: white;
font-weight: bold;
opacity: var(--base-opacity);
}
.notification.success {
background-color: var(--success-color);
}
.notification.error {
background-color: var(--error-color);
}
.notification.info {
background-color: var(--info-color);
}
/* Slideshow */
.carousel-item img {
max-height: 85vh;
object-fit: contain;
}
.btn-primary, .btn-secondary {
padding: 8px 16px;
font-size: 0.9rem;
border-radius: var(--border-radius);
}
/* Zusätzliche Anpassungen für Slideshow */
.slideshow-modal .modal-content {
background-color: #333;
color: #fff;
}
.slideshow-modal .modal-header {
border-bottom: 1px solid #666;
}
.slideshow-modal .modal-footer {
border-top: 1px solid #666;
}
.slideshow-modal .btn-close {
background-color: #fff;
}
.btn-sm {
padding: 5px 10px;
font-size: 0.8rem;
}
.btn-group .btn {
margin-right: 5px;
}
#albumStats {
max-width: 100%;
width: 100%;
height: auto;
}
#categoryStats {
max-width: 100%;
width: 100%;
}
#playSlideshow, #pauseSlideshow {
background-color: transparent;
border: none;
padding: 0;
}
#playSlideshow i, #pauseSlideshow i {
font-size: 1.5rem;
color: var(--primary-color);
}
#playSlideshow:hover i, #pauseSlideshow:hover i {
color: color-mix(in srgb, var(--primary-color) 40%, black);
}
/* Hover-Effekte für Download-Buttons */
.download-thumb:hover,
.btn:hover {
opacity: 1;
transform: translateY(-2px);
box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
.download-thumb {
transition: all 0.3s ease;
opacity: var(--base-opacity);
}
.btn {
transition: all 0.3s ease;
}
.modal-body {
text-align: center;
}
.error-placeholder {
color: var(--error-color);
font-weight: bold;
margin-top: var(--base-margin);
}
.blink-text {
animation: blinker 1s linear infinite;
}
@keyframes blinker {
50% {
opacity: 0;
}
}