diff --git a/src/lib/components/ui/TrainService.svelte b/src/lib/components/ui/TrainService.svelte
index e82fa97..37ddb1d 100644
--- a/src/lib/components/ui/TrainService.svelte
+++ b/src/lib/components/ui/TrainService.svelte
@@ -6,7 +6,7 @@
import { formatUkTime, calculateDelay } from '$lib/utils/time';
import TocStyle from '$lib/components/ui/TocStyle.svelte';
import TiplocConverter from '$lib/components/ui/TiplocConverter.svelte';
- import { IconCircleArrowDownFilled } from '@tabler/icons-svelte';
+ import { IconChevronDownFilled } from '@tabler/icons-svelte';
let { service }: { service: ApiTrainsTrainByHeadcode.TrainByHeadcodeResponse } = $props();
let isExpanded = $state(false);
let loadingDetails = $state(false);
@@ -68,7 +68,7 @@
{service.dt}
-
+
@@ -117,17 +117,17 @@
Location |
Plat |
Sch |
- Est/Act |
+ Est/Act |
Sch |
- Est/Act |
+ Est/Act |
|
{#each details.locations as loc}
- | {loc.t} |
- {loc.p} |
+ {loc.t} |
+ {loc.p} |
{#if loc.r == 'PASS'}
Pass |
{formatUkTime(loc.wtp)} |
@@ -158,215 +158,272 @@
+ /*
+ KEYFRAMES
+ */
+ @keyframes load-spin {
+ to { transform: rotate(360deg); }
+ }
+
\ No newline at end of file
diff --git a/src/lib/components/ui/cards/BaseCard.svelte b/src/lib/components/ui/cards/BaseCard.svelte
index 10bc53e..af89e00 100644
--- a/src/lib/components/ui/cards/BaseCard.svelte
+++ b/src/lib/components/ui/cards/BaseCard.svelte
@@ -52,7 +52,7 @@
.card {
background: var(--color-accent);
position: relative;
- border-radius: 20px;
+ border-radius: 12px;
overflow: visible;
width: 95%;
max-width: 600px;
diff --git a/src/lib/global.css b/src/lib/global.css
index 7a7534c..bf97738 100644
--- a/src/lib/global.css
+++ b/src/lib/global.css
@@ -44,6 +44,91 @@
font-display: swap;
}
+/* 100: Thin */
+@font-face {
+ font-family: 'JetBrains Mono';
+ src: url('/type/jetbrains-mono/JetBrainsMono-Thin.woff2') format('woff2');
+ font-weight: 100;
+ font-style: normal;
+ font-display: swap;
+}
+@font-face {
+ font-family: 'JetBrains Mono';
+ src: url('/type/jetbrains-mono/JetBrainsMono-ThinItalic.woff2') format('woff2');
+ font-weight: 100;
+ font-style: italic;
+ font-display: swap;
+}
+
+/* 200: ExtraLight */
+@font-face {
+ font-family: 'JetBrains Mono';
+ src: url('/type/jetbrains-mono/JetBrainsMono-ExtraLight.woff2') format('woff2');
+ font-weight: 200;
+ font-style: normal;
+ font-display: swap;
+}
+
+/* 300: Light */
+@font-face {
+ font-family: 'JetBrains Mono';
+ src: url('/type/jetbrains-mono/JetBrainsMono-Light.woff2') format('woff2');
+ font-weight: 300;
+ font-style: normal;
+ font-display: swap;
+}
+
+/* 400: Regular / Italic */
+@font-face {
+ font-family: 'JetBrains Mono';
+ src: url('/type/jetbrains-mono/JetBrainsMono-Regular.woff2') format('woff2');
+ font-weight: 400;
+ font-style: normal;
+ font-display: swap;
+}
+@font-face {
+ font-family: 'JetBrains Mono';
+ src: url('/type/jetbrains-mono/JetBrainsMono-Italic.woff2') format('woff2');
+ font-weight: 400;
+ font-style: italic;
+ font-display: swap;
+}
+
+/* 500: Medium */
+@font-face {
+ font-family: 'JetBrains Mono';
+ src: url('/type/jetbrains-mono/JetBrainsMono-Medium.woff2') format('woff2');
+ font-weight: 500;
+ font-style: normal;
+ font-display: swap;
+}
+
+/* 600: SemiBold */
+@font-face {
+ font-family: 'JetBrains Mono';
+ src: url('/type/jetbrains-mono/JetBrainsMono-SemiBold.woff2') format('woff2');
+ font-weight: 600;
+ font-style: normal;
+ font-display: swap;
+}
+
+/* 700: Bold */
+@font-face {
+ font-family: 'JetBrains Mono';
+ src: url('/type/jetbrains-mono/JetBrainsMono-Bold.woff2') format('woff2');
+ font-weight: 700;
+ font-style: normal;
+ font-display: swap;
+}
+
+/* 800: ExtraBold */
+@font-face {
+ font-family: 'JetBrains Mono';
+ src: url('/type/jetbrains-mono/JetBrainsMono-ExtraBold.woff2') format('woff2');
+ font-weight: 800;
+ font-style: normal;
+ font-display: swap;
+}
:root {
/* Brand Colours */
--color-brand: #4fd1d1;
@@ -58,8 +143,34 @@
--shadow-small: 0 4px 6px var(--color-shadow);
--shadow-up: 0 -4px 12px var(--color-shadow);
--shadow-right: 4px 0 12px var(--color-shadow);
+
+ /* Functional Colours */
+ --location-yellow: #edff22;
+ --delay-orange: #ff914d;
+ --cancel-red: #c60000;
+ --early-blue: #5ec1ff;
}
+/* Pulse Animations */
+@keyframes pulse {
+ 0%, 100% {
+ opacity: 1;
+ }
+ 50% {
+ opacity: 0.3;
+ }
+}
+
+@keyframes fast-pulse {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+
body {
margin: 0;
padding: 0;
diff --git a/static/type/jetbrains-mono/JetBrainsMono-Bold.woff2 b/static/type/jetbrains-mono/JetBrainsMono-Bold.woff2
new file mode 100644
index 0000000..4917f43
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-Bold.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-BoldItalic.woff2 b/static/type/jetbrains-mono/JetBrainsMono-BoldItalic.woff2
new file mode 100644
index 0000000..536d3f7
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-BoldItalic.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-ExtraBold.woff2 b/static/type/jetbrains-mono/JetBrainsMono-ExtraBold.woff2
new file mode 100644
index 0000000..8f88c54
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-ExtraBold.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-ExtraBoldItalic.woff2 b/static/type/jetbrains-mono/JetBrainsMono-ExtraBoldItalic.woff2
new file mode 100644
index 0000000..d1478ba
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-ExtraBoldItalic.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-ExtraLight.woff2 b/static/type/jetbrains-mono/JetBrainsMono-ExtraLight.woff2
new file mode 100644
index 0000000..b97239f
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-ExtraLight.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-ExtraLightItalic.woff2 b/static/type/jetbrains-mono/JetBrainsMono-ExtraLightItalic.woff2
new file mode 100644
index 0000000..be01aac
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-ExtraLightItalic.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-Italic.woff2 b/static/type/jetbrains-mono/JetBrainsMono-Italic.woff2
new file mode 100644
index 0000000..d60c270
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-Italic.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-Light.woff2 b/static/type/jetbrains-mono/JetBrainsMono-Light.woff2
new file mode 100644
index 0000000..6538498
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-Light.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-LightItalic.woff2 b/static/type/jetbrains-mono/JetBrainsMono-LightItalic.woff2
new file mode 100644
index 0000000..66ca3d2
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-LightItalic.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-Medium.woff2 b/static/type/jetbrains-mono/JetBrainsMono-Medium.woff2
new file mode 100644
index 0000000..669d04c
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-Medium.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-MediumItalic.woff2 b/static/type/jetbrains-mono/JetBrainsMono-MediumItalic.woff2
new file mode 100644
index 0000000..80cfd15
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-MediumItalic.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-Regular.woff2 b/static/type/jetbrains-mono/JetBrainsMono-Regular.woff2
new file mode 100644
index 0000000..40da427
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-Regular.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-SemiBold.woff2 b/static/type/jetbrains-mono/JetBrainsMono-SemiBold.woff2
new file mode 100644
index 0000000..5ead7b0
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-SemiBold.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-SemiBoldItalic.woff2 b/static/type/jetbrains-mono/JetBrainsMono-SemiBoldItalic.woff2
new file mode 100644
index 0000000..c5dd294
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-SemiBoldItalic.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-Thin.woff2 b/static/type/jetbrains-mono/JetBrainsMono-Thin.woff2
new file mode 100644
index 0000000..17270e4
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-Thin.woff2 differ
diff --git a/static/type/jetbrains-mono/JetBrainsMono-ThinItalic.woff2 b/static/type/jetbrains-mono/JetBrainsMono-ThinItalic.woff2
new file mode 100644
index 0000000..a643215
Binary files /dev/null and b/static/type/jetbrains-mono/JetBrainsMono-ThinItalic.woff2 differ