diff --git a/html/.htaccess b/html/.htaccess new file mode 100644 index 0000000..0acedbe --- /dev/null +++ b/html/.htaccess @@ -0,0 +1,4 @@ +# .htaccess (für Apache-Server) + + Header set Cache-Control "no-store, no-cache, must-revalidate, max-age=0" + diff --git a/html/assets/css/style.css b/html/assets/css/style.css index 54de792..ea52818 100644 --- a/html/assets/css/style.css +++ b/html/assets/css/style.css @@ -7,8 +7,8 @@ --light-color: #f8f9fa; --dark-color: #212529; --success-color: #4cc9f0; - --border-radius: 8px; - --box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + --border-radius: 10px; /* Leicht runde Ecken */ + --box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); --transition: all 0.3s ease; } @@ -19,164 +19,81 @@ body { background-color: #f5f7fa; color: var(--dark-color); line-height: 1.6; -} - -/* Container */ -.container { - max-width: 1200px; - margin: 0 auto; - padding: 20px; -} - -/* Navigation */ -.nav { display: flex; - justify-content: space-between; + justify-content: center; align-items: center; - padding: 15px 20px; - background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); - color: white; - box-shadow: var(--box-shadow); - border-radius: 0 0 var(--border-radius) var(--border-radius); - position: sticky; - top: 0; - z-index: 100; + height: 100vh; } -.nav-list { - display: none; - list-style: none; - padding: 0; - margin: 0; - width: 100%; +/* Login Modal */ +#login-modal { +display: flex; +justify-content: center; +align-items: center; +position: fixed; +top: 0; +left: 0; +right: 0; +bottom: 0; +background: rgba(0, 0, 0, 0.5); +z-index: 1001; +} + +.modal-content { background: white; - position: absolute; - top: 60px; - left: 0; + padding: 40px; border-radius: var(--border-radius); + width: 90%; + max-width: 450px; box-shadow: var(--box-shadow); - overflow: hidden; -} -.nav-list.active { - display: block; -} - -.nav-list li { - padding: 12px 20px; - border-bottom: 1px solid #eee; - transition: all 0.3s ease; - list-style-type: none; -} - -.nav-list li:last-child { - border-bottom: none; -} - -/* Menüeinträge: Design wie der Logout-Button */ -.nav-list li a { - color: var(--dark-color); - text-decoration: none; - font-weight: 500; - display: block; - padding: 8px 20px; - border-radius: var(--border-radius); - background: rgba(255, 255, 255, 0.2); /* Halbtransparenter Hintergrund */ - transition: background-color 0.3s ease, transform 0.2s ease; -} - -.nav-list li a:hover { - background-color: rgba(255, 255, 255, 0.3); /* Etwas dunklerer Hintergrund bei Hover */ - transform: translateY(-2px); /* Leichtes Anheben beim Hover */ - color: var(--dark-color); /* Textfarbe bleibt gleich */ -} - -/* Menüeinträge bei Hover: zusätzlicher Schatten */ -.nav-list li:hover { - background-color: rgba(255, 255, 255, 0.3); /* Der Hintergrund ändert sich auch beim Hover auf den li */ - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Dezent sichtbarer Schatten */ - transform: translateY(-2px); /* Leichtes Anheben */ -} - -/* Hamburger Menu */ -.hamburger { - display: block; - background: none; - border: none; - color: white; - font-size: 24px; - cursor: pointer; - padding: 5px; -} - -.logout { - color: white; - text-decoration: none; - font-weight: 500; - padding: 8px 15px; - border-radius: var(--border-radius); - background: rgba(255, 255, 255, 0.2); + transform: scale(1.05); transition: var(--transition); -} - -.logout:hover { - background: rgba(255, 255, 255, 0.3); -} - -/* Tabelle */ -table { - width: 100%; - border-collapse: separate; - border-spacing: 0; - margin: 20px 0; - background: white; - border-radius: var(--border-radius); - overflow: hidden; - box-shadow: var(--box-shadow); -} - -th, td { - padding: 12px 15px; - text-align: left; - border-bottom: 1px solid #eee; -} - -th { - background: var(--primary-color); - color: white; - font-weight: 600; - text-transform: uppercase; - font-size: 0.85em; - letter-spacing: 0.5px; -} - -tr:last-child td { - border-bottom: none; -} - -tr:hover { - background: #f8f9fa; - transition: var(--transition); -} - -/* Button */ -.btn-new { - display: inline-block; - background: var(--success-color); - color: white; - padding: 12px 20px; text-align: center; - text-decoration: none; - border-radius: var(--border-radius); - font-weight: 600; - box-shadow: var(--box-shadow); - transition: var(--transition); - margin: 20px 0; } -.btn-new:hover { - background: #3ab7d8; +.modal-content h2 { + font-size: 24px; + margin-bottom: 20px; + color: var(--primary-color); +} + +.modal-content input[type="text"], +.modal-content input[type="password"] { + width: 100%; + padding: 15px; + margin: 10px 0; + border: 1px solid #ddd; + border-radius: var(--border-radius); + box-sizing: border-box; + font-size: 16px; + transition: border-color 0.3s ease; +} + +.modal-content input[type="text"]:focus, +.modal-content input[type="password"]:focus { + border-color: var(--primary-color); + outline: none; +} + +.modal-content button { + width: 100%; + padding: 15px; + background-color: var(--primary-color); + color: white; + border: none; + border-radius: var(--border-radius); + font-size: 16px; + cursor: pointer; + transition: background-color 0.3s ease, transform 0.3s ease; +} + +.modal-content button:hover { + background-color: var(--primary-hover); transform: translateY(-2px); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15); +} + +.modal-content button:active { + transform: translateY(0); } /* Cookie-Hinweis */ @@ -185,74 +102,54 @@ tr:hover { bottom: 0; left: 0; right: 0; - background: white; + background: var(--light-color); color: var(--dark-color); padding: 15px; text-align: center; z-index: 1000; box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); border-top: 1px solid #eee; + transition: opacity 0.5s ease, max-height 0.5s ease; + opacity: 1; + overflow: hidden; } -/* Modal */ -.modal { - display: flex; - justify-content: center; - align-items: center; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(0, 0, 0, 0.5); - z-index: 1001; - backdrop-filter: blur(3px); +#cookie-notice.hidden { +opacity: 0; +max-height: 0; } +/* Verbesserung des Modals */ .modal-content { - background: white; + max-width: 400px; + margin: 0 auto; padding: 30px; border-radius: var(--border-radius); - width: 90%; - max-width: 400px; box-shadow: var(--box-shadow); - transform: scale(1.05); - transition: var(--transition); + transition: transform 0.3s ease; +} + +/* Responsive Design */ +@media (max-width: 768px) { + .modal-content { + width: 90%; + padding: 25px; + } + + .modal-content h2 { + font-size: 20px; + } + + .modal-content input[type="text"], + .modal-content input[type="password"], + .modal-content button { + font-size: 14px; + } } -/* Responsive */ @media (min-width: 768px) { + /* Die Navigation wird hier angepasst, wenn nötig */ .nav-list { display: flex !important; - position: static; - background: transparent; - box-shadow: none; - border-radius: 0; - width: auto; - overflow: visible; - } - - .nav-list li { - padding: 0; - margin: 0 10px; - border-bottom: none; - } - - .nav-list li a { - color: white; - padding: 5px 10px; - } - - .nav-list li a:hover { - color: rgba(255, 255, 255, 0.8); - } - - .nav-list li:hover { - background: var(--primary-hover); - transform: translateY(-3px); - } - - .hamburger { - display: none; } } diff --git a/html/assets/js/script.js b/html/assets/js/script.js index 45de240..4012247 100644 --- a/html/assets/js/script.js +++ b/html/assets/js/script.js @@ -1,6 +1,22 @@ -// Cookie-Hinweis ausblenden -document.getElementById('accept-cookies').addEventListener('click', function() { - document.getElementById('cookie-notice').style.display = 'none'; +// Funktion, um den Cookie-Hinweis automatisch nach einer bestimmten Zeit auszublenden +function hideCookieNotice(delay = 20000) { + const cookieNotice = document.getElementById('cookie-notice'); + if (!cookieNotice) return; // Wenn das Element nicht existiert, abbrechen + + // Timer starten + setTimeout(() => { + cookieNotice.classList.add('hidden'); // Klasse für Ausblenden hinzufügen + + // Nach der CSS-Animation komplett aus dem DOM entfernen + setTimeout(() => { + cookieNotice.style.display = 'none'; + }, 500); // 500ms entspricht der CSS-Transition + }, delay); +} + +// Optional: automatisch beim Laden der Seite starten +window.addEventListener('DOMContentLoaded', () => { + hideCookieNotice(); // Standard: 20 Sekunden }); // Hamburger-Menü diff --git a/html/dashboard.php b/html/dashboard.php index ef3a960..f747b54 100644 --- a/html/dashboard.php +++ b/html/dashboard.php @@ -31,7 +31,7 @@ $entries = $stmt->fetchAll(); - FinanzApp - Dashboard + FSCash - Dashboard diff --git a/html/index.php b/html/index.php index dcbd4ca..e164e59 100644 --- a/html/index.php +++ b/html/index.php @@ -10,21 +10,24 @@ if (isset($_SESSION['user_id'])) { -FinanzApp - Login +FSCash - Login