diff options
| author | Cassidy Dingenskirchen <admin@15318.de> | 2024-02-01 21:00:31 +0100 | 
|---|---|---|
| committer | Birte Friesel <derf@chaosdorf.de> | 2024-02-01 21:08:15 +0100 | 
| commit | 414542dfa431f0f93dde9d9d544edc7678747ef5 (patch) | |
| tree | 9debc9422bfee7904c7467db74fe2eae3b37ee35 | |
| parent | e23f6b4f629524fa377c7198a6af225752a02653 (diff) | |
history: fix visual bugs with long station names
| -rw-r--r-- | sass/src/common/local.scss | 117 | ||||
| -rw-r--r-- | templates/_history_trains.html.ep | 66 | 
2 files changed, 114 insertions, 69 deletions
| diff --git a/sass/src/common/local.scss b/sass/src/common/local.scss index ca06708..244da6a 100644 --- a/sass/src/common/local.scss +++ b/sass/src/common/local.scss @@ -72,13 +72,30 @@ ul.suggestions {  	}  } -.collection.departures li, .collection.history li { +// departure board and history - focus highlight +.collection.departures > li, +.collection.history > li {  	transition: background .3s;  	display: grid;  	&:not(#now,.history-date-change ):hover, &:focus-within {  		background-color: $departures-highlight-color;  		outline: 2px solid $link-color;  	} +} + +// departure board - layout + +.collection.departures li { +	grid-template-columns: 10ch 10ch 1fr; +	align-items: center; +	&#now { +		background-color: $departures-highlight-color; +		padding: 2rem 20px; +		grid-template-columns: 10ch 1fr; +		strong { +			font-weight: bold; +		} +	}  	&.cancelled {  		background-color: $departures-cancelled-color;  		font-style: italic; @@ -93,67 +110,87 @@ ul.suggestions {  		}  	}  } - -.collection.departures li { -	grid-template-columns: 10ch 10ch 1fr; -	align-items: center; -	&#now { -		background-color: $departures-highlight-color; -		padding: 2rem 20px; -		grid-template-columns: 10ch 1fr; -		strong { -			font-weight: bold; +.departures .dep-time { +	color: $off-black; +	&:focus { +		outline: none; +	} +} +.departures .dep-dest { +	margin-left: 0.8rem; +	.followee-checkin { +		font-size: 0.9rem; +		display: block; +		i.material-icons { +			vertical-align: middle;  		}  	}  } -.collection.history li { + +// history - layout + +.collection.history > li {  	display: grid;  	grid-template-columns: 10ch 1fr;  	grid-template-rows: 1fr;  	a:first-child { -		grid-row: 1 / span 3;  		align-self: center;  		text-align: center;  		display: flex;  	} -	.origin, .destination { -		grid-column: 2; -		strong { -			font-weight: 600; -		} -	} -	.origin::before { -		content: ' '; -		display: block; -		border-left: 2px dotted $off-black; -		height: 1rem; -		position: absolute; -		margin-left: calc( 0.5rem - 1px ); -		margin-top: -0.75rem; -	}  	&.history-date-change {  		display: block;  		font-weight: bold;  	}  } +ul.route-history > li { +	list-style: none; -.departures .dep-time { -	color: $off-black; -	&:focus { -		outline: none; +	position: relative; +	display: grid; +	grid-template-columns: 1rem 1fr; +	gap: 0.5rem; +	a { +		font-family: $font-stack;  	} -} -.departures .dep-dest { -	margin-left: 0.8rem; -	.followee-checkin { -		font-size: 0.9rem; -		display: block; -		i.material-icons { -			vertical-align: middle; +	strong { +		font-weight: 600; +	} + +	// route icon bubble +	i.material-icons { +		&[aria-label=nach] { +			padding-top: 0.4rem;  		} +		&[aria-label=von] { +			display: block; +			transform: rotate(-90deg); +			height: 1rem; +			margin-top: 0.4rem; +		} +	} + +	// route line / "perlenschnur" +	&::before { +		content: ''; +		background: $off-black; +		position: absolute; +		width: 2px; +		left: calc( (1rem - 2px) / 2  ); +		bottom: 0; +		top: 0; +	} +	&:first-of-type::before { +		top: 1.3rem; +	} +	&:last-of-type::before { +		bottom: unset; +		height: 0.5rem;  	}  } + +// train color bubbles  .dep-line {  	text-align: center;  	padding: .2rem; diff --git a/templates/_history_trains.html.ep b/templates/_history_trains.html.ep index 9af5490..cf998ab 100644 --- a/templates/_history_trains.html.ep +++ b/templates/_history_trains.html.ep @@ -21,37 +21,45 @@  					</span>  				</a> -				<a href="<%= $detail_link %>" class="unmarked destination"> -				<i class="material-icons tiny" aria-label="nach">place</i> -				% if (param('cancelled') and $travel->{sched_arrival}->epoch != 0) { -					%= $travel->{sched_arrival}->strftime('%H:%M') -				% } -				% else { -					% if ($travel->{rt_arrival}->epoch == 0 and $travel->{sched_arrival}->epoch == 0) { -						<i class="material-icons">timer_off</i> -					% } else { -						%= $travel->{rt_arrival}->strftime('%H:%M'); -						% if ($travel->{sched_arrival} != $travel->{rt_arrival}) { -							(<%= sprintf('%+d', ($travel->{rt_arrival}->epoch - $travel->{sched_arrival}->epoch) / 60) %>) +				<ul class="route-history"> +					<li> +						<i class="material-icons tiny" aria-label="nach">radio_button_unchecked</i> + +						<a href="<%= $detail_link %>" class="unmarked"> +						% if (param('cancelled') and $travel->{sched_arrival}->epoch != 0) { +							%= $travel->{sched_arrival}->strftime('%H:%M') +						% } +						% else { +							% if ($travel->{rt_arrival}->epoch == 0 and $travel->{sched_arrival}->epoch == 0) { +								<i class="material-icons">timer_off</i> +							% } else { +								%= $travel->{rt_arrival}->strftime('%H:%M'); +								% if ($travel->{sched_arrival} != $travel->{rt_arrival}) { +									(<%= sprintf('%+d', ($travel->{rt_arrival}->epoch - $travel->{sched_arrival}->epoch) / 60) %>) +								% } +							% }  						% } -					% } -				% } -				<strong><%= $travel->{to_name} %></strong> +						<strong><%= $travel->{to_name} %></strong> +						</a> +					</li> -				<a href="<%= $detail_link %>" class="unmarked origin"> -				<i class="material-icons tiny" aria-label="von">radio_button_unchecked</i> -				% if (param('cancelled')) { -					%= $travel->{sched_departure}->strftime('%H:%M') -				% } -				% else { -					<%= $travel->{rt_departure}->strftime('%H:%M') %> -					% if ($travel->{sched_departure} != $travel->{rt_departure}) { -						(<%= sprintf('%+d', ($travel->{rt_departure}->epoch - $travel->{sched_departure}->epoch) / 60) %>) -					% } -				% } -				<strong><%= $travel->{from_name} %></strong> -				</a> -			</a> +					<li> +						<i class="material-icons tiny" aria-label="von">play_circle_filled</i> + +						<a href="<%= $detail_link %>" class="unmarked"> +						% if (param('cancelled')) { +							%= $travel->{sched_departure}->strftime('%H:%M') +						% } +						% else { +							<%= $travel->{rt_departure}->strftime('%H:%M') %> +							% if ($travel->{sched_departure} != $travel->{rt_departure}) { +								(<%= sprintf('%+d', ($travel->{rt_departure}->epoch - $travel->{sched_departure}->epoch) / 60) %>) +							% } +						% } +						<strong><%= $travel->{from_name} %></strong> +						</a> +					</li> +				</ul>  			</li>  		% }  		</ul> | 
