Add components and improve error page

This commit is contained in:
2026-03-15 01:22:46 +00:00
parent 54ea6ebf59
commit 061598a0ad
12 changed files with 687 additions and 205 deletions

View File

@@ -1,75 +1,101 @@
<script lang="ts">
import logo from '$lib/assets/round-logo.svg'
import logo from '$lib/assets/round-logo.svg';
let isSpinning = $state(false);
let isSpinning = $state(false);
function handleLogoTap() {
if (isSpinning) return;
isSpinning = true;
setTimeout(() => isSpinning = false, 800);
}
function handleLogoTap() {
if (isSpinning) return;
isSpinning = true;
setTimeout(() => (isSpinning = false), 800);
}
</script>
<div class="logo-container">
<img class="logo" src={logo} alt="OwlBoard Logo" onclick={handleLogoTap} class:animate={isSpinning} />
<img
class="logo"
src={logo}
alt="OwlBoard Logo"
onclick={handleLogoTap}
class:animate={isSpinning}
/>
</div>
<section class="about">
<p class="copy">
&copy; 2022-2026 Frederick Boniface
</p>
<p class="tagline">
Created by train crew, for train crew
</p>
<p class="amble">
OwlBoard was created in 2022, evolving from 'Athena' which just provided 'Quick Links' to Tiger departure boards. The aim was to provide fast and easy access to the information we need on a daily basis.
</p>
<p class="opensource">
Some components that combine to form OwlBoard are open-source, see the <a href="https://git.fjla.uk" target="_blank" rel="noopener">Git reposititories</a> for more info.
</p>
<p class="copy">&copy; 2022-2026 Frederick Boniface</p>
<p class="tagline">Created by train crew, for train crew</p>
<p class="amble">
OwlBoard was created in 2022, evolving from 'Athena' which just provided 'Quick Links' to Tiger
departure boards. The aim was to provide fast and easy access to the information we need on a
daily basis.
</p>
<p class="amble">
Why OwlBoard? The name was chosen as an evolution of its predecessor, 'Athena'; owls are associated with the Roman Goddess as well as with wisdom. The name also links to Bath, where the app has been built and is run, representing the 'Minerva Owl' sculpture trail in the city, with many of the sculptures still in the area.
</p>
<p class="opensource">
Some components that combine to form OwlBoard are open-source, see the <a
href="https://git.fjla.uk"
target="_blank"
rel="noopener">Git reposititories</a
> for more info.
</p>
</section>
<section class="data-sourcing">
<p>
Data is sourced from multiple providers, including <a href="https://nationalrail.co.uk" target="_blank" rel="noopener noreferrer">National Rail Enquiries</a> and Network Rail along side OwlBoard's own data
</p>
<p>
Data is sourced from multiple providers, including <a
href="https://nationalrail.co.uk"
target="_blank"
rel="noopener noreferrer">National Rail Enquiries</a
> and Network Rail along side OwlBoard's own data
</p>
</section>
<style>
.logo-container {
width: 100%;
text-align: center;
}
.logo-container {
width: 100%;
text-align: center;
}
@keyframes owl-spin {
0% {transform: rotate(0deg);}
15% {transform: rotate(-20deg);}
100% {transform: rorate(360deg);}
}
@keyframes owl-spin {
0% {
transform: rotate(0deg);
}
15% {
transform: rotate(-20deg);
}
100% {
transform: rotate(360deg);
}
}
.logo {
padding-top: 25px;
margin: auto;
height: auto;
width: clamp(80px, 20vw, 200px);
}
.logo {
padding-top: 25px;
margin: auto;
height: auto;
width: clamp(80px, 20vw, 200px);
}
.logo.animate {
animation: owl-spin 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
.logo.animate {
animation: owl-spin 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
section {
margin: auto;
width: 75%;
font-family: 'URW Gothic', sans-serif;
text-align: center;
display: flex;
flex-direction: column;
gap: 0;
}
section {
margin: auto;
width: 90%;
max-width: 650px;
font-family: 'URW Gothic', sans-serif;
text-align: center;
display: flex;
flex-direction: column;
gap: 0;
}
.tagline {
font-weight: 600;
font-style: italic;
}
</style>
section:last-child {
padding-bottom: 15px;
}
.tagline {
font-weight: 600;
font-style: italic;
}
</style>