diff options
| author | Copilot <198982749+Copilot@users.noreply.github.com> | 2025-11-06 20:07:43 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-06 20:07:43 +0100 |
| commit | 04271bc9250f58c2c779840fce031d5dd3bf344f (patch) | |
| tree | 0b7952257eac9f94bbde9682f0aa869b71613683 /src/frontend/app/routes/timetable-$id.css | |
| parent | 006201d8b9e5c4f8fd4547d5b0d67091d8df97f9 (diff) | |
Add floating action button for timetable navigation (#72)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: arielcostas <94913521+arielcostas@users.noreply.github.com>
Diffstat (limited to 'src/frontend/app/routes/timetable-$id.css')
| -rw-r--r-- | src/frontend/app/routes/timetable-$id.css | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/frontend/app/routes/timetable-$id.css b/src/frontend/app/routes/timetable-$id.css index c834633..b4e231a 100644 --- a/src/frontend/app/routes/timetable-$id.css +++ b/src/frontend/app/routes/timetable-$id.css @@ -38,6 +38,10 @@ .timetable-full-content { margin-top: 1rem; + overflow-y: auto; + max-height: calc(100vh - 250px); + position: relative; + padding-bottom: 80px; /* Space for FAB */ } .error-message { @@ -149,3 +153,74 @@ padding: 1rem; } } + +/* Floating Action Button */ +.fab-container { + position: fixed; + bottom: 80px; + right: 20px; + display: flex; + flex-direction: column; + gap: 12px; + z-index: 1000; +} + +.fab { + width: 56px; + height: 56px; + border-radius: 50%; + border: none; + background-color: var(--button-background-color, #007bff); + color: white; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + transition: all 0.3s ease; + animation: fadeIn 0.3s ease; +} + +.fab:hover { + background-color: var(--button-hover-background-color, #0069d9); + box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2); + transform: scale(1.05); +} + +.fab:active { + transform: scale(0.95); +} + +.fab-icon { + width: 24px; + height: 24px; +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Adjust FAB position on mobile */ +@media (max-width: 768px) { + .fab-container { + bottom: 70px; + right: 16px; + } + + .fab { + width: 48px; + height: 48px; + } + + .fab-icon { + width: 20px; + height: 20px; + } +} |
