diff options
Diffstat (limited to 'src/frontend/app/components/SchedulesTable.css')
| -rw-r--r-- | src/frontend/app/components/SchedulesTable.css | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/src/frontend/app/components/SchedulesTable.css b/src/frontend/app/components/SchedulesTable.css new file mode 100644 index 0000000..8980fb4 --- /dev/null +++ b/src/frontend/app/components/SchedulesTable.css @@ -0,0 +1,187 @@ +.timetable-container { + margin-top: 2rem; +} + +.timetable-caption { + font-weight: bold; + margin-bottom: 1rem; + text-align: left; + font-size: 1.1rem; + color: var(--text-primary, #333); +} + +.timetable-cards { + display: flex; + flex-direction: column; + gap: 1rem; + margin-bottom: 1rem; +} + +.timetable-card { + background-color: var(--surface-future, #fff); + border: 1px solid var(--card-border, #e0e0e0); + border-radius: 10px; + padding: 1.25rem; + transition: background-color 0.2s ease, border 0.2s ease; +} + +.timetable-card.timetable-past { + background-color: var(--surface-past, #f3f3f3); + color: var(--text-secondary, #aaa); + border: 1px solid #e0e0e0; +} + +.card-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; +} + +.line-info { + flex-shrink: 0; +} + +.destination-info { + flex: 1; + text-align: left; + margin: 0 1rem; + color: var(--text-primary, #333); +} + +.destination-info strong { + font-size: 0.95rem; +} + +.timetable-card.timetable-past .destination-info { + color: var(--text-secondary, #aaa); +} + +.time-info { + display: flex; + flex-direction: column; + align-items: flex-end; + flex-shrink: 0; +} + +.departure-time { + font-weight: bold; + font-family: monospace; + font-size: 1.1rem; + color: var(--text-primary, #333); +} + +.timetable-card.timetable-past .departure-time { + color: var(--text-secondary, #aaa); +} + +.card-body { + line-height: 1.4; +} + +.route-streets { + font-size: 0.85rem; + color: var(--text-secondary, #666); + line-height: 1.8; + word-break: break-word; +} + +.service-id { + font-family: monospace; + font-size: 0.8rem; + color: var(--text-secondary, #666); + background: var(--service-background, #f0f0f0); + padding: 0.15rem 0.4rem; + border-radius: 3px; + font-weight: 500; + display: inline; + margin-right: 0.2em; +} + +.timetable-card.timetable-past .service-id { + color: var(--text-secondary, #bbb); + background: #e8e8e8; +} + +.no-data { + text-align: center; + color: var(--text-secondary, #666); + font-style: italic; + padding: 2rem; + background: var(--card-background, #f8f9fa); + border-radius: 8px; + border: 1px solid var(--card-border, #e0e0e0); +} + +/* Responsive design */ +@media (max-width: 768px) { + .timetable-cards { + gap: 0.5rem; + } + .timetable-card { + padding: 0.75rem; + } + .card-header { + margin-bottom: 0.5rem; + } + .destination-info { + margin: 0 0.5rem; + } + .destination-info strong { + font-size: 0.9rem; + } + .departure-time { + font-size: 1rem; + } + .service-id { + font-size: 0.8rem; + padding: 0.2rem 0.4rem; + } +} + +@media (max-width: 480px) { + .card-header { + flex-direction: column; + align-items: stretch; + gap: 0.5rem; + } + + .destination-info { + text-align: left; + margin: 0; + order: 2; + } + + .time-info { + align-items: flex-start; + order: 1; + align-self: flex-end; + } + + .line-info { + order: 0; + align-self: flex-start; + } + + /* Create a flex container for line and time on mobile */ + .card-header { + position: relative; + } + + .line-info { + position: absolute; + left: 0; + top: 0; + } + + .time-info { + position: absolute; + right: 0; + top: 0; + } + + .destination-info { + margin-top: 2rem; + text-align: left; + } +} |
